From 0bbaec0829ade050501b86885cc41a4ecfba11da Mon Sep 17 00:00:00 2001 From: Alexandre Wilhelm Date: Fri, 12 Apr 2013 11:15:10 -0700 Subject: [PATCH] New: Added support for CPTimeZone and CPDateFormatter - Added support for CPDateFormatter in Foundation - Added support for CPTimeZone in Foundation - Added support fo CPDateFormatter in nib2cib Test app in Tests/Manual/CPDateFormatter UnitTest in Tests/Foundation/CPTimeZoneTest.j UnitTest in Tests/Foundation/CPDateFormatterTest.j --- AppKit/CPDatePicker/CPDatePicker.j | 27 +- Foundation/CPDateFormatter.j | 2024 ++++++++++++++++- Foundation/CPTimeZone.j | 630 +++++ Foundation/Foundation.j | 1 + Tests/Foundation/CPDateFormatterTest.j | 1202 ++++++++++ Tests/Foundation/CPTimeZoneTest.j | 298 +++ .../CPDateFormatterTest/AppController.j | 43 + Tests/Manual/CPDateFormatterTest/Info.plist | 10 + Tests/Manual/CPDateFormatterTest/Jakefile | 94 + .../Resources/MainMenu.cib | 1 + .../Resources/MainMenu.xib | 1967 ++++++++++++++++ .../CPDateFormatterTest/Resources/spinner.gif | Bin 0 -> 1434 bytes .../CPDateFormatterTest/index-debug.html | 112 + Tests/Manual/CPDateFormatterTest/index.html | 82 + Tests/Manual/CPDateFormatterTest/main.j | 18 + .../CPDatePickerTest/Resources/MainMenu.cib | 2 +- Tools/nib2cib/NSDateFormatter.j | 23 +- Tools/nib2cib/NSDatePicker.j | 23 +- Tools/nib2cib/NSDictionary.j | 6 +- 19 files changed, 6508 insertions(+), 55 deletions(-) create mode 100644 Foundation/CPTimeZone.j create mode 100644 Tests/Foundation/CPDateFormatterTest.j create mode 100644 Tests/Foundation/CPTimeZoneTest.j create mode 100644 Tests/Manual/CPDateFormatterTest/AppController.j create mode 100644 Tests/Manual/CPDateFormatterTest/Info.plist create mode 100644 Tests/Manual/CPDateFormatterTest/Jakefile create mode 100644 Tests/Manual/CPDateFormatterTest/Resources/MainMenu.cib create mode 100644 Tests/Manual/CPDateFormatterTest/Resources/MainMenu.xib create mode 100644 Tests/Manual/CPDateFormatterTest/Resources/spinner.gif create mode 100644 Tests/Manual/CPDateFormatterTest/index-debug.html create mode 100644 Tests/Manual/CPDateFormatterTest/index.html create mode 100644 Tests/Manual/CPDateFormatterTest/main.j diff --git a/AppKit/CPDatePicker/CPDatePicker.j b/AppKit/CPDatePicker/CPDatePicker.j index af7b9938c..c23098089 100644 --- a/AppKit/CPDatePicker/CPDatePicker.j +++ b/AppKit/CPDatePicker/CPDatePicker.j @@ -30,6 +30,7 @@ @import @import @import +@import @class CPStepper @class CPApp @@ -68,8 +69,7 @@ CPEraDatePickerElementFlag = 0x0100; CPFont _textFont @accessors(property=textFont); CPLocale _locale @accessors(property=locale); //CPCalendar _calendar @accessors(property=calendar); - //CPTimeZone _timeZone @accessors(property=timeZone); - CPDateFormatter _formatter @accessors(property=formatter); + CPTimeZone _timeZone @accessors(property=timeZone); id _delegate @accessors(property=delegate); unsigned _datePickerElements @accessors(property=datePickerElements); CPInteger _datePickerMode @accessors(property=datePickerMode); @@ -187,7 +187,6 @@ CPEraDatePickerElementFlag = 0x0100; _datePickerElements = CPYearMonthDayDatePickerElementFlag | CPHourMinuteSecondDatePickerElementFlag; _timeInterval = 0; _implementedCDatePickerDelegateMethods = 0; - _formatter = [[CPDateFormatter alloc] init]; [self setObjectValue:[CPDate date]]; _minDate = [CPDate distantPast]; @@ -207,6 +206,9 @@ CPEraDatePickerElementFlag = 0x0100; if (!_locale) _locale = [CPLocale currentLocale]; + if (!_timeZone) + _timeZone = [CPTimeZone systemTimeZone]; + _datePickerTextfield = [[_CPDatePickerTextField alloc] initWithFrame:[self bounds] withDatePicker:self]; [_datePickerTextfield setDateValue:_dateValue]; @@ -265,18 +267,12 @@ CPEraDatePickerElementFlag = 0x0100; #pragma mark - #pragma mark Setter -/*! Return the objectValue of the datePicker. The objectValue is made with the current formatter of the datePicker +/*! Return the objectValue of the datePicker. The objectValue should take the timeZoneEffect */ - (void)objectValue { - // try - // { - // return [_formatter stringFromDate:_dateValue]; - // } - // catch(e) - // { - return _dateValue - // } + // TODO : add timeZone effect. How to do it because js ??? + return _dateValue } /*! Set the objectValue ofhe datePier. It has to be a CPDate @@ -328,8 +324,10 @@ CPEraDatePickerElementFlag = 0x0100; [self willChangeValueForKey:@"dateValue"]; _dateValue = aDateValue; [super setObjectValue:_dateValue]; - [self didChangeValueForKey:@"dateValue"]; [self didChangeValueForKey:@"objectValue"]; + [self didChangeValueForKey:@"dateValue"]; + + [self sendAction:[self action] to:[self target]]; [self willChangeValueForKey:@"timeInterval"]; _timeInterval = (_datePickerMode == CPSingleDateMode)? 0 : aTimeInterval; @@ -603,7 +601,6 @@ var CPDatePickerModeKey = @"CPDatePickerModeKey", CPDatePickerElementsKey = @"CPDatePickerElementsKey", CPDatePickerStyleKey = @"CPDatePickerStyleKey", CPLocaleKey = @"CPLocaleKey", - CPFormatterKey = @"CPFormatterKey", CPBorderedKey = @"CPBorderedKey", CPDateValueKey = @"CPDateValueKey"; @@ -623,7 +620,6 @@ var CPDatePickerModeKey = @"CPDatePickerModeKey", _datePickerElements = [aCoder decodeIntForKey:CPDatePickerElementsKey]; _datePickerStyle = [aCoder decodeIntForKey:CPDatePickerStyleKey]; _locale = [aCoder decodeObjectForKey:CPLocaleKey]; - _formatter = [aCoder decodeObjectForKey:CPFormatterKey]; _dateValue = [aCoder decodeObjectForKey:CPDateValueKey]; _backgroundColor = [aCoder decodeObjectForKey:CPBackgroundColorKey]; _drawsBackground = [aCoder decodeBoolForKey:CPDrawsBackgroundKey]; @@ -646,7 +642,6 @@ var CPDatePickerModeKey = @"CPDatePickerModeKey", [aCoder encodeObject:_dateValue forKey:CPDateValueKey];; [aCoder encodeObject:_textFont forKey:CPTextFontKey]; [aCoder encodeObject:_locale forKey:CPLocaleKey]; - [aCoder encodeObject:_formatter forKey:CPFormatterKey]; [aCoder encodeObject:_backgroundColor forKey:CPBackgroundColorKey]; [aCoder encodeObject:_drawsBackground forKey:CPDrawsBackgroundKey]; [aCoder encodeObject:_isBordered forKey:CPBorderedKey]; diff --git a/Foundation/CPDateFormatter.j b/Foundation/CPDateFormatter.j index 3563c5529..e31d6a421 100644 --- a/Foundation/CPDateFormatter.j +++ b/Foundation/CPDateFormatter.j @@ -20,98 +20,2045 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ +@import "CPArray.j" @import "CPDate.j" @import "CPString.j" @import "CPFormatter.j" +@import "CPTimeZone.j" @import "CPLocale.j" +@class CPNull + +@global CPLocaleLanguageCode +@global CPLocaleCountryCode + CPDateFormatterNoStyle = 0; CPDateFormatterShortStyle = 1; CPDateFormatterMediumStyle = 2; CPDateFormatterLongStyle = 3; CPDateFormatterFullStyle = 4; +CPDateFormatterBehaviorDefault = 0; +CPDateFormatterBehavior10_0 = 1000; +CPDateFormatterBehavior10_4 = 1040; + +var defaultDateFormatterBehavior = CPDateFormatterBehavior10_4, + relativeDateFormating, + patternStringTokens; + /*! @ingroup foundation @class CPDateFormatter - * Not yet implemented. This is a stub class. * - CPDateFormatter takes a CPDate value and formats it as text for display. It also supports the converse, taking text and interpreting it as a CPDate by configurable formatting rules. */ @implementation CPDateFormatter : CPFormatter { - CPDateFormatterStyle _dateStyle @accessors(property=dateStyle); - CPLocale _locale @accessors(property=locale); + BOOL _allowNaturalLanguage @accessors(property=allowNaturalLanguage, readonly); + BOOL _doesRelativeDateFormatting @accessors(property=doesRelativeDateFormatting); + CPDate _defaultDate @accessors(property=defaultDate); + CPDate _twoDigitStartDate @accessors(property=twoDigitStartDate); + CPDateFormatterBehavior _formatterBehavior @accessors(property=formatterBehavior); + CPDateFormatterStyle _dateStyle @accessors(property=dateStyle); + CPDateFormatterStyle _timeStyle @accessors(property=timeStyle); + CPLocale _locale @accessors(property=locale); + CPString _AMSymbol @accessors(property=AMSymbol); + CPString _dateFormat @accessors(property=dateFormat); + CPString _PMSymbol @accessors(property=PMSymbol); + CPTimeZone _timeZone @accessors(property=timeZone); + + CPDictionary _symbols; } + ++ (void)initialize +{ + if (self !== [CPDateFormatter class]) + return; + + relativeDateFormating = @{ + @"fr" : [@"demain", 1440, @"apr" + String.fromCharCode(233) + @"s-demain", 2880, @"apr" + String.fromCharCode(233) + @"s-apr" + String.fromCharCode(233) + @"s-demain", 4320, @"hier", -1440, @"avant-hier", -2880, @"avant-avant-hier", -4320], + @"en" : [@"tomorrow", 1440, @"yesterday", -1440], + @"de" : [], + @"es" : [] + }; + + patternStringTokens = [@"QQQ", @"qqq", @"QQQQ", @"qqqq", @"MMM", @"MMMM", @"LLL", @"LLLL", @"E", @"EE", @"EEE", @"eee", @"eeee", @"eeeee", @"a", @"z", @"zz", @"zzz", @"zzzz", @"Z", @"ZZ", @"ZZZ", @"ZZZZ", @"ZZZZZ", @"v", @"vv", @"vvv", @"vvvv", @"V", @"VV", @"VVV", @"VVVV"]; +} + +/*! Return a string representation of the given date, dateStyle and timeStyle + @param date the given date + @param dateStyle the dateStyle + @param timeStyle the timeStyle + @return a CPString reprensenting the given date +*/ ++ (CPString)localizedStringFromDate:(CPDate)date dateStyle:(CPDateFormatterStyle)dateStyle timeStyle:(CPDateFormatterStyle)timeStyle +{ + var formatter = [[CPDateFormatter alloc] init]; + + [formatter setFormatterBehavior:CPDateFormatterBehavior10_4]; + [formatter setDateStyle:dateStyle]; + [formatter setTimeStyle:timeStyle]; + + return [formatter stringForObjectValue:date]; +} + +/*! Not yet implemented + Return a string representation of the given template, opts and locale + @param template the template + @param opts, pass 0 + @param locale the locale + @return a CPString representing the givent template +*/ ++ (CPString)dateFormatFromTemplate:(CPString)template options:(CPUInteger)opts locale:(CPLocale)locale +{ + // TODO : check every template from cocoa and return a good format (have fun ^^) +} + +/*! Return the defaultFormatterBehavior + @return a CPDateFormatterBehavior +*/ ++ (CPDateFormatterBehavior)defaultFormatterBehavior +{ + return defaultDateFormatterBehavior; +} + +/*! Set the defaultFormatterBehavior + @param behavior +*/ ++ (void)setDefaultFormatterBehavior:(CPDateFormatterBehavior)behavior +{ + defaultDateFormatterBehavior = behavior; +} + +/*! Init a dateFormatter + @return a new CPDateFormatter +*/ - (id)init { if (self = [super init]) { - _dateStyle = CPDateFormatterShortStyle; + _dateStyle = nil; + _timeStyle = nil; + + [self _init]; } return self; } +/*! Init a dateFormatter with a format and the naturalLanguage + @param format the format + @param flag flag representation of allowNaturalLanguage + @return a new CPDateFormatter +*/ +- (id)initWithDateFormat:(CPString)format allowNaturalLanguage:(BOOL)flag +{ + if (self = [self init]) + { + _dateFormat = format; + _allowNaturalLanguage = flag; + } + + return self +} + +/*! Private init +*/ +- (void)_init +{ + var AMSymbol = [CPString stringWithFormat:@"%s", @"AM"], + PMSymbol = [CPString stringWithFormat:@"%s", @"PM"], + weekdaySymbols = [CPArray arrayWithObjects:@"Sunday", @"Monday", @"Tuesday", @"Wednesday", @"Thursday", @"Friday", @"Saturday"], + shortWeekdaySymbols = [CPArray arrayWithObjects:@"Sun", @"Mon", @"Tue", @"Wed", @"Thu", @"Fri", @"Sat"], + veryShortWeekdaySymbols = [CPArray arrayWithObjects:@"S", @"M", @"T", @"W", @"T", @"F", @"S"], + standaloneWeekdaySymbols = [CPArray arrayWithObjects:@"Sunday", @"Monday", @"Tuesday", @"Wednesday", @"Thursday", @"Friday", @"Saturday"], + shortStandaloneWeekdaySymbols = [CPArray arrayWithObjects:@"Sun", @"Mon", @"Tue", @"Wed", @"Thu", @"Fri", @"Sat"], + veryShortStandaloneWeekdaySymbols = [CPArray arrayWithObjects:@"S", @"M", @"T", @"W", @"T", @"F", @"S"], + monthSymbols = [CPArray arrayWithObjects:@"January", @"February", @"March", @"April", @"May", @"June", @"July", @"August", @"September", @"October", @"November", @"December"], + shortMonthSymbols = [CPArray arrayWithObjects:@"Jan", @"Feb", @"Mar", @"Apr", @"May", @"Jun", @"Jul", @"Aug", @"Sep", @"Oct", @"Nov", @"Dec"], + veryShortMonthSymbols = [CPArray arrayWithObjects:@"J", @"F", @"M", @"A", @"M", @"J", @"J", @"A", @"S", @"O", @"N", @"D"], + standaloneMonthSymbols = [CPArray arrayWithObjects:@"January", @"February", @"March", @"April", @"May", @"June", @"July", @"August", @"September", @"October", @"November", @"December"], + shortStandaloneMonthSymbols = [CPArray arrayWithObjects:@"Jan", @"Feb", @"Mar", @"Apr", @"May", @"Jun", @"Jul", @"Aug", @"Sep", @"Oct", @"Nov", @"Dec"], + veryShortStandaloneMonthSymbols = [CPArray arrayWithObjects:@"J", @"F", @"M", @"A", @"M", @"J", @"J", @"A", @"S", @"O", @"N", @"D"], + quarterSymbols = [CPArray arrayWithObjects:@"1st quarter", @"2nd quarter", @"3rd quarter", @"4th quarter"], + shortQuarterSymbols = [CPArray arrayWithObjects:@"Q1", @"Q2", @"Q3", @"Q4"], + standaloneQuarterSymbols = [CPArray arrayWithObjects:@"1st quarter", @"2nd quarter", @"3rd quarter", @"4th quarter"], + shortStandaloneQuarterSymbols = [CPArray arrayWithObjects:@"Q1", @"Q2", @"Q3", @"Q4"]; + + _symbols = @{ + @"en" : @{ + @"AMSymbol" : AMSymbol, + @"PMSymbol" : PMSymbol, + @"weekdaySymbols" : weekdaySymbols, + @"shortWeekdaySymbols" : shortWeekdaySymbols, + @"veryShortWeekdaySymbols" : veryShortWeekdaySymbols, + @"standaloneWeekdaySymbols" : standaloneWeekdaySymbols, + @"shortStandaloneWeekdaySymbols" : shortStandaloneWeekdaySymbols, + @"veryShortStandaloneWeekdaySymbols" : veryShortStandaloneWeekdaySymbols, + @"monthSymbols" : monthSymbols, + @"shortMonthSymbols" : shortMonthSymbols, + @"veryShortMonthSymbols" : veryShortMonthSymbols, + @"standaloneMonthSymbols" : standaloneMonthSymbols, + @"shortStandaloneMonthSymbols" : shortStandaloneMonthSymbols, + @"veryShortStandaloneMonthSymbols" : veryShortStandaloneMonthSymbols, + @"quarterSymbols" : quarterSymbols, + @"shortQuarterSymbols" : shortQuarterSymbols, + @"standaloneQuarterSymbols" : standaloneQuarterSymbols, + @"shortStandaloneQuarterSymbols" : shortStandaloneQuarterSymbols + }, + @"fr" : @{}, + @"es" : @{}, + @"de" : @{} + }; + + _timeZone = [CPTimeZone systemTimeZone]; + _twoDigitStartDate = [[CPDate alloc] initWithString:@"1950-01-01 00:00:00 +0000"]; + _locale = [CPLocale currentLocale]; +} + + +#pragma mark - +#pragma mark Setter Getter + +/*! Return AMSymbol +*/ +- (CPString)AMSymbol +{ + return [[_symbols valueForKey:[_locale objectForKey:CPLocaleLanguageCode]] valueForKey:@"AMSymbol"]; +} + +/*! Set the AMSymbol +*/ +- (void)setAMSymbol:(CPString)aValue +{ + [[_symbols valueForKey:[_locale objectForKey:CPLocaleLanguageCode]] setValue:aValue forKey:@"AMSymbol"]; +} + +/*! Return a PMSymbol +*/ +- (CPString)PMSymbol +{ + return [[_symbols valueForKey:[_locale objectForKey:CPLocaleLanguageCode]] valueForKey:@"PMSymbol"]; +} + +/*! Set the PMSymbol +*/ +- (void)setPMSymbol:(CPString)aValue +{ + [[_symbols valueForKey:[_locale objectForKey:CPLocaleLanguageCode]] setValue:aValue forKey:@"PMSymbol"]; +} + +/*! Return the weekdaySymbols +*/ +- (CPArray)weekdaySymbols +{ + return [[_symbols valueForKey:[_locale objectForKey:CPLocaleLanguageCode]] valueForKey:@"weekdaySymbols"]; +} + +/*! Set the weekdaySymbols +*/ +- (void)setWeekdaySymbols:(CPArray)aValue +{ + [[_symbols valueForKey:[_locale objectForKey:CPLocaleLanguageCode]] setValue:aValue forKey:@"weekdaySymbols"]; +} + +/*! Return a shortWeekdaySymbols +*/ +- (CPArray)shortWeekdaySymbols +{ + return [[_symbols valueForKey:[_locale objectForKey:CPLocaleLanguageCode]] valueForKey:@"shortWeekdaySymbols"]; +} + +/*! Set the shortWeekdaySymbols +*/ +- (void)setShortWeekdaySymbols:(CPArray)aValue +{ + [[_symbols valueForKey:[_locale objectForKey:CPLocaleLanguageCode]] setValue:aValue forKey:@"shortWeekdaySymbols"]; +} + +/*! Return veryShortWeekdaySymbols +*/ +- (CPArray)veryShortWeekdaySymbols +{ + return [[_symbols valueForKey:[_locale objectForKey:CPLocaleLanguageCode]] valueForKey:@"veryShortWeekdaySymbols"]; +} + +/*! Set the veryShortWeekdaySymbols +*/ +- (void)setVeryShortWeekdaySymbols:(CPArray)aValue +{ + [[_symbols valueForKey:[_locale objectForKey:CPLocaleLanguageCode]] setValue:aValue forKey:@"veryShortWeekdaySymbols"]; +} + +/*! Return the standaloneWeekdaySymbols +*/ +- (CPArray)standaloneWeekdaySymbols +{ + return [[_symbols valueForKey:[_locale objectForKey:CPLocaleLanguageCode]] valueForKey:@"standaloneWeekdaySymbols"]; +} + +/*! Set the standaloneWeekdaySymbols +*/ +- (void)setStandaloneWeekdaySymbols:(CPArray)aValue +{ + [[_symbols valueForKey:[_locale objectForKey:CPLocaleLanguageCode]] setValue:aValue forKey:@"standaloneWeekdaySymbols"]; +} + +/*! Return the shortStandaloneWeekdaySymbols +*/ +- (CPArray)shortStandaloneWeekdaySymbols +{ + return [[_symbols valueForKey:[_locale objectForKey:CPLocaleLanguageCode]] valueForKey:@"shortStandaloneWeekdaySymbols"]; +} + +/*! Set the shortStandaloneWeekdaySymbols +*/ +- (void)setShortStandaloneWeekdaySymbols:(CPArray)aValue +{ + [[_symbols valueForKey:[_locale objectForKey:CPLocaleLanguageCode]] setValue:aValue forKey:@"shortStandaloneWeekdaySymbols"]; +} + +/*! Return the veryShortStandaloneWeekdaySymbols +*/ +- (CPArray)veryShortStandaloneWeekdaySymbols +{ + return [[_symbols valueForKey:[_locale objectForKey:CPLocaleLanguageCode]] valueForKey:@"veryShortStandaloneWeekdaySymbols"]; +} + +/*! Set the veryShortStandaloneWeekdaySymbols +*/ +- (void)setVeryShortStandaloneWeekdaySymbols:(CPArray)aValue +{ + [[_symbols valueForKey:[_locale objectForKey:CPLocaleLanguageCode]] setValue:aValue forKey:@"veryShortStandaloneWeekdaySymbols"]; +} + +/*! Return the monthSymbols +*/ +- (CPArray)monthSymbols +{ + return [[_symbols valueForKey:[_locale objectForKey:CPLocaleLanguageCode]] valueForKey:@"monthSymbols"]; +} + +/*! Set the monthSymbols +*/ +- (void)setMonthSymbols:(CPArray)aValue +{ + [[_symbols valueForKey:[_locale objectForKey:CPLocaleLanguageCode]] setValue:aValue forKey:@"monthSymbols"]; +} + +/*! Return a shortMonthSymbols +*/ +- (CPArray)shortMonthSymbols +{ + return [[_symbols valueForKey:[_locale objectForKey:CPLocaleLanguageCode]] valueForKey:@"shortMonthSymbols"]; +} + +/*! Set the shortMonthSymbols +*/ +- (void)setShortMonthSymbols:(CPArray)aValue +{ + [[_symbols valueForKey:[_locale objectForKey:CPLocaleLanguageCode]] setValue:aValue forKey:@"shortMonthSymbols"]; +} + +/*! Return veryShortMonthSymbols +*/ +- (CPArray)veryShortMonthSymbols +{ + return [[_symbols valueForKey:[_locale objectForKey:CPLocaleLanguageCode]] valueForKey:@"veryShortMonthSymbols"]; +} + +/*! Set the veryShortMonthSymbols +*/ +- (void)setVeryShortMonthSymbols:(CPArray)aValue +{ + [[_symbols valueForKey:[_locale objectForKey:CPLocaleLanguageCode]] setValue:aValue forKey:@"veryShortMonthSymbols"]; +} + +/*! Return standaloneMonthSymbols +*/ +- (CPArray)standaloneMonthSymbols +{ + return [[_symbols valueForKey:[_locale objectForKey:CPLocaleLanguageCode]] valueForKey:@"standaloneMonthSymbols"]; +} + +/*! Set the standaloneMonthSymbols +*/ +- (void)setStandaloneMonthSymbols:(CPArray)aValue +{ + [[_symbols valueForKey:[_locale objectForKey:CPLocaleLanguageCode]] setValue:aValue forKey:@"standaloneMonthSymbols"]; +} + +/*! Return the shortStandaloneMonthSymbols +*/ +- (CPArray)shortStandaloneMonthSymbols +{ + return [[_symbols valueForKey:[_locale objectForKey:CPLocaleLanguageCode]] valueForKey:@"shortStandaloneMonthSymbols"]; +} + +/*! Set the shortStandaloneMonthSymbols +*/ +- (void)setShortStandaloneMonthSymbols:(CPArray)aValue +{ + [[_symbols valueForKey:[_locale objectForKey:CPLocaleLanguageCode]] setValue:aValue forKey:@"shortStandaloneMonthSymbols"]; +} + +/*! Return the veryShortStandaloneMonthSymbols +*/ +- (CPArray)veryShortStandaloneMonthSymbols +{ + return [[_symbols valueForKey:[_locale objectForKey:CPLocaleLanguageCode]] valueForKey:@"veryShortStandaloneMonthSymbols"]; +} + +/*! Set the veryShortStandaloneMonthSymbols +*/ +- (void)setVeryShortStandaloneMonthSymbols:(CPArray)aValue +{ + [[_symbols valueForKey:[_locale objectForKey:CPLocaleLanguageCode]] setValue:aValue forKey:@"veryShortStandaloneMonthSymbols"]; +} + +/*! Return the quarterSymbols +*/ +- (CPArray)quarterSymbols +{ + return [[_symbols valueForKey:[_locale objectForKey:CPLocaleLanguageCode]] valueForKey:@"quarterSymbols"]; +} + +/*! Set the quarterSymbols +*/ +- (void)setQuarterSymbols:(CPArray)aValue +{ + [[_symbols valueForKey:[_locale objectForKey:CPLocaleLanguageCode]] setValue:aValue forKey:@"quarterSymbols"]; +} + +/*! Return the shortQuarterSymbols +*/ +- (CPArray)shortQuarterSymbols +{ + return [[_symbols valueForKey:[_locale objectForKey:CPLocaleLanguageCode]] valueForKey:@"shortQuarterSymbols"]; +} + +/*! Set the shortQuarterSymbols +*/ +- (void)setShortQuarterSymbols:(CPArray)aValue +{ + [[_symbols valueForKey:[_locale objectForKey:CPLocaleLanguageCode]] setValue:aValue forKey:@"shortQuarterSymbols"]; +} + +/*! Return the standaloneQuarterSymbols +*/ +- (CPArray)standaloneQuarterSymbols +{ + return [[_symbols valueForKey:[_locale objectForKey:CPLocaleLanguageCode]] valueForKey:@"standaloneQuarterSymbols"]; +} + +/*! Set the standaloneQuarterSymbols +*/ +- (void)setStandaloneQuarterSymbols:(CPArray)aValue +{ + [[_symbols valueForKey:[_locale objectForKey:CPLocaleLanguageCode]] setValue:aValue forKey:@"standaloneQuarterSymbols"]; +} + +/*! Return the shortStandaloneQuarterSymbols +*/ +- (CPArray)shortStandaloneQuarterSymbols +{ + return [[_symbols valueForKey:[_locale objectForKey:CPLocaleLanguageCode]] valueForKey:@"shortStandaloneQuarterSymbols"]; +} + +/*! Set the shortStandaloneQuarterSymbols +*/ +- (void)setShortStandaloneQuarterSymbols:(CPArray)aValue +{ + [[_symbols valueForKey:[_locale objectForKey:CPLocaleLanguageCode]] setValue:aValue forKey:@"shortStandaloneQuarterSymbols"]; +} + + +#pragma mark - +#pragma mark StringFromDate methods + +/*! Return a string representation of a given date. + This method returns (if possible) a representation of the given date with the dateFormat of the CPDateFormatter, otherwise it takes the dateStyle and timeStyle + @param aDate the given date + @return CPString the string representation +*/ - (CPString)stringFromDate:(CPDate)aDate { - // TODO Add locale support. - switch (_dateStyle) - { - case CPDateFormatterShortStyle: - var format = "d/m/Y"; - return aDate.dateFormat(format); + var format, + relativeWord, + result; - default: - return [aDate description]; - } -} + if (!aDate) + return; -- (CPDate)dateFromString:(CPString)aString -{ - if (!aString) - return nil; + [aDate _dateWithTimeZone:_timeZone]; + + if (_dateFormat) + return [self _stringFromDate:aDate format:_dateFormat]; switch (_dateStyle) { + case CPDateFormatterNoStyle: + format = @""; + break; + case CPDateFormatterShortStyle: - var format = "d/m/Y"; - return Date.parseDate(aString, format); + if ([self _isAmericanFormat]) + format = @"M/d/yy"; + else + format = @"dd/MM/yy"; + + break; + + case CPDateFormatterMediumStyle: + if ([self _isAmericanFormat]) + format = @"MMM d, Y"; + else + format = @"d MMM Y"; + + break; + + case CPDateFormatterLongStyle: + if ([self _isAmericanFormat]) + format = @"MMMM d, Y"; + else + format = @"d MMMM Y"; + + break; + + case CPDateFormatterFullStyle: + if ([self _isAmericanFormat]) + format = @"EEEE, MMMM d, Y"; + else + format = @"EEEE d MMMM Y"; + + break; default: - return Date.parseDate(aString); + format = @""; } + + + if ([self doesRelativeDateFormatting]) + { + var language = [_locale objectForKey:CPLocaleLanguageCode], + relativeWords = [relativeDateFormating valueForKey:language]; + + for (var i = 1; i < [relativeWords count]; i = i + 2) + { + var date = [CPDate date]; + date.setHours(aDate.getHours()); + date.setMinutes(aDate.getMinutes()); + date.setSeconds(aDate.getSeconds()); + + date.setMinutes([relativeWords objectAtIndex:i]); + + if (date.getDate() == aDate.getDate() && date.getMonth() && aDate.getMonth() && date.getFullYear() == aDate.getFullYear()) + { + relativeWord = [relativeWords objectAtIndex:(i - 1)]; + format = @""; + break; + } + } + } + + if ((relativeWord || format.length) && _timeStyle != CPDateFormatterNoStyle) + format += @" "; + + switch (_timeStyle) + { + case CPDateFormatterNoStyle: + format += @""; + break; + + case CPDateFormatterShortStyle: + if ([self _isEnglishFormat]) + format += @"h:mm a"; + else + format += @"H:mm"; + + break; + + case CPDateFormatterMediumStyle: + if ([self _isEnglishFormat]) + format += @"h:mm:ss a"; + else + format += @"H:mm:ss" + + break; + + case CPDateFormatterLongStyle: + if ([self _isEnglishFormat]) + format += @"h:mm:ss a z"; + else + format += @"H:mm:ss z"; + + break; + + case CPDateFormatterFullStyle: + if ([self _isEnglishFormat]) + format += @"h:mm:ss a zzzz"; + else + format += @"h:mm:ss zzzz"; + + break; + + default: + format += @""; + } + + result = [self _stringFromDate:aDate format:format]; + + if (relativeWord) + result = relativeWord + result; + + return result; } +/*! Return a string representation of the given objectValue. + This method call the method stringFromDate if possible, otherwise it returns the description of the object + @param anObject + @return a string +*/ - (CPString)stringForObjectValue:(id)anObject { if ([anObject isKindOfClass:[CPDate class]]) return [self stringFromDate:anObject]; else - return [anObject description]; + return nil; } +/*! Return a string + This method call the method stringForObjectValue + @param anObject + @return a string +*/ - (CPString)editingStringForObjectValue:(id)anObject { return [self stringForObjectValue:anObject]; } +/*! Return a string representation of the given date and format + @patam aDate + @param aFormat + @return a string +*/ +- (CPString)_stringFromDate:(CPDate)aDate format:(CPString)aFormat +{ + var length = [aFormat length], + currentToken = [CPString new], + isTextToken = NO, + result = [CPString new]; + + for (var i = 0; i < length; i++) + { + var character = [aFormat characterAtIndex:i]; + + if (isTextToken) + { + if ([character isEqualToString:@"'"]) + { + isTextToken = NO; + result += currentToken; + currentToken = [CPString new]; + } + else + { + currentToken += character; + } + + continue; + } + + if ([character isEqualToString:@"'"]) + { + if (!isTextToken) + { + isTextToken = YES; + result += currentToken; + currentToken = [CPString new]; + } + + continue; + } + + if ([character isEqualToString:@","] || [character isEqualToString:@":"] || [character isEqualToString:@"/"] || [character isEqualToString:@"-"] || [character isEqualToString:@" "]) + { + result += [self _stringFromToken:currentToken date:aDate]; + result += character; + currentToken = [CPString new]; + } + else + { + if ([currentToken length] && ![[currentToken characterAtIndex:0] isEqualToString:character]) + { + result += [self _stringFromToken:currentToken date:aDate]; + currentToken = [CPString new]; + } + + currentToken += character; + + if (i == (length - 1)) + result += [self _stringFromToken:currentToken date:aDate]; + } + } + + return result; +} + +/*! Return a string representation of the given token and date + @param aToken + @param aDate + @return a string +*/ +- (CPString)_stringFromToken:(CPString)aToken date:(CPDate)aDate +{ + if (![aToken length]) + return aToken; + + var character = [aToken characterAtIndex:0], + length = [aToken length], + abbreviation = [[CPTimeZone new] abbreviationForDate:aDate], + timeZone = [CPTimeZone timeZoneWithAbbreviation:abbreviation]; + + switch (character) + { + case @"G": + // TODO + CPLog.warn(@"Token not yet implemented " + aToken); + return [CPString new]; + + case @"y": + var currentLength = [[CPString stringWithFormat:@"%i", aDate.getFullYear()] length]; + + return [self _stringValueForValue:aDate.getFullYear() length:(length == 2)?length:currentLength]; + + case @"Y": + var currentLength = [[CPString stringWithFormat:@"%i", aDate.getFullYear()] length]; + + return [self _stringValueForValue:aDate.getFullYear() length:(length == 2)?length:currentLength]; + + case @"u": + // TODO + CPLog.warn(@"Token not yet implemented " + aToken); + return [CPString new]; + + case @"U": + // TODO + CPLog.warn(@"Token not yet implemented " + aToken); + return [CPString new]; + + case @"Q": + var quarter = 1; + + if (aDate.getMonth() < 6 && aDate.getMonth() > 2) + quarter = 2; + + if (aDate.getMonth() > 5 && aDate.getMonth() < 9) + quarter = 3; + + if (aDate.getMonth() >= 9) + quarter = 4; + + if (length <= 2) + return [self _stringValueForValue:quarter length:MIN(2,length)]; + + if (length == 3) + return [[self shortQuarterSymbols] objectAtIndex:(quarter - 1)]; + + if (length >= 4) + return [[self quarterSymbols] objectAtIndex:(quarter - 1)]; + + case @"q": + var quarter = 1; + + if (aDate.getMonth() < 6 && aDate.getMonth() > 2) + quarter = 2; + + if (aDate.getMonth() > 5 && aDate.getMonth() < 9) + quarter = 3; + + if (aDate.getMonth() >= 9) + quarter = 4; + + if (length <= 2) + return [self _stringValueForValue:quarter length:MIN(2,length)]; + + if (length == 3) + return [[self shortStandaloneQuarterSymbols] objectAtIndex:(quarter - 1)]; + + if (length >= 4) + return [[self standaloneQuarterSymbols] objectAtIndex:(quarter - 1)]; + + case @"M": + var currentLength = [[CPString stringWithFormat:@"%i", aDate.getMonth() + 1] length]; + + if (length <= 2) + return [self _stringValueForValue:(aDate.getMonth() + 1) length:MAX(currentLength,length)]; + + if (length == 3) + return [[self shortMonthSymbols] objectAtIndex:aDate.getMonth()]; + + if (length == 4) + return [[self monthSymbols] objectAtIndex:aDate.getMonth()]; + + if (length >= 5) + return [[self veryShortMonthSymbols] objectAtIndex:aDate.getMonth()]; + + case @"L": + var currentLength = [[CPString stringWithFormat:@"%i", aDate.getMonth() + 1] length]; + + if (length <= 2) + return [self _stringValueForValue:(aDate.getMonth() + 1) length:MAX(currentLength,length)]; + + if (length == 3) + return [[self shortStandaloneMonthSymbols] objectAtIndex:aDate.getMonth()]; + + if (length == 4) + return [[self standaloneMonthSymbols] objectAtIndex:aDate.getMonth()]; + + if (length >= 5) + return [[self veryShortStandaloneMonthSymbols] objectAtIndex:aDate.getMonth()]; + + case @"I": + // Deprecated + CPLog.warn(@"Depreacted - Token not yet implemented " + aToken); + return [CPString new]; + + case @"w": + var d = [aDate copy]; + + d.setHours(0, 0, 0); + d.setDate(d.getDate() + 4 - (d.getDay() || 7)); + + var yearStart = new Date(d.getFullYear(), 0, 1), + weekOfYear = Math.ceil((((d - yearStart) / 86400000) + 1) / 7); + + return [self _stringValueForValue:(weekOfYear + 1) length:MAX(2, length)]; + + case @"W": + var firstDay = new Date(aDate.getFullYear(), aDate.getMonth(), 1).getDay(), + weekOfMonth = Math.ceil((aDate.getDate() + firstDay) / 7); + + return [self _stringValueForValue:weekOfMonth length:1]; + + case @"d": + var currentLength = [[CPString stringWithFormat:@"%i", aDate.getDate()] length]; + + return [self _stringValueForValue:aDate.getDate() length:MAX(length, currentLength)]; + + case @"D": + var oneJan = new Date(aDate.getFullYear(), 0, 1), + dayOfYear = Math.ceil((aDate - oneJan) / 86400000), + currentLength = [[CPString stringWithFormat:@"%i", dayOfYear] length]; + + return [self _stringValueForValue:dayOfYear length:MAX(currentLength, MIN(3, length))]; + + case @"F": + var dayOfWeek = 1, + day = aDate.getDate(); + + if (day > 7 && day < 15) + dayOfWeek = 2; + + if (day > 14 && day < 22) + dayOfWeek = 3; + + if (day > 21 && day < 29) + dayOfWeek = 4; + + if (day > 28) + dayOfWeek = 5; + + return [self _stringValueForValue:dayOfWeek length:1]; + + case @"g": + CPLog.warn(@"Token not yet implemented " + aToken); + return [CPString new]; + + case @"E": + var day = aDate.getDay(); + + if (length <= 3) + return [[self shortWeekdaySymbols] objectAtIndex:day]; + + if (length == 4) + return [[self weekdaySymbols] objectAtIndex:day]; + + if (length >= 5) + return [[self veryShortWeekdaySymbols] objectAtIndex:day]; + + case @"e": + var day = aDate.getDay(); + + if (length <= 2) + return [self _stringValueForValue:(day + 1) length:MIN(2, length)]; + + if (length == 3) + return [[self shortWeekdaySymbols] objectAtIndex:day]; + + if (length == 4) + return [[self weekdaySymbols] objectAtIndex:day]; + + if (length >= 5) + return [[self veryShortWeekdaySymbols] objectAtIndex:day]; + + case @"c": + var day = aDate.getDay(); + + if (length <= 2) + return [self _stringValueForValue:(day + 1) length:aDate.getDay().toString().length]; + + if (length == 3) + return [[self shortStandaloneWeekdaySymbols] objectAtIndex:day]; + + if (length == 4) + return [[self standaloneWeekdaySymbols] objectAtIndex:day]; + + if (length >= 5) + return [[self veryShortStandaloneWeekdaySymbols] objectAtIndex:day]; + + case @"a": + if (aDate.getHours() > 11) + return [self PMSymbol]; + else + return [self AMSymbol]; + + case @"h": + var hours = aDate.getHours(); + + if ([self _isAmericanFormat] || [self _isEnglishFormat]) + { + if (hours == 0) + hours = 12; + else if (hours > 12) + hours = hours - 12; + } + + var currentLength = [[CPString stringWithFormat:@"%i", hours] length]; + + return [self _stringValueForValue:hours length:MAX(currentLength, MIN(2, length))]; + + case @"H": + var currentLength = [[CPString stringWithFormat:@"%i", aDate.getHours()] length]; + + return [self _stringValueForValue:aDate.getHours() length:MAX(currentLength, MIN(2, length))]; + + case @"K": + var hours = aDate.getHours(); + + if (hours > 12) + hours -= 12; + + var currentLength = [[CPString stringWithFormat:@"%i", hours] length]; + + return [self _stringValueForValue:hours length:MAX(currentLength, MIN(2, length))]; + + case @"k": + var hours = aDate.getHours(); + + if (aDate.getHours() == 0) + hours = 24; + + var currentLength = [[CPString stringWithFormat:@"%i", hours] length]; + + return [self _stringValueForValue:hours length:MAX(currentLength, MIN(2, length))]; + + case @"j": + CPLog.warn(@"Token not yet implemented " + aToken); + return [CPString new]; + + case @"m": + var currentLength = [[CPString stringWithFormat:@"%i", aDate.getMinutes()] length]; + + return [self _stringValueForValue:aDate.getMinutes() length:MAX(currentLength, MIN(2, length))]; + + case @"s": + var currentLength = [[CPString stringWithFormat:@"%i", aDate.getMinutes()] length]; + + return [self _stringValueForValue:aDate.getSeconds() length:MIN(2, length)]; + + case @"S": + return [self _stringValueForValue:aDate.getMilliseconds() length:length]; + + case @"A": + var value = aDate.getHours() * 60 * 60 * 1000 + aDate.getMinutes() * 60 * 1000 + aDate.getSeconds() * 1000 + aDate.getMilliseconds(); + + return [self _stringValueForValue:value length:value.toString().length]; + + case @"z": + if (length <= 3) + return [timeZone localizedName:CPTimeZoneNameStyleShortDaylightSaving locale:_locale]; + else + return [timeZone localizedName:CPTimeZoneNameStyleDaylightSaving locale:_locale]; + + case @"Z": + var seconds = [timeZone secondsFromGMTForDate:aDate], + minutes = seconds / 60, + hours = minutes / 60, + result, + diffMinutes = (hours - parseInt(hours)) * 100 * 60 / 100; + + if (length <= 3) + { + result = diffMinutes.toString(); + + while ([result length] < 2) + result = @"0" + result; + + result = ABS(parseInt(hours)) + result; + + while ([result length] < 4) + result = @"0" + result; + + if (seconds > 0) + result = @"+" + result; + else + result = @"-" + result; + + return result; + } + else if (length == 4) + { + result = diffMinutes.toString(); + + while ([result length] < 2) + result = @"0" + result; + + result = @":" + result; + result = ABS(parseInt(hours)) + result; + + while ([result length] < 5) + result = @"0" + result; + + if (seconds > 0) + result = @"+" + result; + else + result = @"-" + result; + + return @"GMT" + result; + } + else + { + result = diffMinutes.toString(); + + while ([result length] < 2) + result = @"0" + result; + + result = @":" + result; + result = ABS(parseInt(hours)) + result; + + while ([result length] < 5) + result = @"0" + result; + + if (seconds > 0) + result = @"+" + result; + else + result = @"-" + result; + + return result; + } + + case @"v": + if (length == 1) + return [timeZone localizedName:CPTimeZoneNameStyleShortGeneric locale:_locale]; + else if (length == 4) + return [timeZone localizedName:CPTimeZoneNameStyleGeneric locale:_locale]; + + return @" "; + + case @"V": + if (length == 1) + { + return [timeZone localizedName:CPTimeZoneNameStyleShortDaylightSaving locale:_locale]; + } + else if (length == 4) + { + CPLog.warn(@"No pattern found for " + aToken); + return @""; + } + + return @" "; + + default: + CPLog.warn(@"No pattern found for " + aToken); + return aToken; + } + + return [CPString new]; +} + + +#pragma mark - +#pragma mark datefromString + +/*! Return a date of the given string + This method returns (if possible) a representation of the given string with the dateFormat of the CPDateFormatter, otherwise it takes the dateStyle and timeStyle + @param aString + @return CPDate the date +*/ +- (CPDate)dateFromString:(CPString)aString +{ + if (aString == nil) + return nil; + + var format; + + if (_dateFormat != nil) + return [self _dateFromString:aString format:_dateFormat]; + + switch (_dateStyle) + { + case CPDateFormatterNoStyle: + format = @""; + break; + + case CPDateFormatterShortStyle: + if ([self _isAmericanFormat]) + format = @"M/d/yy"; + else + format = @"dd/MM/yy"; + + break; + + case CPDateFormatterMediumStyle: + if ([self _isAmericanFormat]) + format = @"MMM d, Y"; + else + format = @"d MMM Y"; + + break; + + case CPDateFormatterLongStyle: + if ([self _isAmericanFormat]) + format = @"MMMM d, Y"; + else + format = @"d MMMM Y"; + + break; + + case CPDateFormatterFullStyle: + if ([self _isAmericanFormat]) + format = @"EEEE, MMMM d, Y"; + else + format = @"EEEE d MMMM Y"; + + break; + + default: + format = @""; + } + + switch (_timeStyle) + { + case CPDateFormatterNoStyle: + format += @""; + break; + + case CPDateFormatterShortStyle: + if ([self _isEnglishFormat]) + format += @" h:mm a"; + else + format += @" H:mm"; + break; + + case CPDateFormatterMediumStyle: + if ([self _isEnglishFormat]) + format += @" h:mm:ss a"; + else + format += @" H:mm:ss" + break; + + case CPDateFormatterLongStyle: + if ([self _isEnglishFormat]) + format += @" h:mm:ss a z"; + else + format += @" H:mm:ss z"; + break; + + case CPDateFormatterFullStyle: + if ([self _isEnglishFormat]) + format += @" h:mm:ss a zzzz"; + else + format += @" h:mm:ss zzzz"; + break; + + default: + format += @""; + } + + return [self _dateFromString:aString format:format]; +} + +/*! Returns a boolean if the given object has been changed or not depending of the given string (use of ref) + @param anObject the given object + @param aString + @param anError, if it returns NO the describe error will be in anError (use of ref) + @return aBoolean for the success or fail of the method +*/ - (BOOL)getObjectValue:(id)anObject forString:(CPString)aString errorDescription:(CPString)anError { - // TODO Error handling. var value = [self dateFromString:aString]; @deref(anObject) = value; + if (!value) + { + @deref(anError) = @"The value \"" + aString + "\" is invalid."; + return NO; + } + return YES; } +/*! Return a date representation of the given string and format + @patam aDate + @param aFormat + @return a string +*/ +- (CPDate)_dateFromString:(CPString)aString format:(CPString)aFormat +{ + if (aString == nil || aFormat == nil) + return nil; + + var currentToken = [CPString new], + isTextToken = NO, + tokens = [CPArray array], + dateComponents = [CPArray array], + patternTokens = [CPArray array]; + + for (var i = 0; i < [aFormat length]; i++) + { + var character = [aFormat characterAtIndex:i]; + + if (isTextToken) + { + if ([character isEqualToString:@"'"]) + currentToken = [CPString new]; + + continue; + } + + if ([character isEqualToString:@"'"]) + { + if (!isTextToken) + isTextToken = YES; + + continue; + } + + if ([character isEqualToString:@","] || [character isEqualToString:@":"] || [character isEqualToString:@"/"] || [character isEqualToString:@"-"] || [character isEqualToString:@" "]) + { + [tokens addObject:currentToken]; + + if ([patternStringTokens containsObject:currentToken]) + [patternTokens addObject:[tokens count] - 1]; + + currentToken = [CPString new]; + } + else + { + if ([currentToken length] && ![[currentToken characterAtIndex:0] isEqualToString:character]) + { + [tokens addObject:currentToken]; + + if ([patternStringTokens containsObject:currentToken]) + [patternTokens addObject:[tokens count] - 1]; + + currentToken = [CPString new]; + } + + currentToken += character; + + if (i == ([aFormat length] - 1)) + { + [tokens addObject:currentToken]; + + if ([patternStringTokens containsObject:currentToken]) + [patternTokens addObject:[tokens count] - 1]; + } + } + } + + isTextToken = NO; + currentToken = [CPString new]; + + var currentIndexSpecialPattern = 0; + + if ([patternTokens count] == 0) + [patternTokens addObject:CPNotFound]; + + for (var i = 0; i < [aString length]; i++) + { + var character = [aString characterAtIndex:i]; + + if (isTextToken) + { + if ([character isEqualToString:@"'"]) + currentToken = [CPString new]; + + continue; + } + + if ([character isEqualToString:@"'"]) + { + if (!isTextToken) + isTextToken = YES; + + continue; + } + + // Need to do this to check if the word match with the token. We can get some words with space... + if ([dateComponents count] == [patternTokens objectAtIndex:currentIndexSpecialPattern]) + { + var j = [self _lastIndexMatchedString:aString token:[tokens objectAtIndex:[dateComponents count]] index:i]; + + if (j == CPNotFound) + return nil; + + currentIndexSpecialPattern++; + [dateComponents addObject:[aString substringWithRange:CPMakeRange(i, (j - i))]]; + i = j; + + continue; + } + + if ([character isEqualToString:@","] || [character isEqualToString:@":"] || [character isEqualToString:@"/"] || [character isEqualToString:@"-"] || [character isEqualToString:@" "]) + { + [dateComponents addObject:currentToken]; + currentToken = [CPString new]; + } + else + { + currentToken += character; + + if (i == ([aString length] - 1)) + [dateComponents addObject:currentToken]; + } + } + + if ([dateComponents count] != [tokens count]) + return nil; + + return [self _dateFromTokens:tokens dateComponents:dateComponents]; +} + +- (CPDate)_dateFromTokens:(CPArray)tokens dateComponents:(CPArray)dateComponents +{ + var defaultTimeZoneSeconds = [_timeZone secondsFromGMT], + dateArray = [2000, 01, 01, 00, 00, 00, @"+0000"], + isPM = NO, + dayOfYear, + dayIndexInWeek, + weekOfYear, + weekOfMonth; + + for (var i = 0; i < [tokens count]; i++) + { + var token = [tokens objectAtIndex:i], + dateComponent = [dateComponents objectAtIndex:i], + character = [token characterAtIndex:0], + length = [token length]; + + switch (character) + { + case @"G": + // TODO + CPLog.warn(@"Token not yet implemented " + token); + break; + + case @"y": + var u = _twoDigitStartDate.getFullYear() % 10, + d = parseInt(_twoDigitStartDate.getFullYear() / 10) % 10, + c = parseInt(_twoDigitStartDate.getFullYear() / 100) % 10, + m = parseInt(_twoDigitStartDate.getFullYear() / 1000) % 10; + + if (length == 2 && dateComponent.length == 2) + { + if ((u + d * 10) >= parseInt(dateComponent)) + dateArray[0] = (c + 1) * 100 + m * 1000 + parseInt(dateComponent); + else + dateArray[0] = c * 100 + m * 1000 + parseInt(dateComponent); + } + else + { + dateArray[0] = parseInt(dateComponent); + } + + break; + + case @"Y": + var u = _twoDigitStartDate.getFullYear() % 10, + d = parseInt(_twoDigitStartDate.getFullYear() / 10) % 10, + c = parseInt(_twoDigitStartDate.getFullYear() / 100) % 10, + m = parseInt(_twoDigitStartDate.getFullYear() / 1000) % 10; + + if (length == 2 && dateComponent.length == 2) + { + if ((u + d * 10) >= parseInt(dateComponent)) + dateArray[0] = (c + 1) * 100 + m * 1000 + parseInt(dateComponent); + else + dateArray[0] = c * 100 + m * 1000 + parseInt(dateComponent); + } + else + { + dateArray[0] = parseInt(dateComponent); + } + + break; + + case @"u": + // TODO + CPLog.warn(@"Token not yet implemented " + token); + break; + + case @"U": + // TODO + CPLog.warn(@"Token not yet implemented " + token); + break; + + case @"Q": + var month; + + if (length <= 2) + month = (parseInt(dateComponent) - 1) * 3; + + if (length == 3) + { + if (![[self shortQuarterSymbols] containsObject:dateComponent]) + return nil; + + month = [[self shortQuarterSymbols] indexOfObject:dateComponent] * 3; + } + + if (length >= 4) + { + if (![[self quarterSymbols] containsObject:dateComponent]) + return nil; + + month = [[self quarterSymbols] indexOfObject:dateComponent] * 3; + } + + if (month > 11) + return nil; + + dateArray[1] = month + 1; + break; + + case @"q": + var month; + + if (length <= 2) + month = (parseInt(dateComponent) - 1) * 3; + + if (length == 3) + { + if (![[self shortQuarterSymbols] containsObject:dateComponent]) + return nil; + + month = [[self shortQuarterSymbols] indexOfObject:dateComponent] * 3; + } + + if (length >= 4) + { + if (![[self quarterSymbols] containsObject:dateComponent]) + return nil; + + month = [[self quarterSymbols] indexOfObject:dateComponent] * 3; + } + + if (month > 11) + return nil; + + dateArray[1] = month + 1; + break; + + case @"M": + var month; + + if (length <= 2) + month = parseInt(dateComponent) + + if (length == 3) + { + if (![[self shortMonthSymbols] containsObject:dateComponent]) + return nil; + + month = [[self shortMonthSymbols] indexOfObject:dateComponent] + 1; + } + + if (length == 4) + { + if (![[self monthSymbols] containsObject:dateComponent]) + return nil; + + month = [[self monthSymbols] indexOfObject:dateComponent] + 1; + } + + if (month > 11 || length >= 5) + return nil; + + dateArray[1] = month; + break; + + case @"L": + var month; + + if (length <= 2) + month = parseInt(dateComponent); + + if (length == 3) + { + if (![[self shortStandaloneMonthSymbols] containsObject:dateComponent]) + return nil; + + month = [[self shortStandaloneMonthSymbols] indexOfObject:dateComponent] + 1; + } + + if (length == 4) + { + if (![[self standaloneMonthSymbols] containsObject:dateComponent]) + return nil; + + month = [[self standaloneMonthSymbols] indexOfObject:dateComponent] + 1; + } + + if (month > 11 || length >= 5) + return nil; + + dateArray[1] = month; + break; + + case @"I": + // Deprecated + CPLog.warn(@"Depreacted - Token not yet implemented " + token); + break; + + case @"w": + if (dateComponent > 52) + return nil; + + weekOfYear = dateComponent; + break; + + case @"W": + if (dateComponent > 52) + return nil; + + weekOfMonth = dateComponent; + break; + + case @"d": + dateArray[2] = parseInt(dateComponent); + break; + + case @"D": + if (isNaN(parseInt(dateComponent)) || parseInt(dateComponent) > 345) + return nil; + + dayOfYear = parseInt(dateComponent); + break; + + case @"F": + if (isNaN(parseInt(dateComponent)) || parseInt(dateComponent) > 5 || parseInt(dateComponent) == 0) + return nil; + + if (parseInt(dateComponent) == 1) + dateArray[2] = 1; + + if (parseInt(dateComponent) == 2) + dateArray[2] = 8; + + if (parseInt(dateComponent) == 3) + dateArray[2] = 15; + + if (parseInt(dateComponent) == 4) + dateArray[2] = 22; + + if (parseInt(dateComponent) == 5) + dateArray[2] = 29; + + break; + + case @"g": + CPLog.warn(@"Token not yet implemented " + token); + break; + + case @"E": + if (length <= 3) + dayIndexInWeek = [[self shortWeekdaySymbols] indexOfObject:dateComponent]; + + if (length == 4) + dayIndexInWeek = [[self weekdaySymbols] indexOfObject:dateComponent]; + + if (dayIndexInWeek == CPNotFound || length >= 5) + return nil; + + break; + + case @"e": + if (length <= 2 && isNaN(parseInt(dateComponent))) + return nil; + + if (length <= 2) + dayIndexInWeek = parseInt(dateComponent); + + if (length == 3) + dayIndexInWeek = [[self shortWeekdaySymbols] indexOfObject:dateComponent]; + + if (length == 4) + dayIndexInWeek = [[self weekdaySymbols] indexOfObject:dateComponent]; + + if (dayIndexInWeek == CPNotFound || length >= 5) + return nil; + + break; + + case @"c": + if (length <= 2 && isNaN(parseInt(dateComponent))) + return nil; + + if (length <= 2) + dayIndexInWeek = dateComponent; + + if (length == 3) + dayIndexInWeek = [[self shortStandaloneWeekdaySymbols] indexOfObject:dateComponent]; + + if (length == 4) + dayIndexInWeek = [[self standaloneWeekdaySymbols] indexOfObject:dateComponent]; + + if (length == 5) + dayIndexInWeek = [[self veryShortStandaloneWeekdaySymbols] indexOfObject:dateComponent]; + + if (dayIndexInWeek == CPNotFound || length >= 5) + return nil; + + break; + + case @"a": + if (![dateComponent isEqualToString:[self PMSymbol]] && ![dateComponent isEqualToString:[self AMSymbol]]) + return nil; + + if ([dateComponent isEqualToString:[self PMSymbol]]) + isPM = YES; + + break; + + case @"h": + if (parseInt(dateComponent) < 0 || parseInt(dateComponent) > 12) + return nil; + + dateArray[3] = parseInt(dateComponent); + break; + + case @"H": + if (parseInt(dateComponent) < 0 || parseInt(dateComponent) > 23) + return nil; + + dateArray[3] = parseInt(dateComponent); + break; + + case @"K": + if (parseInt(dateComponent) < 0 || parseInt(dateComponent) > 11) + return nil; + + dateArray[3] = parseInt(dateComponent); + break; + + case @"k": + if (parseInt(dateComponent) < 0 || parseInt(dateComponent) > 12) + return nil; + + dateArray[3] = parseInt(dateComponent); + break; + + case @"j": + CPLog.warn(@"Token not yet implemented " + token); + break; + + case @"m": + var minutes = parseInt(dateComponent); + + if (minutes > 59) + return nil; + + dateArray[4] = minutes; + break; + + case @"s": + var seconds = parseInt(dateComponent); + + if (seconds > 59) + return nil; + + dateArray[5] = seconds; + break; + + case @"S": + if (isNaN(parseInt(dateComponent))) + return nil; + + break; + + case @"A": + if (isNaN(parseInt(dateComponent))) + return nil; + + var millisecondsInDay = parseInt(dateComponent), + tmpDate = new Date(); + + tmpDate.setHours(0); + tmpDate.setMinutes(0); + tmpDate.setSeconds(0); + tmpDate.setMilliseconds(0); + + tmpDate.setMilliseconds(millisecondsInDay); + + dateArray[3] = tmpDate.getHours(); + dateArray[4] = tmpDate.getMinutes(); + dateArray[5] = tmpDate.getSeconds(); + break; + + case @"z": + if (length < 4) + var seconds = [self _secondsFromTimeZoneString:dateComponent style:CPTimeZoneNameStyleShortDaylightSaving]; + else + var seconds = [self _secondsFromTimeZoneString:dateComponent style:CPTimeZoneNameStyleDaylightSaving]; + + if (!seconds) + seconds = [self _secondsFromTimeZoneDefaultFormatString:dateComponent]; + + if (!seconds) + return nil; + + break; + + case @"Z": + var seconds = [self _secondsFromTimeZoneDefaultFormatString:dateComponent]; + + if (!seconds) + return nil; + + break; + + case @"v": + if (length <= 3) + var seconds = [self _secondsFromTimeZoneString:dateComponent style:CPTimeZoneNameStyleShortGeneric]; + else + var seconds = [self _secondsFromTimeZoneString:dateComponent style:CPTimeZoneNameStyleGeneric]; + + if (!seconds && length == 4) + seconds = [self _secondsFromTimeZoneDefaultFormatString:dateComponent]; + + if (!seconds) + return nil; + + break; + + case @"V": + if (length <= 3) + var seconds = [self _secondsFromTimeZoneString:dateComponent style:CPTimeZoneNameStyleShortStandard]; + else + var seconds = [self _secondsFromTimeZoneString:dateComponent style:CPTimeZoneNameStyleStandard]; + + if (!seconds) + seconds = [self _secondsFromTimeZoneDefaultFormatString:dateComponent]; + + if (!seconds) + return nil; + + break; + + default: + CPLog.warn(@"No pattern found for " + token); + return nil; + } + } + + // Make the calcul day of the year + if (dayOfYear) + { + var tmpDate = new Date(); + tmpDate.setFullYear(dateArray[0]); + tmpDate.setMonth(0); + + tmpDate.setDate(dayOfYear) + + dateArray[1] = tmpDate.getMonth() + 1; + dateArray[2] = tmpDate.getDate(); + } + + if (weekOfMonth) + dateArray[2] = (weekOfMonth - 1) * 7 + 1; + + if (weekOfYear) + { + var tmpDate = new Date(); + tmpDate.setFullYear(dateArray[0]); + tmpDate.setMonth(0); + tmpDate.setDate(1); + + while (tmpDate.getDay() != 0) + tmpDate.setDate(tmpDate.getDate() + 1); + + tmpDate.setDate(tmpDate.getDate() + (weekOfYear - 1) * 7); + + dateArray[1] = tmpDate.getMonth() + 1; + dateArray[2] = tmpDate.getDate() - 1; + } + + // Check if the day is possible in the current month + var tmpDate = new Date(); + tmpDate.setMonth(dateArray[1] - 1); + tmpDate.setFullYear(dateArray[0]); + + if (dateArray[2] <= 0 || dateArray[2] > [tmpDate _daysInMonth]) + return nil; + + // PM hours + if (isPM) + dateArray[3] += 12; + + if (isNaN(parseInt(dateArray[0])) || isNaN(parseInt(dateArray[1])) || isNaN(parseInt(dateArray[2])) || isNaN(parseInt(dateArray[3])) || isNaN(parseInt(dateArray[4])) || isNaN(parseInt(dateArray[5])) || isNaN(parseInt(dateArray[6]))) + return nil; + + var dateResult = [[CPDate alloc] initWithString:[CPString stringWithFormat:@"%04d-%02d-%02d %02d:%02d:%02d %s", dateArray[0], dateArray[1], dateArray[2], dateArray[3], dateArray[4], dateArray[5], dateArray[6]]]; + dateResult.setSeconds(dateResult.getSeconds() - defaultTimeZoneSeconds + 60 * 60); + + return dateResult; +} + + +#pragma mark - +#pragma mark Utils + +- (CPString)_stringValueForValue:(id)aValue length:(int)length +{ + var string = [CPString stringWithFormat:@"%i", aValue]; + + if ([string length] == length) + return string; + + if ([string length] > length) + return [string substringFromIndex:([string length] - length)]; + + while ([string length] < length) + string = [CPString stringWithFormat:@"0%s", string]; + + return string; +} + +/*! Check if we are in the american format or not. Depending on the locale +*/ +- (BOOL)_isAmericanFormat +{ + return [[_locale objectForKey:CPLocaleCountryCode] isEqualToString:@"US"]; +} + +/*! Check if we are in the english format or not. Depending on the locale +*/ +- (BOOL)_isEnglishFormat +{ + return [[_locale objectForKey:CPLocaleLanguageCode] isEqualToString:@"en"]; +} + +/*! Returns the number of second from a time zone (-8000 or HGP-8:35 or GMT-08:00) +*/ +- (int)_secondsFromTimeZoneDefaultFormatString:(CPString)aTimeZoneFormatString +{ + var format = /\w*([HPG-GMT])?([+-])(\d{1,2})([:])?(\d{2})\w*/, + result = aTimeZoneFormatString.match(new RegExp(format)), + seconds = 0; + + if (!result) + return nil; + + seconds = result[3] * 60 * 60 + result[5] * 60; + + if ([result[2] isEqualToString:@"-"]) + seconds = -seconds; + + return seconds; +} + +/*! Return the number of seconds from a timeZoneString +*/ +- (int)_secondsFromTimeZoneString:(CPString)aTimeZoneString style:(NSTimeZoneNameStyle)aStyle +{ + var timeZone = [CPTimeZone _timeZoneFromString:aTimeZoneString style:aStyle locale:_locale]; + + if (!timeZone) + return nil; + + return [timeZone secondsFromGMT]; +} + +/*! This method is used to know if the given string match with the token. + @param aString + @param aToken + @param anIndex the current index in the string + @return an index who describes the position of the end of the word for the token +*/ +- (int)_lastIndexMatchedString:(CPString)aString token:(CPString)aToken index:anIndex +{ + var character = [aToken characterAtIndex:0], + length = [aToken length], + targetedArray, + format = /\w*([HPG-GMT])?([+-])(\d{1,2})([:])?(\d{2})\w*/, + result = aString.match(new RegExp(format)); + + switch (character) + { + case @"Q": + if (length == 3) + targetedArray = [self shortQuarterSymbols]; + + if (length >= 4) + targetedArray = [self quarterSymbols]; + + break; + + case @"q": + if (length == 3) + targetedArray = [self shortStandaloneQuarterSymbols]; + + if (length >= 4) + targetedArray = [self standaloneQuarterSymbols]; + + break; + + case @"M": + if (length == 3) + targetedArray = [self shortMonthSymbols]; + + if (length == 4) + targetedArray = [self monthSymbols]; + + if (length >= 5) + targetedArray = [self veryShortMonthSymbols]; + + break; + + case @"L": + if (length == 3) + targetedArray = [self shortStandaloneMonthSymbols]; + + if (length == 4) + targetedArray = [self standaloneMonthSymbols]; + + if (length >= 5) + targetedArray = [self veryShortStandaloneMonthSymbols]; + + break; + + case @"E": + if (length <= 3) + targetedArray = [self shortWeekdaySymbols]; + + if (length == 4) + targetedArray = [self weekdaySymbols]; + + if (length >= 5) + targetedArray = [self veryShortWeekdaySymbols]; + + break; + + case @"e": + if (length == 3) + targetedArray = [self shortWeekdaySymbols]; + + if (length == 4) + targetedArray = [self weekdaySymbols]; + + if (length >= 5) + targetedArray = [self veryShortWeekdaySymbols]; + + break; + + case @"c": + if (length == 3) + targetedArray = [self shortStandaloneWeekdaySymbols]; + + if (length == 4) + targetedArray = [self standaloneWeekdaySymbols]; + + if (length >= 5) + targetedArray = [self veryShortStandaloneWeekdaySymbols]; + + break; + + case @"a": + targetedArray = [[self PMSymbol], [self AMSymbol]]; + break; + + case @"z": + if (length <= 3) + targetedArray = [CPTimeZone _namesForStyle:CPTimeZoneNameStyleShortDaylightSaving locale:_locale]; + else + targetedArray = [CPTimeZone _namesForStyle:CPTimeZoneNameStyleDaylightSaving locale:_locale]; + + if (result) + return anIndex + [result objectAtIndex:0].length; + + break; + + case @"Z": + if (result) + return anIndex + [result objectAtIndex:0].length; + + return CPNotFound; + + case @"v": + if (length == 1) + targetedArray = [CPTimeZone _namesForStyle:CPTimeZoneNameStyleShortGeneric locale:_locale]; + else if (length == 4) + targetedArray = [CPTimeZone _namesForStyle:CPTimeZoneNameStyleGeneric locale:_locale]; + + if (result) + return anIndex + [result objectAtIndex:0].length; + + break; + + case @"V": + if (length == 1) + targetedArray = [CPTimeZone _namesForStyle:CPTimeZoneNameStyleShortStandard locale:_locale]; + + if (result) + return anIndex + [result objectAtIndex:0].length; + + break; + + default: + CPLog.warn(@"No pattern found for " + aToken); + return CPNotFound; + } + + for (var i = 0; i < [targetedArray count]; i++) + { + var currentObject = [targetedArray objectAtIndex:i], + range = [aString rangeOfString:currentObject]; + + if (range.length == 0) + continue; + + character = [aString characterAtIndex:(anIndex + range.length)]; + + if ([character isEqualToString:@"'"] || [character isEqualToString:@","] || [character isEqualToString:@":"] || [character isEqualToString:@"/"] || [character isEqualToString:@"-"] || [character isEqualToString:@" "] || [character isEqualToString:@""]) + return anIndex + range.length; + } + + return CPNotFound; +} + @end -var CPDateFormatterStyleKey = @"CPDateFormatterStyle", +var CPDateFormatterDateStyleKey = @"CPDateFormatterDateStyle", + CPDateFormatterTimeStyleKey = @"CPDateFormatterTimeStyleKey", + CPDateFormatterFormatterBehaviorKey = @"CPDateFormatterFormatterBehaviorKey", + CPDateFormatterDoseRelativeDateFormattingKey = @"CPDateFormatterDoseRelativeDateFormattingKey", + CPDateFormatterDateFormatKey = @"CPDateFormatterDateFormatKey", + CPDateFormatterAllowNaturalLanguageKey = @"CPDateFormatterAllowNaturalLanguageKey", CPDateFormatterLocaleKey = @"CPDateFormatterLocaleKey"; @implementation CPDateFormatter (CPCoding) @@ -122,8 +2069,13 @@ var CPDateFormatterStyleKey = @"CPDateFormatterStyle", if (self) { - _dateStyle = [aCoder decodeIntForKey:CPDateFormatterStyleKey]; + _allowNaturalLanguage = [aCoder decodeBoolForKey:CPDateFormatterAllowNaturalLanguageKey]; + _dateFormat = [aCoder decodeObjectForKey:CPDateFormatterDateFormatKey]; + _dateStyle = [aCoder decodeIntForKey:CPDateFormatterDateStyleKey]; + _doesRelativeDateFormatting = [aCoder decodeBoolForKey:CPDateFormatterDoseRelativeDateFormattingKey]; + _formatterBehavior = [aCoder decodeIntForKey:CPDateFormatterFormatterBehaviorKey]; _locale = [aCoder decodeObjectForKey:CPDateFormatterLocaleKey]; + _timeStyle = [aCoder decodeIntForKey:CPDateFormatterTimeStyleKey]; } return self; @@ -133,8 +2085,26 @@ var CPDateFormatterStyleKey = @"CPDateFormatterStyle", { [super encodeWithCoder:aCoder]; - [aCoder encodeInt:_dateStyle forKey:CPDateFormatterStyleKey]; + [aCoder encodeBool:_allowNaturalLanguage forKey:CPDateFormatterAllowNaturalLanguageKey]; + [aCoder encodeInt:_dateStyle forKey:CPDateFormatterDateStyleKey]; + [aCoder encodeObject:_dateFormat forKey:CPDateFormatterDateFormatKey]; + [aCoder encodeBool:_doesRelativeDateFormatting forKey:CPDateFormatterDoseRelativeDateFormattingKey]; + [aCoder encodeInt:_formatterBehavior forKey:CPDateFormatterFormatterBehaviorKey]; [aCoder encodeInt:_locale forKey:CPDateFormatterLocaleKey]; + [aCoder encodeInt:_timeStyle forKey:CPDateFormatterTimeStyleKey]; } @end + + +@implementation CPDate (CPTimeZone) + +/*! Convert a date from a timeZone +*/ +- (void)_dateWithTimeZone:(CPTimeZone)aTimeZone +{ + self.setSeconds(self.getSeconds() - [aTimeZone secondsFromGMTForDate:self]); + self.setSeconds(self.getSeconds() + [aTimeZone secondsFromGMT]); +} + +@end \ No newline at end of file diff --git a/Foundation/CPTimeZone.j b/Foundation/CPTimeZone.j new file mode 100644 index 000000000..1bd2d5d7a --- /dev/null +++ b/Foundation/CPTimeZone.j @@ -0,0 +1,630 @@ +/* CPTimeZone.j +* Foundation +* +* Created by Alexandre Wilhelm +* Copyright 2012 +* +* This library is free software; you can redistribute it and/or +* modify it under the terms of the GNU Lesser General Public +* License as published by the Free Software Foundation; either +* version 2.1 of the License, or (at your option) any later version. +* +* This library is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +* Lesser General Public License for more details. +* +* You should have received a copy of the GNU Lesser General Public +* License along with this library; if not, write to the Free Software +* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +@import "CPObject.j" +@import "CPString.j" +@import "CPDate.j" +@import "CPLocale.j" + +CPTimeZoneNameStyleStandard = 0; +CPTimeZoneNameStyleShortStandard = 1; +CPTimeZoneNameStyleDaylightSaving = 2; +CPTimeZoneNameStyleShortDaylightSaving = 3; +CPTimeZoneNameStyleGeneric = 4; +CPTimeZoneNameStyleShortGeneric = 5; + +CPSystemTimeZoneDidChangeNotification = @"CPSystemTimeZoneDidChangeNotification"; + +var abbreviationDictionary, + timeDifferenceFromUTC, + knownTimeZoneNames, + defaultTimeZone, + localTimeZone, + systemTimeZone, + timeZoneDataVersion, + localizedName; + +/*! + @class CPTimeZone + @ingroup foundation + @brief CPTimeZone is a class to define the behvior of time zone object (like CPDatePicker) +*/ +@implementation CPTimeZone : CPObject +{ + CPData _data @accessors(property=data, readonly); + CPInteger _secondsFromGMT @accessors(property=secondFromGMT, readonly); + CPString _abbreviation @accessors(property=abbreviation, readonly); + CPString _name @accessors(property=name, readonly); +} + +/*! Initialize the default value of the class +*/ ++ (void)initialize +{ + if (self !== [CPTimeZone class]) + return; + + knownTimeZoneNames = [ + @"America/Halifax", + @"America/Juneau", + @"America/Juneau", + @"America/Argentina/Buenos_Aires", + @"America/Halifax", + @"Asia/Dhaka", + @"America/Sao_Paulo", + @"America/Sao_Paulo", + @"Europe/London", + @"Africa/Harare", + @"America/Chicago", + @"Europe/Paris", + @"Europe/Paris", + @"America/Santiago", + @"America/Santiago", + @"America/Bogota", + @"America/Chicago", + @"Africa/Addis_Ababa", + @"America/New_York", + @"Europe/Istanbul", + @"Europe/Istanbul", + @"America/New_York", + @"GMT", + @"Asia/Dubai", + @"Asia/Hong_Kong", + @"Pacific/Honolulu", + @"Asia/Bangkok", + @"Asia/Tehran", + @"Asia/Calcutta", + @"Asia/Tokyo", + @"Asia/Seoul", + @"America/Denver", + @"Europe/Moscow", + @"Europe/Moscow", + @"America/Denver", + @"Pacific/Auckland", + @"Pacific/Auckland", + @"America/Los_Angeles", + @"America/Lima", + @"Asia/Manila", + @"Asia/Karachi", + @"America/Los_Angeles", + @"Asia/Singapore", + @"UTC", + @"Africa/Lagos", + @"Europe/Lisbon", + @"Europe/Lisbon", + @"Asia/Jakarta" + ]; + + abbreviationDictionary = @{ + @"ADT" : @"America/Halifax", + @"AKDT" : @"America/Juneau", + @"AKST" : @"America/Juneau", + @"ART" : @"America/Argentina/Buenos_Aires", + @"AST" : @"America/Halifax", + @"BDT" : @"Asia/Dhaka", + @"BRST" : @"America/Sao_Paulo", + @"BRT" : @"America/Sao_Paulo", + @"BST" : @"Europe/London", + @"CAT" : @"Africa/Harare", + @"CDT" : @"America/Chicago", + @"CEST" : @"Europe/Paris", + @"CET" : @"Europe/Paris", + @"CLST" : @"America/Santiago", + @"CLT" : @"America/Santiago", + @"COT" : @"America/Bogota", + @"CST" : @"America/Chicago", + @"EAT" : @"Africa/Addis_Ababa", + @"EDT" : @"America/New_York", + @"EEST" : @"Europe/Istanbul", + @"EET" : @"Europe/Istanbul", + @"EST" : @"America/New_York", + @"GMT" : @"GMT", + @"GST" : @"Asia/Dubai", + @"HKT" : @"Asia/Hong_Kong", + @"HST" : @"Pacific/Honolulu", + @"ICT" : @"Asia/Bangkok", + @"IRST" : @"Asia/Tehran", + @"IST" : @"Asia/Calcutta", + @"JST" : @"Asia/Tokyo", + @"KST" : @"Asia/Seoul", + @"MDT" : @"America/Denver", + @"MSD" : @"Europe/Moscow", + @"MSK" : @"Europe/Moscow", + @"MST" : @"America/Denver", + @"NZDT" : @"Pacific/Auckland", + @"NZST" : @"Pacific/Auckland", + @"PDT" : @"America/Los_Angeles", + @"PET" : @"America/Lima", + @"PHT" : @"Asia/Manila", + @"PKT" : @"Asia/Karachi", + @"PST" : @"America/Los_Angeles", + @"SGT" : @"Asia/Singapore", + @"UTC" : @"UTC", + @"WAT" : @"Africa/Lagos", + @"WEST" : @"Europe/Lisbon", + @"WET" : @"Europe/Lisbon", + @"WIT" : @"Asia/Jakarta" + }; + + timeDifferenceFromUTC = @{ + @"ADT" : -180, + @"AKDT" : -480, + @"AKST" : -540, + @"ART" : -180, + @"AST" : -240, + @"BDT" : 360, + @"BRST" : -120, + @"BRT" : -180, + @"BST" : 60, + @"CAT" : 120, + @"CDT" : -300, + @"CEST" : 120, + @"CET" : 60, + @"CLST" : -180, + @"CLT" : -240, + @"COT" : -300, + @"CST" : -360, + @"EAT" : 180, + @"EDT" : -240, + @"EEST" : 180, + @"EET" : 120, + @"EST" : -300, + @"GMT" : 0, + @"GST" : 240, + @"HKT" : 480, + @"HST" : -600, + @"ICT" : 420, + @"IRST" : 210, + @"IST" : 330, + @"JST" : 540, + @"KST" : 540, + @"MDT" : -300, + @"MSD" : 240, + @"MSK" : 240, + @"MST" : -420, + @"NZDT" : 900, + @"NZST" : 900, + @"PDT" : -420, + @"PET" : -300, + @"PHT" : 480, + @"PKT" : 300, + @"PST" : -480, + @"SGT" : 480, + @"UTC" : 0, + @"WAT" : -540, + @"WEST" : 60, + @"WET" : 0, + @"WIT" : 540 + }; + + var englishLocalizedName = @{ + @"EDT" : [@"Eastern Standard Time", @"EST", @"Eastern Daylight Time", @"EDT", @"Eastern Time", @"ET"], + @"GMT" : [@"GMT", @"GMT", @"GMT", @"GMT", @"GMT", @"GMT"], + @"AST" : [@"Atlantic Standard Time", @"AST", @"Atlantic Daylight Time", @"ADT", @"Atlantic Time", @"AT"], + @"IRST" : [@"Iran Standard Time", @"GMT+03:30", @"Iran Daylight Time", @"GMT+03:30", @"Iran Time", @"Iran Time"], + @"ICT" : [@"Indochina Time", @"GMT+07:00", @"GMT+07:00", @"GMT+07:00", @"Indochina Time", @"Thailand Time"], + @"PET" : [@"Peru Standard Time", @"GMT-05:00", @"Peru Summer Time", @"GMT-05:00", @"Peru Standard Time", @"Peru Time"], + @"KST" : [@"Korean Standard Time", @"GMT+09:00", @"Korean Daylight Time", @"GMT+09:00", @"Korean Standard Time", @"South Korea Time"], + @"PST" : [@"Pacific Standard Time", @"PST", @"Pacific Daylight Time", @"PDT", @"Pacific Time", @"PT"], + @"CDT" : [@"Central Standard Time", @"CST", @"Central Daylight Time", @"CDT", @"Central Time", @"CT"], + @"EEST" : [@"Eastern European Standard Time", @"GMT+02:00", @"Eastern European Summer Time", @"GMT+03:00", @"Eastern European Time", @"Turkey Time"], + @"NZDT" : [@"New Zealand Standard Time", @"GMT+12:00", @"New Zealand Daylight Time", @"GMT+13:00", @"New Zealand Time", @"New Zealand Time (Auckland)"], + @"WEST" : [@"Western European Standard Time", @"GMT", @"Western European Summer Time", @"GMT+01:00", @"Western European Time", @"Portugal Time (Lisbon)"], + @"EAT" : [@"East Africa Time", @"GMT+03:00", @"GMT+03:00", @"GMT+03:00", @"East Africa Time", @"Ethiopia Time"], + @"HKT" : [@"Hong Kong Standard Time", @"GMT+08:00", @"Hong Kong Summer Time", @"GMT+08:00", @"Hong Kong Standard Time", @"Hong Kong SAR China Time"], + @"IST" : [@"India Standard Time", @"GMT+05:30", @"GMT+05:30", @"GMT+05:30", @"India Standard Time", @"India Time"], + @"MDT" : [@"Mountain Standard Time", @"MST", @"Mountain Daylight Time", @"MDT", @"Mountain Time", @"MT"], + @"NZST" : [@"New Zealand Standard Time", @"GMT+12:00", @"New Zealand Daylight Time", @"GMT+13:00", @"New Zealand Time", @"New Zealand Time (Auckland)"], + @"WIT" : [@"Western Indonesia Time", @"GMT+07:00", @"GMT+07:00", @"GMT+07:00", @"Western Indonesia Time", @"Indonesia Time (Jakarta)"], + @"ADT" : [@"Atlantic Standard Time", @"AST", @"Atlantic Daylight Time", @"ADT", @"Atlantic Time", @"AT"], + @"BST" : [@"Greenwich Mean Time", @"GMT", @"British Summer Time", @"GMT+01:00", @"United Kingdom Time", @"United Kingdom Time"], + @"ART" : [@"Argentina Standard Time", @"GMT-03:00", @"Argentina Summer Time", @"GMT-03:00", @"Argentina Standard Time", @"Argentina Time (Buenos Aires)"], + @"CAT" : [@"Central Africa Time", @"GMT+02:00", @"GMT+02:00", @"GMT+02:00", @"Central Africa Time", @"Zimbabwe Time"], + @"GST" : [@"Gulf Standard Time", @"GMT+04:00", @"GMT+04:00", @"GMT+04:00", @"Gulf Standard Time", @"United Arab Emirates Time"], + @"PDT" : [@"Pacific Standard Time", @"PST", @"Pacific Daylight Time", @"PDT", @"Pacific Time", @"PT"], + @"SGT" : [@"Singapore Standard Time", @"GMT+08:00", @"GMT+08:00", @"GMT+08:00", @"Singapore Standard Time", @"Singapore Time"], + @"COT" : [@"Colombia Standard Time", @"GMT-05:00", @"Colombia Summer Time", @"GMT-05:00", @"Colombia Standard Time", @"Colombia Time"], + @"PKT" : [@"Pakistan Standard Time", @"GMT+05:00", @"Pakistan Summer Time", @"GMT+05:00", @"Pakistan Standard Time", @"Pakistan Time"], + @"EET" : [@"Eastern European Standard Time", @"GMT+02:00", @"Eastern European Summer Time", @"GMT+03:00", @"Eastern European Time", @"Turkey Time"], + @"UTC" : [@"GMT", @"GMT", @"GMT", @"GMT", @"GMT", @"GMT"], + @"WAT" : [@"West Africa Standard Time", @"GMT+01:00", @"West Africa Summer Time", @"GMT+01:00", @"West Africa Standard Time", @"Nigeria Time"], + @"EST" : [@"Eastern Standard Time", @"EST", @"Eastern Daylight Time", @"EDT", @"Eastern Time", @"ET"], + @"JST" : [@"Japan Standard Time", @"GMT+09:00", @"Japan Daylight Time", @"GMT+09:00", @"Japan Standard Time", @"Japan Time"], + @"CLST" : [@"Chile Standard Time", @"GMT-04:00", @"Chile Summer Time", @"GMT-04:00", @"Chile Time", @"Chile Time (Santiago)"], + @"CET" : [@"Central European Standard Time", @"GMT+01:00", @"Central European Summer Time", @"GMT+02:00", @"Central European Time", @"France Time"], + @"BDT" : [@"Bangladesh Standard Time", @"GMT+06:00", @"Bangladesh Summer Time", @"GMT+06:00", @"Bangladesh Standard Time", @"Bangladesh Time"], + @"MSK" : [@"Moscow Standard Time", @"GMT+04:00", @"Moscow Summer Time", @"GMT+04:00", @"Moscow Standard Time", @"Russia Time (Moscow)"], + @"AKDT" : [@"Alaska Standard Time", @"AKST", @"Alaska Daylight Time", @"AKDT", @"Alaska Time", @"AKT"], + @"CLT" : [@"Chile Standard Time", @"GMT-04:00", @"Chile Summer Time", @"GMT-04:00", @"Chile Time", @"Chile Time (Santiago)"], + @"AKST" : [@"Alaska Standard Time", @"AKST", @"Alaska Daylight Time", @"AKDT", @"Alaska Time", @"AKT"], + @"BRST" : [@"Brasilia Standard Time", @"GMT-03:00", @"Brasilia Summer Time", @"GMT-03:00", @"Brasilia Time", @"Brazil Time (Sao Paulo)"], + @"BRT" : [@"Brasilia Standard Time", @"GMT-03:00", @"Brasilia Summer Time", @"GMT-03:00", @"Brasilia Time", @"Brazil Time (Sao Paulo)"], + @"CEST" : [@"Central European Standard Time", @"GMT+01:00", @"Central European Summer Time", @"GMT+02:00", @"Central European Time", @"France Time"], + @"CST" : [@"Central Standard Time", @"CST", @"Central Daylight Time", @"CDT", @"Central Time", @"CT"], + @"HST" : [@"Hawaii-Aleutian Standard Time", @"HST", @"Hawaii-Aleutian Daylight Time", @"HDT", @"Hawaii-Aleutian Standard Time", @"HST"], + @"MSD" : [@"Moscow Standard Time", @"GMT+04:00", @"Moscow Summer Time", @"GMT+04:00", @"Moscow Standard Time", @"Russia Time (Moscow)"], + @"MST" : [@"Mountain Standard Time", @"MST", @"Mountain Daylight Time", @"MDT", @"Mountain Time", @"MT"], + @"PHT" : [@"Philippine Standard Time", @"GMT+08:00", @"Philippine Summer Time", @"GMT+08:00", @"Philippine Standard Time", @"Philippines Time"], + @"WET" : [@"Western European Standard Time", @"GMT", @"Western European Summer Time", @"GMT+01:00", @"Western European Time", @"Portugal Time (Lisbon)"] + }; + + var date = [CPDate date], + abbreviation = String(String(date).split("(")[1]).split(")")[0]; + + localTimeZone = [self timeZoneWithAbbreviation:abbreviation]; + systemTimeZone = [self timeZoneWithAbbreviation:abbreviation]; + defaultTimeZone = [self timeZoneWithAbbreviation:abbreviation]; + + localizedName = @{ + @"en" : englishLocalizedName, + @"fr" : @{}, + @"de" : @{}, + @"es" : @{} + }; + + timeZoneDataVersion = nil; +} + + +#pragma mark - +#pragma mark Class constructor + +/*! Returns a time zone from the given abbreviation. + Returns nil if the given abbreviation doesn't match with any abbreviations + @param abbreviation the given abreviation + @return a new instance of CPTimeZone +*/ ++ (id)timeZoneWithAbbreviation:(CPString)abbreviation +{ + if (![abbreviationDictionary containsKey:abbreviation]) + return nil; + + return [[CPTimeZone alloc] _initWithName:[abbreviationDictionary valueForKey:abbreviation] abbreviation:abbreviation]; +} + +/*! Return a time zone from the given timeZone name + Returns nil if the given timeZone name doesn't match with any abbreviations + Raises an exception if tzName is nil + @param tzName the timeZone name + @return a new instance of CPTimeZone +*/ ++ (id)timeZoneWithName:(CPString)tzName +{ + return [[CPTimeZone alloc] initWithName:tzName]; +} + +/*! Return a time zone from the given timeZone name and data + Returns nil if the given timeZone name doesn't match with any abbreviations + Raises an exception if tzName is nil + @param tzName the timeZone name + @param data the data + @return a new instance of CPTimeZone +*/ ++ (id)timeZoneWithName:(CPString)tzName data:(CPData)data +{ + return [[CPTimeZone alloc] initWithName:tzName data:data]; +} + +/*! Return a time zone from the given seconds + Returns nil if the number of seconds doesn't match with any offset + @param seconds the number of seconds + @return a new instance of CPTimeZone +*/ ++ (id)timeZoneForSecondsFromGMT:(CPInteger)seconds +{ + var minutes = seconds / 60, + keys = [timeDifferenceFromUTC keyEnumerator], + key, + abbreviation = nil; + + while (key = [keys nextObject]) + { + var value = [timeDifferenceFromUTC valueForKey:key]; + + if (value == minutes) + { + abbreviation = key; + break; + } + } + + if (!abbreviation) + return nil; + + return [self timeZoneWithAbbreviation:abbreviation]; +} + +/*! @ignore +*/ ++ (id)_timeZoneFromString:(CPString)aTimeZoneString style:(NSTimeZoneNameStyle)style locale:(CPLocale)_locale +{ + if ([abbreviationDictionary containsKey:aTimeZoneString]) + return [self timeZoneWithAbbreviation:aTimeZoneString]; + + var dict = [localizedName valueForKey:[_locale objectForKey:CPLocaleLanguageCode]]; + keys = [dict keyEnumerator], + key; + + while (key = [keys nextObject]) + { + var value = [[dict valueForKey:key] objectAtIndex:style]; + + if ([value isEqualToString:aTimeZoneString]) + return [self timeZoneWithAbbreviation:key]; + } + + return nil; +} + +/*! @ignore +*/ ++ (CPArray)_namesForStyle:(NSTimeZoneNameStyle)style locale:(CPLocale)aLocale +{ + var array = [CPArray array], + dict = [localizedName valueForKey:[aLocale objectForKey:CPLocaleLanguageCode]]; + keys = [dict keyEnumerator], + key; + + while (key = [keys nextObject]) + [array addObject:[[dict valueForKey:key] objectAtIndex:style]]; + + return array; +} + +#pragma mark - +#pragma mark Class accessors + +/*! Return the timeZoneDataVersion (not yet implemented) +*/ ++ (CPString)timeZoneDataVersion +{ + // TODO : don't know what to do ^^ + return timeZoneDataVersion; +} + +/*! Return the localTimeZone +*/ ++ (CPTimeZone)localTimeZone +{ + return localTimeZone; +} + +/*! Return the defaultTimeZone +*/ ++ (CPTimeZone)defaultTimeZone +{ + return defaultTimeZone; +} + +/*! Set the defaultTimeZone + @param aTimeZone the defaultTimeZone +*/ ++ (void)setDefaultTimeZone:(CPTimeZone)aTimeZone +{ + defaultTimeZone = aTimeZone; +} + +/*! Reset the systemTimeZone + This will send the notification CPSystemTimeZoneDidChangeNotification +*/ ++ (void)resetSystemTimeZone +{ + var date = [CPDate date], + abbreviation = String(String(date).split("(")[1]).split(")")[0]; + + systemTimeZone = [self timeZoneWithAbbreviation:abbreviation]; + + [[CPNotification defaultCenter] postNotificationName:CPSystemTimeZoneDidChangeNotification object:systemTimeZone]; +} + +/*! Return the systemTimeZone +*/ ++ (CPTimeZone)systemTimeZone +{ + return systemTimeZone; +} + +/*! Return the abbreviationDictionary +*/ ++ (CPDictionary)abbreviationDictionary +{ + return abbreviationDictionary; +} + +/*! Set the abbreviationDictionary + @param dict +*/ ++ (void)setAbbreviationDictionary:(CPDictionary)dict +{ + abbreviationDictionary = dict; +} + +/*! Return the knownTimeZoneNames +*/ ++ (CPArray)knownTimeZoneNames +{ + return knownTimeZoneNames; +} + + +#pragma mark - +#pragma mark Consructors + +/*! Init a new time zone with the given time zone name and abbreviation + Returns nil if tzName doesn't match with any timeZoneNames or if abbreviation is nil + Raises an exception if tzName is nil + @param tzName the timeZone name + @param abbreviation the abbreviation + @return a new timeZone +*/ +- (id)_initWithName:(CPString)tzName abbreviation:(CPString)abbreviation +{ + if (!tzName) + [CPException raise:CPInvalidArgumentException reason:"Invalid value provided for tzName"]; + + if (![knownTimeZoneNames containsObject:tzName] || !abbreviation) + return nil; + + if (self = [super init]) + { + _name = tzName; + _abbreviation = abbreviation; + } + + return self; +} + +/*! Init a new time zone from the given timeZone name + Returns nil if the given timeZone name doesn't match with any abbreviations + Raises an exception if tzName is nil + @param tzName the timeZone name + @return a new instance of CPTimeZone +*/ +- (id)initWithName:(CPString)tzName +{ + if (!tzName) + [CPException raise:CPInvalidArgumentException reason:"Invalid value provided for tzName"]; + + if (![knownTimeZoneNames containsObject:tzName]) + return nil; + + if (self = [super init]) + { + _name = tzName; + + var keys = [abbreviationDictionary keyEnumerator], + key; + + while (key = [keys nextObject]) + { + var value = [abbreviationDictionary valueForKey:key]; + + if ([value isEqualToString:_name]) + { + _abbreviation = key; + break; + } + } + } + + return self; +} + +/*! Return a time zone from the given timeZone name and data + Returns nil if the given timeZone name doesn't match with any abbreviations + Raises an exception if tzName is nil + @param tzName the timeZone name + @param data the data + @return a new instance of CPTimeZone +*/ +- (id)initWithName:(CPString)tzName data:(CPData)data +{ + if (self = [self initWithName:tzName]) + { + _data = data; + } + + return self; +} + + +#pragma mark - +#pragma mark Methods for CPDate + +/*! Returns the abbreviation from a date + Returns nil if the date is nil + @return the abbreviation +*/ +- (CPString)abbreviationForDate:(CPDate)date +{ + if (!date) + return nil; + + return String(String(date).split("(")[1]).split(")")[0]; +} + +/*! Returns the number of seconds from GMT for the given date + Returns nil if the date is nil + @param date + @return the number of seconds +*/ +- (CPInteger)secondsFromGMTForDate:(CPDate)date +{ + if (!date) + return nil; + + var abbreviation = String(String(date).split("(")[1]).split(")")[0]; + + return [timeDifferenceFromUTC valueForKey:abbreviation] * 60; +} + +/*! Returns the number of seconds from GMT + @return the number of seconds +*/ +- (CPInteger)secondsFromGMT +{ + return [timeDifferenceFromUTC valueForKey:_abbreviation] * 60; +} + + +#pragma mark - +#pragma mark Compars methods + +/*! Returns a bool to compare tow timeZones. + This is made by the compare of the name and the data of the timeZones + @return a bool +*/ +- (BOOL)isEqualToTimeZone:(CPTimeZone)aTimeZone +{ + return [[aTimeZone name] isEqualToString:_name] && [aTimeZone data] == _data +} + + +#pragma mark - +#pragma mark Description + +/*! Returns the description of the timeZone + The pattern of the description is : 'name of the timeZone' ('abbreviation of the timeZone') offset 'the timeDifferenceFromGMT' + @return the description +*/ +- (CPString)description +{ + return [CPString stringWithFormat:@"%s (%s) offset %i", _name, _abbreviation, [self secondsFromGMT]]; +} + + +#pragma mark - +#pragma mark Localized methods + +/*! Return a localized string from the given style and locale + @param style the style + @param locale the locale + @return a string +*/ +- (CPString)localizedName:(NSTimeZoneNameStyle)style locale:(CPLocale)locale +{ + if (style > 5) + return nil; + + return [[[localizedName valueForKey:[locale objectForKey:CPLocaleLanguageCode]] valueForKey:_abbreviation] objectAtIndex:style]; +} + +@end \ No newline at end of file diff --git a/Foundation/Foundation.j b/Foundation/Foundation.j index a7dc3fdab..ab9d5fdb2 100755 --- a/Foundation/Foundation.j +++ b/Foundation/Foundation.j @@ -69,6 +69,7 @@ @import "CPSortDescriptor.j" @import "CPString.j" @import "CPTimer.j" +@import "CPTimeZone.j" @import "CPUndoManager.j" @import "CPURL.j" @import "CPURLConnection.j" diff --git a/Tests/Foundation/CPDateFormatterTest.j b/Tests/Foundation/CPDateFormatterTest.j new file mode 100644 index 000000000..ff7737258 --- /dev/null +++ b/Tests/Foundation/CPDateFormatterTest.j @@ -0,0 +1,1202 @@ +/* CPDateFormatterTest.j +* Foundation +* +* Created by Alexandre Wilhelm +* Copyright 2012 +* +* This library is free software; you can redistribute it and/or +* modify it under the terms of the GNU Lesser General Public +* License as published by the Free Software Foundation; either +* version 2.1 of the License, or (at your option) any later version. +* +* This library is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +* Lesser General Public License for more details. +* +* You should have received a copy of the GNU Lesser General Public +* License along with this library; if not, write to the Free Software +* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +@import +@import +@import + +@import + +@global CPDateFormatterNoStyle +@global CPDateFormatterShortStyle +@global CPDateFormatterMediumStyle +@global CPDateFormatterLongStyle +@global CPDateFormatterFullStyle + +@implementation CPDateFormatterTest : OJTestCase +{ + CPDate _date; + CPDateFormatter _dateFormatter; +} + +- (void)setUp +{ + _date = [[CPDate alloc] initWithString:@"2011-10-05 16:34:38 -0900"]; + _dateFormatter = [[CPDateFormatter alloc] init]; + [_dateFormatter setDateStyle:CPDateFormatterMediumStyle]; + [_dateFormatter setTimeStyle:CPDateFormatterShortStyle]; + [_dateFormatter setLocale:[[CPLocale alloc] initWithLocaleIdentifier:@"en_US"]]; + [_dateFormatter setTimeZone:[CPTimeZone timeZoneWithAbbreviation:@"PDT"]]; +} + + +#pragma mark - +#pragma mark Setter + +- (void)testSetterAMSymbol +{ + [_dateFormatter setAMSymbol:@"Hej hej"]; + [self assert:[_dateFormatter AMSymbol] equals:@"Hej hej"]; +} + +- (void)testSetterPMSymbol +{ + [_dateFormatter setPMSymbol:@"Hej hej"]; + [self assert:[_dateFormatter PMSymbol] equals:@"Hej hej"]; +} + +- (void)testSetterWeekdaySymbols +{ + [_dateFormatter setWeekdaySymbols:[@"Hej hej"]]; + [self assert:[_dateFormatter weekdaySymbols] equals:[@"Hej hej"]]; +} + +- (void)testSetterShortWeekdaySymbols +{ + [_dateFormatter setShortWeekdaySymbols:[@"Hej hej"]]; + [self assert:[_dateFormatter shortWeekdaySymbols] equals:[@"Hej hej"]]; +} + +- (void)testSetterVeryShortWeekdaySymbols +{ + [_dateFormatter setVeryShortWeekdaySymbols:[@"Hej hej"]]; + [self assert:[_dateFormatter veryShortWeekdaySymbols] equals:[@"Hej hej"]]; +} + +- (void)testSetterStandaloneWeekdaySymbols +{ + [_dateFormatter setStandaloneWeekdaySymbols:[@"Hej hej"]]; + [self assert:[_dateFormatter standaloneWeekdaySymbols] equals:[@"Hej hej"]]; +} + +- (void)testSetterShortStandaloneWeekdaySymbols +{ + [_dateFormatter setShortStandaloneWeekdaySymbols:[@"Hej hej"]]; + [self assert:[_dateFormatter shortStandaloneWeekdaySymbols] equals:[@"Hej hej"]]; +} + +- (void)testSetterVeryShortStandaloneWeekdaySymbols +{ + [_dateFormatter setVeryShortStandaloneWeekdaySymbols:[@"Hej hej"]]; + [self assert:[_dateFormatter veryShortStandaloneWeekdaySymbols] equals:[@"Hej hej"]]; +} + +- (void)testSetterMonthSymbols +{ + [_dateFormatter setMonthSymbols:[@"Hej hej"]]; + [self assert:[_dateFormatter monthSymbols] equals:[@"Hej hej"]]; +} + +- (void)testSetterShortMonthSymbols +{ + [_dateFormatter setShortMonthSymbols:[@"Hej hej"]]; + [self assert:[_dateFormatter shortMonthSymbols] equals:[@"Hej hej"]]; +} + +- (void)testSetterVeryShortMonthSymbols +{ + [_dateFormatter setVeryShortMonthSymbols:[@"Hej hej"]]; + [self assert:[_dateFormatter veryShortMonthSymbols] equals:[@"Hej hej"]]; +} + +- (void)testSetterStandaloneMonthSymbols +{ + [_dateFormatter setStandaloneMonthSymbols:[@"Hej hej"]]; + [self assert:[_dateFormatter standaloneMonthSymbols] equals:[@"Hej hej"]]; +} + +- (void)testSetterShortStandaloneMonthSymbols +{ + [_dateFormatter setShortStandaloneMonthSymbols:[@"Hej hej"]]; + [self assert:[_dateFormatter shortStandaloneMonthSymbols] equals:[@"Hej hej"]]; +} + +- (void)testSetterVeryShortStandaloneMonthSymbols +{ + [_dateFormatter setVeryShortStandaloneMonthSymbols:[@"Hej hej"]]; + [self assert:[_dateFormatter veryShortStandaloneMonthSymbols] equals:[@"Hej hej"]]; +} + +- (void)testSetterQuarterSymbols +{ + [_dateFormatter setQuarterSymbols:[@"Hej hej"]]; + [self assert:[_dateFormatter quarterSymbols] equals:[@"Hej hej"]]; +} + +- (void)testSetterShortQuarterSymbols +{ + [_dateFormatter setShortQuarterSymbols:[@"Hej hej"]]; + [self assert:[_dateFormatter shortQuarterSymbols] equals:[@"Hej hej"]]; +} + +- (void)testSetterStandaloneQuarterSymbols +{ + [_dateFormatter setStandaloneQuarterSymbols:[@"Hej hej"]]; + [self assert:[_dateFormatter standaloneQuarterSymbols] equals:[@"Hej hej"]]; +} + +- (void)testSetterShortStandaloneQuarterSymbols +{ + [_dateFormatter setShortStandaloneQuarterSymbols:[@"Hej hej"]]; + [self assert:[_dateFormatter shortStandaloneQuarterSymbols] equals:[@"Hej hej"]]; +} + +#pragma mark - +#pragma mark string from date + +- (void)testLocalizedStringFromDate +{ + var result = [CPDateFormatter localizedStringFromDate:_date dateStyle:CPDateFormatterMediumStyle timeStyle:CPDateFormatterNoStyle]; + [self assert:result equals:@"5 Oct 2011"]; +} + +- (void)testInit +{ + var dateFormatter = [[CPDateFormatter alloc] init], + result = [dateFormatter stringFromDate:_date]; + + [self assert:result.length equals:@"".length]; +} + +- (void)testInitWithDateFormat +{ + var dateFormatter = [[CPDateFormatter alloc] initWithDateFormat:@"d EEEE, MMM, Y 'at' H:mm:ss a z" allowNaturalLanguage:NO]; + [dateFormatter setLocale:[[CPLocale alloc] initWithLocaleIdentifier:@"en_US"]]; + [dateFormatter setTimeZone:[CPTimeZone timeZoneWithAbbreviation:@"PDT"]]; + + var result = [dateFormatter stringFromDate:_date]; + + [self assert:result equals:@"5 Wednesday, Oct, 2011 at 18:34:38 PM PDT"] +} + +- (void)testStringFromDateDateNoStyleTimeNoStyle +{ + [_dateFormatter setDateStyle:CPDateFormatterNoStyle]; + [_dateFormatter setTimeStyle:CPDateFormatterNoStyle]; + + var result = [_dateFormatter stringFromDate:_date]; + [self assert:result.length equals:@"".length]; +} + +- (void)testStringFromDateDateShortStyleTimeNoStyle +{ + [_dateFormatter setDateStyle:CPDateFormatterShortStyle]; + [_dateFormatter setTimeStyle:CPDateFormatterNoStyle]; + + var result = [_dateFormatter stringFromDate:_date]; + [self assert:result equals:@"10/5/11"]; +} + +- (void)testStringFromDateDateMediumStyleTimeNoStyle +{ + [_dateFormatter setDateStyle:CPDateFormatterMediumStyle]; + [_dateFormatter setTimeStyle:CPDateFormatterNoStyle]; + + var result = [_dateFormatter stringFromDate:_date]; + [self assert:result equals:@"Oct 5, 2011"]; +} + +- (void)testStringFromDateDateLongStyleTimeNoStyle +{ + [_dateFormatter setDateStyle:CPDateFormatterLongStyle]; + [_dateFormatter setTimeStyle:CPDateFormatterNoStyle]; + + var result = [_dateFormatter stringFromDate:_date]; + [self assert:result equals:@"October 5, 2011"]; +} + +- (void)testStringFromDateDateFullStyleTimeNoStyle +{ + [_dateFormatter setDateStyle:CPDateFormatterFullStyle]; + [_dateFormatter setTimeStyle:CPDateFormatterNoStyle]; + + var result = [_dateFormatter stringFromDate:_date]; + [self assert:result equals:@"Wednesday, October 5, 2011"]; +} + +- (void)testStringFromDateDateNoStyleTimeShortStyle +{ + [_dateFormatter setDateStyle:CPDateFormatterNoStyle]; + [_dateFormatter setTimeStyle:CPDateFormatterShortStyle]; + + var result = [_dateFormatter stringFromDate:_date]; + [self assert:result equals:@"6:34 PM"]; +} + +- (void)testStringFromDateDateNoStyleTimeMediumStyle +{ + [_dateFormatter setDateStyle:CPDateFormatterNoStyle]; + [_dateFormatter setTimeStyle:CPDateFormatterMediumStyle]; + + var result = [_dateFormatter stringFromDate:_date]; + [self assert:result equals:@"6:34:38 PM"]; +} + +- (void)testStringFromDateDateNoStyleTimeLongStyle +{ + [_dateFormatter setDateStyle:CPDateFormatterNoStyle]; + [_dateFormatter setTimeStyle:CPDateFormatterLongStyle]; + + var result = [_dateFormatter stringFromDate:_date]; + [self assert:result equals:@"6:34:38 PM PDT"]; +} + +- (void)testStringFromDateDateNoStyleTimeFullStyle +{ + [_dateFormatter setDateStyle:CPDateFormatterNoStyle]; + [_dateFormatter setTimeStyle:CPDateFormatterFullStyle]; + + var result = [_dateFormatter stringFromDate:_date]; + [self assert:result equals:@"6:34:38 PM Pacific Daylight Time"]; +} + +- (void)testStringFromDateDateFullStyleTimeFullStyle +{ + [_dateFormatter setDateStyle:CPDateFormatterFullStyle]; + [_dateFormatter setTimeStyle:CPDateFormatterFullStyle]; + + var result = [_dateFormatter stringFromDate:_date]; + [self assert:result equals:@"Wednesday, October 5, 2011 6:34:38 PM Pacific Daylight Time"]; +} + +- (void)testStringForObjectValueWithDate +{ + [_dateFormatter setDateStyle:CPDateFormatterMediumStyle]; + [_dateFormatter setTimeStyle:CPDateFormatterShortStyle]; + + var result = [_dateFormatter stringForObjectValue:_date]; + [self assert:result equals:@"Oct 5, 2011 6:34 PM"]; +} + +- (void)testStringForObjectValueWithString +{ + [_dateFormatter setDateStyle:CPDateFormatterMediumStyle]; + [_dateFormatter setTimeStyle:CPDateFormatterShortStyle]; + + var result = [_dateFormatter stringForObjectValue:@"Test String"]; + [self assert:result equals:nil]; +} + +- (void)testEditingStringForObjectValueWithDate +{ + [_dateFormatter setDateStyle:CPDateFormatterMediumStyle]; + [_dateFormatter setTimeStyle:CPDateFormatterShortStyle]; + + var result = [_dateFormatter editingStringForObjectValue:_date]; + [self assert:result equals:@"Oct 5, 2011 6:34 PM"]; +} + +- (void)testDoesRelativeDateFormatting +{ + [_dateFormatter setTimeStyle:CPDateFormatterNoStyle]; + [_dateFormatter setDoesRelativeDateFormatting:YES]; + + var date = [CPDate date]; + date.setDate(date.getDate() + 1); + date.setHours(11); + date.setMinutes(10); + + var result = [_dateFormatter editingStringForObjectValue:date]; + [self assert:result equals:@"tomorrow"]; + + date.setDate(date.getDate() - 2); + + [_dateFormatter setTimeStyle:CPDateFormatterShortStyle]; + result = [_dateFormatter editingStringForObjectValue:date]; + [self assert:result equals:@"yesterday 11:10 AM"]; +} + +- (void)testStringFromDateTokensYears +{ + [_dateFormatter setDateFormat:@"y yy yyy yyyy Y YY YYY YYYY"]; + + var result = [_dateFormatter stringFromDate:_date]; + + [self assert:result equals:@"2011 11 2011 2011 2011 11 2011 2011"]; +} + +- (void)testStringFromDateTokensQuarters +{ + [_dateFormatter setDateFormat:@"Q QQ QQQ QQQQ q qq qqq qqqq"]; + + var result = [_dateFormatter stringFromDate:_date]; + + [self assert:result equals:@"4 04 Q4 4th quarter 4 04 Q4 4th quarter"]; +} + +- (void)testStringFromDateTokensMonths +{ + [_dateFormatter setDateFormat:@"M MM MMM MMMM MMMMM L LL LLL LLLL LLLLL"]; + + var result = [_dateFormatter stringFromDate:_date]; + + [self assert:result equals:@"10 10 Oct October O 10 10 Oct October O"]; +} + +- (void)testStringFromDateTokensWeeks +{ + [_dateFormatter setDateFormat:@"w ww W"]; + + var result = [_dateFormatter stringFromDate:_date]; + + [self assert:result equals:@"41 41 2"]; +} + +- (void)testStringFromDateTokensDays +{ + [_dateFormatter setDateFormat:@"d dd D DD DDD F"]; + + var result = [_dateFormatter stringFromDate:_date]; + + [self assert:result equals:@"5 05 278 278 278 1"]; +} + +- (void)testStringFromDateTokensWeekDays +{ + [_dateFormatter setDateFormat:@"E EE EEE EEEE EEEEE e ee eee eeee eeeee c cc ccc cccc ccccc"]; + + var result = [_dateFormatter stringFromDate:_date]; + + [self assert:result equals:@"Wed Wed Wed Wednesday W 4 04 Wed Wednesday W 4 4 Wed Wednesday W"]; +} + +- (void)testStringFromDateTokensPeriods +{ + [_dateFormatter setDateFormat:@"a"]; + + var result = [_dateFormatter stringFromDate:_date]; + + [self assert:result equals:@"PM"]; + + _date.setHours(2); + var result = [_dateFormatter stringFromDate:_date]; + [self assert:result equals:@"AM"]; +} + +- (void)testStringFromDateTokensSeconds +{ + [_dateFormatter setDateFormat:@"s ss S SS SSS SSSS A AA AAA AAAA"]; + _date.setSeconds(8); + + var result = [_dateFormatter stringFromDate:_date]; + + [self assert:result equals:@"8 08 0 00 000 0000 66848000 66848000 66848000 66848000"]; +} + +- (void)testStringFromDateTokensMinutes +{ + [_dateFormatter setDateFormat:@"m mm"]; + _date.setMinutes(5); + + var result = [_dateFormatter stringFromDate:_date]; + + [self assert:result equals:@"5 05"]; +} + +- (void)testStringFromDateTokensHours +{ + var date = [[CPDate alloc] initWithString:@"2011-10-05 22:34:08 -0900"]; + + [_dateFormatter setDateFormat:@"h hh HH k kk K KK"]; + var result = [_dateFormatter stringFromDate:date]; + [self assert:result equals:@"12 12 00 24 24 0 00"]; + + date = [[CPDate alloc] initWithString:@"2011-10-05 06:34:08 -0900"]; + [_dateFormatter setDateFormat:@"h hh HH k kk K KK"]; + result = [_dateFormatter stringFromDate:date]; + [self assert:result equals:@"8 08 08 8 08 8 08"]; + + date = [[CPDate alloc] initWithString:@"2011-10-05 16:34:08 -0900"]; + [_dateFormatter setDateFormat:@"h hh HH k kk K KK"]; + var result = [_dateFormatter stringFromDate:date]; + [self assert:result equals:@"6 06 18 18 18 6 06"]; +} + +- (void)testStringFromDateTokensZones +{ + [_dateFormatter setDateFormat:@"z zz zzz zzzz Z ZZ ZZZ ZZZZ ZZZZ v vvvv V"]; + + var result = [_dateFormatter stringFromDate:_date]; + + [self assert:result equals:@"PDT PDT PDT Pacific Daylight Time -0700 -0700 -0700 GMT-07:00 GMT-07:00 PT Pacific Time PDT"]; +} + + +#pragma mark - +#pragma mark Date From string + +- (void)testDateFromStringToken +{ + [_dateFormatter setDateFormat:@""]; + var result = [_dateFormatter dateFromString:@""]; + + [self assert:[result isEqualToDate:[[CPDate alloc] initWithString:@"2000-01-01 08:00:00 +0000"]] equals:YES]; +} + +- (void)testDateFromStringTokeny +{ + [_dateFormatter setDateFormat:@"y"]; + var result = [_dateFormatter dateFromString:@"9"]; + [self assert:[result isEqualToDate:[[CPDate alloc] initWithString:@"0009-01-01 08:00:00 +0000"]] equals:YES]; + + [_dateFormatter setDateFormat:@"yy"]; + result = [_dateFormatter dateFromString:@"49"]; + [self assert:[result isEqualToDate:[[CPDate alloc] initWithString:@"2049-01-01 08:00:00 +0000"]] equals:YES]; + + [_dateFormatter setDateFormat:@"yy"]; + result = [_dateFormatter dateFromString:@"56"]; + [self assert:[result isEqualToDate:[[CPDate alloc] initWithString:@"1956-01-01 08:00:00 +0000"]] equals:YES]; + + [_dateFormatter setDateFormat:@"yy"]; + result = [_dateFormatter dateFromString:@"563"]; + [self assert:[result isEqualToDate:[[CPDate alloc] initWithString:@"0563-01-01 08:00:00 +0000"]] equals:YES]; + + [_dateFormatter setDateFormat:@"yyy"]; + result = [_dateFormatter dateFromString:@"563"]; + [self assert:[result isEqualToDate:[[CPDate alloc] initWithString:@"0563-01-01 08:00:00 +0000"]] equals:YES]; + + [_dateFormatter setDateFormat:@"yyyy"]; + result = [_dateFormatter dateFromString:@"2012"]; + [self assert:[result isEqualToDate:[[CPDate alloc] initWithString:@"2012-01-01 08:00:00 +0000"]] equals:YES]; + + [_dateFormatter setDateFormat:@"y"]; + var result = [_dateFormatter dateFromString:@"eze"]; + [self assert:result equals:nil]; + + [_dateFormatter setDateFormat:@"yy"]; + result = [_dateFormatter dateFromString:@"dezd"]; + [self assert:result equals:nil]; + + [_dateFormatter setDateFormat:@"yyy"]; + result = [_dateFormatter dateFromString:@"dezdez"]; + [self assert:result equals:nil]; + + [_dateFormatter setDateFormat:@"yyyy"]; + result = [_dateFormatter dateFromString:@"dezdezd"]; + [self assert:result equals:nil]; +} + +- (void)testDateFromStringTokenY +{ + [_dateFormatter setDateFormat:@"Y"]; + var result = [_dateFormatter dateFromString:@"9"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"0009-01-01 08:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"YY"]; + result = [_dateFormatter dateFromString:@"49"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2049-01-01 08:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"YY"]; + result = [_dateFormatter dateFromString:@"56"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"1956-01-01 08:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"YY"]; + result = [_dateFormatter dateFromString:@"563"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"0563-01-01 08:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"YYY"]; + result = [_dateFormatter dateFromString:@"563"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"0563-01-01 08:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"YYYY"]; + result = [_dateFormatter dateFromString:@"2012"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2012-01-01 08:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"Y"]; + var result = [_dateFormatter dateFromString:@"eze"]; + [self assert:result equals:nil]; + + [_dateFormatter setDateFormat:@"YY"]; + result = [_dateFormatter dateFromString:@"dezd"]; + [self assert:result equals:nil]; + + [_dateFormatter setDateFormat:@"YYY"]; + result = [_dateFormatter dateFromString:@"dezdez"]; + [self assert:result equals:nil]; + + [_dateFormatter setDateFormat:@"YYYY"]; + result = [_dateFormatter dateFromString:@"dezdezd"]; + [self assert:result equals:nil]; +} + +- (void)testDateFromStringTokenq +{ + [_dateFormatter setDateFormat:@"q"]; + var result = [_dateFormatter dateFromString:@"2"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-04-01 08:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"qq"]; + var result = [_dateFormatter dateFromString:@"2"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-04-01 08:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"qqq"]; + var result = [_dateFormatter dateFromString:@"Q3"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-07-01 08:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"qqqq"]; + var result = [_dateFormatter dateFromString:@"2nd quarter"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-04-01 08:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"q"]; + var result = [_dateFormatter dateFromString:@"12"]; + [self assert:result equals:nil]; + + [_dateFormatter setDateFormat:@"q"]; + var result = [_dateFormatter dateFromString:@"eze"]; + [self assert:result equals:nil]; + + [_dateFormatter setDateFormat:@"qq"]; + var result = [_dateFormatter dateFromString:@"12"]; + [self assert:result equals:nil]; + + [_dateFormatter setDateFormat:@"qq"]; + var result = [_dateFormatter dateFromString:@"zaz"]; + [self assert:result equals:nil]; + + [_dateFormatter setDateFormat:@"qqq"]; + var result = [_dateFormatter dateFromString:@"Q8"]; + [self assert:result equals:nil]; + + [_dateFormatter setDateFormat:@"qqqq"]; + var result = [_dateFormatter dateFromString:@"2nd quarteer"]; + [self assert:result equals:nil]; +} + +- (void)testDateFromStringTokenQ +{ + [_dateFormatter setDateFormat:@"Q"]; + var result = [_dateFormatter dateFromString:@"2"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-04-01 08:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"QQ"]; + var result = [_dateFormatter dateFromString:@"2"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-04-01 08:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"QQQ"]; + var result = [_dateFormatter dateFromString:@"Q3"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-07-01 08:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"QQQQ"]; + var result = [_dateFormatter dateFromString:@"2nd quarter"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-04-01 08:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"Q"]; + var result = [_dateFormatter dateFromString:@"12"]; + [self assert:result equals:nil]; + + [_dateFormatter setDateFormat:@"Q"]; + var result = [_dateFormatter dateFromString:@"ezeze"]; + [self assert:result equals:nil]; + + [_dateFormatter setDateFormat:@"QQ"]; + var result = [_dateFormatter dateFromString:@"12"]; + [self assert:result equals:nil]; + + [_dateFormatter setDateFormat:@"QQ"]; + var result = [_dateFormatter dateFromString:@"zazasz"]; + [self assert:result equals:nil]; + + [_dateFormatter setDateFormat:@"QQQ"]; + var result = [_dateFormatter dateFromString:@"Q6"]; + [self assert:result equals:nil]; + + [_dateFormatter setDateFormat:@"QQQQ"]; + var result = [_dateFormatter dateFromString:@"2nd quarteereze"]; + [self assert:result equals:nil]; +} + +- (void)testDateFromStringTokenM +{ + [_dateFormatter setDateFormat:@"M"]; + var result = [_dateFormatter dateFromString:@"10"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-10-01 08:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"MM"]; + var result = [_dateFormatter dateFromString:@"7"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-07-01 08:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"MMM"]; + var result = [_dateFormatter dateFromString:@"Sep"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-09-01 08:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"MMMM"]; + var result = [_dateFormatter dateFromString:@"September"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-09-01 08:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"MMMMM"]; + var result = [_dateFormatter dateFromString:@"S"]; + [self assert:result equals:nil]; + + [_dateFormatter setDateFormat:@"M"]; + var result = [_dateFormatter dateFromString:@"76"]; + [self assert:result equals:nil]; + + [_dateFormatter setDateFormat:@"M"]; + var result = [_dateFormatter dateFromString:@"ezeze"]; + [self assert:result equals:nil]; + + [_dateFormatter setDateFormat:@"MM"]; + var result = [_dateFormatter dateFromString:@"76"]; + [self assert:result equals:nil]; + + [_dateFormatter setDateFormat:@"MM"]; + var result = [_dateFormatter dateFromString:@"zdazdza"]; + [self assert:result equals:nil]; + + [_dateFormatter setDateFormat:@"MMM"]; + var result = [_dateFormatter dateFromString:@"Seepre"]; + [self assert:result equals:nil]; + + [_dateFormatter setDateFormat:@"MMMM"]; + var result = [_dateFormatter dateFromString:@"Septembeer"]; + [self assert:result equals:nil]; +} + +- (void)testDateFromStringTokenL +{ + [_dateFormatter setDateFormat:@"L"]; + var result = [_dateFormatter dateFromString:@"10"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-10-01 08:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"LL"]; + var result = [_dateFormatter dateFromString:@"7"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-07-01 08:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"LLL"]; + var result = [_dateFormatter dateFromString:@"Sep"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-09-01 08:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"LLLL"]; + var result = [_dateFormatter dateFromString:@"September"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-09-01 08:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"LLLLL"]; + var result = [_dateFormatter dateFromString:@"S"]; + [self assert:result equals:nil]; + + [_dateFormatter setDateFormat:@"L"]; + var result = [_dateFormatter dateFromString:@"76"]; + [self assert:result equals:nil]; + + [_dateFormatter setDateFormat:@"L"]; + var result = [_dateFormatter dateFromString:@"dzadza"]; + [self assert:result equals:nil]; + + [_dateFormatter setDateFormat:@"LL"]; + var result = [_dateFormatter dateFromString:@"76"]; + [self assert:result equals:nil]; + + [_dateFormatter setDateFormat:@"LL"]; + var result = [_dateFormatter dateFromString:@"dzadza"]; + [self assert:result equals:nil]; + + [_dateFormatter setDateFormat:@"LLL"]; + var result = [_dateFormatter dateFromString:@"Seepre"]; + [self assert:result equals:nil]; + + [_dateFormatter setDateFormat:@"LLLL"]; + var result = [_dateFormatter dateFromString:@"Septemberezd"]; + [self assert:result equals:nil]; +} + +- (void)testDateFromStringTokenw +{ + [_dateFormatter setDateFormat:@"w"]; + var result = [_dateFormatter dateFromString:@"26"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-06-24 08:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"w"]; + var result = [_dateFormatter dateFromString:@"76"]; + [self assert:result equals:nil]; + + [_dateFormatter setDateFormat:@"w"]; + var result = [_dateFormatter dateFromString:@"dzadza"]; + [self assert:result equals:nil]; +} + +- (void)testDateFromStringTokenW +{ + [_dateFormatter setDateFormat:@"W"]; + var result = [_dateFormatter dateFromString:@"2"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-08 08:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"W LL"]; + var result = [_dateFormatter dateFromString:@"2 7"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-07-08 08:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"W"]; + var result = [_dateFormatter dateFromString:@"76"]; + [self assert:result equals:nil]; + + [_dateFormatter setDateFormat:@"W"]; + var result = [_dateFormatter dateFromString:@"dzadzad"]; + [self assert:result equals:nil]; +} + +- (void)testDateFromStringTokend +{ + [_dateFormatter setDateFormat:@"d"]; + var result = [_dateFormatter dateFromString:@"6"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-06 08:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"dd"]; + var result = [_dateFormatter dateFromString:@"16"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-16 08:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"d LL"]; + var result = [_dateFormatter dateFromString:@"6 7"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-07-06 08:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"ddd"]; + var result = [_dateFormatter dateFromString:@"6"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-06 08:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"ddd"]; + var result = [_dateFormatter dateFromString:@"62"]; + [self assert:result equals:nil]; + + [_dateFormatter setDateFormat:@"ddd"]; + var result = [_dateFormatter dateFromString:@"dzadza"]; + [self assert:result equals:nil]; +} + +- (void)testDateFromStringTokenD +{ + [_dateFormatter setDateFormat:@"D"]; + var result = [_dateFormatter dateFromString:@"76"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-03-16 08:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"D"]; + var result = [_dateFormatter dateFromString:@"1076"]; + [self assert:result equals:nil]; + + [_dateFormatter setDateFormat:@"D"]; + var result = [_dateFormatter dateFromString:@"dzeezd"]; + [self assert:result equals:nil]; +} + +- (void)testDateFromStringTokenF +{ + [_dateFormatter setDateFormat:@"F"]; + var result = [_dateFormatter dateFromString:@"2"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-08 08:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"F"]; + var result = [_dateFormatter dateFromString:@"23"]; + [self assert:result equals:nil]; + + [_dateFormatter setDateFormat:@"F"]; + var result = [_dateFormatter dateFromString:@"dezdez"]; + [self assert:result equals:nil]; +} + +- (void)testDateFromStringTokenE +{ + // No logic in cocoa (or I didn't get it :/) + [_dateFormatter setDateFormat:@"EEE"]; + var result = [_dateFormatter dateFromString:@"Tue"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 08:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"EEEE"]; + var result = [_dateFormatter dateFromString:@"Tuesday"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 08:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"EEEEE"]; + var result = [_dateFormatter dateFromString:@"T"]; + [self assert:result equals:nil]; + + [_dateFormatter setDateFormat:@"EEE"]; + var result = [_dateFormatter dateFromString:@"dehez"]; + [self assert:result equals:nil]; + + [_dateFormatter setDateFormat:@"EEEE"]; + var result = [_dateFormatter dateFromString:@"dehez"]; + [self assert:result equals:nil]; +} + +- (void)testDateFromStringTokene +{ + // No logic in cocoa (or I didn't get it :/) + [_dateFormatter setDateFormat:@"ee"]; + var result = [_dateFormatter dateFromString:@"1"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 08:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"eee"]; + var result = [_dateFormatter dateFromString:@"Tue"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 08:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"eeee"]; + var result = [_dateFormatter dateFromString:@"Tuesday"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 08:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"eeeee"]; + var result = [_dateFormatter dateFromString:@"T"]; + [self assert:result equals:nil]; + + [_dateFormatter setDateFormat:@"ee"]; + var result = [_dateFormatter dateFromString:@"frefre"]; + [self assert:result equals:nil]; + + [_dateFormatter setDateFormat:@"eee"]; + var result = [_dateFormatter dateFromString:@"dehez"]; + [self assert:result equals:nil]; + + [_dateFormatter setDateFormat:@"eeee"]; + var result = [_dateFormatter dateFromString:@"dehez"]; + [self assert:result equals:nil]; +} + +- (void)testDateFromStringTokenc +{ + // No logic in cocoa (or I didn't get it :/) + [_dateFormatter setDateFormat:@"cc"]; + var result = [_dateFormatter dateFromString:@"1"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 08:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"ccc"]; + var result = [_dateFormatter dateFromString:@"Tue"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 08:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"cccc"]; + var result = [_dateFormatter dateFromString:@"Tuesday"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 08:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"ccccc"]; + var result = [_dateFormatter dateFromString:@"T"]; + [self assert:result equals:nil]; + + [_dateFormatter setDateFormat:@"cc"]; + var result = [_dateFormatter dateFromString:@"dezde"]; + [self assert:result equals:nil]; + + [_dateFormatter setDateFormat:@"ccc"]; + var result = [_dateFormatter dateFromString:@"dehez"]; + [self assert:result equals:nil]; + + [_dateFormatter setDateFormat:@"cccc"]; + var result = [_dateFormatter dateFromString:@"dehez"]; + [self assert:result equals:nil]; +} + +- (void)testDateFromStringTokena +{ + [_dateFormatter setDateFormat:@"a"]; + var result = [_dateFormatter dateFromString:@"PM"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 20:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"a"]; + var result = [_dateFormatter dateFromString:@"AM"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 08:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"a"]; + var result = [_dateFormatter dateFromString:@"PdM"]; + [self assert:result equals:nil]; +} + +- (void)testDateFromStringTokenh +{ + [_dateFormatter setDateFormat:@"h"]; + var result = [_dateFormatter dateFromString:@"11"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 19:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"hh"]; + var result = [_dateFormatter dateFromString:@"3"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 11:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"hh"]; + var result = [_dateFormatter dateFromString:@"0"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 08:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"hh a"]; + var result = [_dateFormatter dateFromString:@"3 PM"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 23:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"hh a"]; + var result = [_dateFormatter dateFromString:@"3 AM"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 11:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"hh"]; + var result = [_dateFormatter dateFromString:@"13"]; + [self assert:result equals:nil]; + + [_dateFormatter setDateFormat:@"hh"]; + var result = [_dateFormatter dateFromString:@"edze"]; + [self assert:result equals:nil]; +} + +- (void)testDateFromStringTokenH +{ + [_dateFormatter setDateFormat:@"H"]; + var result = [_dateFormatter dateFromString:@"18"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-02 02:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"HH"]; + var result = [_dateFormatter dateFromString:@"3"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 11:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"HH a"]; + var result = [_dateFormatter dateFromString:@"2 PM"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 22:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"HH"]; + var result = [_dateFormatter dateFromString:@"24"]; + [self assert:result equals:nil]; + + [_dateFormatter setDateFormat:@"HH"]; + var result = [_dateFormatter dateFromString:@"dezdez"]; + [self assert:result equals:nil]; +} + +- (void)testDateFromStringTokenK +{ + [_dateFormatter setDateFormat:@"K"]; + var result = [_dateFormatter dateFromString:@"11"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 19:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"KK"]; + var result = [_dateFormatter dateFromString:@"3"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 11:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"KK"]; + var result = [_dateFormatter dateFromString:@"0"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 08:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"KK a"]; + var result = [_dateFormatter dateFromString:@"3 PM"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 23:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"KK a"]; + var result = [_dateFormatter dateFromString:@"3 AM"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 11:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"KK"]; + var result = [_dateFormatter dateFromString:@"13"]; + [self assert:result equals:nil]; + + [_dateFormatter setDateFormat:@"KK"]; + var result = [_dateFormatter dateFromString:@"dezdez"]; + [self assert:result equals:nil]; +} + +- (void)testDateFromStringTokenk +{ + [_dateFormatter setDateFormat:@"k"]; + var result = [_dateFormatter dateFromString:@"11"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 19:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"kk"]; + var result = [_dateFormatter dateFromString:@"3"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 11:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"kk"]; + var result = [_dateFormatter dateFromString:@"0"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 08:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"kk a"]; + var result = [_dateFormatter dateFromString:@"3 PM"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 23:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"kk"]; + var result = [_dateFormatter dateFromString:@"13"]; + [self assert:result equals:nil]; + + [_dateFormatter setDateFormat:@"kk"]; + var result = [_dateFormatter dateFromString:@"dezdezd"]; + [self assert:result equals:nil]; +} + +- (void)testDateFromStringTokenm +{ + [_dateFormatter setDateFormat:@"m"]; + var result = [_dateFormatter dateFromString:@"11"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 08:11:00 +0000"]]; + + [_dateFormatter setDateFormat:@"mm"]; + var result = [_dateFormatter dateFromString:@"11"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 08:11:00 +0000"]] + + [_dateFormatter setDateFormat:@"mm"]; + var result = [_dateFormatter dateFromString:@"61"]; + [self assert:result equals:nil] + + [_dateFormatter setDateFormat:@"mm"]; + var result = [_dateFormatter dateFromString:@"ezdezd"]; + [self assert:result equals:nil] +} + +- (void)testDateFromStringTokens +{ + [_dateFormatter setDateFormat:@"s"]; + var result = [_dateFormatter dateFromString:@"11"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 08:00:11 +0000"]]; + + [_dateFormatter setDateFormat:@"ss"]; + var result = [_dateFormatter dateFromString:@"4"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 08:00:04 +0000"]] + + [_dateFormatter setDateFormat:@"ss"]; + var result = [_dateFormatter dateFromString:@"64"]; + [self assert:result equals:nil] + + [_dateFormatter setDateFormat:@"ss"]; + var result = [_dateFormatter dateFromString:@"dezdez"]; + [self assert:result equals:nil] +} + +- (void)testDateFromStringTokenS +{ + // No logic in cocoa (or I didn't get it :/) + [_dateFormatter setDateFormat:@"SSS"]; + var result = [_dateFormatter dateFromString:@"21212"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 08:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"SSS"]; + var result = [_dateFormatter dateFromString:@"rer"]; + [self assert:result equals:nil]; +} + +- (void)testDateFromStringTokenA +{ + [_dateFormatter setDateFormat:@"AAAAAAAA"]; + var result = [_dateFormatter dateFromString:@"69540000"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-02 03:19:00 +0000"]]; + + [_dateFormatter setDateFormat:@"AAAAAAAA"]; + var result = [_dateFormatter dateFromString:@"ezde"]; + [self assert:result equals:nil]; +} + +- (void)testDataFromStringTokenz +{ + // No logic in cocoa (or I didn't get it :/) + [_dateFormatter setDateFormat:@"zzz"]; + var result = [_dateFormatter dateFromString:@"PDT"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 08:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"zzzz"]; + var result = [_dateFormatter dateFromString:@"GMT-08:35"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 08:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"zzz"]; + var result = [_dateFormatter dateFromString:@"PezST"]; + [self assert:result equals:nil]; + + [_dateFormatter setDateFormat:@"zzzz"]; + var result = [_dateFormatter dateFromString:@"dehez"]; + [self assert:result equals:nil]; +} + +- (void)testDataFromStringTokenZ +{ + // No logic in cocoa (or I didn't get it :/) + [_dateFormatter setDateFormat:@"ZZZ"]; + var result = [_dateFormatter dateFromString:@"-0800"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 08:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"ZZZZ"]; + var result = [_dateFormatter dateFromString:@"HPG-8:00"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 08:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"ZZZZZ"]; + var result = [_dateFormatter dateFromString:@"-08:00"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 08:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"ZZZ"]; + var result = [_dateFormatter dateFromString:@"dehez"]; + [self assert:result equals:nil]; + + [_dateFormatter setDateFormat:@"ZZZZ"]; + var result = [_dateFormatter dateFromString:@"dehez"]; + [self assert:result equals:nil]; + + [_dateFormatter setDateFormat:@"ZZZZZ"]; + var result = [_dateFormatter dateFromString:@"dehez"]; + [self assert:result equals:nil]; +} + +- (void)testDataFromStringTokenv +{ + // No logic in cocoa (or I didn't get it :/) + [_dateFormatter setDateFormat:@"v"]; + var result = [_dateFormatter dateFromString:@"PT"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 08:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"vvvv"]; + var result = [_dateFormatter dateFromString:@"GMT-08:35"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 08:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"v"]; + var result = [_dateFormatter dateFromString:@"PezST"]; + [self assert:result equals:nil]; + + [_dateFormatter setDateFormat:@"vvvv"]; + var result = [_dateFormatter dateFromString:@"dehez"]; + [self assert:result equals:nil]; + +} + +- (void)testDataFromStringTokenV +{ + // No logic in cocoa (or I didn't get it :/) + [_dateFormatter setDateFormat:@"V"]; + var result = [_dateFormatter dateFromString:@"PST"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 08:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"VVVV"]; + var result = [_dateFormatter dateFromString:@"GMT-08:35"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 08:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"V"]; + var result = [_dateFormatter dateFromString:@"PezST"]; + [self assert:result equals:nil]; + + [_dateFormatter setDateFormat:@"VVVV"]; + var result = [_dateFormatter dateFromString:@"dehez"]; + [self assert:result equals:nil]; +} + +- (void)testGetObjectValueReturnYes +{ + [_dateFormatter setDateFormat:@"d mm"]; + + var date = nil, + error = @"", + result = [_dateFormatter getObjectValue:@ref(date) forString:@"10 12" errorDescription:@ref(error)]; + + [self assert:result equals:YES]; + [self assert:date equals:[[CPDate alloc] initWithString:@"2000-01-10 08:12:00 +0000"]]; + [self assert:error equals:@""]; +} + +- (void)testGetObjectValueReturnNo +{ + [_dateFormatter setDateFormat:@"d mm"]; + + var date = nil, + error = @"", + result = [_dateFormatter getObjectValue:@ref(date) forString:@"ezr 12" errorDescription:@ref(error)]; + + [self assert:result equals:NO]; + [self assert:date equals:nil]; + [self assert:error equals:@"The value \"ezr 12\" is invalid."]; +} + +@end diff --git a/Tests/Foundation/CPTimeZoneTest.j b/Tests/Foundation/CPTimeZoneTest.j new file mode 100644 index 000000000..11ff1deed --- /dev/null +++ b/Tests/Foundation/CPTimeZoneTest.j @@ -0,0 +1,298 @@ +/* CPTimeZoneTest.j +* Foundation +* +* Created by Alexandre Wilhelm +* Copyright 2012 +* +* This library is free software; you can redistribute it and/or +* modify it under the terms of the GNU Lesser General Public +* License as published by the Free Software Foundation; either +* version 2.1 of the License, or (at your option) any later version. +* +* This library is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +* Lesser General Public License for more details. +* +* You should have received a copy of the GNU Lesser General Public +* License along with this library; if not, write to the Free Software +* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +@import +@import + +@implementation CPTimeZoneTest : OJTestCase +{ + CPLocale _locale; + CPData _data; + CPDate _date; +} + +- (void)setUp +{ + _locale = [[CPLocale alloc] initWithLocaleIdentifier:@"en_US"]; + _data = [CPData dataWithRawString:@"Data with string"]; + _date = [[CPDate alloc] initWithString:@"2011-10-05 16:34:38 +0900"]; +} + +- (void)tearDown +{ + +} + +- (void)testTimeZoneWithAbbreviation +{ + var timeZone = [CPTimeZone timeZoneWithAbbreviation:@"PDT"]; + [self assert:[timeZone name] equals:@"America/Los_Angeles"]; + [self assert:[timeZone abbreviation] equals:@"PDT"]; + [self assert:[timeZone secondsFromGMT] equals:(-420 * 60)]; + [self assert:[timeZone description] equals:@"America/Los_Angeles (PDT) offset -25200"]; + [self assert:[timeZone localizedName:CPTimeZoneNameStyleStandard locale:_locale] equals:@"Pacific Standard Time"]; + [self assert:[timeZone localizedName:CPTimeZoneNameStyleShortStandard locale:_locale] equals:@"PST"]; + [self assert:[timeZone localizedName:CPTimeZoneNameStyleDaylightSaving locale:_locale] equals:@"Pacific Daylight Time"]; + [self assert:[timeZone localizedName:CPTimeZoneNameStyleShortDaylightSaving locale:_locale] equals:@"PDT"]; + [self assert:[timeZone localizedName:CPTimeZoneNameStyleGeneric locale:_locale] equals:@"Pacific Time"]; + [self assert:[timeZone localizedName:CPTimeZoneNameStyleShortGeneric locale:_locale] equals:@"PT"]; +} + +- (void)testTimeZoneWithWrongAbbreviation +{ + var timeZone = [CPTimeZone timeZoneWithAbbreviation:@"PDTezdez"]; + [self assert:timeZone equals:nil]; +} + +- (void)testTimeZoneWithName +{ + var timeZone = [CPTimeZone timeZoneWithName:@"America/Los_Angeles"]; + [self assert:[timeZone name] equals:@"America/Los_Angeles"]; + [self assert:[timeZone abbreviation] equals:@"PDT"]; + [self assert:[timeZone secondsFromGMT] equals:(-420 * 60)]; + [self assert:[timeZone description] equals:@"America/Los_Angeles (PDT) offset -25200"]; + [self assert:[timeZone localizedName:CPTimeZoneNameStyleStandard locale:_locale] equals:@"Pacific Standard Time"]; + [self assert:[timeZone localizedName:CPTimeZoneNameStyleShortStandard locale:_locale] equals:@"PST"]; + [self assert:[timeZone localizedName:CPTimeZoneNameStyleDaylightSaving locale:_locale] equals:@"Pacific Daylight Time"]; + [self assert:[timeZone localizedName:CPTimeZoneNameStyleShortDaylightSaving locale:_locale] equals:@"PDT"]; + [self assert:[timeZone localizedName:CPTimeZoneNameStyleGeneric locale:_locale] equals:@"Pacific Time"]; + [self assert:[timeZone localizedName:CPTimeZoneNameStyleShortGeneric locale:_locale] equals:@"PT"]; +} + +- (void)testTimeZoneWithWrongName +{ + var timeZone = [CPTimeZone timeZoneWithName:@"America/Los_Angelesezdez"]; + [self assert:timeZone equals:nil]; +} + +- (void)testexceptionTimeZoneWithNilNameWithData +{ + try + { + var timeZone = [CPTimeZone timeZoneWithName:nil]; + [self fail:"Invalid value provided for tzName"]; + } + catch (e) + { + + } +} + +- (void)testTimeZoneWithNameWithData +{ + var timeZone = [CPTimeZone timeZoneWithName:@"America/Los_Angeles" data:_data]; + [self assert:[timeZone name] equals:@"America/Los_Angeles"]; + [self assert:[timeZone abbreviation] equals:@"PDT"]; + [self assert:[timeZone secondsFromGMT] equals:(-420 * 60)]; + [self assert:[timeZone data] equals:_data]; + [self assert:[timeZone description] equals:@"America/Los_Angeles (PDT) offset -25200"]; + [self assert:[timeZone localizedName:CPTimeZoneNameStyleStandard locale:_locale] equals:@"Pacific Standard Time"]; + [self assert:[timeZone localizedName:CPTimeZoneNameStyleShortStandard locale:_locale] equals:@"PST"]; + [self assert:[timeZone localizedName:CPTimeZoneNameStyleDaylightSaving locale:_locale] equals:@"Pacific Daylight Time"]; + [self assert:[timeZone localizedName:CPTimeZoneNameStyleShortDaylightSaving locale:_locale] equals:@"PDT"]; + [self assert:[timeZone localizedName:CPTimeZoneNameStyleGeneric locale:_locale] equals:@"Pacific Time"]; + [self assert:[timeZone localizedName:CPTimeZoneNameStyleShortGeneric locale:_locale] equals:@"PT"]; +} + +- (void)testTimeZoneWithWrongNameWithData +{ + var timeZone = [CPTimeZone timeZoneWithName:@"America/Los_Angelesezdez" data:_data]; + [self assert:timeZone equals:nil]; +} + +- (void)testexceptionTimeZoneWithNilNameWithData +{ + try + { + var timeZone = [CPTimeZone timeZoneWithName:nil data:_data]; + [self fail:"Invalid value provided for tzName"]; + } + catch (e) + { + + } +} + +- (void)testTimeZoneWithSecondsFromGMT +{ + var timeZone = [CPTimeZone timeZoneForSecondsFromGMT:(-600 * 60)]; + [self assert:[timeZone name] equals:@"Pacific/Honolulu"]; + [self assert:[timeZone abbreviation] equals:@"HST"]; + [self assert:[timeZone secondsFromGMT] equals:(-600 * 60)]; + [self assert:[timeZone description] equals:@"Pacific/Honolulu (HST) offset -36000"]; + [self assert:[timeZone localizedName:CPTimeZoneNameStyleStandard locale:_locale] equals:@"Hawaii-Aleutian Standard Time"]; + [self assert:[timeZone localizedName:CPTimeZoneNameStyleShortStandard locale:_locale] equals:@"HST"]; + [self assert:[timeZone localizedName:CPTimeZoneNameStyleDaylightSaving locale:_locale] equals:@"Hawaii-Aleutian Daylight Time"]; + [self assert:[timeZone localizedName:CPTimeZoneNameStyleShortDaylightSaving locale:_locale] equals:@"HDT"]; + [self assert:[timeZone localizedName:CPTimeZoneNameStyleGeneric locale:_locale] equals:@"Hawaii-Aleutian Standard Time"]; + [self assert:[timeZone localizedName:CPTimeZoneNameStyleShortGeneric locale:_locale] equals:@"HST"]; +} + +- (void)testTimeZoneWithWrongSecondsFromGMT +{ + var timeZone = [CPTimeZone timeZoneForSecondsFromGMT:(-421 * 60)]; + [self assert:timeZone equals:nil]; +} + +- (void)testInitTimeZoneWithName +{ + var timeZone = [[CPTimeZone alloc] initWithName:@"America/Los_Angeles"]; + [self assert:[timeZone name] equals:@"America/Los_Angeles"]; + [self assert:[timeZone abbreviation] equals:@"PDT"]; + [self assert:[timeZone secondsFromGMT] equals:(-420 * 60)]; + [self assert:[timeZone description] equals:@"America/Los_Angeles (PDT) offset -25200"]; + [self assert:[timeZone localizedName:CPTimeZoneNameStyleStandard locale:_locale] equals:@"Pacific Standard Time"]; + [self assert:[timeZone localizedName:CPTimeZoneNameStyleShortStandard locale:_locale] equals:@"PST"]; + [self assert:[timeZone localizedName:CPTimeZoneNameStyleDaylightSaving locale:_locale] equals:@"Pacific Daylight Time"]; + [self assert:[timeZone localizedName:CPTimeZoneNameStyleShortDaylightSaving locale:_locale] equals:@"PDT"]; + [self assert:[timeZone localizedName:CPTimeZoneNameStyleGeneric locale:_locale] equals:@"Pacific Time"]; + [self assert:[timeZone localizedName:CPTimeZoneNameStyleShortGeneric locale:_locale] equals:@"PT"]; +} + +- (void)testInitTimeZoneWithWrongName +{ + var timeZone = [[CPTimeZone alloc] initWithName:@"America/Los_Angelesezdez"]; + [self assert:timeZone equals:nil]; +} + +- (void)testexceptionInitTimeZoneWithNilName +{ + try + { + var timeZone = [[CPTimeZone alloc] initWithName:nil]; + [self fail:"Invalid value provided for tzName"]; + } + catch (e) + { + + } +} + +- (void)testInitTimeZoneWithNameWithData +{ + var timeZone = [[CPTimeZone alloc] initWithName:@"America/Los_Angeles" data:_data]; + [self assert:[timeZone name] equals:@"America/Los_Angeles"]; + [self assert:[timeZone abbreviation] equals:@"PDT"]; + [self assert:[timeZone secondsFromGMT] equals:(-420 * 60)]; + [self assert:[timeZone data] equals:_data]; + [self assert:[timeZone description] equals:@"America/Los_Angeles (PDT) offset -25200"]; + [self assert:[timeZone localizedName:CPTimeZoneNameStyleStandard locale:_locale] equals:@"Pacific Standard Time"]; + [self assert:[timeZone localizedName:CPTimeZoneNameStyleShortStandard locale:_locale] equals:@"PST"]; + [self assert:[timeZone localizedName:CPTimeZoneNameStyleDaylightSaving locale:_locale] equals:@"Pacific Daylight Time"]; + [self assert:[timeZone localizedName:CPTimeZoneNameStyleShortDaylightSaving locale:_locale] equals:@"PDT"]; + [self assert:[timeZone localizedName:CPTimeZoneNameStyleGeneric locale:_locale] equals:@"Pacific Time"]; + [self assert:[timeZone localizedName:CPTimeZoneNameStyleShortGeneric locale:_locale] equals:@"PT"]; +} + +- (void)testInitTimeZoneWithWrongNameWithData +{ + var timeZone = [[CPTimeZone alloc] initWithName:@"America/Los_Angelesezdez" data:_data]; + [self assert:timeZone equals:nil]; +} + +- (void)testexceptionInitTimeZoneWithNilNameWithData +{ + try + { + var timeZone = [[CPTimeZone alloc] initWithName:nil data:_data]; + [self fail:"Invalid value provided for tzName"]; + } + catch (e) + { + + } +} + +- (void)testAbbreviationWithDate +{ + var timeZone = [CPTimeZone localTimeZone], + abbreviation = [timeZone abbreviationForDate:_date]; + + [self assert:abbreviation equals:@"PDT"]; +} + +- (void)testAbbreviationWithNilDate +{ + var timeZone = [CPTimeZone localTimeZone], + abbreviation = [timeZone abbreviationForDate:nil]; + + [self assert:abbreviation equals:nil]; +} + + +- (void)testSecondsFromGMTForDate +{ + var timeZone = [CPTimeZone localTimeZone], + seconds = [timeZone secondsFromGMTForDate:_date]; + + [self assert:seconds equals:-25200]; +} + +- (void)testSecondsFromGMTForDateWithNilDate +{ + var timeZone = [CPTimeZone localTimeZone], + seconds = [timeZone secondsFromGMTForDate:nil]; + + [self assert:seconds equals:nil]; +} + +- (void)testSecondsFromGMT +{ + var timeZone = [[CPTimeZone alloc] initWithName:@"America/Los_Angeles"]; + + [self assert:[timeZone secondsFromGMT] equals:(-420 * 60)]; +} + +- (void)testDescription +{ + var timeZone = [[CPTimeZone alloc] initWithName:@"America/Los_Angeles"]; + + [self assert:[timeZone description] equals:@"America/Los_Angeles (PDT) offset -25200"]; +} + +- (void)testLocalizedName +{ + var timeZone = [[CPTimeZone alloc] initWithName:@"America/Los_Angeles"]; + [self assert:[timeZone localizedName:CPTimeZoneNameStyleStandard locale:_locale] equals:@"Pacific Standard Time"]; + [self assert:[timeZone localizedName:CPTimeZoneNameStyleShortStandard locale:_locale] equals:@"PST"]; + [self assert:[timeZone localizedName:CPTimeZoneNameStyleDaylightSaving locale:_locale] equals:@"Pacific Daylight Time"]; + [self assert:[timeZone localizedName:CPTimeZoneNameStyleShortDaylightSaving locale:_locale] equals:@"PDT"]; + [self assert:[timeZone localizedName:CPTimeZoneNameStyleGeneric locale:_locale] equals:@"Pacific Time"]; + [self assert:[timeZone localizedName:CPTimeZoneNameStyleShortGeneric locale:_locale] equals:@"PT"]; +} + +- (void)testEqualTrueToTimeZone +{ + var timeZone1 = [[CPTimeZone alloc] initWithName:@"America/Los_Angeles"], + timeZone2 = [[CPTimeZone alloc] initWithName:@"America/Los_Angeles"]; + + [self assert:[timeZone1 isEqualToTimeZone:timeZone2] equals:YES]; +} + +- (void)testEqualFalseToTimeZone +{ + var timeZone1 = [[CPTimeZone alloc] initWithName:@"America/Los_Angeles"], + timeZone2 = [[CPTimeZone alloc] initWithName:@"Pacific/Honolulu"]; + + [self assert:[timeZone1 isEqualToTimeZone:timeZone2] equals:NO]; +} + +@end diff --git a/Tests/Manual/CPDateFormatterTest/AppController.j b/Tests/Manual/CPDateFormatterTest/AppController.j new file mode 100644 index 000000000..66dfb9743 --- /dev/null +++ b/Tests/Manual/CPDateFormatterTest/AppController.j @@ -0,0 +1,43 @@ +/* + * AppController.j + * CPDateFormatterTest + * + * Created by You on April 9, 2013. + * Copyright 2013, Your Company All rights reserved. + */ + +@import +@import + + +@implementation AppController : CPObject +{ + @outlet CPWindow theWindow; + @outlet CPDatePicker datePicker; + @outlet CPTextField labelDateFormatter; +} + +- (void)applicationDidFinishLaunching:(CPNotification)aNotification +{ + // This is called when the application is done loading. +} + +- (void)awakeFromCib +{ + // This is called when the cib is done loading. + // You can implement this method on any object instantiated from a Cib. + // It's a useful hook for setting up current UI values, and other things. + + // In this case, we want the window from Cib to become our full browser window + [theWindow setFullPlatformWindow:YES]; + [datePicker setTimeZone:[CPTimeZone timeZoneForSecondsFromGMT:0]]; + [datePicker setDateValue:[CPDate date]]; +} + +- (@action)datePickerAction:(id)sender +{ + console.log([sender dateValue]); + [labelDateFormatter setStringValue:[[sender formatter] stringFromDate:[sender dateValue]]]; +} + +@end diff --git a/Tests/Manual/CPDateFormatterTest/Info.plist b/Tests/Manual/CPDateFormatterTest/Info.plist new file mode 100644 index 000000000..ab43abcb2 --- /dev/null +++ b/Tests/Manual/CPDateFormatterTest/Info.plist @@ -0,0 +1,10 @@ + + + + + Main cib file base name + MainMenu.cib + CPBundleName + CPDateFormatterTest + + diff --git a/Tests/Manual/CPDateFormatterTest/Jakefile b/Tests/Manual/CPDateFormatterTest/Jakefile new file mode 100644 index 000000000..24c7daa20 --- /dev/null +++ b/Tests/Manual/CPDateFormatterTest/Jakefile @@ -0,0 +1,94 @@ +/* + * Jakefile + * CPDateFormatterTest + * + * Created by You on April 9, 2013. + * Copyright 2013, Your Company All rights reserved. + */ + +var ENV = require("system").env, + FILE = require("file"), + JAKE = require("jake"), + task = JAKE.task, + FileList = JAKE.FileList, + app = require("cappuccino/jake").app, + configuration = ENV["CONFIG"] || ENV["CONFIGURATION"] || ENV["c"] || "Debug", + OS = require("os"); + +app ("CPDateFormatterTest", function(task) +{ + task.setBuildIntermediatesPath(FILE.join("Build", "CPDateFormatterTest.build", configuration)); + task.setBuildPath(FILE.join("Build", configuration)); + + task.setProductName("CPDateFormatterTest"); + task.setIdentifier("com.yourcompany.CPDateFormatterTest"); + task.setVersion("1.0"); + task.setAuthor("Your Company"); + task.setEmail("feedback @nospam@ yourcompany.com"); + task.setSummary("CPDateFormatterTest"); + task.setSources((new FileList("**/*.j")).exclude(FILE.join("Build", "**"))); + task.setResources(new FileList("Resources/**")); + task.setIndexFilePath("index.html"); + task.setInfoPlistPath("Info.plist"); + task.setNib2CibFlags("-R Resources/"); + + if (configuration === "Debug") + task.setCompilerFlags("-DDEBUG -g"); + else + task.setCompilerFlags("-O"); +}); + +task ("default", ["CPDateFormatterTest"], function() +{ + printResults(configuration); +}); + +task ("build", ["default"]); + +task ("debug", function() +{ + ENV["CONFIGURATION"] = "Debug"; + JAKE.subjake(["."], "build", ENV); +}); + +task ("release", function() +{ + ENV["CONFIGURATION"] = "Release"; + JAKE.subjake(["."], "build", ENV); +}); + +task ("run", ["debug"], function() +{ + OS.system(["open", FILE.join("Build", "Debug", "CPDateFormatterTest", "index.html")]); +}); + +task ("run-release", ["release"], function() +{ + OS.system(["open", FILE.join("Build", "Release", "CPDateFormatterTest", "index.html")]); +}); + +task ("deploy", ["release"], function() +{ + FILE.mkdirs(FILE.join("Build", "Deployment", "CPDateFormatterTest")); + OS.system(["press", "-f", FILE.join("Build", "Release", "CPDateFormatterTest"), FILE.join("Build", "Deployment", "CPDateFormatterTest")]); + printResults("Deployment") +}); + +task ("desktop", ["release"], function() +{ + FILE.mkdirs(FILE.join("Build", "Desktop", "CPDateFormatterTest")); + require("cappuccino/nativehost").buildNativeHost(FILE.join("Build", "Release", "CPDateFormatterTest"), FILE.join("Build", "Desktop", "CPDateFormatterTest", "CPDateFormatterTest.app")); + printResults("Desktop") +}); + +task ("run-desktop", ["desktop"], function() +{ + OS.system([FILE.join("Build", "Desktop", "CPDateFormatterTest", "CPDateFormatterTest.app", "Contents", "MacOS", "NativeHost"), "-i"]); +}); + +function printResults(configuration) +{ + print("----------------------------"); + print(configuration+" app built at path: "+FILE.join("Build", configuration, "CPDateFormatterTest")); + print("----------------------------"); +} diff --git a/Tests/Manual/CPDateFormatterTest/Resources/MainMenu.cib b/Tests/Manual/CPDateFormatterTest/Resources/MainMenu.cib new file mode 100644 index 000000000..d09cb61ea --- /dev/null +++ b/Tests/Manual/CPDateFormatterTest/Resources/MainMenu.cib @@ -0,0 +1 @@ +280NPLIST;1.0;D;K;4;$topD;K;18;CPCibObjectDataKeyD;K;6;CP$UIDd;1;2E;E;K;8;$objectsA;S;5;$nullD;K;10;$classnameS;16;_CPCibObjectDataK;8;$classesA;S;16;_CPCibObjectDataS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;1;1E;K;28;_CPCibObjectDataNamesKeysKeyD;K;6;CP$UIDd;1;0E;K;30;_CPCibObjectDataNamesValuesKeyD;K;6;CP$UIDd;1;0E;K;30;_CPCibObjectDataClassesKeysKeyD;K;6;CP$UIDd;1;0E;K;32;_CPCibObjectDataClassesValuesKeyD;K;6;CP$UIDd;1;0E;K;30;_CPCibObjectDataConnectionsKeyD;K;6;CP$UIDd;1;4E;K;28;_CPCibObjectDataFrameworkKeyD;K;6;CP$UIDd;1;0E;K;26;_CPCibObjectDataNextOidKeyD;K;6;CP$UIDd;1;5E;K;30;_CPCibObjectDataObjectsKeysKeyD;K;6;CP$UIDd;1;6E;K;32;_CPCibObjectDataObjectsValuesKeyD;K;6;CP$UIDd;1;7E;K;26;_CPCibObjectDataOidKeysKeyD;K;6;CP$UIDd;1;8E;K;28;_CPCibObjectDataOidValuesKeyD;K;6;CP$UIDd;1;9E;K;28;_CPCibObjectDataFileOwnerKeyD;K;6;CP$UIDd;2;11E;K;33;_CPCibObjectDataVisibleWindowsKeyD;K;6;CP$UIDd;2;13E;E;D;K;10;$classnameS;7;CPArrayK;8;$classesA;S;7;CPArrayS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;15E;D;K;6;CP$UIDd;2;16E;D;K;6;CP$UIDd;2;17E;D;K;6;CP$UIDd;2;18E;D;K;6;CP$UIDd;2;20E;D;K;6;CP$UIDd;2;21E;D;K;6;CP$UIDd;2;22E;D;K;6;CP$UIDd;2;23E;D;K;6;CP$UIDd;2;24E;D;K;6;CP$UIDd;2;25E;D;K;6;CP$UIDd;2;26E;D;K;6;CP$UIDd;2;27E;D;K;6;CP$UIDd;2;28E;D;K;6;CP$UIDd;2;29E;D;K;6;CP$UIDd;2;30E;D;K;6;CP$UIDd;2;31E;D;K;6;CP$UIDd;2;32E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;2;34E;D;K;6;CP$UIDd;2;35E;D;K;6;CP$UIDd;2;36E;D;K;6;CP$UIDd;2;37E;D;K;6;CP$UIDd;2;38E;D;K;6;CP$UIDd;2;39E;D;K;6;CP$UIDd;2;40E;D;K;6;CP$UIDd;2;41E;D;K;6;CP$UIDd;2;42E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;44E;D;K;6;CP$UIDd;2;45E;D;K;6;CP$UIDd;2;46E;D;K;6;CP$UIDd;2;47E;D;K;6;CP$UIDd;2;48E;D;K;6;CP$UIDd;2;49E;D;K;6;CP$UIDd;2;50E;D;K;6;CP$UIDd;2;51E;D;K;6;CP$UIDd;2;52E;D;K;6;CP$UIDd;2;53E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;54E;D;K;6;CP$UIDd;2;56E;D;K;6;CP$UIDd;2;58E;D;K;6;CP$UIDd;2;59E;D;K;6;CP$UIDd;2;60E;D;K;6;CP$UIDd;2;61E;D;K;6;CP$UIDd;2;62E;D;K;6;CP$UIDd;2;63E;D;K;6;CP$UIDd;2;64E;D;K;6;CP$UIDd;2;65E;D;K;6;CP$UIDd;2;66E;D;K;6;CP$UIDd;2;67E;D;K;6;CP$UIDd;2;68E;D;K;6;CP$UIDd;2;69E;D;K;6;CP$UIDd;2;70E;D;K;6;CP$UIDd;2;71E;D;K;6;CP$UIDd;2;72E;D;K;6;CP$UIDd;2;73E;D;K;6;CP$UIDd;2;74E;D;K;6;CP$UIDd;2;75E;D;K;6;CP$UIDd;2;76E;D;K;6;CP$UIDd;2;77E;D;K;6;CP$UIDd;2;78E;D;K;6;CP$UIDd;2;79E;D;K;6;CP$UIDd;2;80E;D;K;6;CP$UIDd;2;81E;D;K;6;CP$UIDd;2;82E;D;K;6;CP$UIDd;2;83E;D;K;6;CP$UIDd;2;84E;D;K;6;CP$UIDd;2;85E;D;K;6;CP$UIDd;2;86E;D;K;6;CP$UIDd;2;87E;D;K;6;CP$UIDd;2;88E;D;K;6;CP$UIDd;2;89E;D;K;6;CP$UIDd;2;90E;D;K;6;CP$UIDd;2;91E;D;K;6;CP$UIDd;2;92E;D;K;6;CP$UIDd;2;93E;D;K;6;CP$UIDd;2;94E;D;K;6;CP$UIDd;2;95E;D;K;6;CP$UIDd;2;96E;D;K;6;CP$UIDd;2;97E;D;K;6;CP$UIDd;2;98E;D;K;6;CP$UIDd;2;99E;D;K;6;CP$UIDd;3;100E;D;K;6;CP$UIDd;3;101E;D;K;6;CP$UIDd;3;102E;D;K;6;CP$UIDd;3;103E;D;K;6;CP$UIDd;3;104E;D;K;6;CP$UIDd;3;105E;D;K;6;CP$UIDd;3;106E;D;K;6;CP$UIDd;3;107E;D;K;6;CP$UIDd;3;108E;D;K;6;CP$UIDd;3;109E;D;K;6;CP$UIDd;3;110E;D;K;6;CP$UIDd;3;111E;D;K;6;CP$UIDd;3;112E;D;K;6;CP$UIDd;3;113E;D;K;6;CP$UIDd;3;114E;D;K;6;CP$UIDd;3;115E;D;K;6;CP$UIDd;3;116E;D;K;6;CP$UIDd;3;117E;D;K;6;CP$UIDd;3;118E;D;K;6;CP$UIDd;3;119E;D;K;6;CP$UIDd;3;120E;D;K;6;CP$UIDd;3;121E;D;K;6;CP$UIDd;3;122E;D;K;6;CP$UIDd;3;124E;D;K;6;CP$UIDd;3;126E;D;K;6;CP$UIDd;3;128E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;130E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;131E;D;K;6;CP$UIDd;3;133E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;2;56E;D;K;6;CP$UIDd;2;58E;D;K;6;CP$UIDd;2;59E;D;K;6;CP$UIDd;2;59E;D;K;6;CP$UIDd;2;59E;D;K;6;CP$UIDd;2;59E;D;K;6;CP$UIDd;2;56E;D;K;6;CP$UIDd;2;64E;D;K;6;CP$UIDd;2;65E;D;K;6;CP$UIDd;2;65E;D;K;6;CP$UIDd;2;65E;D;K;6;CP$UIDd;2;65E;D;K;6;CP$UIDd;2;65E;D;K;6;CP$UIDd;2;56E;D;K;6;CP$UIDd;2;71E;D;K;6;CP$UIDd;2;72E;D;K;6;CP$UIDd;2;56E;D;K;6;CP$UIDd;2;74E;D;K;6;CP$UIDd;2;75E;D;K;6;CP$UIDd;2;75E;D;K;6;CP$UIDd;2;75E;D;K;6;CP$UIDd;2;75E;D;K;6;CP$UIDd;2;75E;D;K;6;CP$UIDd;2;75E;D;K;6;CP$UIDd;2;75E;D;K;6;CP$UIDd;2;75E;D;K;6;CP$UIDd;2;75E;D;K;6;CP$UIDd;2;75E;D;K;6;CP$UIDd;2;85E;D;K;6;CP$UIDd;2;86E;D;K;6;CP$UIDd;2;86E;D;K;6;CP$UIDd;2;86E;D;K;6;CP$UIDd;2;86E;D;K;6;CP$UIDd;2;86E;D;K;6;CP$UIDd;2;75E;D;K;6;CP$UIDd;2;92E;D;K;6;CP$UIDd;2;93E;D;K;6;CP$UIDd;2;93E;D;K;6;CP$UIDd;2;93E;D;K;6;CP$UIDd;2;93E;D;K;6;CP$UIDd;2;75E;D;K;6;CP$UIDd;2;98E;D;K;6;CP$UIDd;2;99E;D;K;6;CP$UIDd;2;99E;D;K;6;CP$UIDd;2;75E;D;K;6;CP$UIDd;3;102E;D;K;6;CP$UIDd;3;103E;D;K;6;CP$UIDd;3;103E;D;K;6;CP$UIDd;3;103E;D;K;6;CP$UIDd;2;56E;D;K;6;CP$UIDd;3;107E;D;K;6;CP$UIDd;3;108E;D;K;6;CP$UIDd;3;108E;D;K;6;CP$UIDd;3;108E;D;K;6;CP$UIDd;3;108E;D;K;6;CP$UIDd;3;108E;D;K;6;CP$UIDd;3;113E;D;K;6;CP$UIDd;3;114E;D;K;6;CP$UIDd;3;108E;D;K;6;CP$UIDd;3;108E;D;K;6;CP$UIDd;3;108E;D;K;6;CP$UIDd;2;56E;D;K;6;CP$UIDd;3;119E;D;K;6;CP$UIDd;3;120E;D;K;6;CP$UIDd;3;120E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;3;124E;D;K;6;CP$UIDd;3;126E;D;K;6;CP$UIDd;3;128E;D;K;6;CP$UIDd;3;126E;D;K;6;CP$UIDd;3;130E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;3;128E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;D;K;10;$classnameS;18;_CPCibCustomObjectK;8;$classesA;S;18;_CPCibCustomObjectS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;3;134E;E;D;K;10;$classnameS;5;CPSetK;8;$classesA;S;5;CPSetS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;12E;K;15;CPSetObjectsKeyD;K;6;CP$UIDd;3;135E;E;D;K;10;$classnameS;20;CPCibOutletConnectorK;8;$classesA;S;20;CPCibOutletConnectorS;14;CPCibConnectorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;11E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;131E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;136E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;131E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;128E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;137E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;131E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;130E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;138E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;131E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;124E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;139E;E;D;K;10;$classnameS;21;CPCibControlConnectorK;8;$classesA;S;21;CPCibControlConnectorS;14;CPCibConnectorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;61E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;140E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;63E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;141E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;66E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;11E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;142E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;111E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;143E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;116E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;144E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;109E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;145E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;110E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;146E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;112E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;147E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;73E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;148E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;118E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;149E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;115E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;150E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;67E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;54E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;151E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;100E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;152E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;101E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;153E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;82E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;154E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;77E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;155E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;80E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;156E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;95E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;157E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;76E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;158E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;81E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;159E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;96E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;160E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;78E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;161E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;91E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;162E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;88E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;163E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;84E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;164E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;94E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;165E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;62E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;166E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;121E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;167E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;122E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;168E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;97E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;169E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;104E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;170E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;105E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;171E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;106E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;172E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;128E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;131E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;173E;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;3;134E;E;D;K;10;$classnameS;6;CPMenuK;8;$classesA;S;6;CPMenuS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;55E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;174E;K;13;CPMenuNameKeyD;K;6;CP$UIDd;3;175E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;176E;E;D;K;10;$classnameS;10;CPMenuItemK;8;$classesA;S;10;CPMenuItemS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;177E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;178E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;2;59E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;56E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;179E;E;D;K;6;$classD;K;6;CP$UIDd;2;55E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;177E;K;13;CPMenuNameKeyD;K;6;CP$UIDd;3;180E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;181E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;182E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;183E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;22;CPMenuItemIsEnabledKeyD;K;6;CP$UIDd;3;184E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;59E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;179E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;185E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;59E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;179E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;186E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;59E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;179E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;187E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;59E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;188E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;179E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;189E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;178E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;2;65E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;56E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;179E;E;D;K;6;$classD;K;6;CP$UIDd;2;55E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;189E;K;13;CPMenuNameKeyD;K;6;CP$UIDd;3;190E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;191E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;192E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;65E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;193E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;65E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;194E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;179E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;195E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;65E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;196E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;179E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;182E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;183E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;22;CPMenuItemIsEnabledKeyD;K;6;CP$UIDd;3;184E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;65E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;179E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;182E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;183E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;22;CPMenuItemIsEnabledKeyD;K;6;CP$UIDd;3;184E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;65E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;179E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;197E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;178E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;2;72E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;56E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;179E;E;D;K;6;$classD;K;6;CP$UIDd;2;55E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;197E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;198E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;199E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;72E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;200E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;179E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;201E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;178E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;2;75E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;56E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;179E;E;D;K;6;$classD;K;6;CP$UIDd;2;55E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;201E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;202E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;203E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;75E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;179E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;204E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;75E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;205E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;179E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;206E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;75E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;207E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;179E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;182E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;183E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;22;CPMenuItemIsEnabledKeyD;K;6;CP$UIDd;3;184E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;75E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;179E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;208E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;75E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;209E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;179E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;210E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;75E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;211E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;179E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;212E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;75E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;213E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;179E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;182E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;183E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;22;CPMenuItemIsEnabledKeyD;K;6;CP$UIDd;3;184E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;75E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;179E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;214E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;75E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;215E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;216E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;217E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;178E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;2;86E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;75E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;179E;E;D;K;6;$classD;K;6;CP$UIDd;2;55E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;217E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;218E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;219E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;220E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;86E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;221E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;216E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;222E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;86E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;223E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;179E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;224E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;225E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;86E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;226E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;179E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;227E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;228E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;86E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;229E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;179E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;230E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;231E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;86E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;232E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;179E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;233E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;178E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;2;93E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;75E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;179E;E;D;K;6;$classD;K;6;CP$UIDd;2;55E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;233E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;234E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;235E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;93E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;179E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;236E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;93E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;237E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;179E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;238E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;93E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;239E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;179E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;240E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;93E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;179E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;241E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;178E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;2;99E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;75E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;179E;E;D;K;6;$classD;K;6;CP$UIDd;2;55E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;241E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;242E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;243E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;99E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;179E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;244E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;99E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;179E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;245E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;178E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;103E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;75E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;179E;E;D;K;6;$classD;K;6;CP$UIDd;2;55E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;245E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;246E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;247E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;231E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;103E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;232E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;179E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;248E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;228E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;103E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;229E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;179E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;249E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;220E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;103E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;221E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;216E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;250E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;178E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;108E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;56E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;179E;E;D;K;6;$classD;K;6;CP$UIDd;2;55E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;250E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;251E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;252E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;108E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;253E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;179E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;254E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;108E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;255E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;216E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;256E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;108E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;257E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;179E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;258E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;108E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;259E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;179E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;260E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;178E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;114E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;108E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;179E;E;D;K;6;$classD;K;6;CP$UIDd;2;55E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;260E;K;13;CPMenuNameKeyD;K;6;CP$UIDd;3;261E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;262E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;263E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;114E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;179E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;264E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;108E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;265E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;179E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;182E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;183E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;22;CPMenuItemIsEnabledKeyD;K;6;CP$UIDd;3;184E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;108E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;179E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;266E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;108E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;267E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;178E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;120E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;56E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;179E;E;D;K;6;$classD;K;6;CP$UIDd;2;55E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;267E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;268E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;269E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;120E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;270E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;271E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;272E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;120E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;179E;E;D;K;10;$classnameS;20;_CPCibWindowTemplateK;8;$classesA;S;20;_CPCibWindowTemplateS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;123E;K;30;_CPCibWindowTemplateMaxSizeKeyD;K;6;CP$UIDd;3;273E;K;32;_CPCibWindowTemplateViewClassKeyD;K;6;CP$UIDd;1;0E;K;34;_CPCibWindowTemplateWindowClassKeyD;K;6;CP$UIDd;3;274E;K;30;_CPCibWindowTemplateWTFlagsKeyD;K;6;CP$UIDd;3;275E;K;33;_CPCibWindowTemplateWindowRectKeyD;K;6;CP$UIDd;3;276E;K;33;_CPCibWindowTemplateScreenRectKeyD;K;6;CP$UIDd;3;277E;K;30;_CPCibWindowTempatStyleMaskKeyD;K;6;CP$UIDd;3;225E;K;34;_CPCibWindowTemplateWindowTitleKeyD;K;6;CP$UIDd;3;177E;K;33;_CPCibWindowTemplateWindowViewKeyD;K;6;CP$UIDd;3;126E;E;D;K;10;$classnameS;6;CPViewK;8;$classesA;S;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;125E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;278E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;279E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;279E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;280E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;281E;E;D;K;10;$classnameS;12;CPDatePickerK;8;$classesA;S;12;CPDatePickerS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;127E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;126E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;278E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;282E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;283E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;126E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;284E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;286E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;137E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;287E;K;6;$afontD;K;6;CP$UIDd;3;289E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;291E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;292E;K;21;CPControlFormatterKeyD;K;6;CP$UIDd;3;133E;K;13;CPIntervalKeyD;K;6;CP$UIDd;3;278E;K;19;CPDatePickerModeKeyD;K;6;CP$UIDd;3;278E;K;20;CPDatePickerStyleKeyD;K;6;CP$UIDd;3;278E;K;23;CPDatePickerElementsKeyD;K;6;CP$UIDd;3;293E;K;12;CPMinDateKeyD;K;6;CP$UIDd;3;294E;K;12;CPMaxDateKeyD;K;6;CP$UIDd;3;295E;K;14;CPDateValueKeyD;K;6;CP$UIDd;3;291E;K;13;CPTextFontKeyD;K;6;CP$UIDd;1;0E;K;11;CPLocaleKeyD;K;6;CP$UIDd;1;0E;K;20;CPBackgroundColorKeyD;K;6;CP$UIDd;3;286E;K;20;CPDrawsBackgroundKeyD;K;6;CP$UIDd;3;182E;K;13;CPBorderedKeyD;K;6;CP$UIDd;3;182E;E;D;K;10;$classnameS;11;CPTextFieldK;8;$classesA;S;11;CPTextFieldS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;129E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;126E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;278E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;296E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;297E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;126E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;284E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;298E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;281E;K;11;$aalignmentD;K;6;CP$UIDd;3;228E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;228E;K;6;$afontD;K;6;CP$UIDd;3;299E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;182E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;300E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;292E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;184E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;184E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;184E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;301E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;228E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;228E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;3;302E;E;D;K;10;$classnameS;15;CPDateFormatterK;8;$classesA;S;15;CPDateFormatterS;11;CPFormatterS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;132E;K;38;CPDateFormatterAllowNaturalLanguageKeyD;K;6;CP$UIDd;3;184E;K;24;CPDateFormatterDateStyleD;K;6;CP$UIDd;3;220E;K;28;CPDateFormatterDateFormatKeyD;K;6;CP$UIDd;3;303E;K;44;CPDateFormatterDoseRelativeDateFormattingKeyD;K;6;CP$UIDd;3;184E;K;35;CPDateFormatterFormatterBehaviorKeyD;K;6;CP$UIDd;3;304E;K;24;CPDateFormatterLocaleKeyD;K;6;CP$UIDd;1;0E;K;27;CPDateFormatterTimeStyleKeyD;K;6;CP$UIDd;3;292E;E;S;13;CPApplicationD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;124E;E;E;S;8;delegateS;10;datePickerS;18;labelDateFormatterS;9;theWindowS;15;arrangeInFront:S;19;performMiniaturize:S;29;orderFrontStandardAboutPanel:S;13;openDocument:S;13;performClose:S;13;saveDocument:S;15;saveDocumentAs:S;12;newDocument:S;9;showHelp:S;22;revertDocumentToSaved:S;21;clearRecentDocuments:S;10;terminate:S;13;stopSpeaking:S;14;startSpeaking:S;5;copy:S;10;selectAll:S;4;cut:S;14;checkSpelling:S;7;delete:S;6;paste:S;15;showGuessPanel:S;5;undo:S;23;performFindPanelAction:S;29;centerSelectionInVisibleArea:S;5;redo:S;30;toggleContinuousSpellChecking:S;12;performZoom:S;19;toggleToolbarShown:S;31;runToolbarCustomizationPalette:S;22;toggleGrammarChecking:S;24;toggleSmartInsertDelete:S;33;toggleAutomaticQuoteSubstitution:S;29;toggleAutomaticLinkDetection:S;17;datePickerAction:S;9;AMainMenuS;11;_CPMainMenuD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;64E;D;K;6;CP$UIDd;3;107E;D;K;6;CP$UIDd;2;74E;D;K;6;CP$UIDd;3;119E;D;K;6;CP$UIDd;2;58E;D;K;6;CP$UIDd;2;71E;E;E;S;6;WindowS;14;submenuAction:d;7;1048576S;14;_CPWindowsMenuD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;63E;D;K;6;CP$UIDd;2;62E;D;K;6;CP$UIDd;2;60E;D;K;6;CP$UIDd;2;61E;E;E;T;S;0;F;S;18;Bring All to FrontS;4;ZoomS;8;MinimizeS;1;mS;14;NewApplicationS;18;_CPApplicationMenuD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;66E;D;K;6;CP$UIDd;2;70E;D;K;6;CP$UIDd;2;68E;D;K;6;CP$UIDd;2;69E;D;K;6;CP$UIDd;2;67E;E;E;S;20;About NewApplicationS;19;Quit NewApplicationS;1;qS;12;Preferences…S;1;,S;4;HelpD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;73E;E;E;S;19;NewApplication HelpS;1;?S;4;EditD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;78E;D;K;6;CP$UIDd;2;84E;D;K;6;CP$UIDd;2;83E;D;K;6;CP$UIDd;2;80E;D;K;6;CP$UIDd;2;82E;D;K;6;CP$UIDd;2;81E;D;K;6;CP$UIDd;2;76E;D;K;6;CP$UIDd;2;77E;D;K;6;CP$UIDd;2;79E;D;K;6;CP$UIDd;2;85E;D;K;6;CP$UIDd;2;92E;D;K;6;CP$UIDd;3;102E;D;K;6;CP$UIDd;2;98E;E;E;S;6;DeleteS;10;Select AllS;1;aS;4;UndoS;1;zS;3;CutS;1;xS;5;PasteS;1;vS;4;CopyS;1;cS;4;RedoS;1;Zd;7;1179648S;4;FindD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;91E;D;K;6;CP$UIDd;2;90E;D;K;6;CP$UIDd;2;87E;D;K;6;CP$UIDd;2;89E;D;K;6;CP$UIDd;2;88E;E;E;S;13;Find Previousd;1;3S;1;GS;17;Jump to SelectionS;1;jS;22;Use Selection for Findd;1;7S;1;eS;9;Find Nextd;1;2S;1;gS;5;Find…d;1;1S;1;fS;20;Spelling and GrammarD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;96E;D;K;6;CP$UIDd;2;95E;D;K;6;CP$UIDd;2;94E;D;K;6;CP$UIDd;2;97E;E;E;S;27;Check Spelling While TypingS;14;Check SpellingS;1;;S;14;Show Spelling…S;1;:S;27;Check Grammar With SpellingS;6;SpeechD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;101E;D;K;6;CP$UIDd;3;100E;E;E;S;13;Stop SpeakingS;14;Start SpeakingS;13;SubstitutionsD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;104E;D;K;6;CP$UIDd;3;105E;D;K;6;CP$UIDd;3;106E;E;E;S;16;Smart Copy/PasteS;12;Smart QuotesS;11;Smart LinksS;4;FileD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;112E;D;K;6;CP$UIDd;3;111E;D;K;6;CP$UIDd;3;113E;D;K;6;CP$UIDd;3;117E;D;K;6;CP$UIDd;3;116E;D;K;6;CP$UIDd;3;109E;D;K;6;CP$UIDd;3;110E;D;K;6;CP$UIDd;3;118E;E;E;S;4;SaveS;1;sS;8;Save As…S;1;SS;5;Open…S;1;oS;3;NewS;1;nS;11;Open RecentS;22;_CPRecentDocumentsMenuD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;115E;E;E;S;10;Clear MenuS;5;CloseS;1;wS;15;Revert to SavedS;4;ViewD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;121E;D;K;6;CP$UIDd;3;122E;E;E;S;12;Show ToolbarS;1;td;7;1572864S;18;Customize Toolbar…S;32;{10000000000000, 10000000000000}S;8;CPWindowd;10;1946157056S;24;{{335, 128}, {480, 360}}S;21;{{0, 0}, {1440, 878}}d;1;0S;20;{{0, 0}, {480, 360}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;128E;D;K;6;CP$UIDd;3;130E;E;E;S;6;normalS;22;{{154, 36}, {242, 29}}S;19;{{0, 0}, {242, 29}}d;2;36D;K;10;$classnameS;7;CPColorK;8;$classesA;S;7;CPColorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;285E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;305E;E;S;16;bezeled+borderedD;K;10;$classnameS;6;CPFontK;8;$classesA;S;6;CPFontS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;288E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;306E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;307E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;182E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;184E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;182E;E;D;K;10;$classnameS;6;CPDateK;8;$classesA;S;6;CPDateS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;290E;K;13;CPDateTimeKeyD;K;6;CP$UIDd;3;308E;E;d;1;4d;3;238D;K;6;$classD;K;6;CP$UIDd;3;290E;K;13;CPDateTimeKeyD;K;6;CP$UIDd;3;309E;E;D;K;6;$classD;K;6;CP$UIDd;3;290E;K;13;CPDateTimeKeyD;K;6;CP$UIDd;3;310E;E;S;21;{{47, 93}, {387, 17}}S;19;{{0, 0}, {387, 17}}S;9;textfieldD;K;6;$classD;K;6;CP$UIDd;3;288E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;306E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;311E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;184E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;184E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;182E;E;S;5;LabelD;K;6;$classD;K;6;CP$UIDd;3;285E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;312E;E;S;13;AppControllerS;24;d MMM yyyy 'at' hh:mm:ssd;4;1040D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;231E;D;K;6;CP$UIDd;3;231E;D;K;6;CP$UIDd;3;231E;D;K;6;CP$UIDd;3;231E;E;E;S;28;_CPFontSystemFacePlaceholderd;2;13d;13;1234454400000d;15;-62135510400000d;14;64092297600000d;2;-1D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;313E;D;K;6;CP$UIDd;3;313E;D;K;6;CP$UIDd;3;313E;D;K;6;CP$UIDd;3;231E;E;E;f;18;0.6862745098039216E;K;9;$archiverS;15;CPKeyedArchiverK;8;$versionS;6;100000E; \ No newline at end of file diff --git a/Tests/Manual/CPDateFormatterTest/Resources/MainMenu.xib b/Tests/Manual/CPDateFormatterTest/Resources/MainMenu.xib new file mode 100644 index 000000000..1aa89c8b7 --- /dev/null +++ b/Tests/Manual/CPDateFormatterTest/Resources/MainMenu.xib @@ -0,0 +1,1967 @@ + + + + 1050 + 12D78 + 3084 + 1187.37 + 626.00 + + com.apple.InterfaceBuilder.CocoaPlugin + 3084 + + + YES + NSCustomObject + NSDateFormatter + NSDatePicker + NSDatePickerCell + NSMenu + NSMenuItem + NSTextField + NSTextFieldCell + NSView + NSWindowTemplate + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + + + PluginDependencyRecalculationVersion + + + + YES + + NSApplication + + + FirstResponder + + + NSApplication + + + AMainMenu + + YES + + + NewApplication + + 1048576 + 2147483647 + + NSImage + NSMenuCheckmark + + + NSImage + NSMenuMixedState + + submenuAction: + + NewApplication + + YES + + + About NewApplication + + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Preferences… + , + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Quit NewApplication + q + 1048576 + 2147483647 + + + + + _NSAppleMenu + + + + + File + + 1048576 + 2147483647 + + + submenuAction: + + File + + YES + + + New + n + 1048576 + 2147483647 + + + + + + Open… + o + 1048576 + 2147483647 + + + + + + Open Recent + + 1048576 + 2147483647 + + + submenuAction: + + Open Recent + + YES + + + Clear Menu + + 1048576 + 2147483647 + + + + + _NSRecentDocumentsMenu + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Close + w + 1048576 + 2147483647 + + + + + + Save + s + 1048576 + 2147483647 + + + + + + Save As… + S + 1179648 + 2147483647 + + + + + + Revert to Saved + + 2147483647 + + + + + + + + + Edit + + 1048576 + 2147483647 + + + submenuAction: + + Edit + + YES + + + Undo + z + 1048576 + 2147483647 + + + + + + Redo + Z + 1179648 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Cut + x + 1048576 + 2147483647 + + + + + + Copy + c + 1048576 + 2147483647 + + + + + + Paste + v + 1048576 + 2147483647 + + + + + + Delete + + 1048576 + 2147483647 + + + + + + Select All + a + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Find + + 1048576 + 2147483647 + + + submenuAction: + + Find + + YES + + + Find… + f + 1048576 + 2147483647 + + + 1 + + + + Find Next + g + 1048576 + 2147483647 + + + 2 + + + + Find Previous + G + 1179648 + 2147483647 + + + 3 + + + + Use Selection for Find + e + 1048576 + 2147483647 + + + 7 + + + + Jump to Selection + j + 1048576 + 2147483647 + + + + + + + + + Spelling and Grammar + + 1048576 + 2147483647 + + + submenuAction: + + Spelling and Grammar + + YES + + + Show Spelling… + : + 1048576 + 2147483647 + + + + + + Check Spelling + ; + 1048576 + 2147483647 + + + + + + Check Spelling While Typing + + 1048576 + 2147483647 + + + + + + Check Grammar With Spelling + + 1048576 + 2147483647 + + + + + + + + + Substitutions + + 1048576 + 2147483647 + + + submenuAction: + + Substitutions + + YES + + + Smart Copy/Paste + f + 1048576 + 2147483647 + + + 1 + + + + Smart Quotes + g + 1048576 + 2147483647 + + + 2 + + + + Smart Links + G + 1179648 + 2147483647 + + + 3 + + + + + + + Speech + + 1048576 + 2147483647 + + + submenuAction: + + Speech + + YES + + + Start Speaking + + 1048576 + 2147483647 + + + + + + Stop Speaking + + 1048576 + 2147483647 + + + + + + + + + + + + View + + 1048576 + 2147483647 + + + submenuAction: + + View + + YES + + + Show Toolbar + t + 1572864 + 2147483647 + + + + + + Customize Toolbar… + + 1048576 + 2147483647 + + + + + + + + + Window + + 1048576 + 2147483647 + + + submenuAction: + + Window + + YES + + + Minimize + m + 1048576 + 2147483647 + + + + + + Zoom + + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Bring All to Front + + 1048576 + 2147483647 + + + + + _NSWindowsMenu + + + + + Help + + 1048576 + 2147483647 + + + submenuAction: + + Help + + YES + + + NewApplication Help + ? + 1048576 + 2147483647 + + + + + + + + _NSMainMenu + + + 7 + 2 + {{335, 390}, {480, 360}} + 1946157056 + Window + NSWindow + + + + + 256 + + YES + + + 268 + {{154, 298}, {245, 27}} + + + + _NS:9 + YES + + 71303168 + 0 + + 256147200 + + + LucidaGrande + 13 + 1044 + + + + YES + + YES + dateFormat + dateStyle + doesRelativeDateFormatting + formatterBehavior + timeStyle + + + YES + d MMM yyyy 'at' hh:mm:ss + + + + + + + d MMM yyyy 'at' hh:mm:ss + NO + + _NS:9 + + 0.0 + 238 + + 6 + System + controlBackgroundColor + + 3 + MC42NjY2NjY2NjY3AA + + + + 6 + System + controlTextColor + + 3 + MAA + + + + NO + + + + 268 + {{44, 250}, {393, 17}} + + + + _NS:1535 + YES + + 68157504 + 138413056 + Label + + _NS:1535 + + + 6 + System + controlColor + + + + + NO + + + {480, 360} + + + + + {{0, 0}, {1440, 878}} + {10000000000000, 10000000000000} + YES + + + AppController + + + + + YES + + + terminate: + + + + 449 + + + + orderFrontStandardAboutPanel: + + + + 142 + + + + delegate + + + + 451 + + + + performMiniaturize: + + + + 37 + + + + arrangeInFront: + + + + 39 + + + + clearRecentDocuments: + + + + 127 + + + + performClose: + + + + 193 + + + + toggleContinuousSpellChecking: + + + + 222 + + + + undo: + + + + 223 + + + + copy: + + + + 224 + + + + checkSpelling: + + + + 225 + + + + paste: + + + + 226 + + + + stopSpeaking: + + + + 227 + + + + cut: + + + + 228 + + + + showGuessPanel: + + + + 230 + + + + redo: + + + + 231 + + + + selectAll: + + + + 232 + + + + startSpeaking: + + + + 233 + + + + delete: + + + + 235 + + + + performZoom: + + + + 240 + + + + performFindPanelAction: + + + + 241 + + + + centerSelectionInVisibleArea: + + + + 245 + + + + toggleGrammarChecking: + + + + 347 + + + + toggleSmartInsertDelete: + + + + 355 + + + + toggleAutomaticQuoteSubstitution: + + + + 356 + + + + toggleAutomaticLinkDetection: + + + + 357 + + + + showHelp: + + + + 360 + + + + saveDocument: + + + + 362 + + + + saveDocumentAs: + + + + 363 + + + + revertDocumentToSaved: + + + + 364 + + + + runToolbarCustomizationPalette: + + + + 365 + + + + toggleToolbarShown: + + + + 366 + + + + newDocument: + + + + 373 + + + + openDocument: + + + + 374 + + + + theWindow + + + + 459 + + + + datePicker + + + + 476 + + + + labelDateFormatter + + + + 477 + + + + datePickerAction: + + + + 478 + + + + + YES + + 0 + + YES + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + -3 + + + Application + + + 29 + + + YES + + + + + + + + + MainMenu + + + 19 + + + YES + + + + + + 56 + + + YES + + + + + + 103 + + + YES + + + + + + 217 + + + YES + + + + + + 83 + + + YES + + + + + + 81 + + + YES + + + + + + + + + + + + + 75 + + + + + 80 + + + + + 72 + + + + + 82 + + + + + 124 + + + YES + + + + + + 73 + + + + + 79 + + + + + 112 + + + + + 125 + + + YES + + + + + + 126 + + + + + 205 + + + YES + + + + + + + + + + + + + + + + + + 202 + + + + + 198 + + + + + 207 + + + + + 214 + + + + + 199 + + + + + 203 + + + + + 197 + + + + + 206 + + + + + 215 + + + + + 218 + + + YES + + + + + + 216 + + + YES + + + + + + 200 + + + YES + + + + + + + + + 219 + + + + + 201 + + + + + 204 + + + + + 220 + + + YES + + + + + + + + + + 213 + + + + + 210 + + + + + 221 + + + + + 208 + + + + + 209 + + + + + 106 + + + YES + + + + + + 111 + + + + + 57 + + + YES + + + + + + + + + + 58 + + + + + 136 + + + + + 129 + + + + + 143 + + + + + 236 + + + + + 24 + + + YES + + + + + + + + + 92 + + + + + 5 + + + + + 239 + + + + + 23 + + + + + 295 + + + YES + + + + + + 296 + + + YES + + + + + + + 297 + + + + + 298 + + + + + 211 + + + YES + + + + + + 212 + + + YES + + + + + + + 195 + + + + + 196 + + + + + 346 + + + + + 348 + + + YES + + + + + + 349 + + + YES + + + + + + + + 350 + + + + + 351 + + + + + 354 + + + + + 371 + + + YES + + + + + + 372 + + + YES + + + + + + + 450 + + + + + 460 + + + YES + + + + + + 461 + + + YES + + + + + + 462 + + + YES + + + + + + 463 + + + + + 465 + + + + + + + YES + + YES + -1.IBPluginDependency + -2.IBPluginDependency + -3.IBPluginDependency + 103.IBPluginDependency + 106.IBPluginDependency + 111.IBPluginDependency + 112.IBPluginDependency + 124.IBPluginDependency + 125.IBPluginDependency + 126.IBPluginDependency + 129.IBPluginDependency + 136.IBPluginDependency + 143.IBPluginDependency + 19.IBPluginDependency + 195.IBPluginDependency + 196.IBPluginDependency + 197.IBPluginDependency + 198.IBPluginDependency + 199.IBPluginDependency + 200.IBPluginDependency + 201.IBPluginDependency + 202.IBPluginDependency + 203.IBPluginDependency + 204.IBPluginDependency + 205.IBPluginDependency + 206.IBPluginDependency + 207.IBPluginDependency + 208.IBPluginDependency + 209.IBPluginDependency + 210.IBPluginDependency + 211.IBPluginDependency + 212.IBPluginDependency + 213.IBPluginDependency + 214.IBPluginDependency + 215.IBPluginDependency + 216.IBPluginDependency + 217.IBPluginDependency + 218.IBPluginDependency + 219.IBPluginDependency + 220.IBPluginDependency + 221.IBPluginDependency + 23.IBPluginDependency + 236.IBPluginDependency + 239.IBPluginDependency + 24.IBPluginDependency + 29.IBPluginDependency + 295.IBPluginDependency + 296.IBPluginDependency + 297.IBPluginDependency + 298.IBPluginDependency + 346.IBPluginDependency + 348.IBPluginDependency + 349.IBPluginDependency + 350.IBPluginDependency + 351.IBPluginDependency + 354.IBPluginDependency + 371.IBPluginDependency + 371.IBWindowTemplateEditedContentRect + 371.NSWindowTemplate.visibleAtLaunch + 372.IBPluginDependency + 450.IBPluginDependency + 460.IBPluginDependency + 461.IBPluginDependency + 462.IBPluginDependency + 463.IBPluginDependency + 465.IBDateFormatterBehaviorMetadataKey + 465.IBPluginDependency + 5.IBPluginDependency + 56.IBPluginDependency + 57.IBPluginDependency + 58.IBPluginDependency + 72.IBPluginDependency + 73.IBPluginDependency + 75.IBPluginDependency + 79.IBPluginDependency + 80.IBPluginDependency + 81.IBPluginDependency + 82.IBPluginDependency + 83.IBPluginDependency + 92.IBPluginDependency + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{303, 221}, {480, 360}} + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + + YES + + + + + + YES + + + + + 478 + + + + YES + + AppController + NSObject + + datePickerAction: + id + + + datePickerAction: + + datePickerAction: + id + + + + YES + + YES + datePicker + labelDateFormatter + theWindow + + + YES + NSDatePicker + NSTextField + NSWindow + + + + YES + + YES + datePicker + labelDateFormatter + theWindow + + + YES + + datePicker + NSDatePicker + + + labelDateFormatter + NSTextField + + + theWindow + NSWindow + + + + + IBProjectSource + ./Classes/AppController.h + + + + NSDocument + + YES + + YES + printDocument: + revertDocumentToSaved: + runPageLayout: + saveDocument: + saveDocumentAs: + saveDocumentTo: + + + YES + id + id + id + id + id + id + + + + YES + + YES + printDocument: + revertDocumentToSaved: + runPageLayout: + saveDocument: + saveDocumentAs: + saveDocumentTo: + + + YES + + printDocument: + id + + + revertDocumentToSaved: + id + + + runPageLayout: + id + + + saveDocument: + id + + + saveDocumentAs: + id + + + saveDocumentTo: + id + + + + + IBProjectSource + ./Classes/NSDocument.h + + + + + 0 + IBCocoaFramework + + com.apple.InterfaceBuilder.CocoaPlugin.macosx + + + + com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 + + + YES + 3 + + YES + + YES + NSMenuCheckmark + NSMenuMixedState + + + YES + {11, 11} + {10, 3} + + + + diff --git a/Tests/Manual/CPDateFormatterTest/Resources/spinner.gif b/Tests/Manual/CPDateFormatterTest/Resources/spinner.gif new file mode 100644 index 0000000000000000000000000000000000000000..a5e705f6cbdf914e5e714c35a8dfef807f19e3c2 GIT binary patch literal 1434 zcmZvbdrVVj7{t$-UNOu86#VHu^|s&3rWfwHBbPG_8{SrlB{Tv1uvvj4t6zP!)#d!Ogc zP^62J^$0+~?-ZcXXpBaq%jFsw8L`=H2?+@R02Yg-*Xw;gACBV^i3CMahr>Z667S!? zk3LDe>VLEsU;sWo$Py~o!gWuaIAnaG3Sv``&tvc+8DJO!| zt4fcbQ8tW}a&xZfgtQ9BnFYLvGG|PvCNlg&uh@Q^w9Pz}+I^hCj`vu9JQADPqdkyk zR40xycD9geUgJu1e;$L`Fpa)?Wl-2&6hO@U*KrPqK(I1H=1h?2fce}6GhhP1oBZC# z1e@gt-qFa6lZrl%s1>bdxg*W)Ebt__O(4sj6(*2X@ciUClwHH#U(NRM7XAjS z+scDZ32J*PCoslsgS~#ZlCCGo`r>S6F)Ghw5wVlqHioFaw?ucD(XoLJ0j;28oPoPV z9A}dR$0SKn>uExfkl#j09o;v$BZ909R=*p{ATNq8BJW;YduX2QMOU7$a$_L5e!G^g zpbkx5G4&FZ%7m14rTN}5YB(;x7$5XOc_hf3E|Hw$TVg)P#qf~}nOn03uqsp>UG>vi zWThIoO)-1Q#@u#O;fMC#WAf@Xj70-0g9YZ;dA$HH1fW1q=9-c>>_yA0S$7M*5?}vi z)8MU`Q%P!7sEBBnd$DrKgFQ2?O%6LpdaC%F8Pn-)EC2t=j~ zoaLamla$FX!GQqWi!%s>sj-#5SJX0IF!TP=r21Z}s)k#btN0?=I7uD9C)Gb$fZ#sm zaVq7g`LwZ%PfNpN^_N-IGLHj@AV`s#4&va7_{Hw63G6BkSGXHdogTZ%QOiRb bDpZ@qYcJKM>x%b%*HX74c8MnqfHi*u-bC?g literal 0 HcmV?d00001 diff --git a/Tests/Manual/CPDateFormatterTest/index-debug.html b/Tests/Manual/CPDateFormatterTest/index-debug.html new file mode 100644 index 000000000..96c33bd02 --- /dev/null +++ b/Tests/Manual/CPDateFormatterTest/index-debug.html @@ -0,0 +1,112 @@ + + + + + + + + + + + + + + + + + + CPDateFormatterTest + + + + + + + + + + + + + + +
+
+ + + +
+
+ + + diff --git a/Tests/Manual/CPDateFormatterTest/index.html b/Tests/Manual/CPDateFormatterTest/index.html new file mode 100644 index 000000000..124529560 --- /dev/null +++ b/Tests/Manual/CPDateFormatterTest/index.html @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + CPDateFormatterTest + + + + + + + + + + + + +
+
+ + + +
+
+ + + diff --git a/Tests/Manual/CPDateFormatterTest/main.j b/Tests/Manual/CPDateFormatterTest/main.j new file mode 100644 index 000000000..4295c7ebc --- /dev/null +++ b/Tests/Manual/CPDateFormatterTest/main.j @@ -0,0 +1,18 @@ +/* + * AppController.j + * CPDateFormatterTest + * + * Created by You on April 9, 2013. + * Copyright 2013, Your Company All rights reserved. + */ + +@import +@import + +@import "AppController.j" + + +function main(args, namedArgs) +{ + CPApplicationMain(args, namedArgs); +} diff --git a/Tests/Manual/CPDatePickerTest/Resources/MainMenu.cib b/Tests/Manual/CPDatePickerTest/Resources/MainMenu.cib index ba8729818..7be8a695f 100644 --- a/Tests/Manual/CPDatePickerTest/Resources/MainMenu.cib +++ b/Tests/Manual/CPDatePickerTest/Resources/MainMenu.cib @@ -1 +1 @@ -280NPLIST;1.0;D;K;4;$topD;K;18;CPCibObjectDataKeyD;K;6;CP$UIDd;1;2E;E;K;8;$objectsA;S;5;$nullD;K;10;$classnameS;16;_CPCibObjectDataK;8;$classesA;S;16;_CPCibObjectDataS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;1;1E;K;28;_CPCibObjectDataNamesKeysKeyD;K;6;CP$UIDd;1;0E;K;30;_CPCibObjectDataNamesValuesKeyD;K;6;CP$UIDd;1;0E;K;30;_CPCibObjectDataClassesKeysKeyD;K;6;CP$UIDd;1;0E;K;32;_CPCibObjectDataClassesValuesKeyD;K;6;CP$UIDd;1;0E;K;30;_CPCibObjectDataConnectionsKeyD;K;6;CP$UIDd;1;4E;K;28;_CPCibObjectDataFrameworkKeyD;K;6;CP$UIDd;1;0E;K;26;_CPCibObjectDataNextOidKeyD;K;6;CP$UIDd;1;5E;K;30;_CPCibObjectDataObjectsKeysKeyD;K;6;CP$UIDd;1;6E;K;32;_CPCibObjectDataObjectsValuesKeyD;K;6;CP$UIDd;1;7E;K;26;_CPCibObjectDataOidKeysKeyD;K;6;CP$UIDd;1;8E;K;28;_CPCibObjectDataOidValuesKeyD;K;6;CP$UIDd;1;9E;K;28;_CPCibObjectDataFileOwnerKeyD;K;6;CP$UIDd;2;11E;K;33;_CPCibObjectDataVisibleWindowsKeyD;K;6;CP$UIDd;2;13E;E;D;K;10;$classnameS;7;CPArrayK;8;$classesA;S;7;CPArrayS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;15E;D;K;6;CP$UIDd;2;16E;D;K;6;CP$UIDd;2;17E;D;K;6;CP$UIDd;2;18E;D;K;6;CP$UIDd;2;19E;D;K;6;CP$UIDd;2;20E;D;K;6;CP$UIDd;2;21E;D;K;6;CP$UIDd;2;22E;D;K;6;CP$UIDd;2;23E;D;K;6;CP$UIDd;2;24E;D;K;6;CP$UIDd;2;25E;D;K;6;CP$UIDd;2;26E;D;K;6;CP$UIDd;2;27E;D;K;6;CP$UIDd;2;29E;D;K;6;CP$UIDd;2;30E;D;K;6;CP$UIDd;2;31E;D;K;6;CP$UIDd;2;32E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;2;34E;D;K;6;CP$UIDd;2;35E;D;K;6;CP$UIDd;2;36E;D;K;6;CP$UIDd;2;37E;D;K;6;CP$UIDd;2;38E;D;K;6;CP$UIDd;2;39E;D;K;6;CP$UIDd;2;40E;D;K;6;CP$UIDd;2;41E;D;K;6;CP$UIDd;2;42E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;44E;D;K;6;CP$UIDd;2;45E;D;K;6;CP$UIDd;2;46E;D;K;6;CP$UIDd;2;47E;D;K;6;CP$UIDd;2;48E;D;K;6;CP$UIDd;2;49E;D;K;6;CP$UIDd;2;50E;D;K;6;CP$UIDd;2;51E;D;K;6;CP$UIDd;2;52E;D;K;6;CP$UIDd;2;53E;D;K;6;CP$UIDd;2;54E;D;K;6;CP$UIDd;2;55E;D;K;6;CP$UIDd;2;56E;D;K;6;CP$UIDd;2;57E;D;K;6;CP$UIDd;2;58E;D;K;6;CP$UIDd;2;59E;D;K;6;CP$UIDd;2;60E;D;K;6;CP$UIDd;2;61E;D;K;6;CP$UIDd;2;62E;D;K;6;CP$UIDd;2;63E;D;K;6;CP$UIDd;2;64E;D;K;6;CP$UIDd;2;65E;D;K;6;CP$UIDd;2;67E;D;K;6;CP$UIDd;2;68E;D;K;6;CP$UIDd;2;69E;D;K;6;CP$UIDd;2;70E;D;K;6;CP$UIDd;2;71E;D;K;6;CP$UIDd;2;72E;D;K;6;CP$UIDd;2;73E;D;K;6;CP$UIDd;2;74E;D;K;6;CP$UIDd;2;75E;D;K;6;CP$UIDd;2;76E;D;K;6;CP$UIDd;2;77E;D;K;6;CP$UIDd;2;78E;D;K;6;CP$UIDd;2;79E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;80E;D;K;6;CP$UIDd;2;82E;D;K;6;CP$UIDd;2;84E;D;K;6;CP$UIDd;2;85E;D;K;6;CP$UIDd;2;86E;D;K;6;CP$UIDd;2;87E;D;K;6;CP$UIDd;2;88E;D;K;6;CP$UIDd;2;89E;D;K;6;CP$UIDd;2;90E;D;K;6;CP$UIDd;2;91E;D;K;6;CP$UIDd;2;92E;D;K;6;CP$UIDd;2;93E;D;K;6;CP$UIDd;2;94E;D;K;6;CP$UIDd;2;95E;D;K;6;CP$UIDd;2;96E;D;K;6;CP$UIDd;2;97E;D;K;6;CP$UIDd;2;98E;D;K;6;CP$UIDd;2;99E;D;K;6;CP$UIDd;3;100E;D;K;6;CP$UIDd;3;101E;D;K;6;CP$UIDd;3;102E;D;K;6;CP$UIDd;3;103E;D;K;6;CP$UIDd;3;104E;D;K;6;CP$UIDd;3;105E;D;K;6;CP$UIDd;3;106E;D;K;6;CP$UIDd;3;107E;D;K;6;CP$UIDd;3;108E;D;K;6;CP$UIDd;3;109E;D;K;6;CP$UIDd;3;110E;D;K;6;CP$UIDd;3;111E;D;K;6;CP$UIDd;3;112E;D;K;6;CP$UIDd;3;113E;D;K;6;CP$UIDd;3;114E;D;K;6;CP$UIDd;3;115E;D;K;6;CP$UIDd;3;116E;D;K;6;CP$UIDd;3;117E;D;K;6;CP$UIDd;3;118E;D;K;6;CP$UIDd;3;119E;D;K;6;CP$UIDd;3;120E;D;K;6;CP$UIDd;3;121E;D;K;6;CP$UIDd;3;122E;D;K;6;CP$UIDd;3;123E;D;K;6;CP$UIDd;3;124E;D;K;6;CP$UIDd;3;125E;D;K;6;CP$UIDd;3;126E;D;K;6;CP$UIDd;3;127E;D;K;6;CP$UIDd;3;128E;D;K;6;CP$UIDd;3;129E;D;K;6;CP$UIDd;3;130E;D;K;6;CP$UIDd;3;131E;D;K;6;CP$UIDd;3;132E;D;K;6;CP$UIDd;3;133E;D;K;6;CP$UIDd;3;134E;D;K;6;CP$UIDd;3;135E;D;K;6;CP$UIDd;3;136E;D;K;6;CP$UIDd;3;137E;D;K;6;CP$UIDd;3;138E;D;K;6;CP$UIDd;3;139E;D;K;6;CP$UIDd;3;140E;D;K;6;CP$UIDd;3;141E;D;K;6;CP$UIDd;3;142E;D;K;6;CP$UIDd;3;143E;D;K;6;CP$UIDd;3;144E;D;K;6;CP$UIDd;3;145E;D;K;6;CP$UIDd;3;146E;D;K;6;CP$UIDd;3;147E;D;K;6;CP$UIDd;3;148E;D;K;6;CP$UIDd;3;150E;D;K;6;CP$UIDd;3;151E;D;K;6;CP$UIDd;3;153E;D;K;6;CP$UIDd;3;155E;D;K;6;CP$UIDd;3;157E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;159E;D;K;6;CP$UIDd;3;161E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;162E;D;K;6;CP$UIDd;3;163E;D;K;6;CP$UIDd;3;164E;D;K;6;CP$UIDd;3;165E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;166E;D;K;6;CP$UIDd;3;167E;D;K;6;CP$UIDd;3;168E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;169E;D;K;6;CP$UIDd;3;170E;D;K;6;CP$UIDd;3;171E;D;K;6;CP$UIDd;3;172E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;173E;D;K;6;CP$UIDd;3;174E;D;K;6;CP$UIDd;3;175E;D;K;6;CP$UIDd;3;177E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;178E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;179E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;181E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;182E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;183E;D;K;6;CP$UIDd;3;184E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;185E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;186E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;187E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;188E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;189E;D;K;6;CP$UIDd;3;190E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;191E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;192E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;193E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;194E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;195E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;196E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;197E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;198E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;200E;D;K;6;CP$UIDd;3;201E;D;K;6;CP$UIDd;3;202E;D;K;6;CP$UIDd;3;203E;D;K;6;CP$UIDd;3;204E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;2;82E;D;K;6;CP$UIDd;2;84E;D;K;6;CP$UIDd;2;85E;D;K;6;CP$UIDd;2;85E;D;K;6;CP$UIDd;2;85E;D;K;6;CP$UIDd;2;85E;D;K;6;CP$UIDd;2;82E;D;K;6;CP$UIDd;2;90E;D;K;6;CP$UIDd;2;91E;D;K;6;CP$UIDd;2;91E;D;K;6;CP$UIDd;2;91E;D;K;6;CP$UIDd;2;91E;D;K;6;CP$UIDd;2;91E;D;K;6;CP$UIDd;2;82E;D;K;6;CP$UIDd;2;97E;D;K;6;CP$UIDd;2;98E;D;K;6;CP$UIDd;2;82E;D;K;6;CP$UIDd;3;100E;D;K;6;CP$UIDd;3;101E;D;K;6;CP$UIDd;3;101E;D;K;6;CP$UIDd;3;101E;D;K;6;CP$UIDd;3;101E;D;K;6;CP$UIDd;3;101E;D;K;6;CP$UIDd;3;101E;D;K;6;CP$UIDd;3;101E;D;K;6;CP$UIDd;3;101E;D;K;6;CP$UIDd;3;101E;D;K;6;CP$UIDd;3;101E;D;K;6;CP$UIDd;3;111E;D;K;6;CP$UIDd;3;112E;D;K;6;CP$UIDd;3;112E;D;K;6;CP$UIDd;3;112E;D;K;6;CP$UIDd;3;112E;D;K;6;CP$UIDd;3;112E;D;K;6;CP$UIDd;3;101E;D;K;6;CP$UIDd;3;118E;D;K;6;CP$UIDd;3;119E;D;K;6;CP$UIDd;3;119E;D;K;6;CP$UIDd;3;119E;D;K;6;CP$UIDd;3;119E;D;K;6;CP$UIDd;3;101E;D;K;6;CP$UIDd;3;124E;D;K;6;CP$UIDd;3;125E;D;K;6;CP$UIDd;3;125E;D;K;6;CP$UIDd;3;101E;D;K;6;CP$UIDd;3;128E;D;K;6;CP$UIDd;3;129E;D;K;6;CP$UIDd;3;129E;D;K;6;CP$UIDd;3;129E;D;K;6;CP$UIDd;2;82E;D;K;6;CP$UIDd;3;133E;D;K;6;CP$UIDd;3;134E;D;K;6;CP$UIDd;3;134E;D;K;6;CP$UIDd;3;134E;D;K;6;CP$UIDd;3;134E;D;K;6;CP$UIDd;3;134E;D;K;6;CP$UIDd;3;139E;D;K;6;CP$UIDd;3;140E;D;K;6;CP$UIDd;3;134E;D;K;6;CP$UIDd;3;134E;D;K;6;CP$UIDd;3;134E;D;K;6;CP$UIDd;2;82E;D;K;6;CP$UIDd;3;145E;D;K;6;CP$UIDd;3;146E;D;K;6;CP$UIDd;3;146E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;3;153E;D;K;6;CP$UIDd;3;155E;D;K;6;CP$UIDd;3;157E;D;K;6;CP$UIDd;3;155E;D;K;6;CP$UIDd;3;159E;D;K;6;CP$UIDd;3;161E;D;K;6;CP$UIDd;3;204E;D;K;6;CP$UIDd;3;204E;D;K;6;CP$UIDd;3;204E;D;K;6;CP$UIDd;3;159E;D;K;6;CP$UIDd;3;165E;D;K;6;CP$UIDd;3;203E;D;K;6;CP$UIDd;3;203E;D;K;6;CP$UIDd;3;159E;D;K;6;CP$UIDd;3;168E;D;K;6;CP$UIDd;3;202E;D;K;6;CP$UIDd;3;202E;D;K;6;CP$UIDd;3;202E;D;K;6;CP$UIDd;3;159E;D;K;6;CP$UIDd;3;172E;D;K;6;CP$UIDd;3;201E;D;K;6;CP$UIDd;3;201E;D;K;6;CP$UIDd;3;201E;D;K;6;CP$UIDd;3;159E;D;K;6;CP$UIDd;3;177E;D;K;6;CP$UIDd;3;159E;D;K;6;CP$UIDd;3;178E;D;K;6;CP$UIDd;3;159E;D;K;6;CP$UIDd;3;179E;D;K;6;CP$UIDd;3;159E;D;K;6;CP$UIDd;3;181E;D;K;6;CP$UIDd;3;159E;D;K;6;CP$UIDd;3;182E;D;K;6;CP$UIDd;3;159E;D;K;6;CP$UIDd;3;159E;D;K;6;CP$UIDd;3;184E;D;K;6;CP$UIDd;3;159E;D;K;6;CP$UIDd;3;185E;D;K;6;CP$UIDd;3;159E;D;K;6;CP$UIDd;3;186E;D;K;6;CP$UIDd;3;159E;D;K;6;CP$UIDd;3;187E;D;K;6;CP$UIDd;3;159E;D;K;6;CP$UIDd;3;188E;D;K;6;CP$UIDd;3;159E;D;K;6;CP$UIDd;3;159E;D;K;6;CP$UIDd;3;190E;D;K;6;CP$UIDd;3;159E;D;K;6;CP$UIDd;3;191E;D;K;6;CP$UIDd;3;159E;D;K;6;CP$UIDd;3;192E;D;K;6;CP$UIDd;3;159E;D;K;6;CP$UIDd;3;193E;D;K;6;CP$UIDd;3;159E;D;K;6;CP$UIDd;3;194E;D;K;6;CP$UIDd;3;159E;D;K;6;CP$UIDd;3;195E;D;K;6;CP$UIDd;3;155E;D;K;6;CP$UIDd;3;196E;D;K;6;CP$UIDd;3;155E;D;K;6;CP$UIDd;3;197E;D;K;6;CP$UIDd;3;155E;D;K;6;CP$UIDd;3;198E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;3;172E;D;K;6;CP$UIDd;3;168E;D;K;6;CP$UIDd;3;165E;D;K;6;CP$UIDd;3;161E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;D;K;10;$classnameS;18;_CPCibCustomObjectK;8;$classesA;S;18;_CPCibCustomObjectS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;3;205E;E;D;K;10;$classnameS;5;CPSetK;8;$classesA;S;5;CPSetS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;12E;K;15;CPSetObjectsKeyD;K;6;CP$UIDd;3;206E;E;D;K;10;$classnameS;20;CPCibOutletConnectorK;8;$classesA;S;20;CPCibOutletConnectorS;14;CPCibConnectorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;11E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;151E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;207E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;151E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;168E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;208E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;151E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;172E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;209E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;151E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;161E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;210E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;151E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;192E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;211E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;151E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;187E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;212E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;151E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;184E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;213E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;151E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;157E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;214E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;151E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;153E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;215E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;184E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;187E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;216E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;187E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;192E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;216E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;192E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;184E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;216E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;150E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;157E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;217E;E;D;K;10;$classnameS;21;CPCibControlConnectorK;8;$classesA;S;21;CPCibControlConnectorS;14;CPCibConnectorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;87E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;218E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;89E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;219E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;92E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;11E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;220E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;137E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;221E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;142E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;222E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;135E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;223E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;136E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;224E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;138E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;225E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;99E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;226E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;144E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;227E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;141E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;228E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;93E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;80E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;229E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;126E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;230E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;127E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;231E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;108E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;232E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;103E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;233E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;106E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;234E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;121E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;235E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;102E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;236E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;107E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;237E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;122E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;238E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;104E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;239E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;117E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;240E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;114E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;241E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;110E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;242E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;120E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;243E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;88E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;244E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;147E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;245E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;148E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;246E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;123E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;247E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;130E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;248E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;131E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;249E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;132E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;250E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;168E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;151E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;251E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;172E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;151E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;251E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;186E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;151E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;252E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;188E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;151E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;253E;E;D;K;10;$classnameS;21;CPCibBindingConnectorK;8;$classesA;S;21;CPCibBindingConnectorS;14;CPCibConnectorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;66E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;195E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;151E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;254E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;3;255E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;3;256E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;3;258E;E;D;K;6;$classD;K;6;CP$UIDd;2;66E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;198E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;151E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;259E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;3;255E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;3;260E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;3;261E;E;D;K;6;$classD;K;6;CP$UIDd;2;66E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;197E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;151E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;262E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;3;255E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;3;263E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;3;264E;E;D;K;6;$classD;K;6;CP$UIDd;2;66E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;194E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;151E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;265E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;3;255E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;3;266E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;3;267E;E;D;K;6;$classD;K;6;CP$UIDd;2;66E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;193E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;151E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;268E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;3;255E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;3;269E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;3;270E;E;D;K;6;$classD;K;6;CP$UIDd;2;66E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;192E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;151E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;271E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;3;255E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;3;272E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;3;273E;E;D;K;6;$classD;K;6;CP$UIDd;2;66E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;187E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;151E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;274E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;3;255E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;3;275E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;3;276E;E;D;K;6;$classD;K;6;CP$UIDd;2;66E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;184E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;151E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;277E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;3;255E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;3;278E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;3;279E;E;D;K;6;$classD;K;6;CP$UIDd;2;66E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;165E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;150E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;280E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;3;281E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;3;282E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;3;283E;E;D;K;6;$classD;K;6;CP$UIDd;2;66E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;161E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;150E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;284E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;3;281E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;3;285E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;3;286E;E;D;K;6;$classD;K;6;CP$UIDd;2;66E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;157E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;151E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;287E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;3;288E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;3;289E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;3;290E;E;D;K;6;$classD;K;6;CP$UIDd;2;66E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;157E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;151E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;291E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;3;292E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;3;293E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;3;294E;E;D;K;6;$classD;K;6;CP$UIDd;2;66E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;157E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;151E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;295E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;3;255E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;3;296E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;3;297E;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;3;205E;E;D;K;10;$classnameS;6;CPMenuK;8;$classesA;S;6;CPMenuS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;81E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;298E;K;13;CPMenuNameKeyD;K;6;CP$UIDd;3;299E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;300E;E;D;K;10;$classnameS;10;CPMenuItemK;8;$classesA;S;10;CPMenuItemS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;301E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;302E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;2;85E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;82E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;81E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;301E;K;13;CPMenuNameKeyD;K;6;CP$UIDd;3;304E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;305E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;306E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;307E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;22;CPMenuItemIsEnabledKeyD;K;6;CP$UIDd;3;308E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;85E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;309E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;85E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;310E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;85E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;311E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;85E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;312E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;313E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;302E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;2;91E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;82E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;81E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;313E;K;13;CPMenuNameKeyD;K;6;CP$UIDd;3;314E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;315E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;316E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;91E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;317E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;91E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;318E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;319E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;91E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;320E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;306E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;307E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;22;CPMenuItemIsEnabledKeyD;K;6;CP$UIDd;3;308E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;91E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;306E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;307E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;22;CPMenuItemIsEnabledKeyD;K;6;CP$UIDd;3;308E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;91E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;321E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;302E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;2;98E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;82E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;81E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;321E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;322E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;323E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;98E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;324E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;325E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;302E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;101E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;82E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;81E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;325E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;326E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;327E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;101E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;328E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;101E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;329E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;330E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;101E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;331E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;306E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;307E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;22;CPMenuItemIsEnabledKeyD;K;6;CP$UIDd;3;308E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;101E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;332E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;101E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;333E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;334E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;101E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;335E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;336E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;101E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;337E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;306E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;307E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;22;CPMenuItemIsEnabledKeyD;K;6;CP$UIDd;3;308E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;101E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;338E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;101E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;339E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;340E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;341E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;302E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;112E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;101E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;81E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;341E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;342E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;343E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;344E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;112E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;345E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;340E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;346E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;112E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;347E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;348E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;349E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;112E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;350E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;351E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;352E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;112E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;353E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;354E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;355E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;112E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;356E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;357E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;302E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;119E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;101E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;81E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;357E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;358E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;359E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;119E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;360E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;119E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;361E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;362E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;119E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;363E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;364E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;119E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;365E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;302E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;125E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;101E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;81E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;365E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;366E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;367E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;125E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;368E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;125E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;369E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;302E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;129E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;101E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;81E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;369E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;370E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;371E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;355E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;129E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;356E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;372E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;352E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;129E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;353E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;373E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;344E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;129E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;345E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;340E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;374E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;302E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;134E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;82E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;81E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;374E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;375E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;376E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;134E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;377E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;378E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;134E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;379E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;340E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;380E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;134E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;381E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;382E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;134E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;383E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;384E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;302E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;140E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;134E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;81E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;384E;K;13;CPMenuNameKeyD;K;6;CP$UIDd;3;385E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;386E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;387E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;140E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;388E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;134E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;389E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;306E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;307E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;22;CPMenuItemIsEnabledKeyD;K;6;CP$UIDd;3;308E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;134E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;390E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;134E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;391E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;302E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;146E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;82E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;81E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;391E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;392E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;393E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;146E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;394E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;395E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;396E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;146E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;10;$classnameS;18;CPObjectControllerK;8;$classesA;S;18;CPObjectControllerS;12;CPControllerS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;149E;K;28;CPObjectControllerContentKeyD;K;6;CP$UIDd;1;0E;K;36;CPObjectControllerObjectClassNameKeyD;K;6;CP$UIDd;3;397E;K;31;CPObjectControllerIsEditableKeyD;K;6;CP$UIDd;3;306E;K;49;CPObjectControllerAutomaticallyPreparesContentKeyD;K;6;CP$UIDd;3;308E;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;3;398E;E;D;K;10;$classnameS;20;_CPCibWindowTemplateK;8;$classesA;S;20;_CPCibWindowTemplateS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;152E;K;30;_CPCibWindowTemplateMaxSizeKeyD;K;6;CP$UIDd;3;399E;K;32;_CPCibWindowTemplateViewClassKeyD;K;6;CP$UIDd;1;0E;K;34;_CPCibWindowTemplateWindowClassKeyD;K;6;CP$UIDd;3;400E;K;30;_CPCibWindowTemplateWTFlagsKeyD;K;6;CP$UIDd;3;401E;K;33;_CPCibWindowTemplateWindowRectKeyD;K;6;CP$UIDd;3;402E;K;33;_CPCibWindowTemplateScreenRectKeyD;K;6;CP$UIDd;3;403E;K;30;_CPCibWindowTempatStyleMaskKeyD;K;6;CP$UIDd;3;349E;K;34;_CPCibWindowTemplateWindowTitleKeyD;K;6;CP$UIDd;3;404E;K;33;_CPCibWindowTemplateWindowViewKeyD;K;6;CP$UIDd;3;155E;E;D;K;10;$classnameS;6;CPViewK;8;$classesA;S;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;154E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;405E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;406E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;406E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;407E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;408E;E;D;K;10;$classnameS;12;CPDatePickerK;8;$classesA;S;12;CPDatePickerS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;156E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;155E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;405E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;409E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;410E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;155E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;411E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;413E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;414E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;415E;K;6;$afontD;K;6;CP$UIDd;3;417E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;419E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;420E;K;13;CPIntervalKeyD;K;6;CP$UIDd;3;405E;K;19;CPDatePickerModeKeyD;K;6;CP$UIDd;3;355E;K;20;CPDatePickerStyleKeyD;K;6;CP$UIDd;3;355E;K;23;CPDatePickerElementsKeyD;K;6;CP$UIDd;3;421E;K;12;CPMinDateKeyD;K;6;CP$UIDd;3;422E;K;12;CPMaxDateKeyD;K;6;CP$UIDd;3;423E;K;14;CPDateValueKeyD;K;6;CP$UIDd;3;419E;K;13;CPTextFontKeyD;K;6;CP$UIDd;1;0E;K;11;CPLocaleKeyD;K;6;CP$UIDd;1;0E;K;14;CPFormatterKeyD;K;6;CP$UIDd;1;0E;K;20;CPBackgroundColorKeyD;K;6;CP$UIDd;3;413E;K;20;CPDrawsBackgroundKeyD;K;6;CP$UIDd;3;306E;K;13;CPBorderedKeyD;K;6;CP$UIDd;3;306E;E;D;K;10;$classnameS;5;CPBoxK;8;$classesA;S;5;CPBoxS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;158E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;155E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;405E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;424E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;425E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;426E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;155E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;411E;K;25;CPViewAutoresizesSubviewsD;K;6;CP$UIDd;3;405E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;427E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;408E;K;12;CPBoxTypeKeyD;K;6;CP$UIDd;3;405E;K;18;CPBoxBorderTypeKeyD;K;6;CP$UIDd;3;355E;K;10;CPBoxTitleD;K;6;CP$UIDd;3;428E;K;18;CPBoxTitlePositionD;K;6;CP$UIDd;3;405E;K;14;CPBoxTitleViewD;K;6;CP$UIDd;1;0E;E;D;K;10;$classnameS;13;CPPopUpButtonK;8;$classesA;S;13;CPPopUpButtonS;8;CPButtonS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;160E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;429E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;3;204E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;405E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;430E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;431E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;429E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;411E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;432E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;433E;K;11;$aalignmentD;K;6;CP$UIDd;3;405E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;420E;K;6;$afontD;K;6;CP$UIDd;3;434E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;352E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;420E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;1;0E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;307E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;308E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;435E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;405E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;306E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;352E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;405E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;436E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;3;161E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;437E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;355E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;3;355E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;204E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;438E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;3;161E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;437E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;204E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;439E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;3;161E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;437E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;352E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;204E;E;D;K;6;$classD;K;6;CP$UIDd;3;160E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;429E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;3;203E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;405E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;440E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;431E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;429E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;411E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;432E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;433E;K;11;$aalignmentD;K;6;CP$UIDd;3;405E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;420E;K;6;$afontD;K;6;CP$UIDd;3;441E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;355E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;420E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;1;0E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;307E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;308E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;435E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;405E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;306E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;352E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;405E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;442E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;3;165E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;437E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;203E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;443E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;3;165E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;437E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;355E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;3;355E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;203E;E;D;K;6;$classD;K;6;CP$UIDd;3;160E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;429E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;3;202E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;405E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;444E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;431E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;429E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;411E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;432E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;433E;K;11;$aalignmentD;K;6;CP$UIDd;3;405E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;420E;K;6;$afontD;K;6;CP$UIDd;3;445E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;405E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;420E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;1;0E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;307E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;308E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;435E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;405E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;306E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;352E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;405E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;446E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;3;168E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;437E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;202E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;447E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;3;168E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;437E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;355E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;202E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;448E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;3;168E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;437E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;352E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;3;355E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;202E;E;D;K;6;$classD;K;6;CP$UIDd;3;160E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;429E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;3;201E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;405E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;449E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;431E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;429E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;411E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;432E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;433E;K;11;$aalignmentD;K;6;CP$UIDd;3;405E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;420E;K;6;$afontD;K;6;CP$UIDd;3;445E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;405E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;420E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;1;0E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;307E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;308E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;435E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;405E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;306E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;352E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;405E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;450E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;3;172E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;437E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;352E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;3;355E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;201E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;451E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;3;172E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;437E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;355E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;201E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;446E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;3;172E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;437E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;201E;E;D;K;10;$classnameS;11;CPTextFieldK;8;$classesA;S;11;CPTextFieldS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;176E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;429E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;405E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;452E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;453E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;429E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;411E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;454E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;408E;K;11;$aalignmentD;K;6;CP$UIDd;3;405E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;352E;K;6;$afontD;K;6;CP$UIDd;3;445E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;306E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;455E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;420E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;308E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;308E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;308E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;456E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;352E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;405E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;3;176E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;429E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;405E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;457E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;453E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;429E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;411E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;454E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;408E;K;11;$aalignmentD;K;6;CP$UIDd;3;405E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;352E;K;6;$afontD;K;6;CP$UIDd;3;434E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;306E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;458E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;420E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;308E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;308E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;308E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;456E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;352E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;405E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;3;176E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;429E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;405E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;459E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;453E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;429E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;411E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;454E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;408E;K;11;$aalignmentD;K;6;CP$UIDd;3;405E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;352E;K;6;$afontD;K;6;CP$UIDd;3;441E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;306E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;460E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;420E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;308E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;308E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;308E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;456E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;352E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;405E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;10;$classnameS;10;CPCheckBoxK;8;$classesA;S;10;CPCheckBoxS;8;CPButtonS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;180E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;429E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;405E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;461E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;462E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;429E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;411E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;463E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;464E;K;11;$aalignmentD;K;6;CP$UIDd;3;420E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;405E;K;6;$afontD;K;6;CP$UIDd;3;465E;K;16;$aimage-positionD;K;6;CP$UIDd;3;352E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;355E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;420E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;466E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;307E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;308E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;355E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;355E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;306E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;352E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;405E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;3;180E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;429E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;405E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;467E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;468E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;429E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;411E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;463E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;464E;K;11;$aalignmentD;K;6;CP$UIDd;3;420E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;405E;K;6;$afontD;K;6;CP$UIDd;3;465E;K;16;$aimage-positionD;K;6;CP$UIDd;3;352E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;355E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;420E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;469E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;307E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;308E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;355E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;355E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;306E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;352E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;405E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;3;158E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;429E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;405E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;470E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;471E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;429E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;411E;K;25;CPViewAutoresizesSubviewsD;K;6;CP$UIDd;3;405E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;427E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;408E;K;14;$aborder-widthD;K;6;CP$UIDd;3;405E;K;15;$acorner-radiusD;K;6;CP$UIDd;3;405E;K;16;$acontent-marginD;K;6;CP$UIDd;3;473E;K;12;CPBoxTypeKeyD;K;6;CP$UIDd;3;352E;K;18;CPBoxBorderTypeKeyD;K;6;CP$UIDd;3;344E;K;10;CPBoxTitleD;K;6;CP$UIDd;3;474E;K;18;CPBoxTitlePositionD;K;6;CP$UIDd;3;405E;K;14;CPBoxTitleViewD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;3;156E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;429E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;405E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;475E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;476E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;429E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;411E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;413E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;414E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;415E;K;6;$afontD;K;6;CP$UIDd;3;417E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;422E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;420E;K;13;CPIntervalKeyD;K;6;CP$UIDd;3;405E;K;19;CPDatePickerModeKeyD;K;6;CP$UIDd;3;405E;K;20;CPDatePickerStyleKeyD;K;6;CP$UIDd;3;405E;K;23;CPDatePickerElementsKeyD;K;6;CP$UIDd;3;477E;K;12;CPMinDateKeyD;K;6;CP$UIDd;3;478E;K;12;CPMaxDateKeyD;K;6;CP$UIDd;3;479E;K;14;CPDateValueKeyD;K;6;CP$UIDd;3;422E;K;13;CPTextFontKeyD;K;6;CP$UIDd;1;0E;K;11;CPLocaleKeyD;K;6;CP$UIDd;1;0E;K;14;CPFormatterKeyD;K;6;CP$UIDd;1;0E;K;20;CPBackgroundColorKeyD;K;6;CP$UIDd;3;413E;K;20;CPDrawsBackgroundKeyD;K;6;CP$UIDd;3;306E;K;13;CPBorderedKeyD;K;6;CP$UIDd;3;306E;E;D;K;6;$classD;K;6;CP$UIDd;3;176E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;429E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;405E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;480E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;453E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;429E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;411E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;454E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;408E;K;11;$aalignmentD;K;6;CP$UIDd;3;405E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;352E;K;6;$afontD;K;6;CP$UIDd;3;481E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;306E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;482E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;420E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;308E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;308E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;308E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;456E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;352E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;405E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;3;180E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;429E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;405E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;483E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;484E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;429E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;411E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;463E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;485E;K;11;$aalignmentD;K;6;CP$UIDd;3;420E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;405E;K;6;$afontD;K;6;CP$UIDd;3;465E;K;16;$aimage-positionD;K;6;CP$UIDd;3;352E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;355E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;420E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;486E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;307E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;308E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;355E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;355E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;306E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;352E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;405E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;3;156E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;429E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;405E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;487E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;476E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;429E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;411E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;413E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;414E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;415E;K;6;$afontD;K;6;CP$UIDd;3;417E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;423E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;420E;K;13;CPIntervalKeyD;K;6;CP$UIDd;3;405E;K;19;CPDatePickerModeKeyD;K;6;CP$UIDd;3;405E;K;20;CPDatePickerStyleKeyD;K;6;CP$UIDd;3;405E;K;23;CPDatePickerElementsKeyD;K;6;CP$UIDd;3;477E;K;12;CPMinDateKeyD;K;6;CP$UIDd;3;488E;K;12;CPMaxDateKeyD;K;6;CP$UIDd;3;489E;K;14;CPDateValueKeyD;K;6;CP$UIDd;3;423E;K;13;CPTextFontKeyD;K;6;CP$UIDd;1;0E;K;11;CPLocaleKeyD;K;6;CP$UIDd;1;0E;K;14;CPFormatterKeyD;K;6;CP$UIDd;1;0E;K;20;CPBackgroundColorKeyD;K;6;CP$UIDd;3;413E;K;20;CPDrawsBackgroundKeyD;K;6;CP$UIDd;3;306E;K;13;CPBorderedKeyD;K;6;CP$UIDd;3;306E;E;D;K;6;$classD;K;6;CP$UIDd;3;180E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;429E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;405E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;490E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;491E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;429E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;411E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;463E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;485E;K;11;$aalignmentD;K;6;CP$UIDd;3;420E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;405E;K;6;$afontD;K;6;CP$UIDd;3;465E;K;16;$aimage-positionD;K;6;CP$UIDd;3;352E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;355E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;420E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;492E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;307E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;308E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;355E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;355E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;306E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;352E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;405E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;3;158E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;429E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;405E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;493E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;471E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;429E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;411E;K;25;CPViewAutoresizesSubviewsD;K;6;CP$UIDd;3;405E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;427E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;408E;K;14;$aborder-widthD;K;6;CP$UIDd;3;405E;K;15;$acorner-radiusD;K;6;CP$UIDd;3;405E;K;16;$acontent-marginD;K;6;CP$UIDd;3;494E;K;12;CPBoxTypeKeyD;K;6;CP$UIDd;3;352E;K;18;CPBoxBorderTypeKeyD;K;6;CP$UIDd;3;344E;K;10;CPBoxTitleD;K;6;CP$UIDd;3;474E;K;18;CPBoxTitlePositionD;K;6;CP$UIDd;3;405E;K;14;CPBoxTitleViewD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;3;176E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;429E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;405E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;495E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;453E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;429E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;411E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;454E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;408E;K;11;$aalignmentD;K;6;CP$UIDd;3;405E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;352E;K;6;$afontD;K;6;CP$UIDd;3;496E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;306E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;497E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;420E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;308E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;308E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;308E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;456E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;352E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;405E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;3;176E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;429E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;405E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;498E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;453E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;429E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;411E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;454E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;408E;K;11;$aalignmentD;K;6;CP$UIDd;3;405E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;352E;K;6;$afontD;K;6;CP$UIDd;3;499E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;306E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;500E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;420E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;308E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;308E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;308E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;456E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;352E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;405E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;3;156E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;429E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;405E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;501E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;476E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;429E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;411E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;413E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;414E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;415E;K;6;$afontD;K;6;CP$UIDd;3;417E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;502E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;420E;K;13;CPIntervalKeyD;K;6;CP$UIDd;3;405E;K;19;CPDatePickerModeKeyD;K;6;CP$UIDd;3;405E;K;20;CPDatePickerStyleKeyD;K;6;CP$UIDd;3;405E;K;23;CPDatePickerElementsKeyD;K;6;CP$UIDd;3;477E;K;12;CPMinDateKeyD;K;6;CP$UIDd;3;503E;K;12;CPMaxDateKeyD;K;6;CP$UIDd;3;504E;K;14;CPDateValueKeyD;K;6;CP$UIDd;3;502E;K;13;CPTextFontKeyD;K;6;CP$UIDd;1;0E;K;11;CPLocaleKeyD;K;6;CP$UIDd;1;0E;K;14;CPFormatterKeyD;K;6;CP$UIDd;1;0E;K;20;CPBackgroundColorKeyD;K;6;CP$UIDd;3;413E;K;20;CPDrawsBackgroundKeyD;K;6;CP$UIDd;3;306E;K;13;CPBorderedKeyD;K;6;CP$UIDd;3;306E;E;D;K;6;$classD;K;6;CP$UIDd;3;180E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;429E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;405E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;505E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;506E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;429E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;411E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;463E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;485E;K;11;$aalignmentD;K;6;CP$UIDd;3;420E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;405E;K;6;$afontD;K;6;CP$UIDd;3;465E;K;16;$aimage-positionD;K;6;CP$UIDd;3;352E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;355E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;420E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;507E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;307E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;308E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;355E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;355E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;306E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;352E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;405E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;3;180E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;429E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;405E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;508E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;506E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;429E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;411E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;463E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;485E;K;11;$aalignmentD;K;6;CP$UIDd;3;420E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;405E;K;6;$afontD;K;6;CP$UIDd;3;465E;K;16;$aimage-positionD;K;6;CP$UIDd;3;352E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;355E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;420E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;509E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;307E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;308E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;355E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;355E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;306E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;352E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;405E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;3;180E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;429E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;405E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;510E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;506E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;429E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;411E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;463E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;485E;K;11;$aalignmentD;K;6;CP$UIDd;3;420E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;405E;K;6;$afontD;K;6;CP$UIDd;3;465E;K;16;$aimage-positionD;K;6;CP$UIDd;3;352E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;355E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;420E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;511E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;307E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;308E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;355E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;355E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;306E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;352E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;405E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;3;176E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;155E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;405E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;512E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;513E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;155E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;411E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;454E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;408E;K;11;$aalignmentD;K;6;CP$UIDd;3;420E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;352E;K;6;$afontD;K;6;CP$UIDd;3;514E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;306E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;515E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;420E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;308E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;308E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;308E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;456E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;352E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;420E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;3;176E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;155E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;405E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;516E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;517E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;155E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;411E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;454E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;408E;K;11;$aalignmentD;K;6;CP$UIDd;3;352E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;352E;K;12;$atext-colorD;K;6;CP$UIDd;3;518E;K;6;$afontD;K;6;CP$UIDd;3;519E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;306E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;520E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;420E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;308E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;308E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;308E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;456E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;352E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;352E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;3;176E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;155E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;405E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;521E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;517E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;155E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;411E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;454E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;408E;K;11;$aalignmentD;K;6;CP$UIDd;3;352E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;352E;K;12;$atext-colorD;K;6;CP$UIDd;3;522E;K;6;$afontD;K;6;CP$UIDd;3;523E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;306E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;520E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;420E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;308E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;308E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;308E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;456E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;352E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;352E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;10;$classnameS;24;CPUserDefaultsControllerK;8;$classesA;S;24;CPUserDefaultsControllerS;12;CPControllerS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;199E;K;33;CPUserDefaultsControllerSharedKeyD;K;6;CP$UIDd;3;306E;E;D;K;6;$classD;K;6;CP$UIDd;2;81E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;524E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;525E;E;D;K;6;$classD;K;6;CP$UIDd;2;81E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;524E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;526E;E;D;K;6;$classD;K;6;CP$UIDd;2;81E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;524E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;527E;E;D;K;6;$classD;K;6;CP$UIDd;2;81E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;524E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;528E;E;S;13;CPApplicationD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;153E;E;E;S;8;delegateS;18;buttonElementsDateS;18;buttonElementsTimeS;11;buttonStyleS;17;pickerCurrentDateS;13;pickerMaxDateS;13;pickerMinDateS;12;pickerTargetS;9;theWindowS;11;nextKeyViewS;7;contentS;15;arrangeInFront:S;19;performMiniaturize:S;29;orderFrontStandardAboutPanel:S;13;openDocument:S;13;performClose:S;13;saveDocument:S;15;saveDocumentAs:S;12;newDocument:S;9;showHelp:S;22;revertDocumentToSaved:S;21;clearRecentDocuments:S;10;terminate:S;13;stopSpeaking:S;14;startSpeaking:S;5;copy:S;10;selectAll:S;4;cut:S;14;checkSpelling:S;7;delete:S;6;paste:S;15;showGuessPanel:S;5;undo:S;23;performFindPanelAction:S;29;centerSelectionInVisibleArea:S;5;redo:S;30;toggleContinuousSpellChecking:S;12;performZoom:S;19;toggleToolbarShown:S;31;runToolbarCustomizationPalette:S;22;toggleGrammarChecking:S;24;toggleSmartInsertDelete:S;33;toggleAutomaticQuoteSubstitution:S;29;toggleAutomaticLinkDetection:S;15;updateElements:S;23;updateHasMinConstraint:S;23;updateHasMaxConstraint:S;27;value: pickerTarget.enabledS;5;valueS;20;pickerTarget.enabledD;K;10;$classnameS;12;CPDictionaryK;8;$classesA;S;12;CPDictionaryS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;257E;K;10;CP.objectsD;E;E;S;32;value: pickerTarget.timeIntervalS;25;pickerTarget.timeIntervalD;K;6;$classD;K;6;CP$UIDd;3;257E;K;10;CP.objectsD;K;25;CPConditionallySetsHiddenD;K;6;CP$UIDd;3;306E;E;E;S;31;value: pickerTarget.objectValueS;24;pickerTarget.objectValueD;K;6;$classD;K;6;CP$UIDd;3;257E;K;10;CP.objectsD;E;E;S;28;value: pickerTarget.borderedS;21;pickerTarget.borderedD;K;6;$classD;K;6;CP$UIDd;3;257E;K;10;CP.objectsD;E;E;S;35;value: pickerTarget.drawsBackgroundS;28;pickerTarget.drawsBackgroundD;K;6;$classD;K;6;CP$UIDd;3;257E;K;10;CP.objectsD;E;E;S;29;value: pickerTarget.dateValueS;22;pickerTarget.dateValueD;K;6;$classD;K;6;CP$UIDd;3;257E;K;10;CP.objectsD;E;E;S;27;value: pickerTarget.maxDateS;20;pickerTarget.maxDateD;K;6;$classD;K;6;CP$UIDd;3;257E;K;10;CP.objectsD;E;E;S;27;value: pickerTarget.minDateS;20;pickerTarget.minDateD;K;6;$classD;K;6;CP$UIDd;3;257E;K;10;CP.objectsD;E;E;S;37;selectedTag: selection.datePickerModeS;11;selectedTagS;24;selection.datePickerModeD;K;6;$classD;K;6;CP$UIDd;3;257E;K;10;CP.objectsD;E;E;S;38;selectedTag: selection.datePickerStyleS;25;selection.datePickerStyleD;K;6;$classD;K;6;CP$UIDd;3;257E;K;10;CP.objectsD;E;E;S;35;maxValue: pickerMaxDate.objectValueS;8;maxValueS;25;pickerMaxDate.objectValueD;K;6;$classD;K;6;CP$UIDd;3;257E;K;10;CP.objectsD;E;E;S;35;minValue: pickerMinDate.objectValueS;8;minValueS;25;pickerMinDate.objectValueD;K;6;$classD;K;6;CP$UIDd;3;257E;K;10;CP.objectsD;E;E;S;36;value: pickerCurrentDate.objectValueS;29;pickerCurrentDate.objectValueD;K;6;$classD;K;6;CP$UIDd;3;257E;K;10;CP.objectsD;E;E;S;9;AMainMenuS;11;_CPMainMenuD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;90E;D;K;6;CP$UIDd;3;133E;D;K;6;CP$UIDd;3;100E;D;K;6;CP$UIDd;3;145E;D;K;6;CP$UIDd;2;84E;D;K;6;CP$UIDd;2;97E;E;E;S;6;WindowS;14;submenuAction:d;7;1048576S;14;_CPWindowsMenuD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;89E;D;K;6;CP$UIDd;2;88E;D;K;6;CP$UIDd;2;86E;D;K;6;CP$UIDd;2;87E;E;E;T;S;0;F;S;18;Bring All to FrontS;4;ZoomS;8;MinimizeS;1;mS;14;NewApplicationS;18;_CPApplicationMenuD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;92E;D;K;6;CP$UIDd;2;96E;D;K;6;CP$UIDd;2;94E;D;K;6;CP$UIDd;2;95E;D;K;6;CP$UIDd;2;93E;E;E;S;20;About NewApplicationS;19;Quit NewApplicationS;1;qS;12;Preferences…S;1;,S;4;HelpD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;99E;E;E;S;19;NewApplication HelpS;1;?S;4;EditD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;104E;D;K;6;CP$UIDd;3;110E;D;K;6;CP$UIDd;3;109E;D;K;6;CP$UIDd;3;106E;D;K;6;CP$UIDd;3;108E;D;K;6;CP$UIDd;3;107E;D;K;6;CP$UIDd;3;102E;D;K;6;CP$UIDd;3;103E;D;K;6;CP$UIDd;3;105E;D;K;6;CP$UIDd;3;111E;D;K;6;CP$UIDd;3;118E;D;K;6;CP$UIDd;3;128E;D;K;6;CP$UIDd;3;124E;E;E;S;6;DeleteS;10;Select AllS;1;aS;4;UndoS;1;zS;3;CutS;1;xS;5;PasteS;1;vS;4;CopyS;1;cS;4;RedoS;1;Zd;7;1179648S;4;FindD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;117E;D;K;6;CP$UIDd;3;116E;D;K;6;CP$UIDd;3;113E;D;K;6;CP$UIDd;3;115E;D;K;6;CP$UIDd;3;114E;E;E;S;13;Find Previousd;1;3S;1;GS;17;Jump to SelectionS;1;jS;22;Use Selection for Findd;1;7S;1;eS;9;Find Nextd;1;2S;1;gS;5;Find…d;1;1S;1;fS;20;Spelling and GrammarD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;122E;D;K;6;CP$UIDd;3;121E;D;K;6;CP$UIDd;3;120E;D;K;6;CP$UIDd;3;123E;E;E;S;27;Check Spelling While TypingS;14;Check SpellingS;1;;S;14;Show Spelling…S;1;:S;27;Check Grammar With SpellingS;6;SpeechD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;127E;D;K;6;CP$UIDd;3;126E;E;E;S;13;Stop SpeakingS;14;Start SpeakingS;13;SubstitutionsD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;130E;D;K;6;CP$UIDd;3;131E;D;K;6;CP$UIDd;3;132E;E;E;S;16;Smart Copy/PasteS;12;Smart QuotesS;11;Smart LinksS;4;FileD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;138E;D;K;6;CP$UIDd;3;137E;D;K;6;CP$UIDd;3;139E;D;K;6;CP$UIDd;3;143E;D;K;6;CP$UIDd;3;142E;D;K;6;CP$UIDd;3;135E;D;K;6;CP$UIDd;3;136E;D;K;6;CP$UIDd;3;144E;E;E;S;4;SaveS;1;sS;8;Save As…S;1;SS;5;Open…S;1;oS;3;NewS;1;nS;11;Open RecentS;22;_CPRecentDocumentsMenuD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;141E;E;E;S;10;Clear MenuS;5;CloseS;1;wS;15;Revert to SavedS;4;ViewD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;147E;D;K;6;CP$UIDd;3;148E;E;E;S;12;Show ToolbarS;1;td;7;1572864S;18;Customize Toolbar…S;12;CPDatePickerS;13;AppControllerS;32;{10000000000000, 10000000000000}S;8;CPWindowd;10;1946157056S;24;{{133, 112}, {885, 477}}S;21;{{0, 0}, {1440, 878}}S;17;CPDatePicker Testd;1;0S;20;{{0, 0}, {885, 477}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;157E;D;K;6;CP$UIDd;3;196E;D;K;6;CP$UIDd;3;159E;D;K;6;CP$UIDd;3;197E;D;K;6;CP$UIDd;3;198E;E;E;S;6;normalS;24;{{456, 161}, {273, 148}}S;20;{{0, 0}, {273, 148}}d;2;36D;K;10;$classnameS;7;CPColorK;8;$classesA;S;7;CPColorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;412E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;529E;E;S;10;datePickerS;16;bezeled+borderedD;K;10;$classnameS;6;CPFontK;8;$classesA;S;6;CPFontS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;416E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;530E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;531E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;306E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;308E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;306E;E;D;K;10;$classnameS;6;CPDateK;8;$classesA;S;6;CPDateS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;418E;K;13;CPDateTimeKeyD;K;6;CP$UIDd;3;532E;E;d;1;4d;3;510D;K;6;$classD;K;6;CP$UIDd;3;418E;K;13;CPDateTimeKeyD;K;6;CP$UIDd;3;533E;E;D;K;6;$classD;K;6;CP$UIDd;3;418E;K;13;CPDateTimeKeyD;K;6;CP$UIDd;3;534E;E;S;22;{{21, 75}, {355, 382}}S;20;{{0, 0}, {355, 382}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;429E;E;E;S;3;boxS;10;ParametersD;K;6;$classD;K;6;CP$UIDd;3;154E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;159E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;405E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;544E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;545E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;546E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;159E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;547E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;408E;K;20;CPReuseIdentifierKeyD;K;6;CP$UIDd;3;548E;E;S;22;{{104, 16}, {227, 25}}S;19;{{0, 0}, {227, 25}}S;12;popup-buttonS;8;borderedD;K;6;$classD;K;6;CP$UIDd;3;416E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;530E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;535E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;306E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;308E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;306E;E;d;2;12S;9;GraphicalS;17;_popUpItemAction:S;20;Textual with StepperS;7;TextualS;22;{{104, 46}, {227, 25}}D;K;6;$classD;K;6;CP$UIDd;3;416E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;530E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;535E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;306E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;308E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;306E;E;S;11;Single DateS;10;Date RangeS;22;{{104, 77}, {227, 25}}D;K;6;$classD;K;6;CP$UIDd;3;416E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;530E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;535E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;306E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;308E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;306E;E;S;4;NoneS;14;Month and YearS;19;Month, Day and YearS;23;{{104, 108}, {227, 25}}S;23;Hour, Minute and SecondS;15;Hour and MinuteS;20;{{18, 18}, {78, 17}}S;18;{{0, 0}, {78, 17}}S;9;textfieldS;5;StyleD;K;6;$classD;K;6;CP$UIDd;3;412E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;536E;E;S;20;{{18, 50}, {78, 17}}S;7;SelectsS;20;{{18, 81}, {78, 17}}S;8;ElementsS;22;{{102, 138}, {89, 21}}S;18;{{0, 0}, {89, 21}}S;9;check-boxS;17;disabled+selectedD;K;6;$classD;K;6;CP$UIDd;3;416E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;530E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;535E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;308E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;308E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;306E;E;S;9;Time zoneS;22;{{195, 138}, {76, 21}}S;18;{{0, 0}, {76, 21}}S;3;EraS;20;{{2, 163}, {357, 5}}S;18;{{0, 0}, {357, 5}}D;K;10;$classnameS;21;_CPKeyedArchiverValueK;8;$classesA;S;21;_CPKeyedArchiverValueS;7;CPValueS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;472E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;537E;E;S;3;BoxS;23;{{104, 193}, {227, 29}}S;19;{{0, 0}, {227, 29}}d;3;238D;K;6;$classD;K;6;CP$UIDd;3;418E;K;13;CPDateTimeKeyD;K;6;CP$UIDd;3;538E;E;D;K;6;$classD;K;6;CP$UIDd;3;418E;K;13;CPDateTimeKeyD;K;6;CP$UIDd;3;539E;E;S;21;{{18, 174}, {78, 17}}D;K;6;$classD;K;6;CP$UIDd;3;416E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;530E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;535E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;306E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;308E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;306E;E;S;11;ConstraintsS;23;{{102, 170}, {113, 21}}S;19;{{0, 0}, {113, 21}}S;8;selectedS;12;Minimum dateS;23;{{104, 245}, {227, 29}}D;K;6;$classD;K;6;CP$UIDd;3;418E;K;13;CPDateTimeKeyD;K;6;CP$UIDd;3;538E;E;D;K;6;$classD;K;6;CP$UIDd;3;418E;K;13;CPDateTimeKeyD;K;6;CP$UIDd;3;539E;E;S;23;{{102, 222}, {116, 21}}S;19;{{0, 0}, {116, 21}}S;12;Maximum dateS;20;{{2, 277}, {357, 5}}D;K;6;$classD;K;6;CP$UIDd;3;472E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;537E;E;S;21;{{18, 290}, {78, 17}}D;K;6;$classD;K;6;CP$UIDd;3;416E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;530E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;535E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;306E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;308E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;306E;E;S;4;DateS;21;{{18, 315}, {78, 17}}D;K;6;$classD;K;6;CP$UIDd;3;416E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;530E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;535E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;306E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;308E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;306E;E;S;7;DisplayS;23;{{104, 284}, {227, 29}}D;K;6;$classD;K;6;CP$UIDd;3;418E;K;13;CPDateTimeKeyD;K;6;CP$UIDd;3;540E;E;D;K;6;$classD;K;6;CP$UIDd;3;418E;K;13;CPDateTimeKeyD;K;6;CP$UIDd;3;538E;E;D;K;6;$classD;K;6;CP$UIDd;3;418E;K;13;CPDateTimeKeyD;K;6;CP$UIDd;3;539E;E;S;22;{{102, 313}, {97, 21}}S;18;{{0, 0}, {97, 21}}S;10;BackgroundS;22;{{102, 333}, {97, 21}}S;6;BorderS;22;{{102, 353}, {97, 21}}S;7;EnabledS;21;{{20, 20}, {162, 29}}S;19;{{0, 0}, {162, 29}}D;K;6;$classD;K;6;CP$UIDd;3;416E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;530E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;541E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;306E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;308E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;306E;E;S;17;CPDatePicket testS;22;{{416, 75}, {356, 21}}S;19;{{0, 0}, {356, 21}}D;K;6;$classD;K;6;CP$UIDd;3;412E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;542E;E;D;K;6;$classD;K;6;CP$UIDd;3;416E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;530E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;541E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;308E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;308E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;306E;E;S;5;LabelS;23;{{416, 104}, {356, 21}}D;K;6;$classD;K;6;CP$UIDd;3;412E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;543E;E;D;K;6;$classD;K;6;CP$UIDd;3;416E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;530E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;541E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;308E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;308E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;306E;E;S;10;OtherViewsD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;173E;D;K;6;CP$UIDd;3;174E;D;K;6;CP$UIDd;3;175E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;171E;D;K;6;CP$UIDd;3;170E;D;K;6;CP$UIDd;3;169E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;166E;D;K;6;CP$UIDd;3;167E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;164E;D;K;6;CP$UIDd;3;163E;D;K;6;CP$UIDd;3;162E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;355E;D;K;6;CP$UIDd;3;355E;D;K;6;CP$UIDd;3;355E;D;K;6;CP$UIDd;3;355E;E;E;S;28;_CPFontSystemFacePlaceholderd;2;13d;13;1355344212000d;15;-62135554022000d;14;64092254400000d;2;-1D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;549E;D;K;6;CP$UIDd;3;549E;D;K;6;CP$UIDd;3;549E;D;K;6;CP$UIDd;3;355E;E;E;S;22;{"width":0,"height":0}d;15;-62135510400000d;14;64092297600000d;13;1355343132000d;2;17D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;550E;D;K;6;CP$UIDd;3;550E;D;K;6;CP$UIDd;3;550E;D;K;6;CP$UIDd;3;355E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;550E;D;K;6;CP$UIDd;3;550E;D;K;6;CP$UIDd;3;550E;D;K;6;CP$UIDd;3;355E;E;E;S;21;{{1, -5}, {361, 386}}S;20;{{0, 0}, {361, 386}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;184E;D;K;6;CP$UIDd;3;161E;D;K;6;CP$UIDd;3;165E;D;K;6;CP$UIDd;3;168E;D;K;6;CP$UIDd;3;172E;D;K;6;CP$UIDd;3;177E;D;K;6;CP$UIDd;3;178E;D;K;6;CP$UIDd;3;185E;D;K;6;CP$UIDd;3;190E;D;K;6;CP$UIDd;3;191E;D;K;6;CP$UIDd;3;179E;D;K;6;CP$UIDd;3;181E;D;K;6;CP$UIDd;3;186E;D;K;6;CP$UIDd;3;187E;D;K;6;CP$UIDd;3;192E;D;K;6;CP$UIDd;3;188E;D;K;6;CP$UIDd;3;182E;D;K;6;CP$UIDd;3;193E;D;K;6;CP$UIDd;3;194E;D;K;6;CP$UIDd;3;183E;D;K;6;CP$UIDd;3;189E;D;K;6;CP$UIDd;3;195E;E;E;d;2;18S;6;_NS:11f;18;0.6862745098039216f;12;0.3455284834E;K;9;$archiverS;15;CPKeyedArchiverK;8;$versionS;6;100000E; \ No newline at end of file +280NPLIST;1.0;D;K;4;$topD;K;18;CPCibObjectDataKeyD;K;6;CP$UIDd;1;2E;E;K;8;$objectsA;S;5;$nullD;K;10;$classnameS;16;_CPCibObjectDataK;8;$classesA;S;16;_CPCibObjectDataS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;1;1E;K;28;_CPCibObjectDataNamesKeysKeyD;K;6;CP$UIDd;1;0E;K;30;_CPCibObjectDataNamesValuesKeyD;K;6;CP$UIDd;1;0E;K;30;_CPCibObjectDataClassesKeysKeyD;K;6;CP$UIDd;1;0E;K;32;_CPCibObjectDataClassesValuesKeyD;K;6;CP$UIDd;1;0E;K;30;_CPCibObjectDataConnectionsKeyD;K;6;CP$UIDd;1;4E;K;28;_CPCibObjectDataFrameworkKeyD;K;6;CP$UIDd;1;0E;K;26;_CPCibObjectDataNextOidKeyD;K;6;CP$UIDd;1;5E;K;30;_CPCibObjectDataObjectsKeysKeyD;K;6;CP$UIDd;1;6E;K;32;_CPCibObjectDataObjectsValuesKeyD;K;6;CP$UIDd;1;7E;K;26;_CPCibObjectDataOidKeysKeyD;K;6;CP$UIDd;1;8E;K;28;_CPCibObjectDataOidValuesKeyD;K;6;CP$UIDd;1;9E;K;28;_CPCibObjectDataFileOwnerKeyD;K;6;CP$UIDd;2;11E;K;33;_CPCibObjectDataVisibleWindowsKeyD;K;6;CP$UIDd;2;13E;E;D;K;10;$classnameS;7;CPArrayK;8;$classesA;S;7;CPArrayS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;15E;D;K;6;CP$UIDd;2;16E;D;K;6;CP$UIDd;2;17E;D;K;6;CP$UIDd;2;18E;D;K;6;CP$UIDd;2;19E;D;K;6;CP$UIDd;2;20E;D;K;6;CP$UIDd;2;21E;D;K;6;CP$UIDd;2;22E;D;K;6;CP$UIDd;2;23E;D;K;6;CP$UIDd;2;24E;D;K;6;CP$UIDd;2;25E;D;K;6;CP$UIDd;2;26E;D;K;6;CP$UIDd;2;27E;D;K;6;CP$UIDd;2;29E;D;K;6;CP$UIDd;2;30E;D;K;6;CP$UIDd;2;31E;D;K;6;CP$UIDd;2;32E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;2;34E;D;K;6;CP$UIDd;2;35E;D;K;6;CP$UIDd;2;36E;D;K;6;CP$UIDd;2;37E;D;K;6;CP$UIDd;2;38E;D;K;6;CP$UIDd;2;39E;D;K;6;CP$UIDd;2;40E;D;K;6;CP$UIDd;2;41E;D;K;6;CP$UIDd;2;42E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;44E;D;K;6;CP$UIDd;2;45E;D;K;6;CP$UIDd;2;46E;D;K;6;CP$UIDd;2;47E;D;K;6;CP$UIDd;2;48E;D;K;6;CP$UIDd;2;49E;D;K;6;CP$UIDd;2;50E;D;K;6;CP$UIDd;2;51E;D;K;6;CP$UIDd;2;52E;D;K;6;CP$UIDd;2;53E;D;K;6;CP$UIDd;2;54E;D;K;6;CP$UIDd;2;55E;D;K;6;CP$UIDd;2;56E;D;K;6;CP$UIDd;2;57E;D;K;6;CP$UIDd;2;58E;D;K;6;CP$UIDd;2;59E;D;K;6;CP$UIDd;2;60E;D;K;6;CP$UIDd;2;61E;D;K;6;CP$UIDd;2;62E;D;K;6;CP$UIDd;2;63E;D;K;6;CP$UIDd;2;64E;D;K;6;CP$UIDd;2;65E;D;K;6;CP$UIDd;2;67E;D;K;6;CP$UIDd;2;68E;D;K;6;CP$UIDd;2;69E;D;K;6;CP$UIDd;2;70E;D;K;6;CP$UIDd;2;71E;D;K;6;CP$UIDd;2;72E;D;K;6;CP$UIDd;2;73E;D;K;6;CP$UIDd;2;74E;D;K;6;CP$UIDd;2;75E;D;K;6;CP$UIDd;2;76E;D;K;6;CP$UIDd;2;77E;D;K;6;CP$UIDd;2;78E;D;K;6;CP$UIDd;2;79E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;80E;D;K;6;CP$UIDd;2;82E;D;K;6;CP$UIDd;2;84E;D;K;6;CP$UIDd;2;85E;D;K;6;CP$UIDd;2;86E;D;K;6;CP$UIDd;2;87E;D;K;6;CP$UIDd;2;88E;D;K;6;CP$UIDd;2;89E;D;K;6;CP$UIDd;2;90E;D;K;6;CP$UIDd;2;91E;D;K;6;CP$UIDd;2;92E;D;K;6;CP$UIDd;2;93E;D;K;6;CP$UIDd;2;94E;D;K;6;CP$UIDd;2;95E;D;K;6;CP$UIDd;2;96E;D;K;6;CP$UIDd;2;97E;D;K;6;CP$UIDd;2;98E;D;K;6;CP$UIDd;2;99E;D;K;6;CP$UIDd;3;100E;D;K;6;CP$UIDd;3;101E;D;K;6;CP$UIDd;3;102E;D;K;6;CP$UIDd;3;103E;D;K;6;CP$UIDd;3;104E;D;K;6;CP$UIDd;3;105E;D;K;6;CP$UIDd;3;106E;D;K;6;CP$UIDd;3;107E;D;K;6;CP$UIDd;3;108E;D;K;6;CP$UIDd;3;109E;D;K;6;CP$UIDd;3;110E;D;K;6;CP$UIDd;3;111E;D;K;6;CP$UIDd;3;112E;D;K;6;CP$UIDd;3;113E;D;K;6;CP$UIDd;3;114E;D;K;6;CP$UIDd;3;115E;D;K;6;CP$UIDd;3;116E;D;K;6;CP$UIDd;3;117E;D;K;6;CP$UIDd;3;118E;D;K;6;CP$UIDd;3;119E;D;K;6;CP$UIDd;3;120E;D;K;6;CP$UIDd;3;121E;D;K;6;CP$UIDd;3;122E;D;K;6;CP$UIDd;3;123E;D;K;6;CP$UIDd;3;124E;D;K;6;CP$UIDd;3;125E;D;K;6;CP$UIDd;3;126E;D;K;6;CP$UIDd;3;127E;D;K;6;CP$UIDd;3;128E;D;K;6;CP$UIDd;3;129E;D;K;6;CP$UIDd;3;130E;D;K;6;CP$UIDd;3;131E;D;K;6;CP$UIDd;3;132E;D;K;6;CP$UIDd;3;133E;D;K;6;CP$UIDd;3;134E;D;K;6;CP$UIDd;3;135E;D;K;6;CP$UIDd;3;136E;D;K;6;CP$UIDd;3;137E;D;K;6;CP$UIDd;3;138E;D;K;6;CP$UIDd;3;139E;D;K;6;CP$UIDd;3;140E;D;K;6;CP$UIDd;3;141E;D;K;6;CP$UIDd;3;142E;D;K;6;CP$UIDd;3;143E;D;K;6;CP$UIDd;3;144E;D;K;6;CP$UIDd;3;145E;D;K;6;CP$UIDd;3;146E;D;K;6;CP$UIDd;3;147E;D;K;6;CP$UIDd;3;148E;D;K;6;CP$UIDd;3;150E;D;K;6;CP$UIDd;3;151E;D;K;6;CP$UIDd;3;153E;D;K;6;CP$UIDd;3;155E;D;K;6;CP$UIDd;3;157E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;159E;D;K;6;CP$UIDd;3;161E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;162E;D;K;6;CP$UIDd;3;163E;D;K;6;CP$UIDd;3;164E;D;K;6;CP$UIDd;3;165E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;166E;D;K;6;CP$UIDd;3;167E;D;K;6;CP$UIDd;3;168E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;169E;D;K;6;CP$UIDd;3;170E;D;K;6;CP$UIDd;3;171E;D;K;6;CP$UIDd;3;172E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;173E;D;K;6;CP$UIDd;3;174E;D;K;6;CP$UIDd;3;175E;D;K;6;CP$UIDd;3;177E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;178E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;179E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;181E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;182E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;183E;D;K;6;CP$UIDd;3;184E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;185E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;186E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;187E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;188E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;189E;D;K;6;CP$UIDd;3;190E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;191E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;192E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;193E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;194E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;195E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;196E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;197E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;198E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;200E;D;K;6;CP$UIDd;3;201E;D;K;6;CP$UIDd;3;202E;D;K;6;CP$UIDd;3;203E;D;K;6;CP$UIDd;3;204E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;2;82E;D;K;6;CP$UIDd;2;84E;D;K;6;CP$UIDd;2;85E;D;K;6;CP$UIDd;2;85E;D;K;6;CP$UIDd;2;85E;D;K;6;CP$UIDd;2;85E;D;K;6;CP$UIDd;2;82E;D;K;6;CP$UIDd;2;90E;D;K;6;CP$UIDd;2;91E;D;K;6;CP$UIDd;2;91E;D;K;6;CP$UIDd;2;91E;D;K;6;CP$UIDd;2;91E;D;K;6;CP$UIDd;2;91E;D;K;6;CP$UIDd;2;82E;D;K;6;CP$UIDd;2;97E;D;K;6;CP$UIDd;2;98E;D;K;6;CP$UIDd;2;82E;D;K;6;CP$UIDd;3;100E;D;K;6;CP$UIDd;3;101E;D;K;6;CP$UIDd;3;101E;D;K;6;CP$UIDd;3;101E;D;K;6;CP$UIDd;3;101E;D;K;6;CP$UIDd;3;101E;D;K;6;CP$UIDd;3;101E;D;K;6;CP$UIDd;3;101E;D;K;6;CP$UIDd;3;101E;D;K;6;CP$UIDd;3;101E;D;K;6;CP$UIDd;3;101E;D;K;6;CP$UIDd;3;111E;D;K;6;CP$UIDd;3;112E;D;K;6;CP$UIDd;3;112E;D;K;6;CP$UIDd;3;112E;D;K;6;CP$UIDd;3;112E;D;K;6;CP$UIDd;3;112E;D;K;6;CP$UIDd;3;101E;D;K;6;CP$UIDd;3;118E;D;K;6;CP$UIDd;3;119E;D;K;6;CP$UIDd;3;119E;D;K;6;CP$UIDd;3;119E;D;K;6;CP$UIDd;3;119E;D;K;6;CP$UIDd;3;101E;D;K;6;CP$UIDd;3;124E;D;K;6;CP$UIDd;3;125E;D;K;6;CP$UIDd;3;125E;D;K;6;CP$UIDd;3;101E;D;K;6;CP$UIDd;3;128E;D;K;6;CP$UIDd;3;129E;D;K;6;CP$UIDd;3;129E;D;K;6;CP$UIDd;3;129E;D;K;6;CP$UIDd;2;82E;D;K;6;CP$UIDd;3;133E;D;K;6;CP$UIDd;3;134E;D;K;6;CP$UIDd;3;134E;D;K;6;CP$UIDd;3;134E;D;K;6;CP$UIDd;3;134E;D;K;6;CP$UIDd;3;134E;D;K;6;CP$UIDd;3;139E;D;K;6;CP$UIDd;3;140E;D;K;6;CP$UIDd;3;134E;D;K;6;CP$UIDd;3;134E;D;K;6;CP$UIDd;3;134E;D;K;6;CP$UIDd;2;82E;D;K;6;CP$UIDd;3;145E;D;K;6;CP$UIDd;3;146E;D;K;6;CP$UIDd;3;146E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;3;153E;D;K;6;CP$UIDd;3;155E;D;K;6;CP$UIDd;3;157E;D;K;6;CP$UIDd;3;155E;D;K;6;CP$UIDd;3;159E;D;K;6;CP$UIDd;3;161E;D;K;6;CP$UIDd;3;204E;D;K;6;CP$UIDd;3;204E;D;K;6;CP$UIDd;3;204E;D;K;6;CP$UIDd;3;159E;D;K;6;CP$UIDd;3;165E;D;K;6;CP$UIDd;3;203E;D;K;6;CP$UIDd;3;203E;D;K;6;CP$UIDd;3;159E;D;K;6;CP$UIDd;3;168E;D;K;6;CP$UIDd;3;202E;D;K;6;CP$UIDd;3;202E;D;K;6;CP$UIDd;3;202E;D;K;6;CP$UIDd;3;159E;D;K;6;CP$UIDd;3;172E;D;K;6;CP$UIDd;3;201E;D;K;6;CP$UIDd;3;201E;D;K;6;CP$UIDd;3;201E;D;K;6;CP$UIDd;3;159E;D;K;6;CP$UIDd;3;177E;D;K;6;CP$UIDd;3;159E;D;K;6;CP$UIDd;3;178E;D;K;6;CP$UIDd;3;159E;D;K;6;CP$UIDd;3;179E;D;K;6;CP$UIDd;3;159E;D;K;6;CP$UIDd;3;181E;D;K;6;CP$UIDd;3;159E;D;K;6;CP$UIDd;3;182E;D;K;6;CP$UIDd;3;159E;D;K;6;CP$UIDd;3;159E;D;K;6;CP$UIDd;3;184E;D;K;6;CP$UIDd;3;159E;D;K;6;CP$UIDd;3;185E;D;K;6;CP$UIDd;3;159E;D;K;6;CP$UIDd;3;186E;D;K;6;CP$UIDd;3;159E;D;K;6;CP$UIDd;3;187E;D;K;6;CP$UIDd;3;159E;D;K;6;CP$UIDd;3;188E;D;K;6;CP$UIDd;3;159E;D;K;6;CP$UIDd;3;159E;D;K;6;CP$UIDd;3;190E;D;K;6;CP$UIDd;3;159E;D;K;6;CP$UIDd;3;191E;D;K;6;CP$UIDd;3;159E;D;K;6;CP$UIDd;3;192E;D;K;6;CP$UIDd;3;159E;D;K;6;CP$UIDd;3;193E;D;K;6;CP$UIDd;3;159E;D;K;6;CP$UIDd;3;194E;D;K;6;CP$UIDd;3;159E;D;K;6;CP$UIDd;3;195E;D;K;6;CP$UIDd;3;155E;D;K;6;CP$UIDd;3;196E;D;K;6;CP$UIDd;3;155E;D;K;6;CP$UIDd;3;197E;D;K;6;CP$UIDd;3;155E;D;K;6;CP$UIDd;3;198E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;3;172E;D;K;6;CP$UIDd;3;168E;D;K;6;CP$UIDd;3;165E;D;K;6;CP$UIDd;3;161E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;D;K;10;$classnameS;18;_CPCibCustomObjectK;8;$classesA;S;18;_CPCibCustomObjectS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;3;205E;E;D;K;10;$classnameS;5;CPSetK;8;$classesA;S;5;CPSetS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;12E;K;15;CPSetObjectsKeyD;K;6;CP$UIDd;3;206E;E;D;K;10;$classnameS;20;CPCibOutletConnectorK;8;$classesA;S;20;CPCibOutletConnectorS;14;CPCibConnectorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;11E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;151E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;207E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;151E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;168E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;208E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;151E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;172E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;209E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;151E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;161E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;210E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;151E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;192E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;211E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;151E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;187E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;212E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;151E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;184E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;213E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;151E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;157E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;214E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;151E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;153E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;215E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;184E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;187E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;216E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;187E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;192E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;216E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;192E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;184E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;216E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;150E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;157E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;217E;E;D;K;10;$classnameS;21;CPCibControlConnectorK;8;$classesA;S;21;CPCibControlConnectorS;14;CPCibConnectorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;87E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;218E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;89E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;219E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;92E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;11E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;220E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;137E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;221E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;142E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;222E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;135E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;223E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;136E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;224E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;138E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;225E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;99E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;226E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;144E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;227E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;141E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;228E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;93E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;80E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;229E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;126E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;230E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;127E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;231E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;108E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;232E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;103E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;233E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;106E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;234E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;121E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;235E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;102E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;236E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;107E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;237E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;122E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;238E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;104E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;239E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;117E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;240E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;114E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;241E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;110E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;242E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;120E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;243E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;88E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;244E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;147E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;245E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;148E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;246E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;123E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;247E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;130E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;248E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;131E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;249E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;132E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;250E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;168E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;151E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;251E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;172E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;151E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;251E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;186E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;151E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;252E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;188E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;151E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;253E;E;D;K;10;$classnameS;21;CPCibBindingConnectorK;8;$classesA;S;21;CPCibBindingConnectorS;14;CPCibConnectorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;66E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;195E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;151E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;254E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;3;255E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;3;256E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;3;258E;E;D;K;6;$classD;K;6;CP$UIDd;2;66E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;198E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;151E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;259E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;3;255E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;3;260E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;3;261E;E;D;K;6;$classD;K;6;CP$UIDd;2;66E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;197E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;151E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;262E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;3;255E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;3;263E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;3;264E;E;D;K;6;$classD;K;6;CP$UIDd;2;66E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;194E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;151E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;265E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;3;255E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;3;266E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;3;267E;E;D;K;6;$classD;K;6;CP$UIDd;2;66E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;193E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;151E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;268E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;3;255E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;3;269E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;3;270E;E;D;K;6;$classD;K;6;CP$UIDd;2;66E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;192E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;151E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;271E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;3;255E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;3;272E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;3;273E;E;D;K;6;$classD;K;6;CP$UIDd;2;66E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;187E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;151E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;274E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;3;255E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;3;275E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;3;276E;E;D;K;6;$classD;K;6;CP$UIDd;2;66E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;184E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;151E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;277E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;3;255E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;3;278E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;3;279E;E;D;K;6;$classD;K;6;CP$UIDd;2;66E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;165E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;150E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;280E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;3;281E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;3;282E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;3;283E;E;D;K;6;$classD;K;6;CP$UIDd;2;66E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;161E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;150E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;284E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;3;281E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;3;285E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;3;286E;E;D;K;6;$classD;K;6;CP$UIDd;2;66E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;157E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;151E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;287E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;3;288E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;3;289E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;3;290E;E;D;K;6;$classD;K;6;CP$UIDd;2;66E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;157E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;151E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;291E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;3;292E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;3;293E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;3;294E;E;D;K;6;$classD;K;6;CP$UIDd;2;66E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;157E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;151E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;295E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;3;255E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;3;296E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;3;297E;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;3;205E;E;D;K;10;$classnameS;6;CPMenuK;8;$classesA;S;6;CPMenuS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;81E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;298E;K;13;CPMenuNameKeyD;K;6;CP$UIDd;3;299E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;300E;E;D;K;10;$classnameS;10;CPMenuItemK;8;$classesA;S;10;CPMenuItemS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;301E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;302E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;2;85E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;82E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;81E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;301E;K;13;CPMenuNameKeyD;K;6;CP$UIDd;3;304E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;305E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;306E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;307E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;22;CPMenuItemIsEnabledKeyD;K;6;CP$UIDd;3;308E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;85E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;309E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;85E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;310E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;85E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;311E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;85E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;312E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;313E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;302E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;2;91E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;82E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;81E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;313E;K;13;CPMenuNameKeyD;K;6;CP$UIDd;3;314E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;315E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;316E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;91E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;317E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;91E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;318E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;319E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;91E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;320E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;306E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;307E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;22;CPMenuItemIsEnabledKeyD;K;6;CP$UIDd;3;308E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;91E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;306E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;307E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;22;CPMenuItemIsEnabledKeyD;K;6;CP$UIDd;3;308E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;91E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;321E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;302E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;2;98E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;82E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;81E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;321E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;322E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;323E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;98E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;324E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;325E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;302E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;101E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;82E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;81E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;325E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;326E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;327E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;101E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;328E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;101E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;329E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;330E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;101E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;331E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;306E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;307E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;22;CPMenuItemIsEnabledKeyD;K;6;CP$UIDd;3;308E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;101E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;332E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;101E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;333E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;334E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;101E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;335E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;336E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;101E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;337E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;306E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;307E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;22;CPMenuItemIsEnabledKeyD;K;6;CP$UIDd;3;308E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;101E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;338E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;101E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;339E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;340E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;341E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;302E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;112E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;101E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;81E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;341E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;342E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;343E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;344E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;112E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;345E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;340E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;346E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;112E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;347E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;348E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;349E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;112E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;350E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;351E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;352E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;112E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;353E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;354E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;355E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;112E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;356E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;357E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;302E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;119E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;101E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;81E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;357E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;358E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;359E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;119E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;360E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;119E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;361E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;362E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;119E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;363E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;364E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;119E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;365E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;302E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;125E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;101E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;81E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;365E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;366E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;367E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;125E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;368E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;125E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;369E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;302E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;129E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;101E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;81E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;369E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;370E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;371E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;355E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;129E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;356E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;372E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;352E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;129E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;353E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;373E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;344E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;129E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;345E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;340E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;374E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;302E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;134E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;82E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;81E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;374E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;375E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;376E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;134E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;377E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;378E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;134E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;379E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;340E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;380E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;134E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;381E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;382E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;134E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;383E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;384E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;302E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;140E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;134E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;81E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;384E;K;13;CPMenuNameKeyD;K;6;CP$UIDd;3;385E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;386E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;387E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;140E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;388E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;134E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;389E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;306E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;307E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;22;CPMenuItemIsEnabledKeyD;K;6;CP$UIDd;3;308E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;134E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;390E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;134E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;391E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;302E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;146E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;82E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;81E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;391E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;392E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;393E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;146E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;394E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;395E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;396E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;146E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;303E;E;D;K;10;$classnameS;18;CPObjectControllerK;8;$classesA;S;18;CPObjectControllerS;12;CPControllerS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;149E;K;28;CPObjectControllerContentKeyD;K;6;CP$UIDd;1;0E;K;36;CPObjectControllerObjectClassNameKeyD;K;6;CP$UIDd;3;397E;K;31;CPObjectControllerIsEditableKeyD;K;6;CP$UIDd;3;306E;K;49;CPObjectControllerAutomaticallyPreparesContentKeyD;K;6;CP$UIDd;3;308E;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;3;398E;E;D;K;10;$classnameS;20;_CPCibWindowTemplateK;8;$classesA;S;20;_CPCibWindowTemplateS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;152E;K;30;_CPCibWindowTemplateMaxSizeKeyD;K;6;CP$UIDd;3;399E;K;32;_CPCibWindowTemplateViewClassKeyD;K;6;CP$UIDd;1;0E;K;34;_CPCibWindowTemplateWindowClassKeyD;K;6;CP$UIDd;3;400E;K;30;_CPCibWindowTemplateWTFlagsKeyD;K;6;CP$UIDd;3;401E;K;33;_CPCibWindowTemplateWindowRectKeyD;K;6;CP$UIDd;3;402E;K;33;_CPCibWindowTemplateScreenRectKeyD;K;6;CP$UIDd;3;403E;K;30;_CPCibWindowTempatStyleMaskKeyD;K;6;CP$UIDd;3;349E;K;34;_CPCibWindowTemplateWindowTitleKeyD;K;6;CP$UIDd;3;404E;K;33;_CPCibWindowTemplateWindowViewKeyD;K;6;CP$UIDd;3;155E;E;D;K;10;$classnameS;6;CPViewK;8;$classesA;S;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;154E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;405E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;406E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;406E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;407E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;408E;E;D;K;10;$classnameS;12;CPDatePickerK;8;$classesA;S;12;CPDatePickerS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;156E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;155E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;405E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;409E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;410E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;155E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;411E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;413E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;414E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;415E;K;6;$afontD;K;6;CP$UIDd;3;417E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;419E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;420E;K;13;CPIntervalKeyD;K;6;CP$UIDd;3;405E;K;19;CPDatePickerModeKeyD;K;6;CP$UIDd;3;355E;K;20;CPDatePickerStyleKeyD;K;6;CP$UIDd;3;355E;K;23;CPDatePickerElementsKeyD;K;6;CP$UIDd;3;421E;K;12;CPMinDateKeyD;K;6;CP$UIDd;3;422E;K;12;CPMaxDateKeyD;K;6;CP$UIDd;3;423E;K;14;CPDateValueKeyD;K;6;CP$UIDd;3;419E;K;13;CPTextFontKeyD;K;6;CP$UIDd;1;0E;K;11;CPLocaleKeyD;K;6;CP$UIDd;1;0E;K;20;CPBackgroundColorKeyD;K;6;CP$UIDd;3;413E;K;20;CPDrawsBackgroundKeyD;K;6;CP$UIDd;3;306E;K;13;CPBorderedKeyD;K;6;CP$UIDd;3;306E;E;D;K;10;$classnameS;5;CPBoxK;8;$classesA;S;5;CPBoxS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;158E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;155E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;405E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;424E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;425E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;426E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;155E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;411E;K;25;CPViewAutoresizesSubviewsD;K;6;CP$UIDd;3;405E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;427E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;408E;K;12;CPBoxTypeKeyD;K;6;CP$UIDd;3;405E;K;18;CPBoxBorderTypeKeyD;K;6;CP$UIDd;3;355E;K;10;CPBoxTitleD;K;6;CP$UIDd;3;428E;K;18;CPBoxTitlePositionD;K;6;CP$UIDd;3;405E;K;14;CPBoxTitleViewD;K;6;CP$UIDd;1;0E;E;D;K;10;$classnameS;13;CPPopUpButtonK;8;$classesA;S;13;CPPopUpButtonS;8;CPButtonS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;160E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;429E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;3;204E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;405E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;430E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;431E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;429E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;411E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;432E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;433E;K;11;$aalignmentD;K;6;CP$UIDd;3;405E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;420E;K;6;$afontD;K;6;CP$UIDd;3;434E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;352E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;420E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;1;0E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;307E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;308E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;435E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;405E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;306E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;352E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;405E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;436E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;3;161E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;437E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;355E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;3;355E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;204E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;438E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;3;161E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;437E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;204E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;439E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;3;161E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;437E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;352E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;204E;E;D;K;6;$classD;K;6;CP$UIDd;3;160E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;429E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;3;203E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;405E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;440E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;431E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;429E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;411E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;432E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;433E;K;11;$aalignmentD;K;6;CP$UIDd;3;405E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;420E;K;6;$afontD;K;6;CP$UIDd;3;441E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;355E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;420E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;1;0E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;307E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;308E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;435E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;405E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;306E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;352E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;405E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;442E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;3;165E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;437E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;203E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;443E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;3;165E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;437E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;355E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;3;355E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;203E;E;D;K;6;$classD;K;6;CP$UIDd;3;160E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;429E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;3;202E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;405E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;444E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;431E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;429E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;411E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;432E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;433E;K;11;$aalignmentD;K;6;CP$UIDd;3;405E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;420E;K;6;$afontD;K;6;CP$UIDd;3;445E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;405E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;420E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;1;0E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;307E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;308E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;435E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;405E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;306E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;352E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;405E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;446E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;3;168E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;437E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;202E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;447E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;3;168E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;437E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;355E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;202E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;448E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;3;168E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;437E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;352E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;3;355E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;202E;E;D;K;6;$classD;K;6;CP$UIDd;3;160E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;429E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;3;201E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;405E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;449E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;431E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;429E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;411E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;432E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;433E;K;11;$aalignmentD;K;6;CP$UIDd;3;405E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;420E;K;6;$afontD;K;6;CP$UIDd;3;445E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;405E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;420E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;1;0E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;307E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;308E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;435E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;405E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;306E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;352E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;405E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;450E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;3;172E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;437E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;352E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;3;355E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;201E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;451E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;3;172E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;437E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;355E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;201E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;446E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;3;172E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;437E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;201E;E;D;K;10;$classnameS;11;CPTextFieldK;8;$classesA;S;11;CPTextFieldS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;176E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;429E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;405E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;452E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;453E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;429E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;411E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;454E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;408E;K;11;$aalignmentD;K;6;CP$UIDd;3;405E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;352E;K;6;$afontD;K;6;CP$UIDd;3;445E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;306E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;455E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;420E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;308E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;308E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;308E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;456E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;352E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;405E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;3;176E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;429E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;405E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;457E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;453E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;429E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;411E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;454E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;408E;K;11;$aalignmentD;K;6;CP$UIDd;3;405E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;352E;K;6;$afontD;K;6;CP$UIDd;3;434E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;306E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;458E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;420E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;308E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;308E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;308E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;456E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;352E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;405E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;3;176E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;429E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;405E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;459E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;453E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;429E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;411E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;454E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;408E;K;11;$aalignmentD;K;6;CP$UIDd;3;405E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;352E;K;6;$afontD;K;6;CP$UIDd;3;441E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;306E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;460E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;420E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;308E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;308E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;308E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;456E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;352E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;405E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;10;$classnameS;10;CPCheckBoxK;8;$classesA;S;10;CPCheckBoxS;8;CPButtonS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;180E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;429E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;405E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;461E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;462E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;429E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;411E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;463E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;464E;K;11;$aalignmentD;K;6;CP$UIDd;3;420E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;405E;K;6;$afontD;K;6;CP$UIDd;3;465E;K;16;$aimage-positionD;K;6;CP$UIDd;3;352E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;355E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;420E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;466E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;307E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;308E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;355E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;355E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;306E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;352E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;405E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;3;180E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;429E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;405E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;467E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;468E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;429E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;411E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;463E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;464E;K;11;$aalignmentD;K;6;CP$UIDd;3;420E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;405E;K;6;$afontD;K;6;CP$UIDd;3;465E;K;16;$aimage-positionD;K;6;CP$UIDd;3;352E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;355E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;420E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;469E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;307E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;308E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;355E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;355E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;306E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;352E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;405E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;3;158E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;429E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;405E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;470E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;471E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;429E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;411E;K;25;CPViewAutoresizesSubviewsD;K;6;CP$UIDd;3;405E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;427E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;408E;K;14;$aborder-widthD;K;6;CP$UIDd;3;405E;K;15;$acorner-radiusD;K;6;CP$UIDd;3;405E;K;16;$acontent-marginD;K;6;CP$UIDd;3;473E;K;12;CPBoxTypeKeyD;K;6;CP$UIDd;3;352E;K;18;CPBoxBorderTypeKeyD;K;6;CP$UIDd;3;344E;K;10;CPBoxTitleD;K;6;CP$UIDd;3;474E;K;18;CPBoxTitlePositionD;K;6;CP$UIDd;3;405E;K;14;CPBoxTitleViewD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;3;156E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;429E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;405E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;475E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;476E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;429E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;411E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;413E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;414E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;415E;K;6;$afontD;K;6;CP$UIDd;3;417E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;422E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;420E;K;13;CPIntervalKeyD;K;6;CP$UIDd;3;405E;K;19;CPDatePickerModeKeyD;K;6;CP$UIDd;3;405E;K;20;CPDatePickerStyleKeyD;K;6;CP$UIDd;3;405E;K;23;CPDatePickerElementsKeyD;K;6;CP$UIDd;3;477E;K;12;CPMinDateKeyD;K;6;CP$UIDd;3;478E;K;12;CPMaxDateKeyD;K;6;CP$UIDd;3;479E;K;14;CPDateValueKeyD;K;6;CP$UIDd;3;422E;K;13;CPTextFontKeyD;K;6;CP$UIDd;1;0E;K;11;CPLocaleKeyD;K;6;CP$UIDd;1;0E;K;20;CPBackgroundColorKeyD;K;6;CP$UIDd;3;413E;K;20;CPDrawsBackgroundKeyD;K;6;CP$UIDd;3;306E;K;13;CPBorderedKeyD;K;6;CP$UIDd;3;306E;E;D;K;6;$classD;K;6;CP$UIDd;3;176E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;429E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;405E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;480E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;453E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;429E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;411E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;454E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;408E;K;11;$aalignmentD;K;6;CP$UIDd;3;405E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;352E;K;6;$afontD;K;6;CP$UIDd;3;481E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;306E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;482E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;420E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;308E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;308E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;308E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;456E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;352E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;405E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;3;180E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;429E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;405E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;483E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;484E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;429E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;411E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;463E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;485E;K;11;$aalignmentD;K;6;CP$UIDd;3;420E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;405E;K;6;$afontD;K;6;CP$UIDd;3;465E;K;16;$aimage-positionD;K;6;CP$UIDd;3;352E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;355E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;420E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;486E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;307E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;308E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;355E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;355E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;306E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;352E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;405E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;3;156E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;429E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;405E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;487E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;476E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;429E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;411E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;413E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;414E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;415E;K;6;$afontD;K;6;CP$UIDd;3;417E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;423E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;420E;K;13;CPIntervalKeyD;K;6;CP$UIDd;3;405E;K;19;CPDatePickerModeKeyD;K;6;CP$UIDd;3;405E;K;20;CPDatePickerStyleKeyD;K;6;CP$UIDd;3;405E;K;23;CPDatePickerElementsKeyD;K;6;CP$UIDd;3;477E;K;12;CPMinDateKeyD;K;6;CP$UIDd;3;488E;K;12;CPMaxDateKeyD;K;6;CP$UIDd;3;489E;K;14;CPDateValueKeyD;K;6;CP$UIDd;3;423E;K;13;CPTextFontKeyD;K;6;CP$UIDd;1;0E;K;11;CPLocaleKeyD;K;6;CP$UIDd;1;0E;K;20;CPBackgroundColorKeyD;K;6;CP$UIDd;3;413E;K;20;CPDrawsBackgroundKeyD;K;6;CP$UIDd;3;306E;K;13;CPBorderedKeyD;K;6;CP$UIDd;3;306E;E;D;K;6;$classD;K;6;CP$UIDd;3;180E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;429E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;405E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;490E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;491E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;429E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;411E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;463E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;485E;K;11;$aalignmentD;K;6;CP$UIDd;3;420E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;405E;K;6;$afontD;K;6;CP$UIDd;3;465E;K;16;$aimage-positionD;K;6;CP$UIDd;3;352E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;355E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;420E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;492E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;307E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;308E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;355E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;355E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;306E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;352E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;405E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;3;158E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;429E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;405E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;493E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;471E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;429E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;411E;K;25;CPViewAutoresizesSubviewsD;K;6;CP$UIDd;3;405E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;427E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;408E;K;14;$aborder-widthD;K;6;CP$UIDd;3;405E;K;15;$acorner-radiusD;K;6;CP$UIDd;3;405E;K;16;$acontent-marginD;K;6;CP$UIDd;3;494E;K;12;CPBoxTypeKeyD;K;6;CP$UIDd;3;352E;K;18;CPBoxBorderTypeKeyD;K;6;CP$UIDd;3;344E;K;10;CPBoxTitleD;K;6;CP$UIDd;3;474E;K;18;CPBoxTitlePositionD;K;6;CP$UIDd;3;405E;K;14;CPBoxTitleViewD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;3;176E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;429E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;405E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;495E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;453E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;429E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;411E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;454E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;408E;K;11;$aalignmentD;K;6;CP$UIDd;3;405E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;352E;K;6;$afontD;K;6;CP$UIDd;3;496E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;306E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;497E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;420E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;308E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;308E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;308E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;456E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;352E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;405E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;3;176E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;429E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;405E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;498E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;453E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;429E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;411E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;454E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;408E;K;11;$aalignmentD;K;6;CP$UIDd;3;405E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;352E;K;6;$afontD;K;6;CP$UIDd;3;499E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;306E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;500E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;420E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;308E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;308E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;308E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;456E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;352E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;405E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;3;156E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;429E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;405E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;501E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;476E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;429E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;411E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;413E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;414E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;415E;K;6;$afontD;K;6;CP$UIDd;3;417E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;502E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;420E;K;13;CPIntervalKeyD;K;6;CP$UIDd;3;405E;K;19;CPDatePickerModeKeyD;K;6;CP$UIDd;3;405E;K;20;CPDatePickerStyleKeyD;K;6;CP$UIDd;3;405E;K;23;CPDatePickerElementsKeyD;K;6;CP$UIDd;3;477E;K;12;CPMinDateKeyD;K;6;CP$UIDd;3;503E;K;12;CPMaxDateKeyD;K;6;CP$UIDd;3;504E;K;14;CPDateValueKeyD;K;6;CP$UIDd;3;502E;K;13;CPTextFontKeyD;K;6;CP$UIDd;1;0E;K;11;CPLocaleKeyD;K;6;CP$UIDd;1;0E;K;20;CPBackgroundColorKeyD;K;6;CP$UIDd;3;413E;K;20;CPDrawsBackgroundKeyD;K;6;CP$UIDd;3;306E;K;13;CPBorderedKeyD;K;6;CP$UIDd;3;306E;E;D;K;6;$classD;K;6;CP$UIDd;3;180E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;429E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;405E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;505E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;506E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;429E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;411E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;463E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;485E;K;11;$aalignmentD;K;6;CP$UIDd;3;420E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;405E;K;6;$afontD;K;6;CP$UIDd;3;465E;K;16;$aimage-positionD;K;6;CP$UIDd;3;352E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;355E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;420E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;507E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;307E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;308E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;355E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;355E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;306E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;352E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;405E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;3;180E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;429E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;405E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;508E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;506E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;429E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;411E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;463E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;485E;K;11;$aalignmentD;K;6;CP$UIDd;3;420E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;405E;K;6;$afontD;K;6;CP$UIDd;3;465E;K;16;$aimage-positionD;K;6;CP$UIDd;3;352E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;355E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;420E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;509E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;307E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;308E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;355E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;355E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;306E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;352E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;405E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;3;180E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;429E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;405E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;510E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;506E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;429E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;411E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;463E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;485E;K;11;$aalignmentD;K;6;CP$UIDd;3;420E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;405E;K;6;$afontD;K;6;CP$UIDd;3;465E;K;16;$aimage-positionD;K;6;CP$UIDd;3;352E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;355E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;420E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;511E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;307E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;308E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;355E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;355E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;306E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;352E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;405E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;3;176E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;155E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;405E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;512E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;513E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;155E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;411E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;454E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;408E;K;11;$aalignmentD;K;6;CP$UIDd;3;420E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;352E;K;6;$afontD;K;6;CP$UIDd;3;514E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;306E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;515E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;420E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;308E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;308E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;308E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;456E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;352E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;420E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;3;176E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;155E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;405E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;516E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;517E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;155E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;411E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;454E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;408E;K;11;$aalignmentD;K;6;CP$UIDd;3;352E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;352E;K;12;$atext-colorD;K;6;CP$UIDd;3;518E;K;6;$afontD;K;6;CP$UIDd;3;519E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;306E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;520E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;420E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;308E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;308E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;308E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;456E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;352E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;352E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;3;176E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;155E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;405E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;521E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;517E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;155E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;411E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;454E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;408E;K;11;$aalignmentD;K;6;CP$UIDd;3;352E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;352E;K;12;$atext-colorD;K;6;CP$UIDd;3;522E;K;6;$afontD;K;6;CP$UIDd;3;523E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;306E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;520E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;420E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;308E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;308E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;308E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;456E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;352E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;352E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;10;$classnameS;24;CPUserDefaultsControllerK;8;$classesA;S;24;CPUserDefaultsControllerS;12;CPControllerS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;199E;K;33;CPUserDefaultsControllerSharedKeyD;K;6;CP$UIDd;3;306E;E;D;K;6;$classD;K;6;CP$UIDd;2;81E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;524E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;525E;E;D;K;6;$classD;K;6;CP$UIDd;2;81E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;524E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;526E;E;D;K;6;$classD;K;6;CP$UIDd;2;81E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;524E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;527E;E;D;K;6;$classD;K;6;CP$UIDd;2;81E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;524E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;528E;E;S;13;CPApplicationD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;153E;E;E;S;8;delegateS;18;buttonElementsDateS;18;buttonElementsTimeS;11;buttonStyleS;17;pickerCurrentDateS;13;pickerMaxDateS;13;pickerMinDateS;12;pickerTargetS;9;theWindowS;11;nextKeyViewS;7;contentS;15;arrangeInFront:S;19;performMiniaturize:S;29;orderFrontStandardAboutPanel:S;13;openDocument:S;13;performClose:S;13;saveDocument:S;15;saveDocumentAs:S;12;newDocument:S;9;showHelp:S;22;revertDocumentToSaved:S;21;clearRecentDocuments:S;10;terminate:S;13;stopSpeaking:S;14;startSpeaking:S;5;copy:S;10;selectAll:S;4;cut:S;14;checkSpelling:S;7;delete:S;6;paste:S;15;showGuessPanel:S;5;undo:S;23;performFindPanelAction:S;29;centerSelectionInVisibleArea:S;5;redo:S;30;toggleContinuousSpellChecking:S;12;performZoom:S;19;toggleToolbarShown:S;31;runToolbarCustomizationPalette:S;22;toggleGrammarChecking:S;24;toggleSmartInsertDelete:S;33;toggleAutomaticQuoteSubstitution:S;29;toggleAutomaticLinkDetection:S;15;updateElements:S;23;updateHasMinConstraint:S;23;updateHasMaxConstraint:S;27;value: pickerTarget.enabledS;5;valueS;20;pickerTarget.enabledD;K;10;$classnameS;12;CPDictionaryK;8;$classesA;S;12;CPDictionaryS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;257E;K;10;CP.objectsD;E;E;S;32;value: pickerTarget.timeIntervalS;25;pickerTarget.timeIntervalD;K;6;$classD;K;6;CP$UIDd;3;257E;K;10;CP.objectsD;K;25;CPConditionallySetsHiddenD;K;6;CP$UIDd;3;306E;E;E;S;31;value: pickerTarget.objectValueS;24;pickerTarget.objectValueD;K;6;$classD;K;6;CP$UIDd;3;257E;K;10;CP.objectsD;E;E;S;28;value: pickerTarget.borderedS;21;pickerTarget.borderedD;K;6;$classD;K;6;CP$UIDd;3;257E;K;10;CP.objectsD;E;E;S;35;value: pickerTarget.drawsBackgroundS;28;pickerTarget.drawsBackgroundD;K;6;$classD;K;6;CP$UIDd;3;257E;K;10;CP.objectsD;E;E;S;29;value: pickerTarget.dateValueS;22;pickerTarget.dateValueD;K;6;$classD;K;6;CP$UIDd;3;257E;K;10;CP.objectsD;E;E;S;27;value: pickerTarget.maxDateS;20;pickerTarget.maxDateD;K;6;$classD;K;6;CP$UIDd;3;257E;K;10;CP.objectsD;E;E;S;27;value: pickerTarget.minDateS;20;pickerTarget.minDateD;K;6;$classD;K;6;CP$UIDd;3;257E;K;10;CP.objectsD;E;E;S;37;selectedTag: selection.datePickerModeS;11;selectedTagS;24;selection.datePickerModeD;K;6;$classD;K;6;CP$UIDd;3;257E;K;10;CP.objectsD;E;E;S;38;selectedTag: selection.datePickerStyleS;25;selection.datePickerStyleD;K;6;$classD;K;6;CP$UIDd;3;257E;K;10;CP.objectsD;E;E;S;35;maxValue: pickerMaxDate.objectValueS;8;maxValueS;25;pickerMaxDate.objectValueD;K;6;$classD;K;6;CP$UIDd;3;257E;K;10;CP.objectsD;E;E;S;35;minValue: pickerMinDate.objectValueS;8;minValueS;25;pickerMinDate.objectValueD;K;6;$classD;K;6;CP$UIDd;3;257E;K;10;CP.objectsD;E;E;S;36;value: pickerCurrentDate.objectValueS;29;pickerCurrentDate.objectValueD;K;6;$classD;K;6;CP$UIDd;3;257E;K;10;CP.objectsD;E;E;S;9;AMainMenuS;11;_CPMainMenuD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;90E;D;K;6;CP$UIDd;3;133E;D;K;6;CP$UIDd;3;100E;D;K;6;CP$UIDd;3;145E;D;K;6;CP$UIDd;2;84E;D;K;6;CP$UIDd;2;97E;E;E;S;6;WindowS;14;submenuAction:d;7;1048576S;14;_CPWindowsMenuD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;89E;D;K;6;CP$UIDd;2;88E;D;K;6;CP$UIDd;2;86E;D;K;6;CP$UIDd;2;87E;E;E;T;S;0;F;S;18;Bring All to FrontS;4;ZoomS;8;MinimizeS;1;mS;14;NewApplicationS;18;_CPApplicationMenuD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;92E;D;K;6;CP$UIDd;2;96E;D;K;6;CP$UIDd;2;94E;D;K;6;CP$UIDd;2;95E;D;K;6;CP$UIDd;2;93E;E;E;S;20;About NewApplicationS;19;Quit NewApplicationS;1;qS;12;Preferences…S;1;,S;4;HelpD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;99E;E;E;S;19;NewApplication HelpS;1;?S;4;EditD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;104E;D;K;6;CP$UIDd;3;110E;D;K;6;CP$UIDd;3;109E;D;K;6;CP$UIDd;3;106E;D;K;6;CP$UIDd;3;108E;D;K;6;CP$UIDd;3;107E;D;K;6;CP$UIDd;3;102E;D;K;6;CP$UIDd;3;103E;D;K;6;CP$UIDd;3;105E;D;K;6;CP$UIDd;3;111E;D;K;6;CP$UIDd;3;118E;D;K;6;CP$UIDd;3;128E;D;K;6;CP$UIDd;3;124E;E;E;S;6;DeleteS;10;Select AllS;1;aS;4;UndoS;1;zS;3;CutS;1;xS;5;PasteS;1;vS;4;CopyS;1;cS;4;RedoS;1;Zd;7;1179648S;4;FindD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;117E;D;K;6;CP$UIDd;3;116E;D;K;6;CP$UIDd;3;113E;D;K;6;CP$UIDd;3;115E;D;K;6;CP$UIDd;3;114E;E;E;S;13;Find Previousd;1;3S;1;GS;17;Jump to SelectionS;1;jS;22;Use Selection for Findd;1;7S;1;eS;9;Find Nextd;1;2S;1;gS;5;Find…d;1;1S;1;fS;20;Spelling and GrammarD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;122E;D;K;6;CP$UIDd;3;121E;D;K;6;CP$UIDd;3;120E;D;K;6;CP$UIDd;3;123E;E;E;S;27;Check Spelling While TypingS;14;Check SpellingS;1;;S;14;Show Spelling…S;1;:S;27;Check Grammar With SpellingS;6;SpeechD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;127E;D;K;6;CP$UIDd;3;126E;E;E;S;13;Stop SpeakingS;14;Start SpeakingS;13;SubstitutionsD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;130E;D;K;6;CP$UIDd;3;131E;D;K;6;CP$UIDd;3;132E;E;E;S;16;Smart Copy/PasteS;12;Smart QuotesS;11;Smart LinksS;4;FileD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;138E;D;K;6;CP$UIDd;3;137E;D;K;6;CP$UIDd;3;139E;D;K;6;CP$UIDd;3;143E;D;K;6;CP$UIDd;3;142E;D;K;6;CP$UIDd;3;135E;D;K;6;CP$UIDd;3;136E;D;K;6;CP$UIDd;3;144E;E;E;S;4;SaveS;1;sS;8;Save As…S;1;SS;5;Open…S;1;oS;3;NewS;1;nS;11;Open RecentS;22;_CPRecentDocumentsMenuD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;141E;E;E;S;10;Clear MenuS;5;CloseS;1;wS;15;Revert to SavedS;4;ViewD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;147E;D;K;6;CP$UIDd;3;148E;E;E;S;12;Show ToolbarS;1;td;7;1572864S;18;Customize Toolbar…S;12;CPDatePickerS;13;AppControllerS;32;{10000000000000, 10000000000000}S;8;CPWindowd;10;1946157056S;24;{{133, 112}, {885, 477}}S;21;{{0, 0}, {1440, 878}}S;17;CPDatePicker Testd;1;0S;20;{{0, 0}, {885, 477}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;157E;D;K;6;CP$UIDd;3;196E;D;K;6;CP$UIDd;3;159E;D;K;6;CP$UIDd;3;197E;D;K;6;CP$UIDd;3;198E;E;E;S;6;normalS;24;{{456, 161}, {273, 148}}S;20;{{0, 0}, {273, 148}}d;2;36D;K;10;$classnameS;7;CPColorK;8;$classesA;S;7;CPColorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;412E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;529E;E;S;10;datePickerS;16;bezeled+borderedD;K;10;$classnameS;6;CPFontK;8;$classesA;S;6;CPFontS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;416E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;530E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;531E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;306E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;308E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;306E;E;D;K;10;$classnameS;6;CPDateK;8;$classesA;S;6;CPDateS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;418E;K;13;CPDateTimeKeyD;K;6;CP$UIDd;3;532E;E;d;1;4d;3;510D;K;6;$classD;K;6;CP$UIDd;3;418E;K;13;CPDateTimeKeyD;K;6;CP$UIDd;3;533E;E;D;K;6;$classD;K;6;CP$UIDd;3;418E;K;13;CPDateTimeKeyD;K;6;CP$UIDd;3;534E;E;S;22;{{21, 75}, {355, 382}}S;20;{{0, 0}, {355, 382}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;429E;E;E;S;3;boxS;10;ParametersD;K;6;$classD;K;6;CP$UIDd;3;154E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;159E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;405E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;544E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;545E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;546E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;159E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;547E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;408E;K;20;CPReuseIdentifierKeyD;K;6;CP$UIDd;3;548E;E;S;22;{{104, 16}, {227, 25}}S;19;{{0, 0}, {227, 25}}S;12;popup-buttonS;8;borderedD;K;6;$classD;K;6;CP$UIDd;3;416E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;530E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;535E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;306E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;308E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;306E;E;d;2;12S;9;GraphicalS;17;_popUpItemAction:S;20;Textual with StepperS;7;TextualS;22;{{104, 46}, {227, 25}}D;K;6;$classD;K;6;CP$UIDd;3;416E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;530E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;535E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;306E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;308E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;306E;E;S;11;Single DateS;10;Date RangeS;22;{{104, 77}, {227, 25}}D;K;6;$classD;K;6;CP$UIDd;3;416E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;530E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;535E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;306E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;308E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;306E;E;S;4;NoneS;14;Month and YearS;19;Month, Day and YearS;23;{{104, 108}, {227, 25}}S;23;Hour, Minute and SecondS;15;Hour and MinuteS;20;{{18, 18}, {78, 17}}S;18;{{0, 0}, {78, 17}}S;9;textfieldS;5;StyleD;K;6;$classD;K;6;CP$UIDd;3;412E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;536E;E;S;20;{{18, 50}, {78, 17}}S;7;SelectsS;20;{{18, 81}, {78, 17}}S;8;ElementsS;22;{{102, 138}, {89, 21}}S;18;{{0, 0}, {89, 21}}S;9;check-boxS;17;disabled+selectedD;K;6;$classD;K;6;CP$UIDd;3;416E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;530E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;535E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;308E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;308E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;306E;E;S;9;Time zoneS;22;{{195, 138}, {76, 21}}S;18;{{0, 0}, {76, 21}}S;3;EraS;20;{{2, 163}, {357, 5}}S;18;{{0, 0}, {357, 5}}D;K;10;$classnameS;21;_CPKeyedArchiverValueK;8;$classesA;S;21;_CPKeyedArchiverValueS;7;CPValueS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;472E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;537E;E;S;3;BoxS;23;{{104, 193}, {227, 29}}S;19;{{0, 0}, {227, 29}}d;3;238D;K;6;$classD;K;6;CP$UIDd;3;418E;K;13;CPDateTimeKeyD;K;6;CP$UIDd;3;538E;E;D;K;6;$classD;K;6;CP$UIDd;3;418E;K;13;CPDateTimeKeyD;K;6;CP$UIDd;3;539E;E;S;21;{{18, 174}, {78, 17}}D;K;6;$classD;K;6;CP$UIDd;3;416E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;530E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;535E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;306E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;308E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;306E;E;S;11;ConstraintsS;23;{{102, 170}, {113, 21}}S;19;{{0, 0}, {113, 21}}S;8;selectedS;12;Minimum dateS;23;{{104, 245}, {227, 29}}D;K;6;$classD;K;6;CP$UIDd;3;418E;K;13;CPDateTimeKeyD;K;6;CP$UIDd;3;538E;E;D;K;6;$classD;K;6;CP$UIDd;3;418E;K;13;CPDateTimeKeyD;K;6;CP$UIDd;3;539E;E;S;23;{{102, 222}, {116, 21}}S;19;{{0, 0}, {116, 21}}S;12;Maximum dateS;20;{{2, 277}, {357, 5}}D;K;6;$classD;K;6;CP$UIDd;3;472E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;537E;E;S;21;{{18, 290}, {78, 17}}D;K;6;$classD;K;6;CP$UIDd;3;416E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;530E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;535E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;306E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;308E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;306E;E;S;4;DateS;21;{{18, 315}, {78, 17}}D;K;6;$classD;K;6;CP$UIDd;3;416E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;530E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;535E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;306E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;308E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;306E;E;S;7;DisplayS;23;{{104, 284}, {227, 29}}D;K;6;$classD;K;6;CP$UIDd;3;418E;K;13;CPDateTimeKeyD;K;6;CP$UIDd;3;540E;E;D;K;6;$classD;K;6;CP$UIDd;3;418E;K;13;CPDateTimeKeyD;K;6;CP$UIDd;3;538E;E;D;K;6;$classD;K;6;CP$UIDd;3;418E;K;13;CPDateTimeKeyD;K;6;CP$UIDd;3;539E;E;S;22;{{102, 313}, {97, 21}}S;18;{{0, 0}, {97, 21}}S;10;BackgroundS;22;{{102, 333}, {97, 21}}S;6;BorderS;22;{{102, 353}, {97, 21}}S;7;EnabledS;21;{{20, 20}, {162, 29}}S;19;{{0, 0}, {162, 29}}D;K;6;$classD;K;6;CP$UIDd;3;416E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;530E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;541E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;306E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;308E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;306E;E;S;17;CPDatePicket testS;22;{{416, 75}, {356, 21}}S;19;{{0, 0}, {356, 21}}D;K;6;$classD;K;6;CP$UIDd;3;412E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;542E;E;D;K;6;$classD;K;6;CP$UIDd;3;416E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;530E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;541E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;308E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;308E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;306E;E;S;5;LabelS;23;{{416, 104}, {356, 21}}D;K;6;$classD;K;6;CP$UIDd;3;412E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;543E;E;D;K;6;$classD;K;6;CP$UIDd;3;416E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;530E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;541E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;308E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;308E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;306E;E;S;10;OtherViewsD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;173E;D;K;6;CP$UIDd;3;174E;D;K;6;CP$UIDd;3;175E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;171E;D;K;6;CP$UIDd;3;170E;D;K;6;CP$UIDd;3;169E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;166E;D;K;6;CP$UIDd;3;167E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;164E;D;K;6;CP$UIDd;3;163E;D;K;6;CP$UIDd;3;162E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;355E;D;K;6;CP$UIDd;3;355E;D;K;6;CP$UIDd;3;355E;D;K;6;CP$UIDd;3;355E;E;E;S;28;_CPFontSystemFacePlaceholderd;2;13d;13;1355344212000d;15;-62135554022000d;14;64092254400000d;2;-1D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;549E;D;K;6;CP$UIDd;3;549E;D;K;6;CP$UIDd;3;549E;D;K;6;CP$UIDd;3;355E;E;E;S;22;{"width":0,"height":0}d;15;-62135510400000d;14;64092297600000d;13;1355343132000d;2;17D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;550E;D;K;6;CP$UIDd;3;550E;D;K;6;CP$UIDd;3;550E;D;K;6;CP$UIDd;3;355E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;550E;D;K;6;CP$UIDd;3;550E;D;K;6;CP$UIDd;3;550E;D;K;6;CP$UIDd;3;355E;E;E;S;21;{{1, -5}, {361, 386}}S;20;{{0, 0}, {361, 386}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;184E;D;K;6;CP$UIDd;3;161E;D;K;6;CP$UIDd;3;165E;D;K;6;CP$UIDd;3;168E;D;K;6;CP$UIDd;3;172E;D;K;6;CP$UIDd;3;177E;D;K;6;CP$UIDd;3;178E;D;K;6;CP$UIDd;3;185E;D;K;6;CP$UIDd;3;190E;D;K;6;CP$UIDd;3;191E;D;K;6;CP$UIDd;3;179E;D;K;6;CP$UIDd;3;181E;D;K;6;CP$UIDd;3;186E;D;K;6;CP$UIDd;3;187E;D;K;6;CP$UIDd;3;192E;D;K;6;CP$UIDd;3;188E;D;K;6;CP$UIDd;3;182E;D;K;6;CP$UIDd;3;193E;D;K;6;CP$UIDd;3;194E;D;K;6;CP$UIDd;3;183E;D;K;6;CP$UIDd;3;189E;D;K;6;CP$UIDd;3;195E;E;E;d;2;18S;6;_NS:11f;18;0.6862745098039216f;12;0.3455284834E;K;9;$archiverS;15;CPKeyedArchiverK;8;$versionS;6;100000E; \ No newline at end of file diff --git a/Tools/nib2cib/NSDateFormatter.j b/Tools/nib2cib/NSDateFormatter.j index f744a7abb..b08f4b12b 100644 --- a/Tools/nib2cib/NSDateFormatter.j +++ b/Tools/nib2cib/NSDateFormatter.j @@ -22,6 +22,10 @@ @import +@global CPDateFormatterBehavior10_0 +@global CPDateFormatterBehavior10_4 +@global CPDateFormatterMediumStyle + @implementation CPDateFormatter (CPCoding) - (id)NS_initWithCoder:(CPCoder)aCoder @@ -30,7 +34,24 @@ if (self) { - _dateStyle = CPDateFormatterShortStyle; + var attributes = [aCoder decodeObjectForKey:@"NS.attributes"]; + + _dateStyle = [attributes valueForKey:@"dateStyle"]; + _timeStyle = [attributes valueForKey:@"timeStyle"]; + _formatterBehavior = [attributes valueForKey:@"formatterBehavior"]; + + if ([attributes containsKey:@"doesRelativeDateFormatting"]) + _doesRelativeDateFormatting = [attributes valueForKey:@"doesRelativeDateFormatting"]; + + _dateFormat = [aCoder decodeObjectForKey:@"NS.format"]; + _allowNaturalLanguage = [aCoder decodeBoolForKey:@"NS.natural"]; + + if (_formatterBehavior == CPDateFormatterBehavior10_0) + { + _formatterBehavior = CPDateFormatterBehavior10_4; + _timeStyle = CPDateFormatterMediumStyle; + _dateStyle = CPDateFormatterMediumStyle; + } } return self; diff --git a/Tools/nib2cib/NSDatePicker.j b/Tools/nib2cib/NSDatePicker.j index f0ebb2579..871c7a313 100644 --- a/Tools/nib2cib/NSDatePicker.j +++ b/Tools/nib2cib/NSDatePicker.j @@ -53,6 +53,7 @@ var NSDatePickerDefaultSize = 22, _dateValue = [cell objectValue]; _backgroundColor = [cell backgroundColor]; _drawsBackground = [cell drawsBackground]; + _formatter = [cell formatter]; [self setBezeled:[cell isBezeled]]; [self setBordered:[cell isBordered]]; @@ -172,15 +173,16 @@ var NSDatePickerDefaultSize = 22, @implementation NSDatePickerCell : NSCell { - BOOL _drawsBackground @accessors(getter=drawsBackground); - CPDate _minDate @accessors(getter=minDate); - CPDate _maxDate @accessors(getter=maxDate); - CPInteger _datePickerMode @accessors(getter=datePickerMode); - CPInteger _datePickerElements @accessors(getter=datePickerElements); - CPinteger _datePickerType @accessors(getter=datePickerType); - double _timeInterval @accessors(getter=timeInterval); - CPColor _textColor @accessors(getter=textColor); - CPColor _backgroundColor @accessors(getter=backgroundColor); + BOOL _drawsBackground @accessors(getter=drawsBackground); + CPDate _minDate @accessors(getter=minDate); + CPDate _maxDate @accessors(getter=maxDate); + CPDateFormatter _formatter @accessors(getter=formatter); + CPInteger _datePickerMode @accessors(getter=datePickerMode); + CPInteger _datePickerElements @accessors(getter=datePickerElements); + CPinteger _datePickerType @accessors(getter=datePickerType); + double _timeInterval @accessors(getter=timeInterval); + CPColor _textColor @accessors(getter=textColor); + CPColor _backgroundColor @accessors(getter=backgroundColor); } - (id)initWithCoder:(CPCoder)aCoder @@ -205,6 +207,9 @@ var NSDatePickerDefaultSize = 22, _backgroundColor = [aCoder decodeObjectForKey:@"NSBackgroundColor"]; _isBordered = _isBezeled; + if ([aCoder containsValueForKey:@"NSFormatter"]) + _formatter = [aCoder decodeObjectForKey:@"NSFormatter"]; + if ([aCoder containsValueForKey:@"NSDrawsBackground"]) _drawsBackground = [aCoder decodeBoolForKey:@"NSDrawsBackground"]; else diff --git a/Tools/nib2cib/NSDictionary.j b/Tools/nib2cib/NSDictionary.j index eb57da8b8..72af189b6 100644 --- a/Tools/nib2cib/NSDictionary.j +++ b/Tools/nib2cib/NSDictionary.j @@ -33,7 +33,11 @@ - (id)initWithCoder:(CPCoder)aCoder { - return [CPDictionary dictionaryWithObjects:[aCoder decodeObjectForKey:@"NS.objects"] forKeys:[aCoder decodeObjectForKey:@"NS.keys"]]; + if ([aCoder containsValueForKey:@"NS.objects"]) + return [CPDictionary dictionaryWithObjects:[aCoder decodeObjectForKey:@"NS.objects"] forKeys:[aCoder decodeObjectForKey:@"NS.keys"]]; + + if ([aCoder containsValueForKey:@"dict.values"]) + return [CPDictionary dictionaryWithObjects:[aCoder decodeObjectForKey:@"dict.values"] forKeys:[aCoder decodeObjectForKey:@"dict.sortedKeys"]]; } @end