FUEL |XFUEL FLGlobalCompiledMethodClusterFLDebuggerStackSerializer&serializeStackFromContext:toFileNamed:$FLGlobalCompiledBlockClusterFLDebuggerStackSerializer&serializeStackFromContext:toFileNamed:FLGlobalClassCluster ByteString IdentitySet ByteSymbolFullBlockClosureFLHeaderIdentityDictionaryUndefinedObjectContextFLHookPrimitiveCluster FLHookPrimitiveCluster TimestampVMImageFLHookPrimitiveClusterImage: Pharo13.0.0SNAPSHOT [Build information: Pharo-13.0.0+SNAPSHOT.build.16.sha.5ad57b64072f6c9ced86af0f8b79937a4766259d (64 Bit)]VM: unix - x86_64 - linux-gnu - CoInterpreter VMMaker-tonel.1 uuid: ea96ff4a-9fd3-0d00-af10-c4d70bccb44d Apr 29 2024 StackToRegisterMappingCogit VMMaker-tonel.1 uuid: ea96ff4a-9fd3-0d00-af10-c4d70bccb44d Apr 29 2024 d1bfe9e - Commit: d1bfe9e - Date: 2024-04-29 14:32:52 +0200 1 May 2024 4:14:24.236289 pmFLPositive8SmallIntegerClusterQFLContextCluster senderpcstackpmethod closureOrNilreceiverFLVariableObjectCluster outerContext compiledBlocknumArgsreceiverFLFixedObjectClusterpreMaterializationActionsadditionalObjectspostMaterializationActionsFLDictionaryCollectionClusterFLSimpleCollectionClusterFLSubstitutionCluster     FLGlobalCompiledBlockCluster& HDTestReportrunRSYMarkerDecorationmaxTestCaserunCaseTestExecutionEnvironmentrunTestCaseUnderWatchdog:CurrentExecutionEnvironment activate:for:TestCaserunCaseBasicCommandLineHandleractivateTestExecutionEnvironmentrunTestCaseUnderWatchdog: BlockClosure newProcessBasicCommandLineHandleractivate HDTestReportrunAll HDTestReportrunCase: HDTestReportrunTestCaserunCaseBasicCommandLineHandleractivateSubCommand:HDReport runPackages:TestExecutionEnvironment runTestCase:TestCaserunCase HDTestReportrunCase:SpAbstractAdapterTesttestParametersSpAbstractAdapterTesttestParametersTestExecutionEnvironmentrunTestCaseUnderWatchdog: HDTestReportrunAllBasicCommandLineHandleractivateTestExecutionEnvironment runTestCase: HDTestReportrunClasses:named: TFTestCasetestParametersSetcollect: HDTestReport newLogDuring: RBMethodNode initialize HDTestReportrunRSXMarkerDecorationmax HDTestReportreportTestCase:runBlock: TFTestCasetestParametersTestExecutionEnvironmentrunTestCaseUnderWatchdog: HDTestReportrunCase:BasicCommandLineHandleractivateSubCommand:CurrentExecutionEnvironment activate:for:FLGlobalAssociationCluster7Symbol SmallInteger RectangleSequenceableCollectionColorRandomIntegerSortedCollectionOrderedDictionary ZeroDivideGZipWriteStreamPropertySortFunctionPoint FileSystem ByteArray ProtoObjectSetSubscriptOutOfBoundsGZipReadStreamCollectionIsEmptyArithmeticError IdentitySetMessageNotUnderstoodSTONCStyleCommentsSkipStream DictionaryNumberBagString DateAndTimeClassOrderedCollection WriteStreamSmallDictionary RubTextEditorErrorLimitedWriteStreamRunArray Generator ReadStreamDurationRPackageMonth RBScannerContext KeyboardKeyDate AsciiCharsetObjectSTONNSPerlinNoise2FloatArray Character OSPlatform AssociationFLGlobalCompiledMethodClusterOrderedCollectioncapacity$ CollectionanyOneY Collectionsorted:sTUndefinedObjectifNotNil:ifNil:sStringindexOf:OString findSelector PPointabs.IntegerhumanReadableByteSizeStringz Collection includesAny:ClassDescription classSide.String isAllDigits5SequenceableCollection atAll:put:FSequenceableCollectionwith:do: CharacterisAlphaNumeric?SequenceableCollectionmiddleSequenceableCollectionfindBinary:do:ifNone:SequenceableCollection shuffleBy:>5SequenceableCollectionsecond2 Collection removeAll: Collection withIndexDo:+ Collectionadd:withOccurrences:String<= SmallInteger bytesCountxSequenceableCollectionafter:ifAbsent:LSequenceableCollection allButLast:NSequenceableCollectionpolynomialEval: SmallIntegerdecimalDigitLength/OrderedDictionaryat:at:ifAbsent:Number// Collection&}{ClyLocalClassScopemetaLevelForHierarchyOf:LSequenceableCollectionoverlappingPairsDo:‰String surroundedBy:* DictionarynewFromKeys:andValues:aSequenceableCollectionselect:thenCollect:[Dateweekday.SequenceableCollection swap:with:f Collection newFromArray:^) Charactertokenish!SequenceableCollectionninth2 Exceptionsignalȭ CharacterisControlOtherpSequenceableCollectioncloseTo:r" Collectioncount:uPointfloorxStringexpandMacrosWithArguments:Y BlockClosurevalueWithPossibleArgs:Q Collection includesAll: AsciiCharset toLowercase:SequenceableCollectionpairsDo:ZPoint*c Collectiondetect:ifFound:ifNone: BlockClosureon:do:BSetnewFrom:ۀStringmatch:KSet intersection:$SequenceableCollection readStreamDo:5ArrayedCollection with:withAll:` CollectionsignClass instanceSide 1SequenceableCollection runningMin:Integer digitAt:base:SequenceableCollection detectIndex:TrueasBit5Point translateBy:~Color hslSaturation Collection copyWithout:y#DateddmmyyyyzStringisAllAlphaNumericss GeneratoronDo:y#Colordiff:CurrentExecutionEnvironment activate:for:SequenceableCollectionsorted:sT Collectionfold:}{ Collectiondetect:String expandMacroszColor fromString:EI CharacterisDecimalDigitpDateequals:;Trueor: TestAsserterassert:description:\BasicCommandLineHandlerhandleSubcommand BlockClosureensure:yPackage isTestPackagez CollectionsumSequenceableCollectionidentityIndexOf:m|BagasSetaColorfromRgbTriplet:SymbolkeywordsStrictõStringcopyReplaceAll:with:yCurrentExecutionEnvironment runTestsBy:String howManyMatch:JnIntegerstoreStringBase:length:padded:kFString=j SequenceableCollection combinations!Pointmin:ExecutionEnvironmentbeActiveDuring: SequenceableCollectionstreamContents:limitedTo:Z| Collection flatCollect:aPointmaxwmSequenceableCollectionisSortedSIntegernumberOfCombinationsTaken:>SequenceableCollectionoverlappingPairsWithIndexDo:SColorh:s:l: Collection//Number raisedTo:#Color rgbTriplet Collection|}{SequenceableCollectionoverlappingPairsCollect:/ Collectionaverage0Colorh:s:v: SmallIntegerhighBit Objectjoin:/S Collectionreject:thenCollect:Stringjoin:IntegerprintOn:base:length:padded:1STON listClass SequenceableCollectionbind:.Integer factorial<1StringwithUnixLineEndings(String endsWithDigit Collection ifNotEmpty:3SortedCollectionmedianBoolean&L CollectionasStringOn:delimiter:last:Ł WideString asByteArrayaOBooleanasBitL CharacterisLetterpCommandLineHandler activateWith:G8StringasHexSSequenceableCollectionargmaxkOrderedDictionaryat:at:=Date weekdayIndex. BlockClosurecull:SequenceableCollection findBinary:nPath printPathOn:FalseifTrue:ifFalse:sTestCaserunCaseManagedDString asLowercase HDTestReport runSuite:e CollectionidentityIncludes:CompiledMethod isExtensionzSequenceableCollectionsixth2 Collectioncollect:1SequenceableCollection allButLastDo:8 BlockClosuresplit:indicesDo:F CollectionasBagNumber milliSecondsDate previous: AsciiCharset toUppercase:؜OrderedCollection growAtFirstTruenot Objectsplit:indicesDo:]Floatround:f+ RBMethodNodepharoDocCommentNodesbClassDescription isClassSide Collection includes:y# Magnitudemin:max:~ Collection detectMin:&False|1TestCase performTest- ProtoObjectifNotNil:ifNil:.DateasDate 1BagcumulativeCounts BlockClosure newProcess MagnitudebeBetween:and: BlockClosuremicrosecondsToRunР Collection do:without:UString includesSubstring:caseSensitive:l CollectionasSet CollectionunzipBoolean==>3 CharacterprintStringHex]Stringalike:' Collection*Color h:s:v:alpha:N)SequenceableCollectionreject:thenCollect:[ Collectiondo:separatedBy:StringsqueezeOutNumberInteger slowFactorial CollectionmaxrNumberprintStringBase:pSequenceableCollection from:to:do:4SequenceableCollection pairsCollect: CollectionselectEverySecond TestAsserter assertEmpty:IS KeyboardKeyfromCharacter:֖SequenceableCollectionindexOf:startingAt:6DateonPreviousMonthzStringtrim.IntegerprintStringHexz Collection inject:into:OrderedCollectionaddAll:}{StringSequenceableCollectioncollect:thenSelect:WIntegerhumanReadableSISizeString!TestCaserunCase Collection removeAllNColor hsvSaturation]SequenceableCollection)indexOfSubCollection:startingAt:ifAbsent: Exceptionsignal: SmallIntegerprintOn:base:length:padded: CollectionasSortedCollectionzIntervalasOpenInterval+ CharacterisConnectorPunctuationpSmallDictionarynewFromKeys:andValues:aSequenceableCollection findFirst: ByteString isByteString CollectionasStringOn:delimiter: RectanglecontainsPoint:Number%9 CollectionflatCollect:as:: ProtoObjectifNil:ifNotNil:ҹString asInteger.SequenceableCollectiongroupsOf:atATimeCollect:?]Boolean|LSequenceableCollectionidentityIndexOf:ifAbsent:'RSXMarkerDecorationmaxTestCommandLineHandler runPackagesSequenceableCollectionatWrap:6StringwithSeparatorsCompacted CollectionremoveAllSuchThat:.Stringcompare:with:collated:uColorhex:uSequenceableCollectionlastColorfromHexString:=Number**}{ CharacterisClosePunctuationpOrderedCollection growAtLasts Collection collect:into:rSTrue|SequenceableCollection reduceRight:= CollectionselectEveryFirst Collection noneSatisfy:BooleanifTrue:L HDTestReport runPackage:CSequenceableCollectionnew:streamContents:String>= Collection sumNumbers)d Collection+>>}{ Collection collect:as:A KeyboardKey named:ifNone:STONfromStringWithComments:OhSequenceableCollectionreplaceAll:with:SequenceableCollectionreplaceFrom:to:with: Collectionselect:1SequenceableCollection runningMax: DateAndTimeminute8BasicCommandLineHandleractivate RBMethodNode initializeSequenceableCollectionindexOfAnyOf:ifAbsent:KClass classSide. Collection allSatisfy: DateAndTimesecondFPoint isFloatPointTIntervalstop!StringsurroundedBySingleQuotes' HDTestReport runSuite:kSequenceableCollectionsplitOn:. CollectionasOrderedCollectionz Character isCasedLetterpSequenceableCollectionrunningAverage: SmallIntegerprintStringBase:[Number nanoSecond. Collection sumNumbers: Metaclass instanceSide.SequenceableCollectionwithIndexSelect:NSTONfromStreamWithComments:/ColorgreenColor asHexStringjPoint<ҪSequenceableCollectionsort Collectionsize+StringbeginsWith:caseSensitive:W% Collection,_DRunArraynewFrom:ҕ CollectionisEmpty>! HDTestReportrunAll Collection asDictionaryzSequenceableCollectionanyOne.Numberround:.NumberradiansToDegreeswPointxM KeyboardKeynamed: SequenceableCollection with:collect:֟TrueifTrue:}"SequenceableCollection findLast:ѝ Collection!findFirstInByteString:startingAt: |StringasValidSelectorSequenceableCollectionthird2 ByteArrayzipped!Number truncateTo: OrderedCollectionremoveDuplicates String substringszSequenceableCollectionbefore:SequenceableCollectionallButFirstDo: CollectionnegatedPointminwmInteger hexStringzString>߈ CharacterhexwObject->.Color colorFrom: Collection asByteArray  Collection\}{ Collectionunion:STON put:onStream:AyNumberrounded}WFalseifTrue:ASequenceableCollection do:without: CharacterisCurrencySymbolpOrderedCollectionreversedDate monthIndexfTrue&1SequenceableCollection from:to:put:_)String capitalizedE Metaclass classSide 1 Collection reciprocal Collection isNotEmptywIntegerdecimalDigitAt:m|SequenceableCollectionatLast:ifAbsent:_SequenceableCollectionindexOf:&| CollectionaddIfNotPresent:[SequenceableCollection withIndexDo: Collectionselect:thenDo: HDTestReportrunClasses:named: SequenceableCollectiondo: Character isFinalQuotepFalse&SpAbstractAdapterTesttestParametersyDatemonth. BlockClosure cull:cull: Q TestAsserterassert:description:resumable: ByteString isOctetString ProtoObject ifNotNil:.Stringkeywordsju Collection flattened!String wordBefore: Collection\\</F rNze( xm?G^: fd}+ lWnJva $i;CZ6 Ib4y'  :jF Yr] 'e7|?kV 2^0 u#O{B Ya3_x "; 9R .Z ,q> QjU-]Yc/ t7c|N*VmG#:Q}Y+p3 xJ &vR$iC6MyU'ltF "rN  e(A ?2 I! uQ dh+pBJa=;.ZEqMd'l>FD]9 e 7|.* =m0I \`i#h:  B nY5a3x&RiE\d6 {>U1 D]/ t"  5NA mX`2w: Q- @Y+Wp  _  1J &$= T\. o  s6{M)U'l "9eP|X*o2wI %u 8h  W  )B5aL$xT Rk.sE!d@-,1]H tP |g* zoAI`<h:,?-YDpLc#&Rk=iE \ 8 d6{>)  <Ul /Ht_"g9~A X 4`2Rjw:%QGDp[c5  z=T0\. s!M@lW_1 v e~P),X*oI%<hSB[- r5 zL(TkE!8dO{W)nvH$ 7P"g  (4`K#wS  j-rD Lcr?=0\G sO{fn@ H_; g9~,XCKwbj< D ,[ 7 c 5z=(kG  Zs ^!f8  }@W3_ v$LPCZb4`y<:S /[ - Yr   aL?kV ^0   \u 8}6O+W )Un1H $;gR~FLHookPrimitiveCluster%3? FLHookPrimitiveCluster:zPcL"_rH[1-@}S!)f<%b!4 Z0i?|R(exN$a ]3/lBh>{'d:#s\oEXkATFLHookPrimitiveClusterFLHookPrimitiveCluster&{testAddWithOccurrenceshour-testSmartDoubleQuoteSurroundsEscapesSelection testSorted testSampling1testPackageRemoval3testFailureCannotExtractTwoAssignmentsToTemporariestestPullUpAndCopyDowntestAlphaCompositing add:after:"testSuperclassOrderPreservingOrder Commander-Activators-ContextMenutestToDoOutsideTempNotInlined%testCopyNonEmptyWithoutAllNotIncludedjoiner(testHasNonDefaultValue_DefaultOverriddentestModifyMethodByChangingCodetestBigArrayWithExtraSpacestestImplicitEnvironment-testLogLocatorNumberOfTicksIsOkStartingAtZero testPrimAttestKeysAndValuesRemovetestUndeclareSlot Monticello-BackwardCompatibilitytestRemoveEmptyPackagesAndTags selectBocktestAddClassTagWithEmptyName*size/testInjectingExceptionHandlerIntoRunningProcessxatestSelectMethodsasNumbertestRemovingAClassWithExtension#testTwoCriticalsShouldWaitEachOthertestSharedPoolOfVarNamedtestWhileWithArg testFloatsisSpaceSeparatortestTheMetaclass$testSettingNodeIdentifierForRootNode$testLogLocatorSmallestIndexIsCorrecttestExternalStructWithArrayOtestRecategorizeClassWithMetaClassMethodsRegisterAllClassMethodsInTheNewPackagetest08addAfter classNameKeytestVersionsForMethodtestDynamicNametestAddTraitPatterntestNoRemoteMethodTemptestUpperLimitAthens-Examples"testMouseEnterEventIsNotDuplicated*testCanCreateLocatorFromStringWhenSamePath oldObjecttestRemoveClasstestMakePackagesDiffOnSameGraphtestPackagesChangedstreamContents:limitedTo: delimStringtestNoRemoteBlockReturn&testFailureNonExistantInstanceVariableassociationClasstestReturnTrueBytecodeItestPerformChangesWhenChangesBiggerThanUndoSizeExpectCorrectChangesUndone.testTrueIfTrueEvaluateBlockWithTempInsideBlocktestWaitMaxMillisecondsSpec2-Dialogs-TeststestMessageReceivertestWidenOnErroneousMethodtestIndexOfStartingAtIfAbsenttestRemoveTaggedClassestestDoubleClickTimeoutFromMorphtestSignedLongLongtestFailureMethodHasReferences)testBlockWithLiteralReturnsLastExpressiontestLongMultipleArgumentsCompression-TeststestValueWithReceivertestMoveMethodIntoArgumenttestChangeLayoutTypeFromByte testCreationSystem-Support-Tests testStderr runningMax:testEmptyBlockTwoArgumentsNewTools-Spotter-ProcessorsCalypso-NavigationModel-Tests!testAndWithLeftTrueEvaluatesRight testNoChangeInSuperclassDetected#testCanCreateHttpsRepositoryFromUrltestNumberOfHashIterationstestInlineBlockCollectionLR2testDeleteIfAbsenttestAtAllPutAllIntegertestHasNonDefaultArguments extraArgumenttestSelectedTabsAreNotBuild/testClassRepackagingShouldAnnounceClassModifiedupTo:testRaisedToErrorConditionstestAsSetWithEqualsElementstestAtIfPresentIfAbsenttest4BitColors7testDTTestCoverageResultTheSecondNodeSubResultsAreLeafs testModeltestThreeHitSameOne,testExistingClassWithClassSlotThenWeRemoveIttestInferiorWithFloattestClassNameMustBeSymbol testFlattenedtestDiffWithLinesRecordsDeletetestIncludeClassWithExtensionstestWritingOverflowwithLineEndings:testEntryReferences+testWindowLabelIsUpdatedAfterPackageRemovaloptionInlineToDotestMergingOverlappingRects!indexOfAnyOf:startingAt:ifAbsent:.testCastedTypedConstantIntegerHasConstantValuetestSkiptestIsDeprecatedlastElmGraphics-Canvas testSorting01testCompileCharactertestLocationsOfUnderlinestestRemoveMethodInClass-testClassDefFromLegacyStringHasSuperclassNametestNonResumableOutertestInt8)testFalseIfTrueIfFalseEvaluatesFalseBlocktestRepresentsClassOfScopetestFindCyclesOnetestAddProtocolAnnouncementtestEncompassingRectangletestHasSelector#testSingleLevelListWithItemSpawningatRandom:weighting:>testMoveMethodFromExtensionToClassicProtocolAnnounceRepackagedtestLazySlotCompiledtestExtentWithBordertestEscapeCharacterInNestedCasetestAutoLocatorIsDefaulttestAddSlotAndMigratetestSelectNoneThenCollectIceberg-Libgit-FiletreetestIsObjectLayouttest8BitDisplay!testFutureCollectSuccessOnSuccesstestAnchorIsAttachedToItsTargettestIndexOfStartingAttestUTF8EncoderRandomtestNotchBasictestShouldGetDirectDependenciestestPushInstanceVariabletestCallWithSelftestBold testCycle01;testIteratorOnACollectionWithTwoCollectReturnsCorrectValuestestSendMessagetestReshapeClassWithClassSlottestImplicitConversionFromClasstestLocalMethodstestScaleLinearColorstestRegisterClearRedosort:FreeTypeSettings testBitXor5testWritingStoredSettingNodesShouldNotCloseFileStream toString:testSignalWithTagtestSmartBackspacestripSeparatorstestProtectInstanceVariabletestIsNonspacingMark.testPushDownMethodThatReferencesPoolDictionarytestAllSelectorsAbovetestIsLetterModifierBaselineOfIceberg(test0FixtureCopyWithReplacementForSortedtestEmptyArgumentReturnsNiltestSplitBlockLinkIncompletetestIntoWorldTransferToNewGuy&testRetainBlankLinesBetweenStatements2 anElementtestEmbeddedUnorderedtestImplementorsMatchingtestReadsThisContextbluetestClassSideDoesNotShowPackagespacetestPackagesOfClassBtestUndoOperationAddsTheChangeToTheRedoCollectionInTheCorrectOrder+testFindStClassProcessorTestWithPartialText testAtEndtestVariableCanExtendPointergroupstestScaleExtension"testParagraphEnvironmentParagraph3.testClassDefinitionToolIsValidWhenClassContexttestReturnCoverageResult"testFutureAndThenFailsIfFirstFailstrimtestContinuationExample2htestEnvironmentWithCodeBlocktestInstallingWithAnEmptyTagtestAddWithKeyNotIntestFillInTheBlank NECompletion testStackAt4testMethodEditorToolIsValidWhenReferencingSameMethodtestCopyUpToEmptyJobs testShuffledtestGetPharoVersion testWithRB5testShiftDownShortStacktestBuildPragmaHeuristic?testSecondScriptShouldNotBeChildOfFirstWhenClosingOnTheSameLinetestLiteralEqualtestListTakesAssignedSpace sum:ifEmpty:BaselineOfQualityAssistant'testArrayedCollectionWithPoolDictionaryblacktestNumberOfDependentPackagetestWithRB10WithErrortestAddAfterLink7Calypso-SystemPlugins-InheritanceAnalysis-Queries-TestsRoassal-Shapes testPopulatetestCircumscribedCircletestAddEqualElementstestHextestMonospaceCreatesInnerText+testFailureInlineTemporaryReadBeforeWritten"testIndexOfSubCollectionStartingAt5testTraitWithClassTraitCompositionHasTraitCompositionRing-Core-Tests"testAddParameterThatReferencesSelftestReflectiveReadWritetestDefaultColortestLazyClassVarCompiledtestPresenterOpenAndClosetestIsEmptyFromEmptyClassScopetestArrayEvaluateWithBindingstestAssignArgumentVariabletestBind yesterday,testModifyingClassKeepsOrganizationOfMethodstestInitializeWithPackagestestHeaderWithItalicAthens-SVG-PathConvertertestSetMovieDirectortestClassRemovalWithClassAddedtestRevertOverrideMethodtestSubscriberClass,testFutureOnDoFailsOnFailingExceptionHandlertestIndexesArrayWithComposites testComponent$testShouldWarnWhenVariableReferenced testChangetestRemoveAllFoundIntestDragJenkinsTools-ExtraReports!testClassDoesNotDefineSetUpMethodtestInexactSqrttestIfNotEmpty testAdditiontestExampleBlockExternalArg5testFalseIfFalseReturnsBlockValueWithTempOutsideBlockisAlphaNumeric stopIndex testFileOutMultipleMethodRemoval,testCallbackInLoopUsingSubclassOfFFICallbacktestDefaultActiontestVisibleAreaTopLefttestMixedMethodtestSizeSignedIntEnumtestToDoWithCalculatedArguments0testHasEqualElementsOfIdenticalCollectionObjectstestProtocolOfSelector Regex-Core,testClassifyUnderExtensionFromTheSamePackagetestDeleteHistory testMetaData2testMoveClassInPackageWithExtensionsOnClassAndBacktestLongSingleArgument testOnErrorDo&testStringArgumentsAreReleasedIfNeededtestPrivateReplaceFromToNewTools-CodeCritiquestestCanConsumeLineBasic9testFutureFailureCallbackExecutesInSameLocalProcessRunnertestShouldAcceptIntegerreplace:testRevertToInContextinstructionStreamtestAddBeforeIndextestRemoveMethodtestEmptyListstestNoEmptyProtocols&testCannotDeployFailureTwiceIntoFuturetestUsingMethodsSuperRoassal-LayoutstestVmDirectorytestIncludesClasstestAtAllPutFailtestSimpleTableWithMoreLongRow#testInputFileOnOneLineWithJunkAfter+testSelectionIntervalNilUnselectsEverythingtestRelativeFileRecognized/testTypeCharacterWithoutResultsNarrowsSelectiontestParseError2 named:ifNone:testSendsSelectortestInlineMethod2 test12removetestReturnHasNoExtraSpaceInside testReferenceprintShowingDecimalPlaces:testUrlWithMicrodownParametersexampleLiteralArray testLastIndexOfIfAbsentDuplicate,testUnhandledExceptionShouldAllowToCatchHalttestContinuationExample3!testClassInstanceVariableAddition+testNewScopeFromASinglePackageAndItsClassestestFloatArrayPluginPrimitiveAt"testCanGetDaPackageFromAGivenClasstestCommentBeforeMessagetestSenderOfASelectorInBlock#testEscapeCharacterInNestedLinkNameyield:testRemoveMethodTransformreadtestPc testEscapetestFractionAsFloat2testMethodWithStyle*testRestoredBrowserInstanceWithQueryScopestestAt"testRevertingAllRedefinedInstancesHtestWorkerProcessInstancesAreCollectedAfterStartingAndStoppingWorkerPooltestMintestNewEnvironment AsciiCharsettestBlockAndContextSourceNode)Calypso-SystemPlugins-Deprecation-QueriestestFaultyUninstalledMethod testMapping0testSourceNodeExecutedWhenContextIsJustAtStartpctestChangingFormatKeepsMethodtestDataIsACollectionOfNumbersStestResolveConstantSelfOfExternalObjectShouldSetConstantFirstInstanceVariableLoadertestUTF8EncoderAuto+testFailurePushDownMethodOnNonAbstractClass testModelPushDownOnMetaclassSide testAtUpdate6testChangeInSharedVariablesShouldAnnounceClassModifiedtestDecreasedValueFrom#test0FixtureSubcollectionAccessTesttestWriteSlotNamedValue*Calypso-SystemPlugins-ClassScripts-Browser(testPriorEntriesFromNullReferenceIsEmptytestFailureVariableNotDefinedtestIsChildOfPath testAtAtPut fromStream:#testObservableSlotWorksAsNormalSlot)testOptimizedBlockWriteInNestedBlockCase3testCodeCreatesInnerText testTooLongBlockBodyWithArgumenttestPragmaTwoParamGtestRefersToLiteralsReturnsTrueWhenLiteralIsContainedInArrayOfLitteralstestKeywordOnMultipleLine2Refactoring-UI testAssignmentOfGlobalVarBinding$testPlaygroundWidenOnErroneousSource-testFileOutSingleMethodModificationOfProtocol testAtWrapPut testBuildsDefaultResultByDefaulttestIfNilIfNotNil0ArgClass&testToolsToRemoveWhenManyToolsToRemovetestGettingEnvironment=testRenameProtocolAsAnExtensionOfThePackageContainingTheClasstestSeenPackagesNametestPerformAddRemoveClassMethod readStreamDo:testAllReferencesTotestTokensInAsciitestExamplePrimitiveErrorCode testRecompiletestRenamePackageWithExtensionstestSearchPath2printOn:base:length:padded:Instrumentation anySatisfy:Collections-Sequenceable-TestsNewTools-Sindarin-CommandstestAddingClass testFactoryRottenTestsFinder-Tests minElementtestDottedMajorMinorPatch sortedCountstestAddIntructionsBeforetestImportAClasstestExampleSimpleBlockiVartestAtPathIfAbsentPuttestMultiPartAlternativetestAtOutOfBoundstestNormalSubclasserrorEmptyCollectionSpec2-Interactions testUpToEnd ReleaseTests crossProduct: testAccessors(testCompletionWithNoResultsShouldBeAtEndtestSumUpToLimit1)testGetRightLocatorWhenCreatingFromStringwriteStreamDo:testDefinitiontestCacheDectivationtestWatchVariablesWritesInClasstestInlineBlockCollectionLR3testClassSlotstestExtensionSelectors-testAndAnOrEnvironmentAndAnotherOrEnvironmenttestSetInstanceVariables testFirstBCOffsetWithQuickReturntestReadStreamDoNotFoundNSPerlinNoise2testParseEmptyTexttestCallReturningEnumerationtestExampleSimpleBlockArgument1relativeToReference:testInheritableVariabletestAddTagsToAClass testAddBefore;testRecategorizeClassRegisterTheClassMethodsInTheNewPackageRoassal-Animation-Teststest0FixtureConverAsSortedTest#testInvalidNameFollowedByAValideOne!testEscapeCharacterTwoConsecutive testSorting02 testWithRB10testMetaclassInstanceVariablestestSliderMouseDownMakesItDragtestOneHitTwicetestEscapeEncode testAftertestJoinArrayUsingChartest4ViolinsAnd2Clusterstest06addAftertestPatternCode testUnevenDo%testCreateAndUseDynamicCompilerPlugin\testReplaceKeywordTokenWithCaretInTheEndOfWordAfterCaretWithFollowingWordsReplacesEntireWord,testFalseIfFalseIfTrueReturnsFalseBlockValuewhotestNotTheSame accessMode$testBoldWrappedWithAccessAPIElements oldElementSystem-BasicCommandLineHandlerSpec2-MicrodownSystemCommands-PackageCommandselementAndIndexBlocktestNoRecursion position:testSubclassestestIncreasedValueFrom aCharactertestWeakSlotIsWeak/testLastBcOffsetForNodeWhenMappedPcsAreNotEmptytestLessThanMinusBtestRemoveMethodComingFromTraitDoesNotRemoveMethodFromTraitPackageoneReflectivity-Tools-TeststestSearchingStringtestResolveString,testNotNilIfNotNilWithArgumentEvaluatesBlock2testHeuristicBuilderForTwoHeuristicWrapsNonWrapperfoundNewTools-Scopes-TeststestNewLineAfterTemporariestestMoveMethodIntoClasstestDefinitionWithSlots>testFutureFallbackToHasSecondValueIfFirstFailsAndSecondSuccesstestStylerDefaulttestFirstNElementstestEmptyBlockReturnsNiltestBasicSizeNotOverwritten testInstallInSpecificEnvironmenttestIsNotDirectory aRectangle asDictionarytestYScaleIsCorrecttestCleanBlockClosure PerformMessageCommandLineHandlerallSentMessagestestBuilderTraitstestRemovePropertySlot2/testDoesApplyForMethodNodeInContextWithNilclassdayName4testFilterCompletionAfterFetchingShouldNarrowResultsofSize: testAsGLine(testAllClassPoolBindingAreClassVariablestestIsFormatOtheraddDays:testSignedShorttestNaNComparetestReplacementWithMaxLengthtestHeaderLevel6(testInitializeShouldOnlySeeNotHiddenFiletestFilterExtensions6testAnnouncementClassRemovedIsRaisedOnRemoveFromSystem!testNoChangeInSharedPoolsDetected"testExampleWhileWithTempNotInlined testIncludes$testAtPutBiggerNumberThrowsExceptiontestNonCodeChangeEventtestShouldShowCellLabelsIsTrue testReadsSelftestFaultyInstalledMethod+testSlotAdditionShouldAnnounceClassModifiedtestWidenOnComments beginsWith: testImportAMethodWithNoTimestamp testAtRandomtestCaseSensitivetestDurationMoreThanMaxTickstestProtocolRemovaltestAssignThisContextVariable testPlainPeektestSharedPool/testFinalizeValuesWhenLastChainContinuesAtFronttestLiteralSymbol testResizingXtestNotAffectedByChangeOfOverriddenMethodFromAnotherHierarchyWhenSameMethodExistsHereTootestDoItRequestorOptimizedtestPngDecodingColors16testRemovePackageWithBreakpointtestFailureAlreadyExistingName testMonospace copyEmptytestWhileTrueExecutesRightBlocktestMetaclassNametestTwoEventHandlersAreAttached%testFileOutMultipleMethodModification3testFutureSuccessCallbackExecutesInSameWorkerRunner+testFutureAndThenThenFailuresAreJustSkippedtestWithAllMissing?testPackageCommentToolIsNotValidWhenReferencingDifferentPackage testOpenOnce%testPassing2DoubleStructureInTheStackAthens-Cairo-Tests testWithRB4testCompileClassifiedtestIsObservableSlottestTwoViolinPlotsClusteredtestSpaceBeforePeriodtoptestExtractSetupExample2-testParsingAStyleIsNotAffectedByExistingClasstestZeroElementRectangletestUndefinedVariable allButLast testIfExiststestUnclosedStriketestsBeginsWithtestFocusRotationForwardtestThirtyTwoBitRegisterXor CodeImporttestSignedShortAtPutIntegerstestNoErrorCatchtestCanCreateBitBucketRepositoryFromUrlWithExplicitHostAndPort"testLinearLocatorNumberOfTicksIsOktestMultiPackageMergetestCartesianProductOfSizetestVariableCannotExtendWordtestUTF16EncoderWide1 isClassSidetestResolveType testLayoutIntestBadKernelArgumentGtestPeriodAtEndOfMethodWithMultipleElementArrayShouldNotHavePeriodAtEnd!testCreateTraitWithoutOtherTraitstestFigureWithBold anExponenttestUninstallCounteroptionInlineTimesRepeatBtestFillingWithTwoClassWhichInheriteSameTraitsAndTheirSuperclassestestMillisecondsToGo testStWritertestBuildLiteralArrayHeuristic?testServiceInstancesAreCollectedAfterStartingAndStoppingServicetestTraitRemoval'testInitializedClassVariableUpdateClasstestTrueOrAnythingReturnsTrueresettestPushConsArray2testExampleIfTrue previous:testStylerRedLabeltestNodeCoveragetestComplexSlotsCascadetestIsInRectanglecombinations:atATimeDo:$testPassingByParameterAStructInPharotestSchedulerTerminationlefttestDoubleRepeatedMerge!testFourBackQuotesOnMultipleLines testEmbeddedAnchorInTextAreDrawn#testPassingLongStructByReferenceInC%testComparisonWithAnotherKindOfResulttestFormatElementtestSmallIntegerLayout flatCollect:testPointerCannotExtendByte#testPoolVariableImplicitEnvironmenttestUnsignedLongLong4testBestNodeWithInvalidPlaygroundIncompleteMidSourcetestInstanceVariable difference: myElementtestMarkBlockPointBlocktestMultiPackageMerge3testIconNameFrom Network-UUID5testEditClassScopeRemovingClassAndBreakingFullPackage0testHeuristicBuilderForTwoHeuristicBuildsWrapper.testInitializationAllCheckBoxDictionarySetTrue1testDoesApplyForMethodNodeInContextWithSuperclass_testSpanColumnskipTo:y0testReplaceWithPatternCodetestSizeSignedInt8'testCanBeEnumeratedForGivenClassAndUserstdouttestDeclareInstVarBlocktestAccessingPackage isUppercase testSignalOfTheLowSpaceFromTheVMtestJumpOnBlockVariablestestAreasOutside2SettestUndoIfEmpty8testClassVariableDoesNotDuplicatesSubclassesOfSuperclasstestModelsSize lastIndexOf: Zinc-TestsbeginsWith:caseSensitive:isAllAlphaNumerics testIfNotNiltestDynamicVariable testSindarinSessionInstantiation testMultiline)testChangePlaceholderTextUpdatesPresentertestDotDotParenttestShiftUpShortStacktestUnsignedShorttestWeakClassIsWeakhex:testFinalizationWithOnFork:testRemoveUnusedTempsWhenOneUnusedTempsExpectTempIsRemovedtestNoExtraSpaceBetweenValue*testFourthByteArraysReturnTheCorrectValues testSetUptestStructWithArraytestAcceptEntryLogsItsSizetestEnvironmentWithBodytestNotInstantiableptestReplaceKeywordTokenFollowedByAssignmentWithCaretInTheEndOfWordAfterCaretWithFollowingWordsReplacesEntireWord testAddItem25testSettingEnvValueDuringRevertsValueAfterDuringBlocktestAcceptEntryLogsIttestComparisonOfFunctions?testActiveProcessFromProcesorShouldUseInstalledEffectiveProcess&testCanCreateFiletreeRepositoryFromUrltestWidenInsideBlock testThetatestSplitStringOnSubstring5testFromThreeMethodsWhenImplementorsCacheShouldBeUsedtestReservedIdentifiers%testBehaviorCommentChangeWithoutStamptestCollectThenSelectOnEmptytestwhenDocumentChangedDotoday"testProtocolRemovalOfTraitProtocol testExtension#testLazyClassVarReadReflectiveBlockyyyymmddtestSimpleMerge testNoChangeInClassSlotsDetectedCodeImport-Traits testSubtrees.testMetaclassInstanceVariableAdditionWithTraitsampletestAddingAnimationstestExtractOneArgWithMinustestWithWithWithWithWithMorphic-Widgets-Pluggable testAtPut testSetLabels#testOpenSpotterRefreshesPreviewOnce)testResolveConstantFalseShouldBeInt32Typetest16BitReversed testMinorAxistestWithIndexCollect!testJoinUsingLastOnArrayOfStrings2testItalicsAndNestedBoldsWithClosureAfterOpenBoldsfindBinaryIndex:ifNone:testWidenOnMultipleExpressions copyFrom:to:7testEnvironmentWiathArgsWithCorrespondingClassIsCreated.testWorkerProcessIsWorkingUntilAllTasksAreDone/testWrapStrategyShouldNotProduceDuplicateLabelsprintOn:delimiter:last:testLoadTwoObjects testAddCycleoptionInlineNone!testExtractDatasetFromSingleArraytestSelectedMethodEmptyClasstestSharedPoolNames testLayoutcommentstestOneArgumenttestJoinArrayUsingObjecttestTwoSpacesInsideArray"testExtractMethodThatNeedsArgument2testMarshallingSmalltalkStringReturnValueWithAlias&testOpenDefaultOnNonExistantFontFamilytestFips180Example3testTAddWithOccurrencestestIsBaselineName"testBorderDoUpdatesInvalidateShapetestIdentityIndexOfDuplicate&testFutureAndThenSuccessIfAndThenFails pieceBlocktestRenameTestMethod.testSelectsAbstractMethodWhichIsNotImplementedtestBreakDebugPointtestBreakpointOnTempWritesaStringtestLabeled03bisHasModel testReadInto testIsPoint"testPassing4IntStructureInTheStacktestMetaclassClassShift-ClassBuilder(testPerformCanExecutelongMethodWithTemps(testConvertingWithoutExistingBasisObjecttestBreakpointOnArgument testMaxSizetestPrimitiveNumber0testuFFIMethodSelectorLookupsMethodInSenderChaintestNormalClassHasFixedLayoutReflectivity-Tests testNthRootasTestSelectortestInjectIntotestExtractSetupExample4testPrimSubtract/testthisContext_conditionBlockProducerMethodASTtestDefaultPlotColorstestIncludesKey elementBlock testValuesDotestAreEmptyForUnusedAnnotationtestDefinitionWithClasstestComputeDensityCurveStep DrTests-TestCoverage-Tests-MockstestUnmatchedLiteralParenthesis!testDoubleArraysHaveCorrectLayouttestIncludedPackages testNextIntotestTranscriptPrintingMicrodown-RichTextPresenter?testWorkerPoolWorkersProcessesAreTerminatedAfterPoolsCollectiontestUnsigned4ByteIntegerstestTrueIfFalseReturnsNil selectBlock"testExampleMethodTempInNestedBlocktestConvertingToNewMetaLeveltestHasEqualElements findFirst:testVisibleAreaWithScaleJenkinsTools-CoretestSumUnsignedInt8testIsSpacingCombiningMarktestTerminateProcesses%test0FixtureCopyPartOfForMultipliness testContains.testInjectingExceptionHandlerFromProcessItselftestInitialButtonDownIsDisable9testBuildPresentationWithFailureShouldReturnCodePresentertestFirstSecondThirdtestNewBehaviortestLiteralIsInLiteralFrametestReadingFromContextexponent copyWithout: testAddTraittestReferenceDependencies+testForbidCreationOnScopeWithoutEnvironmenttestPointersToCycle+testExtractMethodThatMovesTemporaryVariable%testNoNewLineBetweenVariableAndIfTrue$testSearchingVeIncludesSaveAndSaveAsNetwork-KerneltestSubstractionifFalse:testAsSortedCollectioncollect:Collections-WeaktestPath$testMethodsToBeCheckedExceptSelectortestClassObsolete SUnit-Core'testEqualSignForSequenceableCollectionstestCompactClassTemplate nextToLasttestBuilderWithTraitstestParseBogus testGrouptestClassWithInheritedSlots lightnessRoassal-Chart-TeststestSequencedTimesRepeat testBasicHeadtestReplaceFromToWith testWhileFalseExecutesRightBlock:testMethodsThatHaveOnlyDifferentSelectorsShouldBeDifferent testAllSlotstestItalicWrappedElements!testAddInstVarNamedClassInterface grad:x:y:z: Rubric-TestshumanReadableSISizeOn: NewTools-Sindarin-Commands-TeststestSingleSlashtestRejectEmptytestShouldSavetestParseFunctionNoArgumentstestGifWriteReadInMemory0testFutureFirstCompleteOfFailsIfFirstFailsFaster#testCleanUnusedUnreferencedPackagesasValidSelectortestShouldAccepttestPrimValueWith.testAsIdentitySetWithoutIdentityEqualsElementstestUnresolvedValuetestTagsCollection$SystemCommands-PackageCommands-Testsr0testCreateAndChangeWithoutCommentDoesNotAnnounce testDumpStacktestNegativeZerotestThereAreTwoSettings testConsumedFetcherShouldBeAtEndKeymapping-Tests!testClassNameWithInvalidCharactercopyReplaceTokens:with:testAsNumberWithRadixtestAllUnresolvedtestTranslateBy\)testAcceptEntryLogsAverageTypedCharacters&testDontRetainBlankLinesBeforeComments)testCreationByCommaWithCompatibleArgument-testSearchForExactCaseInsensitiveStringSucess!indexOfAscii:inString:startingAt:,testFalseIfTrueIfFalseReturnsFalseBlockValueSpec2-Code-Diff-MorphicclasstestLayoutEquals#testTryingToModifyReadOnlyInstances6testUnhandledErrorWhenTwoHandlersPassOriginalException bytesCounttestWithIndexDotestAllSendersOfASelector findTokens:testCqsortWithByteArraytestFormatMultilineMessage=System-Installers-TeststestDeleteHistoryFromNodetestCompileInMetaclass testConditionBehaviorThisContexttestCheckingForEmptyAtestConfigureContextWithDoesNotUnderstandShouldMarkContextAsError&testTryingToModifyReadOnlySubInstancestestConvertingWithNewScope@testWorkerPoolDoesNotExceedPoolSizeWhenSchedulingTasksInParallel hsvSaturation-testExtractClassFromAssignmentExpectExtractedtestCreateNormalClassWithIV,testRedefiningInstanceUsingBlockWithArgument testTransformOneOfManyStatementstestInlineMethod49testUtf8CalloutShouldSendUtf8EncodedLiteralStringArgument#testCapacityFromAsOrderedCollectionRubric-SpecFindReplaceDialogtestIncludesIdentity>testTempAssignmentAndReturnWithTempReferenceExpectGotExtractedtestWidenOnSelftestEnumerationtestSuperiorToMinimumtestAddExtensionDependencies0testWhenAnnotationFailsCheckForForbiddenProperty)testUnmatchedLocalTempDeclarationInABlock@testWordsAwareIteratorFiltersByASequenceOfCamelCaseWithUppercasetestSelectAShapeShouldUnselecttestClassSideMethodWithImpactGtestuFFIMethodSelectorInNonMarkedContextDoesNotFindAMethodEnterSelectortestCmdCtrlLefttestSumUnsignedIntGraphics-TransformationstestPurePathIsRelativeFile aZeroArgBlockanObject testNegated"test0FixtureDictionaryRemovingTesttestPackageNametestLiteralArray testContentstest32BitDisplay!testFileOutSingleProtocolAddition testWithTop testNewMovietestOneArgumentWithGCtallies)testFourBackQuotesOnMultipleLinesWithTextasBittestWritingToContexttestHasCommenttestSelectHandlersCodeLoader$testFailureFindOcurrencesInHierarchyBaselineOfEqualstestHasDefaultClassLocalScopeExternalObjectinstanceVariable:class: testRoundingstrmatestVoidPointertestIsAListStar2 testBreakLinktestSplitBlockAnnotationtestThreeElementstestRechainNilValuetestCreationByParenttestDraggingModeLeft$InitializePackagesCommandLineHandlerMonticelloTonel-Core$testProtocolRemovalWithProtocolAddedtestRealizeWithAbstractSubclass-> association$testNextIntegerOfSizeSignedBigEndianIceberg%testMonitorAnnouncesUpdateWhenEnabledtestLineStrokeNewTools-MorphictestStepNewTools-Compression-Utils%testMathBlockCaptionContainsMonospaceisDecimalDigit:testPushThisProcesstestNodesForEachAndLAyouttestNextOrNilSuchThat"testProperConvertingProtocolIsUsed@testCancelCompletionInClassWithDynamicExtentDoesNotLogOtherClasstestCompileValue4testMakeClassAbstractAddsIsAbstractMethodToClassSidetestMicrodownSpelledCorrecttestHasProtocolWithRealProtocol8testMoveMethodFromExtensionToExtensionAnnounceRepackagedanimationClass"testCheckInputForInstallSubcommandtestAllNamedFromTo,testTransformTextPresenterDecoratorToSegmentxbtestChangingHierarchyprintStringHex testClassSlotDuplicationConflicttestTooLongArgumentFFIMethodRegistryBtestBuildPresentationWithDoesNotUndertandShouldReturnCodePresentertestCommentSimpletestGroupedUndo2 testsEndsWithatLast:MenuRegistration oldPositiontestAddSelectedSingleRulePi$testLineBetweenTemporariesAndCommenttestNoStepIntoQuickMethodtestPointerCannotExtendWordtestAllExistingProtocolsFor atAll:putAll:testIsInstanceSide testInstSizetestMoveToNodeWhenNodeIsNonInlinedAndEmbeddedInNonInlinedBlocktestUpdatingSelectionsOnUpdatetestResolveAbsoluteReferencetestContentsInsideSubFoldertestPrintString_onlyParamstestCartesianProductDo3ElementstestOneElementRectangletestRemovePropertytestPullUpInstVartestNowhereToMoveisDashPunctuation: testUTF16BacktestNextcctestTwoArguments6testPopularStringDoesReturnOnlyTwentyResultsForPackage testIsFaultyBaselineOfSpecCoretestShadowPseudoVariabletestSuperiorOrEqualstestFiveSpaceAroundBrackets#testClassAdditionWithCommentChanged!BaselineOfNewToolsDocumentBrowsertestModelAbstractClassVariabletestAddPackages testOnForkErrorOnSeparateProcesstestContention1NonInteractiveTranscript)testSindarinSessionAsSindarinDebugSession testIsLetter:testParseFunctionArrayWithPointerReturnTypeHasFunctionName testTerminatetestGet075QuantileInvertedCDFtest0FixtureTConvertTesttestIndexOfBug1602Object Text-Core#testLiteralReturnsAlwaysSameLiteral(testProperInstanceCreationProtocolIsUsedtestPathRelativeTotestsBeginsWithEmptys(testAccessingBlockArgumentOptimizedBlocktestDeleteAllChildrenproperty:collatedWith:BtestBlockWithASuperWithoutArgumentsSendHasCorrectNumberOfArgumentstestAlphaCompositing2 testRoundedGraphics-FontstestFailureMethodDoesNotExistkeyFromCharacterTable(testLastFilesForExtensionNegativeTestingtestAtAtIfAbsent testPushSelftestMySelector truncatedtestIncludesElementIsNotTherePropertySortFunctionpiece testVisibleAreaWTopLeftWithScaleCodeImport-Teststest0IndexAccessingTesttestAtAllIndexesPutMonticello-Tests.testFixedLocatorRaisesErrorWithEmptyCollectiontestExampleBlockExternal)testDictionaryConcatenationWithCommonKeys(testFailureBadDefaultValueForNewArgument"testMakeRelativeFrom2RelativePathstestAbstractClassVariable%testRetainBlankLinesBetweenStatementstestClassifyUnderUnclassified testCategoryexampleLiteralCharactertestFractionAsFloat!testNoTraditionalBinaryPrecedencetestMathBlockWithBadClosuretestDeclareTempAndPaste:testRefersToLiteralsReturnsTrueWhenLiteralIsGlobalVariabletestSourceCode asciiValue-testBlockParameterWhenTheLineWillNotBeTooLong reverseDo:asStringOn:delimiter:last:exampleLiteralByteArray&testWhileTrueExecutesLeftBlockWithTemp'testCreationByCommaWithMultipleContextstestCompileNumber}testIsLineSeparatortestContainsPathtestBasenameWithoutExtension testExample02=testRemoveClassUnregisterTheClassDefinedMethodsFromItsPackagetestOpenInWorldtestReadFromWithError-testTwoLastExpressionsOfASequenceGotExtracted"testModelReplaceMethodWithMoreArgs TaskIt-TeststestInitializetestModelRemoveUnusedVariableHtestAndMakeSureSuperSetupIsCalledAsFirstMessageInSetupMethodsOfTestCases delimiter asNewArraytestTooLongLineWithArgument!testNextVersionAlphabeticFilenametestDefaultResultText/testInjectingExceptionHandlerIntoProcessWithArgtestUnaryMessageComments%testAllInstanceVariablesDefiningClass testAtAll=testWordsAwareIteratorFiltersByASequenceOfCamelCaseMixingCase#testNilIfNotNilDoesNotEvaluateBlocktestPushConstantTwoBytecode#testAddAllFirstUnlessAlreadyPresenttestCanBeEnumeratedForGivenUser3testUnoptimisedValueSpecialSendsMessageCapturesSendtestXdgParseUserDirLineNotRoot%testTypedStringArgumentHasDefinedType testTabIndentisClosePunctuationasDigitsToPower:do: testRight isByteStringtestWhileWithTempNotInlinedtestDependentPackagesSizeeqv:testSkipAndBackdltestComplexDefinition Commander2-UItestExampleClassSide5testEqualSignIsTrueForEmptyButNonIdenticalCollections(testMutateObjectFirstInstVarWithManyVarstestIdentityIndexOfKeyIfAbsenttestMoveClassToTagNametestAstestCollisionstestCallbackAsFunction minimumLength!testMissingExpressionAfterAReturn testFillingWithClassAndItsTraitstestBasicDebug-testExtractToTemporaryForLastStatementInBlockindexOfAnyOf:ifAbsent:testChangingPcAssociatedToMethodOrSequenceNodeKeepsStackAsItIs testFullNametestValidateNewSelector testInversionfoo:bar:testMouseClickShiftClicktestDoItContextReadGlobaltestFailureIsDirectlyUsedtestGrandchildOfPath&testPackageOfClassMethodIsClassPackage!testFalseIfFalseReturnsBlockValue$testRemovedSelectorsWithLiteralArraytestFindBinaryIfNonetestIncludeSelectorOfClassNtestStatementNodeContainingReturnsStatementNodeThatContainsTheIdenticalSubtreetestPrintDoesNotUnderstand4testFalseIfFalseReturnsBlockValueWithTempInsideBlocktestAdoptInstanceBaselineOfMetacellotestJustClassName6testCanCreateFiletreeRepositoryFromUrlWithRelativePathtestPushDownUnusedClassVariable"testModelReplaceMethodWithLessArgstestBenchForExceptionMCGitBasedNetworkRepositorytestExtensionClassNames+testModelExtractMethodWithTemporaryAssignedtestAddingPackagetestMathBackslashSpec2-CommonWidgetstestSlotScopeParallelism.testBlockWithExternalTempReturnsLastExpressionAtestWorkerPoolInstancesAreCollectedAfterStartingAndStoppingWorkerSessionAccessModeResolver0testSimilarToAnnotationOfSameClassForSameContexttestIfNotNilIfNil1ArgmessagetestLn8testModelAbstractClassVariableOverridenMethodsInSubclass)testConvertingAsRestrictedByAnotherScope2test0FixtureDictionaryKeyAccesstestDoesNotUnderstandAccessorstestSortingWithUndefinedtestNotSpawingNewParagraphtestPlainExcursiontestOptimizedBlockReadInBlock testBlack8testBreakOnWriteTo)testDynamicLiteralArrayReturnsEqualsArraytestSerializeContextToFileNamed!testMaintainingSelectionsOnUpdatetestRejectThenDoOnEmptySettings-SystemtestPositionsDefaultHorizontalAtestWorkerInstancesAreCollectedAfterStartingAndStoppingWorkerPool,testTerminationDuringNestedUnwindWithReturn2 testChildrentestGetMeanOfDatasetSizeOnetestClassAddition$testUnregisterMCPackageKeepsRPackagetestGetStandardDeviation#testFailurePullUpVariableNotDefinedtestFileSystem subtractDate: testIsNiltestMultipleDocCommentstestFindOcurrencesInHierarchytestNestedLeveltestInstanceVar testPragmasBaselineOfShift)testDefaultCompletionIsNilIfNoGlobalClasstestEmtpyClassVariableStringtestAtIfAbsentPuttestRedefiningInstancetestAllRunningProcessestestEditClassScopeAddingClass&testSubstringFilterReturnsValidResultstestGoodSimulation*testApplyHeightChangesTheHeightOfTheWidgettestRemoveProtocolAnnouncement3testStructureOfPlainText testPercentaNumberRing-Definitions-Core-Tests"testBestNodeWithInvalidEmptySourcetestPairsCollect!testServiceExecutesTearDownOnStop&testPluginBasedJpegWriteReadUsingFiles)testAtGarbageCollectedValueRaisesNotFoundtestExtendingPackagesOfClasstestUnrestrictedClassVariable$testClampReturnsMaxIfNumberIsOverMax testCreateAs testIsMorphtestAllLocalCallsOntestMedianWithNumberstestOldBackOnPosition1testRemoveAllError testHasNextMetacello-Cypress)testSelectAllWithDoubleClickAfterLastLineisDigit:testSimpleFormattedCode>testNonDuplicatesRemoveDuplicatesResetReturnsWithoutDuplicatestestValidTraitComposition4 testsRsValuetestBreakLinkOnce+testClassRepackagedNotFiredAtAClassAddition"testShouldAcceptFloatWithoutMinMaxremoveDuplicatestestQuotestIndexOfWithDuplicates testVariableEnvironmentClassVarsflatCollect:as:testSignedLong>testClassCreationToolIsNotValidWhenReferencingDifferentPackagetestMessageArguments!testFailureModelExistingClassNametestJoinArrayUsingStringtestTestEnvironmentBehaviortestBasicStreamtestRetrievesActiveScopetestEmptyOnMultipleLines#Calypso-SystemPlugins-SUnit-Queries<=&testRehashDoesNotTransformAssociationsKeymapping-Tools-SpectestfindCycles collectionCollections-Native-TeststestMetaDataEatsOtherBlocks newFirstIndextestWhileFalseReturnsNiltestMethodPackageResolution testHashBlock;testChangingPcKeepsSameStateAndPushesCorrectElementsOnStacktestMergeIntoUnmodifiedImage readStreamtestSlotNamedIfFoundIfNonetestBinaryFormatParametertestCompileEmpty#testCreateClassWithTwoClassVariabletestNextVersionNumericFilenametestUsingConstJustInSameMethodtestBmpWriteReadUsingFilestestAssignmentDoesNotExist+testBlockParameterWhenTheLineWillBeTooLong2testPrimGreaterThantestBulkReadingtestResumablePasstestHistoryGreaterThanThreexy$testSimpleDefinitionPackageIsCorrecttokentestCulltestFailureNonExistantNameSystem-Identification$testMathBlockWithParametersWithBlankDrTests-CommentsToTeststestOrdinalScaleRangePointstestPushClassVariable at:putNext:+testWithRightDoesNotProduceInvalidRectangle aPrecision1testLogLocatorNumberOfTicksIsOkStartingAtNegativetestPackageOrganizer9testFutureSuccessCallbackExecutesInSameLocalProcessRunner'testBreakDebugPointOnClassVariableWrite with:collect:*testKeyAtNonexistantValueExecutesFailBlocktestCreatePlotWihtKernelDensitytestPrimGreaterOrEqualtestGcdtestSplitStringOnBlockperform:testZeroElementContainstestAddTagNamestestAccessRealValuesCommander2-UI-TestsTool-DependencyAnalyser-UI-Tab/testFFIMethodDelegatesWhenLookingForHasSelectortestSizeSignedLongWindows'testUntypedSelfArgumentHasUndefinedType6testKeepChangeWhenMethodModificationWithAbsentBehaviortestDeleteAllHistorytestCannotReturn.testBlockParameterOnTheMethodLineWhenMultilineTool-Finder-Tests swap:with:&testBuildVariableTempVariableHeuristic between:and:'testNextIntegerOfSizeSignedBigEndianPut anotherIndexMCGitHubRepository%testAnnotatedBlockWithListParserLogictestPrimitiveChangeClassTo Beacon-Core6testRefersToLiteralsReturnsTrueWhenLiteralIsByteString1testSycAddMessageArgumentCommandIsProperlyStoreOntestHeapBackwards(testImportAMethodWithSpacesInItsCategorytestClustersHorizontal$testOpenMenuCreatesCompletionContext Rectangleboolean8AtOffset:%testMethodAdditionWithProtocolChangedasBagtestBackWindowsAreFind put:onStream:testCreateBuilder/testAsOrderedCollectionReturnsOrderedCollectiontestRedundantMethodModificationtestAsLargerPowerOfTwosplit:nonEmptyString testIsObtuse namedColortestEnvironmentOfOrganization'testRenameProtocolAsAnnounceNewProtocoltestSuperiorOrEqualsWithFloattestSumSignedInt64'testNotVisibleMorphIsNotGettingAnExtenttestAllowDebugBrokenAnnotationstestBestNodeWithValidPlayground testReturnTopSystem-Platforms-Tests newLastIndex testStepOvertestBasedOnBasisObjecttestExtentWithBorderMintestTemporaryVariablesMethodtestEmptyBlockZeroArgumentstestOneSpaceIndenttestNewSubclasstestSelectDirectorytestAccessibleRealValues lastValue.testFixedLocatorDataIsOkWithCollectionTooLargebeBetween:and:'testLookingForStoreDiskReturnsDiskStoretestMaxLengthIsNegative testIsAcutetestUnixAbsolutePathName testBoldsAndCorrectNestedItalicstestOpenPackagesChoosertestComplexClassVariablesCascaetestAllMissing)testFailureWhenTemporaryReadBeforeWrittenEmbeddedFreeTypeNewTools-FindertestNewNamedMethodtestSizeUnsignedLongLongtestMaxMinValues testBehaviornewnewShouldNotCrashaColordoBodytestRotatedByAbout testHighBittestDelayWaitTimeoutCompleted#testConvertingWithNewCompositeScopetestAsStringWithCommastestDoNotUseNiceLabeltestMultiLogScaleInverttestSimpleIsNested testBitOrtestUnmatchedStringQuote#testGettingExistingClassNameBindingtestUnorderedListfromStringWithComments:testModelWithRawValues+testWaitTimeoutSecondsOnCompletionOnTimeout OSEnvironmenttestEphemeronClassIsEphemeron NumberParsertestResponsibilityEval*testInBlockArgumentPseudoVariableShadowingtestBeRecursivelyReadOnlyObjecttestForSecondstestBuilderClassNameRing-Definitions-Core testAddPool)testKeepBlockInMessageNotMutlilineNewLine testPosition testNesting,.testAddParameterThatReferencesInstanceVariabletestLocalVariabletestByteStringClassProfStef-Tests testClearFlag4testNotIncludeInstancesWhichAreNotActiveForGivenUsertestSignedInt8!testRecycleToolWhenValidInContexttestCommentStamptestNotifyDebugPointChangedtestCreateInstanceWithDatasettestVariableCanExtendVariabletestUnequalContenttestBlockArgument testDiagonalstestWidgetExists numericSuffixeventestKernelDensityEstimationBaselineOfTraitstestStubPackage,testEncompassingRectangleContainsBorderWidthtestAddClassTransformytestComposeResultTitle@testWhenAddingBookmarkOnIsolateBookmarksShouldBeAddToAllInstance Random-Tests&testSubstringSearchNonExistingSelectortestChainBehaviorPutChildspeciesForTransformtestFailureExistingPackagetestOpeningBrowserCursor*testWhenDeclaringMethodNotReturnAnnotationtestDistanceToisInsideRectangle:testNumberOfMethodstestLabeled03HasModel testMerge.testConfidenceIntervalMinIsLesserThanQuartile1testOpenFolder:testUntypedConstantNegativeIntegerArgumentHasConstantValue testNextPuttestAtAtputEffectivelyPutAValuetestEmptyClassWithMethods#testCannotRemoveUndefinedPackageTag+testNoNewLineForBeginingOfATooLongArgument2testObjectCentricObjectAPI(testMakeDependentPackagesDiffOnSameGraphtestUnsignedInt16testProtocolAdditionCtestPreconditionHasNoReferencesWithClassesWithReferencesBetweenThemtestSwitchSlotsAndMigratetestFindThisPackageWithCategoryNewTools-ScopestestRechainPreserveCutListRottenTestsFindertestVariableEnvironmentInstVars*testNewObjectCentricVariableBreakpointItem testAsIntegertestFormatCommentWithStatementtestStepToNonLocalReturn"testBindingsTableContainsMatchings+testSetUpToolIsNotValidWhenNotAClassContexttestUnregisterPackagetestPutNegativetestCategoriestestVisitHttpImagetestWithArgument#testCreatingFullTraitHasAllElementsbitXor:testBreakInContextNode5testConfigureContextWithErrorShouldMarkContextAsErrorcontentsbefore:ifAbsent:testExtractSetupExample8lowBit testStepUntiltestDisplayStringtestPrimPointXtestTraitAddition(testSmartBackspaceOutsideSmartCharacterstestLink'testUntypedTrueArgumentHasUndefinedTypetestPrimNewWith traitSource CodeExporttestSignatureOnMultipleLinestestDeclareGlobaltallytestUTF32EncoderExampleFromD99testCodePointStreams testReplace#testClassAdditionWithPackageChangedtestVeryDeepCopyWith testAsNumber testAddSlot*testRemoveClassesWithReferencesBetweenThemtestInlineMethodForSuperSend testDatabasetestWorkingDirectoryParenttestInsettingByNumberShouldWorktestCommentAfterMessages!testExampleSimpleBlockLocalNestedcollect:thenReject: SUnit-RulestestScaleLinearClamp$testExtractSimpleMethodAndOcurrencesPharoDocCommenttestTargetedToolsWhenOneContexttestArithmeticCoerciontestExamplePrimitiveModuleError surroundedBy:ifTrue:testRaisedToIntegerWithFloatstestReadingTooLargeExponentstestAccessorsAlreadyExisttestEscapeCharacterstoreStringHex$Calypso-SystemPlugins-Traits-BrowserthistestActiveHomeGeometry-Testsstderr testBasicGetnumberOfDigitstestSpaceBetweenTemporaries0testAssociationAtNonexistantKeyExecutesFailBlockClassAnnotationtestClassWithInstanceSideImpactalike: weekdayIndex"testRemovePropertySlotWithInstancenewSize isEmptyOrNil=testFindThisMethodWithFullClassDoesNotIncludeOtherClassMethodxMorphic-Widgets-TickListSystem-CommandLine-TextSupporttestSearchPath1testExactRaisedTo testIsWaitingtestDeprecateClassTransformtestHandlerContextg!testNoUnusedInstanceVariablesLefttestCopyUpToLastWithDuplicatetestAssignmentOfSelftestSimultaneousModification#testExtensionsAreNotDoneToCodeBlockReflectionMirrors-PrimitiveshometestIsPointerLayout9testRemoveAClassAndTheirSubclass2UsingAlimitedEnvironmentFormCanvas-CorestoreOn:testOneRemoveLasttestNoCoveragetestDependenciesnewAnnouncements-Core-TeststestStyleIsDisplayedtestUnclosedBoldtestParentParenttestAsColorrefPrimaryColorstestFutureExecutestestSintestIntegerReadsNotOkFromStream"testExampleWhileModificationBefore-testAcceptEntryLogsItsSourceInSeparateEntriessigntestOutlierValuestestLiteralVariableGlobaletestAccessingVariablesInBlocktestRemoveLeaf3not testNoPopuptestNodeDistancesTo testVariableEnvironmentAddRemovetestNewTraitExlusiontestForeignMethodModifiedtestInt32Aliases3testRemoveProtocolIfEmptyWithProtocolFromOtherClasstestInstallSimplePoint2testDoWhileFalse3testResolveConstantFalseShouldSetConstantZeroLoadertestBoundingBoxOfSubmorphsBaselineOfOSWindow listClass"testTargetInstanceGarbageCollectedBagtestdefineTrait asIntegertestMutualExclusiontestHash%testDifferenceWithNonNullIntersectiontestIncludesElementIsTherealtestComplexSlotstestIsFirstElementNilstarttestWrittenAfterClosedOvertestRemoveElementThatExiststestHeaderAPIToAccessText testRemoveLastNElementsNElements test22addAll testPopuptestRemoveVariableTransformCollections-Stack-Tests testEquals3testTransformationsCollectionexceptionBlocktestClassVariableInModelrepeat:,testSubscribeToChangeRaisesEventWithNewValueBaselineOfThreadedFFItestExampleSimpleBlockLocaltestCommentAPI(testBackWindowsAreFindWhenUsingSubstring testStepResettestSimpleTwoDelays testAsBag shuffleBy:testBehaviorNameChangeat:put:sYtestColorsOutIntestKeywordNoExtraSpacesBetweentestANDtest8Bit5testLogLocatorSmallestIndexIsCorrectAfterChangingBase Spec2-Dialogsdetect:ifNone:%testMetaclassInstanceVariableAdditiontestWorkerPoolStopStopsWorkersAtestDetectIfFoundIfNoneWhenSomethingIsFoundIgnoringTheFoundObject testInlineMethodWithMultipleArgstestYTickLabelstestSearchForPatternCodetestNewProcessWithSystem-OSEnvironmentstestMutateIVObjecttestExpressionReferencingSelf dictionarytestLinkItalicAPIToAccessTexttestClassWithCommentAndStamp testHasPragma#testKeyStrokeBackSpaceWithMaxLengthtestRemoveAtNotPresentcol Hiedra-Tests3testResetFilterWithNoFilterSetShouldNotAlterResultstestExampleNestedBlockScoping%testSubstringSearchNonExistingPackagetestByteArrayBaseMetacello-Gitlab*testDemoteToRPackageNamedMultilevelPackage testGreen8%testCopyForBehaviorDefinitionForClasstestReadStreamIfAbsenttestSumUnsignedLongMorphic-Widgets-Taskbar runningMin:testWithCollection findString:NewTools-Debugger-ExtensionstestTraceForDisabledHaltSystem-DependenciesTeststestHasShortcutKeytestCompileWithEnvironment!testTraitAdditionWithTraitRemoved3testCompilerUsingCleanBlockClosureHasBlockAsLiteraltestNotifyTempBreakpointHittestAliasWithMultipleAliasesSystem-ChangestestNewWithSizeIceberg-Metacello-IntegrationtestCreateSubclassOfArbitraryExpressionReturningNilThrowsError testTAddTwice%testFailureModelBadInitializationCodeBaselineOfMorphic7testFailureExtractMethodWhenGivenSourceIsNotInTheMethodtestAssignmenttestGrowtestSingleLowercaseLettertestAfterCriticalWaittestLinesOfCodeEmptyMethod&testHasReadonlyRequiredResultByDefault testTesting'testChangeFactoryIsCorrectlyInitializedoverlappingPairsCollect: intersection:Commander-Core-TeststestKeywordOnMultipleLine11Calypso-SystemQueries-Tests5testInferInstanceVariableNotUsedInInitializeHasNoTypetestUnarySymbolaSortBlockOrNilprintStringBase:testAddAfterIndex startIndex colorFrom:BaselineOfSpec2testToptestSingleTrait(testWhileFalseExecutesRightBlockWithTemp+testAddingExtensionMethodNotMatchingPackagetestCallWithAllConstParametertestTallyInstructions-testUnhandledExceptionShouldAllowToCatchErrorRing-ChunkImportertestAddIntructionstestAnnouncementtestReverseDoEmptytestLeakingSelectionsOnUpdatetestEmptyBlockOneArgumenttestPullUpReferencesInstVar testBinding isFraction"testWithExtensionReplacesExtensiontestInstructionstestSeenPackages/testAddProtocolAnnouncement2testInstallFromStream-testPullUpMethodWithCopyOverriddenMethodsDowntestInlineBlockCollectionSD1testRepeatExecutesBlocktestUnaryNoExtraSpacesAfterBaselineOfDisplaytestIsVariableBreakpoint$testCreateNormalClassWithSharedPools testComments(testStoreAndPopTemporaryVariableBytecodebadSimpleExpressionstestStepIntoReturnSelfMethodtestNestedStructureWithArraytestSteppingAQuickMethodtestIndentsForKeywords1#testOpenDefaultOnUnloadedFontFamily testDefaultbasename"testCaptureIfSignalledWhenSteppingJtestAddMethodInExtensionCategoryMatchingNameAddMethodToTheExtendingPackagetestResolveCompoundStringtestReadVariableNamedtestServeStaticFileRing-RuntimeSupportsuffixtestBecomeIdentityHashtestExpandedEmptyLayoutClass Text-Difftest2BitDisplay*testModelInsertClassFromBehaviorSuperclass testCycleFtestRealActiveProcessFromProcesorShouldIgnoreInstalledEffectiveProcesstestExtractAllKindstestLazySlotReadReflectiveBlocktestUTF16EncoderByteOrderMarktestMustInclude04 Athens-CairotestPrintString_oneParamtestTwoSingleParagraphs#testExtractWithRenamingOfParameters testComputeVerticesMultipleLinestestPrintPathOn:testStoredSettingsIsNiltestPresenterTakesRightHeight%humanReadableByteSizeStringPrecision:testKDESetBandwidthtestNameAccesstestNilIfNilEvaluatesBlock-testIteratorOnACollectionReturnsTheFirstValuetestNewVariableWordClasstestNewTextStream actionBlock isExtensiontestInitialCacheBuildBaselineOfSystemCommandsexampleLiteralWideSymbol+testButtonUpClickShouldModifiedPreviewFinalincludesSubstringAnywhere:Metacello-GitHub testSameModeltestIsLowercasetestKeywordOnTheSameLine decorationNewTools-DocumentBrowserSystem-Localization$testClassNameNodeHaveParentReference testFloattestTwoClassWithSameNametestFoci ReadStreamday#testNewBreakpointForVariableInClass&testShouldKeepHeadReferenceAfterReOpen!Calypso-SystemPlugins-FFI-QueriestestKeywordOnMultipleLine4cornertestQuoteBlock"testClassTraitIfTraitAlreadyExiststestObsoleteClassestestOptionAtifAbsent,testDeepCopyMethodNeedsToBeInCopyingProtocol!testPerformAddRemoveClassVariable(testDefinedBehaviorsOfUnresolvedPackagestestCanRemoveUnreferencedClasstestBreakOnWritetestMultipleSequenceFormatsw,testSystemPackageIsAnsweredWithLoadedPackagetestRemovePath shorterLengthDelayrenameInstanceVarible:to:in:testRemoveAllShadows!testNotSelectsNotOverriddenMethodtestInferiorToMaximum)testLogLocatorRaisesErrorWithNegativeData1testNotIncludeForbiddenClassesAsBrokenAnnotations digitValue:testCreateEphemeronClassNamedtestBeRecursivelyWritableObjectPragmaCollector DiskStore testSameRangetestSaveValuestest09addAftertestSkipDoesNotSkipReturn testExpiring testAuthortestSuperiorOrEqualkeytestAsSortFunction!testValidNameAndUndefinedVariable testSorting(testCreationForExplicitAnnotationContexttestExternalLinkWithMonospace,testUndeclaredReparationWithInstanceVariable'testClassModificationOfTraitComposition6testLinesOfCodeMultilineMethodCommentWithoutWhitespacetestCommentWithImpacttestIsDegenerate"testMathBlockWithBackslashCommandstestAddInstanceVariabletestStoreOnRoundTriptest1testRunSimulated testClose$testObjectCentricBreakOnceOnVariabletestNotifyDebugPointAdded8testDeprecatedAliasesAreRemovedByClassRemovalSpecialCasetestBehaviorLocalMethodsBaselineOfFreeTypeSTONCStyleCommentsSkipStreamtestPrimitiveStringtestBadInstantiationtestRemoveSharedVariable+testGlobalCounterReferenceAfterInstallationtestContinuedFractions2testJPGPPreviewerCanBeUsedOnParameterFileReferenceKeymapping-CoreTool-DependencyAnalyser-UIanyOne#testAdd3BoxPlotsReturnsClusterCharttestSiblingBlocksTempShadowingtestFutureZipFailsIfSecondFails!testUndeclaredReparationWithClass2testFalseIfFalseEvaluatesBlockWithTempOutsideBlockseed:testEqualsDictionary7testChangeInSuperclassShouldNotAnnounceSubclassModified!testProperUtilitiesProtocolIsUsedfooSystemCommands-MethodCommandstestExampleTempNamedPutCopying2testExpandedPointClass&testButtonDownClickWithoutSelectOptiontestExampleTwoSlotWithStatetestParseLineWithOneCharactertestChangeMovieDirectortestTwoCommentBlock*testTwoDifferentWordsStartingWithLowerCaseprintOn:showingDecimalPlaces:>>testisPoolVariabletestUndefinedLastUnary testLongLongstestSelectorsInProtocoltestNewForClass$testStopServiceStopsUnderlyingWorkertestIsAListDashSystemCommands-VariableCommands testResolve testSlotNamestestRemoveAfterClassRemoved(testTypedPointerVariableArgumentHasAritytestStepToReturnWithException testOneHitktestIsIntervaltestReadStreamNotFoundtestMinimizeWindowpos testObjectCentricWatchDebugPointtestDependantPackagestestHandlerFromAction%testNoNilAssignmentInInitializeMethod printFormat:1testChangingOtherPriorityRaiseDuringSemaphoreWaitCtestWeakClassWhenTraitCompositionChangedShouldAnnounceClassModifiedRegex-Core-TeststestSingleBlockWithArguments0testComparisonOfTwoAnnotationsWithDifferentClasstestObjectFormatInstSize testSlotstestTraitSequence testBlockTemptestNewPresenterIsNotBuilt:testBestNodeForClassVariableSelectionShouldBeClassSlotNodetestIsParallelTo testHasGroups3testMergingTwoStylesWithASameClassHasRightOnlyClass testClone-testNextNextShouldReturnSecondExpectedElementtestCompileFromText9testHeuristicBuilderForSingleHeuristicLastIsNullHeuristic(testStepNonTakenConditionalJumpBytecodestestInfiniteLoopat:at:ifAbsent:testallMethodsReadingSlottestHasSlotNamed7testFutureFailureCallbackIsCalledAfterFailureIsDeployed thisContext testSingleLevelList2WithNoIndent0testIntersectionTwoSimilarElementsInIntersectiontestNodetestLayoutNotEqualstestBasicProxyReadOnlytestRemoveLeaf1 testExample1"testMoveMethodIntoInstanceVariableKtestCompletionCompositionNextShouldReturnValuesOfSecondCompletionAfterFirsttestDuplicateClassError*testCaretInBetweenTwoWordsHasNoWordAtCaretDuration.testKeywordCommentsFormatCommentsWithStatementManifest-Tests testRemoveClassRemovesExtensions#testLookingHistoryQueryShowsResults testPointer instanceSidetestSignedInt16testFillingWithTwoSameClassestestIntersectionsWithPolygon Epicea-TestsGeneral-Rules-Tests testPrimAtPuttestInstanceVariablesStringtestJumpOnEndOfSourcetestIntersectionsWithSegmenttestAndSingleBitWithMinusOnetestLoad blockWithArgtestParseColorVariabletestNewCompiledMethodClasstestDoesNotUnderstand+testInitializedClassVariableReflectiveBlockRefactoring-UI-TeststestExampleIfNotNilArgtestByteArrayLong writeStream mySelectorwithoutQuotingtestSimultaneousRemovetestRelativeFromStringParenttestRegisteredPackagestestCascadingUnresolvedgcd: testExample2testAllDependentPackagesMetacello-Bitbucket testUTF8Back testHasSlot testReadTemporaryVariablesMethodtestBigReceiverInexactSqrt testInvalidtestNonCharacterNegative$testTypedFloatArgumentHasDefinedType0Calypso-SystemPlugins-DependencyAnalyser-Browser)testUninstallFromGarbageCollectedInstanceNewTools-Debugger-Commands isLowercaseaStream&testStoreAndPopLiteralVariableBytecode#testKeyCombinationOpensSearchWindow testDrag2$testSpecialLiteralsNotInLiteralFrame Clap-Tests$testRemoveSenderIntoCascaded3MessagetestSourceNodeExecutedtestInitialActivationCommander2-TeststestAbsolutePathtestSizeUnsignedInt16testIntoWorldCollapseOutOfWorldtestAddWithKeyAlreadyInCoverage Tool-Base&testBestNodeWithValidSelectorMidSource testBasicNewtestAdoptQuery testWithWith testIsRoot*testMathBlockWithParametersAndLatexComment'testTruncatedToSizeLargerThanCollectionadaptToPoint:andSend:testActivateReturnValuetestComputerUUIDtestGroupsOfAtATimeCollectdo:separatedBy:testReverseUnevenDotestReadInContext*testNextManyAfterLimitShouldStopAfterLimit+testCreateTraitUsingAnotherTraitCompositiontestExpandRectangleasSignedIntegertestCopyWithoutFirstOccuranceOftestSeveralArgumentstestFromStylesheetAdaptertestPostorderSelecttestLabeledOuterShapes05testAddWithPaddingHorizontaltestEmptyClasstestSetOfFloat7testCreateNewPackageWithConflictRaisesConflictExceptiontestAsLayoutFrame!testAddBoxPlotsAddPlotsInTheCharttestOverlappingFormat2testOverrideStoredCredentialsCollections-ArithmeticSystem-CommandLine dayOfWeekHtestReturnExtraSpacesInIndentWhenMultilneWithThreeSpacesAfterCaretSymbolRedShifttestSystemIntegritytestAddWithPaddingVertical testFirstPagewithIndexCollect:#testAddClassAnnounceClassRepackagedtestEventsDraggableCanvasminValue1testLogLocatorNumberOfTicksIsOkWithReversedDomainRing-OldChunkImportertestBuildThisContextHeuristic$testDiffIRecordsLastLineWhenMatchingdays!testProperFileInOutProtocolIsUsed1testResolveConstantNilShouldSetConstantNullLoadertestEmptyClassVariabletestformatComment9testExtractToTemporaryWithDuplicatesInEarlierNestedScopes to:by:do:testRemoveParametertestSharedPoolsCollection testArcTantestRenamePermuteArgs$SystemCommands-MessageCommands-Tests"testClassSideDefinitionIsClassSidebb:testNoNewLineBeforeCascade2CtestWhenOpenADirectoryShouldDisplayHisChildrenFilterByCurrentFiltertestBehaviorParentRenamedtestAllSatisfyEmptytestRemoveClassInstanceVariabletestall#testWorkerPoolDoesNotExceedPoolSize testNoRemoveAfterSubclassRemovedoptionInlineRepeatitestReplaceKeywordTokenFollowedByAssignmentWithCaretInTheMiddleOfWordWithFollowingWordsReplacesEntireWord)testExtractUsingExistingMethodRefactoringtestEnabledAffectWidget$testCopyReplaceAllWithManyOccurrence0testShouldGetPotentialMatchForUnimplementedCallstestHasNullContextByDefault%testIncludesIdentityBasicComportementtestBeta testMatrixSTON!Ring-Definitions-Monticello-TeststestIntegerParameters.testBlockWithFourArgumentReturnsLastExpression7testLinesOfCodeSingleLineMethodCommentWithoutWhitespacetestTranscriptDebugPoint testDeepCopytestJustTheArguments_NoDefault2testKeepChangeWhenMethodAdditionWithAbsentBehaviortestAllButLasttestSelfEvaluating'testComparisonOfFunctionsDefinedByBlocktestNestedLevel2Roassal-UML-Tests%Calypso-SystemTools-FullBrowser-Testsfoo::testMarshallingTrueArgument BlueShifttestBaseAndExtension#testFailureNewHierarchyExistingNametestMakeReslolvedtestArgumentsCommentstestNewLineBetweenStatementtestBlockExplicitReturn9testBroadenFilterAfterFetchCompletionShouldBroadenResultsNewTools-Finder-Tests$testFlatCollectAsWithEmptyCollectiontestFips180Example2!testWithWeirdValuesLineWithTicks2testRevertingRedefinedInstance"testSearchTextChangeSelectedShapestestKeywordOnMultipleLine8testPerformChangeCommenttestPrintLimitedString testNoTarget testIsEnabledtestEditClassOrPackageScopeRemovingClassAndBreakingFullPackage*testLogLocatorDefaultSmallestPowerIsMinus3 testClassInstanceVariableRemoval at:at:put:yourselfsplit$testDifferenceWithSeparateCollectiontestCopyUpToLastEmpty:testWindowShouldBeSaveBeforeShutDownSaveRootButHaveNotRootindextruetestExampleToDoOutsideTemptestVariableDoesNotExisttestAllButFirstNElements(testCollectionWithSingleElementReturnsIt testCachedtestMethodsReferencingClasstestAsPackageIfAbsenttestEmptySlotstestBreakpointInitializationtestArgumentAtargmaxtestDigitLengthtestHumanReadableSISizeString'testKeepBlockInMessageNotMultilineSpace)testFigureWithBracketInsteadOfParenthesestestBasicStatisticalMeasures testPrimSizetestPackagesDiffToDisplaytestPlotWithOneCollectiontestBoundsBug1035-testFutureExecutesByDefaultInGlobalWorkerPooltestWidenOnKeywordSelectortestSingleLevelList2testBoldsWithoutClosuretestHasNonDefaultValue_Default(testGTSpotterNewIsRemovedAfterAddingText+testSkipCanSkipReturnIfItIsNotTheLastReturn$testObjectCentricBreakpointsForModeltestMissingBlockArgumentNametestDeepLookuptestMaxLengthTruncatesText with:with:(testConvertingAsRestrictedByAnotherScope1testStepSendPopsArgumentsAndPushesResultBytecodes"testDetectIfFoundWhenNobodyIsFoundadaptToCollection:andSend: testAverageXtestSharedVariablestestDoubleOuterPasstestIfEmptyifNotEmptytestClassVariablesCollectionMtestIsAffectedByChangeOfSuperclassMethodWhichOverridesAnotherSuperclassMethod StrikeFont SmallInteger>testEditClassOrPackageScopeAddingClassAndCompletingFullPackagetestPrintShowingDecimalPlaces3testExampleSlotWithStatetestNotifyBreakpointRemovedtestSumUnsignedInt32testBehaviorRepackagedChangeaa:bb:+testSplitSortedCollectionOnSortedCollectiontestEmbeddedOrdered$testPackagesDiffToDisplayOnSameGraph testPredicatetestUnsigned2ByteIntegers*testFallbackReplaceFromToWithForWideString7testCollectionWithSingleManyElementsReturnsTheRequestedtestAnnotationIRtestNumberOfBoxes testAccessorInstanceVariableSlottestDoesNotDefineVariable&testConvertingWithoutAbsentBasisObject#testLineStartIsCorrectAfterNewLines&testInlineComponentIntoCascadedMessage testPassingByReferenceAStructInCtestSingleQuoteBlock#testNotNilIfNilDoesNotEvaluateBlockAthens-Balloon/testConfidenceIntervalMaxIsGreaterThanQuartile3testCanvasInspect7testFixedLocatorNumberOfTicksIsOkWithCollectionTooLargeCommander-Activators-TextViewtrueAlternativeBlocktestFormatBodyfalseAlternativeBlocktestPerformChanges Math-Operations-Extensions-TeststestVerifyPreconditionWhenRemoveLocallyDefinedInstanceVariable5testSingleLevelListStartingWithoutSpaceSplitParagraphSettings-GraphicstestNotNilIfNilReturnsReceiver Spec2-CoretestPrimitiveIndexed2&testExtractSetUpWorksWellInOtherMethodtestWatchVariableInClasstestDependentPackages testLongStack+testEnvironmentIsCreatedWhenTagDoesNotMatchtestGrowPreservesElementstestMultipleTraits1testCanRemoveUnreferencedClassWithFullEnvironmentbasenameWithoutExtension:runnertestFailurePullUpClassMethod doWithIndex:&testAllInstanceVariablesStartLowercasetestUntypedTrueArgumentIsTrueisClosePunctuation: testPopToptestRejectNoReject)testBehaviorDefinitionModifiedForCategory.testSingleLevelListSplitWithMultipleEmptyLinestestExternalLinktestKeepBlockInMessagetestAssignSuperVariabletestSimpleDefinitionWithSlotstestIsCompiledMethodLayouttestNoEmptyPackages&test0FixtureSequencedElementAccessTestifEmpty: testLabeled)testSettingCompletionFromEditorToTextAreasteptestWatchVariablesReadsInObject#testBlockArgumentIsArgumentVariabletestAnnotationPrintStringtestUsesUndeclaredsBaselineOfManifest atWrap:put: totalLength testModelstestMarkerShape1testClassDefFromLegacyStringHasSuperclassNameNode/testPoolVariableAccessibleInSubclassOfClassUser=testMergeWithFontDoNotRemovePredefinedFontWhenNoFontIsDefinedtestIsCasedLettertestMethodSourceNodeAtInitialPC1testGlobalCounterReferenceAfterRemovingFromMethod'testFutureReturnsAssociatedFutureObject+testInitializeCurrentPathTextInputShouldSettestAllMethods"test0FixtureRequirementsOfTAddTest testPragmaAttestErrorCodeNotFound/testFinalizationWithMultipleFinalizersPerObject badScannerFreeType-TeststestSelectionStoptestFailureClassIsNotMeta,testMouseMoveWithoutDraggingDoesNotStartDrag RTree-TeststestAddWatchSameNodeEpicea detectMin:,testExtractSetUpAndConvertTwoTempsToInstVarstestDefaultLowerWhiskertestRemoveRootChildrentestModelInlineRecursiveMethodtestMixingParametersCtestIsAbsoluteWindowsPathReturnsTrueWhenWindowsAbsolutePathProvidedtestItalicNestedInBoldWithSpacetestProtoObjecttestRedundantPackageTagAdditiontestRegisterSubRegister testAllSeentestRepeatedMerge%testPresenterPlaceholderIsSetInWidgettestClosureRestarttestInitialMethodVersiontestAPIMetacello-TestsReferencetestTerminationDuringUnwindtestNetworkPathWithParents,testUniqueClassInDefinedClassesUsingAddClasstestRelativePrintStringtestBreakOnReadTo#test0FixtureDictionaryElementAccess"testModelReplaceMethodWithSameArgsHeuristicCompletion-Tests!testExampleTempNamedPutTempVectortestWaitTimeDuration testCreateVariableWordClassNamedtestIfNotNilIfNil4testButtonDownClickShouldSelectionIndexBeDecrementedelemtestCenterEmptytestSignatureWithoutArgument#testMissingArgumentAfterAMessageKey testParagraph testAsArray0testVeryDeepCopyMethodNeedsToBeInCopyingProtocol&testUnresolvedClassGroupRolePropertiestestAbstractArchitectures(testWhenCanvasScaleChangedUpdatesShadows2testResolveConstantSelfStringInStrictResolverFails testUnhandledErrorWhenNoHandlers3testCaretInTheEndOfSecondWordHasSecondWordUpToCarettestDraggingModifiesValuetestUnclosedMath8testUncorrectJSONMetaDataProducesDictionaryWithContents3#testFutureFallbackToFailsIfBothFailtestRemoveZero.testCreateAndChangeWithCommentDoesAnnounceBothtestReferenceDependenciesFromtestMatchesChangedtestRemoveMethodWithBreakpoint testColumnstestRemoveOneElement-testFutureIsFinishedIfValueWasAlreadyDeployed/testBlockWithThreeArgumentReturnsLastExpressiontestUnwindFromForeignProcesstest0FixtureConcatenationTest*testTrueIfFalseIfTrueReturnsTrueBlockValueNumberParser-Tests%testNoOutgoingDependenciesAfterTarjan'testResolveConstantIntegerShouldBeInt32testKeywordCommentstestDetectEncoding?testFutureSuccessCallbackIsNotCalledIfFailureWasAlreadyDeployedtestDefinedBehaviorsCollection$NewTools-RewriterTools-Backend-TeststestAddBeforeLink#testSingleParagraphWithIndentedTexttestInitializeQueueWithtestBlockWithTempsSourceNodetestSelectedTabsWithoutContexttestAddNewElementIncrementsSizetestJumpOnNoFurtherStatementstestAndEnvironmenttestLinesOfCodeMultilineCommenttestSelectIsNotShallowCopytestCopyWithoutIndex testMoveTo&testFigureWithParameters_withoutQuotes2testUtf8CalloutShouldSendUtf8EncodedStringArgumenttestIsMathSymboltestDefaultImage includesAny:testCannotLoadtestVisibilityWithBlock compare:with:)testUnresolvedClassGroupCreatorProperties%testOnForkErrorTakesLessThanOneSecondtestConvencienceMethodsstemAndNumericSuffixtestRemoveClassInTagRoassal-Shapes-TeststestUntypedNullArgumentIsNULL testOneGrouptestEnvironmenttestOverlappingFormat testEventstestContainsLocatortestFindJPGPreviewertestPopupSimpletestOpentestRequestResponse#testLayoutHeightTakesAllSpaceNeeded1testRemoveSelectorDoesNotAnnounceRecategorizationBaselineOfReflectionMirrorstestWithoutTicksAtestFailureRaisesRBRefactoringErrorWhenRemovingNonEmptySuperclasstestClickFromMorph#testAddProtocolAnnouncedOnlyInTraittestAccessStrategytestEnsureClassNamedtestJumpOnErroneousMethodtestFailureBadSelector testHasChangedForPackageItemDifftestPrintPaddedWithtestAnnotationBindingremove:Clap-Commands-PharotestParseFieldsStructurewith:with:with:with:testIncomingAndOutgoingShapes.testColumnNotHomogeneousDiferentRowsAndColumnstestAsIntegerPoint3testDuplicatedInstanceVariableInSuperclassMetaclass"testRemoveBreakpointWithRemoveFrom Tool-DifftestIntersectionsWithRaytest1BitDisplaytestNoUtilsMethodstestCopyEmptyWithouttestUpTotestIsInRectangleIsInsidetestStructureOfBoldSimpleText Athens-TexttestSerializeStackFromContexttestAnnotationsWithoutClosuretestBinaryNoExtraSpacesBetweentestUTF32EncoderExampleFromD100)testHasProtocolWithProtocolFromOtherClass/testBroaderFilterCompletionShouldBroadenResultsCollectionIsEmptyim&testFillingWithOnlyClassWhichHasTraitstestShowMoreRecentMethodVersiontestFailureNonExistantSelector4testGlobalCounterReferenceAfterUninstallInstallationtestIsUppercaseAST-Core-TeststestBackwardCompatibility4testLoadNotFoundImagetestResolveabilitytestPrintStringAll/testBindingsWithUppercaseNameDoOverwriteGlobals#testMutateByteArrayUsingDoubleAtPuttestInclusion2testAddSharedPooltestGrowDoublesCapacitytestTraitNoSlotsNoUsetestWhileTrueExecutesLeftBlocktestFourBackQuotes$Calypso-SystemPlugins-Critic-Queries&testCannotStartTwoServicesWithSameNametestFailureMethodAlreadyDefinederrorSubscriptBounds:Rubric-StylingtestSimpleClassVariablestestDeepMultipleLookuptestIntegerPaddingtestIconProvidertestBasicCollect*testNotAffectedByChangeOfNotAbstractMethod testAtLeasttestVariableByteClassIsBytestestWindowCreationAndDeletion testOnFork testAnchorIsAttachedToItsTarget2testEnumerateShouldFetchextractBlock2InTemp testExamplestestGlobalVariable!testCreateWithCommentDoesAnnouncetestMigrateClassVar testAtPintestDontKeepBlockInMessage2 testIsDigit testRemoveInstVarNamedWithTrait2testSaveOneValue%testExtractTwoArgsWithAndWithoutMinus testKeysDo,testChangingASharedPoolUpdatesCorrectlyUserstestStreamContentstestWithNullElementtestOutgoingConnectionsOf%testEnsurePackageManagesDifferentCasetestIsExtensiontestHighlightAllShapestestBoundaryContainsCtestBuildSelectorStringWithPermuteMapAndNewArgumentsWhenNoArgumentsBaselineOfCommander;testIsAffectedByChangeOfAbstractMethodWhichIsNotImplementedtestStylerRedTickInCharttestUrl testTruncatedtestToDoInsideTemptestPushTempTemp3testSkipToPcDoesNotLoopWhenAimedPcIsBeforeCurrentPctestHomeGoesToStartOfLinetestOneGBAllocationtestMustInclude02testClassSideWithTraitstestSuccessorstestMoveToNodeRaisesErrorWhenNodeIsNotIdenticalToANodeInMethod joinUsing:testAssignmentVariableNametestSumNumberItemsWithoutBlock$testOrWithLeftTrueShortcircuitsRight/testExecutionOfWrongFFIMethodShouldRaiseAnError!testIntersectionsWithVerticalLinetestInt16Aliases testLineStartIsInitializedToZerotestAsCommaStringEmptyThreadedFFI-Graphics-ExtensionstestMessageSelectortestNoUncategorizedMethods replacementtestNewVariableBreakpointItem testRemoveAfterSuperclassRemoved testBehavior$testStructureHasCorrectOffsets64bitstestVersionNumberForExtension withIndexDo:testFromStringtestSelectsOverrideMethodtestNewLineAfterCommentNewTools-Playground-TeststestExtractDatasetFromValuetestThirtyTwoBitRegisterAndtestAddMovieDirectorInvalidtestWithNullElementWithFixedtestMissingExpressiontestErrorNonCorrectImagestrtestWriteAndReadBooleancurrenttestModelAddClassVariabletestIfNotNil1ArgtestBoldAPIToAccessTextkeywordsStrict testPrimNexttestDensityPlotDefaultValuestestCallWithObjectCreation STON-CoreItestStringEncodingWithMandatoryEncodingWithSpecifiedEncodingShouldNotFailregisteredColorNamesPolymorph-WidgetstestEmptyArray%testSettingNodeIdentifierForChildNodetestRelativeTotestWhileModificationBeforetestCannotDeployTwiceIntoFuture>testRemoveAllExtensionMethodsRemoveTheClassFromExtendedClassesKernel-CodeModel Association!testMonospacesWithDoubleBackSlashtestSameCommentDoesNotAnnouncetestNotReadInMethod@testThatThereAreNoSelectorsRemainingThatAreSentButNotImplementedtestTanCaseSensitiveOrder removeAll"testCreateVariableByteClassWithAlltestEnsureASpace2MonticelloTonel-FileSystemtestRhstestCopyFromToHermestest0FixtureDictionaryIncludes'testMethodModificationWithMethodRemovedpermutationsStartingAt:do:(testEditClassOrPackageScopeRemovingClasstestExtractSetUptestBuildDiffFor1testFutureFlatCollectSuccessOnMappedFutureSuccesstestEndClosesCompletionContext testReject&testLinesOfCodeSingleLineMethodComment'testAsNumberNegatedWithoutDecimalPoint2testSqrt%testMutateWideSymbolUsingPrivateAtPutnewPagetestRemoveTraittestDefinedClassIsUndefinedMorphic-Widgets-FastTable-Tests testLayoutsval!testConvertingWithNewBasisObjectstestIntersectionsWithPointtestCountBehaviorOtestMultipleTempAssignmentWithOneReferencedAfterExtractedCodeExpectGotExtractedtestFromTempVariabletestDoItRequestorEvalError7testFutureFailureCallbackExecutesInSameNewProcessRunner*testAnnotatedBlockOnTwoLinesWithFormattingtestCreateImmediateClassWithAlldoBlocktestNewLineBeforeCascade2testCreateNormalClassSuperClass milliSeconds+testSettingTextManuallyClearsTheUndoManagertestMethodDefinitiontest4BitReversedtestBasicSpaceIndenttestDoItContextReadIvartestPointersToseventhtestNewCommentRtestNextManyAfterFirstSubfetcherShouldReturnCollectionWithSecondSubfetcherElementstestFailureModelInvalidSubclassLtestRemoveClassUnregisterTheClassExtensionMethodsFromTheCorrespondingPackage6testSpaceAtTheEndOfFirstLineWhenMultilineWithArgumentstestWriteAndReadCompiledtestFindPNGPreviewertestMarshallingStringArgumenttestFileNameForContexttestInvalidPragmatestHasCommentstestOneElementtestMethodArgumentasDigitsAt:in:do:testNameWithDelimitertestHasNonDefaultValue.testNotSelectsAbstractMethodWhichIsImplementedtestNotSelectsNotAbstractMethodtestMicrodownImporttestConcatenationtestPathConsumptiontestParseFunctiontestConstructionUsingWithtestZeroElement-testStatementNodeContainingWhenNodeIsNotInAST testAstScopetestLabelsLeftPosition readWritetestCreateFromStringtestParentResolution#testMultipleDocCommentsInOneComment passArray"testNoUnusedTemporaryVariablesLeft-testSimpleTableWithFormattingWithSomeElements,testSubscribeToUnexistentPropertyRaisesErrortestEvaluateOnErrorResume0testTranscriptPrintingWithOpenedTranscriptExists testTypedVariableArgumentHasTypetestBehaviortNamedasSet r:g:b:alpha:testNotEnvironmenttestMultiScheduletestForbiddenProcesses newFromArray:testDefaultWithValuetestNextPutAllStartingAttest0FixtureRemoveByIndexTestKtestCanRemoveUnreferencedClassUsingLimitedEnvironmentButReferencedElsewheretestHidePresenterHidesWidgettestReturnNilBytecodetestFirstTagWithDelimitertestInvalidVariableNametestAsSortedArray"testServiceIsExecutedMultipleTimestestBuildVariableHeuristic.testTypedConstantIntegerArgumentHasDefinedType,testCompileMethodAnnounceAdditionOnlyInTraittestCopyNonEmpty"testTwoComplementBitLogicWithCarry!NewTools-Scopes-Resources-C-Tests'testBuildVariableClassVariableHeuristicMtestTraitExplicitRequirementMethodsMustBeImplementedInTheClassOrInASuperclass$testIsOfflineTrueAndResourceNotFound0testHeuristicBuilderForTwoHeuristicNextIsWrappercloseTo:precision:.testBlockWithFiveArgumentReturnsLastExpression timesRepeat: testContextAt*testDynamicLiteralArrayIsNotInLiteralFramespecies%testBroadenFilterShouldResetTheFilterQtestAsFileLocatorOrReferenceReturnsAReferenceWhenStringDoesNotReferToAKnownOrigintestRelativeToReferencetestPackageNamedIfAbsenttestPrintStringHex(testTraitAdditionWithTraitAlreadyRemovedtestScanAllSystemEnabled testFutureAndThenExecutesInOrderNewTools-SettingsBrowser-TestsFile%testNextNameForExtensionBrokenPattern!Calypso-SystemPlugins-FFI-BrowsertestTraitAliastestOrdinalScalereplaceAll:with:atAll:testSplitArrayOnElement'testArrayEvaluateWithBindingsReadGlobal1testIdentityKeyAtNonExistantValueReturnsFailBlock/testNextPcAnswerNextBytecodePcInCaseOfExtensiontestSelectThenDo1testRemoveNonLocalInstanceVariableProducesAnErrorRoassal-Interaction"testNestedBlocksRemoteInBlockCase2*testWordsAwareIteratorFiltersByASingleWordtestExtensionMethodstestCompileAll(testUntypedFalseArgumentHasUndefinedTypetestModifiedReturntestDefinitionWithComplexSlottestSizeLongLongtestAddTraitSettingPackageTagtestCreationFromBytes1testPushActiveContextBytecodetestMethodWithHaltRemoval&testRemoveAfterClassWithTempVarRemoved testReentrantBlockOldEnvironment!testHandlingWithSeveralExclusionstestMinMaxValuetestUTF8IllegalInputtestNotYetImplementedOnStringtestBasicGetWidetestResponsibility%testSelectorStartingFromArgumentsSizetestDoublePragmatestSetWithNilItemsIsHealthy*testForbidCreationOnScopeWhichNotSupportIt/testFutureFallbackToHasFirstValueIfFirstSuccess DrTests-TeststestCallWithObjectParametertestOneNewLinesAfterSignaturetestClassVariable+testBeHomogeneousWorksWhenContractingWindowxinThreadedFFI-UFFI-TeststestKeywordFormatReceiver3testToDoWithTempInBlocktestCanExecuteOnTemporaryNodetestWithTemporariesSelectedtestAllCallsOntestAlphaCodingTool-ImageCleanerexampleLiteralBoxedFloat classNametestCallbackInLoop,testColumnNotHomogeneousPairedRowsAndColumns isCasedLetter testCeilingnewFromKeys:andValues:%testRedundantBehaviorRepackagedChangeItestPeriodAtEndOfMethodWithMultipleElementArrayShouldNotHavePointAtTheEnd7testUncorrectJSONMetaDataProducesDictionaryWithContents(testAllDependentPackagesFromSeenPackagestestEnsureDirectory testCallgraphtestSizeInMemoryLargeInstancesBaselineOfSindarin"Collections-DoubleLinkedList-TeststestCheckIfEmpty%testSixtyFourBitRegisterLeftRotateBy3$testKeepBlockInMessageMutlilineSpacetestTypedTrueArgumentIsTruetestSizeSignedInt32testChildOfPath2testPackageOfNonExtensionMethodIsPackageOfTheClasstestUnequalSizetestIsReferencedtestLeftTopAlignedtestHorizontaltestDegreeNumbertestSystemVersion#testNextVersionAlphanumericFilenameFileSystem-Core-TeststestPipeEscape4testFailurePullUpWithSuperSendThatCannotBeCopiedDowntestFlatCollect3#testConvertingWithExtraBasisObjectstestNoChangeOfMetaclassDetectedtestLike testNotEmpty,Calypso-SystemQueries-Tests-PWithSingleClasstestScheduleExecutesRoassal-Inspector-TeststestLabeledOuterShapes01testSpacesInsideParenthesestestGpsExample2testSuppressInform testUniontestPrimitiveStringModuletestComposePromptWithString testCollect2#testTerminationDuringNestedUnwindS2WebBrowser-CoretestIsExecutedFromEmptyScope@testBestNodeWithInvalidPlaygroundIncompleteMidSourceThenBrackets$testIsTerminatedAfterSelfTerminationtestEightNeighbors8testUncorrectJSONMetaDataProducesDictionaryWithContents2testExpandedProtoObjecttestSetIsReadOnlyFailuretestModelWithCollectedData!testDisableDuringWithInterruptiontestRemoveTestSlotbitAnd: testPrimNew&testBlockWithTempReturnsLastExpression testAddOne testAnnounceQueryEndedIsSentOnce/testConvertingToAnotherScopeClassShouldKeepNametestPredecessorsextestVersionIsCompatibletestPullUpMethodWithSharedPooltestIncludesMethod)testCompileClassifiedWithProtocolInstance]or:testAsPackageWithErrorselectEveryFirst#testAllInstanceVariablesOwningClass#testExampleTwoBooleanSlotsRemoveOnetestNoZoomToFitOnExtendChanged-testFirstBcOffsetForNodeWhenMappedPcsAreEmpty"testExtraIndentationWhenMultiline3testIfNotNilIfNil1ArgAsVartestReadStreamDotestChildDirectories%testDetectIfFoundWhenSomethingIsFoundexampleLiteralFloattestFindCloseEnoughMethod)testAssociationsWithGarbageCollectedValue!testWorkerRunsAlwaysInSameProcesstest0FixtureSetAritmeticTest-testClassAdditionWithInstanceVariablesChangedtest8BitColorsNewTools-FileBrowser-TeststestSyntaxError6testAcceptTwoEntriesAtDifferentIndexLogsSeparateCounts testEqualstestUTF8EncoderWidetestKeywordFormatParameter"testDontFormatCommentWithStatementtestAsIdentitySettestPushConstantOneBytecodetestSortingChainedtestMergingTwoRectangleseurotestDeleteAllWindow&testAddAndRemoveInstVarNamedWithTrait2 testSizeSizeT#testTerminationDuringNestedUnwindR1test6ktestSumSignedInt8splittertestReceiverDoesNotExisttestLineAtCursorPositiontestAreasOutside1alphatestValueWithReceiverArguments isFinalQuote isSymbol:testPrintingTallytestWidenOnEndOfBlocktestFutureExecutesConcurrentlyStdiotestChangeTargetInstancetestFormatArgumenttestIntersectiontestAnonymousSubclasstestInlineComponentMethodMaxdigitBtestVariableByteClassWithTraitCreatedShouldntAnnounceClassModified testRotatedBy6testCallbackInSingleFunctionUsingSubclassOfFFICallbacktestAllBreakpointsForModeltestAllByteEncoderDomainsBaselineOfColorPickertestFromTwoMethods0testRenamePackageAlsoRenameAllExtensionProtocolsMetacello-Base)Calypso-SystemPlugins-Deprecation-Browserremove:ifAbsent: testAsForm%testKeyClassesArePresentInStartupListtestCreateBuilderWithNilBaselineOfRoassalBaselineOfSUnittestExpressionNoAssociation2KtestVariableByteClassWhenTraitCompositionChangedShouldAnnounceClassModifiedtestStoredSettingstestDescriptionTextSpec2-Backend-Tests testThree%testClassModificationWithClassRemoved allButLastDo:Settings-Polymorphremove:inMethod:forClass:$test0FixturePutOneOrMoreElementsTesttestCananonicalizetestCoveragePercentForMock)testTypedStringSelfArgumentHasDefinedType9testHandlingWithSeveralExclusionsAndExceptionSetsHandling'testBestNodeWithValidPostionOnMethodEndtestSemaphoreTimeouttestSingleParagraph2testPackageOfNonExtensionMethodIsPackageOfTheTrait6testCanStillExecuteWhenAimedNodePcIsBeforeInAnyContexttestNoRemoteBlockTemptestToDoOutsideTemp nanoSecondtestBuilderSharedVariablestestAncestorMerge6testCaretInTheMiddleOfSecondWordHasSecondWordUpToCarettestCommentBasicFormat#testTruncatedToSizeSameAsCollectionraisedToInteger: testNewTraittestNextPutAllEmpty testObsolete'testMethodRemovalWithMethodAlreadyAdded$testRemoveSenderIntoCascaded2MessagetestSelectFiletestBinaryNoExtraSpacesBeforetestArgumentNamedIfNone"Tool-DependencyAnalyser-Tests-DataTaskIttestColorsFileOutInKernel-ExtraUtils perform:with: testExample)testRegisterPackageTagConflictWithPackagetestIsRegExpValid"testExtraIndentationWhenMultiline2$testOFixtureReplacementSequencedTesttestHasZeroPriorityByDefault#testTraitUsersAfterMetaclassReshape!testClassAdditionWithClassRemovedtestIfFalseIfTruetestIsBalancedBtestRenameClassUpdateClassExtensionSelectorsInTheExtendingPackagestestTruetestMoveMethodIntoClassVariabletestReadIntoLargertestNotifyVariableDebugPointHit secondArgtestNoChangeOfLayoutDetected%testExistingInstanceVariableAccessorstestAddSelectedCompositetestWithCollectErrortestSelectorsForClasstestAddAfterLast2 testBeLenient selectedItemstestClassWithoutChanges testRemoveOnetestNewFromKeysAndValues testAsSettestAsNumberWithExtendedScaletest11removeLast testNewError)Calypso-SystemPlugins-SUnit-Queries-TeststestAssociations!testBlockWithParametersASTMapping testInBlockTempArgumentShadowingtestStoreIdentifier(testDropListChangeShouldChangeTableItemsVtestUndoOperationWhenTheUndoStackIsEmptyPreservesTheUndoStackAndTheRedoCollectionEmpty&testModifyProtocolOfMethodyDoesNothing testEmptyCodecopyReplaceAll:with:testLiteralSymbolstestExampleBlockExternalNestedtestIsConfigurationNamediff: testisUsed detectMax:'testWhileTrueExecutesRightBlockWithTemp#testClassWithSuperclassNameAsString&Calypso-SystemTools-QueryBrowser-Tests)indexOfSubCollection:startingAt:ifAbsent:BaselineOfRefactoringtestInitializerDefinition reciprocaltestCreationByUnresolvedNamedtestIsVariableLayouttestUTF32EncoderSimpletestSignalFromHandlerActionTesttestUnclosedRawtestDeprecatedAliasestestFlatCollect2testWhileFalseExecutesLeftBlock testTraditionalBinaryPrecedence3testResponsibilityStSystem-HashingencodertestMutateObjectClass detectIndex:detect:testAllCommands storeOn:base:testIfNilIfNotNil0ArgAsVar,testButtonUpClickShouldModifiedArgumentsListtestIsAListNumbered$testLogLocatorDataIsOkStartingAtZero6testClassWithSlotCallsInitializeSlotOnInstanceCreationReflectivity-Tools&testRemovePropertySlotWithTwoInstancesFlashback-Decompiler-TestsCollections-Sequenceable"testHeatmapContainsAGradientLegendtestCommentBetweenStatementstestFixingStateBeforeExecutiontestValidTraitComposition3 ZnLogEventtestIsStraighttestNumericTypes#testDeleteAllWindowToRightOfAWindow-testModelPushDownVariableToClassDownTwoLevelstestDoesntContainReferencePathtestAccessesFieldtestIsCashingResourcesFalse testAppendEmergencyDebugger GreenShifttestIsOfflineTrueNotFoundtestFalseIfTrueReturnsNiltestToolsToInstallOmStoreFactorytestFips180Example1indexOf:startingAt:ifAbsent:&testFailureInvalidNumArgsOfNewSelectortestNotifyDebugPointRemoved)testClassCreationShouldAnnounceClassAdded testCommatestConditionstestCodeImporter#testExampleToDoInsideTempNotInlinedtestSiblingOfReferencetestSelectSomei$testIsSuspendedWhenItIsNotStartedYetNewValueHolder-CoretestDeclareTempAndPasteBlocktestActiveProcessFromProcesor testPager testRawFormattestDoesntContainPathtestWithArgumentsDoFormtestWatchVariableInObject testHasFilestestClassifyUnderWithNil-testAllGlobalNamesStartingWithDoCaseSensitive testUndo2Ring-Monticello asLowercasenew:!testPushTemporaryVariableBytecodetestRemoveElementFromEmpty4testBrowseMethodViaImplementorActuallyBrowseTheClass testCreateTheRightFootnoteObjectisBytes testWithAllNtestReplaceTokenWithCaretBeforeEndOfTextWithSpecialCharacterReplacesEntireWord1testChangingOtherPriorityLowerDuringSemaphoreWaittestRenameUpdateTheOrganizer testRenameArgtestdefineClasstestReturnDoesNotExist factorPointRoassal-Global-TeststestCaseOfOtherwisetestMaxYValueIsUpperLimit testLinesDoCollections-Stack&testCreationTimeIsADateAndTimeInstanceiteratortestLiteralEqualityreject:thenDo:testIfNotEmptyifEmptytestRemoveFirstNotPresentRoassal-Legend%testStepTakenConditionalJumpBytecodestestNewVariableByteClassdecimalDigitLengthtestAddNewProtocolDoesNothing,testEncodingOptionSetsStringEncodingStrategytestNestedExcursiontestIsExecutedFromSingleScopetestBasicCoverage testPairsDoclassVariable:class: printOn:base: testSNIPage'test0FixtureRequirementsOfTGrowableTesttestBinsCollection-testFailurePullUpWithMethodThatCannotBePullUptestIntegerHextestFlatCollectAscharCodesourceCode:in:withProtocol:testTerminateSession)testParentResolutionWithAbsoluteReference General-RulestestRenamePrimitive)testSpaceAtTheEndOfFirstLineWhenMultilinetestNeedsReturn!testWorldMenuHasHelpForAllEntriesasOpenIntervaltestNonOrientedAngleWithtestExampleNewArraytestPushGlobalVariabletestKeysSortedSafelyretval RubTextEditortestLoadChildrenassociationsDo:testFlipliteralExample,testNoLeadingOrTrailingSpacesInCategoryNamesBaselineOfRoassalLayoutstestServiceRunsAfterStarttestSizeUnsignedInt?testTerminatingBlockedCriticalWhichWasSignalledButNotResumedYet4testModifyProtocolToRemoveExtensionUpdatesThePackageFileSystem-Memory-Tests//testIdentityAddtestHasPasswordSet!testFixProtoObjectClassSuperclasskwds1testFutureFirstCompleteOfFailsIfSecondFailsFasterquo:testMultiPartMixedlntestRemoveClassVariabletestArrayBindingsWriteGlobalstestUnrefPointer$testAddRemoveBreakpointKeepTimeStamptestRenameClassInstanceVariabletestSetBaseClasstestRenameTargetExists%testEnvironmentWithBrokenMotherNestedtestUsesPoolVarNamed(testClassDescriptionResolvableProperties with:withAll:testWriteComputedSlotCompiledtestPrintOnStreamtestEphemeronSubclasstestDeclareGlobalBlocktestIndentCascade"testCurlyBraceDoesNotLeadToProblemtestTimesRepeatReturnsReceivertestBoundaryContainsAnyorigintestReflectiveReadWriteBlocktestFindAnyStringIn7testOptimisedValueSpecialSendsMessageDoesNotCaptureSendMetacello-TestsCoreArraytestIsPowerOfTwo(testPrimitiveMethodSourceNodeAtInitialPC(testManifestNamesAccordingToPackageNamesabcdtestFailureExistingClassNametestWritesUndeclaredtestReturnTopFromMethodtestExamplePrimitiveErrorModule"testAssociationAtIfPresentifAbsentl*testAssociationsDoGoesOverEntireDictionarytestVariableCannotExtendByte$testHasBindingThatBeginsWithClassVartestInferiorWithIntegertestRootReferencetest31testMonitorAnnouncesUpdateWhenRedundantlyDisabled9testModelPushDownVariableToMultipleClassesInSameHierarchytestRenameTemporaryTransformoptionOptimizeIR testGreen32 otherPoint1testFalseIfFalseEvaluatesBlockWithTempInsideBlocktestWithAllChildrentestDoubleWordClass!testFailureBadInitializationCode1Collections-Unordered testShuffleBy testBytecode/testIteratorWithInfiniteBlockOnlyCallFirstTimestestMutateByteStringyUsingAtPutRefactoring-DataForTesting/testUnhandledExceptionShouldAllowToCatchWarningtestConnections01#testAddSharedVariableKeepSubclasses/testPackageOfClassMethodFromTraitIsTraitPackagetestReplaceMethodInAllClassestestSizeSignedInt64squeezeNumberOutOfString: testResetFontisPrimetestBasicViolinPlottestComparison5testuFFIMethodSelectorLookupsFirstMethodInSenderChaintestAddSlotAnonymoustestCenteredAttachPoint testSetLabel testIsHiddentestPrimMultiply testMerge7testIsRootDirectory&testParseWindowsPathWithUnixDelimiterstestRemoveTraitMethod1testArgumentUsedInExtractedCodeExpectGotExtractedtestComplexConflictlessMerge>=testClassifyUnderWithProtocol testIsSorteddo:>testClassDefinitionToolIsNotValidWhenReferencingDifferentClasstestIfNotNil1ArgAsVartestMessageText testCoverage BaselineOfIDEtestRenameClassFromTraittestMethodSelectormergeSortFrom:to:by:AtestExistingTraitWithClassSlotsArePreservedIfChangingInstanceSide:Calypso-SystemPlugins-Traits-Queries-Tests-PExtendingTraittestContentsOfDirectorytestSetIsReadOnlySuccessProxy.testShouldFindDependencyWhenUnimplementedCalls8testUndeclaredReparationWithSharedWasCrashingOnOldVM1001%test0FixtureDictionaryEnumeratingTest)testCreateNormalClassWithTraitCompositionred sumNumbers:testExtractSetupExample5,testFailureModelMetaclassAlreadyExistingName testTraittestRemoveInternalDependenciestestPropertyWithOddCollator/testTrueIfTrueEvaluateBlockWithTempOutsideBlocktestAddAlreadyThereDoesNotCount ifNotEmpty:testsourceCodeTemplateFor'testVennDiagramConvertsBigSetInputToSettestWidenOnAssignment4testRenameProtocolAsWithExistingProtocolWithProtocol)testResolveClassVariableShouldBeInt32Type testLinksDo testTypedVariableArgumentHasNametestRehashPreservesCapacitytestComparisonWithCopytestTemporaryVariablesBlock3testNormalProcessCompletionWithLeftEffectiveProcesstestExampleBlockExternal2 testPackagesCollections-Arithmetic-TeststestDisableDuringstring2testOriginalNametestFindGIFPreviewertestCompletionOnNoWord(testGettingSingleAnnotationUsingSelectortestallMethodsWritingSlotftestReplaceKeywordTokenFollowedByAssignmentWithCaretInTheEndOfWordWithFollowingWordsReplacesEntireWord nanoSeconds:!testParentResolutionWithReferencetestBorderWidthHomogeneous testPrintHalttestHasNoArguments shallowCopyhumanReadableSISizeStringtestBreadthFirstSelecttestLoadErrorMicrodown testReturntestLocalProcessTaskRunnerExceptionIsHandledByExceptionHandler*testStoppedSchedulerExpiresRemainingDelaysRoassal-BuilderstestFromNamesWithOneData collatedBy:)testVennDiagramConvertsSmallSetInputToSetRubrictestNewLinesAfterCommentThreadedFFI-UFFItestSplitClass#testTerminationDuringNestedUnwindB1 testBmp8BittestMultiPackageMerge2testPerformWithArgsLargeFrametestPrintPaddedWithToletestIncludeInstancesFromAllAnnotatingMethodsOfAnyClassInSystem%testFamilyListCorrectAtInitializationexampleLiteralLargeInteger FFI-Kernel valueArraytestNodeDistancesFromtestArgumentIsReadtestDefaultDescriptiontestNewFromKeysAndValues2testAllReferencesToDo+testUnaryMessageFormatCommentsWithStatementtestCoordinates@ System-ModelBaselineOfDrTeststestTwoLevelListMCMethodDefinitiontestEqualBlockEqualityBaselineOfMonticello*testSelectorEnvironmentRemovesEmptyClassesFonts-Infrastructure-testResolveConstantNilShouldBeVoidPointerTypeat:at:!testProperAccessingProtocolIsUsedfifth%testExampleMethodWithOptimizedBlocksAsitestGetTempFromTMPDIR testIsEmptytestPurePathInterpretedAsFileatEndtestFractionParttestPerformChangeClass testTargetedToolsWhenManyContext testNoEventsSmalltalkImage,testAnnotatedBlockOnMultipleLinesParserLogicaddLast:testHorizontalLineBlocktestLeftRotated testCritical$testClassDefFromLegacyStringHasSlotspeekBytetestPrimIdentitytestDuplicatedInstanceVariable value:value:#testFailureModelAlreadyExistingNametestCoreMethodModified denominatortestAddDuplicateItem1(Calypso-SystemPlugins-Undeclared-QueriesEtestEquivalentTreeWithMethodContainingSuperSendInSameClassExpectFoundtestReadSlotNamed testTwoGroups#testSupplyAnswerThroughNestedBlocksextensionDelimitertestSimpleRetryUsing4testIncludeInstancesDeclaredForSuperclassOfGivenUser roundUpTo:8testIteratorOnACollectionWithCollectReturnsCorrectValues5testCanStillExecuteWhenAimedNodePcIsAfterInAnyContexttestMethodWithImpacttestMethodsAccessingSlotkwdtestChainBehaviorResetChain"testSimpleDefinitionWithEmptySlots%testMetaclassTraitImplicitEnvironmenttestLazyClassVariablePrint1testLookingForStoreDiskLowercaseReturnsThisMethodtestRealValueModificationei4testSetUpToolIsNotValidWhenReferencingDifferentClassa1a16testDoesNotApplyForMethodNodeInContextWithNoSuperclasstestForgettingAnnotationtestDisplayStackSizetestCompileInInteractivelytestRemoveLastNElementstestNotRenderingOfMyOwnCommenttestMethodRemovaltestPromoteAsPackagetestAddTestSlotseconds: testIndexOfbefore: testAttachTo testAddNil$testPassing4Int64StructureInTheStacktestByteArrayEmpty testIsRight Equals-Tests!testDegreeSinForExceptionalValuesNewTools-WelcomeBrowser testSwapWithDtestDTTestCoverageResultHasCovered_Uncovered_PartiallyCoveredMethods"testUrlWithoutMicrodownParameters2testAccessorsColorstestFutureOnDoSucceedsOnSuccesstestDefinedMethodstestReplaceWithSpaces>testVariableClassWithTraitCreatedShouldntAnnounceClassModifiedtestSortedCounts ffiLibrary/testCompletionWithElementsToFetchShouldHaveMoretestUnresolveNametestNewGlobalVariableSystem-OSEnvironments-TeststestPositionOfSubCollectiontestArgumentsAreFormatedtestOpeningDelimiter'testCompareWithIfLesserIfEqualIfGreater OSPlatform testAddAll-testComparisonOfSimilarQueriesWithEqualScopes0testBuildWidgetPresenterWillSetPresenterPropertytestStackFromTotestBlockWithNonSharedDefault*testRedundantPAckageTagRenameWithAbsentTagtestToolsToKeepWhenManyContexttestHomeClosesCompletionContextMonticelloGUI-TeststestMonospaceWrappedElementsMicrodown-Tests$testPerformAddRemoveInstanceVariablepiasSortedCollectionDtestInsettingLargerThanRectangleExtentShouldNotProduceNegativeExtenttestParentUpTocumulativeCountstestDifferencetestItalicsWithoutClosure nextValuetestExtractSetupExample1testHierarchyRootsRoassaltestRenameTemporarytestExactNthRoot testSimple,testBinaryMessageFormatCommentsWithStatement testMetaclass-testIteratorWithInfiniteBlockNotCallIfNotUsedBaselineOfNewValueHolderincludesSubstring:at:'testInitialCompletionEngineHasNoContextAnnouncements-Core(testClassIsDisplayedWithCorrectAlignmenttestKeyStrokeWithMaxLength9testBestNodeWithInvalidMethodIncompleteMidSourceOnMessagetestClassTraitstestFloatCenterisInitialQuotetoktestDependencyOrdertestComposingMondrian(testUpdateMethodAnnounceRecategorization%testLastClickedMorphSetUponUpdateListguardedtestValidNameAndUnusedVariabletestIsInRectangleIsOutside testLoad3 asDateAndTime,testNarrowingAndUnnarrowingReturnsSameResultcapacitytestVariableClassIsVariabletestInsetRectangle testBasic01>testWorkerInstancesAreCollectedAfterStartingAndStoppingServiceNewTools-RewriterTools-TeststestPragmaUnarayMessagetestTag testCenterEmptyBasedOnPointPointtestExactMatchtestJustTheArgumentsinitializeRed:green:blue:range: testExample01testSelectNonexistingDirectorytestIndexOfKeyIfAbsentgreentestAllowInclusionOfNils testLookingSubstringShowsResults.testExampleTempNamedTempVectorInOptimizedBlock testBinsStratprefix9testWhenTemporaryVariableBecomesArgumentOfExtractedMethod!testCompletionBeforeKeywordColumntestNestedInsanity-testFailureBadIntervalAndVariableDoesNotExisttest05addBeforetestPerformCompositeChange"testMutateByteArrayUsingFloatAtPut testLogScaleaa:testOccurrencesOfNotIn testInstalltestIsBitsLayouttestAsMultilineString"testCreateVariableWordClassWithAllCollections-Abstract-Traits8testCreateClassWithFullExpandedDefinitionKeepsTheMinimumtestAnchorReference do:without:testNoPackagesOverride0testIsEmptyForExplicitlyDefinedAbstractMetaclasstestRemoveInteractionIfPresent testIsZerotestGoodPathVariableIsUnusedcompareWith:collated: testExtenttestHandleEventFrom*testSteppingAnExecutionSignalingExceptionstestBasicCommandlineHandlerSystem-NumberPrintingsplit:indicesDo: Calypso-RingtestCreateScatterPlotroundedtestBreadthFirst foundIndex$testInstanceCreationMajorMinorSuffixtestOddCollectionSize Monticello&testPackageOfTraitMethodIsTraitPackagetestSplitCascadeRefactoring testBitAndOSWindow-TestsSpec2-Morphic-TeststestHasNonLocalReturn#testLinesOfCodeEmptyLineInTheMiddletestHometestCompletionOnBinaryOpalCompiler-Tests testAssignmentOfClassNameBindingtestCreateWeakClassNamed printPathOn:-testBlockWithTwoArgumentReturnsLastExpressionasSortFunction/testRenamingExtensionProtocolToAnotherExtension!testDoItRequestorReadRequestorVarcharactersExactlyMatching:hasInterned:ifTrue:+testMoveMethodToExtensionAnnounceRepackaged*testCaretInTheMiddleOfWordHasWordUpToCarettestRemoveClassTraittestWikipediaExample1testParsingLogic*testNotSimilarToAnnotationOfDifferentClasstestPerpendicularBisectortestGettingRedefiningInstance,testChangeBorderUpdatesEncompassingRectangle*testNarrowingFilterShouldNotResetTheFiltertestWriteAndReadReflective.testFutureFlatCollectFailsOnFailingMapFunction testSubtypingtestSwitchClassSlotAndMigratetestAttributesMorphic-Widgets-Taskbar-TeststestTrivialMethodstestErrorsArePersonnalizedtestNoTraceForEnabledBreakpointtestPragmaEnvironment3testSimpleCondition_conditionBlockProducerMethodAST2testWaitTimeDurationWithCompletionAndTimeoutBlockstestExampleBooleanSlot4testTwoRectanglesWithAnAdjascentBorderDoNotIntersectExternalProjectLoader0testParseMissingStartURLInPresenceOfNestedFormatreplaceFrom:to:with:startingAt:testExampleSimpleBlockArgument4 testGettingAllRedefinedInstancestestSelectsOverriddenMethod,testLocalProcessTaskRunnerRunsInLocalProcess-testDynamicVariableAccessFromDifferentProcesstestPrimDividetestInstanceSidetestFactoryStyle testAverageYtestUpdateMethodtestStylerTitleLabeltestOnceBreakBehaviortestKeywordOnMultipleLine10 testHeadCell(testRemovingAnNonEmptyLeafClassIsAllowedtestScopeOptimizedBlocktestIfNotNilDo testScaleBy testSortBlocktestOtherDictionaryEquality*testSupplySeveralAnswersToSeveralQuestionstestSimpleSlots#testPlaygroundJumpOnErroneousSourcetestGetLowerLimit trueStringtestRedundantClassDefinition.testClassDefFromLegacyStringHasPackageNameNodekk testRemoveTag aSubstringat:ifAbsentPut:$testMinimumNegativeIntegerArithmetictestSearchInTheWholeHierarchytestAllButFirst testBitShifttestWindowsAbsolutePathNamenegated&testIsTerminatedAfterManualTerminationtestErrorCatchfromRgbTriplet: brightness4testIsNotSuspendedWhenItIsRunningButNotActiveProcess testGoodPathRemovingNonEmptyLeafKeymapping-PragmastestFigureWithParametersBtestPackageCommentToolIsNotValidWhenNotAPackageOrClassGroupContextfromCharacter:indexOf:Transcript-Tool)testExampleTempNamedTempVectorNestedBlock+testDoesNotRecycleToolWhenNotValidInContextmonthnewFrom:testCopyAfterEmptyhextestCompletionOnSingleLetterassert!testConvertingToAnotherScopeClasstestMonospacesWithBackSlash*testWithLeftDoesNotProduceInvalidRectangle'testTypedPointerVariableArgumentHasTypetestReadWriteCompiledCtestBestNodeWithInvalidMethodIncompleteMidSourceNearPreviousMessagetestAbsolutePrintStringtestReadInContextCleanthisXtestBreakpointOnTempReadstestIsEnclosingMarktestExampleSimpleTemptestMultiplicationtestNoArgumentstestNoRemoteBlockArgument WriteStream testAsPackage>atLast:ifAbsent:testLongStackSizetestTemporaryNamedtestRenameClassBaselineOfUnifiedFFIRoassal-Interaction-Tests&testRetrievesStateOfAllNavigationViews.testMouseMoveWithoutDraggingDoesNotModifyValueon:do: Files-TeststestSave'testMonospaceDoesNotTreatNestedElements testMerge8peekBacktestCallbackWithErrorHanlded%testWordCannotExtendPointerWithFields test02addLast testHexString1testChangeInSharedPoolShouldAnnounceClassModifiedtestUnionOfEmptiesarcTantestClassWithoutImpacttestLinkWithParameterswithIndexSelect:testEnableDisabledHalt testResettestProperManifestClassestestBasicProxyWritableError'testLeftWithoutResultsBroadensSelectiontestAddVisitedNodestest6+testLinesOfCodeEmptyMethodWithNewlineAndTab$testRemoveAllTextPresenterDecoratorstestPngEncodingColors323testMoveToNodeWhenFromNonInlinedBlockToOuterContext==>testKeywordOnMultipleLine13testConvertFromDecimalFractiontestDoSeparatedBy testRawsHandleWellCurlyIfNotLasttestCompatibilitysubSizetestStartingSituation/testFutureIsFinishedIfFailureWasAlreadyDeployedtestConvertFromFloatFreeType-GraphicstestTextWithStyletestDo2testIncludesAnyAllTheretestAccessIsNotDefinedtestSimpleLookuptestRed82testResolveConstantNULLShouldSetConstantNullLoadertestLastIndexOf testBooleanAttestNoPeriodAtEndOfMethodetestBreakOnAccess from:to:put:isControlOther&testInstrumentedMethodIsCompiledMethod&testFallbackReplaceFromToWithForString testIntCalltestSuperiorWithIntegertestOneLineMessageAI-Algorithms-Graph-ComponentsBaselineOfBasicToolsRtestReplaceKeywordTokenWithCaretInTheEndOfWordWithFollowingWordsReplacesEntireWord6testRestoredBrowserInstanceWithExpectedFlatQueryResultRtestReplaceTokenAfterMovingCaretToMiddleOfWordWithFollowingWordsReplacesEntireWord!testStructureHasCorrectSize32bitsinsert:before:testWriteStreamifPresentExistsGtestVariableClassWhenTraitCompositionChangedShouldAnnounceClassModified,testLastBcOffsetForNodeWhenMappedPcsAreEmptytestLinkBoldAPIToAccessText2testExtractSetUpWhenInstVarSelectedExpectExtracted testReadAll!testStoreAndLoadAllSystemSettings arrayType.testNonOpenPresenterDoesNotRaiseDisplayedEventtestCreateClassWithPropertySlot#testAssignmentHasNoExtraSpaceInsidetestMutateWideStringUsingAtPuttestPngEncodingColors8FilestestPrintVariableBreakpointItemtestSplitArrayOnSequence!testExampleToDoArgumentNotInlined!testDuplicateClassPreservePackage.testInputFileOnOneLineWithSpaceBeforeJunkAftertestCriticalIfErrortestExtendRectangletestSign testDisabledBreakpointisDisabledtestPerformChangeMethodtestRenameVariableTransform#testTimesRepeatWithTempOutsideBlocktestMaxOSWindowDrivertestBeginsWithAnyOftestInlineBlockCollectionLR1testskipUpToNodeSkipTargetNode removeAll:anIndextestImmediateClassIsImmediate testEqualSigntestLiteralNiltestHeapForwardsworldtestComplexClassVariablestestExternalObjecttestNewFutureIsNotFinishedHiedra-ExamplesUnifiedFFI-Tests,testTempNamedPutShouldFailGivenNameIsNotTemp,test0FixtureAsSetForIdentityMultiplinessTesttestAsUppercaseBasicAsciiRangetestRemoveAllInternaltestSimpleReporttestVisibleAreatestDoubleByteClasstestExamplePushArrayhighBit%testClampReturnsMinIfNumberIsBelowMinstartingAt:match:startingAt:testPickedChanges testCqsort testSeparatorba testLabel2ThreadedFFI-TestshuetestIsTestPackageStPharoApplication testBasicSizeRefactoring-Environment%testGlobalVariableImplicitEnvironmenttestEmptyBlockArgtestChangingHelpAffectTheWidget ProfStef-Core testLowBittestIsExternaltestSearchBinarytestEscapeTripleBold Text-Testsnoticesab@testChangingPcInTheMiddleOfStatementSkipsTheBeginningOfStatementtestPackageNamed testMaxVal)testRedoOperationExecutesTheCorrectChangetestMethodVersionSizeAt#testOptimizedBlocksAndSameNameTempstestExistingClassWithClassSlot5testClassDefinitionToolIsNotValidWhenNotAClassContexttestGrandchildOfReferencebadVariableAndScopes0testPackageCommmentToolIsValidWhenPackageContexttestBasicClassBuildingUnix64. testIconNametestWrappedElementOnNested test2DVectornextPut:testShowSelectedMethodVersion)testPerformAddRemoveClassInstanceVariabletestByteCannotExtendWordHalfpitestUnsignedShortAtPutIntegersminutes:*testClassDefFromLegacyStringHasPackageNameselect:thenDo:)testRelativeFromStringNormalizationParent Zodiac-CoretestCyclesWithAtLeast#testDynamicVariableBlockReturnValuetestIsVariableBinding%testSelectNewAddedShapeWithShiftClicktestConcatenationWithDuplicatestreamtestImportAClassCommenttestBuildMethodHeuristictestPushDownMethodDriverWhenAbstractClassExpectBreakingChanges testPcInOuter1testCreationByCommaWithMultipleCompatipleContexts(testAtExistantKeyReturnsOkCompiledMethodtestIsLetterNumbertestSizeSignedInt16testKeywordNoExtraSpacesBefore>testEquivalentTreeWithMethodNodeWithDuplicateMethodExpectFoundtestPointMinimalInformation testStacktestFindBinarytestMoveToNodeWhenNodeIsLiteralOrVariableThatHasNoAssociatedBytecodesMovesToNextNodeThatIsNotLiteralNorVariableThatHasAnAssociatedPC findSelector8testNegatedFilterIsNotNarrowThanANegatedWithANonNarrowedz6testReplaceTokenWithCaretOnEndOfWordReplacesEntireWord%test0TSequencedStructuralEqualityTestZinc-Resource-Meta-TeststestFigureInPresenceOfParagraphtestRetrievesQueryScopestestSimpleResolution test5kClasses(testRemovedDependentPackagesIncludesFromtestWithTitleAndLabelstestLiteralBoolean)testFailureVariableDoesNotExistInOldClassmatch:testDigitsAccessMonticello-GUI-DifftestCopyEqualstestCanExecuteOnArgumentNode#testBreakDebugPointOnVariableAccess-testTypedDoublePointerVariableArgumentHasName#testTempNamedTempCopyingNestedBlock testReadUpTo testYieldtestRaisedTo02 testNoShadowedVariablesInMethodstestPointNearestTo%testLiteralsDoesNotContainMethodClasstestZoomToFitOnStarttestIsOtherNumbertestCreationUnifiedInstanceasStringOn:delimiter: nanoSeconds)testResetRestartsIterationOnTheCollectionMorphic-Widgets-ExtratestFormatReceiver testEmptytestThreeElementsContains testANewLineCreatesANewParagraphtestWordCannotExtendBytetestWeakSubclasstestRawsWithStrikeTranscript-CoretestFalseIfFalseEvaluatesBlockMorphic-Widgets-Menubar testSetToEnd testItalictestRemoveClassRemoveTagIfEmpty testPlainNexttest4System-Utilities-TeststestParseMissingStartURL!testOpenPresenterRaisesBuiltEventtest1BitColorstestDefinedSelectors*testTwoDebugPointsOnSameTargetBothActivatetestOuterBlockTemporaryVariable testCycle03testLogLocatorSmallestIndexIsCorrectAfterChangingSmallestPowertestDoNotBreakSmalltalkVersionsortedElements Traits-TeststestComposeStackText/testSupplyAnswerUsingTraditionalMatchOfQuestion testBasics2test0FixtureDictionaryKeysValuesAssociationsAccesstestKDEDefaultBandwidthtestFromHeadDetectIfNotFoundtestWikipediaExample2JtestPerformChangesWhenChangesSmallerThanUndoSizeExpectCorrectChangesUndonetestSettingCompletionFromEditortestPullUpVariableTransformtestByteArrayLiteralBaselineOfCalypsotestAddMovieDirectorcc:5testWordsAwareIteratorFiltersLeftOutBecauseSecondWordtestAsNumberWithoutDecimalPoint+testFindStClassProcessorTestAfterAddingTesttestDoEvaluateDeclareGlobaltestChangeAddOnetestNextShouldReturnNilAfterEndtestLargePrimesUpTo2BaselineOfKeymapping&testBreakDebugPointOnClassVariableReadPharoCommonToolstestIsAffectedByChangeOfSubclassMethodWhichOverridesSuperclasstestCanConsumeLinetestIsControlOthertestJumpOnSelf4testCompletionWithNoElementsToFetchShouldNotHaveMoretestSelectThenCollecttestStoreStringAll6testNewLineAfterFirstBracketWhenMultilineWithArgumentstestBuilderSharedPools testFalseAndAnythingReturnsFalsetestDoubleClickFromMorph testHasNonDefaultValue_NoDefaulttestHasLabelTruetestExpressionZero)testAddParameterThatReferencesModelGlobaltestBmpWriteReadInMemorytestStoredCredentialsCommander-Core privateRedtestRealValuestestReferencedClassestestStepOverFinishedExecutiontestFailureNoMoveDefinitiontestSimpleEnsureTestWithUparrowtestHasLabelFalseJtestPushDownMethodDriverWhenSubclassesReferToSelectorExpectBreakingChangesCtestIsAffectedByChangeOfNotAbstractMethodWhichImplementsAbstractOneaa:bb:cctestClassSideOfATraittestDefinitionsIdentitydetect:ifFound:ifNone:testStrikeInHeader testFullCopytestDrawingWayOutside*initializeHue:saturation:brightness:alpha:testOrderedListAPIToAccessTextNewTools-MethodBrowsersSystemCommands-ClassCommandsendeStr7testExistingPackageNamesDoesNotContainIllegalCharacterstestNoPeriodInMethodSignature#testTestCasesEndsWithTestOrTestCaseaatestExampleBlockArgumenttestShowOlderMethodVersiontestLiteralString testWithRB7lastRun testMethodRemovalWithMethodAddedtestRowSpacing ClassParsertestPrintHaltItem isFloatPointtestContinuationExample1testDoubleBarPlotRawDatatestnewSizeAfterUpdatetestReverseLinksDotestAllEntriesanArgtestUsingMethodsFindsPoolUserstestDefaultValuez*O:xa&8 ̠r%0LZ#-=}xI'ecD-5r L:="&j ޷S";]/7{>7*e'o6H'E/X wڜ95d-Y 2t/caM%|%aA =\w(,y+1 f*!!>3^VS _8a 1F1Uc _:y:4{۫&&+}<$FLPositive8SmallIntegerClusterm!ΎBcĄ8Y z.ۛOp$ёEfLJ;\}1ޞRs'ԔHiʊ>_4U v*חKl ͍AbÃ7X y-ښNo#АDeƆ:[|0ݝQr&ӓGhɉ=^3Tu)֖Jǩ@a‚6W x,ٙMn"ϏCdŅ9Z{/ܜPq%ҒFgȈ<]~2ߟSt(ՕIjˋ?`5V w+ؘLFLHookPrimitiveClusterQE?333333@??\(\7tJM7KƧ@N?陙@f |3!@ Q@lp@lVϪ .1@aaao?@Ul@ (\)?@L@@Yfffff?o[o\(\@$fff]`@l"h ԕ?XbM?گ%?گ%?ٙ@2t@$=p =?@@$?4֡a?mR$/@lp@$@ 333333?@?zG{@?ܒ5?ə@n@i@&P@$ffffff@ ?@$vN@7iBĿ?PbM?ڹY@ !n?.B9@@7tJM@7KƧ?tzG{?zQ@? 333333@^?yc@Y@&P{`@v@ Q?Q_@ .1?ffffffFLHookPrimitiveCluster `"W:(FLHookPrimitiveClusterFLNegative32SmallIntegerClusterFLPositive24SmallIntegerCluster oz%B@prFLNegative16SmallIntegerClusterFLHookPrimitiveCluster'X23.5698(#(1 3 5 7 11 15 23) findBinaryIndex: [ :arg | 25 - arg ] ifNone: [ :a :b | 'between: ',{a. b} printString ]) >>> 'between: #(7 8)' pharo201010 [ | a b | | | . :. :a1010 00000000000one83,('s' charactersExactlyMatching: 'abc') >>> 0FooBarBaz { #foo : 100 }K(Color fromString: '#FFCCAA')>>> (Color r: 1.0 g: 0.8 b: 0.667 alpha: 1.0) Message expected2(#(1 2 3) isSortedBy: [:a :b | a >= b ]) >>> falsea |||| ac%1 second printString >>> '0:00:00:01'detectMin: aBlock "Evaluate aBlock with each of the receiver's elements as the argument. Answer the element for which aBlock evaluates to the lowest number. If collection empty, return nil." "({ 2@6 . -4@3 . 10@ -3 } detectMin: [ :p | p x ]) >>> (-4@3)" "({ 2@6 . -4@3 . 10@ -3 } detectMin: [ :p | p y ]) >>> (10@ -3)" "('Hello!' detectMin: #asciiValue) >>> $!" | minElement minValue | self do: [:each | | val | minValue == nil ifFalse: [ (val := aBlock value: each) < minValue ifTrue: [ minElement := each. minValue := val]] ifTrue: ["first element" minElement := each. minValue := aBlock value: each]. "Note that there is no way to get the first element that works for all kinds of Collections. Must test every one."]. ^ minElement42 2r00101000and: alternativeBlock "Nonevaluating conjunction -- answer the value of alternativeBlock since the receiver is true." "(true and: [ false ]) >>> false" "(true and: [ true ]) >>> true" ^ alternativeBlock value?(Context tallyInstructions: [3.14159 printString]) size >>> 120#Tests-unix-64-Rubric-Tests-Test.xmlGifNotEmpty: aBlock "Evaluate the given block with the receiver as argument, answering its value unless the receiver is empty, in which case answer the receiver." "(#(10 20) ifNotEmpty: [:x| x average]) >>> 15" "(#() ifNotEmpty: [:x| x average]) >>> #()" ^ self isEmpty ifTrue: [ self ] ifFalse: [ aBlock cull: self ]2`asDate "(Date year: 2018 month: 9 day: 28) asDate printString >>> '28 September 2018'" ^ self65* arg "Answer a Point that is the product of the receiver and arg." "((2@2) * (100@200)) >>> (200@400)" "((2@2) * 200) >>> (400@400)" arg isPoint ifTrue: [^ (x * arg x) @ (y * arg y)]. ^ arg adaptToPoint: self andSend: #*d101over 23awordBefore: anIndex "('word before index' wordBefore: 4) >>> 'word'" "('word before index' wordBefore: 16) >>> 'inde'" | sep tok | tok := false. sep := anIndex. [ sep > 0 and: [ (self at: sep) tokenish ] ] whileTrue: [ tok := true. sep := sep - 1 ]. ^ tok ifTrue: [ self copyFrom: sep + 1 to: anIndex ] ifFalse: [ String new ]-13!#(a b c d e f g h ) fourth >>> #d11.0instanceSide "Return the class of the couple class/metaclass. Useful to avoid explicit test." "Point instanceSide >>> Point" "Point class instanceSide >>> Point" ^ self subclassResponsibility0a := a. [ :a | a ]. a := a0000'ab' asArray >>> {$a. $b}factorial "Answer the factorial of the receiver." "The factorial on n is defined as: n * (n-1)*(n-2)*... while n>0. Factorial of 0 is 1. We also know Factorial of 1 and 2 are themselves. This implementation uses a 2-partition algorithm. For a recursive (but slower) implementation see 'slowFactorial' Without verbose detail: If'm an even number,some optimization can be applied: Instead of doing all multiplication we can halving the number of multiplication regrouping terms, so: n*(n-1)*(n-2)*....*3*2*1 can be rearranged as: (n*1)*((n-1)*2)*((n-2)*3)*... And the use the fact n is even to rewrite in a more efficient way. If I'm an odd number then compute for n-1 and multily by n. " "Example of usages:" "0 factorial >>> 1" "1 factorial >>> 1" "2 factorial >>> 2" "3 factorial >>> 6" "4 factorial >>> 24" "5 factorial >>> 120" "6 factorial >>> 720" | nex nexnext acc | "Guard for know cases (0,1,2,error)" self < 3 ifTrue: [ ^ self < 0 ifTrue: [ self error: 'Not valid for negative integers' ] ifFalse: [ self > 0 ifTrue: [ self ] ifFalse: [ 1 ] ] ]. acc := 2. nex := 2. nexnext := 10. self // 2 - 1 timesRepeat: [ nex := nex + nexnext. nexnext := nexnext + 8. acc := acc * nex ]. self odd ifTrue: [ acc := acc * self ]. ^ acc51 Snick asFile Files Snick's SnickEisAllSeparators "Returns whether the receiver is composed entirely of separators i.e., a space, tab, lf, cr, and newPage" "(Character space asString, Character space asString) isAllSeparators >>> true" "(Character space asString, 'a') isAllSeparators >>> false" self do: [ :c | c isSeparator ifFalse: [ ^false ] ]. ^true Size of replacement doesnt matchb23allButLast: n "Answer a copy of the receiver containing all but the last n elements. Raise an error if there are not enough elements." "(#(a b c d) allButLast: 2) >>> #(a b)" "(#(a b c d) allButLast: 3) >>> #(a)" ^ self copyFrom: 1 to: self size - n1528lvi2world34213333en((1 to: 12) groupByRuns: [ :each | (each \\ 3) = 0]) >>> #(#(1 2) #(3) #(4 5) #(6) #(7 8) #(9) #(10 11) #(12))623112[ ^ 1. 2. ^ 3 ]#[ 1 ]. #[ 2 ]6'Concatenate two Strings or Collections.ZEvaluate aBlock with my elements taken two at a time, and return an Array with the results97f('test te string' copyReplaceAll: 'te' with: 'longone' asTokens: false) >>> 'longonest longone string')(self >> #selector) isExtension >>> false21copyEmpty "Return a new empty collection based on the species" "{1@2} copyEmpty >>> #()" "'hello' copyEmpty >>> ''" "(1 to: 10) copyEmpty >>> #()" ^ self species newdo-340,(#(a b c d e) indexOf: #x ifAbsent: 7) >>> 711[(#(1 3 5 7 11 15 23) findBinary: [ :arg | 24 - arg ] ifNone: ['Not found']) >>> 'Not found'300Optimized implementationreciprocal "Returns the reciprocal of self. In case self is 0 the / signals ZeroDivide" "1/2 reciprocal >>> 2" "2 reciprocal >>> (1/2)" "1.25 reciprocal >>> 0.8" "-2 reciprocal >>> (-1/2)" ^1 / self1.onDo: aBlock "Helper to tranform any `do:`-like method into a generator." "|generator| generator := Generator onDo: [ :doBody | Integer primesUpTo: 10000000 do: doBody ]. (generator next: 5) asArray >>> #(2 3 5 7 11)" ^ self on: [ :generator | aBlock value: [ :arg | generator yield: arg ] ]2018 0n ssss0Xsss0-1010C([0 isEmptyOrNil] on: MessageNotUnderstood do: ['oops']) >>> 'oops'ninth "Answer the ninth element of the receiver. Raise an error if there are not enough elements." "#(a b c d e f g h i) ninth >>> #i" ^ self at: 9121012jasStringOn: aStream delimiter: delimString "Print elements on a stream separated with a delimiter String like: 'a, b, c' Uses #asString instead of #print:." "(String streamContents: [:s| 'abcd' asStringOn: s delimiter: '->']) >>> 'a->b->c->d'" self do: [ :elem | aStream nextPutAll: elem asString ] separatedBy: [ aStream nextPutAll: delimString ]d1 hello: * "a" | "b" x "c" | "d" x "e" := "f" 5 "g" 901280.0051033Class structural inspection - Class/Metaclass shift100 [ :a | a ]foo < bar: [ 1 ] > 103010pairsCollect: aBlock "Evaluate aBlock with my elements taken two at a time, and return an Array with the results" "(#(1 'fred' 2 'charlie' 3 'elmer') pairsCollect: [:a :b | b, ' is number ', a printString]) >>> #('fred is number 1' 'charlie is number 2' 'elmer is number 3')" ^ (1 to: self size // 2) collect: [ :index | aBlock value: (self at: 2 * index - 1) value: (self at: 2 * index) ]7N({10. 20} asOrderedCollection addAll: {20. 30. 30. 40.}) >>> {20. 30. 30. 40.}/Tests-unix-64-Reflectivity-Tools-Tests-Test.xml160ProtoObject superclass >>> nil101def2 'def' <= 'abc' >>> falsepiecesCutWhere: binaryBlock do: pieceBlock "Evaluate pieceBlock with substrings of the receiver derived from cutting the receiver at points where binaryBlock answers true for adjacent elements." "(Array streamContents: [:stream | #(1 2 3 1 6 1 2 3 4) piecesCutWhere: [ :a :b | a = 1 and: [ b = 2]] do: [:each | stream nextPut: each size]]) >>> #(1 5 3)" | size lastCut this next | (size := self size) <= 1 ifTrue: [size = 1 ifTrue: [pieceBlock value: self]. ^self]. lastCut := 1. this := self at: 1. 2 to: size do: [:i| next := self at: i. (binaryBlock value: this value: next) ifTrue: [pieceBlock value: (self copyFrom: lastCut to: i - 1). lastCut := i]. this := next]. pieceBlock value: (self copyFrom: lastCut to: size)flatCollect: aBlock "Evaluate aBlock for each of the receiver's elements and answer the list of all resulting values flatten one level. Assumes that aBlock returns some kind of collection for each element. Equivalent to the lisp's mapcan" "( #((3 4) (1 2)) flatCollect: [:each | each ] ) >>> #(3 4 1 2)" "( #(3 4 1 2) flatCollect: [:each | { each. each*10 } ] ) >>> #(3 30 4 40 1 10 2 20)" ^ self flatCollect: aBlock as: self species042323Tests-unix-64-NewTools-RewriterTools-Tests-Test.xml 000000002000003041('aa' compare: 'ab') >>> 1#[ ]-(3 ifNil: [42] ifNotNil: [:o | o +3 ]) >>> 6123.45670aprintOn: aStream delimiter: delimString last: lastDelimString "Print elements on a stream separated with a delimiter between all the elements and with a special one before the last like: 'a, b and c'" "(String streamContents: [:s| { 10. 'hello'. $x } printOn: s delimiter: ', ' last: ' & ']) >>> '10, ''hello'' & $x'" "Note: Feel free to improve the code to detect the last element." | n sz | n := 1. sz := self size. self do: [:elem | n := n + 1. aStream print: elem] separatedBy: [ n = sz ifTrue: [aStream nextPutAll: lastDelimString] ifFalse: [aStream nextPutAll: delimString]]14211IMPLEMENTATION NOTE: following algorithm is optimized in primitive only in case self and prefix are bytes like. Otherwise, if self is wide, then super outperforms, Otherwise, if prefix is wide, primitive is not correct256920zz1033100ePoint[1,/*comment*/2]2r. 3X(String streamContents: [:s| {10. 'hello'} printElementsOn: s]) >>> '(10 ''hello'')'1311036#( 1 51 10 ) range >>> 50XXsFoo'Bar333a2isAllDigits "Return whether the receiver is composed entirely of digits and has at least one digit" "'2345' isAllDigits >>> true" "'0002345' isAllDigits >>> true" "'2345.88' isAllDigits >>> false" self do: [:c | c isDigit ifFalse: [^ false]]. self ifEmpty: [^false]. ^ true220false := false4-81(KeyboardKey fromCharacter: $a) >>> KeyboardKey A1.02cand: alternativeBlock "Nonevaluating conjunction. If the receiver is true, answer the value of the argument, alternativeBlock; otherwise answer false without evaluating the argument." "(true and: [true]) >>> true" "(true and: [false]) >>> false" "(false and: [true]) >>> false" "(false and: [Error signal]) >>> false" self subclassResponsibility4/Tests-unix-64-NewTools-Inspector-Tests-Test.xml225zdef26 #( 0 1r2 4 )2:a foo2011(-23.4567 printShowingDecimalPlaces: 0) >>> '-23' 9 % 4 >>> 1r: r g: g b: b "Return a color with the given r, g, and b components in the range [0.0..1.0]." "(Color r: 1 g: 1 b: 1) >>> Color white" ^ self r: r g: g b: b alpha: 1.00oops202[Answer the ninth element of the receiver. Raise an error if there are not enough elements.([ 12 ] cull: 13)>>> 12 abcdefghfromRgbTriplet: list "Return a color from its RGB components (0 - 1.0 floats)" "(Color colorFrom: #(1.0 1.0 1.0)) >>> (Color white)" ^ self r: list first g: list second b: list last30422NConvert the receiver into a colorref, i.e, a number embedding r,g,b on 24 bitsbetween: #(7 8) "z" foo "a" 1 "b". "c" ^ 2 "d" Variable name expected311112004445484400B9999A97302Ymodulo. Remainder defined in terms of //. Answer a Number with the same sign as aNumber.10hello100This statement is true!0115WReturn true if all my elements are close to the elements of same index of the parameter411023aM|s|s:=0. #(4 2 1) withIndexDo: [:e :i| s:=s + (e * (10 ** (i-1)))]. s >>> 124#(10 storeStringBase: 16) >>> '16rA'2a7-63select: selectBlock thenCollect: collectBlock "Optimized implementation" "(#(1 2 3 4 5) select: #even thenCollect: #negated) >>> #(-2 -4)" "('Hello, World!' select: #isLetter thenCollect: #uppercase) >>> 'HELLOWORLD'" | selectedItems | selectedItems := self copyEmpty. self do: [ :e | (selectBlock value: e) ifTrue: [ selectedItems add: (collectBlock value: e) ] ]. ^ selectedItemss103Return the number of combinations of (self) elements taken k at a time. It is calculated as C(n,k) = n! / (k! (n-k)!) For 6 numberOfCombinationsTaken: 3, this is 6*5*4 / (1*2*3)201Sbefore: target "Answer the receiver's element immediately before target. Raise an error if target is not an element of the receiver, or if there are no elements before it (i.e. it is the first element)." "(#(11 22 33) before: 22) >>> 11" "(#(11 22 33) before: 33) >>> 22" ^ self before: target ifAbsent: [self errorNotFound: target]*(#(1 2 3) reduce: [ :a :b | a + b ]) >>> 6-4a1.0DPairwise product of two sequenceable collections of the same length.x230x<1?success:error>%(AsciiCharset toLowercase: $!) >>> $!1s;2210*kkkk sssssss 0 ^ n 0 ssssssss 0 ^ n 0. ^ n1asByteArray "Convert to a ByteArray with the ascii values of the string." "'a' asByteArray >>> #[97]" "'A' asByteArray >>> #[65]" "'ABA' asByteArray >>> #[65 66 65]" | b | b := ByteArray new: self byteSize. 1 to: self size * 4 do: [:i | b at: i put: (self byteAt: i)]. ^ b a, b and csum "Return the sum (+) of the elements held in the receiver." "Faster than the superclass implementation when you hold many instances of the same value (which you probably do, otherwise you wouldn't be using a Bag)." "#(1 2 2 3 1 1 1) asBag sum >>> 11" | sum first | first := true. contents keysAndValuesDo: [ :value :count | first ifTrue: [ sum := value * count. first := false ] ifFalse: [ sum := sum + (value * count) ] ]. first ifTrue: [ self errorEmptyCollection ]. ^ sum #( # ## ) 12r89ab cdGPairwise difference of two sequenceable collections of the same length.5abs "Absolute value of all elements in the collection" "#(1 -2 -4 0) abs >>> #(1 2 4 0)" "{1@ -2. -4@0} abs >>> {(1@2). (4@0)}" ^ self collect: [:a | a abs]10Return the key that will be used to add a property with the class name when an unknown class is read and the option STONReader>>#acceptUnknownClasses: is true, by default #className. Such unknown classes are returned as generic maps.7.5g43classNameKey "Return the key that will be used to add a property with the class name when an unknown class is read and the option STONReader>>#acceptUnknownClasses: is true, by default #className. Such unknown classes are returned as generic maps." "((STON reader acceptUnknownClasses: true; on: 'FooBarBaz { #foo : 100 }' readStream; next) at: STON classNameKey) >>> #FooBarBaz" ^ #classNamevweekdayIndex "Sunday=1, ... , Saturday=7" "(Date year: 2018 month: 9 day: 28) weekdayIndex >>> 6" ^ self dayOfWeekEReturn the HSV saturation of this color, a value between 0.0 and 1.0.1024Evaluate aBlock with each of the receiver's elements as the argument. Answer the element for which aBlock evaluates to the highest magnitude. If collection empty, return nil. This method might also be called elect:.printElementsOn: aStream "List elements betwen () and separated by spaces. Is used by printOn: and other related printing methods." "(String streamContents: [:s| {10. 'hello'} printElementsOn: s]) >>> '(10 ''hello'')'" "(String streamContents: [:s| #() printElementsOn: s]) >>> '()'" "Note: The original code used #skip:, but some streams do not support that, and we don't really need it." aStream nextPut: $(. self do: [:element | aStream print: element] separatedBy: [aStream space]. aStream nextPut: $)0vector01 W01-Welcome234znak ::x43 ') _ : 26Tests-unix-64-Transcript-NonInteractive-Tests-Test.xml55Split the argument using the receiver as a separator.15fromCharacter: aCharacter ifNone: aBlock "For backwards compatibility mainly. Return the key that should correspond to some character. Handle normal ascii characters and special control keys only (enter, tab space...)" "(KeyboardKey fromCharacter: $a) >>> KeyboardKey A" ^ self keyFromCharacterTable at: aCharacter ifAbsent: [ self named: aCharacter asString asUppercase ifNone: aBlock ]%(false and: [Error signal]) >>> falsexyd101 9 % -4 >>> -39s:33TIterate over all the pairs of the receiver and apply the binaryBlock to each pair. toUppercase: aCharacter "(AsciiCharset toUppercase: $a) >>> $A." "(AsciiCharset toUppercase: $A) >>> $A." "(AsciiCharset toUppercase: $!) >>> $!" (aCharacter between: $a and: $z) ifFalse: [ ^ aCharacter ]. ^ Character value: aCharacter asciiValue - $a asInteger + $A asInteger1de23019Answer substrings of the receiver derived from cutting the receiver at points where binaryBlock answers true for adjacent elements.30717\flatCollect: aBlock as: aCollectionClass "Evaluate aBlock for each of the receiver's elements and answer the list of all resulting values flatten one level. Assumes that aBlock returns some kind of collection for each element. Equivalent to the lisp's mapcan" "(#(1 2 3) flatCollect: [:each | { each. each+1 } ] as: Set) >>> #(1 2 3 4) asSet" "(#(65 66 67) flatCollect: [:each | { each asCharacter. each asCharacter asLowercase } ] as: String) >>> 'AaBbCc'" | col | col := OrderedCollection new: self size. self do: [ :each | col addAll: (aBlock value: each) ]. ^ aCollectionClass withAll: col2121000y0.8?(#(1 2 3 4 5) select: #even thenCollect: #negated) >>> #(-2 -4){ 1 + 2K(#(1 2 3) asOrderedCollection collect: [ :v | 10 ]) asArray >>> #(10 10 10) ( . ^ 1 )10020025ppp AA ppp AA ppp AA ppp AA ppp AA ppp AA ppp AA ppp AA ppp AA pppp AAA pppp AAA pppp AAA pppp AAA pppp AAA pppp AAA pppp AAA ^ aa0.5x isSymbol: 331614~reduceLeft: aBlock "Fold the result of the receiver from left to right into aBlock. The argument aBlock must take two or more arguments." "(#(1 2 3) reduceLeft: [ :a :b | a - b ])>>> ((1 - 2) - 3)" "(#(1 2 3) reduceLeft: [ :a :b | a - b ]) >>> -4" "(#(1 + 3 - 5) reduceLeft: [ :a :op :b | a perform: op with: b ]) >>> ((1 + 3) - 5)" "(#(1 + 3 - 5) reduceLeft: [ :a :op :b | a perform: op with: b ]) >>> -1" | arguments | self emptyCheck. arguments := Array new: aBlock argumentCount. (arguments size = 0 or: [ (self size + 1) \\ (arguments size - 1) > 0 ]) ifTrue: [ self error: 'Collection size and block argument count do not match.' ]. arguments at: 1 put: self first. 2 to: self size by: arguments size - 1 do: [ :index | arguments replaceFrom: 2 to: arguments size with: self startingAt: index; at: 1 put: (aBlock valueWithArguments: arguments) ]. ^ arguments first1/(#(1 2 3 4) count: [ :each | each even ]) >>> 2a := a. [ :a | [ :a | ]. a := a3RReturn all the elements in self that are not in aCollection. Alias of difference:410020'(#(1 2 3 4 5) beginsWith: #()) >>> true20{1]2}foobaz0-0102018*baz*yyyymmdd "Format the date in ISO 8601 standard like '2002-10-22' The result is of fixed size 10 characters long.." "(Date year: 2018 month: 9 day: 28) yyyymmdd >>> '2018-09-28'" ^ String new: 10 streamContents: [ :aStream | self printOn: aStream format: #(3 2 1 $- 1 1 2) ]12003OAnswer a Point whose x and y are the absolute values of the receiver's x and y.1103('abcdefgh' includesSubstring: 'de' at: 4) >>> true7 between: 30#(a b c d e) size >>> 542*('hello!' allSatisfy: #isLetter) >>> falsehello6addAll: aCollection "Add each element of aCollection at my end. Answer aCollection." "(OrderedCollection new addAll: #(41 42); yourself) asArray >>> #(41 42)" ^ self addAllLast: aCollectionfghi*baz'hello'd7C(DateAndTime fromString: '2004-02-29T13:33:12+02:00') second >>> 12e-3 (#(a b c d e) indexOf: #c) >>> 31z [ :a || a b ]03Class structural inspection - Class/Metaclass shiftTests-unix-64-Coverage-Test.xmloops(false xor: [true]) >>> true13(RuntimeSyntaxError signal: 'false error'(1923 roundDownTo: 10) >>> 192001ab cd ab ef ab-1'00000103366778777B9999AA77C66555555444Dm({64->$@} asDictionary fillFrom: 'AB' with: [:x|x asciiValue -> x]) >>> {64->$@. 65->$A. 66->$B} asDictionary00 0| a | [ ^ a ]. a := 10XXXXXXXXXXXXXXXXXXXXXXXXXX2F('Hello' detect: #isLowercase ifFound: #uppercase ifNone: [$X]) >>> $E20(Array streamContents: [:s | #(1 'fred' 2 'charlie' 3 'elmer') pairsDo: [:a :b | s nextPut: b; nextPut: a]]) >>> #('fred' 1 'charlie' 2 'elmer' 3)abcd201031yh: hue s: saturation l: lightness "Create a color with the given hue, saturation, and lightness. Hue is given as the angle in degrees of the color on the color circle where red is zero degrees. Saturation and lightness are numbers in [0.0..1.0] where larger values are more saturated or lighter colors. The difference with brightness in the HSV coordinates is that colors go from black at lightness 0, through vivid hues at lightness 0.5, to white at lightness 1. For example, (Color h: 0 s: 1 l: 0.5) is pure red." " (Color h: 0 s: 1 l: 0.5) >>> (Color r: 1 g: 0 b:0)" ^ self h: hue s: saturation l: lightness alpha: 1.0 'def' = 'abc' >>> falsei (String streamContents: [:s | #('hello' 'the' 'world') do: [:each | s << each]]) >>> 'hellotheworld'14 Hello, World!false. := false01528c11That is false!1abcdefgh21005020This statement is false!$(#(10 20 30) includes: 21) >>> false3G(#(1 2 3 4 5) reduce: [ :a :b :c | a + b + c ]) >>> (1 + 2 + 3 + 4 + 5)3foo: a x: a y: b [ :a :a :b | | a a b | a + a + b ]Evaluate aBlock with each of the receiver's elements as the argument. If some element evaluates aBlock to true, then cull this element into foundBlock and answer the result of this evaluation. If none evaluate to true, then evaluate exceptionBlock.11 0000011222111555333341116677711032r-00101000 lowBit >>> 4disByteString "Answer whether the receiver is a ByteString" "'abc' isByteString >>> true" ^ true4120.011313TReturn the index starting at 1 of the argument in the receiver, zero if not present. 1reject: rejectBlock thenCollect: collectBlock "Optimized version of Collection>>#reject:thenCollect:" "(#(1 2 3 4) reject: [:each | each = 3 ] thenCollect: [:each | each + 10 ]) >>> #(11 12 14)" | each | ^ self class new: self size streamContents: [ :stream| 1 to: self size do: [ :index | (rejectBlock value: (each := self at: index)) ifFalse: [ stream nextPut: (collectBlock value: each) ]]]T(#(1 5 10) detectIndex: [ :each | each > 15 ] ifNone: ['Not found']) >>> 'Not found'2X XATry to match aColorHex with known named colors, case insensitive.abc>|s| s:=0. #(10 20 30) do: [:each | s := s + each]. s >>> 601(((100@200) max: (330@400)) >>> (330@400)301d5d1 1 hello: 11foo*baz1200+#(1 2 3) asOrderedCollection capacity >>> 316(#(1 2 3 4 5) reduce: [ :a :b :c | a + b + c ]) >>> 15i5206b10XX XX n XX# n X18-Tests-unix-64-UndefinedClasses-Tests-Test.xml$$a := a. { [ :a | }. a := a! pppp AAA pppp AAA ^ aaa s aaa . hello1017 0(#(1 3 5 7 11 15 23) findBinary: [ :arg | 0.5 - arg ] do: [ :found | found ] ifNone: [ :a :b | 'between: ', {a. b} printString ]) >>> 'between: #(nil 1)'0({10@20. 30@0} collect: [:e | e x]) >>> #(10 30)cJTake the minimum between self and maxValue, then the maximum with minValue2isSymbol:Answer a Point translated by delta (an instance of Point).@(#(1 2 3 4) asSet intersection: #(3 4 5) asSet) >>> #(3 4) asSet8('salkjsdlkgfeeal' findString: 'al' startingAt: 1) >>> 227((0@0 corner: 100@100) containsPoint: 100@50) >>> false#(1 -2 -4 0) abs >>> #(1 2 4 0)13Refer to the comment in Collection>>#select:thenDo:3 hello world2'n uuuu uuuuu uuu uuuu uuuuu uuuuuuuuuuu10]Returns whether the receiver is composed entirely of alphanumerics (i.e., letters or digits).2barThis statement is true!;Answer a Point that is the product of the receiver and arg.6 slowFactorial >>> 720c11pppp A pp A pp A X | t t t | t s t s tpharo!4210720' ' asLowercase >>> ' '208Return the sum (+) of the elements held in the receiver.0.1369199587840001211SHIFT_L-32endsWithDigit "Answer whether the receiver's final character represents a digit." "'foo10' endsWithDigit >>> true" "'foo10foo' endsWithDigit >>> false" "'foo1' endsWithDigit >>> true" ^ self notEmpty and: [self last isDigit]wRunning average (a.k.a. moving average, rolling average). See the comment of self >> #running:of: for more information.13n sss X Xuuuuu e%(-3.1479 roundDownTo: 0.01) >>> -3.1523000000000000000000000:00:00:00.001000002a1P(Date year: 2018 month: 9 day: 28) onNextMonth printString >>> '28 October 2018'301de6foo ^ [ :a | [ | a | a := 10. a ] value + a ] value: 11d11392.0aa := a. [ | a a := a ]. a := a15233#hello. #world> aString "Answer whether the receiver sorts after aString. The collation order is simple ascii (with case differences)." " 'def' > 'abc' >>> true" " 'def' > 'def' >>> false" " 'abc' > 'def' >>> false" ^ (self compare: self with: aString) > 010164120010403Use a proper symbol literal 16r80000000 16r40000000For backwards compatibility mainly. Return the key that should correspond to some character. Handle normal ascii characters and special control keys only (enter, tab space...))(1.2 arcTan: 1.5) >>> 0.67474094222355261Return the receiver as a string with the adequate file size identified, e.g. '50 KB'. The difference with humanReadableByteSISizeString is that the current one counts by 1024 and not 1000.2'10' asInteger >>> 10-(#(10 20 30) includesAny: #(50 40)) >>> false #( 1 #+ 2XXXXXXXXXXXXXXXXXX4 2r0010100053.1479put: object onStream: writeStream "Write the STON serialization of object to the character writeStream" "(String streamContents: [ :out | STON put: 1@2 onStream: out ]) >>> 'Point[1,2]'" "FileLocator temp / ('{1}.ston' format: { Time millisecondClockValue }) in: [ :file | file writeStreamDo: [ :out | STON put: 1@2 onStream: out ]. file readStreamDo: [ :in | STON fromStream: in ] ]" (self writer on: writeStream) nextPut: object'a''b'0vector0cAnswer the angle in radians. Implementation note: use sign in order to catch cases of negativeZero13718"Guard for know cases (0,1,2,error)105union: aCollection "Answer the set theoretic union of two collections." "(#(1 2 3) union: #(4 5 6 2)) asSet >>> #(1 2 3 4 5 6) asSet" "('hello' union: 'world') >>> 'whlorde' " | set | set := self asSet addAll: aCollection; yourself. ^ self species withAll: set asArray1415 ceiling "Answer a Point that is the receiver's x and y ceiling. Answer the receiver if its coordinates are already integral." "(100@200) ceiling >>> (100@200)" "(100.1@200.9) ceiling >>> (101@201)" self isIntegerPoint ifTrue: [ ^ self ]. ^ x ceiling @ y ceiling[ 4(#(1 3 5 7 11 15 23) findBinaryIndex: [ :arg | 0.5 - arg ] do: [ :found | found ] ifNone: [ :a :b | 'between: ', {a. b} printString ]) >>> 'between: #(0 1)'3XXX10?('<1?success:is error>' expandMacrosWith: false) >>> 'is error'(0 to: 10 by: 2) last >>> 1014{1 . 2 . 3 . 4 . 5} asSortedCollection median >>> 31Durstenfeld's version of the Fisher-Yates shuffleEvaluate aBlock for each of the receiver's elements and answer the list of all resulting values flatten one level. Assumes that aBlock returns some kind of collection for each element. Equivalent to the lisp's mapcan3Jequals: aDate "Perform a time zone independent comparison of the dates, i.e. only compare day, month and year. To compare with time zones, use #=" "(Date today equals: Date yesterday) >>> false" ^self year = aDate year and: [ self monthIndex = aDate monthIndex and: [ self dayOfMonth = aDate dayOfMonth ] ]lastIndexOf: anElement startingAt: lastIndex ifAbsent: exceptionBlock "Answer the index of the last occurrence of anElement within the receiver. If the receiver does not contain anElement, answer the result of evaluating the argument, exceptionBlock." "(#(a b a d a) lastIndexOf: #a startingAt: 1 ifAbsent: 7) >>> 1" "(#(e b a d e) lastIndexOf: #a startingAt: 4 ifAbsent: 7) >>> 3" lastIndex to: 1 by: -1 do: [:index | (self at: index) = anElement ifTrue: [^ index]]. ^ exceptionBlock value| | . :a221001xc*Tests-unix-64-Roassal-Chart-Tests-Test.xml29([#() sum] on: CollectionIsEmpty do: ['oops']) >>> 'oops'add: newObject after: oldObject "Add the argument, newObject, as an element of the receiver. Put it in the sequence just succeeding oldObject. Answer newObject. Raises an error if oldObject is not found" "(OrderedCollection new add: 41; add: 42 after: 41; yourself) asArray >>> #(41 42)" "(OrderedCollection new add: 41; add: 42 after: 41; add: 43 after: 41; yourself) asArray >>> #(41 43 42)" ^self insert: newObject before: (self find: oldObject) + 1121 + 2 )-2 reciprocal >>> (-1/2)0*#(1 2 3 4) unzip first asArray >>> #(1 3)(#(1 3 5 7 11 15 23) findBinaryIndex: [ :arg | 12 - arg ] do: [ :found | found ] ifNone: [ :a :b | 'between: ', {a. b} printString ]) >>> 'between: #(5 6)'[ :a a1000100-316r00A1add21333331.0a|| a130!#(1 2) asArray == #(1 2) >>> true'1234' asFourCode >>> 825373492(false xor: [true]) >>> trueLike in SQL operation - Split the recievers contents into collections of elements for which keyBlock returns the same results, and return those collections allowed by selectBlock.23(#(1 5 10) detectIndex: [ :each | each > 3 ]) >>> 2200 """""n""""""2 slowFactorial >>> 2 W01-Welcome21{ [ ( -10 hexString >>> '-16rA'1between: #(7 8)@03Return a String with the JSON serialization of object. Note that the object graph can only contain lists (Array) and maps (Dictionary)2'bar' asSortedCollection asArray >>> {$a. $b. $r}.false & false >>> false1-('Hello, World!' reject: #isLetter) >>> ', !'1360?({1. 2. 3. 4. 5} shuffleBy: (Random seed: 42)) >>> #(1 2 5 4 3)1$' isFinalQuote >>> false5"fear is the little death that the.21e27117:(#(a b c d e f) difference: #(a b z k))>>> #(#c #d #e #f)e6550515!""" 0 """ n """ . """ n """ 0 """bX X X withUnixLineEndings "Answer a new instance where all occurrences of CRLF and LF are substituted with LF." "(('asa' , String cr , 'asa') withUnixLineEndings at: 4) >>> Character lf" ^ self withLineEndings: String lf02=Tests-unix-64-Calypso-SystemTools-QueryBrowser-Tests-Test.xml243.1479-5abcd3111120044667685999A4400DBBBBC((#(a b c d e) identityIndexOf: #x) >>> 0zmax "Answer a number that is the maximum of the x and y of the receiver." "(100@200) max >>> 200" ^ self x max: self ywsecond "1 second printString >>> '0:00:00:01'" "(1 minute + 1 second) printString >>> '0:00:01:01'" ^ self seconds1242('Five is {1}.' format: { 1 + 4}) >>> 'Five is 5.'000003apppp X-1.5 rounded >>> -2;(Date year: 2018 month: 9 day: 28) mmddyyyy >>> '9/28/2018'<('*' join: #('WWWWW' 'W EW' 'zzzz')) >>> 'WWWWW*W EW*zzzz'00000222222888884AAsecond "Answer a number that represents the number of complete seconds in the receiver's time part, after the number of complete minutes has been removed." "(DateAndTime fromString: '2004-02-29T13:33:12+02:00') second >>> 12" ^ self localSeconds \\ 60%({1@ -4. -10@1} sum: #abs) >>> (11@5)21010000010003343500136r1halt"(10 printStringBase: 2) >>> '1010'11test te string10a10.511 #(8 5 3 9) sorted >>> #(3 5 8 9)3Returns whether the receiver contains the argument.0(nil ifNil: [42] ifNotNil: [:o | o +3 ] ) >>> 42Point instanceSide >>> Point1440015$(nil ifNotNil: [:o | o +3 ]) >>> nil11111110000000002222222222222-0.9//0.4 >>> -30((3 to: 9 by: 2) allSatisfy: #isPrime) >>> false2jAnswer an array of non-empty substrings from the receiver separated by one or more whitespace characters.| T |Xt#( 1 ). #( 2 )120sAnswer whether the receiver includes, anywhere in its nested structure, a string that has testString as a substringSnick314#Tests-unix-64-Epicea-Tests-Test.xml231A00####################0;Tests-unix-64-System-BasicCommandLineHandler-Tests-Test.xmlcool1e1 e1404132310092LOL19=Return the class of STON lists, Array, a system wide constantm(Array streamContents: [:stream | #(1 2 3) allButLastDo: [:each | stream nextPut: (each + 10)]]) >>> #(11 12)d | TTTTTT | tttttt n. ^ tttttt3611B(#(1 1 2 2 3 3) runningAverage: 2) >>> {1 . (3/2) . 2 . (5/2) . 3}1(1@2) isFloatPoint >>> falseFirst N characters10 #(1 2 3) negated >>> #(-1 -2 -3)4V('Hello, world!' collect: [:e | e isLetter ifTrue: e ifFalse: $-]) >>> 'Hello--world-'1628?(STON fromString: '#foo : 100') class >>> STON associationClass01 a2aecAnswer an instance of me containing the same associations as the argument. If the same key appears twice, the last one enumerated will win\ aCollection "Return all the elements in self that are not in aCollection. Alias of difference:" "#(10 20 30) \ (0 to: 15) >>> #(20 30)" "'abc' \ 'cbe' >>> 'a'." ^ self difference: aCollectionEMight be compiled inline for speed, see RBMessageNode>>#isInlineIfNil2554315Unexpected block parameter101foo < 4 ) ] } """ ppp """ n """. """ ^ n """ 7Return a color from its RGB components (0 - 1.0 floats)1yGiven a collection returns in one pass two collections containing each odd and even elements in respective subcollectionsabcS((Date year: 2018 month: 9 day: 28) addMonths: 3) printString>>> '28 December 2018'221;foo foo Point[1,/*comment*/2]2is0Ncollect: aBlock "Evaluate aBlock with each of my elements as the argument. Collect the resulting values into a collection that is like me. Answer the new collection. Override superclass in order to use addLast:, not at:put:." "(#(1 2 3) asOrderedCollection collect: [ :v | v * 10 ]) asArray >>> #(10 20 30)" "(#(1 2 3) asOrderedCollection collect: [ :v | 10 ]) asArray >>> #(10 10 10)" | newCollection | newCollection := self speciesForTransform new: self size. firstIndex to: lastIndex do: [ :index | newCollection addLast: (aBlock value: (array at: index)) ]. ^ newCollectionkkkkk XX kkkkk 0010002230:00:00:00.0010000013 "unfinished2, 22lastIndexOf: anElement ifAbsent: exceptionBlock "Answer the index of the last occurrence of anElement within the receiver. If the receiver does not contain anElement, answer the result of evaluating the argument, exceptionBlock." "(#(a b a d a) lastIndexOf: #a ifAbsent: 7) >>> 5" "(#(a b a d e) lastIndexOf: #c ifAbsent: 7) >>> 7" ^self lastIndexOf: anElement startingAt: self size ifAbsent: exceptionBlockpermutationsDo: aBlock "Repeatly value aBlock with a single copy of the receiver. Reorder the copy so that aBlock is presented all (self size factorial) possible permutations." "(Array streamContents: [:stream | (1 to: 3) permutationsDo: [:each | stream nextPut: each copy]]) >>> #(#(1 2 3) #(1 3 2) #(2 1 3) #(2 3 1) #(3 2 1) #(3 1 2))" self shallowCopy permutationsStartingAt: 1 do: aBlockfoo:h(String streamContents: [:s| 'abcd' asStringOn: s delimiter: ', ' last: ' and ']) >>> 'a, b, c and d'71010'%' expandMacros >>> ''311 'abc' >= 'def' >>> false14/Negated value of all elements in the collectionNTests-unix-64-Calypso-SystemPlugins-InheritanceAnalysis-Queries-Tests-Test.xml(24 min: 20 max: 5) >>> 20001+Concatenate the receiver with the argument.ABCppppXppp XX n XX n X XXXXXX11101003#( #( 0 1r2 3 )21cbe20}Answer the value of trueAlternativeBlock. Execution does not actually reach here because the expression is compiled in-line.34@Tests-unix-64-Calypso-SystemPlugins-Flags-Queries-Tests-Test.xmlqcollect: aBlock into: aCollection "Evaluate aBlock with each of the receiver's elements as the argument. Collect the resulting values into aCollection. Answer aCollection." "({10. 20} collect: [:x|x+1] into: {'a'. 'b'. 'c'}) >>> {11. 21. 'c'.}" "('hello' collect: #asciiValue into: Set new) >>> #(104 101 108 111) asSet" ^aCollection fillFrom: self with: aBlock"Point class instanceSide >>> Point111#(Color red diff: Color red) >>> 0.0=do: aBlock without: anItem "Enumerate all elements in the receiver. Execute aBlock for those elements that are not equal to the given item" "(String streamContents: [:s | #(10 20 30) do: [:each | s << each asString] without: 20]) >>> '1030'" ^ self do: [ :each | anItem = each ifFalse: [ aBlock value: each ] ]!u u. X X X X X. X X3]select: selectBock thenDo: aBlock "Refer to the comment in Collection>>#select:thenDo:" "(Array streamContents: [:stream | #(1 2 3 4) select: [:each | each > 2 ] thenDo: [:each | stream nextPut: each + 10]]) >>> #(13 14)" | each | 1 to: self size do: [ :index | (selectBock value: (each := self at: index)) ifTrue: [ aBlock value: each ]]20"pppp AAAAAAAAAAA ^ aaaaaaaaaaa s n23432JResults are not defined for base smaller than 2 and non-integer arguments.13029a421collect: aBlock as: aClass "Evaluate aBlock with each of the receiver's elements as the argument. Collect the resulting values into an instance of aClass. Answer the resulting collection." "(#(10 15 22 789) collect: [:x | x//10] as: Set) >>> #(1 2 78) asSet" "('hello' collect: #asciiValue as: Array) >>> #(104 101 108 108 111)" ^(aClass new: self size) fillFrom: self with: aBlock5('Ab cd ef Ab cd' allRangesOfSubstring: 'zz') >>> #()22r115 MockPackage HELLOWORLD -9 % 4 >>> 3Example of usages:-42e,foo | a | a := 1. ^ [ :a | a ] value: 10 + a'2N' initialIntegerOrNil >>> 2201FF00002.3029490834938990000000141if2{} isEmpty >>> true2.302949083493849bar1growAtLast "Add new empty slots to the end of array, while keeping the empty slots at the front." "OrderedCollection new capacity >>> 10" "(OrderedCollection new growAtLast; capacity) >>> 20" | newArray | newArray := self class arrayType new: (array size * 2 max: 1). newArray replaceFrom: firstIndex to: lastIndex with: array startingAt: firstIndex. array := newArray23[ | a b20101fredJ((RBScanner on: 'Pharo (, { exist ]' readStream) next; next) value >>> $(us0vector07Answer the previous date whose weekday name is dayName.bObject := Object1202018000 rxe20to33322014-4=Return true if the receiver is sorted by the given criterion.2(1929 truncateTo: 10) >>> 1920foo < bar: 1 + 1 > 1e1e1c'on: aStream "Create a scanner stream of program tokens on the argument. Users can then use stream API to consume tokens." "((RBScanner on: 'Pharo (, { exist ]' readStream) next; next) value >>> $(" | scanner | scanner := self new on: aStream. scanner step; stripSeparators. ^scanner11'0002345' isAllDigits >>> trueb1File8('fred the bear' copyWithoutAll: 'aeiou ') >>> 'frdthbr'122c412c111e0d2841082subtractDate: aDate "Answer the number of days between self and aDate" "((Date year: 2018 month: 9 day: 28) subtractDate: '2018-09-27') >>> 1" ^ (self start - aDate asDateAndTime) daysEvaluate aBlock with each of the receiver's elements as the argument. Answer the first element for which aBlock evaluates to true. If none evaluate to true, then evaluate the argument, exceptionBlock.3YCreate a dictionary from the keys and values arguments which should have the same length.1255oAnswer whether the receiver sorts before aString. The collation order is simple ascii (with case differences).8-10011000442222300665557^Return whether the receiver is ... one of these https://www.compart.com/en/unicode/category/MeDetails: recursively split the range to be sorted into two halves, mergesort each half, then merge the two halves together. An extra copy of the data is used as temporary storage and successive merge phases copy data back and forth between the receiver and this copy. The recursion is set up so that the final merge is performed into the receiver, resulting in the receiver being completely sorted.50.5202+(0 printShowingDecimalPlaces: 2) >>> '0.00'4love>(1024 * 1024 * 1024) humanReadableByteSizeString >>> '1.00 GB'220(String streamContents: [ :str| ((FileSystem workingDirectory / 'book-result' / 'W01-Welcome') relativeToReference: FileSystem workingDirectory) printPathOn: str]) >>> 'book-result/W01-Welcome'4640dJust like reverseWith:do: except that the iteration index supplies the second argument to the block.)(#() ifNotEmpty: [:x| x average]) >>> #()455 fred the bearmilliSeconds "2 milliSeconds printString >>> '0:00:00:00.002'" "(1 second + 2 milliSeconds) printString >>> '0:00:00:01.002'" ^ Duration milliSeconds: self1100#(1 2 3 0) isSorted >>> false4 #( #'^' 1 )72-3Evaluate aBlock for each of the receiver's elements and answer the list of all resulting values flatten one level. Assumes that aBlock returns some kind of collection for each element. Equivalent to the lisp's mapcanJ('Ab cd ef Ab cd' allRangesOfSubstring: 'cd') >>> {(4 to: 5). (13 to: 14)}containsPoint: aPoint "Answer whether aPoint is within the receiver. Pay attention the self origin is considered less than but the corner is strict" "((0@0 corner: 100@100) containsPoint: 50@50) >>> true" "((0@0 corner: 100@100) containsPoint: 0@0) >>> true" "((0@0 corner: 100@100) containsPoint: 100@50) >>> false" "((0@0 corner: 100@100) containsPoint: 100@100) >>> false" ^origin <= aPoint and: [aPoint < corner]2004-02-29T13:33:12+02:00111102N(2 raisedTo: 8) >>> 2562021-('hello!' noneSatisfy: #isUppercase) >>> true(1 -> 'one') key >>> 144(10.12345 round: 2) >>> 10.12 0vector01031de5('hello' surroundedBy: ' abd ') >>> ' abd hello abd '1do: aBlock without: anItem "Enumerate all elements in the receiver. Execute aBlock for those elements that are not equal to the given item" "Refer to the comment in Collection|do:." "(Array streamContents: ([:stream | #(1 2 3) do: [:each | stream nextPut: (each + 10)] without: 2])) >>> #(11 13)" 1 to: self size do: [:index | anItem = (self at: index) ifFalse:[aBlock value: (self at: index)]]400/ """ n """ ssss """ n """ ; """ ssss """ n """ *#(1 2 3 4) unzip second asArray >>> #(2 4)[1)2].(#(1 2 3 4) intersection: #(3 4 5)) >>> #(3 4)2222220000111111i(String streamContents: [:s| { 10. 'hello'. $x } printOn: s delimiter: ', ']) >>> '10, ''hello'', $x'/Tests-unix-64-Collections-Native-Tests-Test.xml20:B X0c20910;Tests-unix-64-SystemCommands-MessageCommands-Tests-Test.xmlt({10. 20} asOrderedCollection addAll: {20. 30. 30. 40.}; yourself) >>> {10. 20. 20. 30. 30. 40.} asOrderedCollection-234.567333&((100@200) min: (30@400)) >>> (30@200)303r1234541hello0pppp AAAA ^ aaaa s n foo < + > bar:(Tests-unix-64-BeautifulComments-Test.xml11220vector00pharo.Tests-unix-64-System-Installers-Tests-Test.xml1000Evaluate aBlock with each of the receiver's elements as the argument. This is the general foreach method, but for most standard needs there is often a more specific and simpler method.$0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ200011213141100000102one230Sort this array using aSortBlock. The block should take two arguments and return true if the first element should preceed the second one.0vector0 Print elements on a stream separated with a delimiter between all the elements and with a special one before the last like: 'a, b and c'. Uses #asString instead of #print: Note: Feel free to improve the code to detect the last element. (#(1 2) ifEmpty: [0]) >>> #(1 2)e0 Answer the index of the last occurrence of anElement within the receiver. If the receiver does not contain anElement, answer the result of evaluating the argument, exceptionBlock.zRound the decimal part of the receiver to be limited to the number of wished decimal. Only leave a fixed amount of decimalO( #(1 2 3) flatCollectAsSet: [:each | { each. each+1 } ] ) >>> #(1 2 3 4) asSetEvaluate aBlock with the elements of the receiver. If aBlock returns true for any element return true. Otherwise return false.abc300vector0((40@40 scaleTo: 400@400) >>> (10.0@10.0)c11, 0vector0112003*splitOn: splitter "Split a collection of objects based on a splitter. splitter - can be a subsequence, a Block or a Regex (String receiver only). Any other object used as a splitter is treated as an Array containing that object." "(#(1 2 3 3 4 1 2 3 5 4 6) splitOn: 4) >>> #(#(1 2 3 3) #(1 2 3 5) #(6))asOrderedCollection" "(#(1 2 3 3 4 1 2 3 3 5 6) splitOn: #(3 3)) >>> #(#(1 2) #(4 1 2) #(5 6)) asOrderedCollection" "(#(2 2 3 3 4 1 2 3 3 5) splitOn: [:each | each > 3])>>> #(#(2 2 3 3) #(1 2 3 3) #()) asOrderedCollection" ^ splitter split: self2Return a new empty collection based on the speciesAAnswer how many of the receiver's elements are equal to anObject.3)Optimized version of Collection>>#select:00223001524-2/foo/gloops.tazis ' hello '22""""" 1203574510Tests-unix-64-Refactoring-Changes-Tests-Test.xml015411303102$('pharo' beginsWith: 'pha') >>> true-(#(10 20) ifNotEmpty: [:x| x average]) >>> 1502abc(#(w x y z) atPin: 2) >>> #x10-310200000BBB08888888888888880EEE09999999999999990HHH0,Evaluate aBlock with my elements taken n at a time. Ignore any leftovers at the end. Allows use of a flattened array for things that naturally group into groups of n. If aBlock has a single argument, pass it an array of n items, otherwise, pass the items as separate arguments. See also pairsDo:101522Add returns the object itself2Tests-unix-64-Spec2-Morphic-Backend-Tests-Test.xml1 max: 2 + 3 abs2lovesplitOn: splitter indicesDo: aBlock "Perform an action specified as aBlock (with a start and end argument) to each of the indices of the receiver element that have been identified by splitting the receiver using the splitter argument. splitter - can be a subsequence, a Block or a Regex (String receiver only). Any other object used as a splitter is treated as an Array containing that object." "(String streamContents: [:s | 'Pharo is cool' splitOn: Character space indicesDo: [ :start :end | s << 's:' << start asString << ' ' << 'e:' << end asString << ' ' ]]) >>> 's:1 e:5 s:7 e:8 s:10 e:13 '" ^ splitter split: self indicesDo: aBlockedef&Convert the receiver in a date object.10%Point class classSide >>> Point class112paddedWith: otherCollection do: twoArgBlock "Evaluate twoArgBlock with corresponding elements from this collection and otherCollection. Missing elements from either will be passed as nil." "(Array streamContents: [:stream | #(10 20 30) paddedWith: #(40 50 60) do: [:first :second | stream nextPut: (first + second)]]) >>> #(50 70 90) " "(Array streamContents: [:stream | #(10 20 30) paddedWith: #(40 50) do: [:a :b | stream nextPut: {a. b} ]]) >>> #(#(10 40) #(20 50) #(30 nil)) " "(Array streamContents: [:stream | #(10 20) paddedWith: #(40 50 60) do: [:a :b | stream nextPut: {a. b} ]]) >>> #(#(10 40) #(20 50) #(nil 60))" 1 to: (self size max: otherCollection size) do: [:index | twoArgBlock value: (self at: index ifAbsent: []) value: (otherCollection at: index ifAbsent: [])](nil)1.5 rounded >>> 2sort "Sort this collection into ascending order using the '<=' operator." "{8. 5. 3. 9} sort >>> #(3 5 8 9)" "{#a. #b. #z. #d} sort >>> #(a b d z)" self sort: [:a :b | a <= b]51d205 n uuuuuu 0:00:00:0251224449[:a b]=Answer a copy of the receiver without any duplicated elements12 hexString >>> '16rC'averageIfEmpty: aBlock "This method return the average of the collection if it is not empty. In the other case, it return the value of the block. It means the user the user of this method decide of the return value." "(#(10) averageIfEmpty: [ 0 ]) >>> 10" "(#() averageIfEmpty: [ 0 ]) >>> 0" "({3@5. 7@ -4} averageIfEmpty: [0@0]) >>> (5@(1/2))" "({} averageIfEmpty: [0@0]) >>> (0@0)" self ifEmpty: [ ^ aBlock value ]. ^ self averageColor red green >>> 0.0xhelloMAnswer a String made up from the receiver whose characters are all lowercase.0vector42addMonths: monthCount "((Date year: 2018 month: 9 day: 28) addMonths: 3) printString>>> '28 December 2018'" |year month maxDaysInMonth day | year := self year + (monthCount + self monthIndex - 1 // 12). month := self monthIndex + monthCount - 1 \\ 12 + 1. maxDaysInMonth := Month daysInMonth: month forYear: year. day := self dayOfMonth min: maxDaysInMonth. ^ Date year: year month: month day: dayw220ifFalse: alternativeBlock "Since the condition is true, the value is the true alternative, which is nil. Execution does not actually reach here because the expression is compiled in-line." "(true ifFalse: [ true ]) >>> nil" ^nil45102415?Answer whether the receiver begins with the given prefix string?({1. 2. 3. 4. 5} shuffleBy: (Random seed: 42)) >>> #(1 2 5 4 3)320021/('word before index' wordBefore: 16) >>> 'inde' ######X#####b1111#(# ## #ab #10 #. 10)1 + 21[ 0 ^ n n ^ n 0abcisFloatPoint "Return true if both of my x and y coordinates are represented by float values, otherwise false" "(1@2) isFloatPoint >>> false" "(1@2.2) isFloatPoint >>> false" "(1.3@2.2) isFloatPoint >>> true" "((1/3)@(2/2)) isFloatPoint >>> false" ^ x isFloat and: [ y isFloat ]3MPairwise integer quotient of two sequenceable collections of the same length.21M('fear is the little death that the.' charactersExactlyMatching: 'the') >>> 0\Answer the eighth element of the receiver. Raise an error if there are not enough elements.d353(0@5) guarded >>> (1@5)[ :a | a := 10. a ]1002000CommandLine handler processwisControlOther "Return whether the receiver is one of these characters: backspace, delete, escape, arrowUp, arrowLeft, arrowDown, arrowRight, pageUp, pageDown, end, home, nbsp, insert" "Character delete isControlOther >>> true" "Character backspace isControlOther >>> true" "Character space isControlOther >>> false" "Character home isControlOther >>> true" "Character pageUp isControlOther >>> true" "Character arrowDown isControlOther >>> true" "Character end isControlOther >>> true" "$) isControlOther >>> false" "$> isControlOther >>> false" "$} isControlOther >>> false" ^ self characterSet isControlOther: self10241c1-3.1479sortedElements "Answer with a collection of elements with counts, sorted by element." "#(1 2 2 3 1 1 1) asBag sortedElements >>> {1->4. 2->2. 3->1}" ^contents associations sort; yourself221192041 e1002510030:00:00:00.001>Tests-unix-64-SystemCommands-RefactoringSupport-Tests-Test.xml9('pharo' beginsWith: 'Pha' caseSensitive: false) >>> true10301foo: a x: a y: b [ :a :a :b | | a a b | a + a + b6125.|a| a := #(1 2 3). a asNewArray == a >>> false#() asBag = Bag new >>> true?Answer true if the receiver starts with the argument collectionUnmatched ' in string literal. 001022230aBcz2#(^1)6groupsOf: n atATimeCollect: aBlock "Evaluate aBlock with my elements taken n at a time. Ignore any leftovers at the end. Allows use of a flattened array for things that naturally group into groups of n. If aBlock has a single argument, pass it an array of n items, otherwise, pass the items as separate arguments. See also pairsDo:" "(#(16 17 17 16 18 17 18 19 19 19 18 19 19 20 19 20 19 20 20 20 19 20) groupsOf: 7 atATimeCollect: [ :x | x ]) >>> #(#(16 17 17 16 18 17 18) #(19 19 19 18 19 19 20) #(19 20 19 20 20 20 19))" "(#(1 1 1 10 10 10 100 100 100) groupsOf: 3 atATimeCollect: [ :x :y :z | x + y + z]) >>> #(3 30 300)" "(#(1 1 1 10 10 10 100 100 100) groupsOf: 3 atATimeCollect: [ :x | x ]) >>> #(#(1 1 1) #(10 10 10) #(100 100 100))" | passArray | passArray := aBlock numArgs <= 1. ^ (n to: self size by: n) collect: [ :index | | args | args := (self copyFrom: index - n + 1 to: index) asArray. passArray ifTrue: [ aBlock value: args ] ifFalse: [ aBlock valueWithArguments: args ] ]2001.0#FFCCAAzort12decimalDigitLength "Answer the number of digits printed out in base 10. Note that this only works for positive SmallIntegers up to 64-bits." "1 decimalDigitLength >>> 1" "100000000 decimalDigitLength >>> 9" "SmallInteger maxVal decimalDigitLength >>> 19" ^self < 10000 ifTrue: [self < 100 ifTrue: [self < 10 ifTrue: [1] ifFalse: [2]] ifFalse: [self < 1000 ifTrue: [3] ifFalse: [4]]] ifFalse: [self < 100000000 ifTrue: [self < 1000000 ifTrue: [self < 100000 ifTrue: [5] ifFalse: [6]] ifFalse: [self < 10000000 ifTrue: [7] ifFalse: [8]]] ifFalse: [self < 1000000000000 ifTrue: [self < 10000000000 ifTrue: [self < 1000000000 ifTrue: [9] ifFalse: [10]] ifFalse: [self < 100000000000 ifTrue: [11] ifFalse: [12]]] ifFalse: [self < 10000000000000000 ifTrue: [self < 100000000000000 ifTrue: [self < 10000000000000 ifTrue: [13] ifFalse: [14]] ifFalse: [self < 1000000000000000 ifTrue: [15] ifFalse: [16]]] ifFalse: [self < 1000000000000000000 ifTrue: [self < 100000000000000000 ifTrue: [17] ifFalse: [18]] ifFalse: [self < 10000000000000000000 ifTrue: [19] ifFalse: [20]]]]]] '' expandMacros >>> String cr | a | | a###'1101122311004005560('LOL' detect: #isLowercase ifNone: [$X]) >>> $X0vector0 a: --junit-xml-output450.0330360.03| a a | a := 10. ^ a2130(#(a b a d e) lastIndexOf: #c ifAbsent: 7) >>> 7,(3 ifNotNil: [:o | o +3 ] ifNil: [42]) >>> 63oasStringOn: aStream delimiter: delimString last: lastDelimString "Print elements on a stream separated with a delimiter between all the elements and with a special one before the last like: 'a, b and c'. Uses #asString instead of #print: Note: Feel free to improve the code to detect the last element." "(String streamContents: [:s| 'abcd' asStringOn: s delimiter: ', ' last: ' and ']) >>> 'a, b, c and d'" | n sz | n := 1. sz := self size. self do: [:elem | n := n + 1. aStream nextPutAll: elem asString] separatedBy: [ aStream nextPutAll: (n = sz ifTrue: [lastDelimString] ifFalse: [delimString])]221[:a :b]a32220basenameWithoutExtension: anExtension "Returns the basename without specified extension (if any) " "('/foo/gloops.taz' asPath basenameWithoutExtension: 'taz') >>> 'gloops'" | extensionWithDelimiter | extensionWithDelimiter := anExtension copyWithFirst: self extensionDelimiter. ^ (self basename endsWith: extensionWithDelimiter) ifTrue: [ self basename allButLast: extensionWithDelimiter size ] ifFalse: [ self basename ]it212 { 1 ]. 2 }debetween: #(23 nil)X######( 1 + 220vector03"a" #[ "b" 1 "c" 2 "d" ] "e"let us make seperate strings245a5b1OrderedCollection new class >>> OrderedCollectiontrue ==> [false] >>> false331XnX nX2'hello1317304029| a b'Now is the time for all good people to come to the aid of the cause of world peace. It is just fine, even desirable, to love your country, if that means wanting it to play a beneficial role in the course of world events and be the best possible example of a good society. But if it means wanting dominion over the rest of the world, it is not love but defensiveness or self-glorification, and will lead only to oblivion.' piecesCutWhere: [:a :b| a = $. and: [b isSeparator]]20212257110pharo.(#(a b c d e) indexOf: #c startingAt: 4) >>> 0join: aSequenceableCollection "Append the elements of the argument, aSequenceableCollection, separating them by the receiver." "(Character space join: #('Pharo' 'is' 'cool')) >>> 'Pharo is cool'" ^ (Array with: self) join: aSequenceableCollection30"'3123' isAllAlphaNumerics >>> true200foo < bar: 1 > 13b1.0594630943592953XX sss9301Since the condition is false, answer the value of the false alternative, which is nil. Execution does not actually reach here because the expression is compiled in-line.4nXb1527->3100.In {1} you can escape { by prefixing it with \#() isEmptyOrNil >>> true That is true!65(Character delete isControlOther >>> true1(1 decimalDigitAt: 2) >>> 0|  beginsWith: prefix "Answer whether the receiver begins with the given prefix string. The comparison is case-sensitive." "IMPLEMENTATION NOTE: following algorithm is optimized in primitive only in case self and prefix are bytes like. Otherwise, if self is wide, then super outperforms, Otherwise, if prefix is wide, primitive is not correct" "('pharo' beginsWith: '') >>> true" "('pharo' beginsWith: 'pharo-project') >>> false" "('pharo' beginsWith: 'phuro') >>> false" "('pharo' beginsWith: 'pha') >>> true" prefix ifEmpty: [ ^true ]. (self class isBytes and: [ prefix class isBytes ]) ifFalse: [^super beginsWith: prefix]. self size < prefix size ifTrue: [^ false]. ^ (self findSubstring: prefix in: self startingAt: 1 matchTable: CaseSensitiveOrder) = 1 334443555315304#1r0phurobfindSelector "Extract a selector with keyword parts from the receiver. While this doesn't give a true parse, in most cases it does what we want, in where it doesn't, we're none the worse for it." "'isSymbol' findSelector >>> #isSymbol" "'x isSymbol' findSelector >>> nil" "'x isSymbol: 33' findSelector >>> #isSymbol:" "'between:and:' findSelector >>> #'between:and:'" "'2 between: 0 and: 4' findSelector >>> #'between:and:'" "'2 between: ( 1 and: 4)' findSelector >>> #between:" "'( 1 and: 4)' findSelector >>> nil" | sel possibleParens | sel := self trimBoth. sel := sel copyReplaceAll: '#' with: ''. sel := sel copyReplaceAll: '[' with: ' [ '. (sel includes: $:) ifTrue: [sel := sel copyReplaceAll: ':' with: ': '. "for the style (aa max:bb) with no space" possibleParens := sel findTokens: Character separators. sel := self species streamContents: [:s | | level | level := 0. possibleParens do: [:token | | n | (level = 0 and: [token endsWith: ':']) ifTrue: [s nextPutAll: token] ifFalse: [(n := token occurrencesOf: $( ) > 0 ifTrue: [level := level + n]. (n := token occurrencesOf: $[ ) > 0 ifTrue: [level := level + n]. (n := token occurrencesOf: $] ) > 0 ifTrue: [level := level - n]. (n := token occurrencesOf: $) ) > 0 ifTrue: [level := level - n]]]]]. sel isEmpty ifTrue: [^ nil]. sel isOctetString ifTrue: [sel := sel asOctetString]. Symbol hasInterned: sel ifTrue: [:aSymbol | ^ aSymbol]. ^ nil&('aXb' escapeCharacter: $X) >>> 'aXXb'aLIf the receiver is false (i.e., the condition is false), then the value is the false alternative, which is nil. Otherwise answer the result of evaluating the argument, alternativeBlock. Create an error notification if the receiver is nonBoolean. Execution does not actually reach here because the expression is compiled in-line.('*' match: 'zort') >>> true15-OrderedCollection new asArray class >>> Arraya10findBinaryIndex: aBlock "Search for an element in the receiver using binary search. The argument aBlock is a one-element block returning 0 - if the element is the one searched for <0 - if the search should continue in the first half >0 - if the search should continue in the second half If no matching element is found, raise an error." "(#(1 3 5 7 11 15 23) findBinaryIndex: [ :arg | 11 - arg ]) >>> 5" ^ self findBinaryIndex: aBlock do: [ :found | found ] ifNone: [ self errorNotFound: aBlock ]%('hello' includesAny: 'hop') >>> truehll surroundedBySingleQuotes "Answer the receiver with leading and trailing quotes." "'hello' surroundedBySingleQuotes >>> '''hello'''" "'he''llo' surroundedBySingleQuotes >>> '''he''llo'''" "' hello ' surroundedBySingleQuotes >>> ''' hello '''" ^ self surroundedBy: ($' asString)S(#(10 20 30) withIndexCollect: [:each :index | each + (index * 2)]) >>> #(12 24 36)IMPLEMENTATION NOTE: following algorithm is optimized in primitive only in case self and prefix are bytes like. Otherwise, if self is wide, then super outperforms, Otherwise, if prefix is wide, primitive is not correct 0000000index out of rangeTreat myself as the coeficients of a polynomial in X. Evaluate it with thisX. First element is the constant and last is the coeficient for the highest power. #(1 2 3) polynomialEval: 2 is 3*X^2 + 2*X + 1 with X = 2c041minutes "2 minutes printString >>> '0:00:02:00'" "(1 hour + 2 minutes) printString >>> '0:01:02:00'" ^ Duration minutes: self#Tests-unix-64-Kernel-Tests-Test.xml*('salkjsdlkgfeesd' findString: 'sd') >>> 6fghi 0000000000'foo10' endsWithDigit >>> true503400round: numberOfWishedDecimal "Round the decimal part of the receiver to be limited to the number of wished decimal. Only leave a fixed amount of decimal" "(10.12345 round: 2) >>> 10.12 " ^(self asFraction round: numberOfWishedDecimal) asFloat9142XaX4aeiou 0:00:01:02{endsWith: suffix "Answer whether the receiver ends with the given prefix string. The comparison is case-sensitive." "IMPLEMENTATION NOTE: following algorithm is optimized in primitive only in case self and prefix are bytes like. Otherwise, if self is wide, then super outperforms, Otherwise, if prefix is wide, primitive is not correct" "('pharo' endsWith: '') >>> true" "('pharo' endsWith: 'project-pharo') >>> false" "('pharo' endsWith: 'phuro') >>> false" "('pharo' endsWith: 'aro') >>> true" "('pharo' endsWith: 'aRo') >>> false" | requiredStart | suffix ifEmpty: [ ^ true ]. (self class isBytes and: [ suffix class isBytes ]) ifFalse: [^super endsWith: suffix]. requiredStart := self size - suffix size + 1. requiredStart <= 0 ifTrue: [ ^false ]. ^ (self findSubstring: suffix in: self startingAt: requiredStart matchTable: CaseSensitiveOrder) = requiredStart6Remove the copies of elements, but keep the same orderincludes: anObject "Answer whether anObject is one of the receiver's elements." "(#(1 2 2 3 1 1 1) asBag includes: 5) >>> false" "(#(1 2 2 3 1 1 1) asBag includes: 1) >>> true" ^ contents includesKey: anObjectrNonevaluating conjunction. Answer the opposite of the the argument, alternativeBlock; since the receiver is true.%('abc' escapeCharacter: $X) >>> 'abc'y3.14159even " 0 even >>> true" " 2 even >>> true" "-2 even >>> true" " 3 even >>> false" "-3 even >>> false" ^(self bitAnd: 1) = 02/00111111111110004444444444422223005566666666666match: text "Answer whether text matches the pattern in this string. Matching ignores upper/lower case differences. Where this string contains #, text may contain any character. Where this string contains *, text may contain any sequence of characters." "('*' match: 'zort') >>> true" "('*baz' match: 'mobaz') >>> true" "('*baz' match: 'mobazo') >>>false" "('*baz*' match: 'mobazo') >>> true" "('*baz*' match: 'mozo') >>> false" "('foo*' match: 'foozo') >>> true" "('foo*' match: 'bozo') >>> false" "('foo*baz' match: 'foo23baz') >>> true" "('foo*baz' match: 'foobaz') >>> true" "('foo*baz' match: 'foo23bazo') >>> false" "('foo' match: 'Foo') >>> true" "('foo*baz*zort' match: 'foobazort') >>> false" "('foo*baz*zort' match: 'foobazzort') >>> true" "('*foo#zort' match: 'afoo3zortthenfoo3zort') >>> true" "('*foo*zort' match: 'afoodezortorfoo3zort') >>> true" ^ self startingAt: 1 match: text startingAt: 13Class structural inspection - Class/Metaclass shiftnsn""" s nssssn""" s nssssnn"""3+Tests-unix-64-Refactoring-UI-Tests-Test.xml#hello030vector09previous: dayName "Answer the previous date whose weekday name is dayName." "((Date year: 2018 month: 9 day: 28) previous: 'Sunday') printString >>> '23 September 2018'" | days | days := 7 + self weekdayIndex - (self class dayOfWeek: dayName) \\ 7. days = 0 ifTrue: [ days := 7 ]. ^ self subtractDays: days187(0@0 isInsideRectangle: (0@0 corner: 100@100)) >>> trueoops1;Convert to a ByteArray with the ascii values of the string.22010(false or: [true]) >>> true/ HHH E1III111111AAA17CBBBCCCOOOCCCCCCMMMCJ NNN 00 11 n n n 1 04findBinary: aBlock do: actionBlock ifNone: exceptionBlock "Search for an element in the receiver using binary search. The argument aBlock is a one-element block returning 0 - if the element is the one searched for <0 - if the search should continue in the first half >0 - if the search should continue in the second half If found, evaluate actionBlock with the found element as argument If no matching element is found, evaluate exceptionBlock, with the 'bounding' elements or nil as arguments." "(#(1 3 5 7 11 15 23) findBinary: [ :arg | 11 - arg ] do: [ :found | found ] ifNone: [ :a :b | 'between: ', {a. b} printString ]) >>> 11" "(#(1 3 5 7 11 15 23) findBinary: [ :arg | 12 - arg ] do: [ :found | found ] ifNone: [ :a :b | 'between: ', {a. b} printString ]) >>> 'between: #(11 15)'" "(#(1 3 5 7 11 15 23) findBinary: [ :arg | 0.5 - arg ] do: [ :found | found ] ifNone: [ :a :b | 'between: ', {a. b} printString ]) >>> 'between: #(nil 1)'" "(#(1 3 5 7 11 15 23) findBinary: [ :arg | 25 - arg ] do: [ :found | found ] ifNone: [ :a :b | 'between: ',{a. b} printString ]) >>> 'between: #(23 nil)'" ^ self findBinaryIndex: aBlock do: [ :foundIndex | actionBlock value: (self at: foundIndex) ] ifNone: [ :prevIndex :nextIndex | exceptionBlock cull: (prevIndex > 0 ifTrue: [ self at: prevIndex ]) cull: (nextIndex <= self size ifTrue: [ self at: nextIndex ]) ]storeStringBase: base length: minimum padded: zeroFlag "(10 storeStringBase: 16 length: 6 padded: true) >>> '16r00A'" ^ String streamContents: [:s| self storeOn: s base: base length: minimum padded: zeroFlag ]6Return number that represents digit at given position.)([:x | x + 1] cull: 13 cull: 12) >>> 14 <0000224455655597777855CCDDEDDDHFFFFGGDDICCBBBBBBAAAJ44333333NReturn the class of the couple class/metaclass. Useful to avoid explicit test.pharo4( #(1 #(2 3) #(4 #(5))) flattened ) >>> #(1 2 3 4 5)(Tests-unix-64-DebugPoints-Tests-Test.xmla := a. [ :a | [ :a | a := a15xaxc1$(200@200 scaleBy: 2@3) >>> (400@600)1a423.145(10 min: 20 max: 11) >>> 11N(false ifFalse: [ 'This statement is false!' ]) >>> 'This statement is false!'27 September 201840'('Hello' detectMax: #asciiValue) >>> $oincludesAll: aCollection "Answer whether all the elements of aCollection are in the receiver." "(#(10 20 30) includesAll: #(30 20)) >>> true" "(#(10 20 30) includesAll: #(30 40)) >>> false" "(#(10 20 30) includesAll: #()) >>> true" "('hello' includesAll: 'ho') >>> true" "('hello' includesAll: 'hop') >>> false" aCollection do: [:elem | (self includes: elem) ifFalse: [^ false]]. ^ trueeParse and materialize the STON representation in the character readStream, skipping C-style comments112This statement is false!(#(w x y z) atPin: 8) >>> #z912511024d2yfoo < bar: { 1 } > 10032011 51111144444$(#() anySatisfy: [ true ]) >>> false2345.8860 X wat: firstKey at: secondKey ifAbsent: aZeroArgBlock "Return the object stored in the second dictionary at secondKey. The second dictionary is accessed via the key firstKey. Execute aZeroArgBlock in case one of the key is wrong." " (OrderedDictionary new at: #top at: #below1 ifAbsent: [ 1 ]) >>> 1 " ^ dictionary at: firstKey at: secondKey ifAbsent: aZeroArgBlock |::a2121hWe are sorry but this method is unclear and will probably be removed. This method only returning false.0.1V{'one' -> 1. 'two' ->2} asDictionary >>> (Dictionary with: 'one' -> 1 with: 'two' ->2)410The low bits table can be obtained with: ((1 to: 8) inject: #[1] into: [:lowBits :rank | (lowBits copy at: 1 put: lowBits first + 1; yourself) , lowBits]) allButFirst. %((1 to:9 by:2) includes: 4) >>> false$fromStreamWithComments: readStream "Parse and materialize the STON representation in the character readStream, skipping C-style comments" "(STON fromStreamWithComments: 'Point[1,/*comment*/2]' readStream) >>> (1@2)" ^ (self reader on: (STONCStyleCommentsSkipStream on: readStream)) next103 Not foundh10 (50 to: 10 by: -5) anyOne >>> 5010 XXXXXXXXXXXd33#(100.1@200.9) ceiling >>> (101@201)11200192310010cprintPathOn: aStream delimiter: aCharacter "Print the receiver's path on aStream (without 'Path' prepended)" "(String streamContents: [ :str| ((FileSystem workingDirectory / 'book-result' / 'W01-Welcome') relativeToReference: FileSystem workingDirectory) printPathOn: str delimiter: $|]) >>> 'book-result|W01-Welcome'" (1 to: self size) do: [:index | aStream nextPutAll: (self at: index)] separatedBy: [aStream nextPut: aCharacter]Evaluate aBlock with each of the receiver's elements as the argument. Answer the element for which aBlock evaluates to the lowest number. If collection empty, return nil.u u. 0 X X X XX X 0. X X[H('<1s> vs <1p>' expandMacrosWith: 'it''em') >>> 'it''em vs ''it''''em'''11+Character arrowDown isControlOther >>> true107.5Answer a number that represents the number of complete minutes in the receiver' time part, after the number of complete hours has been removed.2002132233S(Date year: 2018 month: 9 day: 28) onPreviousMonth printString >>> '28 August 2018''{1. 2} asBag = {2. 1} asBag >>> truetFold the result of the receiver from right to left into aBlock. The argument aBlock must take two or more arguments.20 fred the bear20cadd: newObject withOccurrences: anInteger "Add newObject anInteger times to the receiver. Answer newObject." "({10. 20} asOrderedCollection add: 30 withOccurrences: 2) >>> 30" "({10. 20} asOrderedCollection add: 30 withOccurrences: 2; yourself) >>> {10. 20. 30. 30} asOrderedCollection" anInteger timesRepeat: [ self add: newObject ]. ^ newObject0Tests-unix-64-Kernel-Tests-WithCompiler-Test.xml.foo "a" "b" "c" "d" "e" "f" "g"  0223311102[:a:b]1$('foo*baz' match: 'foobaz') >>> true501That is false!whatever1.25s: #[ 1 a 2 ]2up1 first element ^ 1. 2. ^ 31 ; foo&(#(a b c d) at: 3 ifAbsent: #z) >>> #c:(#(2 3 4 5 5 6 2) copyWithoutAll: (4 to: 10)) >>> #(2 3 2)""" n """. """ n """12[ ^ 1 ]. 2. ^ 31220Nonevaluating disjunction. If the receiver is false, answer the value of the argument, alternativeBlock; otherwise answer true without evaluating the argument.XX n # n1Return a color with the given r, g, and b components specified as integers in the range [0..r]. This avoids the floating point arithmetic in the red:green:blue: message and is thus a bit faster for certain applications (such as computing a sequence of colors for a palette).311FEvaluating disjunction (OR) -- answer true since the receiver is true.1b2(1 minute + 1 second) printString >>> '0:00:01:01'0310(#() select: [true]) >>> #()92r00101000 highBit >>> 6CAnswer a number that is the maximum of the x and y of the receiver.#Tests-unix-64-ReleaseTests-Test.xml?Optimized version of SequenceableCollection>>#withIndexSelect: 0KNonevaluating conjunction -- answer with false since the receiver is false.2812a11(#(3 1 4 2) sorted: [:a :b| a>=b]) >>> #(4 3 2 1)zInclude newObject as one of the receiver's elements. Answer newObject. ArrayedCollections cannot respond to this message.4(#(1 3) anySatisfy: [ :each | each even ]) >>> falseanyOne "Answer a representative sample of the receiver. It raises an error when the collection is empty. This method can be helpful when needing to preinfer the nature of the contents of semi-homogeneous collections." "#(10 20 30) anyOne >>> 10" "'hello' anyOne >>> $h" "(50 to: 10 by: -5) anyOne >>> 50" " ([#() anyOne] on: SubscriptOutOfBounds do: [ :ex | 'whatever' ]) >>> 'whatever' " self emptyCheck. self do: [ :each | ^ each ]411.2 Pharo is <1s>H(('asa' , String cr , 'asa') withUnixLineEndings at: 4) >>> Character lf202LAdd a new object at the end of the collection, and returns the object itself4552 between:and:4124B('pharo' endsWith: 'project-pharo' caseSensitive: false) >>> false10.1214sum "This is implemented using a variant of the normal inject:into: pattern. The reason for this is that it is not known whether we're in the normal number line, i.e. whether 0 is a good initial value for the sum. Consider a collection of measurement objects, 0 would be the unitless value and would not be appropriate to add with the unit-ed objects." "#(1 2 4) sum >>> 7" "([#() sum] on: CollectionIsEmpty do: ['oops']) >>> 'oops'" "sum works with objects that understands + and - messages, like Points" "{1@5. 2@3. 4@7} sum >>> (7@15)" "or even Collections" "#((1 5 1) (2 3 3) (4 7 2)) sum >>> #(7 15 6)" | sum sample | self emptyCheck. sample := self anyOne. sum := self inject: sample into: [ :accum :each | accum + each ]. ^ sum - sample1319fred10020%(#(a b c d) allButLast: 2) >>> #(a b) between: d foobazzort 12r89abcd10vector01/2 reciprocal >>> 2 hello world!Uan OrderedCollection(ReCompositeExtractSetUpMethodRefactoring) should have been empty14VifNotNil: ifNotNilBlock ifNil: nilBlock "If the receiver is not nil, pass it as argument to the ifNotNilBlock block. else execute the nilBlock block" "Might be compiled inline for speed, see RBMessageNode>>#isInlineIfNil" "(nil ifNotNil: [:o | o +3 ] ifNil: [42]) >>> 42" "(3 ifNotNil: [:o | o +3 ] ifNil: [42]) >>> 6" ^ nilBlock value2o (Dictionary new at: #top at: #below1 put: 1; at: #top at: #below1 put: 2; at: #top at: #below1) >>> 2K(#('one' 'two' 'three' 'four') atAll: #(3 2 4)) >>> #('three' 'two' 'four')(#(1 3 5 7 11 15 23) findBinary: [ :arg | 11 - arg ] do: [ :found | found ] ifNone: [ :a :b | 'between: ', {a. b} printString ]) >>> 11202one,000011211153333411668889888B8877777777DDCCCE< aString "Answer whether the receiver sorts before aString. The collation order is simple ascii (with case differences)." " 'abc' < 'def' >>> true" " 'abc' < 'abc' >>> false" " 'def' < 'abc' >>> false" ^ (self compare: self with: aString) < 0 'elvis ' lastSpacePosition >>> 630020/Answer how many elements the receiver contains.(1 to: 10) isEmpty >>> falsea'b4X [ :aaa :bbb | | ccc ddd | aaa ]0Y({#a. #b. #z. #d. #i. #l} mergeSortFrom: 3 to: 5 by: [ :a :b | a<=b ]) >>> #(a b d i z l)4 002kEvaluate the block, unless I'm == nil (q.v.). If the receiver is not nil, pass it as argument to the block.5[Store the elements of valueArray into the slots of this collection selected by indexArray. ^ n. n. ^ n243201<(Date year: 2018 month: 9 day: 28) yyyymmdd >>> '2018-09-28'^^1 10000000018200102+surroundedBy: aString "Answer the receiver with leading and trailing aString." "('hello' surroundedBy: 'abd') >>> 'abdhelloabd'" "('hello' surroundedBy: ' abd ') >>> ' abd hello abd '" ^ self species streamContents: [ :s| s nextPutAll: aString. s nextPutAll: self. s nextPutAll: aString ]131/Return a copy with the first letter capitalized^Append the elements of the argument, aSequenceableCollection, separating them by the receiver.0.5aXb23542foo03300.01u u. X X X. X X27de31Negative numbers can't be raised to float powers.330:Xsu0 [ 1 ]. [ 2 ] That is true!1s1 s1158Tests-unix-64-Microdown-RichTextPresenter-Tests-Test.xml,Answer the current capacity of the receiver.hello1 *- 1 + 1 -- 1 + 1 - -132#(a b c d e) middle >>> #c6 002210#(3 5 7 7) average >>> (11/2) I return true if a method is an extension method. Which means that the methods is not packaged in the package of the class containing the method, but in another package.blast "Answer the last element of the receiver" "#(a b c d e) last >>> #e" ^ self at: self size30{1@2} copyEmpty >>> #()removeAllFoundIn: aCollection "Remove each element of aCollection which is present in the receiver from the receiver. Answer aCollection. No error is raised if an element isn't found. ArrayedCollections cannot respond to this message." "(#(10 20 10 10) asOrderedCollection removeAllFoundIn: #(10 20 30); yourself) >>> #(10 10) asOrderedCollection" aCollection do: [:each | self remove: each ifAbsent: []]. ^ aCollectionincludesSubstring: substring at: index "Answer true if the receiver contains the substring str exactly at index, false otherwise." "('abcdefgh' includesSubstring: 'de' at: 1) >>> false" "('abcdefgh' includesSubstring: 'de' at: 4) >>> true" | pos | pos := index - 1. ^ index > 0 & (self size - pos >= substring size) and: [ substring allSatisfy: [ :char | pos := pos + 1. (self at: pos) = char ] ]28cdfoo:+(#(a b c d e f g h ) first: 3) >>> #(a b c)204.00findString: substring "Answer the index of the first substring within the receiver. If the receiver does not contain substring, answer 0." "('salkjsdlkgfee' findString: 'al') >>> 2" "('salkjsdlkgfeesd' findString: 'sd') >>> 6" ^self findString: substring startingAt: 1hello421, 2, 3'indexOf: aCharacter "Return the index starting at 1 of the argument in the receiver, zero if not present." "('abcdf' indexOf: $a) >>> 1" "('abddf' indexOf: $k) >>> 0" aCharacter isCharacter ifFalse: [^ 0]. ^ self class indexOfAscii: aCharacter asciiValue inString: self startingAt: 1b20d1}>>> anObject "Return a pair. It is handy to support the tweaking of pharo doc expression. A pharo doc expression is a comment as the following one:" "4 + 3 >>> 7" "Pay attention when you write an executable comment for keyword-based method: surround with parentheses your expression because, otherwise the executable comment won't work as the message is binary." "(1 max: 1000) >>> 1000" "An executable comment must be in its own comment block (enclosed in double quotes) and can be multi-line for better readability. Code editor hint: you can double click on the inner side of a double quote to select the whole comment block, then Cmd+I to evaluate and inspect the whole executable comment." "Note: to be syntactically valid as an executable comment, there should be exactly one single triple > message send, and it should be the last statement." "| rectangles | rectangles := OrderedCollection new add: (Rectangle left: 5 right: 10 top: 0 bottom: 15); add: (Rectangle left: 0 right: 15 top: 5 bottom: 10); yourself. (Rectangle merging: rectangles) >>> (Rectangle left: 0 right: 15 top: 0 bottom: 15)" ^ self -> anObject#( #( 0 1r2 3 ) )}Search for an element in the receiver using binary search. The argument aBlock is a one-element block returning 0 - if the element is the one searched for <0 - if the search should continue in the first half >0 - if the search should continue in the second half If no matching element is found, evaluate exceptionBlock, with the 'bounding' elements as optional arguments.instanceSide "Return the class of the couple class/metaclass. Useful to avoid explicit test." "Point instanceSide >>> Point" "Point class instanceSide >>> Point" ^ selfGrepeat: aNumber "Returns a new string concatenated by itself repeated n times" "('abc' repeat: 3) >>> 'abcabcabc'" aNumber < 0 ifTrue: [ self error: 'aNumber cannot be negative' ]. ^ self species new: self size * aNumber streamContents: [ :stringStream | 1 to: aNumber do: [ :idx | stringStream nextPutAll: self ] ]EPut anObject at every index specified by the elements of aCollection.d1B(String streamContents: [:s| #() printElementsOn: s]) >>> '()'(#(1 3 5 7 11 15 23) findBinaryIndex: [ :arg | 25 - arg ] ifNone: [ :a :b | 'over index: ', a printString ]) >>> 'over index: 7' 0.67474094222355263%Answer the factorial of the receiver.That is false!32-6 2r. 3#( ;Return whether the receiver is one of these characters: _ababc10(1 hour + 1 minute) printString >>> '0:01:01:00'0darker Assignment to read-only variable-2dedh(OrderedCollection new add: 41; add: 42 after: 41; add: 43 after: 41; yourself) asArray >>> #(41 43 42)281 & &' 89Ten ' initialIntegerOrNil >>> nil| a b | !'foo' asCommaString >>> 'f, o, o''(#(1 2 3 4 5) select: #even) >>> #(2 4)1IMPLEMENTATION NOTE: following algorithm is optimized in primitive only in case self and suffix are bytes like. Otherwise, if self or suffix are wide strings, then slow version with asLowercase convertation, (primitive is not correct for wide strings)11.0#() asCommaStringAnd >>> ''$#( #':=' aa: #= #':=' #= cc: #'==' )('abcdf' indexOf: $a) >>> 1q(String streamContents: [:s | 'Pharo is cool' splitOn: Character space do: [:each | s << each ]])>>>'Pharoiscool'119(#(1 2 3) reduceLeft: [ :a :b | a - b ])>>> ((1 - 2) - 3)nXsss1sInclude anObject as one of the receiver's elements, but only if there is no such element already. Anwser anObject.b """ ^ """ n """ foo||bar||2eABA1601includesAny: aCollection "Answer whether any element of aCollection is one of the receiver's elements." "(#(10 20 30) includesAny: #(30 40)) >>> true" "(#(10 20 30) includesAny: #(50 40)) >>> false" "(#(10 20 30) includesAny: #()) >>> false" "('hello' includesAny: 'hop') >>> true" "('hello' includesAny: 'pwn') >>> false" aCollection do: [:elem | (self includes: elem) ifTrue: [^ true]]. ^ false655 kkkk XX kkkkcanySatisfy: aBlock "Evaluate aBlock with the elements of the receiver. If aBlock returns true for any element return true. Otherwise return false." "(#(1 3) anySatisfy: [ :each | each even ]) >>> false" "(#(1 2) anySatisfy: [ :each | each even ]) >>> true" "('hello world!' anySatisfy: [ :each | each isLetter ]) >>> true" "('hello world!' anySatisfy: [ :each | each isDigit ]) >>> false" "((4 to: 9) anySatisfy: #isPrime) >>> true" "((4 to: 50 by: 2) anySatisfy: #isPrime) >>> false" "(#() anySatisfy: [ true ]) >>> false" self do: [ :each | (aBlock value: each) ifTrue: [ ^ true ] ]. ^ false5('salkjsdlkgfee' findString: 'al'startingAt: 3) >>> 04222y10E(OrderedCollection new add: 42; yourself) class >>> OrderedCollection-1*baz*-23PnewFromKeys: keys andValues: values "Create a dictionary from the keys and values arguments which should have the same length." "(Dictionary newFromKeys: #(#x #y) andValues: #(3 6)) >>> (Dictionary new at: #x put: 3; at: #y put: 6 ;yourself)" | dict | dict := self new. keys with: values do: [ :k :v | dict at: k put: v ]. ^ dict1asSet "Answer a Set whose elements are the unique elements of the receiver." "{1. 2} asSet = {2. 1} asSet >>> true" "{1. 2} asSet = {1. 2. 2} asSet >>> true" "{1. 2} asSet = {1. 2. 3} asSet >>> false" "{} asSet = Set new >>> true" ^ Set withAll: self7or: alternativeBlock "Nonevaluating disjunction -- answer true since the receiver is true." "(true or: [Error signal]) >>> true" "(true or: [false]) >>> true" ^ self6(Date year: 2018 month: 9 day: 28) weekday >>> #Friday <= aString "Answer whether the receiver sorts before or equal to aString. The collation order is simple ascii (with case differences)." " 'abc' <= 'def' >>> true" " 'abc' <= 'abc' >>> true" " 'def' <= 'abc' >>> false" ^ (self compare: self with: aString) <= 0elvis ZThe following example creates an association whose key is number 1 and value string 'one'.14333328c(String streamContents: [:s | #(10 20 30) do: [:each | s << each asString] without: 20]) >>> '1030' }5222DEvaluate aBlock for all elements between start and stop (inclusive).2X utrue asBit >>> 10vector0'h: hue s: saturation v: brightness "Create a color with the given hue, saturation, and brightness. Hue is given as the angle in degrees of the color on the color circle where red is zero degrees. Saturation and brightness are numbers in [0.0..1.0] where larger values are more saturated or brighter colors. For example, (Color h: 0 s: 1 v: 1) is pure red." "Note: By convention, brightness is abbreviated 'v' to to avoid confusion with blue." "(Color h: 0 s: 1 v: 1) >>> (Color r: 1 g: 0 b:0)" ^ self h: hue s: saturation v: brightness alpha: 1.0%((0@0) sideOf: (100@100)) >>> #centerddmmyyyy "Print the receiver in standard French format dd/mm/yyyy." "(Date year: 2018 month: 9 day: 28) ddmmyyyy >>> '28/9/2018'" ^ self printFormat: #(1 2 3 $/ 1 1)string1:Answer whether anObject is one of the receiver's elements.ppp < <<<>> 12" "('salkjsdlkgfee' findString: 'al'startingAt: 3) >>> 0" "('salkjsdlkgfeeal' findString: 'al' startingAt: 1) >>> 2" ^self findString: substring startingAt: start caseSensitive: truehello1013findBinaryIndex: aBlock ifNone: exceptionBlock "Search for an element in the receiver using binary search. The argument aBlock is a one-element block returning 0 - if the element is the one searched for <0 - if the search should continue in the first half >0 - if the search should continue in the second half If no matching element is found, evaluate exceptionBlock, with the 'bounding' elements as optional arguments." "(#(1 3 5 7 11 15 23) findBinaryIndex: [ :arg | 25 - arg ] ifNone: [ :a :b | 'between: ',{a. b} printString ]) >>> 'between: #(7 8)' " "(#(1 3 5 7 11 15 23) findBinaryIndex: [ :arg | 25 - arg ] ifNone: [ :a :b | 'over index: ', a printString ]) >>> 'over index: 7' " ^ self findBinaryIndex: aBlock do: [ :found | found ] ifNone: exceptionBlock1endsWithAColon "Answer whether the final character of the receiver is a colon" "'displayStringOn:' endsWithAColon >>> true" "'displayStringOn:foo' endsWithAColon >>> false" ^ self notEmpty and: [ self last == $: ]gUnitialized variable1[Print the receiver's path on aStream (without 'Path' prepended) using the default delimiterReturn a String based on concatenation of positiveNumberString with prefix then padded by 0 is zeroFlag is set for a minimum length.e`('test te string' copyReplaceAll: 'te' with: 'longone' asTokens: true) >>> 'test longone string'3"" E([:x :y :z | x + y + z] valueWithPossibleArgs: #( 13 12 15)) >>> 40 caa137 salkjsdlkgfee>> #(7 42 9)0.060y(#(1 5 21 28 34) groupedBy: [:x| x // 10] having: [:v| v size = 2]) >>> {0->#(1 5). 2->#(21 28)} asOrderedDictionary10%(-3.1479 truncateTo: 0.01) >>> -3.14 10.199999999"0001111111111100044444444444333500ehllo1Example of usages:210 + 272orange104true not >>> false,Tests-unix-64-FileSystem-Core-Tests-Test.xml41`({10. 20} asOrderedCollection addIfNotPresent: 20; yourself) >>> ({10. 20.} asOrderedCollection)0.014This statement is true!30Return a setter message from a getter message. Return self if it is already a setter. Pay attention the implementation should be improved to return valid selector.!(3.1479 roundDownTo: 0.1) >>> 3.1;(1 second + 1 milliSecond) printString >>> '0:00:00:01.001'10421e$h$wUser3*({1 .2 .3 .4} at: 2 incrementBy: 2) >>> 4:Answer whether anObject is one of the receiver's elements.1AAnswer how many of the receiver's elements are equal to anObject.)([:x :y | x + y] cull: 3 cull: 2) >>> 5 b300foo 03306bind: aBlock "Extract items from the receiver and use them as arguments of aBlock. Signal an error (ArgumentsCountMismatch) when the arguments count of aBlock does not match the receiver size." "(#(1 2 3) bind: [ :first :second :third | first + second + third ]) >>> 6" ^ aBlock valueWithArguments: self3Unreachable statement2^ <1ifFalse: alternativeBlock "Answer the value of alternativeBlock. Execution does not actually reach here because the expression is compiled in-line." "(false ifFalse: [ 'This statement is false!' ]) >>> 'This statement is false!'" ^alternativeBlock valuelo02130 Five is {1}.12023(#(1 2) anySatisfy: [ :each | each even ]) >>> true-2-({10. 20} asOrderedCollection add: 30) >>> 30I(Date year: 2018 month: 9 day: 28) month printString >>> 'September 2018'2-1010(#(a b a d a) lastIndexOf: #a ifAbsent: 7) >>> 5100~(DateAndTime fromString: '2019-08-17T13:33:00+02:00') asDate printString >>> (Date newDay: 17 month: 8 year: 2019) printString0.00withIndexCollect: elementAndIndexBlock "Just like with:collect: except that the iteration index supplies the second argument to the block." "(#(10 20 30) withIndexCollect: [:each :index | each + (index * 2)]) >>> #(12 24 36)" | result | result := self species new: self size. 1 to: self size do: [:index | result at: index put: (elementAndIndexBlock value: (self at: index) value: index)]. ^ resultstring3192014d&Answer the receiver raised to aNumber.#(1 1 1 1) argmax >>> 1yisAllAlphaNumerics "Returns whether the receiver is composed entirely of alphanumerics (i.e., letters or digits)." "'3.123' isAllAlphaNumerics >>> false" "'a3123abc' isAllAlphaNumerics >>> true" "'3123' isAllAlphaNumerics >>> true" "'3,123' isAllAlphaNumerics >>> false" "'a''b' isAllAlphaNumerics >>> false" self do: [:c | c isAlphaNumeric ifFalse: [^ false]]. ^ true120(-0.98 printShowingDecimalPlaces: 2) >>> '-0.98'indee3whlordeMReturn whether the receiver is https://www.compart.com/en/unicode/category/Pfe:IasBit "Answer 0 since the receiver is false." "false asBit >>> 0" ^ 041115XXXXu)#message asTestSelector >>> #testMessage$h. $w(false xor: [false]) >>> false1 goodby: 2 my: "(#() allSatisfy: [false]) >>> true10.4995112414467253compare: aString "Answer a comparison code telling how the receiver sorts relative to aString: 1 - before 2 - equal 3 - after. The collation sequence is ascii with case differences ignored. To get the effect of a <= b, but ignoring case, use (a compare: b) <= 2." "('aa' compare: 'ab') >>> 1" "('aa' compare: 'aa') >>> 2" "('ab' compare: 'aa') >>> 3" ^self compare: aString caseSensitive: false3(#(2 4) allSatisfy: [ :each | each even ]) >>> true1an integer greater than 1 as valid radix expected172ns2030Ufoo ^ [ :a1 :a2 :a3 :a4 :a5 :a6 :a7 :a8 :a9 :a10 :a11 :a12 :a13 :a14 :a15 :a16 | a1 ]addIfNotPresent: anObject "Include anObject as one of the receiver's elements, but only if there is no such element already. Anwser anObject." "({10. 20} asOrderedCollection addIfNotPresent: 30) >>> 30" "({10. 20} asOrderedCollection addIfNotPresent: 30; yourself) >>> ({10. 20. 30} asOrderedCollection)" "({10. 20} asOrderedCollection addIfNotPresent: 20; yourself) >>> ({10. 20.} asOrderedCollection)" (self includes: anObject) ifFalse: [ self add: anObject ]. ^ anObject121x2222222222200001111111111133[ "a""b""f" 1. "c" "d" 2 "e" ]def3Answer the x coordinate.1431.00 GBKPairwise integer modulo of two sequenceable collections of the same length.1302810\at: firstKey at: secondKey "Return the object stored in the second dictionary at secondKey. The second dictionary is accessed via the key firstKey." " (Dictionary new at: #top at: #below1 put: 1; at: #top at: #below1 put: 2; at: #top at: #below1) >>> 2" ^ self at: firstKey at: secondKey ifAbsent: [ self errorKeyNotFound: secondKey ]2001^Append the elements of the argument, aSequenceableCollection, separating them by the receiver.:. :floor "Answer a Point that is the receiver's x and y floor. Answer the receiver if its coordinates are already integral." "(100@200) floor >>> (100@200)" "(100.1@200.9) floor >>> (100@200)" self isIntegerPoint ifTrue: [ ^ self ]. ^ x floor @ y floor!(#() averageIfEmpty: [ 0 ]) >>> 0one60.01323'optimized version for single delimiters+#(("A")"B"."C":"D";"E"["F"]"G"{"H"}"I"^"J") [ :a :b | 1|piecesCutWhere: binaryBlock "Answer substrings of the receiver derived from cutting the receiver at points where binaryBlock answers true for adjacent elements." "( #(1 2 3 1 6 1 2 3 4) piecesCutWhere: [ :a :b | a = 1 and: [ b = 2]]) asArray >>> #(#(1) #(2 3 1 6 1) #(2 3 4))" | pieces | pieces := OrderedCollection new. self piecesCutWhere: binaryBlock do: [ :piece | pieces add: piece ]. ^pieces "'Now is the time for all good people to come to the aid of the cause of world peace. It is just fine, even desirable, to love your country, if that means wanting it to play a beneficial role in the course of world events and be the best possible example of a good society. But if it means wanting dominion over the rest of the world, it is not love but defensiveness or self-glorification, and will lead only to oblivion.' piecesCutWhere: [:a :b| a = $. and: [b isSeparator]]"1File asFile Files File's File:Answer whether anObject is one of the receiver's elements.4222221002222' ' size >>> 2isEnclosingMark "Return whether the receiver is ... one of these https://www.compart.com/en/unicode/category/Me" "$' isEnclosingMark >>> false" ^ self characterSet isEnclosingMark: selfeflatCollect: aBlock "Evaluate aBlock for each of the receiver's elements and answer the list of all resulting values flatten one level. Assumes that aBlock returns some kind of collection for each element. optimized version for Sequencable Collection and subclasses implementing #writeStream" "(#( (2 -3) (4 -5) #(-6)) flatCollect: [ :e | e abs ]) >>> #(2 3 4 5 6)" "(#( (2 -3) #((4 -5)) #(-6)) flatCollect: [ :e | e abs ]) >>> #(2 3 #(4 5) 6)" self isEmpty ifTrue: [ ^ self copy ]. ^self species new: 0 streamContents: [ :stream | self do: [ :each | stream nextPutAll: (aBlock value: each) ] ]a := @&(Color r: 1 g: 1 b: 1) >>> Color white3withIndexSelect: elementAndIndexBlock "Optimized version of SequenceableCollection>>#withIndexSelect: " "(#('We' 'love' 'pharo!') asOrderedCollection withIndexSelect: [:value :index | value size - 1 <= index]) >>> (OrderedCollection with: 'We')" | newCollection element | newCollection := self copyEmpty. firstIndex to: lastIndex do: [ :index | (elementAndIndexBlock value: (element := array at: index) value: index) ifTrue: [ newCollection addNoSort: element ] ]. ^ newCollection Answer the index of the low order one bit. First we skip bits in groups of 8, then do a lookup in a table. While not optimal, this is a good tradeoff; long integer #lowBit always invokes us with bytes.13f({'1'. '1'. '2'. '1'. '1'} atRandom: (Random seed: -42) weighting: [ :each | each asInteger ]) >>> '1'41(#(3 9 1) sorted: [:a :b | a <= b ]) >>> #(1 3 9)d3Refer to the comment in Collection>>#reject:thenDo:c190 factorial >>> 12234500'Color red rgbTriplet >>> #(1.0 0.0 0.0)C#(10 20 10) asOrderedCollection removeAll >>> OrderedCollection new104((FileSystem workingDirectory / 'book-result' / 'W01-Welcome') relativeToReference: FileSystem workingDirectory) pathString >>> 'book-result/W01-Welcome'301Return a new sequenceable collection which contains the same elements as self but its elements are sorted by aSortBlockOrNil. The block should take two arguments and return true if the first element should preceed the second one. If aSortBlock is nil then <= is used for comparison.137#(10 20 30) sum >>> 6013-298Answer a Rectangle whose origin is the receiver and whose corner is aPoint. This is one of the infix ways of expressing the creation of a rectangle.1!00000011100000022204466655577733010e103/('hello' surroundedBy: 'abd') >>> 'abdhelloabd'5YAnswer true if the receiver contains the substring str exactly at index, false otherwise.##() asDictionary >>> Dictionary newuNote that there is no way to get the first element that works for all kinds of Collections. Must test every one.13(Color colorFrom: #(1.0 1.0 1.0)) >>> (Color white)|a:|968((OrderedCollection new add: 34; yourself) at: 1) >>> 340vector01 ppp < < n< 55 writes the N-th argument, which should be a String, or a collection of printable objects. Note also important distinction for single-quotes inside the argument; with

they will be doubled.b_(#(11 22 33) asOrderedCollection atWrap: 4 put: 0; yourself) >>> #(0 22 33) asOrderedCollection41.031- arg "Answer a Point that is the difference of the receiver and arg." "((2@2) - (100@200)) >>> (-98@ -198)" "((2@2) - 200) >>> (-198@ -198)" arg isPoint ifTrue: [^ (x - arg x) @ (y - arg y)]. ^ arg adaptToPoint: self andSend: #-210hello12Returns the boolean the byte at index byteOffset of this ByteArray represents in the C convention ( A byte representing the 0 integer corresponds to false, while all other integers corresponds to true).*#('a' 'b' 'c') asCommaString >>> 'a, b, c'a03fred is number 1((#(1 3) detect: #even ifNone: [0]) >>> 02810p(Dictionary newFromKeys: #(#x #y) andValues: #(3 6)) >>> (Dictionary new at: #x put: 3; at: #y put: 6 ;yourself) ; ; 45 0000000000003 Xuuuuu n1021!((2@2) + (100@200)) >>> (102@202)5315((0@0 corner: 100@100) containsPoint: 50@50) >>> true<({ 2@6 . -4@3 . 10@ -3 } detectMin: [ :p | p x ]) >>> (-4@3)Faster than the superclass implementation when you hold many instances of the same value (which you probably do, otherwise you wouldn't be using a Bag).fghi'1111' asFourCode >>> 825307441-22322abcAnswer a new collection of the same species as the receiver with elements being collections (of the receiver species) containing those elements of the receiver for which the given block consecutively evaluates to the same object.(Array streamContents: [:stream | #(10 20) paddedWith: #(40 50 60) do: [:a :b | stream nextPut: {a. b} ]]) >>> #(#(10 40) #(20 50) #(nil 60))11597[ 1002u uu W(false ifTrue: [ 'That is true!' ] ifFalse: [ 'That is false!' ]) >>> 'That is false!'20 nil := nil1130-102d11hellomobaz2124hello 11hello!10200153hRemove each element of aCollection from the receiver. If successful for each, answer aCollection. Otherwise create an error notification. ArrayedCollections cannot respond to this message.6&(#() intersection: #(1 2 3 4)) >>> #()Unmatched " in comment.3020#'a''b' isAllAlphaNumerics >>> falseNB: this implementation only works for Array, since WriteStreams only work for Arrays and Strings. (!) Overridden in OrderedCollection and SortedCollection.30 printStringHex >>> '1E'wReturn the object stored in the second dictionary at secondKey. The second dictionary is accessed via the key firstKey.020.50Tests-unix-64-NumericInterpolator-Tests-Test.xmln ssss n1400c 1 + 2 + 30010002264444552200778d10112 0001000201Tests-unix-64-DrTests-TestCoverage-Tests-Test.xml0('abcdf abcedf' indexOf: $a startingAt: 4) >>> 7NcopyReplaceTokens: oldSubstring with: newSubstring "Replace all occurrences of oldSubstring that are surrounded by non-alphanumeric characters" "('File asFile Files File''s File' copyReplaceTokens: 'File' with: 'Snick') >>> 'Snick asFile Files Snick''s Snick'" ^ self copyReplaceAll: oldSubstring with: newSubstring asTokens: true150abcThis statement is true!0D(OrderedCollection new addAll: (1 to: 15); yourself) capacity >>> 20(Array streamContents: [:stream | (0 to: 1) asDigitsToPower: 4 do: [:each | stream nextPut: each copy]]) >>> #(#(0 0 0 0) #(0 0 0 1) #(0 0 1 0) #(0 0 1 1) #(0 1 0 0) #(0 1 0 1) #(0 1 1 0) #(0 1 1 1) #(1 0 0 0) #(1 0 0 1) #(1 0 1 0) #(1 0 1 1) #(1 1 0 0) #(1 1 0 1) #(1 1 1 0) #(1 1 1 1))Missing opener for closer: }33 (10 printStringBase: 16) >>> 'A'109 \\ -4 >>> -3 | TTT | ttt n . ^ ttt . TReturn true whether the receiver is a metaclass (in a couple class/metaclass sense).138(#(xa xb xc xy xz) isSortedBy: #last ascending) >>> true6named: aString ifNone: aBlock "Returns the instance of myself having aString as name." "(KeyboardKey named: 'SHIFT_L') >>> (KeyboardKey value: 65505)" ^ KeyNameTable at: aString ifAbsent: aBlock0b9Answers a Dictionary based on collection of Associations.1ollhefghi a, b, c and dtrim "Trim separators from both sides of the receiving string." "' this string will be trimmed ' trim >>> 'this string will be trimmed'" ^ self trimBothVChroma is zero for black and white, which are the two cases of division by zero below.1@ foo: 6(#(1 2 3 4) nextToLast) >>> 3#( 1 two #( 3 ) )10.0%1 minute printString >>> '0:00:01:00'15110000ziggie6Answer the receiver with leading and trailing aString.32560L writes the N-th argument using #printString, but without trancating it.+((100@200) translateBy: 5@10) >>> (105@210)110153301-4Answer the index of the last occurrence of anElement within the receiver. If the receiver does not contain anElement, answer the result of evaluating the argument, exceptionBlock.gloops3070 highBit >>> 0-1 Pharo is cool)Tests-unix-64-Network-Mail-Tests-Test.xml1^({ 1. 2. 3 } as: OrderedCollection) >>> (OrderedCollection new add: 1; add:2; add:3; yourself)J (OrderedDictionary new at: #top at: #below1 ifAbsent: [ 1 ]) >>> 1 14Tests-unix-64-Refactoring-Environment-Tests-Test.xml112060136000.0TheRollingStones2.28Tests-unix-64-Refactoring-Transformations-Tests-Test.xml2s:XX#X#X,444 10555000000AAA076BBB666HHH6ECIIICCCC JJJ1 '' expandMacros >>> String cr((#(10 20 10 30) occurrencesOf: 10) >>> 21at: index incrementBy: value "({1 .2 .3 .4} at: 3 incrementBy: 2) >>> 5" "({1 .2 .3 .4} at: 2 incrementBy: 2) >>> 4" ^self at: index put: (self at: index) + value11(#(1 5 10) findFirst: [ :each | each > 3 ]) >>> 2!'x isSymbol' findSelector >>> nild5DEctoJsonString: object "Return a String with the JSON serialization of object. Note that the object graph can only contain lists (Array) and maps (Dictionary)" "(STON toJsonString: { { #foo->1 } asDictionary. { #bar->2 } asDictionary }) >>> '[{""foo"":1},{""bar"":2}]'" ^ String streamContents: [ :stream | self put: object asJsonOnStream: stream ]1005111 foo;2 <1p>: <2p>do: aBlock "Evaluate aBlock with each of the receiver's elements as the argument. This is the general foreach method, but for most standard needs there is often a more specific and simpler method." "|s| s:=0. #(10 20 30) do: [:each | s := s + each]. s >>> 60" "but use sum or inject:into: instead" "(#(10 20 30) inject: 0 into: [:s :each| s + each ]) >>> 60" "#(10 20 30) sum >>> 60" " (String streamContents: [:s | #('hello' 'the' 'world') do: [:each | s << each]]) >>> 'hellotheworld'" self subclassResponsibilityA+first method faster from 27 accesses and onabc1083.2100.10.2 Pharo is cool7h(#(2 2 3 3 4 1 2 3 3 5) splitOn: [:each | each > 3])>>> #(#(2 2 3 3) #(1 2 3 3) #()) asOrderedCollection200vector0d111de0vector0EWriting '<' character: To write '<', prepend it with a percent sign.5salkjsdlkgfeesd-212(#(1 1 2 2 3 3) runningMin: 3) >>> {1 . 1 . 2 . 2}1\\ aNumber "modulo. Remainder defined in terms of //. Answer a Number with the same sign as aNumber." "9 \\ 4 >>> 1" "-9 \\ 4 >>> 3" "9 \\ -4 >>> -3" ^self - (self // aNumber * aNumber)438reject: rejectBlock "Optimized version of Collection>>#reject:" "(#(1 2 3 4) reject: [:each | each = 3 ]) >>> #(1 2 4)" | each | ^ self class new: self size streamContents: [ :stream| 1 to: self size do: [ :index | (rejectBlock value: (each := self at: index)) ifFalse: [ stream nextPut: each ]]]$a isAlphaNumeric >>> true10 foo*baz*zort<( #(1 2 3) asSet reduce: [ :a :b | a + b ] ) >>> (1 + 2 + 3)b22((#(1 2) detect: #even ifNone: [0]) >>> 2Point classSide >>> Point class10Evaluate aBlock with the elements of the receiver. If aBlock returns false for all elements return true. Otherwise return false3Class structural inspection - Class/Metaclass shift59numberOfCombinationsTaken: k "Return the number of combinations of (self) elements taken k at a time. It is calculated as C(n,k) = n! / (k! (n-k)!) For 6 numberOfCombinationsTaken: 3, this is 6*5*4 / (1*2*3)" "(6 numberOfCombinationsTaken: 3) >>> 20" | numerator denominator | k < 0 ifTrue: [^ 0]. k > self ifTrue: [^ 0]. numerator := 1. self to: (k max: self-k) + 1 by: -1 do: [ :factor | numerator := numerator * factor ]. denominator := 1. 1 to: (k min: self-k) do: [ :factor | denominator := denominator * factor ]. ^ numerator // denominator2XanyOne "Answer a representative sample of the receiver. It raises an error when the collection is empty. This method can be helpful when needing to preinfer the nature of the contents of semi-homogeneous collections." "#(1 2 3) anyOne >>> 1" " ([#() anyOne] on: SubscriptOutOfBounds do: [ :ex | 'whatever' ]) >>> 'whatever' " ^ self firstRemove each element of aCollection which is present in the receiver from the receiver. Answer aCollection. No error is raised if an element isn't found. ArrayedCollections cannot respond to this message.[ :a | | a b ]X X X10067110)See `unescapeCharacter:` for the oppositedetect: aBlock ifNone: exceptionBlock "Evaluate aBlock with each of the receiver's elements as the argument. Answer the first element for which aBlock evaluates to true. If none evaluate to true, then evaluate the argument, exceptionBlock." "(#(1 2) detect: #even ifNone: [0]) >>> 2" "(#(1 3) detect: #even ifNone: [0]) >>> 0" "('Hello' detect: #isLowercase ifNone: [$X]) >>> $e" "('LOL' detect: #isLowercase ifNone: [$X]) >>> $X" ^ self detect: aBlock ifFound: [ :element | element ] ifNone: exceptionBlockb33Tests-unix-64-Spec2-Adapters-Morphic-Tests-Test.xml000110afromHexString: aColorHex "Returns a color instance from HEX (6 element elements)." "(Color fromHexString: 'FFFFFF')>>> (Color white) " | green red blue alpha hexString | hexString := aColorHex withoutPrefix: '#'. red := (Integer readFrom: (hexString first: 2) base: 16) / 255. green := (Integer readFrom: (hexString copyFrom: 3 to: 4) base: 16) / 255. blue := (Integer readFrom: (hexString copyFrom: 5 to: 6) base: 16) / 255. alpha := hexString size = 8 ifFalse: [ 1.0 ] ifTrue: [ (Integer readFrom: (hexString copyFrom: 7 to: 8) base: 16) / 255 ]. ^ self r: red g: green b: blue alpha: alpha00000000<1?success:is error>2025yAnswer the element after target. Raise an error if target is not in the receiver, or if there are no elements after it.0(Color h: 0 s: 1 v: 1) >>> (Color r: 1 g: 0 b:0)200.9D(RPackage named: 'MockPackage-Tests-Package') isTestPackage >>> true51reverseDo: aBlock "Evaluate aBlock with each of the receiver's elements as the argument, starting with the last element and taking each in sequence up to the first. For SequenceableCollections, this is the reverse of the enumeration for do:." "(Array streamContents: [:stream | #(1 2 3) reverseDo: [:each | stream nextPut: each + 10]]) >>> #(13 12 11)" self size to: 1 by: -1 do: [:index | aBlock value: (self at: index)]230-2 odd >>> false(#(1 3 5 7 11 15 23) findBinary: [ :arg | 25 - arg ] ifNone: [ :a :b | 'between: ',{a. b} printString ]) >>> 'between: #(23 nil)'400(1)(2)0removeAll: aCollection "Remove each element of aCollection from the receiver. If successful for each, answer aCollection. Otherwise create an error notification. ArrayedCollections cannot respond to this message." "(#(10 20 10 30 10) asOrderedCollection removeAll: #(10 10 20); yourself) >>> #(30 10) asOrderedCollection" aCollection == self ifTrue: [^self removeAll]. aCollection do: [:each | self remove: each]. ^ aCollection100000n#n#n09(#(a b c d e) indexOfAnyOf: #(x y c) startingAt: 2) >>> 310&atAll: indexArray putAll: valueArray "Store the elements of valueArray into the slots of this collection selected by indexArray." "({#x .#y .#z} atAll: #(1 3) putAll: #(a e); yourself) >>> #(a y e)" indexArray with: valueArray do: [:index :value | self at: index put: value]. ^ valueArray16c,""" n """ ssss """ n """ s """ n """ sss """abc65100b(10 min: 20 max: 5) >>> 1030vector01305pEvaluating conjunction. Evaluate the argument. Then answer true if both the receiver and the argument are true..(#(40 41 42) asOrderedCollection at: 3) >>> 42split: aSequenceableCollection indicesDo: aBlock "Perform an action specified as aBlock (with a start and end argument) to each of the indices of the receiver element that have been identified by splitting the receiver using the splitter argument. optimized version for single delimiters." "(String streamContents: [:s | Character space split: 'Pharo is cool' indicesDo: [ :start :end | s << 's:' << start asString << ' ' << 'e:' << end asString << ' ' ]]) >>> 's:1 e:5 s:7 e:8 s:10 e:13 '" | position oldPosition | position := 1. oldPosition := position. position := aSequenceableCollection indexOf: self startingAt: position. [ position > 0 ] whileTrue: [ aBlock value: oldPosition value: position - 1. position := position + 1. oldPosition := position. position := aSequenceableCollection indexOf: self startingAt: position. ]. aBlock value: oldPosition value: aSequenceableCollection size21#( 'a' 'b' 'c') asCommaStringAnd >>> 'a, b and c'split: aSequenceableCollection indicesDo: aBlock "Perform an action specified as aBlock (with a start and end argument) to each of the indices of aSequenceableCollection that have been identified by taking the receiver as a splitter." "('||' split: 'foo||bar||2')>>>#('foo' 'bar' '2') asOrderedCollection" "(String streamContents: [:s | '||' split: 'foo||bar||2' indicesDo: [ :start :end | s << 's:' << start asString << ' ' << 'e:' << end asString << ' ' ]]) >>> 's:1 e:3 s:6 e:8 s:11 e:11 '" | position oldPosition | position := 1. oldPosition := position. position := aSequenceableCollection indexOfSubCollection: self startingAt: position. [ position > 0 ] whileTrue: [ aBlock value: oldPosition value: position - 1. position := position + self size. oldPosition := position. position := aSequenceableCollection indexOfSubCollection: self startingAt: position. ]. aBlock value: oldPosition value: aSequenceableCollection sizea3010runningAverage: aSubsetSize "Running average (a.k.a. moving average, rolling average). See the comment of self >> #running:of: for more information." "(#(1 1 2 2 3 3) runningAverage: 2) >>> {1 . (3/2) . 2 . (5/2) . 3}" ^ self running: [ :subset | subset average ] of: aSubsetSize%[ "a""b""g" | x "c" "d" y "e" | "f" ]0"('*baz*' match: 'mobazo') >>> true220/(#(1 2 3) reduceLeft: [ :a :b | a - b ]) >>> -4416pharo411u XXXXAnswer the index of anElement within the receiver. If the receiver does not contain anElement, answer the result of evaluating the argument, exceptionBlock.58Answer a copy of the receiver in which all occurrences of oldSubstring have been replaced by newSubstring. ifTokens (valid for Strings only) specifies that the characters surrounding the replacement must not be alphanumeric (space). When ifTokens is set, it means that the replacement will not occur inside word.rBuild an instance of the receiver by writing elements to a stream. More specifically: blockWithArg will be given a WriteStream on an instance of the receiver. Inside blockWithArg you write elements to the stream to build up the collection. At the end, the contents of the stream up to that point will be returned. Note that the underlying collection grows as needed.((#(a b c d e) identityIndexOf: #c) >>> 3ABA362abc08 953.67 MB93 [ :a | | a ]+ foo: }Search for an element in the receiver using binary search. The argument aBlock is a one-element block returning 0 - if the element is the one searched for <0 - if the search should continue in the first half >0 - if the search should continue in the second half If no matching element is found, evaluate exceptionBlock, with the 'bounding' elements as optional arguments.0a3b02 #( #[ 0 1 2 ]RReturn the metaclass of the couple class/metaclass. Useful to avoid explicit test.00n0X0n03112#_ asMutator >>> #_:4Answer the index of the last occurrence of anElement within the receiver. If the receiver does not contain anElement, answer the result of evaluating the argument, exceptionBlock.(#(1 3 5 7 11 15 23) findBinaryIndex: [ :arg | 25 - arg ] do: [ :found | found ] ifNone: [ :a :b | 'between: ',{a. b} printString ]) >>> 'between: #(7 8)' 0make&cull: anArg "Execute the receiver with one or zero arguments depending on the receiver" "([ 12 ] cull: 13)>>> 12 " "([:x | x + 12] cull: 3)>>> 15" ^numArgs = 0 ifTrue: [self value] ifFalse: [self value: anArg]VConvert to CamelCase, i.e, remove spaces, and convert starting lowercase to uppercase. 825307441(((100@201) closeTo: (100@200)) >>> false(((104 to: 120) detect: #isPrime) >>> 1071202 foo !'ABA' asByteArray >>> #[65 66 65] Pharo is cool $September 201828hello!111Point instanceSide >>> Point-10133Answer the index of the first occurrence of anElement after start within the receiver. If the receiver does not contain anElement, answer 0.P({10. 20} asSet addAll: {20. 30. 30. 40.}; yourself) >>> {10. 20. 30. 40.} asSet27320204JReturn the green component of this color, a float in the range [0.0..1.0].+1. -a. - 1. -"A"1d5inject: thisValue into: binaryBlock "Accumulate a running value associated with evaluating the argument, binaryBlock, with the current value of the argument, thisValue, and the receiver as block arguments." "Look at Collection>>reduce: for a related method." "(#(2r101 2r11 2r1000) inject: 0 into: [ :acc :each | acc bitXor: each ]) >>> 2r1110" "(#(10 20 30) inject: 0 into: [ :sum :each | sum + each ]) >>> 60" "But use sum or sum: instead!" "#(10 20 30) sum >>> 60" "(#(10 20 30) inject: OrderedCollection new into: [ :a :e | a add: (e + 1). a ]) >>> #(11 21 31) asOrderedCollection" "But use collect: or collect:as: instead!" "(#(10 20 30) collect: [:e| e+1]) >>> #(11 21 31)" | nextValue | nextValue := thisValue. self do: [:each | nextValue := binaryBlock value: nextValue value: each]. ^nextValue1fold: binaryBlock "Alias of Collection>>reduce" "Evaluate the block with the first two (or more) elements of the receiver, then with the result of the first evaluation and the next element, and so on. Answer the result of the final evaluation. If the receiver is empty, raise an error. If the receiver has a single element, answer that element." "( #('if' 'it' 'is' 'to' 'be' 'it' 'is' 'up' 'to' 'me') fold: [:a :b | a, ' ', b] ) >>> 'if it is to be it is up to me'" ^self reduce: binaryBlock315'a' asInteger >>> nil Hello--world-x3020vector005(#() sum: #abs) >>> 013!(3.1479 truncateTo: 0.1) >>> 3.120 1 foo:;barAb cd ef Ab cdPharo (, { exist ]SprintStringHex "$A printStringHex >>> '41'" ^ self asInteger printStringBase: 16?Print the receiver's path on aStream (without 'Path' prepended)yAnswer the value of alternativeBlock. Execution does not actually reach here because the expression is compiled in-line.1four$' tokenish >>> false-2010a12e9xor: alternativeBlock "Nonevaluating conjunction. Answer the opposite of the the argument, alternativeBlock; since the receiver is true." "(true xor: [true]) >>> false" "(true xor: [false]) >>> true" ^ alternativeBlock value not2ba:rAnswer the index of the first substring within the receiver. If the receiver does not contain substring, answer 0.12shuffleBy: aRandom "Durstenfeld's version of the Fisher-Yates shuffle" "({1. 2. 3. 4. 5} shuffleBy: (Random seed: 42)) >>> #(1 2 5 4 3)" self size to: 2 by: -1 do: [ :i | self swap: i with: (aRandom nextInteger: i) ]11151b02 between: 1, 2, 3 and 4#(1 2 3) isSorted >>> truex4 'abc' < 'abc' >>> false41allPairsDo: aBinaryBlock "Iterate over all the pairs of the receiver and apply the binaryBlock to each pair. " "(Array streamContents: [ :stream | #(0 1 2 3) allPairsDo: [ :first :second | stream nextPut: { first . second } ] ]) >>> #(#(0 0) #(0 1) #(0 2) #(0 3) #(1 0) #(1 1) #(1 2) #(1 3) #(2 0) #(2 1) #(2 2) #(2 3) #(3 0) #(3 1) #(3 2) #(3 3))" self do: [ :first | self do: [ :second | aBinaryBlock value: first value: second ] ]Answer whether the receiver can be represented as a byte string. This is different from asking whether the receiver *is* a ByteString (i.e., #isByteString)defisUnary "Answer whether the receiver is an unary message selector." "#new isUnary >>> true" "#>> isUnary >>> false" "#between:and: isUnary >>> false" ^ self precedence = 1@(#(10 20 30) inject: 0 into: [ :sum :each | sum + each ]) >>> 60206storeStringHex "Returns a string representation of the receiver in base 16 in a way that executing it will return the receiver." "10 storeStringHex >>> '16rA'" ^ self storeStringBase: 16<(1024 * 1024 * 1024) humanReadableSISizeString >>> '1.07 GB'For backwards compatibility mainly. Return the key that should correspond to some character. Handle normal ascii characters and special control keys only (enter, tab space...)14.05$A isCasedLetter >>> false'(6 numberOfCombinationsTaken: 3) >>> 20132107315J#(1 2 2 3 1 1 1) asBag cumulativeCounts >>> {57.1->1 . 85.7->2 . 100.0->3}1310$hello41110$Optimized version based on primitivetcollect: aBlock from: firstIndex to: lastIndex "Refer to the comment in Collection|collect:." "(#(1 2 3 4) collect: [:each | each + 10] from: 2 to: 3) >>> #(12 13) " | size result j | size := lastIndex - firstIndex + 1. result := self species new: size. j := firstIndex. 1 to: size do: [:i | result at: i put: (aBlock value: (self at: j)). j := j + 1]. ^ result6521000.5&#(0 1 2) + #(10 20 30) >>> #(10 21 32)3104Put anObject at every one of the receiver's indices. XXXfoo ||X u a: :foo4011. 21substrings "Answer an array of non-empty substrings from the receiver separated by one or more whitespace characters." "'let us make seperate strings' substrings >>> #('let' 'us' 'make' 'seperate' 'strings')" ^ self substrings: CSSeparatorsoops1truncateTo: aNumber "Answer the next multiple of aNumber toward zero that is nearest the receiver." "(3.1479 truncateTo: 0.01) >>> 3.14" "(3.1479 truncateTo: 0.1) >>> 3.1" "(1923 truncateTo: 10) >>> 1920" "(1929 truncateTo: 10) >>> 1920" "(-1929 truncateTo: 10) >>> -1920" "(3.1479 truncateTo: 0.005) >>> 3.145" "(-3.1479 truncateTo: 0.01) >>> -3.14" ^(self quo: aNumber) * aNumber2 00111111112222222223334455506770.'displayStringOn:foo' endsWithAColon >>> false39M(Character space asString, Character space asString) isAllSeparators >>> true65afoodezortorfoo3zort411051 abd 1026X'let us make seperate strings' substrings >>> #('let' 'us' 'make' 'seperate' 'strings')c741002 between: 0 and: 4102BoccurrencesOf: anObject "Answer how many of the receiver's elements are equal to anObject." "(#(10 20 10 30) occurrencesOf: 10) >>> 2" "('hello world' occurrencesOf: $l) >>> 3" "('hello world' occurrencesOf: 10) >>> 0" | tally | tally := 0. self do: [:each | anObject = each ifTrue: [tally := tally + 1]]. ^tally1213020('234Whoopie' initialIntegerOrNil >>> 23443(10 to:1) size >>> 0201821Answer the index of the last occurrence of anElement within the receiver. If the receiver does not contain anElement, answer 0.it1.02.021frdthbr2(100@200) max >>> 200max: aPoint "Answer the lower right corner of the rectangle uniquely defined by the receiver and the argument, aPoint." "((100@200) max: (330@400)) >>> (330@400)" "((100@200) max: (30@400)) >>> (100@400)" ^ (x max: aPoint x) @ (y max: aPoint y) [ | b | ]016rC10seconds "2 seconds printString >>> '0:00:00:02'" "(1 minute + 2 seconds) printString >>> '0:00:01:02'" ^ Duration seconds: selfab1al 0000222222264200b212i(#(10 20 10 30 10) asOrderedCollection removeAll: #(10 10 20); yourself) >>> #(30 10) asOrderedCollectionAnswer the index of the first occurrence of any element included in aCollection within the receiver. If the receiver does not contain anElement, answer the result of evaluating the argument, exceptionBlock.[ :a | | a b | ]1 ((100@200) < (330@400)) >>> true32255(#(1 3 5 7 11 15 23) findBinary: [ :arg | 25 - arg ] do: [ :found | found ] ifNone: [ :a :b | 'between: ',{a. b} printString ]) >>> 'between: #(23 nil)'10y#(:=aa:=:==bb:==#cc:==)3Repeatly value aBlock with a single copy of the receiver. Reorder the copy so that aBlock is presented all (self size factorial) possible permutations.BAD boy!10 n ssss Xn2FAnswer 1 if the receiver is greater than 0, -1 if less than 0, else 0.201|a::a:foo2ibetween: #(11 15)Same aspect ratio71.05946309435929537xz?('hello world!' anySatisfy: [ :each | each isDigit ]) >>> falseabc132097G(OrderedCollection new addAll: #(41 42); yourself) asArray >>> #(41 42)2charlie17c51ee10Flattens a collection of collections (no matter how many levels of collections exist). Strings are considered atoms and, as such, won't be flattenedelmer16rDF1+(2 raisedTo: (1/12)) >>> 1.059463094359295310!#(1 2 2 3 1 1 1) asBag size >>> 78-bit integer expectedAAnswer whether the tail end of the receiver is the same as suffixe [:a|| |a] | tmp | tmp := 1 . ^ tmp . 41"fear is the little death that the.4520.01400112223445666778888990true asInteger >>> 1100translateBy: delta "Answer a Point translated by delta (an instance of Point)." "((100@200) translateBy: 5@10) >>> (105@210)" ^ (delta x + x) @ (delta y + y) X Xsss X 4hReturn element at indexFromEnd from the last position. atLast: 1 ifAbsent: [] returns the last element231abcrReturn the index of my last element for which aBlock evaluates as true. If no matching element is found, return 03351((4 to: 50 by: 2) anySatisfy: #isPrime) >>> false424221-4toverlappingPairsWithIndexDo: aBlock "Emit overlapping pairs of my elements into aBlock, along with an index." "(Array streamContents: [:stream | #(10 20 30 40) overlappingPairsWithIndexDo: [:first :second :index| stream nextPut: (first + second + index)]]) >>> #(31 52 73)" 1 to: self size - 1 do: [:i | aBlock value: (self at: i) value: (self at: i + 1) value: i ]1 decimalDigitLength >>> 1b12Tests-unix-64-System-Identification-Tests-Test.xml(1923 roundUpTo: 10) >>> 193031Tests-unix-64-Refactoring-DataForTesting-Test.xml$A printStringHex >>> '41'1de22222 Return a new sequenceable collection which contains the same elements as self but its elements are sorted by aSortBlockOrNil. The block should take two arguments and return true if the first element should preceed the second one. If aSortBlock is nil then <= is used for comparison.1Tests-unix-64-Collections-Abstract-Tests-Test.xml x isSymbolag41XsXXXX102 ** 8 >>> 256is85.71Sort the given range of indices using the mergesort algorithm. Mergesort is a worst-case O(N log N) sorting algorithm that usually does only half as many comparisons as heapsort or quicksort.combinations: kk atATimeDo: aBlock "Take the items in the receiver, kk at a time, and evaluate the block for each combination. Hand in an array of elements of self as the block argument. Each combination only occurs once, and order of the elements does not matter. There are (self size take: kk) combinations." "(Array streamContents: [:stream | 'abcde' combinations: 3 atATimeDo: [:each | stream nextPut: each copy]]) >>> #(#($a $b $c) #($a $b $d) #($a $b $e) #($a $c $d) #($a $c $e) #($a $d $e) #($b $c $d) #($b $c $e) #($b $d $e) #($c $d $e))" | aCollection | aCollection := Array new: kk. self combinationsAt: 1 in: aCollection after: 0 do: aBlockB(Character space join: #('Pharo' 'is' 'cool')) >>> 'Pharo is cool'00213jnewFromKeys: keys andValues: values "Create a dictionary from the keys and values arguments which should have the same length." "(OrderedDictionary newFromKeys: #(#x #y) andValues: #(3 6)) >>> (OrderedDictionary new at: #x put: 3; at: #y put: 6 ;yourself)" | dict | dict := self new: keys size. keys with: values do: [ :k :v | dict at: k put: v ]. ^ dictxAnswer the last element of the receiver. Pay attention, last is not equivalent to stop in certain situations. See below.7>Returns an array composed of the three color float components.foo32* 00000111000222000334443555333666330000 ^Answer the first n elements of the receiver. Raise an error if there are not enough elements., W('a000' asWideString ~= (ByteArray with: 97 with: 0 with: 0 with: 0) asString) >>> true0{0@1. 2@3} + {10@20. 30@0} >>> {(10@21). (32@3)} Not found711 Xuuuuuu Xuu n5HExecute the receiver with one or two arguments depending on the receiver1oopsdo1402{{}} isEmpty >>> falseW(String streamContents: [:s| 'abcd' asStringOn: s delimiter: '->']) >>> 'a->b->c->d' pharo-projectK(#(a b c d e) indexOfSubCollection: #(c d) startingAt: 2 ifAbsent: 7) >>> 3B({#x .#y .#z} atAll: #(1 3) putAll: #(a e); yourself) >>> #(a y e)?(#(a b c d e) indexOfSubCollection: #(c d) startingAt: 4) >>> 02a::0x0:00:00:00.000000001;;1103a12018(('ab ab ac de' howManyMatch: 'ab') >>> 228#() isNotEmpty >>> false$(#(a b a d a) lastIndexOf: #a) >>> 5-4 'abc' > 'def' >>> falseD('pharo' beginsWith: 'pharo-project' caseSensitive: false) >>> false2>(#(1 2 3 4) joinUsing: ', ' last: ' and ') >>> '1, 2, 3 and 4'-3.14792That is false!T(Dictionary newFrom: {1->#a. 2->#b. 3->#c}) >>> ({1->#a. 2->#b. 3->#c} asDictionary)10000000000000z3world;#+-<> asTestSelector >>> #testPlusMinusLessThanGreaterThan0vector01X({ 1->2. 3->4 } as: Dictionary) >>> (Dictionary new at: 1 put: 2; at: 3 put:4; yourself)000011411 vs <1p>-1420Ymodulo. Remainder defined in terms of //. Answer a Number with the same sign as aNumber.|isSorted "Return true if the receiver is sorted by the given criterion. Optimization for isSortedBy: [:a :b | a <= b]." "#(1 2 3) isSorted >>> true" "#(1 2 3 0) isSorted >>> false" | lastElm elm | self isEmpty ifTrue: [^ true]. lastElm := self first. 2 to: self size do: [:index | elm := self at: index. lastElm <= elm ifFalse: [^ false]. lastElm := elm]. ^ true42'atWrap: index put: value "Store value into the index'th element of the receiver. If index is out of bounds, let it wrap around from the end to the beginning until it is in bounds. Answer value." "(#(11 22 33) asOrderedCollection atWrap: 2 put: 0; yourself) >>> #(11 0 33) asOrderedCollection" "(#(11 22 33) asOrderedCollection atWrap: 4 put: 0; yourself) >>> #(0 22 33) asOrderedCollection" "(#(11 22 33) asOrderedCollection atWrap: 6 put: 0; yourself) >>> #(11 22 0) asOrderedCollection" ^ self at: index - 1 \\ self size + 1 put: value531${#a. #b. #z. #d} sort >>> #(a b d z),#((1 5 1) (2 3 3) (4 7 2)) sum >>> #(7 15 6)1082z ||Xu u:(#(a b c d e) indexOf: #c startingAt: 2 ifAbsent: 7) >>> 35#(10 20 30) | (0 to: 15 by: 5) >>> #(0 15 5 30 20 10)2255abcdxa10.01oReturn index of first element that satisfies aBlock. If no matching element is found, evaluate exceptionBlock.,Tests-unix-64-Spec2-Code-Diff-Tests-Test.xml1300112131116444455117003(10@10 corner: 100@100) >>> (10@10 corner: 100@100)23a | z!((2@2) * (100@200)) >>> (200@400)That is false! | | . a: | 34-1 -9//4 >>> -3wasArray "Convert an OrderedCollection into an Array." "#(a b c) asOrderedCollection asArray >>> #(a b c)" "OrderedCollection new class >>> OrderedCollection" "OrderedCollection new asArray class >>> Array" "(OrderedCollection new add: 42; add: 43; yourself) asArray >>> #(42 43)" ^ (Array new: self size) replaceFrom: 1 to: self size with: array startingAt: firstIndex2This statement is false!14863barBEnumerate the receiver with all the keys (aka indices) and values.0RExecute the receiver with the correct number of arguments taken from the argument.2090201833word before index1Nonevaluating conjunction. If the receiver is true, answer the opposite of the the argument, alternativeBlock; otherwise answer the value of the alternativeBlock.f/0777000000888030999000000III0A0JJJ0CCGGGCD0HHH016+Tests-unix-64-Tool-Profilers-Tests-Test.xml{ }2114${1@ -2. -4@0} abs >>> {(1@2). (4@0)}1((10 to: 20) detectMax: [ :p | p gcd: 6 ]) >>> 12~normalizeCamelCase " 'TheRollingStones' normalizeCamelCase >>> 'The Rolling Stones' " ^ self class streamContents: [ : stream | self do: [ : char | (char isUppercase and: [ (stream position > 0 and: [ stream peekLast isUppercase not ]) and: [ stream peekLast isSpaceSeparator not ] ]) ifTrue: [ stream nextPut: Character space ]. stream nextPut: char ] ]JReturn the class of STON associations, Association, a system wide constantpharo1510xy123Replace all occurrences of oldObject with newObject16rAzXXXXXXXXXXXXXXXXXX XX # X # X X110171'2345.88' isAllDigits >>> falsebJust like with:collect: except that the iteration index supplies the second argument to the block.mozo41/0000CCC08888888888888889888888888888A8888880III100100 00 n n n 0 020+Tests-unix-64-NewValueHolder-Tests-Test.xml01401hello21 Pharo is cool5^Nonevaluating conjunction -- answer the value of alternativeBlock since the receiver is true.indexOfAnyOf: aCollection startingAt: start "Answer the index of the first occurrence of any element included in aCollection after start within the receiver. If the receiver does not contain anElement, answer zero, which is an invalid index." "(#(a b c d e) indexOfAnyOf: #(x y c) startingAt: 2) >>> 3" "(#(a b c d e) indexOfAnyOf: #(x y c) startingAt: 4) >>> 0" ^self indexOfAnyOf: aCollection startingAt: start ifAbsent: [0]00##"""####"""###"""#####"""0OCreate a color with the given hue, saturation, brightness, and alpha. Hue is given as the angle in degrees of the color on the color circle where red is zero degrees. Saturation and brightness are numbers in [0.0..1.0] where larger values are more saturated or brighter colors. For example, (Color h: 0 s: 1 v: 1 alpha: 1) is pure red.lastSpacePosition "Answer the character position of the final space or other separator character in the receiver, and 0 if none" "'fred the bear' lastSpacePosition >>> 9" "'ziggie' lastSpacePosition >>> 0" "'elvis ' lastSpacePosition >>> 6" "'elvis ' lastSpacePosition >>> 7" "'' lastSpacePosition >>> 0" self size to: 1 by: -1 do: [:i | ((self at: i) isSeparator) ifTrue: [^ i]]. ^ 0('ab' compare: 'aa') >>> 311R(#(1 2 3) collect: [:each | each + 10 ] thenSelect: [:each | each even]) >>> #(12)13(Character pageUp isControlOther >>> true#'hello''world00 1 n n n 1 010classSide "Return the metaclass of the couple class/metaclass. Useful to avoid explicit test." "Point classSide >>> Point class" "Point class classSide >>> Point class" ^ self classOReturn a string representing the receiver in HEX (i.e., 6 elements in 16 basis) 82537349274025512c982d32561a312rounded "Answer the integer nearest the receiver." "1.4 rounded >>> 1" "1.5 rounded >>> 2" "2 rounded >>> 2" "-1.5 rounded >>> -2" ^(self + (self sign / 2)) truncated ( 1 }. 2 )$'3,123' isAllAlphaNumerics >>> false foo | tmp | tmp := 1 . ^ tmp . AcopyReplaceAll: oldSubstring with: newSubstring asTokens: ifTokens "Answer a copy of the receiver in which all occurrences of oldSubstring have been replaced by newSubstring. ifTokens (valid for Strings only) specifies that the characters surrounding the replacement must not be alphanumeric (space). When ifTokens is set, it means that the replacement will not occur inside word." "('test te string' copyReplaceAll: 'te' with: 'longone' asTokens: true) >>> 'test longone string'" "('test te string' copyReplaceAll: 'te' with: 'longone' asTokens: false) >>> 'longonest longone string'" | aString startSearch currentIndex endIndex | aString := self. startSearch := 1. [(currentIndex := aString indexOfSubCollection: oldSubstring startingAt: startSearch) > 0] whileTrue: [endIndex := currentIndex + oldSubstring size - 1. (ifTokens not or: [(currentIndex = 1 or: [(aString at: currentIndex-1) isAlphaNumeric not]) and: [endIndex = aString size or: [(aString at: endIndex+1) isAlphaNumeric not]]]) ifTrue: [aString := aString copyReplaceFrom: currentIndex to: endIndex with: newSubstring. startSearch := currentIndex + newSubstring size] ifFalse: [ ifTokens ifTrue: [startSearch := currentIndex + 1] ifFalse: [startSearch := currentIndex + newSubstring size]]]. ^ aString00 013310>printOn: aStream delimiter: delimString "Print elements on a stream separated with a delimiter String like: 'a, b, c'" "(String streamContents: [:s| { 10. 'hello'. $x } printOn: s delimiter: ', ']) >>> '10, ''hello'', $x'" self do: [:elem | aStream print: elem] separatedBy: [aStream nextPutAll: delimString]5{5@0. -3@8. 0@ -1.} sign >>> {(1@0). (-1@1). (0@ -1)}1012u XXXXXRwith: anObject withAll: aCollection "Creates an array with anObject followed by elements contained in aCollection." "(Array with: 1 withAll: #(2 3 4)) >>> #(1 2 3 4)" | newArray | newArray := self new: aCollection size + 1. newArray at: 1 put: anObject. newArray replaceFrom: 2 to: newArray size with: aCollection. ^newArray*true ifTrue: [ ^ 1 ] ifFalse: [ ^ 2 ]. ^ 3/ """ pppp """ A """ pppp """ A """ ^ """ a """ 131201000000000000000000 ppp < <<<<Evaluate aBlock with my elements taken two at a time. If there's an odd number of items, ignore the last one. Allows use of a flattened array for things that naturally group into pairs. See also pairsCollect:71330Evaluate twoArgBlock with corresponding elements from this collection and otherCollection. Missing elements from either will be passed as nil.16rDF211zz!a := a. { [ :a | a := a }. a := ad#((2@2) - (100@200)) >>> (-98@ -198):({1. 2. 3. 4} replace: [:each | each + 1 ]) >>> #(2 3 4 5)c546888333A9992BDDD111E0000FFHHH220421111O('<1p>: <2p>' expandMacrosWith: 'Number' with: 5 with: nil) >>> '''Number'': 5'312213.066(42 decimalDigitAt: 2) >>> 4fghiXXXXXXXX&#(10 20 30) - #(0 1 2) >>> #(10 19 28)13-23 016rFF3010&(#(1 2 3 4) intersection: #()) >>> #()foo*(100@200) reciprocal >>> ((1/100)@(1/200))/#( #':=' aa: #= #':=' #= bb: #'==' #cc: #'==' ) 000000000000011213141117666855590(true or: [false]) >>> true0d000102035g"{3@5. 7@ -4} average >>> (5@(1/2))hAnswer the upper left corner of the rectangle uniquely defined by the receiver and the argument, aPoint.3WReturn a string containing the path elements of the receiver, without the 'Path *' part0171A14#u u. 0 :B | X b b XX b 0. X X[ : | CWrite the STON serialization of object to the character writeStream-14000002KAnswer with a collection of cumulative percents covered by elements so far.2231Consider using any of printStringHex printStringBase: 16 printStringBase: 16 length: 8 padded: true storeStringHex storeStringBase: 16 storeStringBase: 16 length: 11 padded: true hello world3.1479302re223244540string21(Array streamContents: ([:stream | #(1 2 3) do: [:each | stream nextPut: (each + 10)] separatedBy: [ stream nextPut: 0 ]])) >>> #(11 0 12 0 13)(1 max: 1000) >>> 100022(true and: [false]) >>> false3adef1foo: super ^ super + 1 222200001111^ 17&2 minutes printString >>> '0:00:02:00'220241011000vector0That is false!20!(#() collect: [:x | x+1]) >>> #()-3 odd >>> true14 abd hello abd 10042sumNumbers "This is implemented using a variant of the normal inject:into: pattern that is specific to handling numbers. The receiver should include only numbers. Different from the sum implementation, the default value is zero. While sum is more general, sumNumbers is meant to support the most often encountered use case of dealing with numbers." "#(1 2 4) sumNumbers >>> 7" "#() sumNumbers >>> 0" ^ self inject: 0 into: [ :sum :each | sum + each ]21e0XsXy400Evaluate aBlock with each of the receiver's elements as the argument. Collect the resulting values into an instance of aClass. Answer the resulting collection.asByteArray "Convert to a ByteArray with the ascii values of the string." "'a' asByteArray >>> #[97]" "'A' asByteArray >>> #[65]" "'ABA' asByteArray >>> #[65 66 65]" self subclassResponsibility'' asLowercase >>> ''15cool-1.52'-32 rounded >>> 228000111213141100If I am involved in arithmetic with another Collection, return a Collection of the results of each element combined with the scalar in that expression. Is used to implement Collection>>+, Collection>>-, etc.319135#( # ## #ab # 10 # #'.' 10 )5CodeError signal: 'false error'57combinations "Return all the combinations of elements of the receiver. Note that combinations does not include the empty element contrary to the mathematical definition of combinations." "#(1 2 3 4) combinations >>> #(#(1) #(2) #(3) #(4) #(1 2) #(1 3) #(1 4) #(2 3) #(2 4) #(3 4) #(1 2 3) #(1 2 4) #(1 3 4) #(2 3 4) #(1 2 3 4))" ^ Array streamContents: [ :stream | 1 to: self size do: [ :take | self combinations: take atATimeDo: [ :combination | stream nextPut: combination copy ] ] ]0(Color r: 0.5 g: 0.5 b: 1) hslSaturation >>> 1.0eLOL1519worldUReturn whether the receiver is composed entirely of digits and has at least one digit. foo: arg ^ ( ( ( ( arg ) ) + ( ( 1 ) ) ) ) . MPrint elements on a stream separated with a delimiter String like: 'a, b, c' pppp Xppp 12DnextToLast "(#(1 2 3 4) nextToLast) >>> 3" ^self at: self size - 1 '' size >>> 026size "Answer how many elements the receiver contains." "#(10 20) size >>> 2" "#() size >>> 0" "#((())) size >>> 1" "'' size >>> 0" "' ' size >>> 2" "(1 to:10) size >>> 10 " "(1 to:10 by:2) size >>> 5" "(10 to:1) size >>> 0" | tally | tally := 0. self do: [:each | tally := tally + 1]. ^ tallylAnswer the character position of the final space or other separator character in the receiver, and 0 if none10Return a SortFunction around the receiver, where the receiver will be used as a unary message to send to both a and b during sorting, and then the result of said send will be collated in ascending order using the <=> method.Color red hslSaturation >>> 1.0302JisConnectorPunctuation "Return whether the receiver is one of these characters: _" "$_ isConnectorPunctuation >>> true" "$( isConnectorPunctuation >>> false" "$) isConnectorPunctuation >>> false" "$> isConnectorPunctuation >>> false" "$} isConnectorPunctuation >>> false" ^ self characterSet isConnectorPunctuation: self'1abc' startsWithDigit >>> true00100242020(#(x y z) atLast: 2) >>> #y1110132#foo: keywords >>> #('foo:') 555 0066601 777 1"(1 to: 5 by: 3) asArray >>> {1. 4}0021113 0002copyWith: newElement "Answer a new collection with newElement added (as last element if sequenceable)." "(#(10 20) asSet copyWith: 30) >>> #(10 20 30) asSet" "(#(10 20) asSet copyWith: 20) >>> #(10 20) asSet" ^ self copy add: newElement; yourself15!"a" ( "b" ( "c" 1 "d" ) "e" ) "f"a ###'hellodef100.11#(a b c) asOrderedCollection asArray >>> #(a b c)143100.0a12$) isControlOther >>> false0011200Answer the index of the receiver's first element, such that that element equals the first element of aSubCollection, and the next elements equal the rest of the elements of aSubCollection. Begin the search at element anIndex of the receiver. If no such match is found, answer 0.-0.9303S( #(3 4 1 2) flatCollect: [:each | { each. each*10 } ] ) >>> #(3 30 4 40 1 10 2 20)oselectEverySecond "#(1 2 3 4) selectEverySecond asArray >>> #(2 4) " ^ self selectEvery: [ :i | i \\ 2 = 0 ]9Print the receiver in standard French format dd/mm/yyyy.XXXs&#(1 2 3) , #(4 5 6) >>> #(1 2 3 4 5 6)1iReturn a new sequenceable collection which contains the same elements as self but its elements are sorted'hello' copyEmpty >>> ''114 true >>> true20183indexOf: aCharacter startingAt: start "Return the index of the argument in the receiver, only elements after the start of the element are considered zero if not present." "('abcdf abcedf' indexOf: $a startingAt: 4) >>> 7" "('abddf bcdef' indexOf: $a startingAt: 100 ) >>> 0" (aCharacter isCharacter) ifFalse: [^ 0]. ^ self class indexOfAscii: aCharacter asciiValue inString: self startingAt: startsqueezeOutNumber "Try to find a number somewhere in this string, as explained in Number>readFrom: this method returns the first number found" "'th is is29 a stRI4' squeezeOutNumber >>> 29" "'th is is2 9 a stRI4' squeezeOutNumber >>> 2" ^ Number squeezeNumberOutOfString: selfP((Date year: 2018 month: 9 day: 28) addDays: 3) printString >>> '1 October 2018''('hello world' occurrencesOf: 10) >>> 0700000105333344226670vector04('abcdefgh' includesSubstring: 'de' at: 1) >>> false%Point class classSide >>> Point class120000134YmakeRoomAtFirst "Make some empty slots at the front of the array. If we have more than 50% free space, then just move the elements, so that the first 50% of the slots are free, otherwise add new free slots to the front by growing. Precondition: firstIndex = 1" "#(1 2 3) asOrderedCollection capacity >>> 3" "#(1 2 3) asOrderedCollection makeRoomAtFirst capacity >>> 6" | tally newFirstIndex newLastIndex | tally := self size. tally * 2 >= array size ifTrue: [ ^self growAtFirst ]. tally = 0 ifTrue: [ ^self resetTo: array size + 1 ]. newFirstIndex := array size // 2 + 1. newLastIndex := newFirstIndex - firstIndex + lastIndex. 0 to: tally - 1 do: [ :offset | array at: newLastIndex - offset put: (array at: lastIndex - offset) ]. array from: firstIndex to: newFirstIndex - 1 put: nil. firstIndex := newFirstIndex. lastIndex := newLastIndex66a0vector02023H' this string will be trimmed ' trim >>> 'this string will be trimmed'nuuuu%zIf the write position of stream is at the end of the internal buffer of stream (originalContents), we can return it directly instead of making a copy as contents would do54220abcAnswer whether the receiver contains any elements, or is nil. Useful in numerous situations where one wishes the same reaction to an empty collection or to nil:storeOn: aStream "Print inside string quotes, doubling inbedded quotes." "(String streamContents: [ :s | 'Foo''Bar' storeOn: s ]) >>> '''Foo''''Bar'''" | x | aStream nextPut: $'. 1 to: self size do: [ :i | aStream nextPut: (x := self at: i). x = $' ifTrue: [ aStream nextPut: x ] ]. aStream nextPut: $'03101!31111200445555555A888897766DBBBBC2Esum works with objects that understands + and - messages, like Points#(()) isNotEmpty >>> true10whatever05010a1Five is {five}.300.0 0min "Return the minimum value of the collection" "#(1 5 10 -4) min >>> -4" "{1@5. 10@ -4} min >>> (1@ -4)" ^ self inject: self anyOne into: [:min :each | min min: each]That is false!33122"atLast: indexFromEnd ifAbsent: block "Return element at indexFromEnd from the last position. atLast: 1 ifAbsent: [] returns the last element" "(#(x y z) atLast: 1 ifAbsent: #a) >>> #z" "(#(x y z) atLast: 4 ifAbsent: #a) >>> #a" ^ self at: self size + 1 - indexFromEnd ifAbsent: blockD('||' split: 'foo||bar||2')>>>#('foo' 'bar' '2') asOrderedCollectionarcTan: denominator "Answer the angle in radians. Implementation note: use sign in order to catch cases of negativeZero" "(-0.5 arcTan: -0.5) >>> -2.356194490192345" "(1.2 arcTan: 1.5) >>> 0.6747409422235526" "(1.2 arcTan: -1.5) >>> 2.4668517113662407" ^ self = 0.0 ifTrue: [denominator signBit = 0 ifTrue: [ 0 ] ifFalse: [ self signBit = 0 ifTrue: [ Pi ] ifFalse: [ Pi negated ]]] ifFalse: [denominator = 0.0 ifTrue: [self > 0.0 ifTrue: [ Halfpi ] ifFalse: [ Halfpi negated ]] ifFalse: [denominator > 0 ifTrue: [ (self / denominator) arcTan ] ifFalse: [self > 0 ifTrue: [ ((self / denominator) arcTan) + Pi ] ifFalse: [ ((self / denominator) arcTan) - Pi ]]]]502>('Pharo is <1s>' expandMacrosWith: 'cool') >>> 'Pharo is cool'1xb 1 foo: ; barJExecutes aBlock on each of the receiver's elements except for the last one192| T t | t nn. ^ t over index: 778abcdefgh4Answer some indication of how alike the receiver is to the argument, 0 is no match, twice aString size is best score (but see example with 7). Case is ignored. This method is used to help find mistyped variable names in methods.e:3Ynot "Negation -- answer true since the receiver is false." "false not >>> true" ^true78s:1 e:3 s:6 e:8 s:11 e:11 a1 That is true!62K(#(a b c d e) indexOfSubCollection: #(c d) startingAt: 4 ifAbsent: 7) >>> 7test,(3 ifNotNil: [:o | o +3 ] ifNil: [42]) >>> 6103'|' or parameter expected101 foo. 2findBinaryIndex: aBlock do: actionBlock ifNone: exceptionBlock "Search for an element in the receiver using binary search. The argument aBlock is a one-element block returning 0 - if the element is the one searched for <0 - if the search should continue in the first half >0 - if the search should continue in the second half If found, evaluate actionBlock with the index as argument If no matching element is found, evaluate exceptionBlock, with the indexes of the 'bounding' elements as arguments. Warning: Might give invalid indexes, see examples below" "(#(1 3 5 7 11 15 23) findBinaryIndex: [ :arg | 11 - arg ] do: [ :found | found ] ifNone: [ :a :b | 'between: ', {a. b} printString ]) >>> 5" "(#(1 3 5 7 11 15 23) findBinaryIndex: [ :arg | 12 - arg ] do: [ :found | found ] ifNone: [ :a :b | 'between: ', {a. b} printString ]) >>> 'between: #(5 6)'" "(#(1 3 5 7 11 15 23) findBinaryIndex: [ :arg | 0.5 - arg ] do: [ :found | found ] ifNone: [ :a :b | 'between: ', {a. b} printString ]) >>> 'between: #(0 1)'" "(#(1 3 5 7 11 15 23) findBinaryIndex: [ :arg | 25 - arg ] do: [ :found | found ] ifNone: [ :a :b | 'between: ',{a. b} printString ]) >>> 'between: #(7 8)' " | index low high test | low := 1. high := self size. [ index := high + low // 2. low > high ] whileFalse: [ test := aBlock value: (self at: index). test = 0 ifTrue: [ ^ actionBlock value: index ] ifFalse: [ test > 0 ifTrue: [ low := index + 1 ] ifFalse: [ high := index - 1 ] ] ]. ^ exceptionBlock cull: high cull: lowQAnswer the next multiple of aNumber toward infinity that is nearest the receiver.gkIf the receiver is not nil, pass it as argument to the ifNotNilBlock block. else execute the nilBlock blockfoo < bar: 1 1 > 5 00000000200000101x 0 odd >>> false31101sAnswer whether the receiver sorts equally as aString. The collation order is simple ascii (with case differences).3S(#(2r101 2r11 2r1000) inject: 0 into: [ :acc :each | acc bitXor: each ]) >>> 2r1110$- isDashPunctuation >>> true 1 foo: ^22100000000000000004:('<1?success:error>' expandMacrosWith: true) >>> 'success'|escapeCharacter: aCharacter "Returns a copy of the string doubling all occurence of aCharacter." "See `unescapeCharacter:` for the opposite" "('abc' escapeCharacter: $X) >>> 'abc'" "('aXb' escapeCharacter: $X) >>> 'aXXb'" "('XaX' escapeCharacter: $X) >>> 'XXaXX'" "('XXaXbXXcXXXdXX' escapeCharacter: $X) >>> 'XXXXaXXbXXXXcXXXXXXdXXXX'" | result stream | result := WriteStream with: ''. stream := ReadStream on: self. [ stream atEnd ] whileFalse: [ result nextPutAll: (stream upTo: aCharacter). stream peekBack = aCharacter ifTrue: [ result nextPut: aCharacter. result nextPut: aCharacter ] ]. ^ result contents1 Not found6Preduce: aBlock "Fold the result of the receiver into aBlock. The argument aBlock must take two or more arguments. It applies the argument, binaryBlock cumulatively to the elements of the receiver. For sequenceable collections the elements will be used in order, for unordered collections the order is unspecified." "(#(1 2 3) reduce: [ :a :b | a + b ]) >>> 6" "1 + 2 + 3" "(#(1 2 3) reduce: [ :a :b | a + b ]) >>> (1 + 2 + 3)" "(#(1 2 3 4 5) reduce: [ :a :b :c | a + b + c ]) >>> 15" "(#(1 2 3 4 5) reduce: [ :a :b :c | a + b + c ]) >>> (1 + 2 + 3 + 4 + 5)" ^ self reduceLeft: aBlockK(STON fromStreamWithComments: 'Point[1,/*comment*/2]' readStream) >>> (1@2)E(#(a b c d e) indexOfAnyOf: #(x y c) startingAt: 2 ifAbsent: 7) >>> 3abc 0 :B :B | b 01421202d2016fReturn the object stored in the second dictionary at secondKey. The second dictionary is accessed via the key firstKey. Execute aZeroArgBlock in case one of the key is wrong.40/#( aa:bb:cc #'aa:bb:cc' #cc #'==' #'==' #= #= )4 factorial >>> 240vector0129abcde1502nanoSecond "1 nanoSecond printString >>> '0:00:00:00.000000001'" "(1 milliSecond + 1 nanoSecond) printString >>> '0:00:00:00.001000001'" ^ self nanoSeconds2(true xor: [true]) >>> false42(1 digitAt: 2 base: 10) >>> 01 first elementa3123abc|Answer the set theoretic intersection of two collections. Optimized version for Sets where no intermediate Set is necessary14 Hello, world!&('foo*baz' match: 'foo23baz') >>> true161 max: 2; "e"min: 3/foo/bar 0:B| | |u00vector0kIf the receiver is not nil, pass it as argument to the ifNotNilBlock block. else execute the nilBlock block555 106660077708 AAA2Edetect: aBlock ifFound: foundBlock "Evaluate aBlock with each of the receiver's elements as the argument. If some element evaluates aBlock to true, then cull this element into foundBlock. If no element matches the criteria then do nothing. Always returns self to avoid misuse and a potential isNil check on the sender." "|s| (#(1 2) detect: [ :each | each even ] ifFound: [ :e | s:=e*10 ]). s >>> 20" "|s| (#(1 3) detect: [ :each | each even ] ifFound: [ :e | s:=e*10 ]). s >>> nil" self detect: aBlock ifFound: foundBlock ifNone: [ "Do nothing on purpose" ]8cumulativeCounts "Answer with a collection of cumulative percents covered by elements so far." "#(1 2 2 3 1 1 1) asBag cumulativeCounts >>> {57.1->1 . 85.7->2 . 100.0->3}" | s n | s := self size / 100.0. n := 0. ^ self sortedCounts asArray collect: [:a | n := n + a key. (n / s roundTo: 0.1) -> a value]-888 00999000AAA030BBB000FFF0C0GGG000III00 JJJ23250 abab ac deATests-unix-64-Calypso-SystemPlugins-Traits-Queries-Tests-Test.xml70 ^ n. n. ^ n 04tAnswer a new collection like the receiver which contains all elements of the receiver at the indices of indexArray.-255a::foo1!CCC 00DDD040777000888090BBB00 EEE(Array streamContents: [:stream | #(1 2 3 4) select: [:each | each > 2 ] thenDo: [:each | stream nextPut: each + 10]]) >>> #(13 14)110| T | 0 t nn 0. ^ t32270vector021 sign; 110>> true32768 == (1 bitShift: 15)789252ynewFromArray: anArray "Fast initialization with the items of a given array. This initializes elements faster that the generic withAll: or newFrom: methods. The main selling point is that dynamic arrays, like {1. 2. 3}, are really fast in Pharo. So other collections can be easily and efficiently initialized with `{1. 2. 3} asFoo` syntax. Important: Subclasses of Collection that redefine withAll: or newFrom: should also redefine this method either by having a proper implementation (specific to Arrays) or by calling the redefined versions of withAll:/newFrom:." "{ 1. 2. 3 } asSet >>> (Set new add: 1; add:2; add:3; yourself)" "{ 1. 2. 3 } asOrderedCollection >>> (OrderedCollection new add: 1; add:2; add:3; yourself)" "{ 1->2. 3->4 } asDictionary >>> (Dictionary new at: 1 put: 2; at: 3 put:4; yourself)" "({ 1. 2. 3 } as: Set) >>> (Set new add: 1; add:2; add:3; yourself)" "({ 1. 2. 3 } as: OrderedCollection) >>> (OrderedCollection new add: 1; add:2; add:3; yourself)" "({ 1->2. 3->4 } as: Dictionary) >>> (Dictionary new at: 1 put: 2; at: 3 put:4; yourself)" | newCollection size | size := anArray size. newCollection := self new: size. " This should be fast: 1. Integer>>to:do: is inlined in the bytecode (no block). 2. The Array>>at: callsite should be monomorph to a primitive method. " 1 to: size do: [ :i | newCollection add: (anArray at: i) ]. ^ newCollection0102731>('Pharo is really super cool' contractTo: 10) >>> 'Phar...ool'1115Split a collection of objects based on a splitter. splitter - can be a subsequence, a Block or a Regex (String receiver only). Any other object used as a splitter is treated as an Array containing that object.=(KeyboardKey named: 'SHIFT_L') >>> (KeyboardKey value: 65505)0vector05(Array streamContents: [ :stream | #(0 1 2 3) allPairsDo: [ :first :second | stream nextPut: { first . second } ] ]) >>> #(#(0 0) #(0 1) #(0 2) #(0 3) #(1 0) #(1 1) #(1 2) #(1 3) #(2 0) #(2 1) #(2 2) #(2 3) #(3 0) #(3 1) #(3 2) #(3 3))5Optimized version of Collection>>#collect:thenSelect:9000111213441511 between: min: maxValue max: minValue "Take the minimum between self and maxValue, then the maximum with minValue" "(10 min: 20 max: 5) >>> 10" "(10 min: 20 max: 11) >>> 11" "(24 min: 20 max: 5) >>> 20" ^ (self min: maxValue) max: minValue0{ 1. 2 } 'Foo''Bar'28 December 20180vector0;'234znak ::x43 ) :2' asValidSelector >>> #v234znak:x43:v2Z(String streamContents: [ :s | 10 printOn: s base: 10 length: 4 padded: true] ) >>> '0010' #[ 1 256 2 ]d1022We42150.0FTests-unix-64-Calypso-SystemPlugins-Deprecation-Queries-Tests-Test.xml710E(1 milliSecond + 1 nanoSecond) printString >>> '0:00:00:00.001000001'3* 333330444444groupByRuns: aBlock "Answer a new collection of the same species as the receiver with elements being collections (of the receiver species) containing those elements of the receiver for which the given block consecutively evaluates to the same object." "(#(1 2 3 4 4 1 2 3 5 6 ) groupByRuns: [ :each | each = 4]) >>> #(#(1 2 3) #(4 4) #(1 2 3 5 6))" "(#(1 2 3 4 1 2 3 4 5 6 ) groupByRuns: [ :each | each = 4]) >>> #(#(1 2 3) #(4) #(1 2 3) #(4) #(5 6))" "((1 to: 12) groupByRuns: [ :each | (each \\ 3) = 0]) >>> #(#(1 2) #(3) #(4 5) #(6) #(7 8) #(9) #(10 11) #(12))" | str eStr r | str := Array new writeStream. r := nil. eStr := Array new writeStream. self do: [ :e | | t | (t := aBlock value: e) = r ifFalse: [ r := t. eStr isEmpty ifFalse: [ str nextPut: (eStr contents as: self species). eStr reset ] ]. eStr nextPut: e ]. eStr isEmpty ifFalse: [ str nextPut: (eStr contents as: self species) ]. ^ str contents as: self species0be|Retrieve an element with a probability related to the weighting block. The block takes an element as argument and provides a positive number as result (the retative weight). An implicit normalization is performed on all weights. Multiple occurences of equal elements multiply the probability to be choosen. Warning: empty collections and negative weights will signal errors.| TTTTT | ttttt n. ^ ttttt#[ 1 2 ].#(aa:bb:"A"cc"B"#aa:bb:cc"C"#cc"D"++"E"#++"F")2#[ 1 20312103(OrderedCollection new growAtLast; capacity) >>> 201 sign;5reciprocal "Answer a Point with coordinates that are the reciprocals of mine." "(100@200) reciprocal >>> ((1/100)@(1/200))" ^ x reciprocal @ y reciprocal10000000asa+5 + 1. - a. - 1. - 1 "A"232201c00-34Oascending "Return a SortFunction around the receiver, where the receiver will be used as a unary message to send to both a and b during sorting, and then the result of said send will be collated in ascending order using the <=> method." "(#('abc' 'de' 'fghi') sorted: #size ascending) >>> #('de' 'abc' 'fghi')" ^self asSortFunction1001Tests-unix-64-NewTools-FileBrowser-Tests-Test.xml101emptyCheck "Signal CollectionIsEmpty if the collection is empty" "#(10 20) emptyCheck >>> #(10 20)" "([#() emptyCheck] on: CollectionIsEmpty do: [ 'oops' ]) >>> 'oops'" self isEmpty ifTrue: [self errorEmptyCollection]atwo10102tunescapeCharacter: aCharacter "Unescape an escaped string. Assume the string has all occurrences of aCharacter are escaped. That is, they are in pairs. This method returns a copy of the string replacing all pairs of aCharacter by a single appearance of it." "See `escapeCharacter:` for the opposite" "('''''' unescapeCharacter: $') >>> ''''" "('''' unescapeCharacter: $') >>> ''" | result stream | result := WriteStream with: ''. stream := ReadStream on: self. [ stream atEnd ] whileFalse: [ result nextPutAll: (stream upTo: aCharacter). stream peek ifNotNil: [result nextPut: stream next]]. ^result contentspharo0022324eatWrap: index "Answer the index'th element of the receiver. If index is out of bounds, let it wrap around from the end to the beginning until it is in bounds." "(#(11 22 33) asOrderedCollection atWrap: 2) >>> 22" "(#(11 22 33) asOrderedCollection atWrap: 4) >>> 11" "(#(11 22 33) asOrderedCollection atWrap: 5) >>> 22" ^ self at: index - 1 \\ self size + 1+('abc' sameAs: 'aBc' asWideString) >>> true23w-198DE101book-result/W01-Welcome3zwithSeparatorsCompacted "Returns a copy of the receiver with each sequence of whitespace (separator) characters replaced by a single space character" "' test ' withSeparatorsCompacted >>> ' test '" "' test test' withSeparatorsCompacted >>> ' test test'" "'test test ' withSeparatorsCompacted >>> 'test test '" self isEmpty ifTrue: [ ^ self ]. ^ self species new: self size streamContents: [:stream | | lastBlank | lastBlank := false. self do: [ :eachChar | lastBlank ifTrue: [ (lastBlank := eachChar isSeparator) ifFalse: [ stream nextPut: eachChar ] ] ifFalse: [ (lastBlank := eachChar isSeparator) ifTrue: [ stream nextPut: $ ] ifFalse: [ stream nextPut: eachChar ] ] ] ]aeiou10JtallyInstructions: aBlock "Count the occurrences of each bytecode during the execution of aBlock. Return a Array of associations using the byte as key and the occurrences as values sorted by the instruction opcode numeric values. This method uses the in-image bytecode interpreter to evaluate and count the instructions." "(Context tallyInstructions: [3.14159 printString]) size >>> 120" | tallies | tallies := Bag new. thisContext sender runSimulated: aBlock contextAtEachStep: [:current | tallies add: current instructionStream peekByte ]. ^tallies sortedElementsnnumericSuffix "'abc98' numericSuffix >>> 98" "'98abc' numericSuffix >>> 0" ^ self stemAndNumericSuffix last33xc16rFF10we project-pharo0 :B | XXXXXXX. b 0540O( #(1 2 3 4 5) asSet reduce: [ :a :b :c | a + b + c ] ) >>> (1 + 2 + 3 + 4 + 5)-416r4112^Append the elements of the argument, aSequenceableCollection, separating them by the receiver.c7AReturn the class of STON maps, Dictionary, a system wide constant2001202303runningMax: aSubsetSize "Running max. See the comment of self >> #running:of: for more information." "(#(1 1 2 2 3 3) runningMax: 3) >>> {2 . 2 . 3 . 3}" ^ self running: [ :subset | subset max ] of: aSubsetSize1 ; cWhitespace characters:2440001020012Since the condition is true, the value is the true alternative, which is nil. Execution does not actually reach here because the expression is compiled in-line.12<(1 second + 2 milliSeconds) printString >>> '0:00:00:01.002'214(1 to:10 by:2) size >>> 5thirdhscaleTo: anExtent "Return a Point scalefactor for shrinking a thumbnail of the receiver's extent to fit within anExtent. self and anExtent are expected to have positive nonZero x and y." "(200@200 scaleTo: 400@400) >>> (2.0@2.0)" "(40@40 scaleTo: 400@400) >>> (10.0@10.0)" | factor sX sY | factor := 3.0 reciprocal. "EccentricityThreshhold reciprical" sX := anExtent x / self x asFloat. sY := anExtent y / self y asFloat. sX = sY ifTrue: [ ^ sX @ sY ]. "Same aspect ratio" ^ sX < sY ifTrue: [ sX @ (sX max: sY * factor) ] ifFalse: [ (sY max: sX * factor ) @ sY ]max "Return the maximum value of the collection" "#(1 5 10 -4) max >>> 10" "{1@5. 10@ -4} max >>> (10@5)" ^ self inject: self anyOne into: [ :max :each | max max: each ]2,Tests-unix-64-Kernel-Extended-Tests-Test.xml0307198abcoops1@ foo110uflattened "Flattens a collection of collections (no matter how many levels of collections exist). Strings are considered atoms and, as such, won't be flattened" "( #(1 #(2 3) #(4 #(5))) flattened ) >>> #(1 2 3 4 5)" "( #('string1' #('string2' 'string3')) flattened ) >>> #('string1' 'string2' 'string3')" ^ Array streamContents: [ :stream | self flattenOn: stream ]1$(#(a b a d e) lastIndexOf: #a) >>> 34%Tests-unix-64-OSWindow-Tests-Test.xmlhello-443.123We3%printStringBase: b "Return a String representation of this number in base b. For SmallIntegers, it is more efficient to print directly in a String, rather than using a Stream like super." "(10 printStringBase: 10) >>> '10'" "(-10 printStringBase: 10) >>> '-10'" "(10 printStringBase: 2) >>> '1010'" "(10 printStringBase: 16) >>> 'A'" self < 0 ifTrue: [^ '-' , (self negated printStringBase: b)]. self < b ifTrue: [^ String with: (Character digitValue: self)]. ^ self printStringBase: b nDigits: (self numberOfDigitsInBase: b)1010331$$X$(#(1 3 5 7 11 15 23) findBinaryIndex: [ :arg | 11 - arg ] do: [ :found | found ] ifNone: [ :a :b | 'between: ', {a. b} printString ]) >>> 510h goodby: my: u u. X 0 :B 0. X XReturn a SortFunction around the receiver, where the receiver will be used as a unary message to send to both a and b during sorting, and then the result of said send will be collated iusing aSortFunction.230100({3. 9. 1} sort: [:a :b | a >= b ]) >>> #(9 3 1)0Absolute value of all elements in the collection!(10 storeStringBase: 10) >>> '10'201.2343013 W01-Welcome000022222223265554 "com"1"ment"413-1| | a ( 1 and: 4)onehello 222133344430 002{1)2}5+('aBc' asWideString sameAs: 'abc') >>> trueXXsX2r1110Returns a string representation of the receiver as hex, prefixed with 16r. DO NOT CHANGE THIS! The Cog VMMaker depends on this.world2 hellotheworld20000'2345' isAllDigits >>> true@Pairwise sum of two sequenceable collections of the same length.2Unexpected token1"2 ** (1/12) >>> 1.059463094359295350.005 between: 0vector06014Negation -- answer true since the receiver is false.16abc2.0102 factorial >>> 2Unknown annotation28 August 2018 twoat: anInteger "Answer my element at index anInteger. at: is used by a knowledgeable client to access an existing element." "((OrderedCollection new add: 34; yourself) at: 1) >>> 34" "(#(40 41 42) asOrderedCollection at: 1) >>> 40" "(#(40 41 42) asOrderedCollection at: 2) >>> 41" "(#(40 41 42) asOrderedCollection at: 3) >>> 42" | index | anInteger < 1 ifTrue: [ self errorSubscriptBounds: anInteger ]. (index := anInteger + firstIndex - 1) > lastIndex ifTrue: [ self errorSubscriptBounds: anInteger ]. ^ array at: index301:(#(10 20 30) inject: 0 into: [:s :each| s + each ]) >>> 6000011121344151100E('XXaXbXXcXXXdXX' escapeCharacter: $X) >>> 'XXXXaXXbXXXXcXXXXXXdXXXX'ab 0:01:02:00 nothing to do424LOL0.01 8 ** 2 >>> 642"[ :a :a :b | | a a b | a + a + b ] is number 1018diff: theOther "Returns a number between 0.0 and 1.0" "(Color red diff: Color red) >>> 0.0" "(Color white diff: Color black ) >>> 1.0" ^ ((self privateRed - theOther privateRed) abs + (self privateGreen - theOther privateGreen) abs + (self privateBlue - theOther privateBlue) abs) / 3.0 / ComponentMax100:A61XXXu32222141 abs2-1(false or: [true]) >>> true/ "a" 1 "b" max: "c" 2 "d" ; "e" min: "f" 3 "g" 'h'4This should not happen2This statement is false!9#Float pi radiansToDegrees >>> 180.0withIndexSelect: elementAndIndexBlock "select elements from the receiver that the block evaluates true with the element and its index." "(#('We' 'love' 'pharo!') withIndexSelect: [:value :index | value size - 1 <= index]) >>> #('We')" ^ self class new: self size streamContents: [ :stream | 1 to: self size do: [ :index | | each | (elementAndIndexBlock value: (each := self at: index) value: index) ifTrue: [ stream nextPut: each ] ] ]pharoDocCommentNodes "Return a collection of pharo comment nodes: expressions following the pattern" "true >>> true" ^ self comments flatCollect: [:each | each pharoDocCommentNodes]C('hello' collect: #asciiValue as: Array) >>> #(104 101 108 108 111)3100002-('foo*baz*zort' match: 'foobazzort') >>> true$) isClosePunctuation >>> trueU(ByteArray with: 97 with: 0 with: 0 with: 0) asString ~= 'a000' asWideString >>> true85sorted "Return a new sequenceable collection which contains the same elements as self but its elements are sorted" "#(3 1 4 2) sorted >>> #(1 2 3 4)" "'hello' sorted >>> 'ehllo'" "(10 to: 1 by: -2) sorted >>> (2 to: 10 by: 2)" ^self asArray sorted0Evaluate aBlock with each of the receiver's elements as the argument. Collect into a new collection like the receiver, only those elements for which aBlock evaluates to true. Answer the new collection."Character space tokenish >>> false1110 hexString >>> '16rA'0vector0 000000000000030foo*sReturn the index of my first element for which aBlock evaluates as true. If no matching element is found, return 01420"0 :BBBBBBBBBBB | bbbbbbbbbbb s n 0\Return element at indexFromEnd from the last position. atLast: 1, returns the last elementn s 1>> #Friday" ^ self dayOfWeekName1(false or: [3]) >>> 3collect: collectBlock thenReject: rejectBlock "Optimized version of Collection>>#thenReject:" "(#(1 2 3) collect: [:each | each + 10 ] thenReject: [:each | each even]) >>> #(11 13)" | each | ^ self class new: self size streamContents: [ :stream | 1 to: self size do: [:index | each := collectBlock value: (self at: index). (rejectBlock value: each) ifFalse: [ stream nextPut: each ]]]1-1072'A' asHex >>> '16r41' ] [1 , 2 , 3]1%000000111033BBB5555558887779AAAAAA220abc-"a" [ "b" : "c" x "d" : "e" y "f" | "g" ] "h"$1 isAlphaNumeric >>> truebozo6(1}2)66 311112200445H(#('abc' 'de' 'fghi') sorted: #size descending) >>> #('fghi' 'abc' 'de') 0:00:01:0151a1211^ aO(#(1 2 3) asOrderedCollection collect: [ :v | v * 10 ]) asArray >>> #(10 20 30)0.98000210one20cb120f0foo < 11 [ | | . 15yn u n1CisEmptyOrNil "Answer whether the receiver contains any elements, or is nil. Useful in numerous situations where one wishes the same reaction to an empty collection or to nil" "#() isEmptyOrNil >>> true" "nil isEmptyOrNil >>> true" "([0 isEmptyOrNil] on: MessageNotUnderstood do: ['oops']) >>> 'oops'" ^ self isEmptyPOr it can follow full superclass chain which will ends at Object and ProtoObject100011de21-1"A" - 1abs-1"B" - 1max:-1"C"01?Answer whether the receiver is above and to the left of aPoint.-1cab<<<<<13Literal constant expected111010n(Array streamContents: [:stream | #(1 2 3) allButFirstDo: [:each | stream nextPut: (each + 10)]]) >>> #(12 13)1Return the index of the argument in the receiver, only elements after the start of the element are considered zero if not present.303| a | [ a := 10 ]. ^ a4112SParse and materialize the STON representation in string, skipping C-style commentsAbcb255&Tests-unix-64-Microdown-Tests-Test.xml 00######################### ###0B#(1 2 3) asOrderedCollection removeDuplicates asArray >>> #(1 2 3)30210, 15, 20, 251070abcEReturn the HSL saturation of this color, a value between 0.0 and 1.0.+00BBBBBLLLCMMMDNNNEOOOFPPPGQQQHRRRISSSJTTT0(10.199999999 round: 2) >>>10.2e2192330=(#(1 3 5 7 11 15 23) findBinary: [ :arg | 11 - arg ]) >>> 11 1003Accumulate a running value associated with evaluating the argument, binaryBlock, with the current value of the argument, thisValue, and the receiver as block arguments.V{'two' ->2. 'one' -> 1} asDictionary >>> (Dictionary with: 'one' -> 1 with: 'two' ->2)$Here123should%Be6TheName6OfTheMethod-155Append the elements of the receiver separating them with the joiner argument and handle the last elment separation using the last argument.C('aeiou' findFirstInByteString: 'hello world' startingAt: 3) >>> 5.2001/Tests-unix-64-Spec2-Code-Backend-Tests-Test.xml1[(String streamContents: [ :s | -10 printOn: s base: 10 length: 4 padded: true] ) >>> '-010'13D'foo' asOrderedCollection = #($f $o $o) asOrderedCollection >>> true1(2 raisedTo: -1) >>> (1/2)1'abc' capitalized >>> 'Abc' over index: Hello, World!61004!Tests-unix-64-Slot-Tests-Test.xml44bat: index ifAbsent: exceptionBlock "Answer the element at my position index. If I do not contain an element at index, answer the result of evaluating the argument, exceptionBlock." "(#(a b c d) at: 3 ifAbsent: #z) >>> #c" "(#(a b c d) at: 5 ifAbsent: #z) >>> #z" (index between: 1 and: self size) ifTrue: [^ self at: index]. ^ exceptionBlock valueis error50#( #( 0 1 2 ) )1a0X'('''''' unescapeCharacter: $') >>> ''''9({10. 20} asOrderedCollection addIfNotPresent: 30) >>> 30[{"foo":1},{"bar":2}]215(false ifTrue: [ 'This statement is true!' ]) >>> nil0.0120foo: self ^ self + 10vector0split: aSequenceableCollection indicesDo: aBlock "Perform an action specified as aBlock (with a start and end argument) to each of the indices of aSequenceableCollection that have been identified by taking the receiver as a splitter." "(String streamContents: [:s | [:c | c isSeparator ] split: 'Pharo is cool' indicesDo: [ :start :end | s << 's:' << start asString << ' ' << 'e:' << end asString << ' ' ]]) >>> 's:1 e:5 s:7 e:8 s:10 e:13 '" | position | position := 1. aSequenceableCollection withIndexDo: [:element :idx | (self value: element) ifTrue: [ aBlock value: position value: idx - 1. position := idx + 1 ]]. aBlock value: position value: aSequenceableCollection size 1 sign ; bar%OrderedCollection new capacity >>> 10a(Array streamContents: [:stream | #(10 20 30 40 50) groupsOf: 2 atATimeDo: [:first :second | stream nextPut: (first + second)]]) >>> #(30 70)16printShowingDecimalPlaces: placesDesired "Print the receiver showing precisely the given number of places desired. If placesDesired is positive, a decimal point and that many digits after the decimal point will always be shown. If placesDesired is zero, a whole number will be shown, without a decimal point. Here are some examples:" "(23 printShowingDecimalPlaces: 2) >>> '23.00'" "(23.5698 printShowingDecimalPlaces: 2) >>> '23.57'" "(-234.567 printShowingDecimalPlaces: 5) >>> '-234.56700'" "(23.4567 printShowingDecimalPlaces: 0) >>> '23'" "(-23.4567 printShowingDecimalPlaces: 0) >>> '-23'" "(100000000 printShowingDecimalPlaces: 1) >>> '100000000.0'" "(0.98 printShowingDecimalPlaces: 5) >>> '0.98000'" "(-0.98 printShowingDecimalPlaces: 2) >>> '-0.98'" "(2.567 printShowingDecimalPlaces: 2) >>> '2.57'" "(-2.567 printShowingDecimalPlaces: 2) >>> '-2.57'" "(0 printShowingDecimalPlaces: 2) >>> '0.00'" ^String new: placesDesired + 10 streamContents: [:aStream | self printOn: aStream showingDecimalPlaces: placesDesired]0.00oops(Character euro isCurrencySymbol >>> true0vector024classSide "Return the metaclass of the couple class/metaclass. Useful to avoid explicit test." "Point classSide >>> Point class" "Point class classSide >>> Point class" ^ self||BReturns a copy of the string doubling all occurence of aCharacter.20011B('abcDefgh' includesSubstring: 'DE' caseSensitive: true) >>> false3(('Hello!' detectMin: #asciiValue) >>> $!0.9198435972629521zmin "Answer a number that is the minimum of the x and y of the receiver." "(100@200) min >>> 100" ^ self x min: self y10a10-3221 October 201810'abc' isByteString >>> trued2iReturn the stop element of an interval. Pay attention this is not necessary the same as the last element.(Array streamContents: [:stream | #(10 20 30) paddedWith: #(40 50 60) do: [:first :second | stream nextPut: (first + second)]]) >>> #(50 70 90) 1 sign;;barpharo|| XX n X n XaMissing opener for closer: ]$(#(10) averageIfEmpty: [ 0 ]) >>> 10nsn s nssssn s nssssnn-114({#hello. #world} identityIncludes: #hello) >>> trueU(true ifFalse: [ 'That is false!' ] ifTrue: [ 'That is true!' ]) >>> 'That is true!'includesSubstring: aString caseSensitive: caseSensitive "Returns whether the receiver contains the argument." "('abcdefgh' includesSubstring: 'de' caseSensitive: false) >>> true" "('abcdefgh' includesSubstring: 'DE' caseSensitive: false) >>> true" "('abcDefgh' includesSubstring: 'De' caseSensitive: true) >>> true" "('abcDefgh' includesSubstring: 'DE' caseSensitive: true) >>> false" ^ (self findString: aString startingAt: 1 caseSensitive: caseSensitive) > 0 { 1 }. { 2 }7(#(a b c d e) indexOfAnyOf: #(x y z) ifAbsent: 7) >>> 7k#(3.1479 truncateTo: 0.01) >>> 3.14100yThis is implemented using a variant of the normal inject:into: pattern that is specific to handling numbers. aBlock is expected to return a number for every element in the collection. Different from the sum: implementation, the default value is zero. While sum: is more general, sumNumbers: is meant to support the most often encountered use case of dealing with numbers.0.51]xor: alternativeBlock "Nonevaluating conjunction. If the receiver is true, answer the opposite of the the argument, alternativeBlock; otherwise answer the value of the alternativeBlock." "(true xor: [true]) >>> false" "(true xor: [false]) >>> true" "(false xor: [true]) >>> true" "(false xor: [false]) >>> false" self subclassResponsibility66516 ppp <<<<< X #( 0 1 r2 4 )61abcd6('pharo' beginsWith: '' caseSensitive: false) >>> truetoLowercase: aCharacter "(AsciiCharset toLowercase: $A) >>> $a." "(AsciiCharset toLowercase: $a) >>> $a." "(AsciiCharset toLowercase: $!) >>> $!" (aCharacter between: $A and: $Z) ifFalse: [ ^ aCharacter ]. ^ Character value: aCharacter asciiValue + $a asInteger - $A asInteger&ProtoObject class superclass >>> Class2X X 10 project-pharoxz1122311#between:and: isUnary >>> false-** exponent " A shortcut method for raisedTo: " "2 ** 8 >>> 256" "8 ** 2 >>> 64" "2 ** (1/12) >>> 1.0594630943592953" "2 ** -1 >>> (1/2)" ^ self raisedTo: exponent-2 sorted "Return a new sequenceable collection which contains the same elements as self but its elements are sorted in ascending order using the #'<=' operator." "#(8 5 3 9) sorted >>> #(3 5 8 9)" "#(a b z d) sorted >>> #(a b d z)" ^self sorted: [ :a :b| a <= b ]0vector02:. :a'1' asInteger >>> 1!(10 beBetween: 12 and: 20) >>> 12foo: *2222111111111335563311111111117799A7700BBC10Tests-unix-64-NautilusRefactoring-Tests-Test.xml21'a' asByteArray >>> #[97]20EMight be compiled inline for speed, see RBMessageNode>>#isInlineIfNil132768 bytesCount >>> 2b&(OrderedCollection new add: 42) >>> 422.4668517113662407'A' asByteArray >>> #[65]2[ | :(100000000 printShowingDecimalPlaces: 1) >>> '100000000.0'4210#Fast initialization with the items of a given array. This initializes elements faster that the generic withAll: or newFrom: methods. The main selling point is that dynamic arrays, like {1. 2. 3}, are really fast in Pharo. So other collections can be easily and efficiently initialized with `{1. 2. 3} asFoo` syntax. Important: Subclasses of Collection that redefine withAll: or newFrom: should also redefine this method either by having a proper implementation (specific to Arrays) or by calling the redefined versions of withAll:/newFrom:.ae0"also unfinished""3XXnX3b1 foo 2phuro=Answer whether the final character of the receiver is a colon02222227({#a. #b. #c. #d. #e} swap: 5 with: 1) >>> #(e b c d a)742 nanoSeconds printString >>> '0:00:00:00.000000002'3Class structural inspection - Class/Metaclass shift?(Color r: 0.5 g: 0.5 b: 1) hsvSaturation >>> 0.4995112414467253-('foo*baz*zort' match: 'foobazort') >>> false@|s| s:=0. #(11 22 33) select: #odd thenDo: [:x|s:=s+x]. s >>> 441!'' expandMacros >>> String tab0vector0aXXaXbXXcXXXdXX3foo: + abcdfg[:e + foo: - asFourCode "'abcd' asFourCode >>> -513645724" "'1111' asFourCode >>> 825307441" "'1234' asFourCode >>> 825373492" | result | self size = 4 ifFalse: [^self error: 'must be exactly four characters']. result := self inject: 0 into: [:val :each | 256 * val + each asciiValue ]. (result bitAnd: 16r80000000) = 0 ifFalse: [ Error signal: 'cannot resolve fourcode' ]. (result bitAnd: 16r40000000) = 0 ifFalse: [ ^ result - 16r80000000 ]. ^ result100 #(a b c d e f g h ) first >>> #a;'test test ' withSeparatorsCompacted >>> 'test test '2010001indexOfSubCollection: sub startingAt: start ifAbsent: exceptionBlock "Answer the index of the receiver's first element, such that that element equals the first element of sub, and the next elements equal the rest of the elements of sub. Begin the search at element start of the receiver. If no such match is found, answer the result of evaluating argument, exceptionBlock." "(#(a b c d e) indexOfSubCollection: #(c d) startingAt: 2 ifAbsent: 7) >>> 3" "(#(a b c d e) indexOfSubCollection: #(c d) startingAt: 4 ifAbsent: 7) >>> 7" | first index | sub isEmpty ifTrue: [^ exceptionBlock value]. first := sub first. start to: self size - sub size + 1 do: [:startIndex | (self at: startIndex) = first ifTrue: [index := 1. [(self at: startIndex+index-1) = (sub at: index)] whileTrue: [index = sub size ifTrue: [^startIndex]. index := index+1]]]. ^ exceptionBlock value|Answer whether aPoint is within the receiver. Pay attention the self origin is considered less than but the corner is strict103abcDefgh105aRoasTestSelector "Converts a method selector into a test selector in form of #testOriginalSelector" "#+ asTestSelector >>> #testPlus" "#+-<> asTestSelector >>> #testPlusMinusLessThanGreaterThan" "#message asTestSelector >>> #testMessage" "#mySelector asTestSelector >>> #testMySelector" "#at:putNext: asTestSelector >>> #testAtPutNext" self isBinary ifTrue: [ ^ (#test, (self flatCollect: [ :each | (((Character specialCharacterNames at: each) copyReplaceAll: '-' with: ' ') substrings collect: #capitalized) joinUsing: ''])) asSymbol ]. ^ (#test, (((self copyReplaceAll: ':' with: ' ') substrings collect: #capitalized) joinUsing: '')) asSymbol30S#[ 1 2 3 ] zipped >>> #[31 139 8 0 0 0 0 0 0 0 99 100 98 6 0 29 128 188 85 3 0 0 0]00vector0Answer the receiver's element immediately before target. Answer the result of evaluating the exceptionBlock if target is not an element of the receiver, or if there are no elements before it.5'98abc' numericSuffix >>> 0223Signal CollectionIsEmpty if the collection is empty311(42 digitAt: 1 base: 10) >>> 201 10r89 abcdpha4(OrderedCollection new add: 42; yourself) size >>> 12In strings you can escape { by prefixing it with \1.4 rounded >>> 133helnuun s nssn s ns nn102true ==> [true] >>> true.('word before index' wordBefore: 4) >>> 'word'jIf the receiver is true (i.e., the condition is true), then answer the value of the argument trueAlternativeBlock. If the receiver is false, answer the result of evaluating the argument falseAlternativeBlock. If the receiver is a nonBoolean then create an error notification. Execution does not actually reach here because the expression is compiled in-line.1seventh "Answer the seventh element of the receiver. Raise an error if there are not enough elements." "#(a b c d e f g h i) seventh >>> #g" ^ self at: 7d0 appreciate1(Color hex: 0.2) >>> '33'isDecimalDigit "Return whether the receiver is a digit." "$1 isDecimalDigit >>> true" "$0 isDecimalDigit >>> true" ^ self characterSet isDecimalDigit: self921923z13(100@200) guarded >>> (100@200)d42@{'one' -> 1. 'two' ->2} asOrderedDictionary keys first >>> 'one'1.0200203 (Color h: 0 s: 1 l: 0.5) >>> (Color r: 1 g: 0 b:0),"a" 1 "b" max: "c" 2 "d" + "e" 3 "f" abs "g"ppp < <<<< n>> #(d e)" "(#(a b c d e) last: 3) >>> #(c d e)" | size | size := self size. ^ self copyFrom: size - n + 1 to: size0:00:00:00.002120qjoin: aCollection "Append the elements of the argument, aSequenceableCollection, separating them by the receiver." "('*' join: #('WWWWW' 'W EW' 'zzzz')) >>> 'WWWWW*W EW*zzzz'" ^ self species new: (aCollection size * self size) streamContents: [:stream | aCollection do: [:each | stream nextPutAll: each asString] separatedBy: [stream nextPutAll: self]]c6150011##########012.Tests-unix-64-Roassal-Inspector-Tests-Test.xml333333xor: alternativeBlock "Answer the value of the alternativeBlock since the receiver is false." "(false xor: [true]) >>> true" "(false xor: [false]) >>> false" ^ alternativeBlock value0.1XReturn the middle element, or as close as we can get. The collection must not be empty.d!EccentricityThreshhold reciprical50vector00:00:00:01.002XX n n52 abddf bcdef1.031JRunning max. See the comment of self >> #running:of: for more information.22(String streamContents: [ :str| ((FileSystem workingDirectory / 'book-result' / 'W01-Welcome') relativeToReference: FileSystem workingDirectory) printPathOn: str delimiter: $|]) >>> 'book-result|W01-Welcome'21 0:01:01:001{guarded "Return a positive nonzero extent." "(100@200) guarded >>> (100@200)" "(0@5) guarded >>> (1@5)" ^self max: 1@1Invalid input/output !4(#(a b c d e) identityIndexOf: #x ifAbsent: 7) >>> 72abcX 3(#() sumNumbers: #abs) >>> 0(3.1479 roundUpTo: 0.1) >>> 3.23.14792-3Extract items from the receiver and use them as arguments of aBlock. Signal an error (ArgumentsCountMismatch) when the arguments count of aBlock does not match the receiver size.false | true >>> true29wimpy3u(#(10 20 30) inject: OrderedCollection new into: [ :a :e | a add: (e + 1). a ]) >>> #(11 21 31) asOrderedCollection1abcdefgh43nhue "Return the hue of this color, an angle in the range [0.0..360.0]." "Color red hue >>> 0.0" "(Color r: 0.5 g: 0.5 b: 1) hue >>> 240.0" | r g b max min span h | r := self privateRed. g := self privateGreen. b := self privateBlue. max := (r max: g) max: b. min := (r min: g) min: b. span := (max - min) asFloat. span = 0.0 ifTrue: [ ^ 0.0 ]. h := r = max ifTrue: [ (g - b) asFloat / span * 60.0 ] ifFalse: [ g = max ifTrue: [ 120.0 + ((b - r) asFloat / span * 60.0) ] ifFalse: [ 240.0 + ((r - g) asFloat / span * 60.0) ] ]. h < 0.0 ifTrue: [ h := 360.0 + h ]. ^ hBEvaluate the given block, answering its value if the receiver is empty, otherwise answer the receiver. Note that the fact that this method returns its receiver in case the receiver is not empty allows one to write expressions like the following ones: self classifyMethodAs: (myProtocol ifEmpty: [ Protocol unclassified ])#[ ^ 1 ] 2018-09-28h0.01:Helper to tranform any `do:`-like method into a generator. book-result210, 15, 20 and 255'|' or variable expected1/| thisContext | thisContext := 1. ^ thisContext92fred 0001112131415,Tests-unix-64-System-Settings-Tests-Test.xml00vector0y52.5672elmer100do211not "Negation. Answer true if the receiver is false, answer false if the receiver is true." "true not >>> false" "false not >>> true" self subclassResponsibility43-91-632{ }onPreviousMonth "(Date year: 2018 month: 9 day: 28) onPreviousMonth printString >>> '28 August 2018'" ^ self addMonths: -110210asSet "Answer a set with the elements of the receiver." "#(1 2 2 3 1 1 1) asBag asSet >>> #(1 2 2 3 1 1 1) asSet" ^ contents keys asSet10Tests-unix-64-EnlumineurFormatter-Tests-Test.xml0:= 2"(#(1 -2 4) sumNumbers: #abs) >>> 7aC(#(10 15 22 789) collect: [:x | x//10] as: Set) >>> #(1 2 78) asSethop ('Hello' includes: $h) >>> false XX 00 n n n 0:::a151042231d6a-422213the620 { 1 ). 2 }Z(#(1 2 3 3 4 1 2 3 5 4 6) splitOn: 4) >>> #(#(1 2 3 3) #(1 2 3 5) #(6))asOrderedCollection&Tests-unix-64-PharoDocComment-Test.xml43KReturns the reciprocal of self. In case self is 0 the / signals ZeroDivide16rA(#(11 22 33) before: 22) >>> 112mcloseTo: aSequenceableCollection precision: aPrecision "Return true if all my elements are close to the elements of same index of the parameter with a certain precision" "(#(1.9283 2.3029) closeTo: #(1.9284 2.3028) precision: 0.001) >>> true" self with: aSequenceableCollection do: [ :a :b | (a closeTo: b precision: aPrecision) ifFalse: [ ^ false ] ]. ^ true3Answer whether the receiver is a letter or a digit.pharo110#() size >>> 0 a: foo2030Character expected3beBetween: minValue and: maxValue "Answer my value constrained to the interval [minValue ; maxValue] I take care of the situation where minValue > maxValue" "(10 beBetween: 12 and: 20) >>> 12" "(10 beBetween: 20 and: 12) >>> 12" "(13 beBetween: 12 and: 20) >>> 13" "(12 beBetween: 12 and: 20) >>> 12" "(100 beBetween: 12 and: 20) >>> 20" ^ minValue <= maxValue ifTrue: [ (self min: maxValue) max: minValue ] ifFalse: [ (self min: minValue) max: maxValue ]CAnswer a number that is the minimum of the x and y of the receiver.42 n ssss;Xsss28isDigit "Return whether the receiver is a digit." "$1 isDigit >>> true" "$0 isDigit >>> true" ^ self characterSet isDigit: selfb000002244454448889888B8877777777DDCCCE4433333333Fe1a%(STON toString: 1@2) >>> 'Point[1,2]'330((1 == 1) eqv: true) >>> true0:B :XX0he'llo16rAHello*#( aa:bb: cc #'aa:bb:cc' #cc #'++' #'++' )nnnuu-3/ arg "Pairwise quotient of two sequenceable collections of the same length." "#(10 20 30) / #(1 3 4.0) >>> {10. (20/3). 7.5}" "{10@20. 30@0} / {1@3. 4.0@1} >>> {(10@(20/3)). (7.5@0)}" ^ arg adaptToCollection: self andSend: #/$({} averageIfEmpty: [0@0]) >>> (0@0)d(Array streamContents: [ :out | out nextPut: 1; nextPutAll: #(2 3 4); nextPut: 5 ]) >>> #(1 2 3 4 5)2asColorref "Convert the receiver into a colorref, i.e, a number embedding r,g,b on 24 bits" "(Color red asColorref) >>> 255" "(Color white asColorref) >>> 16777215" ^(self red * 255) asInteger + ((self green * 255) asInteger << 8) + ((self blue * 255) asInteger << 16)Evaluate aBlock with each of the receiver's elements as the argument. Collect into a new collection like the receiver only those elements for which aBlock evaluates to false. Answer the new collection.6A variant of #streamContents: with a strict size limit10de2018WJust like do: except that the iteration index supplies the second argument to the block2 reciprocal >>> (1/2)XXsuuun sss;X30 foo23bazo(1. 2)Returns the keywords of the provided selector. Assumes the reciever is a valid keyword based selector (@reciever isKeyword > true). Prefer using Symbol>>#keywordsStrict if you're not sure if the reciever is keyword-based.Evaluate aBlock with each of the receiver's elements as the argument. Collect the resulting values into a collection like the receiver. Answer the new collection.s: 100000000i19202{10@20. 30@0} - {0@1. 2@3} >>> {(10@19). (28@ -3)}20-4)Fold the result of the receiver into aBlock. The argument aBlock must take two or more arguments. It applies the argument, binaryBlock cumulatively to the elements of the receiver. For sequenceable collections the elements will be used in order, for unordered collections the order is unspecified.234znak ::x43 ) :21Emit overlapping pairs of my elements into aBlock9Maybe look at the related method Collection>>inject:into:20success2true not >>> false3$A hex >>> '16r41'1110scaleBy: factorPoint "Answer a Point scaled by factor (an instance of Point)." "(200@200 scaleBy: 2@3) >>> (400@600)" ^(factorPoint x * x) @ (factorPoint y * y) 1 foo; . 2-21114[ a: ]9c210{The material conditional, also known as the material implication or truth functional conditional. Correspond to not ... or ... and does not correspond to the English if...then... construction. known as: b if a a implies b if a then b b is a consequence of a a therefore b (but note: 'it is raining therefore it is cloudy' is implication; 'it is autumn therefore the leaves are falling' is equivalence). Here is the truth table for material implication: p | q | p ==> q -------|-------|------------- T | T | T T | F | F F | T | T F | F | T 21121xb2 ']' expected2120vector0splitOn: splitter do: aBlock "Perform an action specified as aBlock to each of the elements of the receiver that have been split using the splitter argument. splitter - can be a subsequence, a Block or a Regex (String receiver only). Any other object used as a splitter is treated as an Array containing that object." "(String streamContents: [:s | 'Pharo is cool' splitOn: Character space do: [:each | s << each ]])>>>'Pharoiscool'" ^ splitter split: self do: aBlocka11100000222222232668555a20-13minute "Answer a number that represents the number of complete minutes in the receiver' time part, after the number of complete hours has been removed." "(DateAndTime fromString: '2004-02-29T13:33:00+02:00') minute >>> 33" ^ self localSeconds // SecondsInMinute \\ 6001122?reject: rejectBlock thenCollect: collectBlock "Optimized implementation" "(#(1 2 3 4 5) reject: #even thenCollect: [:x|x*10]) >>> #(10 30 50)" | newCollection | newCollection := self copyEmpty. self do: [ :e | (rejectBlock value: e) ifFalse: [ newCollection add: (collectBlock value: e) ] ]. ^ newCollection31 nanoSecond printString >>> '0:00:00:00.000000001'-('abcdefgh' includesSubstring: 'de') >>> true21'abc98' numericSuffix >>> 981caption343)(STON fromString: 'Point[1,2]') >>> (1@2)MockPackage-Tests82 #(10 20) emptyCheck >>> #(10 20)4210213d+Tests-unix-64-System-Caching-Tests-Test.xml0222333'((100@200) max: (30@400)) >>> (100@400)1002Literal expected 0000111111101:3v( #('if' 'it' 'is' 'to' 'be' 'it' 'is' 'up' 'to' 'me') fold: [:a :b | a, ' ', b] ) >>> 'if it is to be it is up to me'1751.9283901234902348~(Array streamContents: [:stream| #(11 22 13) withIndexDo: [ :each :i | stream nextPut: (each * each + i)]]) >>> #(122 486 172)"(3.1479 roundUpTo: 0.005) >>> 3.15nXn0::1100022201.1. 1"result will cover the range [-1,1]101632('abddf bcdef' indexOf: $a startingAt: 100 ) >>> 0_(#(11 22 33) asOrderedCollection atWrap: 2 put: 0; yourself) >>> #(11 0 33) asOrderedCollection12from: startIndex to: endIndex put: anObject "Put anObject in all indexes between startIndex and endIndex. Very fast. Faster than to:do: for more than 26 positions. Answer anObject" "({#a. #b. #c. #d. #e} from: 3 to: 4 put: #x; yourself) >>> #(a b x x e)" | written toWrite thisWrite | startIndex > endIndex ifTrue: [^self]. self at: startIndex put: anObject. written := 1. toWrite := endIndex - startIndex + 1. [written < toWrite] whileTrue: [ thisWrite := written min: toWrite - written. self replaceFrom: startIndex + written to: startIndex + written + thisWrite - 1 with: self startingAt: startIndex. written := written + thisWrite ]. ^anObject100.03Tests-unix-64-NewTools-Debugger-Fuel-Tests-Test.xml#(().:;[]{}^#a)100XAnswer the result of evaluating aBlock with all of the overlapping pairs of my elements.e1020 X X28'' lastSpacePosition >>> 01.310.160s34 slowFactorial >>> 24BAnswer the index of the high order bit of the receiver, or zero if the receiver is zero. Raise an error if the receiver is negative, since negative integers are defined to have an infinite number of leading 1's in 2's-complement arithmetic. Use >>highBitOfMagnitude if you want to get the highest bit of the magnitude.4galike: aString "Answer some indication of how alike the receiver is to the argument, 0 is no match, twice aString size is best score (but see example with 7). Case is ignored. This method is used to help find mistyped variable names in methods." "('abc' alike: 'abc') >>> 7." "('action' alike: 'actions') >>> 7." "('action' alike: 'caption') >>> 5." "('action' alike: 'name') >>> 0." | i j k minSize bonus | minSize := (j := self size) min: (k := aString size). bonus := (j - k) abs < 2 ifTrue: [ 1 ] ifFalse: [ 0 ]. i := 1. [(i <= minSize) and: [((self at: i) asInteger bitAnd: 16rDF) = ((aString at: i) asciiValue bitAnd: 16rDF)]] whileTrue: [ i := i + 1 ]. [(j > 0) and: [(k > 0) and: [((self at: j) asInteger bitAnd: 16rDF) = ((aString at: k) asciiValue bitAnd: 16rDF)]]] whileTrue: [ j := j - 1. k := k - 1. ]. ^ i - 1 + self size - j + bonus302MCreates an array with anObject followed by elements contained in aCollection.310<(10 storeStringBase: 16 length: 6 padded: true) >>> '16r00A' a digit between 0 and 1 expected|- 1315040230('In {1} you can escape \{ by prefixing it with \\' format: {'strings'}) >>> 'In strings you can escape { by prefixing it with \' 2111110 Xuuuuuu n uuu 16rDF1080.53hslSaturation "Return the HSL saturation of this color, a value between 0.0 and 1.0." "Color red hslSaturation >>> 1.0" "(Color r: 0.5 g: 0.5 b: 1) hslSaturation >>> 1.0" | chroma | chroma := self chroma. "Chroma is zero for black and white, which are the two cases of division by zero below." chroma isZero ifTrue: [ ^ chroma ]. ^ chroma / (1.0 - (self lightness * 2.0 - 1.0) abs)100#h: hue s: saturation v: brightness alpha: alpha "Create a color with the given hue, saturation, brightness, and alpha. Hue is given as the angle in degrees of the color on the color circle where red is zero degrees. Saturation and brightness are numbers in [0.0..1.0] where larger values are more saturated or brighter colors. For example, (Color h: 0 s: 1 v: 1 alpha: 1) is pure red." "(Color h: 0 s: 1 v: 1 alpha: 1) >>> Color red " ^ self basicNew initializeHue: hue saturation: saturation brightness: brightness alpha: alpha ; yourself3011030&'a3123abc' isAllAlphaNumerics >>> true+Tests-unix-64-System-Hashing-Tests-Test.xmltwo-10050isInitialQuote "Return whether the receiver is https://www.compart.com/en/unicode/category/Pi" "$' isInitialQuote >>> false" ^ self characterSet isInitialQuote: self1:ifNotNil: ifNotNilBlock "Evaluate the block, unless I'm == nil (q.v.). If the receiver is not nil, pass it as argument to the block." "Might be compiled inline for speed, see RBMessageNode>>#isInlineIfNil" "(2 ifNotNil: [ :o | o + 3]) >>> 5" "(nil ifNotNil: [:o | o +3 ]) >>> nil" ^ ifNotNilBlock cull: self$Print the receiver showing precisely the given number of places desired. If placesDesired is positive, a decimal point and that many digits after the decimal point will always be shown. If placesDesired is zero, a whole number will be shown, without a decimal point. Here are some examples:110, 100000000000000000oops0vector0060.03hFormat the date in ISO 8601 standard like '2002-10-22' The result is of fixed size 10 characters long..<<<<#( #( 0 1 r2 3 ) ) {1 . 2 . 3 . 4 . 5} median >>> 30vector019X((Date year: 2018 month: 9 day: 28) subtractDays: 1) printString >>> '27 September 2018'(String streamContents: [:s| {'one'->1. 'two'->2} asOrderedDictionary associationsDo: [:a| s << a key << ':' << a value asString << ';']]) >>> 'one:1;two:2;'412100(Answer the integer nearest the receiver. 'hello5ha/(#(1 2 3) reduceRight: [ :a :b | a - b ]) >>> 22001bd11d(String streamContents: [:s | 10 print: '10' on: s prefix: 'zz' length: 4 padded: true] ) >>> 'zz10'foo 2g test 2341P(String streamContents: [ :out | STON put: 1@2 onStream: out ]) >>> 'Point[1,2]'280.50048875855327472('fred the bear' copyWithout: $e) >>> 'frd th bar'3100000000000000000006cannot resolve fourcodea'b43print: positiveNumberString on: aStream prefix: prefix length: minimum padded: zeroFlag "Return a String based on concatenation of positiveNumberString with prefix then padded by 0 is zeroFlag is set for a minimum length." "(String streamContents: [:s | 10 print: '10' on: s prefix: 'zz' length: 4 padded: true] ) >>> 'zz10'" | padLength | padLength := minimum - positiveNumberString size - prefix size. padLength > 0 ifTrue: [zeroFlag ifTrue: [aStream nextPutAll: prefix; nextPutAll: (String new: padLength withAll: $0)] ifFalse: [aStream nextPutAll: (String new: padLength withAll: Character space); nextPutAll: prefix]] ifFalse: [aStream nextPutAll: prefix]. aStream nextPutAll: positiveNumberStringlo2222213334444413ppp X X1126(Return whether the receiver is a letter.423Graphical User Interface10, 'hello', $x300206foo*baz0022311411556000vector0findLast: aBlock "Return the index of my last element for which aBlock evaluates as true. If no matching element is found, return 0" "(#(10 20 30 40 50) findLast: [ :each | each > 10 ]) >>> 5" "(#(10 20 30 40 50) findLast: [ :each | each > 60 ]) >>> 0" | index | index := self size + 1. [(index := index - 1) >= 1] whileTrue: [(aBlock value: (self at: index)) ifTrue: [^index]]. ^ 0%tokenish "Answer whether the receiver is a valid token-character -- letter, digit, underscore, or colon." "$' tokenish >>> false" "$: tokenish >>> true" "${ tokenish >>> false" "Character space tokenish >>> false" ^ self isLetter or: [ self isDigit or: [ self = $_ or: [ self = $: ] ] ] salkjsdlkgfeeA clear ...summaryvariable expected in assigment1 n ssssXsss!'elvis ' lastSpacePosition >>> 7zzzz33ifFalse: alternativeBlock "If the receiver is true (i.e., the condition is true), then the value is the true alternative, which is nil. Otherwise answer the result of evaluating the argument, alternativeBlock. Create an error notification if the receiver is nonBoolean. Execution does not actually reach here because the expression is compiled in-line." "(false ifFalse: [ 'This statement is false!' ]) >>> 'This statement is false!'" "(true ifFalse: [ 'This statement is false!' ]) >>> nil" self subclassResponsibility'('ab ab ac de' howManyMatch: 'z') >>> 0E(#(a b c d e) indexOfAnyOf: #(x y c) startingAt: 4 ifAbsent: 7) >>> 754463337228111900AA330302334whatever3021W(false ifFalse: [ 'That is false!' ] ifTrue: [ 'That is true!' ]) >>> 'That is false!'aeiou:= 100h13 0 :B |X b X X3325131#(1 2 4) sumNumbers >>> 7-52reversed "Answer a copy of the receiver with element order reversed. " "#(2 3 4 'fred') asOrderedCollection reversed >>> #('fred' 4 3 2) asOrderedCollection" | newCol | newCol := self speciesForTransform new: self size. self reverseDo: [ :elem | newCol addLast: elem ]. ^ newCol| | u42150103alAReturn the receiver as a string with SI binary (International System of Units) file size, e.g. '50 KB'. It means that it takes 1000 and not 1024 as unit as humanReadableByteSizeString does.0vector0 a->b->c->d311003310)Tests-unix-64-Zinc-HTTP-Examples-Test.xmlcAnswer whether the receiver begins with the given prefix string. The comparison is case-sensitive.3231true & true >>> true10 [ :a :a :b | | a a b | a + a + b23Alias for intersection:(String streamContents: [:s | 'Pharo is cool' splitOn: Character space indicesDo: [ :start :end | s << 's:' << start asString << ' ' << 'e:' << end asString << ' ' ]]) >>> 's:1 e:5 s:7 e:8 s:10 e:13 '1005Print inside string quotes, doubling inbedded quotes.40010315Return the middle element, or as close as we can get.(false and: [true]) >>> falseREvaluates the argument with the read stream of the collection. Answers the result.Vsize "#(a b c d e) size >>> 5" "#(x y z) size >>> 3" ^ self subclassResponsibility1 "a" ^ "b" 5 "c" 655361NReturn the class of the couple class/metaclass. Useful to avoid explicit test.421 #(a b z d) sorted >>> #(a b d z) . 50foo "z" "a" 1. "b" "c" ^ 2 "d"412#(5 -3.7 0) sign >>> #(1 -1 0)#(a b c d e) last >>> #e001120030044500d32020a000*-300111110004444422223005566666310.038Remove oldObject from the receiver's elements. Answer oldObject unless no element is equal to oldObject, in which case, raise an error. ArrayedCollections cannot respond to this message.NReturn the class of the couple class/metaclass. Useful to avoid explicit test.!777 00888000999000AAA000BBB00 CCCiNote: The original code used #skip:, but some streams do not support that, and we don't really need it.!(#(a b c d e) last: 2) >>> #(d e)ifNotNil: aBlock "If the receiver is not nil, pass it as argument to the block." "Might be compiled inline for speed, see RBMessageNode>>#isInlineIfNil" "(2 ifNotNil: [ :o | o + 3]) >>> 5" "(nil ifNotNil: [:o | o +3 ]) >>> nil" ^ self0.0220asValidSelector "Returns a symbol that is a valid selector by removing any space or forbidden characters" "'234znak ::x43 '') _ : 2' asValidSelector >>> #'v234znak:x43:v2'" "'234znak ::x43 ) :2' asValidSelector >>> #v234znak:x43:v2" ^((( $: join: ( ( $: split: ( self select: [ :char | (char charCode < 128) and: [ char isAlphaNumeric or: [ char = $: ] ] ] ) ) select: [ :split | split isNotEmpty ] thenCollect: [ :nonEmptyString | nonEmptyString first isLetter ifTrue: [ nonEmptyString uncapitalized ] ifFalse: [ 'v' , nonEmptyString ] ] ) ) ifEmpty: [ 'v' ]), ((self isNotEmpty and: [ self last = $: ]) ifTrue: [ ':' ] ifFalse: [ #() ]) )asSymbol9removeDuplicates "Remove the copies of elements, but keep the same order" "#(7 42 7 42 9) asOrderedCollection removeDuplicates asArray >>> #(7 42 9)" "#(1 2 3) asOrderedCollection removeDuplicates asArray >>> #(1 2 3)" | iterator seen | self ifEmpty: [ ^ self ]. iterator := 1. seen := Set new. [ iterator <= self size ] whileTrue: [ | each | each := self at: iterator. (seen includes: each) ifTrue: [ self removeAt: iterator ] ifFalse: [ seen add: each. iterator := iterator + 1. ]. ]zRound the decimal part of the receiver to be limited to the number of wished decimal. Only leave a fixed amount of decimalC(#(3 4 5) readStreamDo: [ :stream | stream contents ]) >>> #(3 4 5)0(Array streamContents: [:stream | #(10 20 30 40) overlappingPairsWithIndexDo: [:first :second :index| stream nextPut: (first + second + index)]]) >>> #(31 52 73)12  ==> aBlock "The material conditional, also known as the material implication or truth functional conditional. Correspond to not ... or ... and does not correspond to the English if...then... construction. known as: b if a a implies b if a then b b is a consequence of a a therefore b (but note: 'it is raining therefore it is cloudy' is implication; 'it is autumn therefore the leaves are falling' is equivalence). Here is the truth table for material implication: p | q | p ==> q -------|-------|------------- T | T | T T | F | F F | T | T F | F | T " "true ==> [true] >>> true" "true ==> [false] >>> false" "false ==> [true] >>> true" "false ==> [false] >>> true" ^ self not or: [ aBlock value ]'('hello world' occurrencesOf: $l) >>> 3ga^ . ^ 130% pppp AAA ^ aaa ssss aaa s n ; sss . 18('aa' compare: 'aa') >>> 21Xn. Xu. X n. X"""n4'he''llo' surroundedBySingleQuotes >>> '''he''llo'''2112312213xz!(3.1479 roundUpTo: 0.01) >>> 3.15aSpecial case of self = 02strings#foo keywords >>> #('foo')with: otherCollection do: twoArgBlock "Evaluate twoArgBlock with corresponding elements from this collection and otherCollection." "(Array streamContents: [:stream | #(1 2 3) with: #(4 5 6) do: [:a :b | stream nextPut: (a + b)]]) >>> #(5 7 9)" otherCollection size = self size ifFalse: [self errorSizeMismatch]. 1 to: self size do: [:index | twoArgBlock value: (self at: index) value: (otherCollection at: index)]4321520-Tests-unix-64-Kernel-CodeModel-Tests-Test.xml1eEAnswer an instance of me containing the same elements as aCollection.Point classSide >>> Point class10#a := a. [ :a | | a a := a ]. a := a<groupedBy: aBlock having: aSelectionBlock "Like in SQL operation - Split the recievers contents into collections of elements for which keyBlock returns the same results, and return those collections allowed by selectBlock." "In the following example, the group `3->#(34)` is filtered out because there is not 2 elements." "(#(1 5 21 28 34) groupedBy: [:x| x // 10] having: [:v| v size = 2]) >>> {0->#(1 5). 2->#(21 28)} asOrderedDictionary" ^ (self groupedBy: aBlock) select: aSelectionBlock9Answer the set theoretic intersection of two collections.1 *foo*zortth is is2 9 a stRI40z4210.024ereject: rejectBlock thenDo: aBlock "Refer to the comment in Collection>>#reject:thenDo:" "(Array streamContents: [:stream | #(1 2 3 4) reject: [:each | each = 3 ] thenDo: [:each | stream nextPut: each + 10]]) >>> #(11 12 14)" | each | 1 to: self size do: [ :index | (rejectBlock value: (each := self at: index)) ifFalse: [ aBlock value: each ]] [ :a :b | ]M(Date year: 2018 month: 9 day: 28) asDate printString >>> '28 September 2018'13zsasMutator "Return a setter message from a getter message. Return self if it is already a setter. Pay attention the implementation should be improved to return valid selector." "#name asMutator >>> #name:" "#name: asMutator >>> #name:" "#_ asMutator >>> #_:" "#foo:: asMutator >>> #'foo::'" self endsWithAColon ifTrue:[ ^ self ]. ^ (self copyWith: $:) asSymbol Pharo is cool_(#(11 22 33) asOrderedCollection atWrap: 6 put: 0; yourself) >>> #(11 22 0) asOrderedCollection1 between: 12to1'A' asByteArray >>> #[65]180.0two104Tests-unix-64-Zinc-Character-Encoding-Tests-Test.xml1#'wimpy' initialIntegerOrNil >>> nil1242IMPLEMENTATION NOTE: following algorithm is optimized in primitive only in case self and prefix are bytes like. Otherwise, if self or prefix are wide strings, then slow version with asLowercase convertation, (primitive is not correct for wide strings)d043d(#(1 2 3 4 1 2 3 4 5 6 ) groupByRuns: [ :each | each = 4]) >>> #(#(1 2 3) #(4) #(1 2 3) #(4) #(5 6))2| aBoolean "Evaluating disjunction (OR) -- answer with the argument, aBoolean, since the receiver is false." "false | true >>> true" "false | false >>> false" ^aBoolean0c foo < + 1>  ||| an uuuuuuu Xuu /ppp """ < """ <<<< """ n """ << """ n """ < """78 926removeAll "Remove each element from the receiver and leave it empty. ArrayedCollections cannot respond to this message. There are two good reasons why a subclass should override this message: 1) the subclass does not support being modified while being iterated 2) the subclass provides a much faster way than iterating through each element" "#(10 20 10) asOrderedCollection removeAll >>> OrderedCollection new" self do: [:each | self remove: each]{1@5. 10@ -4} min >>> (1@ -4)4130indexOf: anElement "Answer the index of the first occurrence of anElement within the receiver. If the receiver does not contain anElement, answer 0." "(#(a b c d e) indexOf: #c) >>> 3" "(#(a b c d e) indexOf: #x) >>> 0" ^ self indexOf: anElement ifAbsent: 0200-41!(10 printStringBase: 10) >>> '10'c3128600"#(a b c d) allButLast >>> #(a b c)104(#(1 2) allSatisfy: [ :each | each even ]) >>> false#$> isConnectorPunctuation >>> false3(1)230vector011130#Tests-unix-64-Random-Tests-Test.xml70 + sdreplaceAll: oldObject with: newObject "Replace all occurrences of oldObject with newObject" "({#a. #b. #a. #d. #a} replaceAll: #a with: #e) >>> #(e b e d e)" | index | index := self indexOf: oldObject startingAt: 1 ifAbsent: [0]. [index = 0] whileFalse: [self at: index put: newObject. index := self indexOf: oldObject startingAt: index + 1 ifAbsent: [0]]31071$( isClosePunctuation >>> false1| aBoolean "Evaluating disjunction (OR). Evaluate the argument. Then answer true if either the receiver or the argument is true." "true | true >>> true" "true | false >>> true" "false | true >>> true" "false | false >>> false" self subclassResponsibility10241 + 2 ]d1010000000111111033555555444626XXXX3041ZReplace all occurrences of oldSubstring that are surrounded by non-alphanumeric characters-(3 ifNil: [42] ifNotNil: [:o | o +3 ]) >>> 6!"a" { "b" 1 "c" . "d" 2 "e" } "f"2DReturn whether the receiver is one of these characters: $ and euro1224-3.142Negation--answer false since the receiver is true.10$: tokenish >>> true0vector0151 Not found20dd21capitalized "Return a copy with the first letter capitalized" "'abc' capitalized >>> 'Abc'" | cap | self isEmpty ifTrue: [ ^self copy ]. cap := self copy. cap at: 1 put: (cap at: 1) asUppercase. ^ cap7n uuuuuuu Xuu n0(true and: [ false ]) >>> false09 | a3Make some empty slots at the front of the array. If we have more than 50% free space, then just move the elements, so that the first 50% of the slots are free, otherwise add new free slots to the front by growing. Precondition: firstIndex = 1737% foo: arg ^ arg min: arg + 2 ; abs . {1 . 2 . 5 . 5} median >>> (7/2)uu@Add newObject anInteger times to the receiver. Answer newObject.1DNonevaluating disjunction -- answer true since the receiver is true.0Special case of exponent=0oops:(#(1 3) detect: #even ifFound: #negated ifNone: [0]) >>> 0Evaluate aBlock with the elements of the receiver. If aBlock returns false for any element return false. Otherwise return true.10*[(#("a"("b"###("c"###["d"]#["e"]["f"]))))]20240.0#(#(10 20 30) includes: 20) >>> true+('hello!' noneSatisfy: #isLetter) >>> falsete0{} asSet = Set new >>> true-16rA([:x | x + 12] cull: 3)>>> 15200pwnabc(1 to: 10 by: 2) stop >>> 10-1(10 to: 1) isEmpty >>> true1(1 hour + 2 minutes) printString >>> '0:01:02:00'920 'hello''world1pppp 2122'' asArray >>> #()ab111word before index611101(#(11 22 33) before: 33) >>> 222{10@20. 30@0} \\ {1@3. 4.0@1} >>> {(0@2). (2.0@0)}aiAnswer the index of anElement within the receiver. If the receiver does not contain anElement, answer 0.10 hello worldF(#(1.9283 2.3029) closeTo: #(1.9284 2.3028) precision: 0.001) >>> true5('*foo#zort' match: 'afoo3zortthenfoo3zort') >>> true2031G({#a. #b. #c. #d. #e} from: 3 to: 4 put: #x; yourself) >>> #(a b x x e)40'-1' asInteger >>> -12331asArray "Answer an Array whose elements are the elements of the receiver. Implementation note: Cannot use ''Array withAll: self'' as that only works for SequenceableCollections which support the replacement primitive." "'ab' asArray >>> {$a. $b}" "(1 to: 5 by: 3) asArray >>> {1. 4}" "#(1 2) asArray == #(1 2) >>> true" "'' asArray >>> #()" "(10 to: 5) asArray >>> #()" | newArray index | newArray := Array new: self size. index := 0. self do: [ :each | newArray at: (index := index + 1) put: each ]. ^ newArray10 #[ 1 ) 2 ] 'abc' < 'def' >>> true65536 == (1 bitShift: 16)?({#a. #b. #a. #d. #a} replaceAll: #a with: #e) >>> #(e b e d e) 0DDD00000EEE04377733888399A0CCC0410-4#( #[ 0 1 2 ] )b2334MReturn whether the receiver is https://www.compart.com/en/unicode/category/Pib128&#(1 2 3 4) & #(1 2 4 6 7) >>> #(1 2 4)00102uNote that there is no way to get the first element that works for all kinds of Collections. Must test every one.'hello' sorted >>> 'ehllo'0'1 true false nil self super thisContexteqv: aBoolean "Answer true if the receiver is equivalent to aBoolean." "(false eqv: true) >>> false" "((1 == 1) eqv: true) >>> true" "(( 1 > 2) eqv: false) >>> true" ^ self == aBoolean2001.0463 'abc' = 'def' >>> false1 1310022-Tests-unix-64-Collections-Weak-Tests-Test.xml10011012192018allButLastDo: block "Executes aBlock on each of the receiver's elements except for the last one" "(Array streamContents: [:stream | #(1 2 3) allButLastDo: [:each | stream nextPut: (each + 10)]]) >>> #(11 12)" 1 to: self size - 1 do: [:index | block value: (self at: index)]31-""" 0 """ : """ B """ : """ B """ | """ 0 """1aRou s XXaXX2f$(nil ifNotNil: [:o | o +3 ]) >>> nil2004-02-29T13:33:00+02:002('foo' match: 'Foo') >>> truebcea23164.021y1.52second "Answer the second element of the receiver. Raise an error if there are not enough elements." "#(a b c d e f g h i) second >>> #b" ^ self at: 2@foo'abc' | 'cbe' >>> 'bcea'0sorted: aSortBlockOrNil "Return a new sequenceable collection which contains the same elements as self but its elements are sorted by aSortBlockOrNil. The block should take two arguments and return true if the first element should preceed the second one. If aSortBlock is nil then <= is used for comparison." "(#(3 9 1) sorted: [:a :b | a <= b ]) >>> #(1 3 9)" "(#(3 9 1) sorted: [:a :b | a >= b ]) >>> #(9 3 1)" "(#(xa xc xz xb xy) sorted: #last ascending) >>> #(xa xb xc xy xz)" ^self copy sort: aSortBlockOrNil'''h''' withoutQuoting >>> 'h'e$beginsWith: prefix caseSensitive: aBoolean "Answer whether the receiver begins with the given prefix string" "IMPLEMENTATION NOTE: following algorithm is optimized in primitive only in case self and prefix are bytes like. Otherwise, if self or prefix are wide strings, then slow version with asLowercase convertation, (primitive is not correct for wide strings)" "('pharo' beginsWith: '' caseSensitive: false) >>> true" "('pharo' beginsWith: 'pharo-project' caseSensitive: false) >>> false" "('pharo' beginsWith: 'phuro' caseSensitive: false) >>> false" "('pharo' beginsWith: 'Pha' caseSensitive: false) >>> true" prefix ifEmpty: [ ^true ]. aBoolean ifTrue: [ ^self beginsWith: prefix ]. self size < prefix size ifTrue: [^ false]. (self class isBytes and: [prefix class isBytes]) ifTrue: [ "Optimized version based on primitive" ^ (self findSubstring: prefix in: self startingAt: 1 matchTable: CaseInsensitiveOrder) = 1 ]. prefix withIndexDo: [ :each :index | (self at: index) asLowercase = each asLowercase ifFalse: [ ^false ] ]. ^true1Answer the element after target. Answer the result of evaluation the exceptionBlock if target is not in the receiver, or if there are no elements after it.2XX:y "Answer the y coordinate." "(100@200) y >>> 200" ^ y, !si0vector010000002c({10. 20} asOrderedCollection addIfNotPresent: 30; yourself) >>> ({10. 20. 30} asOrderedCollection)3013#[1]#[2]1(#() ifEmpty: [0]) >>> 0hopisDashPunctuation "Return whether the receiver is one of these characters: $-" "$- isDashPunctuation >>> true" "$_ isDashPunctuation >>> false" ^ self characterSet isDashPunctuation: selfb3(#(1 2 3 4) select: [:each | each > 2 ]) >>> #(3 4)1203.14151$} isClosePunctuation >>> true19D(RunArray newFrom: {1. $a. $a. 3}) >>> ({1. $a. $a. 3} as: RunArray) 3 even >>> false1XXXXXXX0n0Xn0lastIndexOfAnyOf: aCollection startingAt: lastIndex ifAbsent: exceptionBlock "Answer the index of the last occurrence of anElement within the receiver. If the receiver does not contain anElement, answer the result of evaluating the argument, exceptionBlock." "(#(a b a d a) lastIndexOfAnyOf: #(a b) startingAt: 1 ifAbsent: 7) >>> 1" lastIndex to: 1 by: -1 do: [:index | (aCollection includes: (self at: index)) ifTrue: [^ index]]. ^ exceptionBlock value_select elements from the receiver that the block evaluates true with the element and its index.2 Phar...ool!#(a b c d e f g h i) third >>> #c2Answer the index of the receiver's first element, such that that element equals the first element of sub, and the next elements equal the rest of the elements of sub. Begin the search at element start of the receiver. If no such match is found, answer the result of evaluating argument, exceptionBlock.1(Array streamContents: [:stream | #(1 2 3 4) overlappingPairsDo: [:first :second| stream nextPut: (first + second)]]) >>> #(3 5 7)@(STON fromStringWithComments: 'Point[1,/*comment*/2]') >>> (1@2) 10000000002We0 rd13013$((1 to:9 by:2) includes: 3) >>> true foo*baz*zort!foo: a ^ [ :a | a ] value: 10 + a/({'hello'. 'world'} includes: 'hello') >>> trueUnexpected negative weight14d2222333200"Point class instanceSide >>> Point20182[ | | ]fromStream: readStream "Parse and materialize the STON representation in the character readStream" "(STON fromStream: 'Point[1,2]' readStream) >>> (1@2)" "FileLocator temp / ('{1}.ston' format: { Time millisecondClockValue }) in: [ :file | file writeStreamDo: [ :out | STON put: 1@2 onStream: out ]. file readStreamDo: [ :in | STON fromStream: in ] ]" ^ (self reader on: readStream) nextfalse | false >>> false1101Hello6(Tests-unix-64-Zinc-Zodiac-Tests-Test.xml111000000000200000 abcdf abcedf-1| rectangles | rectangles := OrderedCollection new add: (Rectangle left: 5 right: 10 top: 0 bottom: 15); add: (Rectangle left: 0 right: 15 top: 5 bottom: 10); yourself. (Rectangle merging: rectangles) >>> (Rectangle left: 0 right: 15 top: 0 bottom: 15)2X ureciprocal "Return the reciever full of reciprocated elements" "#(1 11 0.5) reciprocal >>> {1 . 1/11 . 2.0}" "{10@20. (1/2)@0.5} reciprocal >>> {((1/10)@(1/20)). (2@2.0)}" ^ self collect: [ :a | a reciprocal ]xc32165 0001112131411>> #(104 101 108 111) asSetc011111#(1 2 3 4) selectEverySecond asArray >>> #(2 4) zkZ{ 1. 2. 3 } asOrderedCollection >>> (OrderedCollection new add: 1; add:2; add:3; yourself)0vector0100 :BBBB | bbbb s n 0Uor: alternativeBlock "Nonevaluating disjunction. If the receiver is false, answer the value of the argument, alternativeBlock; otherwise answer true without evaluating the argument." "(true or: [Error signal]) >>> true" "(true or: [false]) >>> true" "(false or: [true]) >>> true" "(false or: [3]) >>> 3" self subclassResponsibility3listClass "Return the class of STON lists, Array, a system wide constant" "(STON fromString: '[1 , 2 , 3]') class >>> STON listClass" ^ Array$} isControlOther >>> falseb9320XnXnXabc911kIf the receiver is not nil, pass it as argument to the ifNotNilBlock block. else execute the nilBlock block::a'PhaRo' asLowercase >>> 'pharo'0?Evaluating conjunction -- answer false since receiver is false.651 goodby: 2 my: /(nil ifNotNil: [:o | o +3 ] ifNil: [42]) >>> 423SEvaluates the argument with the write stream of the collection. Answers the result.dfirst "Answer the first element of the receiver" "#(a b c d e f g h ) first >>> #a" ^ self at: 1G({#xa. #xc. #xz. #xb. #xy} sort: #last ascending) >>> #(xa xb xc xy xz)9a61digitAt: anExponent base: base "Return number that represents digit at given position." "(42 digitAt: 2 base: 10) >>> 4" "(42 digitAt: 1 base: 10) >>> 2" "It is always a number or zero:" "(16rFF digitAt: 1 base: 16) >>> 15" "(1 digitAt: 2 base: 10) >>> 0" "Results are not defined for base smaller than 2 and non-integer arguments." ^ self // (base raisedToInteger: anExponent - 1) \\ base ab ab ac deisCasedLetter "We are sorry but this method is unclear and will probably be removed. This method only returning false." "$a isCasedLetter >>> false" "$A isCasedLetter >>> false" ^ self characterSet isCasedLetter: self(But use collect: or collect:as: instead!1;one1 boy!1023.1479-420Store value into the index'th element of the receiver. If index is out of bounds, let it wrap around from the end to the beginning until it is in bounds. Answer value.530 XX XX n n n X4A('abcDefgh' includesSubstring: 'De' caseSensitive: true) >>> truejA variant of #streamContents: where the initial or even final size is given to optimize memory consumption| TTTT | tttt n. ^ ttttcsurroundString: aString withCharacter: aCharacter "Returns a new string with contents equals to aString surrounded by aCharacter. Escapes all occurrences of aCharacter within aString by doubling them." "(RubTextEditor new surroundString: 'a' withCharacter: $') >>> '''a'''" "(RubTextEditor new surroundString: 'a''b' withCharacter: $') >>> '''a''''b'''" | result stream | result := WriteStream with: ''. stream := ReadStream on: aString string. result nextPut: aCharacter. [ stream atEnd ] whileFalse: [ result nextPutAll: (stream upTo: aCharacter). stream peekBack = aCharacter ifTrue: [result nextPut: aCharacter]. result nextPut: aCharacter.]. stream peekBack = aCharacter ifTrue: [result nextPut: aCharacter]. ^result contents-9.#mySelector asTestSelector >>> #testMySelectorx51B([#() emptyCheck] on: CollectionIsEmpty do: [ 'oops' ]) >>> 'oops'>> false" "(#(2 4) allSatisfy: [ :each | each even ]) >>> true" "('hello' allSatisfy: #isLetter) >>> true" "('hello!' allSatisfy: #isLetter) >>> false" "((3 to: 8 by: 2) allSatisfy: #isPrime) >>> true" "((3 to: 9 by: 2) allSatisfy: #isPrime) >>> false" "(#() allSatisfy: [false]) >>> true" self do: [ :each | (aBlock value: each) ifFalse: [ ^ false ] ]. ^ true12512.3028603AMan,APlan,ACanal,Panama$' isInitialQuote >>> false(String streamContents: [:s| {'one'->1. 'two'->2} associationsDo: [:a| s << a key << ':' << a value asString << ';']]) >>> 'one:1;two:2;'100502| tmp | tmp := 1. ^ tmp10232rx Point[1,2]1010a0(#(10 20 30) collect: [:e| e+1]) >>> #(11 21 31);(#(1 2 3) union: #(4 5 6 2)) asSet >>> #(1 2 3 4 5 6) asSetla{ ^ 1 }. 2. ^ 3 and displayStringOn:>Nonevaluating disjunction -- answer value of alternativeBlock.&('Hello!' detect: #isLowercase) >>> $e1>mmddyyyy "Print the receiver in standard U.S.A format mm/dd/yyyy. Note that the name here is slightly misleading -- the month and day numbers don't show leading zeros, so that for example February 1 1996 is 2/1/96" "(Date year: 2018 month: 9 day: 28) mmddyyyy >>> '9/28/2018'" ^ self printFormat: #(2 1 3 $/ 1 1)bAnswer the element at my position index. If I do not contain an element at index, answer the result of evaluating the argument, exceptionBlock.Pharo610 heLlo wOrLd20655XifNil: nilBlock ifNotNil: ifNotNilBlock "If the receiver is not nil, pass it as argument to the ifNotNilBlock block. else execute the nilBlock block" "Might be compiled inline for speed, see RBMessageNode>>#isInlineIfNil" "(nil ifNil: [42] ifNotNil: [:o | o +3 ] ) >>> 42" "(3 ifNil: [42] ifNotNil: [:o | o +3 ]) >>> 6" ^ nilBlock value.Tests-unix-64-EmergencyDebugger-Tests-Test.xml10c3$A isLetter >>> truesalkjsdlkgfeeal015[Answer the third element of the receiver. Raise an error if there are not enough elements.E((Date year: 2018 month: 9 day: 28) subtractDate: '2018-09-27') >>> 14a. :foo1(1/3 round: 2) >>> (33/100) =Answer a Bag whose elements are the elements of the receiver.(String streamContents: [:s | [:c | c isSeparator ] split: 'Pharo is cool' indicesDo: [ :start :end | s << 's:' << start asString << ' ' << 'e:' << end asString << ' ' ]]) >>> 's:1 e:5 s:7 e:8 s:10 e:13 '4300000111111222332210-isClosePunctuation "Return whether the receiver is one of these characters: )]}" "$a isClosePunctuation >>> false" "$( isClosePunctuation >>> false" "$) isClosePunctuation >>> true" "$] isClosePunctuation >>> true" "$} isClosePunctuation >>> true" ^ self characterSet isClosePunctuation: selfP(#(true true false true) inject: 0 into: [ :sum :each | sum + each asBit]) >>> 3157ifFalse: falseAlternativeBlock ifTrue: trueAlternativeBlock "Answer the value of falseAlternativeBlock. Execution does not actually reach here because the expression is compiled in-line." "(false ifFalse: [ 'That is false!' ] ifTrue: [ 'That is true!' ]) >>> 'That is false!'" ^falseAlternativeBlock value16cc###'hello''world125Return a String with the STON serialization of objectsorted: aSortBlockOrNil "Return a new sequenceable collection which contains the same elements as self but its elements are sorted by aSortBlockOrNil. The block should take two arguments and return true if the first element should preceed the second one. If aSortBlock is nil then <= is used for comparison." "(#(3 1 4 2) sorted: [:a :b| a>=b]) >>> #(4 3 2 1)" "('hello' sorted: [:a :b| a>=b]) >>> 'ollhe'" "((1 to: 10 by: 2) sorted: [:a :b| a>=b]) >>> #(9 7 5 3 1)" ^self asArray sort: aSortBlockOrNil150LAnswer whether any element of aCollection is one of the receiver's elements.true | false >>> true.1 milliSecond printString >>> '0:00:00:00.001'Xs1 [ :a | 1 ]C(DateAndTime fromString: '2004-02-29T13:33:00+02:00') minute >>> 33245201820+((1 to: 8) reject: #isPrime) >>> #(1 4 6 8)11100aabc* """ | """ T """ | """ t """ """ n """ 2%('pharo' endsWith: 'phuro') >>> false0420"('action' alike: 'actions') >>> 7.12/({1. $a. $a. 3} as: RunArray) runs >>> #(1 2 1)6360318810v (OrderedDictionary new at: #top at: #below1 put: 1; at: #top at: #below1 put: 2; at: #top at: #below1) >>> 23.111\|a|a:= Array new: 3. #(10 20 30) withIndexDo: [:e :i| a at: 4-i put: e+1]. a >>> #(31 21 11)-0.5pharo!3 'def' > 'def' >>> false430200400copyWithoutAll: aCollection "Answer a copy of the receiver that does not contain any elements equal to those in aCollection." "('fred the bear' copyWithoutAll: 'aeiou ') >>> 'frdthbr'" "(#(2 3 4 5 5 6 2) copyWithoutAll: (4 to: 10)) >>> #(2 3 2)" ^ self reject: [:each | aCollection includes: each]co (Dictionary new at: #top at: #below1 put: 1; at: #top at: #below1 put: 2; at: #top at: #below1) >>> 22c10a :foo2111000021 'abcd' asFourCode >>> -513645724c102(false xor: [false]) >>> falsedHello1&Character newPage isSeparator >>> trueEvaluate aBlock for each element and remove all that elements from the receiver for that aBlock evaluates to true. Use a copy to enumerate collections whose order changes when an element is removed (i.e. Sets).10255101260newFrom: aDictionaryOrCollectionOfAssociations "Answer an instance of me containing the same associations as the argument. If the same key appears twice, the last one enumerated will win" "(Dictionary newFrom: {1->#a. 2->#b. 3->#c}) >>> ({1->#a. 2->#b. 3->#c} asDictionary)" | newDictionary | newDictionary := self new: aDictionaryOrCollectionOfAssociations size. aDictionaryOrCollectionOfAssociations associationsDo: [:x |newDictionary add: x]. ^ newDictionary1.00 GB<(1000 * 1000 * 1000) humanReadableSISizeString >>> '1.00 GB'2a31111200445555555766A88889,Tests-unix-64-NewTools-Finder-Tests-Test.xml0s:1 e:5 s:7 e:8 s:10 e:13 Returns a string representation of the receiver as hex, prefixed with 16r. DO NOT CHANGE THIS! The Cog VMMaker depends on this.longonest longone string'pppp A ^ 0 | T | t nn. t 0 sssss s aIExecute the receiver with one or zero arguments depending on the receiver00105(false ifTrue: [ 'This statement is true!' ]) >>> nil36n"""uuuu uuuuu uuu uuuu"""uuuuu"""uuuuuuuuuuu"""Evaluate aBlock for each of the receiver's elements and answer the list of all resulting values flatten one level. Assumes that aBlock returns some kind of collection for each element. optimized version for Sequencable Collection and subclasses implementing #writeStreamL(10 to: 25 by: 5) asOrderedCollection >>> #(10 15 20 25) asOrderedCollectionX n s n1abc22255,(#(10 20 30) includesAll: #(30 20)) >>> true210true | true >>> true9 5111114444xy21 XX n XXX n X* 0 0 :BBB : BBB | | TTT TTT | bbb . 0 0 . 123.005d(#(1 1 1 10 10 10 100 100 100) groupsOf: 3 atATimeCollect: [ :x :y :z | x + y + z]) >>> #(3 30 300)pdetect: aBlock "Evaluate aBlock with each of the receiver's elements as the argument. Answer the first element for which aBlock evaluates to true." "({1@3. 2@1. 3@6. 4@8} detect: [ :each | each x even ]) >>> (2@1)" "((104 to: 120) detect: #isPrime) >>> 107" "('Hello!' detect: #isLowercase) >>> $e" ^ self detect: aBlock ifNone: [ self errorNotFound: aBlock ]03pppp A XXXXXXX. ^ a1000101Evaluate aBlock with each of the receiver's elements as the argument, starting with the last element and taking each in sequence up to the first. For SequenceableCollections, this is the reverse of the enumeration for do:.6foo10foo6,Tests-unix-64-Calypso-Browser-Tests-Test.xml | T | X tWreturns the difference between the max and min element, their positions notwithstandingThe Rolling Stones01130// arg "Pairwise integer quotient of two sequenceable collections of the same length." "#(10 20 30) // #(1 3 4.0) >>> #(10 6 7)" "{10@20. 30@0} // {1@3. 4.0@1} >>> {(10@6). (7@0)}" ^ arg adaptToCollection: self andSend: #//8reduce: aBlock "Fold the result of the receiver into aBlock. The argument aBlock must take two or more arguments. It applies the argument, binaryBlock cumulatively to the elements of the receiver. For sequenceable collections the elements will be used in order, for unordered collections the order is unspecified." "( #(1 2 3) asSet reduce: [ :a :b | a + b ] ) >>> (1 + 2 + 3)" "( #(1 2 3 4 5) asSet reduce: [ :a :b :c | a + b + c ] ) >>> (1 + 2 + 3 + 4 + 5)" "Maybe look at the related method Collection>>inject:into:" ^self asOrderedCollection reduce: aBlockAnswer the index'th element of the receiver. If index is out of bounds, let it wrap around from the end to the beginning until it is in bounds.4A(#(xa xc xz xb xy) sorted: #last ascending) >>> #(xa xb xc xy xz)B 'TheRollingStones' normalizeCamelCase >>> 'The Rolling Stones' [descending "Return a SortFunction around the receiver, where the receiver will be used as a unary message to send to both a and b during sorting, and then the result of said send will be collated in descending order using the <=> method." "(#('abc' 'de' 'fghi') sorted: #size descending) >>> #('fghi' 'abc' 'de')" ^self asSortFunction reversed-320occurrencesOf: anObject "Answer how many of the receiver's elements are equal to anObject." "(#(1 2 2 3 1 1 1) asBag occurrencesOf: 1) >>> 4" ^ (self includes: anObject) ifTrue: [ contents at: anObject] ifFalse: [ 0 ]1(Color fromHexString: 'FFFFFF')>>> (Color white) 20let123d-4 10000000000000vector01(#(1 2 3) isSortedBy: [:a :b | a <= b ]) >>> true425Answer a number that represents the number of complete seconds in the receiver's time part, after the number of complete minutes has been removed.- arg "Pairwise difference of two sequenceable collections of the same length." "#(10 20 30) - #(0 1 2) >>> #(10 19 28)" "{10@20. 30@0} - {0@1. 2@3} >>> {(10@19). (28@ -3)}" ^ arg adaptToCollection: self andSend: #-lselect: aBlock "Evaluate aBlock with each of the receiver's elements as the argument. Collect into a new collection like the receiver, only those elements for which aBlock evaluates to true. Answer the new collection." "(#(1 2 3 4 5) select: #even) >>> #(2 4)" "({1@2. 6@3. 2@ -1.} select: [:e| e x > e y]) >>> {(6@3). (2@ -1)}" "('heLlo wOrLd' select: #isUppercase) >>> 'LOL'" "((1 to: 10) select: #isPrime) >>> #(2 3 5 7)" "(#() select: [true]) >>> #()" | newCollection | newCollection := self copyEmpty. self do: [ :each | (aBlock value: each) ifTrue: [ newCollection add: each ] ]. ^ newCollection310[ | b ]_Return the integer present in the receiver, or nil. In case of float, returns the integer part.2$_ isDashPunctuation >>> false4'' expandMacros >>> OSPlatform current lineEnding 2r-001010000324022011e1u u. 0 :B X 0. u u3 (10 'hello')#Tests-unix-64-Deprecated12-Test.xml'hello'1100000fifth "Answer the fifth element of the receiver. Raise an error if there are not enough elements." "#(a b c d e f g h ) fifth >>> #e" ^ self at: 5322-3.153010{Evaluate aBlock with each of aCollections's elements as the argument. Collect the resulting values into self. Answer self.10negated "Negated value of all elements in the collection" "#(1 2 3) negated >>> #(-1 -2 -3)" "{1@2. 3@ -1} negated >>> {-1@ -2. -3@1}" ^ self collect: [ :a | a negated ]30161888 000999060AAA070BBB00 CCC0314.0asBit "convert myself to an Integer representing 1 for true and 0 for false" "($b > $c) asBit>>> 0" "true asBit >>> 1" "(#(true true false true) inject: 0 into: [ :sum :each | sum + each asBit]) >>> 3" self subclassResponsibilityColor red hsvSaturation >>> 1.0Do nothing on purpose1// aNumber "Integer quotient defined by division with truncation toward negative infinity. \\ answers the remainder from this division." "9//4 >>> 2" "-9//4 >>> -3" "-0.9//0.4 >>> -3" ^(self / aNumber) floor3-(Color fromString: 'orange') >>> Color orange111?Search for an element in the receiver using binary search. The argument aBlock is a one-element block returning 0 - if the element is the one searched for <0 - if the search should continue in the first half >0 - if the search should continue in the second half If no matching element is found, raise an error.8 [ :a | b ]3twowe520associationClass "Return the class of STON associations, Association, a system wide constant" "(STON fromString: '#foo : 100') class >>> STON associationClass" ^ Association5311224true & true >>> true(#() writeStreamDo: [ :stream | stream nextPut: '4'; space; nextPutAll: '34'. stream contents ]) >>> {'4'. Character space. $3. $4}3400b3foo:2;816((2@2) - 200) >>> (-198@ -198)2 89Ten -33-1xc0. pppp AAA ^ 0 1 2 3 aaa 3 2 s 2 3 n 3 2 1 0 .  7;(100@100 isInsideRectangle: (0@0 corner: 100@100))>>> false201 Not foundaeiou-42[ :a | a201{10@20. 30@0} // {1@3. 4.0@1} >>> {(10@6). (7@0)}32bc#. 1 r0or even Collections1EMight be compiled inline for speed, see RBMessageNode>>#isInlineIfNil11.01_Return true if both of my x and y coordinates are represented by float values, otherwise false227XX XX n XXXX n X X0vector2mapClass "Return the class of STON maps, Dictionary, a system wide constant" "(STON fromString: '{ #foo : 1 , #bar : 2 }') class >>> STON mapClass" ^ Dictionary30116 'h' 1100141E(RubTextEditor new surroundString: 'a' withCharacter: $') >>> '''a'''11three11d12120 [ :a : | ]Missing opener for closer: )intersection: aCollection "Answer the set theoretic intersection of two collections. Optimized version for Sets where no intermediate Set is necessary" "(#(1 2 3 4) asSet intersection: #(3 4 5) asSet) >>> #(3 4) asSet" "(#(1 2 3 4) asSet intersection: #() asSet) >>> Set new" "( #() asSet intersection: #(1 2 3 4) asSet) >>> Set new" | outputSet | outputSet := self class new. aCollection do: [ :each | (self includes: each) ifTrue: [ outputSet add: each ] ]. ^ outputSetG('/foo/gloops.taz' asPath basenameWithoutExtension: 'taz') >>> 'gloops'b4'"a" [ "b" | "c" x "d" y "e" | "f" ] "g"4001[ :Object | Object + 1 ]69BBB888877777777666666555555544444444DDD00000000000EEE4keywords "Returns the keywords of the provided selector. Assumes the reciever is a valid keyword based selector (@reciever isKeyword > true). Prefer using Symbol>>#keywordsStrict if you're not sure if the reciever is keyword-based." "#foo: keywords >>> #('foo:')" "#foo:bar: keywords >>> #('foo:' 'bar:')" "#foo keywords >>> #('foo')" "Invalid input/output !" "#+ keywords >>> #('+')" "Invalid input/output !" | keywords | keywords := Array streamContents: [ :kwds | | kwd | kwd := (String new: 16) writeStream. self do: [ :char | kwd nextPut: char. char = $: ifTrue: [ kwds nextPut: kwd contents. kwd reset ] ]. kwd position = 0 ifFalse: [ kwds nextPut: kwd contents ] ]. ^ keywords 20@({1@3. 2@1. 3@6. 4@8} detect: [ :each | each x even ]) >>> (2@1)9('abddf' indexOf: $k) >>> 0foo: Object ^ Object + 144330:B :B0false | true >>> truetAnswer a copy of the receiver containing all but the last element. Raise an error if there are not enough elements.1;#(1 2 3) asOrderedCollection makeRoomAtFirst capacity >>> 690asLowercase "Answer a String made up from the receiver whose characters are all lowercase." "'PhaRo' asLowercase >>> 'pharo'" "'' asLowercase >>> ''" "' ' asLowercase >>> ' '" ^ self copy asString translateToLowercase test 4000011150$Do the special case of integer power . #( foo bar )2 and 1213?(#(1 2 3) with: #(4 5 6) collect: [:a :b | a + b]) >>> #(5 7 9)1 test test1Point isInstanceSide >>> true101h9XXXXXXXXXXXXXX1#( )abc20xa0foo: 1 Point class isClassSide >>> trueindexOfAnyOf: aCollection startingAt: start ifAbsent: exceptionBlock "Answer the index of the first occurrence of any element included in aCollection after start within the receiver. If the receiver does not contain anElement, answer the result of evaluating the argument, exceptionBlock. Note: it is user responsibility to provide aCollection that behaves relatevily fast when asked for includes: (like a Set)" "(#(a b c d e) indexOfAnyOf: #(x y c) startingAt: 2 ifAbsent: 7) >>> 3" "(#(a b c d e) indexOfAnyOf: #(x y c) startingAt: 4 ifAbsent: 7) >>> 7" start to: self size do: [:index | (aCollection includes: (self at: index)) ifTrue: [^ index]]. ^ exceptionBlock value45666must be exactly four characterse(#('abc' 'de' 'fghi') sorted: (#size collatedBy: [:e|e bitAnd: 1]) , #size) >>> #( 'de' 'fghi' 'abc')3110vector2(100@200) x >>> 100a00030({3. 9. 1} sort: [:a :b | a <= b ]) >>> #(1 3 9)a######2333310 storeStringHex >>> '16rA'11009decimalDigitAt: anExponent "Return number that represents digit at given decimal position." "(42 decimalDigitAt: 2) >>> 4" "(42 decimalDigitAt: 1) >>> 2" "It is always a number or zero:" "(1 decimalDigitAt: 2) >>> 0" "Results are not defined non-integer arguments." ^ self digitAt: anExponent base: 101154/'between:and:' findSelector >>> #'between:and:'e1 000022222234058Tests-unix-64-NewTools-Spotter-Processors-Tests-Test.xml3c41 goodby: my: CroundUpTo: aNumber "Answer the next multiple of aNumber toward infinity that is nearest the receiver." "(3.1479 roundUpTo: 0.01) >>> 3.15" "(3.1479 roundUpTo: 0.1) >>> 3.2" "(1923 roundUpTo: 10) >>> 1930" "(3.1479 roundUpTo: 0.005) >>> 3.15" "(-3.1479 roundUpTo: 0.01) >>> -3.14" ^(self / aNumber) ceiling * aNumber2130Optimized implementation abdhelloabd011.41:('pharo' endsWith: 'phuro' caseSensitive: false) >>> false* ( [ :aaa : bbb | | ccc ddd | aaa . ] ) . 30203phuropharo142+(self >> #traitSource) isExtension >>> true 'def' > 'abc' >>> true2d10bFFFFFF,Tests-unix-64-NewTools-Scopes-Tests-Test.xmlPcount: aBlock "Evaluate aBlock with each of the receiver's elements as the argument. Answer the number of elements that answered true." "(#(1 2 3 4) count: [ :each | each even ]) >>> 2" "('Hello, World!' count: #isLowercase) >>> 8" | sum | sum := 0. self do: [ :each | (aBlock value: each) ifTrue: [ sum := sum + 1 ] ]. ^ sum-3}Collect and return the result of evaluating twoArgBlock with corresponding elements from this collection and otherCollection. 001002230sixth "Answer the sixth element of the receiver. Raise an error if there are not enough elements." "#(a b c d e f g h i) sixth >>> #f" ^ self at: 66xb50 16r4116r410.05ee|generator| generator := Generator onDo: [ :doBody | Integer primesUpTo: 10000000 do: doBody ]. (generator next: 5) asArray >>> #(2 3 5 7 11) test test10010100251Answer a ByteArray whose elements are the elements of the receiver. Implementation note: Cannot use ''ByteArray withAll: self'' as that only works for SequenceableCollections which support the replacement primitive.kReturn the index'th element of me if possible. Return the first or last element if index is out of bounds.8abcfillFrom: aCollection with: aBlock "Evaluate aBlock with each of aCollections's elements as the argument. Collect the resulting values into self. Answer self." "(#(10 20) asOrderedCollection fillFrom: 'ABC' with: [:x|x asciiValue]) >>> #(10 20 65 66 67) asOrderedCollection" "(#(10 20) asSet fillFrom: 'ABC' with: [:x|x asciiValue]) >>> #(10 20 65 66 67) asSet" "({64->$@} asDictionary fillFrom: 'AB' with: [:x|x asciiValue -> x]) >>> {64->$@. 65->$A. 66->$B} asDictionary" aCollection do: [ :each | self add: (aBlock value: each) ]0 :BBBBB | bbbbb s n 020 nnnnnuuuuu u. X X . X X 1 foo: . ^ 2XXXXXX-(#(1 2 3 4 5) beginsWith: #(0 1 2)) >>> false1%'isSymbol' findSelector >>> #isSymbol2019-08-17T13:33:00+02:00100)({1 .2 .3 .4} at: 3 incrementBy: 2) >>> 5106AaBbCcReturn a new sequenceable collection which contains the same elements as self but its elements are sorted in ascending order using the #'<=' operator.10[ | ]0Tests-unix-64-System-Finalization-Tests-Test.xml975*0011"""2"""3333"""1111"""111"""1#"""#321004G('ab cd ab ef ab' copyReplaceAll: 'ab' with: 'zk') >>> 'zk cd zk ef zk'c15reduceRight: aBlock "Fold the result of the receiver from right to left into aBlock. The argument aBlock must take two or more arguments." "(#(1 2 3) reduceRight: [ :a :b | a - b ]) >>> (1 - (2 - 3))" "(#(1 2 3) reduceRight: [ :a :b | a - b ]) >>> 2" "(#(1 + 3 - 5) reduceRight: [ :a :op :b | a perform: op with: b ]) >>> (1 + (3 - 5))" "(#(1 + 3 - 5) reduceRight: [ :a :op :b | a perform: op with: b ]) >>> -1" | arguments | self emptyCheck. arguments := Array new: aBlock argumentCount. (arguments size = 0 or: [ (self size + 1) \\ (arguments size - 1) > 0 ]) ifTrue: [ self error: 'Collection size and block argument count do not match.' ]. arguments at: arguments size put: self last. self size - arguments size + 1 to: 1 by: 1 - arguments size do: [ :index | arguments replaceFrom: 1 to: aBlock argumentCount - 1 with: self startingAt: index; at: arguments size put: (aBlock valueWithArguments: arguments) ]. ^ arguments last4n ssss;513,123"('abcd' contractTo: 10) >>> 'abcd'4-85*'displayStringOn:' endsWithAColon >>> true,highBit is not defined for negative integershumanReadableSISizeString "Return the receiver as a string with SI binary (International System of Units) file size, e.g. '50 KB'. It means that it takes 1000 and not 1024 as unit as humanReadableByteSizeString does." "(1000 * 1000 * 1000) humanReadableSISizeString >>> '1.00 GB'" "(1000 * 1000 * 1000) humanReadableByteSizeString >>> '953.67 MB'" "(1024 * 1024 * 1024) humanReadableSISizeString >>> '1.07 GB'" ^ String streamContents: [ :s| self humanReadableSISizeOn: s ]5EAnswer the value of the alternativeBlock since the receiver is false.c5(#(1 2 3 4) reject: [:each | each = 3 ]) >>> #(1 2 4){ ^ 1. 2. ^ 3 }/(nil ifNotNil: [:o | o +3 ] ifNil: [42]) >>> 42| | . 11103b(#('We' 'love' 'pharo!') asOrderedCollection withIndexSelect: [:value :index | value size - 1 <= index]) >>> (OrderedCollection with: 'We')1001024a2$Point class isInstanceSide >>> false1102Answer whether the receiver contains any elements.210000200{1 . 2 . 4 . 5} median >>> 3false asBit >>> 00vector0332cSet the element at indexFromEnd from the last position. atLast: 1 put: obj, sets the last element10#(10 20 30) anyOne >>> 101112foo | a | a := 1. ^ [ | a | a := 10. a ] value + a1'('ab ab ac de' howManyMatch: 'a') >>> 123#('a') asCommaStringAnd >>> 'a''('XaX' escapeCharacter: $X) >>> 'XXaXX'W(#(10 20 10) asOrderedCollection remove: 10; yourself) >>> #(20 10) asOrderedCollection30indexOfSubCollection: aSubCollection startingAt: anIndex "Answer the index of the receiver's first element, such that that element equals the first element of aSubCollection, and the next elements equal the rest of the elements of aSubCollection. Begin the search at element anIndex of the receiver. If no such match is found, answer 0." "(#(a b c d e) indexOfSubCollection: #(c d) startingAt: 2) >>> 3" "(#(a b c d e) indexOfSubCollection: #(c d) startingAt: 4) >>> 0" ^self indexOfSubCollection: aSubCollection startingAt: anIndex ifAbsent: [0]+(#(a b c d e) indexOfAnyOf: #(x y c)) >>> 3(#(a b c d) after: #b) >>> #c/| TTTTTTTTTTT | ttttttttttt n. ^ ttttttttttt6Answer true if the receiver is equivalent to aBoolean.do7({#x .#y .#z} atLast: 2 put: #e; yourself) >>> #(x e z)ait'emn uuuuuuu n uuu 'hello' anyOne >>> $hWReturns a symbol that is a valid selector by removing any space or forbidden charactersPay attention when you write an executable comment for keyword-based method: surround with parentheses your expression because, otherwise the executable comment won't work as the message is binary.10.12345200300000100002000030555655755855599A9B9C999FEEEGDDDH55[:a|||a]23-24302Answer the set theoretic union of two collections..00777777DDD88EEE999999999FFFAAAGGGBBHHHCCCIII0918d11*-1 + 1--1 + 1- -1b112Undeclared variable;(#(1 2 3) reduceRight: [ :a :b | a - b ]) >>> (1 - (2 - 3))1M(RubTextEditor new surroundString: 'a''b' withCharacter: $') >>> '''a''''b'''!000001033555655585544444444AA999BaAnswer the set theoretic difference of two collections. Pay attention that the difference is not commutative, hence the order is important.1 factorial >>> 1121. := 21+Answer whether the receiver is a ByteString'Tests-unix-64-Commander2-Tests-Test.xml611000041522b1201. "a" "b" "c" 2 "d"1streamContents: blockWithArg limitedTo: sizeLimit "A variant of #streamContents: with a strict size limit" "(String streamContents: [:s | 10 timesRepeat: [s nextPutAll: 'foo']] limitedTo: 9) >>> 'foofoofoo'" | stream | stream := LimitedWriteStream on: (self streamSpecies new: (100 min: sizeLimit)) limit: sizeLimit limitBlock: [ ^ stream contents ]. blockWithArg value: stream. ^ stream contents% aNumber "modulo. Remainder defined in terms of //. Answer a Number with the same sign as aNumber." "9 % 4 >>> 1" "-9 % 4 >>> 3" "9 % -4 >>> -3" ^ self \\ aNumber128/Tests-unix-64-Shift-ClassBuilder-Tests-Test.xmlWJust like do: except that the iteration index supplies the second argument to the block257.1X PhaRo3Class structural inspection - Class/Metaclass shift4%(false and: [Error signal]) >>> false^Append the elements of the argument, aSequenceableCollection, separating them by the receiver.7X X1hello,(#(11 22 33) before: 44 ifAbsent: 55) >>> 55R(OrderedCollection new add: 42; add: 41 before: 42; yourself) asArray >>> #(41 42)between: #(0 1)1LReturn a color for HTML color spec: #FFCCAA or white/black passed as string.[ :a :b#('pharo' endsWith: 'aRo') >>> false33'{1. 2} asSet = {2. 1} asSet >>> true200111a,select: aBlock "Optimized version of Collection>>#select:" "(#(1 2 3 4) select: [:each | each > 2 ]) >>> #(3 4)" | each | ^ self species new: self size streamContents: [ :stream| 1 to: self size do: [ :index | (aBlock value: (each := self at: index)) ifTrue: [ stream nextPut: each ]]]| aCollection "Return all the elements that appear in self or in aCollection. Alias of union:" "#(10 20 30) | (0 to: 15 by: 5) >>> #(0 15 5 30 20 10)" "'abc' | 'cbe' >>> 'bcea'" ^ self union: aCollection10.00111(Tests-unix-64-Roassal-UML-Tests-Test.xml1(1 to: 10 by: 2) last >>> 9,(#(a b c d e) indexOf: #c ifAbsent: 7) >>> 3003103((Color r: 0.5 g: 0.5 b: 1) hue >>> 240.0!#(1 2 2 3 1 1 1) asBag sum >>> 11 #( #[ 0 1 2 )((STON reader acceptUnknownClasses: true; on: 'FooBarBaz { #foo : 100 }' readStream; next) at: STON classNameKey) >>> #FooBarBaz(42 decimalDigitAt: 1) >>> 21Subclasses should decide what meta level of given class should be used to retrieve/build hierarchy. For example superclass hierarchy of ProtoObject class can stop at it according to instance side hierarchy20sign "Answer 1 if the receiver is greater than 0, -1 if less than 0, else 0." "#(5 -3.7 0) sign >>> #(1 -1 0)" "{5@0. -3@8. 0@ -1.} sign >>> {(1@0). (-1@1). (0@ -1)}" ^ self collect: [ :each | each sign ]3311112004455555766A888890 Xs X100.(10 to: 1 by: -1) asOpenInterval >>> (9 to: 2)201B'234znak ::x43 '') _ : 2' asValidSelector >>> #'v234znak:x43:v2'3 00010233040010p( #(1 2 3 1 6 1 2 3 4) piecesCutWhere: [ :a :b | a = 1 and: [ b = 2]]) asArray >>> #(#(1) #(2 3 1 6 1) #(2 3 4))3220 a := 10. ^ a4('pharo' endsWith: '' caseSensitive: false) >>> true1(10 to: 5) asArray >>> #()7( 1Xsuuu32ababddf7nanoSeconds "2 nanoSeconds printString >>> '0:00:00:00.000000002'" "(1 milliSecond + 2 nanoSeconds) printString >>> '0:00:00:00.001000002'" ^ Duration nanoSeconds: selfdXX nJ(true ifTrue: [ 'This statement is true!' ]) >>> 'This statement is true!'31014234dXX XX n XX# n X X30Wargmax "#(1 -3 5 1) argmax >>> 3" "#(1 1 1 1) argmax >>> 1" ^ self indexOf: self max@Answer whether the receiver's first character represents a digit0vector0 XXXXXXXXX-Tests-546333877729111A0000BB1012d1Optimized to go through the primitive if possiblehex "Returns a string representation of the receiver as hex, prefixed with 16r. DO NOT CHANGE THIS! The Cog VMMaker depends on this." "$A hex >>> '16r41'" ^ self asInteger hex1That is false!5cEvaluate aBlock for each of the receiver's elements and answer the list of all resulting values flatten one level. Assumes that aBlock returns some kind of collection for each element. Equivalent to the lisp's mapcane5 slowFactorial >>> 12010sAnswer a Point that is the receiver's x and y ceiling. Answer the receiver if its coordinates are already integral.42^(#(1 2 3 4 4 1 2 3 5 6 ) groupByRuns: [ :each | each = 4]) >>> #(#(1 2 3) #(4 4) #(1 2 3 5 6))1(#(3 9 1) sorted: [:a :b | a >= b ]) >>> #(9 3 1)2#(:="A"aa:="B":=="C"cc:=="D")(1 sign: 2);bar1Returns a copy of the receiver with each sequence of whitespace (separator) characters replaced by a single space character"#(a b c d e f g h ) eighth >>> #hJRunning min. See the comment of self >> #running:of: for more information.a120d03(Date year: 2018 month: 9 day: 28) monthIndex >>> 952"00000111111111110335555555555544460 hello n(#(first (second third) ((allSentMessages ('Elvis' includes:)))) includesSubstringAnywhere: 'lvi') >>> trueRCount the number of characters in a substring that matches up in self and aString.1 'ziggie' lastSpacePosition >>> 010atLast: indexFromEnd "Return element at indexFromEnd from the last position. atLast: 1, returns the last element" "(#(x y z) atLast: 1) >>> #z" "(#(x y z) atLast: 2) >>> #y" ^ self atLast: indexFromEnd ifAbsent: [self error: 'index out of range'] '#foo:bar: keywords >>> #('foo:' 'bar:')2.3029[newFromKeys: keys andValues: values "Create a dictionary from the keys and values arguments which should have the same length." "(SmallDictionary newFromKeys: #(#x #y) andValues: #(3 6)) >>> (SmallDictionary new at: #x put: 3; at: #y put: 6 ;yourself)" | dict | dict := self new. keys with: values do: [ :k :v | dict at: k put: v ]. ^ dictS ([#() anyOne] on: SubscriptOutOfBounds do: [ :ex | 'whatever' ]) >>> 'whatever' 12uminute "1 minute printString >>> '0:00:01:00'" "(1 hour + 1 minute) printString >>> '0:01:01:00'" ^ self minutesincludesSubstring: substring "Returns whether the receiver contains the argument." "('abcdefgh' includesSubstring: 'de') >>> true" ^ substring isEmpty or: [ (self findString: substring startingAt: 1) > 0 ]Q('fear is the little death that the.' charactersExactlyMatching: 'fear is') >>> 7asCamelCase "Convert to CamelCase, i.e, remove spaces, and convert starting lowercase to uppercase." "'A man, a plan, a canal, panama' asCamelCase >>> 'AMan,APlan,ACanal,Panama'" "'Here 123should % be 6 the name6 of the method' asCamelCase >>> 'Here123should%Be6TheName6OfTheMethod'" ^ self species streamContents: [:stream | self substrings do: [:sub | stream nextPutAll: sub capitalized]]Zjoin: aCollection "Append the elements of the argument, aSequenceableCollection, separating them by the receiver." "({Character space. Character space} join: #('Pharo' 'is' 'cool')) >>> {$P. $h. $a. $r. $o. Character space. Character space. $i. $s. Character space. Character space. $c. $o. $o. $l}" "NB: this implementation only works for Array, since WriteStreams only work for Arrays and Strings. (!) Overridden in OrderedCollection and SortedCollection." ^ self class streamContents: [:stream | aCollection do: [:each | each joinTo: stream] separatedBy: [stream nextPutAll: self]]0.030foo((Color white diff: Color black ) >>> 1.030'{1. 2} asSet = {1. 2. 2} asSet >>> true0.0charactersExactlyMatching: aString "Do a character-by-character comparison between the receiver and aString. Return the index of the final character that matched exactly." "('s' charactersExactlyMatching: 'abc') >>> 0" "('fear is the little death that the.' charactersExactlyMatching: 'the') >>> 0" "('fear is the little death that the.' charactersExactlyMatching: 'fear is') >>> 7" | count | count := self size min: aString size. 1 to: count do: [:i | (self at: i) = (aString at: i) ifFalse: [ ^ i - 1]]. ^ count'FFF 00GGG044999464AAA4B0DDD000EEE00 HHH#(1 -3 5 1) argmax >>> 3HelloTThis is implemented using a variant of the normal inject:into: pattern that is specific to handling numbers. The receiver should include only numbers. Different from the sum implementation, the default value is zero. While sum is more general, sumNumbers is meant to support the most often encountered use case of dealing with numbers. | Object | Object := 1. ^ Object0 slowFactorial >>> 11001002Perform an action specified as aBlock (with a start and end argument) to each of the indices of aSequenceableCollection that have been identified by taking the receiver as a splitter.5,(#(10 20 30) includesAny: #(30 40)) >>> trueKExecutes aBlock on each of the receiver's elements except for the first oneabc3 slowFactorial >>> 6M= aString "Answer whether the receiver sorts equally as aString. The collation order is simple ascii (with case differences)." " 'abc' = 'def' >>> false" " 'abc' = 'abc' >>> true" " 'def' = 'abc' >>> false" (aString isString and: [ self size = aString size ]) ifFalse: [ ^ false ]. ^ (self compare: self with: aString) = 0c9+ 200"00010020030004454647444A999B888C001'foo: a ^ [ | a | a := 10. a ] value + a)Evaluate aBlock with my elements taken n at a time. Ignore any leftovers at the end. Allows use of a flattened array for things that naturally group into groups of n. If aBlock has a single argument, pass it an array of n items, otherwise, pass the items as separate arguments. See also pairsDo:1bifNil: nilBlock ifNotNil: ifNotNilBlock "If the receiver is not nil, pass it as argument to the ifNotNilBlock block. else execute the nilBlock block" "Might be compiled inline for speed, see RBMessageNode>>#isInlineIfNil" "(nil ifNil: [42] ifNotNil: [:o | o +3 ] ) >>> 42" "(3 ifNil: [42] ifNotNil: [:o | o +3 ]) >>> 6" ^ ifNotNilBlock cull: self8That is false!false ==> [true] >>> true/newFrom: aCollection "Answer an instance of me containing the same elements as aCollection." "(Set newFrom: {1. 2. 3}) >>> #( 1 2 3) asSet" "({1. 2. 3} as: Set) >>> #( 1 2 3) asSet" | newCollection | newCollection := self new: aCollection size. newCollection addAll: aCollection. ^ newCollectiondasSortFunction "Return a SortFunction around the receiver, where the receiver will be used as a unary message to send to both a and b during sorting, and then the result of said send will be collated in ascending order using the <=> method." "(#('abc' 'de' 'fghi') sorted: #size ascending) >>> #('de' 'abc' 'fghi')" ^PropertySortFunction property: self30foo "a" < "b" bar "c" > "d" < "e" baz "f" > "g" 11 hex: aFloat "Return an hexadecimal two-digits string between 00 and FF for a float between 0.0 and 1.0" "(Color hex: 0.2) >>> '33'" | str | str := (aFloat * 255) asInteger printStringHex asLowercase. ^ str size = 1 ifTrue: [ '0' , str ] ifFalse: [ str ]/Tests-unix-64-Metacello-TestsReference-Test.xmlG(#('abc' 'de' 'fghi') sorted: #size ascending) >>> #('de' 'abc' 'fghi')000r1"'( 1 and: 4)' findSelector >>> nila := a. [ :a a ]. a := a-10 (#(1 -4 -10 1) sum: #abs) >>> 16 #hello#worldTAdd new empty slots to the front of array, while keeping the empty slots at the end.255832768c(#(1.9283901234902349 2.302949083493849) closeTo: #(1.9283901234902348 2.302949083493899)) >>> true3fourth "Answer the fourth element of the receiver. Raise an error if there are not enough elements." "#(a b c d e f g h ) fourth >>> #d" ^ self at: 415atAll: aCollection put: anObject "Put anObject at every index specified by the elements of aCollection." "({#x .#y .#z} atAll: #(1 3) put: #e; yourself) >>> #(e y e)" aCollection do: [:index | self at: index put: anObject]. ^ anObject1000000011110335555444611603211nnAnswer the number of indexable fields in the receiver. This value is the same as the largest legal subscript. Included so that a SmallInteger can behave like a LargePositiveInteger or LargeNegativeInteger.411ppp Xu 284&Character home isControlOther >>> true63bar:VAnswer the index of the first occurrence of any element included in aCollection after start within the receiver. If the receiver does not contain anElement, answer the result of evaluating the argument, exceptionBlock. Note: it is user responsibility to provide aCollection that behaves relatevily fast when asked for includes: (like a Set)'']((ByteArray with: 97 with: 0 with: 0 with: 0) asString sameAs: 'Abcd' asWideString) >>> false#'abc' = 'abc' asWideString >>> true51102(( 1 > 2) eqv: false) >>> true 00102235061"A"true"B"false"C"nil"D"self"E"super"F"thisContext"G"22with: otherCollection collect: twoArgBlock "Collect and return the result of evaluating twoArgBlock with corresponding elements from this collection and otherCollection." "(#(1 2 3) with: #(4 5 6) collect: [:a :b | a + b]) >>> #(5 7 9)" | result | otherCollection size = self size ifFalse: [self errorSizeMismatch]. result := self species new: self size. 1 to: self size do: [:index | result at: index put: (twoArgBlock value: (self at: index) value: (otherCollection at: index))]. ^ result(100@200) floor >>> (100@200)0002345RReturn the metaclass of the couple class/metaclass. Useful to avoid explicit test.AReturn the hue of this color, an angle in the range [0.0..360.0].25D('LOL' detect: #isLowercase ifFound: #uppercase ifNone: [$X]) >>> $X>({ 2@6 . -4@3 . 10@ -3 } detectMax: [ :p | p x ]) >>> (10@ -3)%{1@50. 10@ -10. 5@5} range >>> (9@60)abc3foo < bar ; baz > !Character lf isSeparator >>> true4 and: alternativeBlock "Nonevaluating conjunction -- answer with false since the receiver is false." "(false and: [true]) >>> false" "(false and: [Error signal]) >>> false" ^self0 001000224c52041Evaluate the given block with the receiver as argument, answering its value unless the receiver is empty, in which case answer the receiver.BSort this collection into ascending order using the '<=' operator.#(#(1 2 3) polynomialEval: 2) >>> 17c110#311112004445444778796AAAB4400ECCCCDOReturn all the elements that appear in self or in aCollection. Alias of union:5\Answer the second element of the receiver. Raise an error if there are not enough elements.517ho1U({10. 20} asOrderedCollection add: 20; yourself) >>> {10. 20. 20} asOrderedCollection20~Returns #left, #right or #center if the otherPoint lies to the left, right or on the line given by the vector from 0@0 to selfe between: 2RUtility method to improve readability. Do not create the intermediate collection. #(aa:bb:cc#aa:bb:cc#cc==#== =#=) || a921)Fold the result of the receiver into aBlock. The argument aBlock must take two or more arguments. It applies the argument, binaryBlock cumulatively to the elements of the receiver. For sequenceable collections the elements will be used in order, for unordered collections the order is unspecified.11327blue410710(true xor: [false]) >>> true65 000000000kCreate a scanner stream of program tokens on the argument. Users can then use stream API to consume tokens.2515205this string will be trimmedb6Collection size and block argument count do not match.Sunday=1, ... , Saturday=7GEmit overlapping pairs of my elements into aBlock, along with an index.1023333333foo: a a := 10. ^ a151113!(13 beBetween: 12 and: 20) >>> 132 0000222226665423.110292B(Character space join: #('Pharo' 'is' 'cool')) >>> 'Pharo is cool'#(-10 printStringBase: 10) >>> '-10'addDays: dayCount "((Date year: 2018 month: 9 day: 28) addDays: 3) printString >>> '1 October 2018'" ^ (self asDateAndTime + (dayCount days)) asDate3200.9<('pharo' beginsWith: 'phuro' caseSensitive: false) >>> false 0001022203000vector011abcafter: target "Answer the element after target. Raise an error if target is not in the receiver, or if there are no elements after it." "(#(a b c d) after: #b) >>> #c" ^ self after: target ifAbsent: [self errorNotFound: target]4112a[:a 1] [ : | a: b ]longonei 2 even >>> truea10 hex >>> '16rA'1 #(3 1 4 2) sorted >>> #(1 2 3 4)This statement is false!100vector0a, b, cUnescape an escaped string. Assume the string has all occurrences of aCharacter are escaped. That is, they are in pairs. This method returns a copy of the string replacing all pairs of aCharacter by a single appearance of it.53ifFalse: falseAlternativeBlock ifTrue: trueAlternativeBlock "Answer the value of trueAlternativeBlock. Execution does not actually reach here because the expression is compiled in-line." "(true ifFalse: [ 'That is false!' ] ifTrue: [ 'That is true!' ]) >>> 'That is true!'" ^trueAlternativeBlock value33100vector0112abc((Color colorFrom: #blue)>>> (Color blue)aNumber cannot be negative4[1}2]collatedBy: aSortFunction "Return a SortFunction around the receiver, where the receiver will be used as a unary message to send to both a and b during sorting, and then the result of said send will be collated iusing aSortFunction." "(#('abc' 'de' 'fghi') sorted: (#size collatedBy: [:e|e bitAnd: 1]) , #size) >>> #( 'de' 'fghi' 'abc')" ^PropertySortFunction property: self collatedWith: aSortFunction asSortFunction12 hex >>> '16rC'10(('hello' allSatisfy: #isLetter) >>> trueN(false ifFalse: [ 'This statement is false!' ]) >>> 'This statement is false!'asHex "'A' asHex >>> '16r41'" "'AA' asHex >>> '16r4116r41'" ^ self species new: self size * 4 streamContents: [ :stream | self do: [ :ch | stream nextPutAll: ch hex ]]1$0 isDigit >>> true>Answer a Point that is the difference of the receiver and arg.1(2)" ppp <<<< method. (10 printStringBase: 16) >>> 'A'3.1479 [:a| ||a]a<(RPackage named: 'MockPackage-tests') isTestPackage >>> true 4That is false!9Tests-unix-64-Collections-DoubleLinkedList-Tests-Test.xml"a" 1 "b". "c" 2 "d"4(10.12345 round: 2) >>> 10.12,(Set newFrom: {1. 2. 3}) >>> #( 1 2 3) asSet15024250+('hello' sorted: [:a :b| a>=b]) >>> 'ollhe'Answer the y coordinate.1033125242aRepeatedly value aBlock with a single Array. Adjust the collection so that aBlock is presented all (self size raisedTo: anInteger) possible combinations of the receiver's elements taken as digits of an anInteger long number.012001723.14b "nothing" runningMin: aSubsetSize "Running min. See the comment of self >> #running:of: for more information." "(#(1 1 2 2 3 3) runningMin: 3) >>> {1 . 1 . 2 . 2}" ^ self running: [ :subset | subset min ] of: aSubsetSizeradiansToDegrees "The receiver is assumed to represent radians. Answer the conversion to degrees." "Float pi radiansToDegrees >>> 180.0" ^self asFloat radiansToDegrees$' isAlphaNumeric >>> false02404011isEmpty "Answer whether the receiver contains any elements." "{} isEmpty >>> true" "{{}} isEmpty >>> false" "'' isEmpty >>> true" "' ' isEmpty >>> false" "(1 to: 10) isEmpty >>> false" "(10 to: 1) isEmpty >>> true" ^self size = 0from: start to: stop do: aBlock "Evaluate aBlock for all elements between start and stop (inclusive)." "(Array streamContents: [:stream | #(10 20 30 40) from: 2 to: 3 do: [:each | stream nextPut: each]]) >>> #(20 30)" start to: stop do: [:index | aBlock value: (self at: index)]b(#(16 17 17 16 18 17 18 19 19 19 18 19 19 20 19 20 19 20 20 20 19 20) groupsOf: 7 atATimeCollect: [ :x | x ]) >>> #(#(16 17 17 16 18 17 18) #(19 19 19 18 19 19 20) #(19 20 19 20 20 20 19))A(#(#do #la #si #do #la) copyWithoutDuplicates) >>> #(#la #do #si) between: 102!'' expandMacros >>> String tab2.57asSortedCollection: aSortBlock "Answer a SortedCollection whose elements are the elements of the receiver. The sort order is defined by the argument, aSortBlock. Note that it is better to use #sorted if you don't really need a SortedCollection, but a sorted collection!!" "('bar' asSortedCollection: [:x :y| x>y ]) asArray >>> {$r. $b. $a}." | aSortedCollection | aSortedCollection := SortedCollection new: self size. aSortedCollection sortBlock: aSortBlock. aSortedCollection addAll: self. ^ aSortedCollectionAA1| 10010002244522008666677247ifTrue: trueAlternativeBlock ifFalse: falseAlternativeBlock "Answer the value of falseAlternativeBlock. Execution does not actually reach here because the expression is compiled in-line." "(false ifTrue: [ 'That is true!' ] ifFalse: [ 'That is false!' ]) >>> 'That is false!'" ^falseAlternativeBlock valueEMight be compiled inline for speed, see RBMessageNode>>#isInlineIfNil141000000000000007-SmallInteger maxVal decimalDigitLength >>> 192Convert me to a float point transforming both of my coordinates to floats using #asFloat. If x and y are already represented by floats return myself, otherwise create a new Point instance.052019Create a color with the given hue, saturation, and lightness. Hue is given as the angle in degrees of the color on the color circle where red is zero degrees. Saturation and lightness are numbers in [0.0..1.0] where larger values are more saturated or lighter colors. The difference with brightness in the HSV coordinates is that colors go from black at lightness 0, through vivid hues at lightness 0.5, to white at lightness 1. For example, (Color h: 0 s: 1 l: 0.5) is pure red.classSide "Return the metaclass of the couple class/metaclass. Useful to avoid explicit test." "Point classSide >>> Point class" "Point class classSide >>> Point class" ^ self subclassResponsibilityTInterpret the receiver pattern (<1p>, <1s>, ...) with argument passed in anArray.c20100021162iAnswer a copy of the receiver in which all occurrences of oldSubstring have been replaced by newSubstring6101#foo keywordsStrict >>> #()>({ 2@6 . -4@3 . 10@ -3 } detectMin: [ :p | p y ]) >>> (10@ -3)21.5100[ :super | super + 1 ]foo*7Tests-unix-64-DrTests-TestCoverage-Tests-Mocks-Test.xml670.3333s4pharo21216777215printOn: stream base: base length: minimumLength padded: padWithZeroes "Return a String representation of this number in base b with a minimum length and padded by 0 if zeroFlag is set" "(String streamContents: [ :s | 10 printOn: s base: 10 length: 4 padded: true] ) >>> '0010'" "(String streamContents: [ :s | -10 printOn: s base: 10 length: 4 padded: true] ) >>> '-010'" | n numberOfDigits totalLength divisor | self < 0 ifTrue: [ n := self negated. totalLength := 1 ] ifFalse: [ n := self. totalLength := 0 ]. numberOfDigits := n numberOfDigitsInBase: base. totalLength := totalLength + numberOfDigits. padWithZeroes ifFalse: [ [ totalLength < minimumLength ] whileTrue: [ stream space. totalLength := totalLength + 1 ] ]. n = self ifFalse: [ stream nextPut: $- ]. padWithZeroes ifTrue: [ [ totalLength < minimumLength ] whileTrue: [ stream nextPut: $0. totalLength := totalLength + 1 ] ]. divisor := (base raisedToInteger: numberOfDigits - 1). [ divisor > 0 ] whileTrue: [ | digit | digit := n // divisor. stream nextPut: ('0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ' at: digit + 1). n := n - (digit * divisor). divisor := divisor // base ]-Here 123should % be 6 the name6 of the method1E'foo' asOrderedCollection = #($o $o $f) asOrderedCollection >>> false0111 bytestring-overlappingPairsDo: aBlock "Emit overlapping pairs of my elements into aBlock" "(Array streamContents: [:stream | #(1 2 3 4) overlappingPairsDo: [:first :second| stream nextPut: (first + second)]]) >>> #(3 5 7)" 1 to: self size - 1 do: [:i | aBlock value: (self at: i) value: (self at: i + 1)]123365505>isExtension "I return true if a method is an extension method. Which means that the methods is not packaged in the package of the class containing the method, but in another package." "(self >> #selector) isExtension >>> false" "(self >> #traitSource) isExtension >>> true" ^ self hasProperty: #extensionPackage 2222133344443>asDictionary "Answers a Dictionary based on collection of Associations." "{'one' -> 1. 'two' ->2} asDictionary >>> (Dictionary with: 'one' -> 1 with: 'two' ->2)" "{'two' ->2. 'one' -> 1} asDictionary >>> (Dictionary with: 'one' -> 1 with: 'two' ->2)" "#() asDictionary >>> Dictionary new" ^ self as: Dictionary4312)Count the occurrences of each bytecode during the execution of aBlock. Return a Array of associations using the byte as key and the occurrences as values sorted by the instruction opcode numeric values. This method uses the in-image bytecode interpreter to evaluate and count the instructions.-akeywordsStrict "Returns the keywords of the provided selector. If the receiver is not keyword-based, an empty array is returned." "#foo: keywordsStrict >>> #('foo:')" "#foo:bar: keywordsStrict >>> #('foo:' 'bar:')" "#foo keywordsStrict >>> #()" "#+ keywordsStrict >>> #()" ^ self isKeyword ifTrue: [ self keywords ] ifFalse: [ #( ) ]1#+ asTestSelector >>> #testPlus0capacity "Answer the current capacity of the receiver." "OrderedCollection new capacity >>> 10" "(OrderedCollection new addAll: (1 to: 15); yourself) capacity >>> 20" ^ array size0vector020#(#(a b c d e) last: 3) >>> #(c d e)6Returns the instance of myself having aString as name.'hello''abcAnswer an Array whose elements are the elements of the receiver. Implementation note: Cannot use ''Array withAll: self'' as that only works for SequenceableCollections which support the replacement primitive.1202pppp AAAAA ^ aaaaa s na1: a1 a2: a2 a3: a3 a4: a4 a5: a5 a6: a6 a7: a7 a8: a8 a9: a9 a10: a10 a11: a11 a12: a12 a13: a13 a14: a14 a15: a15 a16: a16 ^ a103781-2002({1. $a. $a. 3} as: RunArray) values >>> #(1 $a 3)0over 9(#(xa xc xz xb xy) isSortedBy: #last ascending) >>> false71asByteArray "Answer a ByteArray whose elements are the elements of the receiver. Implementation note: Cannot use ''ByteArray withAll: self'' as that only works for SequenceableCollections which support the replacement primitive." "{1. 2} asByteArray >>> #[1 2]" "#[1 2] asByteArray == #[1 2] >>> true" "'foo' asByteArray >>> #[102 111 111]" "#() asByteArray >>> #[]" | array index | array := ByteArray new: self size. index := 0. self do: [:each | array at: (index := index + 1) put: each]. ^ array20U000022333443355336633773388339933AA33BB33CC33DDD33EEE33FFF33GGG33HHH33III33JJJ333LL333C(NSPerlinNoise2 new noise: 3.14 y: 42 z: 7) >>> 0.136919958784000121EidentityIncludes: anObject "Answer whether anObject is one of the receiver's elements." "({#hello. #world} identityIncludes: #hello) >>> true" "({'hel','lo'. 'world'} identityIncludes: 'hello') >>> false" "({'hel','lo'. 'world'} includes: 'hello') >>> true" self do: [:each | anObject == each ifTrue: [^true]]. ^falseaisNotEmpty "Answer whether the receiver contains any elements." "#() isNotEmpty >>> false" "#(()) isNotEmpty >>> true" "'' isNotEmpty >>> false" "' ' isNotEmpty >>> true" ^ self isEmpty not pharo-project(median "Return the middle element, or as close as we can get." "{1 . 2 . 3 . 4 . 5} asSortedCollection median >>> 3" | size middle | size := self size. middle := (size + 1) // 2. ^ size even ifTrue: [ ((self at: middle) + (self at: middle + 1)) / 2 ] ifFalse: [ self at: middle ]4112wReturn the object stored in the second dictionary at secondKey. The second dictionary is accessed via the key firstKey.-33-1981.0Abcd40013.#(10 20 30) / #(1 3 4.0) >>> {10. (20/3). 7.5}2 ab ab ac deheldwhoal[:a ::b]5dnEvaluate aBlock with each of the receiver's elements as the argument. Collect the resulting values into self.1swap: oneIndex with: anotherIndex "Move the element at oneIndex to anotherIndex, and vice-versa." "({#a. #b. #c. #d. #e} swap: 5 with: 1) >>> #(e b c d a)" | element | element := self at: oneIndex. self at: oneIndex put: (self at: anotherIndex). self at: anotherIndex put: element-16rA0000222dmiddle "Answer the middle element of the receiver." "#(a b c d e) middle >>> #c" "#(a b c d) middle >>> #c" ^ self at: self size // 2 + 1#( #( 0 1 r2 3 )132EMight be compiled inline for speed, see RBMessageNode>>#isInlineIfNil3230 hex >>> '16r1E' """"""""" 1asNewArray "Like asArray: but return a copy if self is already an Array. This ensures that the result is always a new Array" "'foo' asNewArray >>> 'foo' asArray" "|a| a := #(1 2 3). a asNewArray == a >>> false" ^ self asArray11141e30{1. 2} asByteArray >>> #[1 2]-0.980,foo "a" "b" "c" "d" "e" "f" "g" 22 cZ(String streamContents: [ :s | 10 printOn: s base: 10 length: 4 padded: true] ) >>> '0010'3227Evaluate aBlock with each of the receiver's elements as the argument. Answer the first element for which aBlock evaluates to true.abc051second022 #(1]2}3)stop "Return the stop element of an interval. Pay attention this is not necessary the same as the last element." "(1 to: 10 by: 2) last >>> 9" "(1 to: 10 by: 2) stop >>> 10" ^ stop*Answer the middle element of the receiver.1002 10000000041:Tests-unix-64-SystemCommands-MethodCommands-Tests-Test.xmlm(#(10 20 10 10) asOrderedCollection removeAllFoundIn: #(10 20 30); yourself) >>> #(10 10) asOrderedCollection5({10. 20} asSet add: 20; yourself) >>> {10. 20} asSet1test test 1abd10-4'he'llo'0Variable or expression expected257Answer a Point that is the sum of the receiver and arg.1\(#(1 2 3 3 4 1 2 3 3 5 6) splitOn: #(3 3)) >>> #(#(1 2) #(4 1 2) #(5 6)) asOrderedCollection422foo8(0@10 isInsideRectangle: (0@0 corner: 100@100)) >>> true>> #(10 12 13)FSupport collection enumeration with a counter, even though not ordered101d[ 33Tools1 2>{ 1. 2. 3 } asSet >>> (Set new add: 1; add:2; add:3; yourself)2Tests-unix-64-System-OSEnvironments-Tests-Test.xml25VNegation. Answer true if the receiver is false, answer false if the receiver is true. That is true!"Point class instanceSide >>> Point'abc' \ 'cbe' >>> 'a'.0vector02* arg "Pairwise product of two sequenceable collections of the same length." "#(0 1 2) * #(10 20 30) >>> #(0 20 60)" "{0@1. 2@3} * {10@20. 30@0} >>> {(0@20). (60@0)}" ^ arg adaptToCollection: self andSend: #* progress.log31+Tests-unix-64-NewTools-FontChooser-Test.xml 000011111011411 foo||bar||2016asaiAnswer the lower right corner of the rectangle uniquely defined by the receiver and the argument, aPoint.429AB105152 ** -1 >>> (1/2)5 factorial >>> 120 f, o and o0 one:1;two:2;2011Find the index of first character starting at start in aByteString that is included in the receiver. Default is to use a naive algorithm. Subclasses might want to implement a more efficient scheme. Return 0 if not found.2012 between: ( 1 and: 4)1111111110000000002222222222222?(#(a b c d e) indexOfSubCollection: #(c d) startingAt: 2) >>> 31130S(#(1 2 3 4) overlappingPairsCollect: [:first :second| first + second]) >>> #(3 5 7)2G(#( (2 -3) (4 -5) #(-6)) flatCollect: [ :e | e abs ]) >>> #(2 3 4 5 6)(100 @ -200) abs >>> (100@200)RReturns a string representation of the receiver as hexadecimal, prefixed with 16r.1.0(false eqv: true) >>> false#{ 2. 1+1 } asIdentitySet size >>> 12k(Array streamContents: [:stream | #(1 2 3) reverseDo: [:each | stream nextPut: each + 10]]) >>> #(13 12 11)!((100@200) < (330@100)) >>> false!('*baz*' match: 'mozo') >>> false10a6(Array streamContents: [:stream | #(1 2 3 1 6 1 2 3 4) piecesCutWhere: [ :a :b | a = 1 and: [ b = 2]] do: [:each | stream nextPut: each size]]) >>> #(1 5 3)batAll: indexArray "Answer a new collection like the receiver which contains all elements of the receiver at the indices of indexArray." "(#('one' 'two' 'three' 'four') atAll: #(3 2 4)) >>> #('three' 'two' 'four')" | newCollection | newCollection := self species ofSize: indexArray size. 1 to: indexArray size do: [:index | newCollection at: index put: (self at: (indexArray at: index))]. ^ newCollectione(100@200) ceiling >>> (100@200)12charlie16325510-1920name9zRound the decimal part of the receiver to be limited to the number of wished decimal. Only leave a fixed amount of decimal421521 [ :a :a | a ]Ternary operator: An if-else string can be written with . The N-th argument must be a Boolean. Yes-string cannot contain colon ':', as it terminates the yes-string. No-string cannot contain closing angle bracket '>', as it terminates the no-string.' ' isEmpty >>> false4-0102222200001111150vector0 ppp | TTT | ttt n . ^ ttt . b>([:x :y | x + y] valueWithPossibleArgs: #( 13 12 15)) >>> 25 (String streamContents: [:s | Character space split: 'Pharo is cool' indicesDo: [ :start :end | s << 's:' << start asString << ' ' << 'e:' << end asString << ' ' ]]) >>> 's:1 e:5 s:7 e:8 s:10 e:13 '^Xn1020WWWWW21PReturn true whether the receiver is a class (in a couple class/metaclass sense).1010foo ^ [ :a | [ :a | a ] value: 10 + a ] value: 1334ocbook-result|W01-Welcome203.15:314 foo1321284Tests-unix-64-Tool-DependencyAnalyser-Tests-Test.xml . :ee110-100vector011S#[31 139 8 0 0 0 0 0 0 0 99 100 98 6 0 29 128 188 85 3 0 0 0] unzipped >>> #[1 2 3]0(('hello' intersection: 'world') >>> 'ol'foo <> true & false >>> false3104false | false >>> false 11200300445That is false!1(false and: [true]) >>> false6aaeiou U(#(1 2 3) collect: [:each | each + 10 ] thenReject: [:each | each even]) >>> #(11 13)13z12(Color red asColorref) >>> 255-(#(10 20 30) includesAll: #(30 40)) >>> false21197e60000224455655597777855BBBCBBBEBBAAAAAAAAGGFFFH44333333118 fromString: aString "Return a color for HTML color spec: #FFCCAA or white/black passed as string." "(Color fromString: '#FFCCAA')>>> (Color r: 1.0 g: 0.8 b: 0.667 alpha: 1.0) " "(Color fromString: 'orange') >>> Color orange" | aColorHex | aString isEmptyOrNil ifTrue: [ ^ self white ]. aColorHex := aString first = $# ifTrue: [ aString allButFirst ] ifFalse: [ aString ]. "Try to match aColorHex with known named colors, case insensitive." ^ self registeredColorNames detect: [ :each | each sameAs: aColorHex ] ifFound: [ :namedColor | self named: namedColor ] ifNone: [ (aColorHex size = 6 and: [ aColorHex allSatisfy: [ :character | '0123456789ABCDEFabcdef' includes: character ] ]) ifTrue: [ self fromHexString: aColorHex ] ifFalse: [ self white ] ]0DAnswer a Set whose elements are the unique elements of the receiver._findFirstInByteString: aByteString startingAt: start "Find the index of first character starting at start in aByteString that is included in the receiver. Default is to use a naive algorithm. Subclasses might want to implement a more efficient scheme. Return 0 if not found." "('aeiou' findFirstInByteString: 'hello world' startingAt: 1) >>> 2." "('aeiou' findFirstInByteString: 'hello world' startingAt: 3) >>> 5." "('aeiou' findFirstInByteString: 'hello world' startingAt: 9) >>> 0." start to: aByteString size do: [:index | (self includes: (aByteString at: index)) ifTrue: [^ index]]. ^ 012520000112111533334116699AABAAAECCCCDDAAF99888888777G22storeStringBase: base "Returns a string representation of the receiver in base 16 in a way that executing it will return the receiver." "(10 storeStringBase: 16) >>> '16rA'" "(10 storeStringBase: 10) >>> '10'" ^ String streamContents: [:strm | self storeOn: strm base: base]3'Answer the last element of the receiver12, aCollection "Concatenate the receiver with the argument." "#(1 2 3) , #(4 5 6) >>> #(1 2 3 4 5 6)" ^self copy addAll: aCollection; yourself0(nil ifNil: [42] ifNotNil: [:o | o +3 ] ) >>> 42pharoThis implementation is recursive and very canonical. This implementation is intended for demo purposes, but for better performance another version 'factorial' is provided. That is true!1Answer the index of the first occurrence of anElement after start within the receiver. If the receiver does not contain anElement, answer the result of evaluating the argument, exceptionBlock.1%#[1 2] asByteArray == #[1 2] >>> true1b(String streamContents: [:s | 10 timesRepeat: [s nextPutAll: 'foo']] limitedTo: 9) >>> 'foofoofoo'-1Evaluate aBlock with each of the receiver's elements, in reverse order, along with the corresponding element, also in reverse order, from aSequencableCollection. 30(true xor: [true]) >>> false,Refer to the comment in Collection|collect:.20712SHIFT_L X \\ arg "Pairwise integer modulo of two sequenceable collections of the same length." "#(10 20 30) \\ #(1 3 4.0) >>> #(0 2 2.0)" "{10@20. 30@0} \\ {1@3. 4.0@1} >>> {(0@2). (2.0@0)}" ^ arg adaptToCollection: self andSend: #\\10307(#(a b c d e) indexOfAnyOf: #(x y c) ifAbsent: 7) >>> 3 0:B|| |b0410 foo < bar -42$(#[1 2 0 4] booleanAt: 3) >>> false.17200hello1& aBoolean "Evaluating conjunction -- answer false since receiver is false." "false & true >>> false" "false & false >>> false" ^self1e:200hex "Returns a string representation of the receiver as hex, prefixed with 16r. DO NOT CHANGE THIS! The Cog VMMaker depends on this." "Consider using any of printStringHex printStringBase: 16 printStringBase: 16 length: 8 padded: true storeStringHex storeStringBase: 16 storeStringBase: 16 length: 11 padded: true" "12 hex >>> '16rC'" "10 hex >>> '16rA'" "-10 hex >>> '-16rA'" ^ self storeStringBase: 16242'((100@200) closeTo: (100@200)) >>> true0gC('bar' asSortedCollection: [:x :y| x>y ]) asArray >>> {$r. $b. $a}.1 [ 1 }. 2 ]1 max: 2-10[ | 1overlappingPairsCollect: aBlock "Answer the result of evaluating aBlock with all of the overlapping pairs of my elements." "(#(1 2 3 4) overlappingPairsCollect: [:first :second| first + second]) >>> #(3 5 7)" | retval | retval := self species ofSize: self size - 1. 1 to: self size - 1 do: [:i | retval at: i put: (aBlock value: (self at: i) value: (self at: i + 1)) ]. ^retval20b0aa340replaceFrom: start to: stop with: replacement "This destructively replaces elements from start to stop in the receiver. Answer the receiver itself. Use copyReplaceFrom:to:with: for insertion/deletion which may alter the size of the result." "({#a. #b. #c. #d. #e} replaceFrom: 3 to: 4 with: #(x y)) >>> #(a b x y e)" replacement size = (stop - start + 1) ifFalse: [self error: 'Size of replacement doesnt match']. ^self replaceFrom: start to: stop with: replacement startingAt: 11'{1@2. 3@ -1} negated >>> {-1@ -2. -3@1}$(Color red asHexString) >>> 'FF0000'8 (#(a b c d e) indexOf: #x) >>> 01This method return the average of the collection if it is not empty. In the other case, it return the value of the block. It means the user the user of this method decide of the return value.-Optimized version of Collection>>#thenReject:600111024foo < bar ; baz. > 1111000111111000444444333500'Return whether the receiver is a digit.1000222020b16333345-(#(1 2 2 3 1 1 1) asBag includes: 1) >>> trueHasCommaString "Return collection printed as 'a, b, c' " "#('a' 'b' 'c') asCommaString >>> 'a, b, c'" "#('a') asCommaString >>> 'a'" "#() asCommaString >>> ''" "'foo' asCommaString >>> 'f, o, o'" "(10 to: 25 by: 5) asCommaString >>> '10, 15, 20, 25'" ^ String streamContents: [ :s | self asStringOn: s delimiter: ', ' ]23foo: a bar: a ^ a!"a" [ "b" 1 "c" . "d" 2 "e" ] "f"128#(#(a b c d) allButLast: 3) >>> #(a)110vector010-3.7'a := a. [ :a | | a a | . := a ]. a := a-#foo:bar: keywordsStrict >>> #('foo:' 'bar:')abc130 ; 6#'hello1('In \{1\} you can escape \{ by prefixing it with \\' format: {'strings'}) >>> 'In {1} you can escape { by prefixing it with \' 71031[Answer the fifth element of the receiver. Raise an error if there are not enough elements.0vector0*(#(a b c d) after: #b ifAbsent: #z) >>> #c5a*(#(1 2 3 4 5) reject: #even) >>> #(1 3 5) '>' expected -5136457240vector0QmonthIndex "(Date year: 2018 month: 9 day: 28) monthIndex >>> 9" ^ super month221asHexString "Return a string representing the receiver in HEX (i.e., 6 elements in 16 basis)" "(Color red asHexString) >>> 'FF0000'" | s | s := '000000' copy. s at: 1 put: (Character digitValue: ((rgb bitShift: -6 - RedShift) bitAnd: 15)). s at: 2 put: (Character digitValue: ((rgb bitShift: -2 - RedShift) bitAnd: 15)). s at: 3 put: (Character digitValue: ((rgb bitShift: -6 - GreenShift) bitAnd: 15)). s at: 4 put: (Character digitValue: ((rgb bitShift: -2 - GreenShift) bitAnd: 15)). s at: 5 put: (Character digitValue: ((rgb bitShift: -6 - BlueShift) bitAnd: 15)). s at: 6 put: (Character digitValue: ((rgb bitShift: -2 - BlueShift) bitAnd: 15)). ^ s67619153.0s*baz81020200.511.07 GB1s1s1 11111000013'#(10 20 30) // #(1 3 4.0) >>> #(10 6 7) average "Calculate the average of a collection, return a CollectionIsEmpty exception if the collection is empty. Look averageIfEmpty: aBlock" "#(2 6 7) average >>> 5 " "#(3 5 7 7) average >>> (11/2) " "{3@5. 7@ -4} average >>> (5@(1/2))" ^ self sum / self sizeasSortedCollection "Answer a SortedCollection whose elements are the elements of the receiver. The sort order is the default less than or equal. Note that you should use #sorted if you don't really need a SortedCollection, but a sorted collection." "'bar' asSortedCollection asArray >>> {$a. $b. $r}." "('bar' asSortedCollection add: $c; yourself) asArray >>> {$a. $b. $c. $r}." ^ self as: SortedCollection1 expandMacrosWithArguments: anArray "Interpret the receiver pattern (<1p>, <1s>, ...) with argument passed in anArray." " writes the N-th argument using #printString, but without trancating it." "('<1p>: <2p>' expandMacrosWith: 'Number' with: 5 with: nil) >>> '''Number'': 5'" " writes the N-th argument, which should be a String, or a collection of printable objects. Note also important distinction for single-quotes inside the argument; with

they will be doubled." "('<1s> vs <1p>' expandMacrosWith: 'it''em') >>> 'it''em vs ''it''''em'''" "Whitespace characters:" "'' expandMacros >>> String tab" "'' expandMacros >>> String cr" "'' expandMacros >>> OSPlatform current lineEnding" "'' expandMacros >>> String lf" "Writing '<' character: To write '<', prepend it with a percent sign." "'%' expandMacros >>> ''" "Ternary operator: An if-else string can be written with . The N-th argument must be a Boolean. Yes-string cannot contain colon ':', as it terminates the yes-string. No-string cannot contain closing angle bracket '>', as it terminates the no-string." "('<1?success:error>' expandMacrosWith: true) >>> 'success'" "('<1?success:is error>' expandMacrosWith: false) >>> 'is error'" | readStream char index | ^ self species new: self size streamContents: [ :newStream | readStream := self readStream. [ readStream atEnd ] whileFalse: [ char := readStream next. char == $< ifTrue: [ | nextChar | nextChar := readStream next asUppercase. nextChar == $R ifTrue: [ newStream cr ]. nextChar == $L ifTrue: [ newStream lf ]. nextChar == $T ifTrue: [ newStream tab ]. nextChar == $N ifTrue: [ newStream nextPutAll: OSPlatform current lineEnding ]. nextChar isDigit ifTrue: [ index := nextChar digitValue. [ readStream atEnd or: [ (nextChar := readStream next asUppercase) isDigit not ] ] whileFalse: [ index := index * 10 + nextChar digitValue ] ]. nextChar == $? ifTrue: [ | trueString falseString | trueString := readStream upTo: $:. falseString := readStream upTo: $>. readStream position: readStream position - 1. newStream nextPutAll: ((anArray at: index) ifTrue: [ trueString ] ifFalse: [ falseString ]) ]. nextChar == $P ifTrue: [ (anArray at: index) printOn: newStream ]. nextChar == $S ifTrue: [ newStream nextPutAll: (anArray at: index) ]. readStream skipTo: $> ] ifFalse: [ newStream nextPut: (char == $% ifTrue: [ readStream next ] ifFalse: [ char ]) ] ] ]yH(#(1 + 3 - 5) reduceRight: [ :a :op :b | a perform: op with: b ]) >>> -1Answer a SortedCollection whose elements are the elements of the receiver. The sort order is the default less than or equal. Note that you should use #sorted if you don't really need a SortedCollection, but a sorted collection..*0 aa bb cc dduonNextMonth "(Date year: 2018 month: 9 day: 28) onNextMonth printString >>> '28 October 2018'" ^ self addMonths: 11 9/28/2018 true := true00102000533334400667 322222256c3&(#(a b c d) at: 5 ifAbsent: #z) >>> #z4"[ :thisContext | thisContext + 1 ]206ppp ^ 0 :B | 1 | T | t nn. t 1 sssss s b 0 ssssss nfoo23baz"0 :B :B :B | | T t T | t s t s t 0f0.04028 September 201819291-(#(1 2 3) beginsWith: #(1 2 3 4 5)) >>> false22Ab cd ef Ab cd1y 10000000000.{ 'foo'. ('fo','o') } asIdentitySet size >>> 2 That is true!1.0hello17240.0131(#(10 20 30) collect: [:e | e+1]) >>> #(11 21 31)37aaU(true ifFalse: [ 'That is false!' ] ifTrue: [ 'That is true!' ]) >>> 'That is true!'.lastIndexOf: anElement "Answer the index of the last occurrence of anElement within the receiver. If the receiver does not contain anElement, answer 0." "(#(a b a d a) lastIndexOf: #a) >>> 5" "(#(a b a d e) lastIndexOf: #a) >>> 3" ^ self lastIndexOf: anElement startingAt: self size ifAbsent: [0]Networka11120-10D(STON fromString: '{ #foo : 1 , #bar : 2 }') class >>> STON mapClassa200HelloyfindFirst: aBlock "Return the index of my first element for which aBlock evaluates as true. If no matching element is found, return 0" "(#(1 5 10) findFirst: [ :each | each > 3 ]) >>> 2" "(#(1 5 10) findFirst: [ :each | each > 15 ]) >>> 0" | index | index := 0. [(index := index + 1) <= self size] whileTrue: [(aBlock value: (self at: index)) ifTrue: [^index]]. ^ 0two216rA$} isControlOther >>> false!#(a b c d e f g h i) sixth >>> #f151110000102203330455067088010000000000000021e1cfoo1nnnnnnnnexpandMacrosWith: anObject "('Pharo is <1s>' expandMacrosWith: 'cool') >>> 'Pharo is cool'" "('Pharo is <1p>' expandMacrosWith: 'cool') >>> 'Pharo is ''cool'''" ^self expandMacrosWithArguments: (Array with: anObject)0abV( #('string1' #('string2' 'string3')) flattened ) >>> #('string1' 'string2' 'string3') #( #( 0 1 2 )'Tests-unix-64-Monticello-Tests-Test.xml2ggggggggg sssssss '''''''''''''7(RPackage named: 'MockPackage') isTestPackage >>> false.0000001110334444555555555554446666666664444220p X2lowBit " Answer the index of the low order one bit. First we skip bits in groups of 8, then do a lookup in a table. While not optimal, this is a good tradeoff; long integer #lowBit always invokes us with bytes." "2r00101000 lowBit >>> 4" "2r-00101000 lowBit >>> 4" | n result lastByte | n := self. n = 0 ifTrue: [ ^ 0 ]. result := 0. [(lastByte := n bitAnd: 16rFF) = 0] whileTrue: [ result := result + 8. n := n bitShift: -8 ]. "The low bits table can be obtained with: ((1 to: 8) inject: #[1] into: [:lowBits :rank | (lowBits copy at: 1 put: lowBits first + 1; yourself) , lowBits]) allButFirst." ^result + ( #[1 2 1 3 1 2 1 4 1 2 1 3 1 2 1 5 1 2 1 3 1 2 1 4 1 2 1 3 1 2 1 6 1 2 1 3 1 2 1 4 1 2 1 3 1 2 1 5 1 2 1 3 1 2 1 4 1 2 1 3 1 2 1 7 1 2 1 3 1 2 1 4 1 2 1 3 1 2 1 5 1 2 1 3 1 2 1 4 1 2 1 3 1 2 1 6 1 2 1 3 1 2 1 4 1 2 1 3 1 2 1 5 1 2 1 3 1 2 1 4 1 2 1 3 1 2 1 8 1 2 1 3 1 2 1 4 1 2 1 3 1 2 1 5 1 2 1 3 1 2 1 4 1 2 1 3 1 2 1 6 1 2 1 3 1 2 1 4 1 2 1 3 1 2 1 5 1 2 1 3 1 2 1 4 1 2 1 3 1 2 1 7 1 2 1 3 1 2 1 4 1 2 1 3 1 2 1 5 1 2 1 3 1 2 1 4 1 2 1 3 1 2 1 6 1 2 1 3 1 2 1 4 1 2 1 3 1 2 1 5 1 2 1 3 1 2 1 4 1 2 1 3 1 2 1] at: lastByte)T(true ifTrue: [ 'That is true!' ] ifFalse: [ 'That is false!' ]) >>> 'That is true!'040oEnumerate all elements in the receiver. Execute aBlock for those elements that are not equal to the given itemf1-2.57rgbTriplet "Returns an array composed of the three color float components." "Color black rgbTriplet >>> #(0.0 0.0 0.0)" "Color red rgbTriplet >>> #(1.0 0.0 0.0)" ^ Array with: (self red roundTo: 0.01) with: (self green roundTo: 0.01) with: (self blue roundTo: 0.01)cM(#( (2 -3) #((4 -5)) #(-6)) flatCollect: [ :e | e abs ]) >>> #(2 3 #(4 5) 6)({1. 2} asBag = {1. 2. 3} asBag >>> false?('hello world!' anySatisfy: [ :each | each isLetter ]) >>> true0100093twodColor red hue >>> 0.0#() sumNumbers >>> 01false not >>> true:at: firstKey at: secondKey "Return the object stored in the second dictionary at secondKey. The second dictionary is accessed via the key firstKey." " (OrderedDictionary new at: #top at: #below1 put: 1; at: #top at: #below1 put: 2; at: #top at: #below1) >>> 2" ^ dictionary at: firstKey at: secondKeyindexOfAnyOf: aCollection ifAbsent: exceptionBlock "Answer the index of the first occurrence of any element included in aCollection within the receiver. If the receiver does not contain anElement, answer the result of evaluating the argument, exceptionBlock." "(#(a b c d e) indexOfAnyOf: #(x y c) ifAbsent: 7) >>> 3" "(#(a b c d e) indexOfAnyOf: #(x y z) ifAbsent: 7) >>> 7" ^self indexOfAnyOf: aCollection startingAt: 1 ifAbsent: exceptionBlock3&[ :x "a""b""c""d" :y "e""f" | "g""h" ]00002222222667665558(1 -> 'one') value >>> 'one'1 foobazort160Put anObject in all indexes between startIndex and endIndex. Very fast. Faster than to:do: for more than 26 positions. Answer anObjectcharlie is number 2Warning signal: 'false error'1Special case for fraction power@({10. 20} asOrderedCollection add: 30 withOccurrences: 2) >>> 300string2)('abab ac de' howManyMatch: 'abab') >>> 4227{10@20. 30@0} / {1@3. 4.0@1} >>> {(10@(20/3)). (7.5@0)}020eroundDownTo: aNumber "Answer the next multiple of aNumber toward negative infinity that is nearest the receiver. Examples:" "(3.1479 roundDownTo: 0.01) >>> 3.14" "(3.1479 roundDownTo: 0.1) >>> 3.1" "(1923 roundDownTo: 10) >>> 1920" "(3.1479 roundDownTo: 0.005) >>> 3.145" "(-3.1479 roundDownTo: 0.01) >>> -3.15" ^(self / aNumber) floor * aNumber9u u. X X X. X Xg'Here 123should % be 6 the name6 of the method' asCamelCase >>> 'Here123should%Be6TheName6OfTheMethod'23100251539:. :. :a-12551010023 September 2018world 00010203000bcfoo: arg bar: arr ^ arg + arreAnswer the next multiple of aNumber toward negative infinity that is nearest the receiver. Examples:0:00:00:01.0014(#(a b z k) difference: #(a b c d e f)) >>> #(#z #k)Search for an element in the receiver using binary search. The argument aBlock is a one-element block returning 0 - if the element is the one searched for <0 - if the search should continue in the first half >0 - if the search should continue in the second half If found, evaluate actionBlock with the found element as argument If no matching element is found, evaluate exceptionBlock, with the 'bounding' elements or nil as arguments.-Tests-unix-64-System-Benchmark-Tests-Test.xml11233 factorial >>> 628 October 2018' That is true!'Hello!nnnnXnn0vector01 4 + 3 >>> 70115d010 That is true!10000010000200003055555555555556676869666CBBBDAAAEtwoz0 )initialIntegerOrNil "Answer the integer represented by the leading digits of the receiver, or nil if the receiver does not begin with a digit" "'234Whoopie' initialIntegerOrNil >>> 234" "'wimpy' initialIntegerOrNil >>> nil" "'234' initialIntegerOrNil >>> 234" "'2N' initialIntegerOrNil >>> 2" "'2' initialIntegerOrNil >>> 2" "' 89Ten ' initialIntegerOrNil >>> nil" "'78 92' initialIntegerOrNil >>> 78" "'3.1415' initialIntegerOrNil >>> 3" | firstNonDigit | (self size = 0 or: [ self first isDigit not ]) ifTrue: [ ^ nil ]. firstNonDigit := (self findFirst: [ :m | m isDigit not ]). firstNonDigit = 0 ifTrue: [ firstNonDigit := self size + 1 ]. ^ (self copyFrom: 1 to: (firstNonDigit - 1)) asNumber;({ 2@6 . -4@3 . 10@ -3 } detectMax: [ :p | p y ]) >>> (2@6);atPin: index "Return the index'th element of me if possible. Return the first or last element if index is out of bounds." "(#(w x y z) atPin: 2) >>> #x" "(#(w x y z) atPin: 4) >>> #z" "(#(w x y z) atPin: 8) >>> #z" index < 1 ifTrue: [^ self first]. index > self size ifTrue: [^ self last]. ^ self at: index1W(false ifTrue: [ 'That is true!' ] ifFalse: [ 'That is false!' ]) >>> 'That is false!'true | true >>> true100a := a. [ :a [ :a. a := a(Tests-unix-64-ClassParser-Tests-Test.xmladd: newObject "Add a new object at the end of the collection, and returns the object itself" "((OrderedCollection new add: 42; yourself) add: 43; yourself) asArray >>> #(42 43)" "Add returns the object itself" "(OrderedCollection new add: 42) >>> 42" "You may want to use yourself to return the collection itself" "(OrderedCollection new add: 42; yourself) class >>> OrderedCollection" "(OrderedCollection new add: 42; yourself) size >>> 1" ^self addLast: newObject,'th is is2 9 a stRI4' squeezeOutNumber >>> 2d1(#(1 'fred' 2 'charlie' 3 'elmer') pairsCollect: [:a :b | b, ' is number ', a printString]) >>> #('fred is number 1' 'charlie is number 2' 'elmer is number 3') ppp < <<<<<0n sssss n0Xsssed452compare: string1 with: string2 collated: order "'abc' = 'abc' asWideString >>> true" "'abc' asWideString = 'abc' >>> true" "(ByteArray with: 97 with: 0 with: 0 with: 0) asString ~= 'a000' asWideString >>> true" "('abc' sameAs: 'aBc' asWideString) >>> true" "('aBc' asWideString sameAs: 'abc') >>> true" "('a000' asWideString ~= (ByteArray with: 97 with: 0 with: 0 with: 0) asString) >>> true" "((ByteArray with: 97 with: 0 with: 0 with: 0) asString sameAs: 'Abcd' asWideString) >>> false" "('a000' asWideString sameAs: (ByteArray with: 97 with: 0 with: 0 with: 0) asString) >>> false" (string1 isByteString and: [ string2 isByteString ]) ifTrue: [ ^ string1 compareWith: string2 collated: order ]. "Primitive does not fail properly right now" ^ String compare: string1 with: string2 collated: order3-4710abc#('' ifEmpty: ['(nil)']) >>> '(nil)'31133411005006671((#(x y z) atLast: 1 ifAbsent: #a) >>> #z20100foo1 test test c1oneifTrue: alternativeBlock "If the receiver is false (i.e., the condition is false), then the value is the false alternative, which is nil. Otherwise answer the result of evaluating the argument, alternativeBlock. Create an error notification if the receiver is nonBoolean. Execution does not actually reach here because the expression is compiled in-line." "(true ifTrue: [ 'This statement is true!' ]) >>> 'This statement is true!'" "(false ifTrue: [ 'This statement is true!' ]) >>> nil" self subclassResponsibility0In {1} you can escape \{ by prefixing it with \\1151helYCreate a dictionary from the keys and values arguments which should have the same length.30vector0lfromCharacter: aCharacter "For backwards compatibility mainly. Return the key that should correspond to some character. Handle normal ascii characters and special control keys only (enter, tab space...)" "(KeyboardKey fromCharacter: $a) >>> KeyboardKey A" ^ self keyFromCharacterTable at: aCharacter ifAbsent: [ self named: aCharacter asString asUppercase ] 0:00:00:01XXXXXXX### XXn XX nnXpdetectMax: aBlock "Evaluate aBlock with each of the receiver's elements as the argument. Answer the element for which aBlock evaluates to the highest magnitude. If collection empty, return nil. This method might also be called elect:." "({ 2@6 . -4@3 . 10@ -3 } detectMax: [ :p | p x ]) >>> (10@ -3)" "({ 2@6 . -4@3 . 10@ -3 } detectMax: [ :p | p y ]) >>> (2@6)" "((10 to: 20) detectMax: [ :p | p gcd: 6 ]) >>> 12" "('Hello' detectMax: #asciiValue) >>> $o" | maxElement maxValue | self do: [:each | | val | maxValue == nil ifFalse: [ (val := aBlock value: each) > maxValue ifTrue: [ maxElement := each. maxValue := val]] ifTrue: ["first element" maxElement := each. maxValue := aBlock value: each]. "Note that there is no way to get the first element that works for all kinds of Collections. Must test every one."]. ^ maxElement1a130DAnswer with a collection of elements with counts, sorted by element.23)Color black rgbTriplet >>> #(0.0 0.0 0.0)10"a" #( "b" 1 "c" two "d" ( "e" 3 "f" ) "g" ) "h";#(3.1479 roundDownTo: 0.01) >>> 3.14400asOrderedDictionary "Answers a Dictionary based on collection of Associations." "{'one' -> 1. 'two' ->2} asOrderedDictionary keys first >>> 'one'" ^ self as: OrderedDictionary1' ' isNotEmpty >>> true2pharo1113b?Note: Feel free to improve the code to detect the last element.10vector0 hello worldNonevaluating conjunction. If the receiver is true, answer the value of the argument, alternativeBlock; otherwise answer false without evaluating the argument.s:1 e:5 s:7 e:8 s:10 e:13 6:x "Answer the x coordinate." "(100@200) x >>> 100" ^ x0.0e:22331def13oReturns a string representation of the receiver in base 16 in a way that executing it will return the receiver.3replace: aBlock "Evaluate aBlock with each of the receiver's elements as the argument. Collect the resulting values into self." "({1. 2. 3. 4} replace: [:each | each + 1 ]) >>> #(2 3 4 5)" 1 to: self size do: [ :index | self at: index put: (aBlock value: (self at: index)) ]d1F(#(1 2 3 4) collect: [:each | each + 10] from: 2 to: 3) >>> #(12 13) 1 'abc' <= 'abc' >>> true1!DDD 00EEE0548884449994A0CCC00 FFFb3.0c2('Hello' detect: #isLowercase ifNone: [$X]) >>> $e1831201100 (true ifFalse: [ true ]) >>> nil0:00:00:00.0000000021160xz1#name: asMutator >>> #name:430;(#(1 2) detect: #even ifFound: #negated ifNone: [0]) >>> -2-6SReturns whether the receiver is a separator i.e., a space, tab, lf, cr, and newPaged0123456789ABCDEFabcdefaeEvaluate the elementBlock for all elements in the receiver, and evaluate the separatorBlock between.5"('action' alike: 'caption') >>> 5.1false not >>> true505Answer a SortedCollection whose elements are the elements of the receiver. The sort order is defined by the argument, aSortBlock. Note that it is better to use #sorted if you don't really need a SortedCollection, but a sorted collection!!011Point instanceSide >>> Point| aBoolean "Evaluating disjunction (OR) -- answer true since the receiver is true." "true | true >>> true" "true | false >>> true" ^self.(#(1 2 2 3 1 1 1) asBag includes: 5) >>> false20100-0.98210000011110004444333500 Answer 1 since receiver is true.0-11 + 2 }(({#x .#y. #z} atAllPut: #a) >>> #(a a a)identityIndexOf: anElement "Answer the index of anElement within the receiver. If the receiver does not contain anElement, answer 0." "(#(a b c d e) identityIndexOf: #c) >>> 3" "(#(a b c d e) identityIndexOf: #x) >>> 0" ^self identityIndexOf: anElement ifAbsent: [0]9C('aeiou' findFirstInByteString: 'hello world' startingAt: 1) >>> 2. foo: bar: 0.005(Evaluate the block with the first two (or more) elements of the receiver, then with the result of the first evaluation and the next element, and so on. Answer the result of the final evaluation. If the receiver is empty, raise an error. If the receiver has a single element, answer that element.39(50@50 isInsideRectangle: (0@0 corner: 100@100)) >>> true8(-234.567 printShowingDecimalPlaces: 5) >>> '-234.56700' this string will be trimmed 50Xnot "Negation--answer false since the receiver is true." "true not >>> false" ^false110&(#(a b c d) allButFirst: 2) >>> #(c d)22Same as ifTrue:ifFalse:.oEnumerate all elements in the receiver. Execute aBlock for those elements that are not equal to the given itemyabceEvaluate the elementBlock for all elements in the receiver, and evaluate the separatorBlock between.;Message sending and code execution - Runtime and Evaluation12Answer with the value of trueAlternativeBlock. Execution does not actually reach here because the expression is compiled in-line.2(Color colorFrom: #(0.0 0.0 1.0)) >>> (Color blue)({1. 2} asSet = {1. 2. 3} asSet >>> falseatLast: indexFromEnd put: obj "Set the element at indexFromEnd from the last position. atLast: 1 put: obj, sets the last element" "({#x .#y .#z} atLast: 2 put: #e; yourself) >>> #(x e z)" ^ self at: self size + 1 - indexFromEnd put: obj37x#() asCommaString >>> ''0.03 'def' >= 'abc' >>> true4031((200@200 scaleTo: 400@400) >>> (2.0@2.0)0DDD 000EEE090FFF0AAA0GGG0BBBBBBCBBBBBB0JJJ00 KKK020[booleanAt: byteIndex "Returns the boolean the byte at index byteOffset of this ByteArray represents in the C convention ( A byte representing the 0 integer corresponds to false, while all other integers corresponds to true)." "(#[1 2 0 4] booleanAt: 2) >>> true." "(#[1 2 0 4] booleanAt: 3) >>> false." ^ self boolean8AtOffset: byteIndex - 1c(Character space isControlOther >>> falsemobazo(('salkjsdlkgfee' findString: 'al') >>> 2010|Try to find a number somewhere in this string, as explained in Number>readFrom: this method returns the first number found-('pharo' endsWith: 'project-pharo') >>> false!('abc' repeat: 3) >>> 'abcabcabc'22Return a new interval representing the open version of the receiver. In other words, the new inteval does not contain the upper and lower boundaries of the receiver (true and: [true]) >>> truex6SNote: By convention, brightness is abbreviated 'v' to to avoid confusion with blue.20|| u frd th barR(#(10 20 30) adaptToCollection: #(0 1 2) andSend: #@) >>> {(0@10). (1@20). (2@30)}\Answer the fourth element of the receiver. Raise an error if there are not enough elements.Not valid for negative integersabc22134super := superxz54$$ isCurrencySymbol >>> true42Include all the elements of aCollection as the receiver's elements. Answer aCollection. Actually, any object responding to #do: can be used as argument.[:a :]1...ppp < <<<<16100h-0.5Answer a representative sample of the receiver. It raises an error when the collection is empty. This method can be helpful when needing to preinfer the nature of the contents of semi-homogeneous collections.pReturn a String representation of this number in base b with a minimum length and padded by 0 if zeroFlag is setCAnswer whether all the elements of aCollection are in the receiver.12ppp | T | t n. ^ 0 | T | t nn. t 0 sssss s td-4[ ^ 1 ]%OrderedCollection new capacity >>> 1051303$mergeSortFrom: startIndex to: stopIndex by: aBlock "Sort the given range of indices using the mergesort algorithm. Mergesort is a worst-case O(N log N) sorting algorithm that usually does only half as many comparisons as heapsort or quicksort." "Details: recursively split the range to be sorted into two halves, mergesort each half, then merge the two halves together. An extra copy of the data is used as temporary storage and successive merge phases copy data back and forth between the receiver and this copy. The recursion is set up so that the final merge is performed into the receiver, resulting in the receiver being completely sorted." "({#a. #b. #z. #d. #i. #l} mergeSortFrom: 3 to: 5 by: [ :a :b | a<=b ]) >>> #(a b d i z l)" self size <= 1 ifTrue: [^ self]. "nothing to do" startIndex = stopIndex ifTrue: [^ self]. [startIndex >= 1 and: [startIndex < stopIndex]] assert. "bad start index" [stopIndex <= self size] assert. "bad stop index" self mergeSortFrom: startIndex to: stopIndex src: self copy dst: self by: aBlock201100true & false >>> false00000111110335555544461050E({10. 20} collect: [:x|x+1] into: {'a'. 'b'. 'c'}) >>> {11. 21. 'c'.}255But use sum or sum: instead!$sideOf: otherPoint "Returns #left, #right or #center if the otherPoint lies to the left, right or on the line given by the vector from 0@0 to self" "((0@0) sideOf: (100@100)) >>> #center" | side | side := (self crossProduct: otherPoint) sign. ^ { #right . #center . #left } at: side + 2detectIndex: aBlock ifNone: exceptionBlock "Return index of first element that satisfies aBlock. If no matching element is found, evaluate exceptionBlock." "(#(1 5 10) detectIndex: [ :each | each > 3 ] ifNone: ['Not found']) >>> 2" "(#(1 5 10) detectIndex: [ :each | each > 15 ] ifNone: ['Not found']) >>> 'Not found'" self doWithIndex: [:each :index | (aBlock value: each) ifTrue: [^ index]]. ^ exceptionBlock valueastring1a30Return whether the receiver is one of these characters: backspace, delete, escape, arrowUp, arrowLeft, arrowDown, arrowRight, pageUp, pageDown, end, home, nbsp, insert3001023 100000000.030last "Answer the last element of the receiver. Pay attention, last is not equivalent to stop in certain situations. See below." "(1 to: 10 by: 2) last >>> 9" "(0 to: 10 by: 2) last >>> 10" ^stop - (stop - start \\ step)This statement is true!pharo02! A shortcut method for raisedTo: '' isEmpty >>> true330System32asInteger "Return the integer present in the receiver, or nil. In case of float, returns the integer part." "'1' asInteger >>> 1" "'-1' asInteger >>> -1" "'10' asInteger >>> 10" "'a' asInteger >>> nil" "'1.234' asInteger >>> 1" ^self asSignedIntegerbr(#(1 1 1 10 10 10 100 100 100) groupsOf: 3 atATimeCollect: [ :x | x ]) >>> #(#(1 1 1) #(10 10 10) #(100 100 100))0ay4*0222FFF9999AAAAAAABBBBBBBBCCCCCCDAAAEA9220113=If the receiver is not nil, pass it as argument to the block.420fear is-34reverseWithIndexDo: elementAndIndexBlock "Just like reverseWith:do: except that the iteration index supplies the second argument to the block." "(Array streamContents: [:stream | #(10 20 30) reverseWithIndexDo: [:each :index | stream nextPut: each + index]]) >>> #(33 22 11)" self size to: 1 by: -1 do: [:index | elementAndIndexBlock value: (self at: index) value: index]'Refer to the comment in Collection|do:.0000222222266655541001000000000000000530>($/ split: '/foo/bar')>>>#('' 'foo' 'bar') asOrderedCollection| super | super := 1. ^ superfo13222018pReturn a String representation of this number in base b with a minimum length and padded by 0 if zeroFlag is set0, '' ''h'' ' withoutQuoting >>> ' ''h'' '4C('aeiou' findFirstInByteString: 'hello world' startingAt: 9) >>> 0.4 16r8000000030aa110#foo:: asMutator >>> #'foo::'hello4820188one111 ( 1 ]. 2 )50(1 to: 10 by: 2) last >>> 9word2231002h^ @332.0isOctetString "Answer whether the receiver can be represented as a byte string. This is different from asking whether the receiver *is* a ByteString (i.e., #isByteString)" "'abc' isOctetString >>> true" ^ truea"('pharo' endsWith: 'aro') >>> true1do: elementBlock separatedBy: separatorBlock "Evaluate the elementBlock for all elements in the receiver, and evaluate the separatorBlock between." "(Array streamContents: ([:stream | #(1 2 3) do: [:each | stream nextPut: (each + 10)] separatedBy: [ stream nextPut: 0 ]])) >>> #(11 0 12 0 13)" 1 to: self size do: [:index | index = 1 ifFalse: [separatorBlock value]. elementBlock value: (self at: index)]pReturn true if all my elements are close to the elements of same index of the parameter with a certain precision332(#(11 22 33) asOrderedCollection atWrap: 2) >>> 2223.570vector0 zipped "Return a ByteArray containing a GZIP compressed version of the receiver" "#[ 1 2 3 ] zipped >>> #[31 139 8 0 0 0 0 0 0 0 99 100 98 6 0 29 128 188 85 3 0 0 0]" ^ ByteArray streamContents: [ :out | (GZipWriteStream on: out) nextPutAll: self; close ]3abcAnswer a dictionary whose keys are the result of evaluating aBlock for all my elements, and the value for each key is the selection of my elements that evaluated to that key. Uses species.811a1a1110g(STON toJsonString: { { #foo->1 } asDictionary. { #bar->2 } asDictionary }) >>> '[{"foo":1},{"bar":2}]'40$'foo' asByteArray >>> #[102 111 111]5011+001"""1"""#"""#"""#"""#"""#"""#"""#"""#"""0101Invalid input/output !X X X Xp(#(65 66 67) flatCollect: [:each | { each asCharacter. each asCharacter asLowercase } ] as: String) >>> 'AaBbCc'reverseWith: aSequenceableCollection do: aBlock "Evaluate aBlock with each of the receiver's elements, in reverse order, along with the corresponding element, also in reverse order, from aSequencableCollection. " "(Array streamContents: [:stream | #(1 2 3) reverseWith: #(4 5 6) do: [:a :b | stream nextPut: (a + b)]]) >>> #(9 7 5)" self size ~= aSequenceableCollection size ifTrue: [^ self errorSizeMismatch]. self size to: 1 by: -1 do: [:index | aBlock value: (self at: index) value: (aSequenceableCollection at: index)]130d Point[1,2]~Answer the value of falseAlternativeBlock. Execution does not actually reach here because the expression is compiled in-line.)((4 to: 9) anySatisfy: #isPrime) >>> true2d#( ( 0 1 2 ) )2addAll: aCollection "Include all the elements of aCollection as the receiver's elements. Answer aCollection. Actually, any object responding to #do: can be used as argument." "({10. 20} asOrderedCollection addAll: {20. 30. 30. 40.}) >>> {20. 30. 30. 40.}" "({10. 20} asOrderedCollection addAll: {20. 30. 30. 40.}; yourself) >>> {10. 20. 20. 30. 30. 40.} asOrderedCollection" "({10. 20} asSet addAll: {20. 30. 30. 40.}; yourself) >>> {10. 20. 30. 40.} asSet" aCollection do: [ :each | self add: each ]. ^ aCollection3c34xa1-4111<{10@20. (1/2)@0.5} reciprocal >>> {((1/10)@(1/20)). (2@2.0)}11033Evaluate aBlock with each of the receiver's elements as the argument. If some element evaluates aBlock to true, then cull this element into foundBlock. If no element matches the criteria then do nothing. Always returns self to avoid misuse and a potential isNil check on the sender.0p(Array streamContents: ([:stream | #(1 2 3) do: [:each | stream nextPut: (each + 10)] without: 2])) >>> #(11 13)qselectEveryFirst "#(1 2 3 4) selectEveryFirst asArray >>> #(1 3) " ^ self selectEvery: [ :i | (i+1 \\ 2) = 0 ]EPairwise quotient of two sequenceable collections of the same length.*Return the minimum value of the collectioncolorFrom: parm "Return an instantiated color from parm. If parm is already a color, return it, else return the result of my performing it if it's a symbol or, if it is a list, it can either be an array of three numbers, which will be interpreted as RGB values, or a list of symbols, the first of which is sent to me and then the others of which are in turn sent to the prior result, thus allowing entries of the form #(blue darker). Else just return the thing" "(Color colorFrom: #(blue darker)) >>> (Color r: 0.0 g: 0.0 b: 0.9198435972629521 alpha: 1.0) " "(Color colorFrom: Color blue darker)>>> ((Color r: 0.0 g: 0.0 b: 0.9198435972629521 alpha: 1.0))" "(Color colorFrom: #blue)>>> (Color blue)" "(Color colorFrom: #(0.0 0.0 1.0)) >>> (Color blue)" | aColor firstParm | (parm isKindOf: self) ifTrue: [ ^ parm ]. parm isSymbol ifTrue: [ ^ self perform: parm ]. parm isString ifTrue: [ ^ self fromString: parm ]. ((parm isKindOf: SequenceableCollection) and: [ parm isNotEmpty ]) ifTrue: [ firstParm := parm first. (firstParm isKindOf: Number) ifTrue: [ ^ self fromRgbTriplet: parm ]. aColor := self colorFrom: firstParm. parm doWithIndex: [ :sym :ind | ind > 1 ifTrue: [ aColor := aColor perform: sym ] ]. ^ aColor ]. ^ parm10-3 even >>> falsea$a isClosePunctuation >>> false32', otherCollection "Concatenate two Strings or Collections." "#(2 4 6 8) , #(who do we appreciate) >>> #(2 4 6 8 who do we appreciate)" "((2989 storeStringBase: 16) copyFrom: 4 to: 6) , ' boy!' >>> 'BAD boy!'" ^ self copyReplaceFrom: self size + 1 to: self size with: otherCollection130[ :a | The factorial on n is defined as: n * (n-1)*(n-2)*... while n>0. Factorial of 0 is 1. We also know Factorial of 1 and 2 are themselves. This implementation uses a 2-partition algorithm. For a recursive (but slower) implementation see 'slowFactorial' Without verbose detail: If'm an even number,some optimization can be applied: Instead of doing all multiplication we can halving the number of multiplication regrouping terms, so: n*(n-1)*(n-2)*....*3*2*1 can be rearranged as: (n*1)*((n-1)*2)*((n-2)*3)*... And the use the fact n is even to rewrite in a more efficient way. If I'm an odd number then compute for n-1 and multily by n. 100320xp(Array streamContents: [:stream | #(10 20 30 40) from: 2 to: 3 do: [:each | stream nextPut: each]]) >>> #(20 30)11 1 sign; ; bar0CAnswer the name of the day of the week on which the receiver falls.removeAllSuchThat: aBlock "Evaluate aBlock for each element and remove all that elements from the receiver for that aBlock evaluates to true. Use a copy to enumerate collections whose order changes when an element is removed (i.e. Sets)." "(#(5 6 7 8) asOrderedCollection removeAllSuchThat: #even) >>> #(5 7) asOrderedCollection" self copy do: [:each | (aBlock value: each) ifTrue: [self remove: each]]103313040-1+Convert an OrderedCollection into an Array.(#(11 22 33) atWrap: 2) >>> 22(#(11 22 33) atWrap: 3) >>> 33-Tests-unix-64-VariablesLibrary-Tests-Test.xml 3 odd >>> true`pathString "Return a string containing the path elements of the receiver, without the 'Path *' part" "((FileSystem workingDirectory / 'book-result' / 'W01-Welcome') relativeToReference: FileSystem workingDirectory) pathString >>> 'book-result/W01-Welcome'" ^String streamContents: [ :stream | self printPathOn: stream delimiter: self delimiter ]3.14~(OrderedDictionary newFromKeys: #(#x #y) andValues: #(3 6)) >>> (OrderedDictionary new at: #x put: 3; at: #y put: 6 ;yourself) 2018-09-270532({3@5. 7@ -4} averageIfEmpty: [0@0]) >>> (5@(1/2))114asBag "Answer a Bag whose elements are the elements of the receiver." "{1. 2} asBag = {2. 1} asBag >>> true" "{1. 2} asBag = {1. 2. 2} asBag >>> false" "{1. 2} asBag = {1. 2. 3} asBag >>> false" "#() asBag = Bag new >>> true" ^ Bag withAll: self@(1000 * 1000 * 1000) humanReadableByteSizeString >>> '953.67 MB'672214-2.35619449019234520I({#a. #b. #c. #d. #e} replaceFrom: 3 to: 4 with: #(x y)) >>> #(a b x y e)1.23102001+ arg "Pairwise sum of two sequenceable collections of the same length." "#(0 1 2) + #(10 20 30) >>> #(10 21 32)" "{0@1. 2@3} + {10@20. 30@0} >>> {(10@21). (32@3)}" ^ arg adaptToCollection: self andSend: #+ Hello, World!charlie(String streamContents: [:s | '||' split: 'foo||bar||2' indicesDo: [ :start :end | s << 's:' << start asString << ' ' << 'e:' << end asString << ' ' ]]) >>> 's:1 e:3 s:6 e:8 s:11 e:11 '11422031 (10.156s round: 2) >>> 10.160s3 3 00010220300nil isEmptyOrNil >>> true{ #foo : 1 , #bar : 2 }2r100022##MockPackage-Tests-Packagetwo 953.67 MB2a || 33+ arg "Answer a Point that is the sum of the receiver and arg." "((2@2) + (100@200)) >>> (102@202)" "((2@2) + 200) >>> (202@202)" arg isPoint ifTrue: [^ (x + arg x) @ (y + arg y)]. ^ arg adaptToPoint: self andSend: #+S(#(1 + 3 - 5) reduceRight: [ :a :op :b | a perform: op with: b ]) >>> (1 + (3 - 5)),ppp | T | t n. ^ 0 :B | b 0 ssssss nn s t -9 \\ 4 >>> 30 X X X0.0 Pharo is <1p>Answer a representative sample of the receiver. It raises an error when the collection is empty. This method can be helpful when needing to preinfer the nature of the contents of semi-homogeneous collections.31 -234.56700G(#('abc' 'de' 'fghi') sorted: #size ascending) >>> #('de' 'abc' 'fghi')5nnn.n0J(true ifTrue: [ 'This statement is true!' ]) >>> 'This statement is true!' 222222222 55Optimized version of Collection>>#select:thenCollect:23Class structural inspection - Class/Metaclass shift8(Color r: 0.5 g: 0.5 b: 1) green >>> 0.5004887585532747\Format the receiver by interpolating elements from collection, as in the following examples:%Answer the factorial of the receiver.1abc2afoo3zortthenfoo3zort2111Perform an action specified as aBlock (with a start and end argument) to each of the indices of aSequenceableCollection that have been identified by taking the receiver as a splitter.20016rC11110.(#(40 41 42) asOrderedCollection at: 2) >>> 41false & true >>> false%Tests-unix-64-Graphics-Tests-Test.xmlPerform an action specified as aBlock to each of the elements of the receiver that have been split using the splitter argument. splitter - can be a subsequence, a Block or a Regex (String receiver only). Any other object used as a splitter is treated as an Array containing that object.(Array streamContents: [:stream | (1 to: 3) permutationsDo: [:each | stream nextPut: each copy]]) >>> #(#(1 2 3) #(1 3 2) #(2 1 3) #(2 3 1) #(3 2 1) #(3 1 2))1012fghi830nXn012344,(#(1 2 3 4 5) beginsWith: #(1 2 3)) >>> true0!sumNumbers: aBlock "This is implemented using a variant of the normal inject:into: pattern that is specific to handling numbers. aBlock is expected to return a number for every element in the collection. Different from the sum: implementation, the default value is zero. While sum: is more general, sumNumbers: is meant to support the most often encountered use case of dealing with numbers." "(#(1 -2 4) sumNumbers: #abs) >>> 7" "(#() sumNumbers: #abs) >>> 0" ^ self inject: 0 into: [ :sum :each | sum + (aBlock value: each) ]0vector073111120044444666666A8888911(-2.567 printShowingDecimalPlaces: 2) >>> '-2.57'&noise: xin y: yin z: zin "(NSPerlinNoise2 new noise: 3.14 y: 42 z: 7) >>> 0.13691995878400012" | x0 y0 z0 x y z u v w a aa ab b ba bb | x0 := xin floor & 255. y0 := yin floor & 255. z0 := zin floor & 255. x := xin - xin floor. y := yin - yin floor. z := zin - zin floor. u := self fade: x. v := self fade: y. w := self fade: z. a := (p at: x0)+y0. aa := (p at: a)+z0. ab := (p at: a+1)+z0. b := (p at: x0+1)+y0. ba := (p at: b) + z0. bb := (p at: b+1) + z0. "result will cover the range [-1,1]" ^ self lerp: w a: (self lerp: v a: (self lerp: u a: (self grad: (p at: aa) x: x y: y z: z) b: (self grad: (p at: ba) x: x-1 y: y z: z) ) b: (self lerp: u a: (self grad: (p at: ab) x: x y: y-1 z: z) b: (self grad: (p at: bb) x: x-1 y: y-1 z: z) ) ) b: (self lerp: v a: (self lerp: u a: (self grad: (p at: aa+1) x: x y: y z: z-1) b: (self grad: (p at: ba+1) x: x-1 y: y z: z-1) ) b: (self lerp: u a: (self grad: (p at: ab+1) x: x y: y-1 z: z-1) b: (self grad: (p at: bb+1) x: x-1 y: y-1 z: z-1) ) )taz'(#(10 20 30) includesAll: #()) >>> true311min: aPoint "Answer the upper left corner of the rectangle uniquely defined by the receiver and the argument, aPoint." "((100@200) min: (330@400)) >>> (100@200)" "((100@200) min: (30@400)) >>> (30@200)" ^ (x min: aPoint x) @ (y min: aPoint y)'(1 to: 10) asOpenInterval >>> (2 to: 9) 0:B|||Xb031 + 28between: #(nil 1)1111c22102 001002223041(true or: [false]) >>> trueelmer is number 33110[ :a | b10001111100044444333500820001004460 | | . :a | foo*baz 'def' < 'abc' >>> false11zk cd zk ef zk17Add the argument, newObject, as an element of the receiver. Put it in the sequence just preceding oldObject. Answer newObject.10IIf the receiver is true (i.e., the condition is true), then the value is the true alternative, which is nil. Otherwise answer the result of evaluating the argument, alternativeBlock. Create an error notification if the receiver is nonBoolean. Execution does not actually reach here because the expression is compiled in-line.4100 001111110004444442222300556666661dReturn a SortFunction around the receiver, where the receiver will be used as a unary message to send to both a and b during sorting, and then the result of said send will be collated in descending order using the <=> method.%Point class classSide >>> Point class0(Array with: 1 withAll: #(2 3 4)) >>> #(1 2 3 4)eb8%Tests-unix-64-Geometry-Tests-Test.xml85b1pharoallButFirstDo: aBlock "Executes aBlock on each of the receiver's elements except for the first one" "(Array streamContents: [:stream | #(1 2 3) allButFirstDo: [:each | stream nextPut: (each + 10)]]) >>> #(12 13)" 2 to: self size do: [:index | aBlock value: (self at: index)](100@200) y >>> 200200123450rasCommaStringAnd "Return collection printed as 'a, b and c' " "#( 'a' 'b' 'c') asCommaStringAnd >>> 'a, b and c'" "#('a') asCommaStringAnd >>> 'a'" "#() asCommaStringAnd >>> ''" "'foo' asCommaStringAnd >>> 'f, o and o'" "(10 to: 25 by: 5) asCommaStringAnd >>> '10, 15, 20 and 25'" ^String streamContents: [:s | self asStringOn: s delimiter: ', ' last: ' and ']nsXnXXXXaXXbXXXXcXXXXXXdXXXX30MockPackage-tests2Print the receiver in standard U.S.A format mm/dd/yyyy. Note that the name here is slightly misleading -- the month and day numbers don't show leading zeros, so that for example February 1 1996 is 2/1/96if it is to be it is up to me03aAnswer whether the receiver ends with the given prefix string. The comparison is case-sensitive.2110@(#(1 3 5 7 11 15 23) findBinaryIndex: [ :arg | 11 - arg ]) >>> 5200"(true or: [Error signal]) >>> true(1 to: 10) copyEmpty >>> #()-2 even >>> true5-2.567foo:2Name already defined#(10 20) size >>> 2('pharo' endsWith: '') >>> true36+(#(2 4 6) noneSatisfy: [:x|x odd]) >>> true01'hello' surroundedBySingleQuotes >>> '''hello'''1yAnswer the value of alternativeBlock. Execution does not actually reach here because the expression is compiled in-line.a0between: #(5 6) short enough+Tests-unix-64-System-Support-Tests-Test.xml1End of statement expected23valueWithPossibleArgs: anArray "Execute the receiver with the correct number of arguments taken from the argument." "([:x | x + 1] valueWithPossibleArgs: #( 13 12 15)) >>> 14 " "([:x :y | x + y] valueWithPossibleArgs: #( 13 12 15)) >>> 25 " "([:x :y :z | x + y + z] valueWithPossibleArgs: #( 13 12 15)) >>> 40 " "([:x :y :z | x + y + z] valueWithPossibleArgs: #( 13 12 15)) >>> 40 " ^numArgs = 0 ifTrue: [self value] ifFalse: [self valueWithArguments: (numArgs = anArray size ifTrue: [anArray] ifFalse: [numArgs > anArray size ifTrue: [anArray, (Array new: numArgs - anArray size)] ifFalse: [anArray copyFrom: 1 to: numArgs]])](^1)10ifEmpty: aBlock "Evaluate the given block, answering its value if the receiver is empty, otherwise answer the receiver. Note that the fact that this method returns its receiver in case the receiver is not empty allows one to write expressions like the following ones: self classifyMethodAs: (myProtocol ifEmpty: [ Protocol unclassified ])" "(#(1 2) ifEmpty: [0]) >>> #(1 2)" "(#() ifEmpty: [0]) >>> 0" "('' ifEmpty: ['(nil)']) >>> '(nil)'" ^ self isEmpty ifTrue: [ aBlock value ] ifFalse: [ self ]"#foo: keywordsStrict >>> #('foo:')Special case of exponent=14'' expandMacros >>> OSPlatform current lineEnding4#new isUnary >>> true501011false & false >>> false4.010new: newSize streamContents: blockWithArg "A variant of #streamContents: where the initial or even final size is given to optimize memory consumption" "(Array new: 3 streamContents: [ :out | 3 timesRepeat: [ out nextPut: 42 ] ]) >>> #(42 42 42)" | stream | stream := WriteStream on: (self streamSpecies new: newSize). blockWithArg value: stream. "If the write position of stream is at the end of the internal buffer of stream (originalContents), we can return it directly instead of making a copy as contents would do" ^ stream position = stream originalContents size ifTrue: [ stream originalContents ] ifFalse: [ stream contents ]We14130r162!""" 0 """ 1 """ n """ 1 """ 0 """< aPoint "Answer whether the receiver is above and to the left of aPoint." "((100@200) < (330@400)) >>> true" "((100@200) < (330@100)) >>> false" ^ x < aPoint x and: [y < aPoint y]round: numberOfWishedDecimal "Round the decimal part of the receiver to be limited to the number of wished decimal. Only leave a fixed amount of decimal" "(10.12345 round: 2) >>> 10.12" "(10.199999999 round: 2) >>>10.2" ^ self subclassResponsibility* 666 00777020888000III0F9HHH9999DDD9A EEE 102first3xy2"""($b > $c) asBit>>> 013[ ]$'3.123' isAllAlphaNumerics >>> false330333&('hello' includesAny: 'pwn') >>> false020.1 {8. 5. 3. 9} sort >>> #(3 5 8 9)11.9283901234902349${ tokenish >>> false(Answer the first element of the receiver-2b1-1 - 1abs-1 - 1max:-1 startsWithDigit "Answer whether the receiver's first character represents a digit" "'abc' startsWithDigit >>> false" "'0abc' startsWithDigit >>> true" "'1abc' startsWithDigit >>> true" "'11abc' startsWithDigit >>> true" ^ self size > 0 and: [self first isDigit]100000000000003c1yabc981050303.1479|Integer quotient defined by division with truncation toward negative infinity. \\ answers the remainder from this division.adisplayStringOn:foo6#(1 2 3) anyOne >>> 1 10r89abcd:QfindBinary: aBlock ifNone: exceptionBlock "Search for an element in the receiver using binary search. The argument aBlock is a one-element block returning 0 - if the element is the one searched for <0 - if the search should continue in the first half >0 - if the search should continue in the second half If no matching element is found, evaluate exceptionBlock, with the 'bounding' elements as optional arguments." "(#(1 3 5 7 11 15 23) findBinary: [ :arg | 24 - arg ] ifNone: ['Not found']) >>> 'Not found'" "(#(1 3 5 7 11 15 23) findBinary: [ :arg | 24 - arg ] ifNone: [:a :b | 'over ', a printString]) >>> 'over 23'" "(#(1 3 5 7 11 15 23) findBinary: [ :arg | 25 - arg ] ifNone: [ :a :b | 'between: ',{a. b} printString ]) >>> 'between: #(23 nil)'" ^ self findBinary: aBlock do: [ :found | found ] ifNone: exceptionBlock11100 nil. := nildo: elementBlock separatedBy: separatorBlock "Evaluate the elementBlock for all elements in the receiver, and evaluate the separatorBlock between." "(String streamContents: [:s | #(1 2 3) do: [:each | s << each asString] separatedBy: [s << ', ']]) >>> '1, 2, 3'" | beforeFirst | beforeFirst := true. self do: [:each | beforeFirst ifTrue: [beforeFirst := false] ifFalse: [separatorBlock value]. elementBlock value: each]]Answer the last n elements of the receiver. Raise an error if there are not enough elements.1300460077900AEEECc . #hello()3302(23.5698 printShowingDecimalPlaces: 2) >>> '23.57';Message sending and code execution - Runtime and Evaluation1qAnswer a Point that is the receiver's x and y floor. Answer the receiver if its coordinates are already integral.(Array streamContents: [:stream | #(1 2 3 4) reject: [:each | each = 3 ] thenDo: [:each | stream nextPut: each + 10]]) >>> #(11 12 14)3mReturn true if the receiver is sorted by the given criterion. Optimization for isSortedBy: [:a :b | a <= b]. :. a: fooe`ifNotNil: ifNotNilBlock ifNil: nilBlock "If the receiver is not nil, pass it as argument to the ifNotNilBlock block. else execute the nilBlock block" "Might be compiled inline for speed, see RBMessageNode>>#isInlineIfNil" "(nil ifNotNil: [:o | o +3 ] ifNil: [42]) >>> 42" "(3 ifNotNil: [:o | o +3 ] ifNil: [42]) >>> 6" ^ ifNotNilBlock cull: self10519309closeTo: aSequenceableCollection "Return true if all my elements are close to the elements of same index of the parameter" "(#(1.9283901234902349 2.302949083493849) closeTo: #(1.9283901234902348 2.302949083493899)) >>> true" ^ self closeTo: aSequenceableCollection precision: Float defaultComparisonPrecision121!#(a b c d e f g h i) ninth >>> #i2.2fghi3.14233340AAnswer a Point with coordinates that are the reciprocals of mine.1|:a|readStreamDo: aBlock "Evaluates the argument with the read stream of the collection. Answers the result." "(#(3 4 5) readStreamDo: [ :stream | stream contents ]) >>> #(3 4 5)" ^ aBlock value: self readStreamfoo2whateverqendsWith: suffix caseSensitive: aBoolean "Answer whether the tail end of the receiver is the same as suffix" "IMPLEMENTATION NOTE: following algorithm is optimized in primitive only in case self and suffix are bytes like. Otherwise, if self or suffix are wide strings, then slow version with asLowercase convertation, (primitive is not correct for wide strings)" "('pharo' endsWith: '' caseSensitive: false) >>> true" "('pharo' endsWith: 'project-pharo' caseSensitive: false) >>> false" "('pharo' endsWith: 'phuro' caseSensitive: false) >>> false" "('pharo' endsWith: 'aRo' caseSensitive: false) >>> true" suffix ifEmpty: [ ^ true ]. aBoolean ifTrue: [ ^self endsWith: suffix ]. self size < suffix size ifTrue: [^ false]. (self class isBytes and: [suffix class isBytes]) ifTrue: [ "Optimized version based on primitive" ^ (self findSubstring: suffix in: self startingAt: self size - suffix size + 1 matchTable: CaseInsensitiveOrder) = (self size - suffix size + 1) ]. suffix withIndexDo: [ :each :index | (self at: self size - suffix size + index) asLowercase = each asLowercase ifFalse: [ ^false ] ]. ^trueS ([#() anyOne] on: SubscriptOutOfBounds do: [ :ex | 'whatever' ]) >>> 'whatever' &('hello' includesAll: 'hop') >>> falsewithIndexDo: elementAndIndexBlock "Just like do: except that the iteration index supplies the second argument to the block" "Support collection enumeration with a counter, even though not ordered" "|s|s:=0. #(4 2 1) withIndexDo: [:e :i| s:=s + (e * (10 ** (i-1)))]. s >>> 124" "|a|a:= Array new: 3. #(10 20 30) withIndexDo: [:e :i| a at: 4-i put: e+1]. a >>> #(31 21 11)" | index | index := 0. self do: [:item | elementAndIndexBlock value: item value: (index := index+1)]1knoneSatisfy: aBlock "Evaluate aBlock with the elements of the receiver. If aBlock returns false for all elements return true. Otherwise return false" "(#(2 4 6) noneSatisfy: [:x|x odd]) >>> true" "(#(1 2 3) noneSatisfy: [:x|x odd]) >>> false" "('hello!' noneSatisfy: #isUppercase) >>> true" "('hello!' noneSatisfy: #isLetter) >>> false" "(#() noneSatisfy: ['oops']) >>> true" self do: [:item | (aBlock value: item) ifTrue: [^ false]]. ^ true110 9//4 >>> 21[ | a a | a := 10. a ]3[1][2]0031430.00Hello!Returns a new string with contents equals to aString surrounded by aCharacter. Escapes all occurrences of aCharacter within aString by doubling them.1B('Pharo is <1p>' expandMacrosWith: 'cool') >>> 'Pharo is ''cool'''1{1}{2}'Return whether the receiver is a digit.cAEvaluating conjunction -- answer aBoolean since receiver is true.1R(OrderedCollection new add: 41; add: 42 after: 41; yourself) asArray >>> #(41 42)8Return a String representation of this number in base b.2018de(#(1 3 5 7 11 15 23) findBinary: [ :arg | 12 - arg ] do: [ :found | found ] ifNone: [ :a :b | 'between: ', {a. b} printString ]) >>> 'between: #(11 15)'eK('Five is {five}.' format: (Dictionary with: #five -> 5)) >>> 'Five is 5.'5256Returns the instance of myself having aString as name.1hellol(#(1 3 5 7 11 15 23) findBinary: [ :arg | 24 - arg ] ifNone: [:a :b | 'over ', a printString]) >>> 'over 23'1nAnswer whether the receiver sorts after aString. The collation order is simple ascii (with case differences).printStringHex "Returns the hex digit part of the integer when printed in hexadecimal format." "30 printStringHex >>> '1E'" "30 hex >>> '16r1E'" ^ self printStringBase: 1620hello1-810{1@5. 10@ -4} max >>> (10@5)-426R(#(1 + 3 - 5) reduceLeft: [ :a :op :b | a perform: op with: b ]) >>> ((1 + 3) - 5)Return a Point scalefactor for shrinking a thumbnail of the receiver's extent to fit within anExtent. self and anExtent are expected to have positive nonZero x and y.-1"'78 92' initialIntegerOrNil >>> 78f, o, o@ foo: 5one1G(#(a b a d a) lastIndexOfAnyOf: #(a b) startingAt: 1 ifAbsent: 7) >>> 11000$a isLetter >>> true . 'hello'668copyWithout: oldElement "Answer a copy of the receiver that does not contain any elements equal to oldElement." "('fred the bear' copyWithout: $e) >>> 'frd th bar'" "(#(2 3 4 5 5 6) copyWithout: 5) >>> #(2 3 4 6)" "((10 to: 13) copyWithout: 11) >>> #(10 12 13)" ^ self reject: [:each | each = oldElement]10019/Answer an Association between self and anObject3one21 Pharoiscool"#(a b c d e f g h i) second >>> #b #[ 1 } 2 ]5findBinary: aBlock "Search for an element in the receiver using binary search. The argument aBlock is a one-element block returning 0 - if the element is the one searched for <0 - if the search should continue in the first half >0 - if the search should continue in the second half If no matching element is found, raise an error." "(#(1 3 5 7 11 15 23) findBinary: [ :arg | 11 - arg ]) >>> 11 " ^ self findBinary: aBlock do: [ :found | found ] ifNone: [ self errorNotFound: aBlock ]1000tFold the result of the receiver from left to right into aBlock. The argument aBlock must take two or more arguments.howManyMatch: string "Count the number of characters in a substring that matches up in self and aString." "('ab ab ac de' howManyMatch: 'ab') >>> 2" "('abab ac de' howManyMatch: 'abab') >>> 4" "('ab ab ac de' howManyMatch: 'a') >>> 1" "('ab ab ac de' howManyMatch: 'z') >>> 0" | count shorterLength | count := 0. shorterLength := self size min: string size. 1 to: shorterLength do: [:index | (self at: index) = (string at: index ) ifTrue: [ count := count + 1 ]]. ^ count416425who301def#(a b c) allButFirst >>> #(b c) 'abc' = 'abc' >>> true2{Answer whether the receiver sorts before or equal to aString. The collation order is simple ascii (with case differences).ballButLast "Answer a copy of the receiver containing all but the last element. Raise an error if there are not enough elements." "#(a b c d) allButLast >>> #(a b c)" ^ self allButLast: 1xb212040210Cascade message expected'0abc' startsWithDigit >>> true42 ###'hello''e,((1 to: 10) select: #isPrime) >>> #(2 3 5 7)330bar50110.156s1!""" 0 """ n """ """ n """ 0 """7Too many arguments12/Answer a set with the elements of the receiver.3-2ZReturn an hexadecimal two-digits string between 00 and FF for a float between 0.0 and 1.0B('abcdefgh' includesSubstring: 'DE' caseSensitive: false) >>> true2[((Date year: 2018 month: 9 day: 28) previous: 'Sunday') printString >>> '23 September 2018'20before: target ifAbsent: exceptionBlock "Answer the receiver's element immediately before target. Answer the result of evaluating the exceptionBlock if target is not an element of the receiver, or if there are no elements before it." "(#(11 22 33) before: 22 ifAbsent: 55) >>> 11" "(#(11 22 33) before: 44 ifAbsent: 55) >>> 55" | index | index := self indexOf: target. ^ (index = 0 or: [index = 1]) ifTrue: [exceptionBlock value] ifFalse: [self at: index - 1]4IParse and materialize the STON representation in the character readStream022d 100000000*Tests-unix-64-Commander2-UI-Tests-Test.xmlIt is always a number or zero:FileLocator temp / ('{1}.ston' format: { Time millisecondClockValue }) in: [ :file | file writeStreamDo: [ :out | STON put: 1@2 onStream: out ]. file readStreamDo: [ :in | STON fromStream: in ] ]10140.1"Character tab isSeparator >>> true100z0033333-110Tests-unix-64-Roassal-Interaction-Tests-Test.xml0012303x20'1.234' asInteger >>> 1is100020vector22In \{1\} you can escape \{ by prefixing it with \\abcol106foo ^ [ | a | a := 1. [ :a | a ] value: 10 + a ] value9062.0 00111000444222230005566600 T(true ifTrue: [ 'That is true!' ] ifFalse: [ 'That is false!' ]) >>> 'That is true!'{ ^ 1 }1'abc' isOctetString >>> true43.151Print elements on a stream separated with a delimiter between all the elements and with a special one before the last like: 'a, b and c'de11611MasOrderedCollection "Answer an OrderedCollection whose elements are the elements of the receiver. The order in which elements are added depends on the order in which the receiver enumerates its elements. In the case of unordered collections, the ordering is not necessarily the same for multiple requests for the conversion." "(10 to: 25 by: 5) asOrderedCollection >>> #(10 15 20 25) asOrderedCollection" "'foo' asOrderedCollection = #($f $o $o) asOrderedCollection >>> true" "'foo' asOrderedCollection = #($o $o $f) asOrderedCollection >>> false" ^ self as: OrderedCollection2120.5401210+Tests-unix-64-Roassal-Global-Tests-Test.xml134(OrderedCollection new growAtFirst; capacity) >>> 20 ')' expected20,Tests-unix-64-PharoDocComment-Tests-Test.xml20Return all the combinations of elements of the receiver. Note that combinations does not include the empty element contrary to the mathematical definition of combinations.3Answer an OrderedCollection whose elements are the elements of the receiver. The order in which elements are added depends on the order in which the receiver enumerates its elements. In the case of unordered collections, the ordering is not necessarily the same for multiple requests for the conversion.101001size "Answer how many elements the receiver contains." "#(1 2 2 3 1 1 1) asBag size >>> 7" | tally | tally := 0. contents do: [:each | tally := tally + each]. ^ tallystringsselect: selectBlock thenCollect: collectBlock "Optimized version of Collection>>#select:thenCollect:" "(#(1 2 3 4) select: [:each | each > 2 ] thenCollect: [:each | each + 10 ]) >>> #(13 14)" | each | ^ self class new: self size streamContents: [ :stream| 1 to: self size do: [ :index | (selectBlock value: (each := self at: index)) ifTrue: [ stream nextPut: (collectBlock value: each) ]]]9 Five is 5.This destructively replaces elements from start to stop in the receiver. Answer the receiver itself. Use copyReplaceFrom:to:with: for insertion/deletion which may alter the size of the result.0.9198435972629521joinUsing: joiner last: last "Append the elements of the receiver separating them with the joiner argument and handle the last elment separation using the last argument." "(#(1 2 3 4) joinUsing: ', ' last: ' and ') >>> '1, 2, 3 and 4'" (self size = 0) ifTrue: [ ^ '' ]. (self size = 1) ifTrue: [ ^ self first asString ]. ^ last join: (Array with: (joiner join: self allButLast) with: self last)3310((#(10 20 30) includesAny: #()) >>> false | a | ^ aDe19bw& aCollection "Alias for intersection:" "#(1 2 3 4) & #(1 2 4 6 7) >>> #(1 2 4)" ^ self intersection: aCollection1groupedBy: aBlock "Answer a dictionary whose keys are the result of evaluating aBlock for all my elements, and the value for each key is the selection of my elements that evaluated to that key. Uses species." "(#(1 2 3 4 5) groupedBy: [ :v | v odd ]) asString >>> 'an OrderedDictionary(true->#(1 3 5) false->#(2 4))'" | groups | groups := OrderedDictionary new. self do: [ :each | (groups at: (aBlock value: each) ifAbsentPut: [ OrderedCollection new ]) add: each ]. self species ~~ OrderedCollection ifTrue: [ groups associationsDo: [ :association | association value: (self species withAll: association value) ]]. ^ groups1031002100instanceSide "Return the class of the couple class/metaclass. Useful to avoid explicit test." "Point instanceSide >>> Point" "Point class instanceSide >>> Point" ^ self soleInstance [: a : b]110(nil)1[ 421a1910.0includes: anObject "Answer whether anObject is one of the receiver's elements." "(#(10 20 30) includes: 20) >>> true" "(#(10 20 30) includes: 21) >>> false" "((1 to:9 by:2) includes: 3) >>> true" "((1 to:9 by:2) includes: 4) >>> false" "('Hello' includes: $l) >>> true" "('Hello' includes: $h) >>> false" "({'hello'. 'world'} includes: 'hello') >>> true" "({'hel','lo'. 'world'} includes: 'hello') >>> true" ^ self anySatisfy: [:each | each = anObject]3010An executable comment must be in its own comment block (enclosed in double quotes) and can be multi-line for better readability. Code editor hint: you can double click on the inner side of a double quote to select the whole comment block, then Cmd+I to evaluate and inspect the whole executable comment.5hello5:metaLevelForHierarchyOf: aClass "Subclasses should decide what meta level of given class should be used to retrieve/build hierarchy. For example superclass hierarchy of ProtoObject class can stop at it according to instance side hierarchy" "ProtoObject superclass >>> nil" "Or it can follow full superclass chain which will ends at Object and ProtoObject" "ProtoObject class superclass >>> Class" "This method adds such decision to concrete kind of local scope which allows to use scopes to restrict visibility of class hierarchy" self subclassResponsibility20L(String streamContents: [ :s | 'Foo''Bar' storeOn: s ]) >>> '''Foo''''Bar'''third "Answer the third element of the receiver. Raise an error if there are not enough elements." "#(a b c d e f g h i) third >>> #c" ^ self at: 31 goodby: my: 3###30sort: aSortBlock "Sort this array using aSortBlock. The block should take two arguments and return true if the first element should preceed the second one." "({3. 9. 1} sort: [:a :b | a <= b ]) >>> #(1 3 9)" "({3. 9. 1} sort: [:a :b | a >= b ]) >>> #(9 3 1)" "({#xa. #xc. #xz. #xb. #xy} sort: #last ascending) >>> #(xa xb xc xy xz)" self mergeSortFrom: 1 to: self size by: aSortBlock20.540 0detect: aBlock ifFound: foundBlock ifNone: exceptionBlock "Evaluate aBlock with each of the receiver's elements as the argument. If some element evaluates aBlock to true, then cull this element into foundBlock and answer the result of this evaluation. If none evaluate to true, then evaluate exceptionBlock." "(#(1 2) detect: #even ifFound: #negated ifNone: [0]) >>> -2" "(#(1 3) detect: #even ifFound: #negated ifNone: [0]) >>> 0" "('Hello' detect: #isLowercase ifFound: #uppercase ifNone: [$X]) >>> $E" "('LOL' detect: #isLowercase ifFound: #uppercase ifNone: [$X]) >>> $X" self do: [ :each | (aBlock value: each) ifTrue: [ ^ foundBlock cull: each ] ]. ^ exceptionBlock value121(('foo*baz' match: 'foo23bazo') >>> false2a400is1isLetter "Return whether the receiver is a letter." "$a isLetter >>> true" "$ isLetter >>> true" "$A isLetter >>> true" ^ self characterSet isLetter: self 3r12. 345-31Not valid for negative integers7c6Collection size and block argument count do not match.124336('salkjsdlkgfee' findString: 'ee'startingAt: 3) >>> 12b122002512<(1000 * 1000 * 1000) humanReadableSISizeString >>> '1.00 GB'3nXXntrue asBit >>> 11044b [:a||||a]action2103.1479polynomialEval: thisX "Treat myself as the coeficients of a polynomial in X. Evaluate it with thisX. First element is the constant and last is the coeficient for the highest power. #(1 2 3) polynomialEval: 2 is 3*X^2 + 2*X + 1 with X = 2" "(#(1 2 3) polynomialEval: 2) >>> 17" | sum valToPower | sum := self first. valToPower := thisX. 2 to: self size do: [ :ind | sum := sum + ((self at: ind) * valToPower). valToPower := valToPower * thisX ]. ^ sum?Create a color with the given hue, saturation, and brightness. Hue is given as the angle in degrees of the color on the color circle where red is zero degrees. Saturation and brightness are numbers in [0.0..1.0] where larger values are more saturated or brighter colors. For example, (Color h: 0 s: 1 v: 1) is pure red. foofoofoo!(12 beBetween: 12 and: 20) >>> 121 X0### ###06766666668655550032224""" 00 """ n """ n """ 0 """20100 book-result20.5 appreciate '' expandMacros >>> String lf15[(String streamContents: [ :s | -10 printOn: s base: 10 length: 4 padded: true] ) >>> '-010'23+Tests-unix-64-EpiceaBrowsers-Tests-Test.xml"(100 beBetween: 12 and: 20) >>> 20YCreate a dictionary from the keys and values arguments which should have the same length.10I(#('do' 'la' 'si' 'do' 'la') copyWithoutDuplicates) >>> #('la' 'do' 'si')65536 bytesCount >>> 3fredallRangesOfSubstring: aSubstring "('Ab cd ef Ab cd' allRangesOfSubstring: 'cd') >>> {(4 to: 5). (13 to: 14)}" "('Ab cd ef Ab cd' allRangesOfSubstring: 'zz') >>> #()" ^ Array streamContents: [:s | | start subSize | start := 1. subSize := aSubstring size. [start isZero] whileFalse: [ start := self findString: aSubstring startingAt: start. start > 0 ifTrue: [s nextPut: (start to: start + subSize - 1). start := start + subSize]]]fReturn index of first element that satisfies aBlock. If no matching element is found, raise an error.11wReturn the object stored in the second dictionary at secondKey. The second dictionary is accessed via the key firstKey.#(#[1 2 0 4] booleanAt: 2) >>> true.533highBit "Answer the index of the high order bit of the receiver, or zero if the receiver is zero. Raise an error if the receiver is negative, since negative integers are defined to have an infinite number of leading 1's in 2's-complement arithmetic. Use >>highBitOfMagnitude if you want to get the highest bit of the magnitude." "2r00101000 highBit >>> 6" "0 highBit >>> 0" self < 0 ifTrue: [^ self error: 'highBit is not defined for negative integers']. ^ self highBitOfPositiveReceiver314122.0208Trim separators from both sides of the receiving string.23154@(1000 * 1000 * 1000) humanReadableByteSizeString >>> '953.67 MB' a: . :1a0abc | | . a: rcull: firstArg cull: secondArg "Execute the receiver with one or two arguments depending on the receiver" "([:x | x + 1] cull: 13 cull: 12) >>> 14 " "([:x :y | x + y] cull: 3 cull: 2) >>> 5 " ^numArgs < 2 ifTrue: [self cull: firstArg] ifFalse: [self value: firstArg value: secondArg]0Tests-unix-64-HeuristicCompletion-Tests-Test.xml10!('*baz' match: 'mobazo') >>>falseselect: selectBlock thenDo: doBlock "Utility method to improve readability. Do not create the intermediate collection." "|s| s:=0. #(11 22 33) select: #odd thenDo: [:x|s:=s+x]. s >>> 44" self do: [: each | ( selectBlock value: each ) ifTrue: [ doBlock value: each ] ]C(#(1 2 3 4 5) reject: #even thenCollect: [:x|x*10]) >>> #(10 30 50)09fW(false ifFalse: [ 'That is false!' ] ifTrue: [ 'That is true!' ]) >>> 'That is false!'$A isAlphaNumeric >>> trueaXXb2 0:B| ||b021200X(#(1 2 3 4) select: [:each | each > 2 ] thenCollect: [:each | each + 10 ]) >>> #(13 14)2#Tests-unix-64-TaskIt-Tests-Test.xml3TAdd new empty slots to the end of array, while keeping the empty slots at the front.24221$a isCasedLetter >>> falseAnswer the index of the first occurrence of anElement within the receiver. If the receiver does not contain anElement, answer 0.e%(3.1479 roundDownTo: 0.005) >>> 3.145ppp < <<<<>+, Collection>>-, etc." "(#(10 20 30) adaptToCollection: #(0 1 2) andSend: #@) >>> {(0@10). (1@20). (2@30)}" (rcvr isSequenceable and: [ self isSequenceable ]) ifFalse: [self error: 'Only sequenceable collections may be combined arithmetically']. ^ rcvr with: self collect: [:rcvrElement :myElement | rcvrElement perform: selector with: myElement] ^ 51.1.111or: alternativeBlock "Nonevaluating disjunction -- answer value of alternativeBlock." "(false or: [true]) >>> true" "(false or: [3]) >>> 3" ^alternativeBlock value301>Return number that represents digit at given decimal position.ggggggg sssssss '''''''''''''1034ad-31031K'A man, a plan, a canal, panama' asCamelCase >>> 'AMan,APlan,ACanal,Panama'b'a' #(#"A"##"B")"a := a. [ | a a | . := a ]. a := aa4432205415Pha1/((3 to: 8 by: 2) allSatisfy: #isPrime) >>> true102Answer the receiver's element immediately before target. Raise an error if target is not an element of the receiver, or if there are no elements before it (i.e. it is the first element)..('heLlo wOrLd' select: #isUppercase) >>> 'LOL'2.#at:putNext: asTestSelector >>> #testAtPutNext0.5*ifFalse: falseAlternativeBlock ifTrue: trueAlternativeBlock "Same as ifTrue:ifFalse:." "(true ifFalse: [ 'That is false!' ] ifTrue: [ 'That is true!' ]) >>> 'That is true!'" "(false ifFalse: [ 'That is false!' ] ifTrue: [ 'That is true!' ]) >>> 'That is false!'" self subclassResponsibility1%(AsciiCharset toUppercase: $!) >>> $!RReturn the metaclass of the couple class/metaclass. Useful to avoid explicit test.1.00 GB 110000044102an OrderedDictionary(true->#(1 3 5) false->#(2 4)) abcabcabc453'2 between: ( 1 and: 4)' findSelector >>> #between:31named: aString "Returns the instance of myself having aString as name." "(KeyboardKey named: 'SHIFT_L') >>> (KeyboardKey value: 65505)" ^ KeyNameTable at: aString#(1 5 10 -4) max >>> 102r x4collect: collectBlock thenSelect: selectBlock "Optimized version of Collection>>#collect:thenSelect:" "(#(1 2 3) collect: [:each | each + 10 ] thenSelect: [:each | each even]) >>> #(12)" | each | ^ self class new: self size streamContents: [ :stream | 1 to: self size do: [:index | each := collectBlock value: (self at: index). (selectBlock value: each) ifTrue: [ stream nextPut: each ]]]430b8Tests-unix-64-MetacelloCommandLineHandler-Tests-Test.xmlabc''foo' asCommaStringAnd >>> 'f, o and o'allSentMessagesthree7\withIndexDo: elementAndIndexBlock "Just like do: except that the iteration index supplies the second argument to the block" "(Array streamContents: [:stream| #(11 22 13) withIndexDo: [ :each :i | stream nextPut: (each * each + i)]]) >>> #(122 486 172)" 1 to: self size do: [ :index | elementAndIndexBlock value: (self at: index) value: index ]10##(a b c d e f g h i) seventh >>> #g<<<<>> #(20 30):Tests-unix-64-NewTools-Debugger-Breakpoints-Tools-Test.xmlDconvert myself to an Integer representing 1 for true and 0 for false034e91({Character space. Character space} join: #('Pharo' 'is' 'cool')) >>> {$P. $h. $a. $r. $o. Character space. Character space. $i. $s. Character space. Character space. $c. $o. $o. $l}6:(#(a b c d e) indexOf: #c startingAt: 4 ifAbsent: 7) >>> 72000vector0Answer the index of the first occurrence of anElement within the receiver. If the receiver does not contain anElement, answer the result of evaluating the argument, exceptionBlock.*printStringBase: base "Return a String representation of this number in base b." "(10 printStringBase: 10) >>> '10'" "(-10 printStringBase: 10) >>> '-10'" "(10 printStringBase: 2) >>> '1010'" "(10 printStringBase: 16) >>> 'A'" ^ String streamContents: [:strm | self printOn: strm base: base]0vector0$1 isDecimalDigit >>> true30 [ B({ 1. 2. 3 } as: Set) >>> (Set new add: 1; add:2; add:3; yourself)310, 'hello' & $x29890Return a String representation of this number in base b. For SmallIntegers, it is more efficient to print directly in a String, rather than using a Stream like super.XX 305| | 10vector0,remove the initial and final quote marks (single quote for string, or double quotes for comments), if present (and if matches nesting quotes). Have a look at testWithoutQuoting. If you want to remove single/double quotes not in first and last positions of the strings, have a look at copyWithout: $' 12642224 | | . - 110(100@200) min >>> 1003zAnswer whether the receiver sorts after or equal to aString. The collation order is simple ascii (with case differences).50indexOf: anElement startingAt: start ifAbsent: exceptionBlock "Answer the index of the first occurrence of anElement after start within the receiver. If the receiver does not contain anElement, answer the result of evaluating the argument, exceptionBlock." "(#(a b c d e) indexOf: #c startingAt: 2 ifAbsent: 7) >>> 3" "(#(a b c d e) indexOf: #c startingAt: 4 ifAbsent: 7) >>> 7" start to: self size do: [:index | (self at: index) = anElement ifTrue: [^ index]]. ^ exceptionBlock value1I(#(1 5 10) detectIndex: [ :each | each > 3 ] ifNone: ['Not found']) >>> 21h10.12 Sunday fred the bear111642;({'hel','lo'. 'world'} identityIncludes: 'hello') >>> false%(3.1479 truncateTo: 0.005) >>> 3.145cbe | T | ^ t(1923 truncateTo: 10) >>> 1920(true and: [ true ]) >>> true1edetectIndex: aBlock "Return index of first element that satisfies aBlock. If no matching element is found, raise an error." "(#(1 5 10) detectIndex: [ :each | each > 3 ]) >>> 2" ^ self detectIndex: aBlock ifNone: [ self errorNotFound: aBlock ]isCurrencySymbol "Return whether the receiver is one of these characters: $ and euro" "$$ isCurrencySymbol >>> true" "Character euro isCurrencySymbol >>> true" "$} isControlOther >>> false" ^ self characterSet isCurrencySymbol: self2keysAndValuesDo: aBlock "Enumerate the receiver with all the keys (aka indices) and values." "(Array streamContents: [:stream | #(10 20 30) keysAndValuesDo: [:key :value | stream nextPut: (key * 2 + value)]]) >>> #(12 24 36)" 1 to: self size do: [:index | aBlock value: index value: (self at: index)]foo < bar: baz > one27:return myself or a copy shortened by ellipsis to smallSizey2dEvaluate aBlock with each of my elements as the argument. Collect the resulting values into a collection that is like me. Answer the new collection. Override superclass in order to use addLast:, not at:put:.102200PhsvSaturation "Return the HSV saturation of this color, a value between 0.0 and 1.0." "Color red hsvSaturation >>> 1.0" "(Color r: 0.5 g: 0.5 b: 1) hsvSaturation >>> 0.4995112414467253" | max | max := self privateMaxComponent. ^ max isZero ifTrue: [ 0.0 ] ifFalse: [ (max - self privateMinComponent) asFloat / max asFloat ]16G(#(1 + 3 - 5) reduceLeft: [ :a :op :b | a perform: op with: b ]) >>> -10.98&(AsciiCharset toUppercase: $A) >>> $A.7605bisAlphaNumeric "Answer whether the receiver is a letter or a digit." "$a isAlphaNumeric >>> true" "$A isAlphaNumeric >>> true" "$' isAlphaNumeric >>> false" "$1 isAlphaNumeric >>> true" "Character space isAlphaNumeric >>> false" ^ self isLetter or: [ self isDigit ]23305J('bar' asSortedCollection add: $c; yourself) asArray >>> {$a. $b. $c. $r}.bar2#| TT | tt n. tt s n18"'foo' asNewArray >>> 'foo' asArray3Tests-unix-64-NewTools-CodeCritiques-Tests-Test.xmlGReturn a ByteArray containing a GZIP compressed version of the receivera 000000000000 includes:06092r101thisContext := thisContextSgrowAtFirst "Add new empty slots to the front of array, while keeping the empty slots at the end." "OrderedCollection new capacity >>> 10" "(OrderedCollection new growAtFirst; capacity) >>> 20" | newArray newFirstIndex newLastIndex | newArray := self class arrayType new: (array size * 2 max: 1). newFirstIndex := newArray size - array size + firstIndex. newLastIndex := newFirstIndex + lastIndex - firstIndex. newArray replaceFrom: newFirstIndex to: newLastIndex with: array startingAt: firstIndex. array := newArray. firstIndex := newFirstIndex. lastIndex := newLastIndexMReturns the hex digit part of the integer when printed in hexadecimal format.64hello3abc2({'hel','lo'. 'world'} includes: 'hello') >>> trueabcv(String streamContents: [:s| { 10. 'hello'. $x } printOn: s delimiter: ', ' last: ' & ']) >>> '10, ''hello'' & $x'$Optimized version based on primitive1foozob242575*Return the maximum value of the collection#$( isConnectorPunctuation >>> false47raisedTo: aNumber "Answer the receiver raised to aNumber." "(2 raisedTo: 8) >>> 256" "(8 raisedTo: 2) >>> 64" "(2 raisedTo: (1/12)) >>> 1.0594630943592953" "(2 raisedTo: -1) >>> (1/2)" aNumber isInteger ifTrue: [ "Do the special case of integer power" ^ self raisedToInteger: aNumber]. aNumber isFraction ifTrue: [ "Special case for fraction power" ^ self raisedToFraction: aNumber]. self < 0 ifTrue: [ ^ ArithmeticError signal: 'Negative numbers can''t be raised to float powers.' ]. 0 = aNumber ifTrue: [^ self class one]. "Special case of exponent=0" 1 = aNumber ifTrue: [^ self]. "Special case of exponent=1" 0 = self ifTrue: [ "Special case of self = 0" ^ aNumber < 0 ifTrue: [ (ZeroDivide dividend: 1) signal] ifFalse: [ self]]. ^ (aNumber * self ln) exp "Otherwise use logarithms"9,'x isSymbol: 33' findSelector >>> #isSymbol:17201KasInteger "Answer 1 since receiver is true." "true asInteger >>> 1" ^ 11911loDo a character-by-character comparison between the receiver and aString. Return the index of the final character that matched exactly. 111111100X([:c| c isSeparator] split: 'aa bb cc dd')>>> #('aa' 'bb' 'cc' 'dd') asOrderedCollectionfoo: arg ^ arg + 1iList elements betwen () and separated by spaces. Is used by printOn: and other related printing methods.15b22A man, a plan, a canal, panama!(10 beBetween: 20 and: 12) >>> 1211E234(Array streamContents: [:stream | #(10 20 30) reverseWithIndexDo: [:each :index | stream nextPut: each + index]]) >>> #(33 22 11)_Evaluating disjunction (OR) -- answer with the argument, aBoolean, since the receiver is false.'''''$ isLetter >>> trueAnswer the index of the first occurrence of any element included in aCollection within the receiver. If the receiver does not contain anElement, answer zero, which is an invalid index.h20]Answer the seventh element of the receiver. Raise an error if there are not enough elements.ifTrue: alternativeBlock "Answer the value of alternativeBlock. Execution does not actually reach here because the expression is compiled in-line." "(true ifTrue: [ 'This statement is true!' ]) >>> 'This statement is true!'" ^alternativeBlock value>(Color r: 31 g: 0 b: 0 range: 31) >>> (Color r: 1.0 g: 0 b: 0)zz620187first: n "Answer the first n elements of the receiver. Raise an error if there are not enough elements." "(#(a b c d e f g h ) first: 3) >>> #(a b c)" ^ self copyFrom: 1 to: n20| self | self := 1. ^ self224bad stop index3 #foo : 1001.includesSubstringAnywhere: testString "Answer whether the receiver includes, anywhere in its nested structure, a string that has testString as a substring" "(#(first (second third) ((allSentMessages ('Elvis' includes:)))) includesSubstringAnywhere: 'lvi') >>> true" self do: [:element | (element isString) ifTrue: [(element includesSubstring: testString) ifTrue: [^ true]]. (element isCollection) ifTrue: [(element includesSubstringAnywhere: testString) ifTrue: [^ true]]]. ^ false1, 00000+#(1 11 0.5) reciprocal >>> {1 . 1/11 . 2.0}4p ('abc' alike: 'abc') >>> 7.foo | tmp | tmp := 1. ^ tmp 00000002-98139c23gAnswer true whether the receiver is inside the argument (following Rectangle>>#containsPoint: semantics1.25 reciprocal >>> 0.8#[ 40Return a pair. It is handy to support the tweaking of pharo doc expression. A pharo doc expression is a comment as the following one:32519(42 digitAt: 2 base: 10) >>> 4beginsWith: aSequenceableCollection "Answer true if the receiver starts with the argument collection" "(#(1 2 3 4 5) beginsWith: #()) >>> true" "(#(1 2 3) beginsWith: #(1 2 3 4 5)) >>> false" "(#(1 2 3 4 5) beginsWith: #(0 1 2)) >>> false" "(#(1 2 3 4 5) beginsWith: #(1 2 3)) >>> true" aSequenceableCollection ifEmpty: [ ^true ]. self size < aSequenceableCollection size ifTrue: [^false]. aSequenceableCollection withIndexDo: [:each :index | (self at: index) ~= each ifTrue: [^false]]. ^truefoo10Extract a selector with keyword parts from the receiver. While this doesn't give a true parse, in most cases it does what we want, in where it doesn't, we're none the worse for it.19oflatCollectAsSet: aBlock "Evaluate aBlock for each of the receiver's elements and answer the list of all resulting values flatten one level. Assumes that aBlock returns some kind of collection for each element. Equivalent to the lisp's mapcan" "( #(1 2 3) flatCollectAsSet: [:each | { each. each+1 } ] ) >>> #(1 2 3 4) asSet" ^ self flatCollect: aBlock as: Set43#(a b c d) middle >>> #c1Return the reciever full of reciprocated elements3isSeparator "Returns whether the receiver is a separator i.e., a space, tab, lf, cr, and newPage" "Character space isSeparator >>> true" "Character lf isSeparator >>> true" "Character cr isSeparator >>> true" "Character newPage isSeparator >>> true" "Character tab isSeparator >>> true" "$' isSeparator >>> false" | in | ^ (in := self asInteger) == 32 or: [ in == 13 or: [ in == 9 or: [ in == 10 or: [ in == 12 ] ] ] ]29(#(a b c d e) indexOfAnyOf: #(x y c) startingAt: 4) >>> 031231(KeyboardKey fromCharacter: $a) >>> KeyboardKey A000rx#$} isConnectorPunctuation >>> false310((#(x y z) atLast: 4 ifAbsent: #a) >>> #a0gReturns whether the receiver is composed entirely of separators i.e., a space, tab, lf, cr, and newPage{3} median >>> 30vector0100000000000001(Array streamContents: [:stream | 'abcde' combinations: 3 atATimeDo: [:each | stream nextPut: each copy]]) >>> #(#($a $b $c) #($a $b $d) #($a $b $e) #($a $c $d) #($a $c $e) #($a $d $e) #($b $c $d) #($b $c $e) #($b $d $e) #($c $d $e))1X''''''1110@. 5=Move the element at oneIndex to anotherIndex, and vice-versa.101.(#(a b c d e) indexOf: #c startingAt: 2) >>> 3unzip "Given a collection returns in one pass two collections containing each odd and even elements in respective subcollections" "#(1 2 3 4) unzip first asArray >>> #(1 3)" "#(1 2 3 4) unzip second asArray >>> #(2 4)" | odd even s | s := self size // 2. odd := OrderedCollection new: s. even := OrderedCollection new: s. 1 to: self size do: [ :i | (i \\ 2) = 0 ifTrue: [ even add: (self at: i) ] ifFalse: [ odd add: (self at: i) ] ]. ^ { odd . even }31 hello: 2121Z(#(1 2 3 4) reject: [:each | each = 3 ] thenCollect: [:each | each + 10 ]) >>> #(11 12 14)2(#(11 22 33) asOrderedCollection atWrap: 4) >>> 110055CCC6667DDD889EEEAAABBFFF0224xoReturns a string representation of the receiver in base 16 in a way that executing it will return the receiver.210foox2bphuro3split: aSequenceableCollection "Split the argument using the receiver as a separator." "optimized version for single delimiters" "($/ split: '/foo/bar')>>>#('' 'foo' 'bar') asOrderedCollection" "([:c| c isSeparator] split: 'aa bb cc dd')>>> #('aa' 'bb' 'cc' 'dd') asOrderedCollection" | result | result := OrderedCollection new: aSequenceableCollection size //2. self split: aSequenceableCollection do: [ :item | result add: item ]. ^ resultAnswer the index of the first substring within the receiver, starting at start. If the receiver does not contain substring, answer 0.32110""" 00 """ n """ ### """ 1 """ n """ 1 """ 0 """19021allButFirst: n "Answer a copy of the receiver containing all but the first n elements. Raise an error if there are not enough elements." "(#(a b c d) allButFirst: 2) >>> #(c d)" "(#(a b c d) allButFirst: 3) >>> #(d)" ^ self copyFrom: n + 1 to: self size11000pppp AAAAAA ^ aaaaaa s n53302112b4(Array streamContents: [:stream | #(10 20 30) paddedWith: #(40 50) do: [:a :b | stream nextPut: {a. b} ]]) >>> #(#(10 40) #(20 50) #(30 nil)) 117Parse and materialize the STON representation in string0Answer the number of days between self and aDate3true | false >>> true(gggggggggggggggggg sssssss '''''''''''''100000001f *foo#zort33 234Whoopie-431a-198toString: object "Return a String with the STON serialization of object" "(STON toString: 1@2) >>> 'Point[1,2]'" ^ String streamContents: [ :stream | self put: object onStream: stream ]1the3Otherwise use logarithms [ 1 ). 2 ]8((0@0 corner: 100@100) containsPoint: 100@100) >>> false1620!(2 ifNotNil: [ :o | o + 3]) >>> 5Cround: numberOfWishedDecimal "Round the decimal part of the receiver to be limited to the number of wished decimal. Only leave a fixed amount of decimal." "(10.156s round: 2) >>> 10.160s3 " "(1/3.0s round: 4) >>> 0.3333s4 " ^(super round: numberOfWishedDecimal) asScaledDecimal: (scale max: numberOfWishedDecimal)5420@foo:5aro61332T{ 1->2. 3->4 } asDictionary >>> (Dictionary new at: 1 put: 2; at: 3 put:4; yourself)a100-410>> #(41 42)" ^ self insert: newObject before: (self find: oldObject)410=(KeyboardKey named: 'SHIFT_L') >>> (KeyboardKey value: 65505)3&Tests-unix-64-Ring-Core-Tests-Test.xml#(x y z) size >>> 3a41te&(AsciiCharset toLowercase: $a) >>> $a.00:B|||b0|:a XX n XX# n X2n.1Durstenfeld's version of the Fisher-Yates shuffle7001123456789AA00ppp ^ 0 :B | 1 :B | b 1 ssssss nn s b 0 ssssss n016#'abc' asWideString = 'abc' >>> true14;({#x .#y .#z} atAll: #(1 3) put: #e; yourself) >>> #(e y e)3(1 minute + 2 seconds) printString >>> '0:00:01:02'027Returns a color instance from HEX (6 element elements).4+Character backspace isControlOther >>> true7#(1 2 2 3 1 1 1) asBag asSet >>> #(1 2 2 3 1 1 1) asSetXX X # X # X XwAnswer a copy of the receiver containing all but the last n elements. Raise an error if there are not enough elements.cool2010Return whether the receiver is close to the argument aPoint. The precision for point holding floats is defined by Float >> #closeTo:precision:. For points holding integer, closeTo: corresponds to equalsTo:&A clear but rather long-winded summary42141world20vector40[ :self | self + 1 ]0VAnswer a copy of the receiver that does not contain any elements equal to oldElement.1isTestPackage "1. Test package ends with suffix -Tests. Suffix is case sensitive. 2. Or test package contains '-Tests-' in middle. Some examples: " "(RPackage named: 'MockPackage-Tests') isTestPackage >>> true" "(RPackage named: 'MockPackage-tests') isTestPackage >>> true" "(RPackage named: 'MockPackage') isTestPackage >>> false" "(RPackage named: 'MockPackage-Tests-Package') isTestPackage >>> true" ^ (self name endsWith: '-Tests' caseSensitive: false) or: [ self name includesSubstring: '-Tests-' caseSensitive: false ]abNote: to be syntactically valid as an executable comment, there should be exactly one single triple > message send, and it should be the last statement.1~Answer the value of falseAlternativeBlock. Execution does not actually reach here because the expression is compiled in-line.4#( #( ) #'.' #':' #';' #'[' #']' #'{' #'}' #'^' #a )a2between: #(23 nil)#(10 20 30) sum >>> 60 000100200040010025512110aa1?Search for an element in the receiver using binary search. The argument aBlock is a one-element block returning 0 - if the element is the one searched for <0 - if the search should continue in the first half >0 - if the search should continue in the second half If no matching element is found, raise an error.043^This is implemented using a variant of the normal inject:into: pattern. The reason for this is that it is not known whether we're in the normal number line, i.e. whether 0 is a good initial value for the sum. Consider a collection of measurement objects, 0 would be the unitless value and would not be appropriate to add with the unit-ed objects.:c'({1. 2. 3} as: Set) >>> #( 1 2 3) asSet10bad start index208asOpenInterval "Return a new interval representing the open version of the receiver. In other words, the new inteval does not contain the upper and lower boundaries of the receiver " "(1 to: 10) asOpenInterval >>> (2 to: 9)" "(10 to: 1 by: -1) asOpenInterval >>> (9 to: 2)" ^ start + step to: stop - step1UwithoutQuoting "remove the initial and final quote marks (single quote for string, or double quotes for comments), if present (and if matches nesting quotes). Have a look at testWithoutQuoting. If you want to remove single/double quotes not in first and last positions of the strings, have a look at copyWithout: $' " "'''h''' withoutQuoting >>> 'h'" "' ''h'' ' withoutQuoting >>> ' ''h'' '" | quote | self size < 2 ifTrue: [ ^ self ]. quote := self first. ^ (quote = self last and: [ quote = $' or: [ quote = $" ] ]) ifTrue: [ self copyFrom: 2 to: self size - 1 ] ifFalse: [ self ]"(10 printStringBase: 2) >>> '1010'f;Tests-unix-64-SystemCommands-PackageCommands-Tests-Test.xml11/{0@1. 2@3} * {10@20. 30@0} >>> {(0@20). (60@0)}((2@2) * 200) >>> (400@400)4210n0X21022980"$_ isConnectorPunctuation >>> true1320Evaluate pieceBlock with substrings of the receiver derived from cutting the receiver at points where binaryBlock answers true for adjacent elements.2Tests-unix-64-Collections-Unordered-Tests-Test.xmlPerform a time zone independent comparison of the dates, i.e. only compare day, month and year. To compare with time zones, use #=Answer the index'th element of the receiver. If index is out of bounds, let it wrap around from the end to the beginning until it is in bounds.| T | 0 ^ t 0. t nn0221({1. 2} asBag = {1. 2. 2} asBag >>> falsea := a. { [ :a }. a := a121000311112004444466676655B9999A100ppp <<<<< XX XX X< 404xyxz=atAllPut: anObject "Put anObject at every one of the receiver's indices." "({#x .#y. #z} atAllPut: #a) >>> #(a a a)" | size | (size := self size) > 26 "first method faster from 27 accesses and on" ifTrue: [self from: 1 to: size put: anObject] ifFalse: [1 to: size do: [:index | self at: index put: anObject]] Answer 1 since receiver is true.9a 0000111121022-(10 to: 1 by: -2) sorted >>> (2 to: 10 by: 2)9({10. 20} asSet add: 30; yourself) >>> {10. 20. 30} asSet+Tests-unix-64-System-History-Tests-Test.xml500.0200XX X n X$(#() noneSatisfy: ['oops']) >>> true0vector015a12%Character end isControlOther >>> true self := selfa019-1.51400103419d1a9(#(10 20 30 40 50) findLast: [ :each | each > 60 ]) >>> 0pppp A pppp A ^ aAlias of Collection>>reduce3210188SAnswer a new instance where all occurrences of CRLF and LF are substituted with LF.;(Date year: 2018 month: 9 day: 28) ddmmyyyy >>> '28/9/2018'4%Answer 0 since the receiver is false.11abc16r1E3f>(#(e b a d e) lastIndexOf: #a startingAt: 4 ifAbsent: 7) >>> 3it'em vs 'it''em'pharo1aO|s| (#(1 3) detect: [ :each | each even ] ifFound: [ :e | s:=e*10 ]). s >>> nil0010022043333263+(#(a b c d e) indexOfAnyOf: #(x y z)) >>> 01-3.14/2 milliSeconds printString >>> '0:00:00:00.002'7ifTrue: trueAlternativeBlock ifFalse: falseAlternativeBlock "Answer with the value of trueAlternativeBlock. Execution does not actually reach here because the expression is compiled in-line." "(true ifTrue: [ 'That is true!' ] ifFalse: [ 'That is false!' ]) >>> 'That is true!'" ^trueAlternativeBlock value15ppp X ( 1. 2 )12201Pharo is really super cool23 ('foo*' match: 'bozo') >>> falsePharo is 'cool' X#(-3.1479 roundUpTo: 0.01) >>> -3.14202110002 Pharo is cool#(1)#(2)lax Five is 5.MReturn a color with the given r, g, and b components in the range [0.0..1.0]. 01'' isNotEmpty >>> falseABC goodby: 2 my: 3 foo < bar: W EW4630actionaa4/ "a" foo: "b" x "c" bar: "d" y "e" ^ "f" x "g" r('File asFile Files File''s File' copyReplaceTokens: 'File' with: 'Snick') >>> 'Snick asFile Files Snick''s Snick'isSortedBy: aBlock "Return true if the receiver is sorted by the given criterion." "(#(1 2 3) isSortedBy: [:a :b | a <= b ]) >>> true" "(#(1 2 3) isSortedBy: [:a :b | a >= b ]) >>> false" "(#(xa xc xz xb xy) isSortedBy: #last ascending) >>> false" "(#(xa xb xc xy xz) isSortedBy: #last ascending) >>> true" | lastElm elm | self isEmpty ifTrue: [^ true]. lastElm := self first. 2 to: self size do: [:index | elm := self at: index. (aBlock value: lastElm value: elm) ifFalse: [^ false]. lastElm := elm]. ^ true2(#(1 1 2 2 3 3) runningMax: 3) >>> {2 . 2 . 3 . 3}18 565555554444-529i4(8 raisedTo: 2) >>> 6410*((30/3)@(2/2)) asFloatPoint >>> (10.0@1.0)1201b4.0si2en(Array streamContents: [:stream | #(1 2 3) with: #(4 5 6) do: [:a :b | stream nextPut: (a + b)]]) >>> #(5 7 9)3string34Search for an element in the receiver using binary search. The argument aBlock is a one-element block returning 0 - if the element is the one searched for <0 - if the search should continue in the first half >0 - if the search should continue in the second half If found, evaluate actionBlock with the index as argument If no matching element is found, evaluate exceptionBlock, with the indexes of the 'bounding' elements as arguments. Warning: Might give invalid indexes, see examples below(false or: [3]) >>> 3#'1007( #() asSet intersection: #(1 2 3 4) asSet) >>> Set newme3Take the items in the receiver, kk at a time, and evaluate the block for each combination. Hand in an array of elements of self as the block argument. Each combination only occurs once, and order of the elements does not matter. There are (self size take: kk) combinations.0 #(a b c d e f g h ) fifth >>> #e 'def' >= 'def' >>> trueabs "Answer a Point whose x and y are the absolute values of the receiver's x and y." "(100 @ -200) abs >>> (100@200)" ^ x abs @ y abs1^ u3b0000000000000000232454l(#(1 2 3 4 5) groupedBy: [ :v | v odd ]) asString >>> 'an OrderedDictionary(true->#(1 3 5) false->#(2 4))' 222222333333'Tests-unix-64-Roassal-Mondrian-Test.xml#+ keywordsStrict >>> #()35194 0 even >>> true`(#('We' 'love' 'pharo!') withIndexSelect: [:value :index | value size - 1 <= index]) >>> #('We')c123.145216(true ifFalse: [ 'This statement is false!' ]) >>> nilstrings#( #[ 0 1000 2 ] )191 X n Pharo is coolexpandMacros "'' expandMacros >>> String tab" "'' expandMacros >>> String cr" "'' expandMacros >>> OSPlatform current lineEnding" ^self expandMacrosWithArguments: #()*Note that key and value can be ANY object.(1.3@2.2) isFloatPoint >>> true0That is false!B('abcdefgh' includesSubstring: 'de' caseSensitive: false) >>> true goodby: my: 3001205D(#(2 3 4 4 5 6) copyWithoutDuplicates asSet) >>> #(2 3 4 5 6) asSet! foo: arg bar: arr ^ arg + arr . 9Answer whether the receiver is an unary message selector.2AnewFrom: aCollection "Answer an instance of me containing the same elements as aCollection." "(RunArray newFrom: {1. $a. $a. 3}) >>> ({1. $a. $a. 3} as: RunArray)" "({1. $a. $a. 3} as: RunArray) values >>> #(1 $a 3)" "({1. $a. $a. 3} as: RunArray) runs >>> #(1 2 1)" | runs values lastRun lastValue | runs := (Array new: aCollection size // 2) writeStream. values := (Array new: aCollection size // 2) writeStream. lastRun := 0. lastValue := Object new. aCollection do: [ :x | lastValue = x ifTrue: [ lastRun := lastRun + 1 ] ifFalse: [ lastRun > 0 ifTrue: [ runs nextPut: lastRun. values nextPut: lastValue ]. lastRun := 1. lastValue := x ] ]. lastRun > 0 ifTrue: [ runs nextPut: lastRun. values nextPut: lastValue ]. ^ self basicNew setRuns: runs contents setValues: values contents401612)Optimized version of Collection>>#reject:1009!(-1929 truncateTo: 10) >>> -192020,(#(11 22 33) before: 22 ifAbsent: 55) >>> 1115&(AsciiCharset toLowercase: $A) >>> $a.<#(1 2 2 3 1 1 1) asBag sortedElements >>> {1->4. 2->2. 3->1}uAnswer a copy of the receiver containing all but the first element. Raise an error if there are not enough elements.y>> #(1 2 3 2 1 6 1 2 3 2)cmonth "(Date year: 2018 month: 9 day: 28) month printString >>> 'September 2018'" ^ self asMonth163 [ :a ::b | ]'for the style (aa max:bb) with no space-Tests-unix-64-NewTools-Spotter-Tests-Test.xml43& aBoolean "Evaluating conjunction -- answer aBoolean since receiver is true." "true & true >>> true" "true & false >>> false" ^aBoolean<(RPackage named: 'MockPackage-Tests') isTestPackage >>> truegreen "Return the green component of this color, a float in the range [0.0..1.0]." "Color red green >>> 0.0" "(Color r: 0.5 g: 0.5 b: 1) green >>> 0.5004887585532747" ^ self privateGreen asFloat / ComponentMax20elvis 109(#(10 20 30 40 50) findLast: [ :each | each > 10 ]) >>> 520#13yAnswer my value constrained to the interval [minValue ; maxValue] I take care of the situation where minValue > maxValue6 factorial >>> 7203range "returns the difference between the max and min element, their positions notwithstanding" "#( 1 51 10 ) range >>> 50" "{1@50. 10@ -10. 5@5} range >>> (9@60)" ^ self max - self minThis method adds such decision to concrete kind of local scope which allows to use scopes to restrict visibility of class hierarchyl:a0#(1 2 3 4) selectEveryFirst asArray >>> #(1 3) *Tests-unix-64-SortFunctions-Tests-Test.xmlU({10. 20} asOrderedCollection add: 30; yourself) >>> {10. 20. 30} asOrderedCollectioneighth "Answer the eighth element of the receiver. Raise an error if there are not enough elements." "#(a b c d e f g h ) eighth >>> #h" ^ self at: 82214-(Date today equals: Date yesterday) >>> false-10 hex >>> '-16rA' #[ 1 1.0 2 ].00######"""##"""#########"""###"""##"""###"""0#(1 2 3 4) combinations >>> #(#(1) #(2) #(3) #(4) #(1 2) #(1 3) #(1 4) #(2 3) #(2 4) #(3 4) #(1 2 3) #(1 2 4) #(1 3 4) #(2 3 4) #(1 2 3 4))197Answer a Point scaled by factor (an instance of Point).QAnswer a new collection with newElement added (as last element if sequenceable).6!Character cr isSeparator >>> true/(#(1 2 2 3 1 1 1) asBag occurrencesOf: 1) >>> 4 XXXXXXXXXXXXisInsideRectangle: aRectangle "Answer true whether the receiver is inside the argument (following Rectangle>>#containsPoint: semantics" "(50@50 isInsideRectangle: (0@0 corner: 100@100)) >>> true" "(0@0 isInsideRectangle: (0@0 corner: 100@100)) >>> true" "(0@10 isInsideRectangle: (0@0 corner: 100@100)) >>> true" "(100@100 isInsideRectangle: (0@0 corner: 100@100))>>> false" "(100@90 isInsideRectangle: (0@0 corner: 100@100))>>> false" ^ aRectangle containsPoint: self?asFloatPoint "Convert me to a float point transforming both of my coordinates to floats using #asFloat. If x and y are already represented by floats return myself, otherwise create a new Point instance." "((30/3)@(2/2)) asFloatPoint >>> (10.0@1.0)" self isFloatPoint ifTrue: [ ^ self ]. ^ x asFloat @ y asFloat4020-21 2 odd >>> false1_In the following example, the group `3->#(34)` is filtered out because there is not 2 elements.w1001002018(Character space isAlphaNumeric >>> false16rDFEformat: collection "Format the receiver by interpolating elements from collection, as in the following examples:" "('Five is {1}.' format: { 1 + 4}) >>> 'Five is 5.'" "('Five is {five}.' format: (Dictionary with: #five -> 5)) >>> 'Five is 5.'" "('In {1} you can escape \{ by prefixing it with \\' format: {'strings'}) >>> 'In strings you can escape { by prefixing it with \' " "('In \{1\} you can escape \{ by prefixing it with \\' format: {'strings'}) >>> 'In {1} you can escape { by prefixing it with \' " ^ self species new: self size streamContents: [ :result | | stream | stream := self readStream. [ stream atEnd ] whileFalse: [ | currentChar | (currentChar := stream next) == ${ ifTrue: [ | expression index | expression := stream upTo: $}. index := Integer readFrom: expression ifFail: [ expression ]. result nextPutAll: (collection at: index) asString ] ifFalse: [ currentChar == $\ ifTrue: [ stream atEnd ifFalse: [ result nextPut: stream next ] ] ifFalse: [ result nextPut: currentChar ] ] ] ]allButFirst "Answer a copy of the receiver containing all but the first element. Raise an error if there are not enough elements." "#(a b c) allButFirst >>> #(b c)" ^ self allButFirst: 1: round: numberOfWishedDecimal "Round the decimal part of the receiver to be limited to the number of wished decimal. Only leave a fixed amount of decimal" "(1/3 round: 2) >>> (33/100) " "(111/100 round: 2) >>> (111/100) " ^self roundTo: (10 raisedTo: numberOfWishedDecimal negated)1.0100H#(2 4 6 8) , #(who do we appreciate) >>> #(2 4 6 8 who do we appreciate)2200r: r g: g b: b range: range "Return a color with the given r, g, and b components specified as integers in the range [0..r]. This avoids the floating point arithmetic in the red:green:blue: message and is thus a bit faster for certain applications (such as computing a sequence of colors for a palette)." "(Color r: 31 g: 0 b: 0 range: 31) >>> (Color r: 1.0 g: 0 b: 0)" ^ self basicNew initializeRed: r green: g blue: b range: range; yourself251dla3xAnswer the integer represented by the leading digits of the receiver, or nil if the receiver does not begin with a digit*Return collection printed as 'a, b and c' 1.Results are not defined non-integer arguments.75 That is true! #(foo bar)1553'Tests-unix-64-CodeImport-Tests-Test.xmladd: newObject "Include newObject as one of the receiver's elements. Answer newObject. ArrayedCollections cannot respond to this message." "({10. 20} asOrderedCollection add: 30) >>> 30" "({10. 20} asOrderedCollection add: 30; yourself) >>> {10. 20. 30} asOrderedCollection" "({10. 20} asOrderedCollection add: 20; yourself) >>> {10. 20. 20} asOrderedCollection" "({10. 20} asSet add: 30; yourself) >>> {10. 20. 30} asSet" "({10. 20} asSet add: 20; yourself) >>> {10. 20} asSet" self subclassResponsibility (1 sign);bar0difference: aCollection "Answer the set theoretic difference of two collections. Pay attention that the difference is not commutative, hence the order is important." "(#(a b c d e f) difference: #(a b z k))>>> #(#c #d #e #f)" "(#(a b z k) difference: #(a b c d e f)) >>> #(#z #k)" "('hello' difference: 'aeiou') >>> 'hll'" | set | set := self asSet removeAllFoundIn: aCollection; yourself. ^ self species withAll: set asArray200000002>> #(d)(Array streamContents: [:stream | #(10 20 30) keysAndValuesDo: [:key :value | stream nextPut: (key * 2 + value)]]) >>> #(12 24 36)PConverts a method selector into a test selector in form of #testOriginalSelector(((100@200) min: (330@400)) >>> (100@200)gT#(2 3 4 'fred') asOrderedCollection reversed >>> #('fred' 4 3 2) asOrderedCollection14#+ keywords >>> #('+')10004130fromString: string "Parse and materialize the STON representation in string" "(STON fromString: 'Point[1,2]') >>> (1@2)" ^ self fromStream: string readStreamA({1@2. 6@3. 2@ -1.} select: [:e| e x > e y]) >>> {(6@3). (2@ -1)} one:1;two:2;$' isEnclosingMark >>> false10.12345521hello!110000003110asDate "Convert the receiver in a date object." "(DateAndTime fromString: '2019-08-17T13:33:00+02:00') asDate printString >>> (Date newDay: 17 month: 8 year: 2019) printString" ^ Date starting: self010*(#(a b c d) after: #x ifAbsent: #z) >>> #z,Tests-unix-64-ClassAnnotation-Tests-Test.xmlabcDefghG(OrderedCollection new add: 42; add: 43; yourself) asArray >>> #(42 43)2697 true. := true310,'th is is29 a stRI4' squeezeOutNumber >>> 29-3.1479nprintPathOn: aStream "Print the receiver's path on aStream (without 'Path' prepended) using the default delimiter" "(String streamContents: [ :str| ((FileSystem workingDirectory / 'book-result' / 'W01-Welcome') relativeToReference: FileSystem workingDirectory) printPathOn: str]) >>> 'book-result/W01-Welcome'" self printPathOn: aStream delimiter: self delimitere0(11111111111111111100000000022222222222221'abc' startsWithDigit >>> false3((0@0 corner: 100@100) containsPoint: 0@0) >>> true1.02a : foo0a := 10Consider using any of printStringHex printStringBase: 16 printStringBase: 16 length: 8 padded: true storeStringHex storeStringBase: 16 storeStringBase: 16 length: 11 padded: true1'""" 0 """ | """ T """ T """ | """ 0 """0010001 That is true!34WWWWW*W EW*zzzzUnused variable >= aString "Answer whether the receiver sorts after or equal to aString. The collation order is simple ascii (with case differences)." " 'def' >= 'abc' >>> true" " 'def' >= 'def' >>> true" " 'abc' >= 'def' >>> false" ^ (self compare: self with: aString) >= 0101E([:x :y :z | x + y + z] valueWithPossibleArgs: #( 13 12 15)) >>> 40 2p(String streamContents: [:s | #(1 2 3) do: [:each | s << each asString] separatedBy: [s << ', ']]) >>> '1, 2, 3'15214000vector0 9(#(1 2 3) collect: [:each | each + 10]) >>> #(11 12 13) pharopppp X 6011def2#$) isConnectorPunctuation >>> falsev5Answer the receiver with leading and trailing quotes.1110d-1#('a') asCommaString >>> 'a'b1#( #( ) #'.' #':' #';' #'[' #']' #'{' #'}' #'^' )21264017('pharo' endsWith: 'aRo' caseSensitive: false) >>> true{Round the decimal part of the receiver to be limited to the number of wished decimal. Only leave a fixed amount of decimal.-Tests1Look at Collection>>reduce: for a related method.Point classSide >>> Point class30y.(#(2 3 4 5 5 6) copyWithout: 5) >>> #(2 3 4 6)n s n3'('pharo' beginsWith: 'phuro') >>> false Xuuuuuu n uuu n2000.4102113def12EAnswer an instance of me containing the same elements as aCollection.2.(#(40 41 42) asOrderedCollection at: 1) >>> 40P(#(1 2 3) flatCollect: [:each | { each. each+1 } ] as: Set) >>> #(1 2 3 4) asSet6' test test' withSeparatorsCompacted >>> ' test test'a9920u 0.01cool Xuuuuuu Xuu 0000222222266866555128#name asMutator >>> #name:mobazoa10000.8:book-result/W01-Welcome0620 :BBBBBB | bbbbbb s n 00 | T t | t nn. t 030200010005333344226007y0 ^ n 0s:1 e:5 s:7 e:8 s:10 e:13 13b133collect: aBlock "Evaluate aBlock with each of the receiver's elements as the argument. Collect the resulting values into a collection like the receiver. Answer the new collection. Note: the returned collection is of the same species. If this species does not accomdate the values of aBlock, look at collect:as:" "(#(10 20 30) collect: [:e | e+1]) >>> #(11 21 31)" "({10@20. 30@0} collect: [:e | e x]) >>> #(10 30)" "('Hello, world!' collect: [:e | e isLetter ifTrue: e ifFalse: $-]) >>> 'Hello--world-'" "((1 to: 10) collect: [:i| i gcd: 6]) >>> #(1 2 3 2 1 6 1 2 3 2)" "(#() collect: [:x | x+1]) >>> #()" | newCollection | newCollection := self copyEmpty. self do: [:each | newCollection add: (aBlock value: each)]. ^ newCollection00102230dAssuming the receiver contains GZIP compressed data, return a ByteArray with the decompressed data.2cc9' hello ' surroundedBySingleQuotes >>> ''' hello '''X(#(5 6 7 8) asOrderedCollection removeAllSuchThat: #even) >>> #(5 7) asOrderedCollection&2 seconds printString >>> '0:00:00:02'10defXactions"100000000 decimalDigitLength >>> 913Class structural inspection - Class/Metaclass shift #'hello''pcloseTo: aPoint "Return whether the receiver is close to the argument aPoint. The precision for point holding floats is defined by Float >> #closeTo:precision:. For points holding integer, closeTo: corresponds to equalsTo:" "((100@200) closeTo: (100@200)) >>> true" "((100@201) closeTo: (100@200)) >>> false" ^ (x closeTo: aPoint x) and: [ y closeTo: aPoint y ]!foo: x bar: y "d" "e" ^ x "f" "g"T(#(10 20) asSet fillFrom: 'ABC' with: [:x|x asciiValue]) >>> #(10 20 65 66 67) asSet0vector0LRemove each element from the receiver and leave it empty. ArrayedCollections cannot respond to this message. There are two good reasons why a subclass should override this message: 1) the subclass does not support being modified while being iterated 2) the subclass provides a much faster way than iterating through each element](Color colorFrom: #(blue darker)) >>> (Color r: 0.0 g: 0.0 b: 0.9198435972629521 alpha: 1.0) 2First N/2 ... last N/22 between: 0-> anObject "Answer an Association between self and anObject" "The following example creates an association whose key is number 1 and value string 'one'." "(1 -> 'one') key >>> 1" "(1 -> 'one') value >>> 'one'" "Note that key and value can be ANY object." ^ Association key: self value: anObjectisInstanceSide "Return true whether the receiver is a class (in a couple class/metaclass sense)." "Point isInstanceSide >>> true" "Point class isInstanceSide >>> false" ^ self isClassSide notjoin: aSequenceableCollection "Append the elements of the argument, aSequenceableCollection, separating them by the receiver." "(Character space join: #('Pharo' 'is' 'cool')) >>> 'Pharo is cool'" ^ self asString join: aSequenceableCollection57a := a. [ :a [ :a ]. a := ac13uEvaluating disjunction (OR). Evaluate the argument. Then answer true if either the receiver or the argument is true.1 'Number': 5255flongonexAnswer a copy of the receiver containing all but the first n elements. Raise an error if there are not enough elements.9humanReadableByteSizeString "Return the receiver as a string with the adequate file size identified, e.g. '50 KB'. The difference with humanReadableByteSISizeString is that the current one counts by 1024 and not 1000." "(1000 * 1000 * 1000) humanReadableByteSizeString >>> '953.67 MB'" "(1000 * 1000 * 1000) humanReadableSISizeString >>> '1.00 GB'" "(1024 * 1024 * 1024) humanReadableByteSizeString >>> '1.00 GB'" ^ self humanReadableByteSizeStringPrecision: 2\(Array new: 3 streamContents: [ :out | 3 timesRepeat: [ out nextPut: 42 ] ]) >>> #(42 42 42)2$0 isDecimalDigit >>> true1.01000000pairsDo: aBlock "Evaluate aBlock with my elements taken two at a time. If there's an odd number of items, ignore the last one. Allows use of a flattened array for things that naturally group into pairs. See also pairsCollect:" "(Array streamContents: [:s | #(1 'fred' 2 'charlie' 3 'elmer') pairsDo: [:a :b | s nextPut: b; nextPut: a]]) >>> #('fred' 1 'charlie' 2 'elmer' 3)" 1 to: self size // 2 do: [ :index | aBlock value: (self at: 2 * index - 1) value: (self at: 2 * index) ]00111100044442222300556666GcontractTo: smallSize "return myself or a copy shortened by ellipsis to smallSize" "('abcd' contractTo: 10) >>> 'abcd'" "('Pharo is really super cool' contractTo: 10) >>> 'Phar...ool'" "('A clear but rather long-winded summary' contractTo: 18) >>> 'A clear ...summary'" | leftSize | self size <= smallSize ifTrue: [^ self]. "short enough" smallSize < 5 ifTrue: [^ self copyFrom: 1 to: smallSize]. "First N characters" leftSize := smallSize-2//2. ^ self copyReplaceFrom: leftSize+1 "First N/2 ... last N/2" to: self size - (smallSize - leftSize - 3) with: '...'Answer whether text matches the pattern in this string. Matching ignores upper/lower case differences. Where this string contains #, text may contain any character. Where this string contains *, text may contain any sequence of characters.1z"Evaluate aBlock for each of the receiver's elements (key/value associations). If any non-association is within, the error is not caught now, but later, when a key or value message is sent to it. The point of this method it to do the *right thing* on Dictionaries and related classes. -1cfghi#>> isUnary >>> false6000022444544499AABAAAECCCCDDAAF99888888777G4433333333H-11:=2212131Foo2test te string20(#(x y z) atLast: 1) >>> #z100221!(2 ifNotNil: [ :o | o + 3]) >>> 51221030 nnnnnnnuu3yAnswer the number of digits printed out in base 10. Note that this only works for positive SmallIntegers up to 64-bits.*streamContents: blockWithArg "Build an instance of the receiver by writing elements to a stream. More specifically: blockWithArg will be given a WriteStream on an instance of the receiver. Inside blockWithArg you write elements to the stream to build up the collection. At the end, the contents of the stream up to that point will be returned. Note that the underlying collection grows as needed." "(Array streamContents: [ :out | out nextPut: 1; nextPutAll: #(2 3 4); nextPut: 5 ]) >>> #(1 2 3 4 5)" ^ self new: 100 streamContents: blockWithArg0"foo: thisContext ^ thisContext + 17groupsOf: n atATimeDo: aBlock "Evaluate aBlock with my elements taken n at a time. Ignore any leftovers at the end. Allows use of a flattened array for things that naturally group into groups of n. If aBlock has a single argument, pass it an array of n items, otherwise, pass the items as separate arguments. See also pairsDo:" "(Array streamContents: [:stream | #(10 20 30 40 50) groupsOf: 2 atATimeDo: [:first :second | stream nextPut: (first + second)]]) >>> #(30 70)" | passArray | passArray := (aBlock numArgs = 1). n to: self size by: n do: [:index | | args | args := (self copyFrom: index - n + 1 to: index) asArray. passArray ifTrue: [ aBlock value: args ] ifFalse: [ aBlock valueWithArguments: args ]]{1@5. 2@3. 4@7} sum >>> (7@15)10e5Add the argument, newObject, as an element of the receiver. Put it in the sequence just succeeding oldObject. Answer newObject. Raises an error if oldObject is not found1112p Xsss 653EMight be compiled inline for speed, see RBMessageNode>>#isInlineIfNil3test longone string1223>Add each element of aCollection at my end. Answer aCollection.cMReturn a collection of pharo comment nodes: expressions following the patternfromStringWithComments: string "Parse and materialize the STON representation in string, skipping C-style comments" "(STON fromStringWithComments: 'Point[1,/*comment*/2]') >>> (1@2)" ^ self fromStreamWithComments: string readStream2120$] isClosePunctuation >>> true2seperatedPerform an action specified as aBlock (with a start and end argument) to each of the indices of the receiver element that have been identified by splitting the receiver using the splitter argument. splitter - can be a subsequence, a Block or a Regex (String receiver only). Any other object used as a splitter is treated as an Array containing that object.9((1 to: 10 by: 2) sorted: [:a :b| a>=b]) >>> #(9 7 5 3 1)100000333Returns whether the receiver contains the argument.'2' initialIntegerOrNil >>> 2-23.4567 00355544666033-' test ' withSeparatorsCompacted >>> ' test 'F(1 milliSecond + 2 nanoSeconds) printString >>> '0:00:00:00.001000002'2(#(10 20 30) \\ #(1 3 4.0) >>> #(0 2 2.0);([:x | x + 1] valueWithPossibleArgs: #( 13 12 15)) >>> 14 ;Convert to a ByteArray with the ascii values of the string.6'2 between: 0 and: 4' findSelector >>> #'between:and:'2hello3202 X | t t t | t s t s t>> 1" "1 slowFactorial >>> 1" "2 slowFactorial >>> 2" "3 slowFactorial >>> 6" "4 slowFactorial >>> 24" "5 slowFactorial >>> 120" "6 slowFactorial >>> 720" self > 0 ifTrue: [ ^ self * (self - 1) slowFactorial ]. self = 0 ifTrue: [ ^ 1 ]. self error: 'Not valid for negative integers'&(AsciiCharset toUppercase: $a) >>> $A."'3.1415' initialIntegerOrNil >>> 3hexString "Returns a string representation of the receiver as hexadecimal, prefixed with 16r." "Consider using any of printStringHex printStringBase: 16 printStringBase: 16 length: 8 padded: true storeStringHex storeStringBase: 16 storeStringBase: 16 length: 11 padded: true" "12 hexString >>> '16rC'" "10 hexString >>> '16rA'" "-10 hexString >>> '-16rA'" ^ self storeStringBase: 16n Xe2412(#(1 5 10) findFirst: [ :each | each > 15 ]) >>> 0 %OrderedCollection new capacity >>> 1054writeStreamDo: aBlock "Evaluates the argument with the write stream of the collection. Answers the result." "(#() writeStreamDo: [ :stream | stream nextPut: '4'; space; nextPutAll: '34'. stream contents ]) >>> {'4'. Character space. $3. $4}" ^ aBlock value: self writeStream22(#(11 22 33) asOrderedCollection atWrap: 5) >>> 220"(true or: [Error signal]) >>> true01!(100.1@200.9) floor >>> (100@200)e16r41001identityIndexOf: anElement ifAbsent: exceptionBlock "Answer the index of anElement within the receiver. If the receiver does not contain anElement, answer the result of evaluating the argument, exceptionBlock." "(#(a b c d e) identityIndexOf: #c ifAbsent: 7) >>> 3" "(#(a b c d e) identityIndexOf: #x ifAbsent: 7) >>> 7" 1 to: self size do: [:i | (self at: i) == anElement ifTrue: [^ i]]. ^ exceptionBlock value!'ABA' asByteArray >>> #[65 66 65]2r3bbytesCount "Answer the number of indexable fields in the receiver. This value is the same as the largest legal subscript. Included so that a SmallInteger can behave like a LargePositiveInteger or LargeNegativeInteger." "32768 == (1 bitShift: 15)" "32768 bytesCount >>> 2" "65536 == (1 bitShift: 16)" "65536 bytesCount >>> 3" | value length | length := 1. value := self. value >= 0 ifTrue: [[value > 255] whileTrue: [value := value bitShift: -8. length := length + 1]] ifFalse: [[value < -255] whileTrue: [value := value bitShift: -8. length := length + 1]]. ^length2hello20R('A clear but rather long-winded summary' contractTo: 18) >>> 'A clear ...summary'60225+ 1n s n X35Optimized version of Collection>>#reject:thenCollect:(1]2)00113311xb0N|s| (#(1 2) detect: [ :each | each even ] ifFound: [ :e | s:=e*10 ]). s >>> 20l({10. 20} asOrderedCollection add: 30 withOccurrences: 2; yourself) >>> {10. 20. 30. 30} asOrderedCollectionx2^This is implemented using a variant of the normal inject:into: pattern. The reason for this is that it is not known whether we're in the normal number line, i.e. whether 0 is a good initial value for the sum. Consider a collection of measurement objects, 0 would be the unitless value and would not be appropriate to add with the unit-ed objects. That is true!2410rremove: oldObject "Remove oldObject from the receiver's elements. Answer oldObject unless no element is equal to oldObject, in which case, raise an error. ArrayedCollections cannot respond to this message." "(#(10 20 10) asOrderedCollection remove: 10; yourself) >>> #(20 10) asOrderedCollection" ^ self remove: oldObject ifAbsent: [self errorNotFound: oldObject][ :a b@foo:020/Answer how many elements the receiver contains.(#(w x y z) atPin: 4) >>> #z56>Tests-unix-64-Calypso-SystemPlugins-FFI-Queries-Tests-Test.xml0xa7corner: aPoint "Answer a Rectangle whose origin is the receiver and whose corner is aPoint. This is one of the infix ways of expressing the creation of a rectangle." "(10@10 corner: 100@100) >>> (10@10 corner: 100@100)" ^ Rectangle origin: self corner: aPoint10010qPrint elements on a stream separated with a delimiter String like: 'a, b, c' Uses #asString instead of #print:.20x(printOn: aStream base: base length: minimum padded: zeroFlag "Return a String representation of this number in base b with a minimum length and padded by 0 if zeroFlag is set" "(String streamContents: [ :s | 10 printOn: s base: 10 length: 4 padded: true] ) >>> '0010'" "(String streamContents: [ :s | -10 printOn: s base: 10 length: 4 padded: true] ) >>> '-010'" | prefix | prefix := self negative ifTrue: ['-'] ifFalse: [ '' ]. self print: (self abs printStringBase: base) on: aStream prefix: prefix length: minimum padded: zeroFlagindexOf: anElement ifAbsent: exceptionBlock "Answer the index of the first occurrence of anElement within the receiver. If the receiver does not contain anElement, answer the result of evaluating the argument, exceptionBlock." "(#(a b c d e) indexOf: #c ifAbsent: 7) >>> 3" "(#(a b c d e) indexOf: #x ifAbsent: 7) >>> 7" ^ self indexOf: anElement startingAt: 1 ifAbsent: exceptionBlock XXXX""XXX""XZat: firstKey at: secondKey "Return the object stored in the second dictionary at secondKey. The second dictionary is accessed via the key firstKey." " (Dictionary new at: #top at: #below1 put: 1; at: #top at: #below1 put: 2; at: #top at: #below1) >>> 2" ^ self at: firstKey at: secondKey ifAbsent: [self errorKeyNotFound: secondKey] 0001003343500 28/9/201820Answer the index of the first occurrence of any element included in aCollection after start within the receiver. If the receiver does not contain anElement, answer zero, which is an invalid index.2 'abc' <= 'def' >>> true1 slowFactorial >>> 100#n00.01[Answer the sixth element of the receiver. Raise an error if there are not enough elements.120.0100#((())) size >>> 1 salkjsdlkgfee0:B :X$('hello' includesAll: 'ho') >>> truefourifTrue: alternativeBlock "Since the condition is false, answer the value of the false alternative, which is nil. Execution does not actually reach here because the expression is compiled in-line." "(false ifTrue: [ 'This statement is true!' ]) >>> nil" ^nilb1*Primitive does not fail properly right nown ssscollect: aBlock "Evaluate aBlock with each of the receiver's elements as the argument. Collect the resulting values into a collection like the receiver. Answer the new collection." "(#(1 2 3) collect: [:each | each + 10]) >>> #(11 12 13) " | newCollection | newCollection := self species new: self size. 1 to: self size do: [:index | newCollection at: index put: (aBlock value: (self at: index))]. ^ newCollection#but use sum or inject:into: instead/(23.4567 printShowingDecimalPlaces: 0) >>> '23'4002Calculate the average of a collection, return a CollectionIsEmpty exception if the collection is empty. Look averageIfEmpty: aBlock0vector034('action' alike: 'name') >>> 0.'Return collection printed as 'a, b, c' b0.0x4(| x "a" "b" "c" | "d" x := 5 "e" "f" "g"-962WindexOf: anElement startingAt: start "Answer the index of the first occurrence of anElement after start within the receiver. If the receiver does not contain anElement, answer 0." "(#(a b c d e) indexOf: #c startingAt: 2) >>> 3" "(#(a b c d e) indexOf: #c startingAt: 4) >>> 0" ^self indexOf: anElement startingAt: start ifAbsent: 010`Answer a copy of the receiver that does not contain any elements equal to those in aCollection.1$' isSeparator >>> false-25(Date year: 2018 month: 9 day: 28) weekdayIndex >>> 63255do0vector042100vector03--stage-name=Tests-unix-64000e2after: target ifAbsent: exceptionBlock "Answer the element after target. Answer the result of evaluation the exceptionBlock if target is not in the receiver, or if there are no elements after it." "(#(a b c d) after: #b ifAbsent: #z) >>> #c" "(#(a b c d) after: #x ifAbsent: #z) >>> #z" | index | index := self indexOf: target. ^ (index = 0 or: [index = self size]) ifTrue: [exceptionBlock value] ifFalse: [self at: index + 1]04(#(1 2 3) reduce: [ :a :b | a + b ]) >>> (1 + 2 + 3) and #('''' unescapeCharacter: $') >>> ''a:fooe1 Point[1,2]01013030000010000002044500011121333314110010.0$((1/3)@(2/2)) isFloatPoint >>> falseZEvaluate twoArgBlock with corresponding elements from this collection and otherCollection.Perform an action specified as aBlock (with a start and end argument) to each of the indices of the receiver element that have been identified by splitting the receiver using the splitter argument. optimized version for single delimiters.191(0.98 printShowingDecimalPlaces: 5) >>> '0.98000'2# Point[1,2]Pharo3.14792r00101000 lowBit >>> 43 u nn. ^ u-Tests-unix-64-ThreadedFFI-UFFI-Tests-Test.xml$> isControlOther >>> false'65555544444433332222211111100000000000041f310bR((OrderedCollection new add: 42; yourself) add: 43; yourself) asArray >>> #(42 43)111 9 \\ 4 >>> 11-10abc40)(1.2 arcTan: -1.5) >>> 2.466851711366240732abc.(Color h: 0 s: 1 v: 1 alpha: 1) >>> Color red 300 #[ 1 -1 2 ]3,(#(1 2 3) noneSatisfy: [:x|x odd]) >>> false302milliSecond "1 milliSecond printString >>> '0:00:00:00.001'" "(1 second + 1 milliSecond) printString >>> '0:00:00:01.001'" ^ self milliSeconds2c20 10000000000020 hello world!reject: aBlock "Evaluate aBlock with each of the receiver's elements as the argument. Collect into a new collection like the receiver only those elements for which aBlock evaluates to false. Answer the new collection." "(#(1 2 3 4 5) reject: #even) >>> #(1 3 5)" "('Hello, World!' reject: #isLetter) >>> ', !'" "((1 to: 8) reject: #isPrime) >>> #(1 4 6 8)" ^ self select: [ :element | (aBlock value: element) == false ]a17(1 to:10) size >>> 10 $Tests-unix-64-Morphic-Tests-Test.xml kkk XX kkk#(1 5 10 -4) min >>> -41/('pharo' beginsWith: 'pharo-project') >>> false[ 1 + 21 That is true!/(2.567 printShowingDecimalPlaces: 2) >>> '2.57'((2@2) + 200) >>> (202@202)211130040vector010bb00shuffledBy: aRandom "Durstenfeld's version of the Fisher-Yates shuffle" "({1. 2. 3. 4. 5} shuffleBy: (Random seed: 42)) >>> #(1 2 5 4 3)" ^ self copy shuffleBy: aRandom1821020010=([{} median] on: CollectionIsEmpty do: [ 'oops' ]) >>> 'oops'!Return a positive nonzero extent.02 book-resultcool101.0foo:fredFcopyWithoutDuplicates "Answer a copy of the receiver without any duplicated elements" "(#(2 3 4 4 5 6) copyWithoutDuplicates asSet) >>> #(2 3 4 5 6) asSet" "(#('do' 'la' 'si' 'do' 'la') copyWithoutDuplicates) >>> #('la' 'do' 'si')" "(#(#do #la #si #do #la) copyWithoutDuplicates) >>> #(#la #do #si)" ^ self asSet asArray4pReturns the keywords of the provided selector. If the receiver is not keyword-based, an empty array is returned.20 between: 11141251u <000000 1 + . ^ 21'('hello' union: 'world') >>> 'whlorde' 30@504 foo: arg ^ arg min: arg + 2; abs14(STON fromStream: 'Point[1,2]' readStream) >>> (1@2)2b12004330>( #((3 4) (1 2)) flatCollect: [:each | each ] ) >>> #(3 4 1 2)1ppp < <<<< n>> STON listClass 0:00:02:00y"'foo10foo' endsWithDigit >>> false+('Hello, World!' count: #isLowercase) >>> 83#3{ifTrue: trueAlternativeBlock ifFalse: falseAlternativeBlock "If the receiver is true (i.e., the condition is true), then answer the value of the argument trueAlternativeBlock. If the receiver is false, answer the result of evaluating the argument falseAlternativeBlock. If the receiver is a nonBoolean then create an error notification. Execution does not actually reach here because the expression is compiled in-line." "(true ifTrue: [ 'That is true!' ] ifFalse: [ 'That is false!' ]) >>> 'That is true!'" "(false ifTrue: [ 'That is true!' ] ifFalse: [ 'That is false!' ]) >>> 'That is false!'" self subclassResponsibility`(Color colorFrom: Color blue darker)>>> ((Color r: 0.0 g: 0.0 b: 0.9198435972629521 alpha: 1.0))ba$Returns a number between 0.0 and 1.0Number1.010"(16rFF digitAt: 1 base: 16) >>> 15 hello worlda7(#(11 22 33) atWrap: 4) >>> 11%Tests-unix-64-Sindarin-Tests-Test.xml-(23 printShowingDecimalPlaces: 2) >>> '23.00' ppp < < X 99-120000 r160.04('*foo*zort' match: 'afoodezortorfoo3zort') >>> true2''fred the bear' lastSpacePosition >>> 91. Test package ends with suffix -Tests. Suffix is case sensitive. 2. Or test package contains '-Tests-' in middle. Some examples: 5#() asByteArray >>> #[]13 TestFailure an OrderedCollection(ReCompositeExtractSetUpMethodRefactoring) should have been empty RBAbstractTransformationTest(TestAsserter)>>assert:description:resumable: RBAbstractTransformationTest(TestAsserter)>>assert:description: RBAbstractTransformationTest(TestAsserter)>>assertEmpty: RBAbstractTransformationTest>>testAPI RBAbstractTransformationTest(TestCase)>>performTest 04114531& aBoolean "Evaluating conjunction. Evaluate the argument. Then answer true if both the receiver and the argument are true." "true & true >>> true" "true & false >>> false" "false & true >>> false" "false & false >>> false" self subclassResponsibility 'h' 2!(10 printStringBase: 10) >>> '10'Point isClassSide >>> falsee611.9283u(Array streamContents: [:stream | #(1 2 3) reverseWith: #(4 5 6) do: [:a :b | stream nextPut: (a + b)]]) >>> #(9 7 5)/foo "a" < "b" bar: "c" 1 "d" z: "e" 2 "f" > "g"9(Character space asString, 'a') isAllSeparators >>> false233942306114associationsDo: aBlock "Evaluate aBlock for each of the receiver's elements (key/value associations). If any non-association is within, the error is not caught now, but later, when a key or value message is sent to it. The point of this method it to do the *right thing* on Dictionaries and related classes. " "(String streamContents: [:s| {'one'->1. 'two'->2} associationsDo: [:a| s << a key << ':' << a value asString << ';']]) >>> 'one:1;two:2;'" "(String streamContents: [:s| {'one'->1. 'two'->2} asOrderedDictionary associationsDo: [:a| s << a key << ':' << a value asString << ';']]) >>> 'one:1;two:2;'" self do: aBlockdef33028subtractDays: dayCount "((Date year: 2018 month: 9 day: 28) subtractDays: 1) printString >>> '27 September 2018'" ^ (self asDateAndTime - (dayCount days)) asDate-6]('a000' asWideString sameAs: (ByteArray with: 97 with: 0 with: 0 with: 0) asString) >>> false1 a1a10(#(10 20) asSet copyWith: 20) >>> #(10 20) asSet$1 isDigit >>> true1false ==> [false] >>> true 211001026ppp ^ 0 | T | t n. 1 :B | b 1 ssssss nn s t 0 ssssssum: aBlock "This is implemented using a variant of the normal inject:into: pattern. The reason for this is that it is not known whether we're in the normal number line, i.e. whether 0 is a good initial value for the sum. Consider a collection of measurement objects, 0 would be the unitless value and would not be appropriate to add with the unit-ed objects." "(#(1 -4 -10 1) sum: #abs) >>> 16" "({1@ -4. -10@1} sum: #abs) >>> (11@5)" "(#() sum: #abs) >>> 0" ^ self sum: aBlock ifEmpty: [ 0 ]6070*Evaluate aBlock with each of the receiver's elements as the argument. Collect the resulting values into a collection like the receiver. Answer the new collection. Note: the returned collection is of the same species. If this species does not accomdate the values of aBlock, look at collect:as:2223|odd " 0 odd >>> false" " 2 odd >>> false" "-2 odd >>> false" " 3 odd >>> true" "-3 odd >>> true" ^(self bitAnd: 1) = 1y2 ab ab ac de^Answer whether the receiver is a valid token-character -- letter, digit, underscore, or colon.4106(#(1 2 3 4) asSet intersection: #() asSet) >>> Set newworld1040071110.2p(#(10 20) asOrderedCollection fillFrom: 'ABC' with: [:x|x asciiValue]) >>> #(10 20 65 66 67) asOrderedCollectiona331a30a2 ('foo*' match: 'foozo') >>> truepharo4(10 to: 25 by: 5) asCommaString >>> '10, 15, 20, 25'300Tests-unix-64-Collections-Streams-Tests-Test.xml#(2 6 7) average >>> 5 301721kIf the receiver is not nil, pass it as argument to the ifNotNilBlock block. else execute the nilBlock block4101 '11abc' startsWithDigit >>> true1+^203$Character space isSeparator >>> trueG((2989 storeStringBase: 16) copyFrom: 4 to: 6) , ' boy!' >>> 'BAD boy!'crindexOfAnyOf: aCollection "Answer the index of the first occurrence of any element included in aCollection within the receiver. If the receiver does not contain anElement, answer zero, which is an invalid index." "(#(a b c d e) indexOfAnyOf: #(x y c)) >>> 3" "(#(a b c d e) indexOfAnyOf: #(x y z)) >>> 0" ^self indexOfAnyOf: aCollection startingAt: 1 ifAbsent: [0]v:(10 to: 25 by: 5) asCommaStringAnd >>> '10, 15, 20 and 25''See `escapeCharacter:` for the opposite13(#(10 20) asSet copyWith: 30) >>> #(10 20 30) asSet7abcdefgh1>> 'zk cd zk ef zk'" | idx | self = oldSubstring ifTrue: [ ^ newSubstring copy ]. oldSubstring isEmpty ifTrue: [ ^ self copy ]. idx := 1. ^ self species new: self size streamContents: [ :stream | | foundIdx | [ (foundIdx := self findString: oldSubstring startingAt: idx) isZero ] whileFalse: [ stream next: (foundIdx - idx) putAll: self startingAt: idx; nextPutAll: newSubstring. idx := foundIdx + oldSubstring size ]. idx <= self size ifTrue: [ stream next: (self size - idx + 1) putAll: self startingAt: idx ] ]aFileLocator temp / ('{1}.ston' format: { Time millisecondClockValue }) in: [ :file | file writeStreamDo: [ :out | STON put: 1@2 onStream: out ]. file readStreamDo: [ :in | STON fromStream: in ] ]200It is always a number or zero:100[ | | 0210.04(#(a b c d e) identityIndexOf: #c ifAbsent: 7) >>> 31z('Hello' includes: $l) >>> truedef>(#(a b a d a) lastIndexOf: #a startingAt: 1 ifAbsent: 7) >>> 11false & true >>> falseMessage pattern expected7foo:bar:atRandom: aRandom weighting: aBlock "Retrieve an element with a probability related to the weighting block. The block takes an element as argument and provides a positive number as result (the retative weight). An implicit normalization is performed on all weights. Multiple occurences of equal elements multiply the probability to be choosen. Warning: empty collections and negative weights will signal errors." "({'1'. '2'. '3'. '4'} atRandom: (Random seed: -42) weighting: [ :each | each asInteger ]) >>> '4'" "({'1'. '1'. '2'. '1'. '1'} atRandom: (Random seed: -42) weighting: [ :each | each asInteger ]) >>> '1'" | sum | self emptyCheck. sum := self sum: aBlock. sum := sum * aRandom next. self do: [ :each | | weight | weight := aBlock value: each. weight < 0 ifTrue: [ self error: 'Unexpected negative weight' ]. sum := sum - weight. sum <= 0 ifTrue: [ ^ each ] ]. self error: 'This should not happen''a' asByteArray >>> #[97]z(SmallDictionary newFromKeys: #(#x #y) andValues: #(3 6)) >>> (SmallDictionary new at: #x put: 3; at: #y put: 6 ;yourself)foo1.0isClassSide "Return true whether the receiver is a metaclass (in a couple class/metaclass sense)." "Point isClassSide >>> false" "Point class isClassSide >>> true" ^self == self classSideth is is29 a stRI421000>[ #( #( #( #[ ] #[ ] #'[' #']' ) ) ) "a" "b" "c" "d" "e" "f" ]2133Umedian "Return the middle element, or as close as we can get. The collection must not be empty." "{1 . 2 . 3 . 4 . 5} median >>> 3" "{1 . 2 . 4 . 5} median >>> 3" "{1 . 2 . 5 . 5} median >>> (7/2)" "{3} median >>> 3" "([{} median] on: CollectionIsEmpty do: [ 'oops' ]) >>> 'oops'" self emptyCheck. ^ self asSortedCollection medianc10aBc0 :B | X b X X0:(100@90 isInsideRectangle: (0@0 corner: 100@100))>>> false!(111/100 round: 2) >>> (111/100) 1312Return an instantiated color from parm. If parm is already a color, return it, else return the result of my performing it if it's a symbol or, if it is a list, it can either be an array of three numbers, which will be interpreted as RGB values, or a list of symbols, the first of which is sent to me and then the others of which are in turn sent to the prior result, thus allowing entries of the form #(blue darker). Else just return the thingI(#(1 2 3) bind: [ :first :second :third | first + second + third ]) >>> 61AAnswer whether the receiver's final character represents a digit.9Tests-unix-64-NewTools-SpTextPresenterDecorators-Test.xml012#(-10 printStringBase: 10) >>> '-10'0vector0Uppp ^ 0 :BB :BB :BB :BB :BB :BB :BB :BB :BB :BBB :BBB :BBB :BBB :BBB :BBB :BBB | bb 00'Tests-unix-64-UnifiedFFI-Tests-Test.xml(true xor: [false]) >>> true2( 1 + 2asDigitsToPower: anInteger do: aBlock "Repeatedly value aBlock with a single Array. Adjust the collection so that aBlock is presented all (self size raisedTo: anInteger) possible combinations of the receiver's elements taken as digits of an anInteger long number." "(Array streamContents: [:stream | (0 to: 1) asDigitsToPower: 4 do: [:each | stream nextPut: each copy]]) >>> #(#(0 0 0 0) #(0 0 0 1) #(0 0 1 0) #(0 0 1 1) #(0 1 0 0) #(0 1 0 1) #(0 1 1 0) #(0 1 1 1) #(1 0 0 0) #(1 0 0 1) #(1 0 1 0) #(1 0 1 1) #(1 1 0 0) #(1 1 0 1) #(1 1 1 0) #(1 1 1 1))" | aCollection | aCollection := Array new: anInteger. self asDigitsAt: 1 in: aCollection do: aBlock3(1/3.0s round: 4) >>> 0.3333s4 .Tests-unix-64-Roassal-Animation-Tests-Test.xmlEvaluate aBlock with each of the receiver's elements as the argument. Collect the resulting values into aCollection. Answer aCollection.atWrap: index "Answer the index'th element of the receiver. If index is out of bounds, let it wrap around from the end to the beginning until it is in bounds." "Optimized to go through the primitive if possible" "(#(11 22 33) atWrap: 3) >>> 33" "(#(11 22 33) atWrap: 2) >>> 22" "(#(11 22 33) atWrap: 4) >>> 11" ^ self at: index - 1 \\ self size + 1unzipped "Assuming the receiver contains GZIP compressed data, return a ByteArray with the decompressed data." "#[31 139 8 0 0 0 0 0 0 0 99 100 98 6 0 29 128 188 85 3 0 0 0] unzipped >>> #[1 2 3]" ^ (GZipReadStream on: self) upToEnd0.667#. 16L('Hello, World!' select: #isLetter thenCollect: #uppercase) >>> 'HELLOWORLD'31161xc This should be fast: 1. Integer>>to:do: is inlined in the bytecode (no block). 2. The Array>>at: callsite should be monomorph to a primitive method. 1Unknown characterxEvaluate aBlock with each of the receiver's elements as the argument. Answer the number of elements that answered true.()10 ('*baz' match: 'mobaz') >>> true1PThe receiver is assumed to represent radians. Answer the conversion to degrees.'AA' asHex >>> '16r4116r41'%#(0 1 2) * #(10 20 30) >>> #(0 20 60)0 ^ n 0. n. ^ n X X X15 2r3-1929abcdasIdentitySet "Return a new IdentitySet based on self." "{ 2. 1+1 } asIdentitySet size >>> 1" "{ 'foo'. ('fo','o') } asIdentitySet size >>> 2" ^(IdentitySet new: self size) addAll: self; yourselfUintersection: aCollection "Answer the set theoretic intersection of two collections." "(#(1 2 3 4) intersection: #(3 4 5)) >>> #(3 4)" "(#(1 2 3 4) intersection: #()) >>> #()" "(#() intersection: #(1 2 3 4)) >>> #()" "('hello' intersection: 'world') >>> 'ol'" ^ self species withAll: (self asSet intersection: aCollection) asArrayAnswer a comparison code telling how the receiver sorts relative to aString: 1 - before 2 - equal 3 - after. The collation sequence is ascii with case differences ignored. To get the effect of a <= b, but ignoring case, use (a compare: b) <= 2.CasBit "Answer 1 since receiver is true." "true asBit >>> 1" ^ 17*(-0.5 arcTan: -0.5) >>> -2.3561944901923459Answers a Dictionary based on collection of Associations.(1@2.2) isFloatPoint >>> false'Return a new IdentitySet based on self.2({'hel','lo'. 'world'} includes: 'hello') >>> true [:a| | |b], #(1 2 4) sum >>> 7z2&(Color white asColorref) >>> 16777215191(1 sign: 2) ; bar0d400chello7'('hello' difference: 'aeiou') >>> 'hll'021!'234' initialIntegerOrNil >>> 23420010pLike asArray: but return a copy if self is already an Array. This ensures that the result is always a new Array2Answer whether the receiver contains any elements.42111 XXXXXXXXXXXXX115PharoisFinalQuote "Return whether the receiver is https://www.compart.com/en/unicode/category/Pf" "$' isFinalQuote >>> false" ^ self characterSet isFinalQuote: self1017a!('pharo' beginsWith: '') >>> true28a({'1'. '2'. '3'. '4'} atRandom: (Random seed: -42) weighting: [ :each | each asInteger ]) >>> '4'13FLNegative8SmallIntegerCluster  *(bFLFixedObjectClusterd testSelector expectedFailstestingEnvironment repositorydictFLFixedObjectCluster testSelector expectedFailscanvasshapesFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLFixedObjectClusterFLFixedObjectCluster testSelector expectedFailsmonitor classFactory logBuilderFLFixedObjectClusterD testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsparametersToUseFLFixedObjectClusterg testSelector expectedFailstestingEnvironmentFLFixedObjectCluster testSelector expectedFailstestingEnvironmenttestEnvironmentFLFixedObjectCluster& testSelector expectedFailslocatorFLFixedObjectCluster  testSelector expectedFailseditortextAreaFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster O testSelector expectedFailsparsersubjectFLFixedObjectCluster; testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLFixedObjectCluster testSelector expectedFailsplotxyFLFixedObjectCluster   testSelector expectedFails classFactory impactFilterFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterc testSelector expectedFailstestingEnvironmenttestEnvironmentFLFixedObjectCluster testSelector expectedFails filesystemFLFixedObjectCluster" testSelector expectedFailsmodel environmentFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster* testSelector expectedFailsfactorybuilderFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLFixedObjectCluster testSelector expectedFailscommandFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsreg1reg2resultFLFixedObjectClusterN testSelector expectedFailsFLFixedObjectCluster$ testSelector expectedFailstestingEnvironmentFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster2 testSelector expectedFailsaBlockcontextOfaBlockFLFixedObjectCluster testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster testSelector expectedFailsmorphFLFixedObjectCluster testSelector expectedFailstestingEnvironmentnonEmpty5ElementsNoDuplicateempty elementNotInelementTwiceIncollectionWithEqualElementsnonEmpty1Element"collectionWithSameAtEndAndBegining collectionWith1TimeSubcollection collectionWith2TimeSubcollectioncollectionNotIncludednonEmptySubcollectionelementInNonEmptyreplacementCollectionSameSizesortedCollectionFLFixedObjectCluster testSelector expectedFailsclassDefinitionFLFixedObjectClusterd testSelector expectedFailsticker schedulersuspendedDelaysHeapFLFixedObjectClustert testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster testSelector expectedFailsmergerFLFixedObjectCluster testSelector expectedFailscompletionClasssystemNavigationfetcherexpectedElementsFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsscopeSelectorPresenterFLFixedObjectClusterW testSelector expectedFailspointFLFixedObjectCluster, testSelector expectedFailsclassDefinitionFLFixedObjectCluster testSelector expectedFails newBuilder originClass usedTrait superClassFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsrootfileSystemModelfileSystemPresenterfilterFLFixedObjectCluster! testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectCluster. testSelector expectedFailscompletionClasssystemNavigationfetcherFLFixedObjectCluster  testSelector expectedFails preferences persistencecheckerFLFixedObjectClusterY testSelector expectedFailsmockuiWaitingSemaphoreFLFixedObjectClusterb testSelector expectedFailsamStateFLFixedObjectCluster  testSelector expectedFailspreviousBreakpointsclsoldSystemAnnouncerFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster 0 testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectClustere testSelector expectedFailsFLFixedObjectCluster,nameescapingindexscopeusage vectorNameFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterg testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster + testSelector expectedFailsFLFixedObjectClusterVdomainrange interpolate uninterpolatelinearbasepositiveFLFixedObjectCluster~parent propertiescontentsstartstopFLFixedObjectCluster testSelector expectedFailsparametersToUseconfigurationSelectorformatterClass contextClassFLFixedObjectCluster r testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUseshapeCollectionshapeCollectionClasscanvasFLFixedObjectCluster  testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectClusterk testSelector expectedFailsFLFixedObjectCluster8 testSelector expectedFailsparametersToUseinstancemethodglobalsencoder optimizationextractBlockInTempFLFixedObjectCluster~ testSelector expectedFailstestingEnvironment emptyDict nonEmptyDictnonEmpty5ElementsNoDuplicates indexArray valueArraynonEmpty1ElementcollectionNotIncludedcollectionIncludedassociationNotIn valueNotInkeyNotIndictionaryNotIncludeddictionaryWithDuplicateValuesduplicateValuenonEmptyWithStringFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster? testSelector expectedFailsFLFixedObjectClusterW testSelector expectedFailsfunctionFLFixedObjectClusters testSelector expectedFailsparametersToUseconfigurationSelectorformatterClass contextClassFLFixedObjectClusterZ testSelector expectedFails tarjanPackagepackageApackageBpackageCpackageDpackageEpackageFpackageGpackageHanArrayFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClass constructorFLFixedObjectCluster  testSelector expectedFailsparametersToUse ffiLibraryFLFixedObjectCluster|parent propertiesvaluestartFLFixedObjectCluster testSelector expectedFailstestingEnvironment emptyDict nonEmptyDictnonEmpty5ElementsNoDuplicates indexArray valueArraynonEmpty1ElementcollectionNotIncludedcollectionIncludedassociationNotIn valueNotInkeyNotIndictionaryNotIncludeddictionaryWithDuplicateValuesduplicateValuenonEmptyWithStringFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectCluster testSelector expectedFailsc1c2FLFixedObjectClusterq}parent properties parenthesesvariable assignmentvalueFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailscurrentCompilerFLFixedObjectCluster' testSelector expectedFailsparserFLFixedObjectClusterr?stateseedFLFixedObjectCluster  testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClass constructor extraArgumentFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUseFLFixedObjectCluster8 testSelector expectedFailstestingEnvironmentFLFixedObjectCluster> testSelector expectedFailseditorFLFixedObjectCluster testSelector expectedFails mockPackageFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparsersubjectFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLFixedObjectCluster/ testSelector expectedFailsFLFixedObjectClusterf testSelector expectedFailsempty withItemsfiredFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectCluster  testSelector expectedFailstestingEnvironmenttestEnvironmentFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster& testSelector expectedFailsparsersubjectFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLFixedObjectCluster\ testSelector expectedFailsrulesSelectorPresenterrules rulesByGroupFLFixedObjectCluster  testSelector expectedFails firstCommand subCommand1group subGroup1 subGroup2FLFixedObjectCluster announcer propertiespaintpathborderparentisFixedencompassingRectanglemodelisDirty entryIndex baseRectanglematrixconnectedLinesshouldUpdateLines cornerRadiusFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelclassFLFixedObjectClusterynameFLFixedObjectCluster c testSelector expectedFailstestingEnvironmentFLFixedObjectCluster) testSelector expectedFailsclassFLFixedObjectCluster testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster, testSelector expectedFails environmentqueryresult resultItemsfoundSelectorsFLFixedObjectCluster testSelector expectedFailssycRefactoringPreviewFLFixedObjectCluster  testSelector expectedFailsmorphFLFixedObjectCluster testSelector expectedFailsclassDefinitionFLFixedObjectCluster| testSelector expectedFailsvarFLFixedObjectCluster= testSelector expectedFailsFLFixedObjectClustera testSelector expectedFailstestingEnvironmentFLFixedObjectClusterhW testSelector expectedFailstestingEnvironmentemptynonEmpty collectResultemptyButAllocatedWith20otherCollectionindexCollectioncollectionWithElementcollectionOfFloat elementNotIn indexArraywithoutEqualElementsduplicateElementcollectionWithDuplicateElementcollection5ElementscollectionWith4ElementscollectionOfCollectionsOfInts collectionOfCollectionsOfStringswithCharacterssimpleCollectioncollectionOfStringcollectionWithSameBeginingEndFLFixedObjectCluster testSelector expectedFails ruleLoaderFLFixedObjectCluster  testSelector expectedFails coordinatesFLFixedObjectClustere testSelector expectedFailsclassDefinitionFLFixedObjectClusterS testSelector expectedFailsFLFixedObjectClusterFLFixedObjectCluster1 testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterq testSelector expectedFailscompletionClasssystemNavigationfetcherexpectedElementsFLFixedObjectClusterkeysvaluessizeFLFixedObjectClusteru testSelector expectedFailsFLFixedObjectCluster- testSelector expectedFailsvectorFLFixedObjectCluster testSelector expectedFailsresultbuilderFLFixedObjectCluster} testSelector expectedFailsFLFixedObjectCluster N testSelector expectedFailsrootfileSystemModelfileSystemPresenterdialogwindowFLFixedObjectCluster& testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectClustertestCasemaxTimeForTest testCompletedservicesFLFixedObjectCluster. testSelector expectedFailsinspectionClass presenterFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster collectionposition readLimit writeLimitFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUseinstancemethodglobalsencoder optimizationextractBlockInTempextractBlock2InTempFLFixedObjectCluster0 testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectClusterselectorvaluableFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsclientserverFLFixedObjectCluster  testSelector expectedFails architectureFLFixedObjectCluster Xparent propertiesleftBarrightBar statementsperiods temporariesFLFixedObjectCluster testSelector expectedFailsparametersToUseconfigurationSelectorformatterClass contextClassFLFixedObjectCluster testSelector expectedFailspackageAaPDPackageDependencyWrapperFLFixedObjectCluster` testSelector expectedFailstestingEnvironment errorMessage errorLocation errorSourcetext interactiveFLFixedObjectCluster#V testSelector expectedFails environmentqueryresult resultItemsfoundSelectorsFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClass constructorFLFixedObjectCluster% testSelector expectedFailsFLFixedObjectCluster2U testSelector expectedFailsweakSetWith3ElementsemptyFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailstext candidatescontext processorstream backWindow1 backWindow2 topMostWindowFLFixedObjectCluster testSelector expectedFailstestingEnvironmentstreamexpecteddiffFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectClusterX sourceNode expressionFLFixedObjectCluster parent propertiesscopeselectorkeywordsPositionsbodysource argumentspragmas replacementsnodeReplacementscompilationContext bcToASTCacheFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster/ testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClass constructorFLFixedObjectCluster testSelector expectedFailscanvasshape interactionFLPointClusterFLFixedObjectCluster testSelector expectedFailsparametersToUseFLFixedObjectClustername environmentFLFixedObjectCluster{ testSelector expectedFailstestingEnvironmentsnapshotFLFixedObjectCluster testSelector expectedFailsareapositioneventFLFixedObjectCluster_ testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparsersubjectFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLFixedObjectCluster~ testSelector expectedFailsFLContextCluster9senderpcstackpmethod closureOrNilreceiverFLFixedObjectCluster V testSelector expectedFailstestingEnvironmentFLFixedObjectCluster testSelector expectedFailstestingEnvironmenttestEnvironmentFLFixedObjectCluster testSelector expectedFailsresolverFLFixedObjectCluster testSelector expectedFails environment groupProvider builtGroupsFLFixedObjectClustername environmentFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsmonitor classFactory logBuilder inputEntry inputEntriesFLFixedObjectCluster j testSelector expectedFailsparsersubjectFLFixedObjectCluster. testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLFixedObjectCluster[ testSelector expectedFails presenterpresenterModelFLFixedObjectClustertFLFixedObjectCluster testSelector expectedFailsivarForTestingFLFixedObjectClustery testSelector expectedFails filesystemguidevisitedFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster announcer propertiespaintpathborderparentisFixedencompassingRectanglemodelisDirty entryIndex attachPointfromtomarkers startPointendPointFLFixedObjectCluster^ testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailssubjectofflineSettingisCachingRessourcesSettingFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLFixedObjectCluster { testSelector expectedFailsFLFixedObjectClusterGtermcap outStreamcurrentBackground currentColorlightblinkFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterj testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster testSelector expectedFails environment groupProvider builtGroupsFLFixedObjectCluster testSelector expectedFails historyListFLFixedObjectCluster  testSelector expectedFailsmanagerFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFails slotDisplayFLFixedObjectCluster testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster|WnameescapingindexscopeusageFLFixedObjectCluster z testSelector expectedFailsaSliderwindowFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster+e testSelector expectedFailsdpnodecontextdp2cls testClass testSubclassFLFixedObjectClusterT testSelector expectedFailsFLFixedObjectClusteri testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster# testSelector expectedFailscshapesfFLFixedObjectClusterm testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailscompletionClasssystemNavigationfetcherexpectedElementsFLFixedObjectClusteri testSelector expectedFailssubjectFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectCluster testSelector expectedFailstoolFLFixedObjectCluster  testSelector expectedFails presenteradapterFLFixedObjectCluster D testSelector expectedFailsclassDefinitionFLFixedObjectClusterp testSelector expectedFailspolygonFLFixedObjectCluster  testSelector expectedFailsatPragmaanotherAtPragmayetAnotherAtPragma atPutPragmaFLFixedObjectCluster testSelector expectedFails newBuilder originClass usedTrait superClassFLFixedObjectCluster testSelector expectedFailsrootfileSystemModelfileSystemPresenter windowPathUIFLFixedObjectCluster  testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClustergarray firstIndex lastIndex sortBlockFLFixedObjectCluster$ testSelector expectedFailsFLFixedObjectCluster testSelector expectedFails presenterwindowFLFixedObjectClusterF testSelector expectedFailsFLFixedObjectClusterQ testSelector expectedFailsmutexforkedProcessesFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUseinstancemethodglobalsencoder optimizationextractBlockInTempFLFixedObjectCluster l testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectCluster" testSelector expectedFailsmFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterQs parent propertiesscopeselectorkeywordsPositionsbodysource argumentspragmas replacementsnodeReplacementscompilationContext bcToASTCacheFLFixedObjectCluster testSelector expectedFailsparametersToUseconfigurationSelectorformatterClass contextClassFLFixedObjectClusterc testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsanalyzerFLFixedObjectCluster   testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectCluster testSelector expectedFailscanvasFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailstestingEnvironmentfullempty collectResultemptyButAllocatedWith20 elementNotIncollectionOfFloatcollectionIncludednonEmpty1elementwithoutEqualElementscollection5ElementscollectionWith3ElementscollectionOfNonIdenticalfloatCollectionFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster- testSelector expectedFailstext candidatescontext processorstream firstValue secondValueFLFixedObjectCluster1 testSelector expectedFailstestingEnvironmentFLFixedObjectCluster&6 testSelector expectedFails environmentscoperesultFLFixedObjectCluster 9 testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster$ testSelector expectedFailsparametersToUse ffiLibraryFLFixedObjectCluster! testSelector expectedFailsFLFixedObjectClusterk testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClass constructorFLFixedObjectCluster1 testSelector expectedFailsparametersToUseFLFixedObjectCluster testSelector expectedFailsbackendForTestFLFixedObjectCluster testSelector expectedFailstestingEnvironment repository directoryFLFixedObjectClusterrparent properties parenthesesnamevariablestartFLFixedObjectCluster testSelector expectedFailsfinalizationRegistryfinalizationCountfinalizerThatCounts waitSemaphorefinalizedObjectfinalizerThatRaisesError finalizerfailedFLFixedObjectClusterx testSelector expectedFailstextmorphexpectedErrorsexpectedErrorPositionsfailureFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUseFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectCluster0 testSelector expectedFailstestingEnvironmenttestEnvironmentFLVariableObjectClusterpP testSelector expectedFails filesystemFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterS testSelector expectedFailsmonitor classFactory logBuilder chunkExporter chunkImporterFLFixedObjectCluster testSelector expectedFailsparsersubjectFLFixedObjectClusterj testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLFixedObjectCluster! testSelector expectedFailsplotxyFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFails filesystemFLFixedObjectClusterK testSelector expectedFailsFLFixedObjectCluster w testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsparserFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLFixedObjectCluster testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClass announcementcollectedAnnouncementsFLFixedObjectCluster/ testSelector expectedFailsFLFixedObjectCluster 8 testSelector expectedFailstestingEnvironmenthashFLFixedObjectClusterR testSelector expectedFails prototypesFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectClusterJ testSelector expectedFailsmanagerFLFixedObjectCluster testSelector expectedFailsmorphhandeventFLFixedObjectCluster testSelector expectedFailstestingEnvironmentnonEmpty5ElementsNoDuplicateempty elementNotInelementTwiceIncollectionWithEqualElementsnonEmpty1Element"collectionWithSameAtEndAndBegining collectionWith1TimeSubcollection collectionWith2TimeSubcollectioncollectionNotIncludednonEmptySubcollectionelementInNonEmptyreplacementCollectionSameSizesortedCollectionFLFixedObjectCluster testSelector expectedFailsclassDefinitionFLFixedObjectCluster testSelector expectedFailsticker schedulersuspendedDelaysHeapFLFixedObjectCluster testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster#Cx dictionary orderedKeysFLFixedObjectCluster7 testSelector expectedFailssystemSettingsmemorypreferencesFileFLFixedObjectCluster testSelector expectedFailscompletionClasssystemNavigationfetcherexpectedElementsFLFixedObjectCluster changeFactorychanges environment newClassesremovedClasseschangedClasses rootClassesimplementorsCache sendersCache newPackageschangedPackagesremovedPackagesFLFixedObjectClusterK testSelector expectedFailsFLFixedObjectCluster testSelector expectedFails searchPanelFLFixedObjectCluster  testSelector expectedFailsrayFLFixedObjectCluster  testSelector expectedFailsinstancebackendFLFixedObjectCluster ] testSelector expectedFailsclassDefinitionFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterI testSelector expectedFails newBuilder originClass usedTrait superClassFLFixedObjectCluster testSelector expectedFailsrootfileSystemModelfileSystemPresenterfilterFLFixedObjectClusterksource isScripting isParseFaultyisFaultyisFaultyMinusUndeclarednoticesvaluehasValue formattedCode skippedTestsraisemessageNotUnderstoodnumberOfCritiquesgroupdefault nodePositions styledPatternFLFixedObjectClusterI testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectClusterb testSelector expectedFailscompletionClasssystemNavigation completion mockFilterFLFixedObjectCluster testSelector expectedFailsbuilderFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailscountercounter2nodenode2FLFixedObjectCluster , testSelector expectedFails presenterFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterO testSelector expectedFailsparametersToUseinstancemethodglobalsencoder optimizationFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectCluster^ testSelector expectedFailsFLRectangleClusterFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster\ testSelector expectedFailsFLFixedObjectCluster   testSelector expectedFailsparametersToUseconfigurationSelectorformatterClass contextClassFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster( testSelector expectedFailsparametersToUseinstancemethodglobalsencoder optimizationextractBlockInTempFLFixedObjectCluster testSelector expectedFails environment groupProvider builtGroupsFLFixedObjectClusterH testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterfilehandleforWrite semaphoresemaphoreIndex peekBufferFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailstestingEnvironment emptyDict nonEmptyDictnonEmpty5ElementsNoDuplicates indexArray valueArraynonEmpty1ElementcollectionNotIncludedcollectionIncludedassociationNotIn valueNotInkeyNotIndictionaryNotIncludeddictionaryWithDuplicateValuesduplicateValuenonEmptyWithStringFLFixedObjectCluster# testSelector expectedFailsFLFixedObjectCluster testSelector expectedFails environment queryResultquerycursoritemsFLFixedObjectClusterr testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsparametersToUseconfigurationSelectorformatterClass contextClassFLFixedObjectCluster< testSelector expectedFailsparametersToUse ffiLibraryFLFixedObjectClusterN testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClass constructorFLFixedObjectClusterrtests resourcesname announcerrandomGeneratorFLFixedObjectClusterI testSelector expectedFailstestingEnvironment emptyDict nonEmptyDictnonEmpty5ElementsNoDuplicates indexArray valueArraynonEmpty1ElementcollectionNotIncludedcollectionIncludedassociationNotIn valueNotInkeyNotIndictionaryNotIncludeddictionaryWithDuplicateValuesduplicateValuenonEmptyWithStringFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailstestingEnvironmentpatchFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterC testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailscanvasshapesFLFixedObjectCluster  testSelector expectedFailslog logBuilderFLFixedObjectCluster testSelector expectedFails collectionFLFixedObjectClusterZ testSelector expectedFailsparserFLFixedObjectClusterG testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClass constructorindexFLFixedObjectCluster2 testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUseserviceFLFixedObjectClusterk testSelector expectedFailstestingEnvironmentpackage2package1 mcPackage1 mcPackage2 classToRemoveFLFixedObjectCluster=q testSelector expectedFailssource selectioncurrentCompletionFLFixedObjectCluster ] testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLFixedObjectClusterM testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparsersubjectFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterL testSelector expectedFailstestingEnvironmentFLFixedObjectClusterH testSelector expectedFailsFLFixedObjectCluster% testSelector expectedFailstestingEnvironmenttestEnvironmentFLFixedObjectCluster testSelector expectedFailssourcedestFLFixedObjectClustername priorityListsFLFixedObjectClusterF testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLFixedObjectClusterY testSelector expectedFails filesystememptyFilesystemFLFixedObjectCluster testSelector expectedFailscritiqueToolbarFLFixedObjectClusterL testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelclassFLFixedObjectCluster/ testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectCluster8 testSelector expectedFailsFLFixedObjectClusterH testSelector expectedFailsFLFixedObjectClusterG testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectClusterfoptions environmentproductionEnvironment parserClasssemanticAnalyzerClassastTranslatorClassbytecodeGeneratorClass encoderClassastTransformPluginsastParseTransformPluginsrequestorScopeClassbindingscompiledMethodClass semanticScopeFLFixedObjectClusterB testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsmorphFLFixedObjectCluster  testSelector expectedFailscollectionWith5ElementsFLFixedObjectCluster1 testSelector expectedFailsclassDefinitionFLFixedObjectCluster" testSelector expectedFailsaCompiledMethod aReceiveraMethodContextaSenderinstVarForTestLookupSymbolnonActiveBlockContext anArgumentFLFixedObjectCluster testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectClusterp testSelector expectedFailssettingBrowserFLFixedObjectCluster) testSelector expectedFailstestingEnvironmentnonEmptyelementExistsTwiceempty collectResultnonEmpty1ElementcollectionOfFloataccessCollection elementNoteInoldSubcollectionwithoutEqualElementscollectionOfFloatWithDuplicatecollectionIncludedcollectionNotIncludedcollectionWithoutNilduplicateFloatnonEmpty5ElementscollectionWith4ElementscollectionOfString"stringCollectionSameEndAndBeginingFLFixedObjectCluster startstopstepFLFixedObjectCluster testSelector expectedFails rulesHelperFLFixedObjectCluster testSelector expectedFailsclassDefinitionFLFixedObjectClusterJ testSelector expectedFailsforkvalueFLFixedObjectCluster testSelector expectedFailsrootfileSystemModelfileSystemPresenterfilterFLFixedObjectCluster b testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFails breakpoint1 breakpoint2instance inspection breakpoint3 breakpoint4FLFixedObjectClustert testSelector expectedFailsexistingstoredmergerFLFixedObjectCluster  testSelector expectedFailscompletionClasssystemNavigationfetcherexpectedElementsFLFixedObjectCluster+ testSelector expectedFailsFLFixedObjectCluster } testSelector expectedFailsrootfileSystemModelfileSystemPresenterdialogFLFixedObjectClusterU testSelector expectedFailsFLFixedObjectCluster testSelector expectedFails vennDiagramFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectCluster testSelector expectedFailspasswordManagerFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster domainrange interpolate uninterpolateiuFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster.E testSelector expectedFailstestingEnvironment classNametestEnvironmentFLFixedObjectClusterF testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster= testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUseinstancemethodglobalsencoder optimizationextractBlockInTempextractBlock2InTempFLFixedObjectClustera testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectCluster testSelector expectedFailstestingEnvironmentemptynonEmpty collectResultemptyButAllocatedWith20collectionWithElement collectionIncollectionNotIncollectionOfString elementNotIncollectionWithCharacters#otherCollectionWithoutEqualElementscollectionWithoutNilMoreThan5FLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUseconfigurationSelectorformatterClass contextClassFLFixedObjectClusterT testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsoldRelationGraphnewRelationGraphpackageRelationGraphDiffpackageApackageBFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClass constructorFLFixedObjectCluster: testSelector expectedFailstestingEnvironmentinstVarFLFixedObjectCluster3 testSelector expectedFailsweakSetWith3ElementsemptyFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailstext candidatescontext processorstreamFLFixedObjectCluster  testSelector expectedFailstestingEnvironment conflictsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster[ parent properties parenthesesleftrightcolons argumentsbarbodyscope bcToASTCacheFLFixedObjectCluster< testSelector expectedFailsFLFixedObjectCluster` testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClass constructorFLFixedObjectCluster3 testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsparametersToUseFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparsersubjectFLVariableObjectClusteri outerContext compiledBlocknumArgsreceiverFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectCluster> collectionposition readLimit writeLimitstreamcrlfprevious lineEndingFLFixedObjectCluster testSelector expectedFailstestingEnvironmenttestEnvironmenta1b1a2b2xPackageyPackagezPackageFLFixedObjectClusterD testSelector expectedFailsresolveroriginalUserLocalDirFLFixedObjectCluster#) testSelector expectedFails environmentqueryresult resultItemsfoundSelectorsFLFixedObjectCluster; testSelector expectedFailschartFLFixedObjectCluster_ testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLFixedObjectClusterG testSelector expectedFailsmonitor classFactory logBuilder inputEntry inputEntriesFLFixedObjectCluster testSelector expectedFailsparsersubjectFLFixedObjectCluster testSelector expectedFails presenterpresenterModelpreviousLogSettingFLFixedObjectClusterC testSelector expectedFailscommandToBeDecorated decoratorFLFixedObjectCluster* testSelector expectedFailsFLFixedObjectClusterlabel searchStrings accessGuard queryCachepluginsupdateStrategy updateGuardFLFixedObjectCluster testSelector expectedFails filesystemguidevisitedFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsclassnumberOfAnnouncementsFLFixedObjectCluster=nanossecondsFLFixedObjectCluster testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster#( testSelector expectedFails environmentqueryresult resultItemsfoundSelectorsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterF testSelector expectedFails outerMorph innerMorphFLFixedObjectCluster nextLinksuspendedContextprioritymyListnameenveffectiveProcess terminatinglevel errorHandlerFLFixedObjectCluster  testSelector expectedFails slotDisplayFLFixedObjectCluster) testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterM* testSelector expectedFailstestingEnvironmentexample1 literalArrayselfEvaluatingArray nonSEArray1 nonSEarray2example2empty collectResultwithoutEqualElementswithEqualElementswithCharactersunsortedCollection sortedInAscendingOrderCollectioncollectionNotIncludedremovedCollectionelementInForCopyelementNotInForCopy firstIndex secondIndexreplacementCollection indexArray valueArraynonEmptyMoreThan1ElementsubCollectionNotInreplacementCollectionSameSizeoldSubCollectionnonEmpty1ElementcollectionOfCollection"collectionOfFloatWithEqualElementscollectionWithoutNilduplicateElementcollection5ElementscollectionWith4Elements collectionOfCollectionsOfStringscollectionOfCollectionsOfIntssimpleCollection%stringCollectionWithSameBeginingAnEndcollectionOfFloatrecursiveArrayFLFixedObjectCluster commandLinesessionstdoutstderrFLFixedObjectCluster+ testSelector expectedFailsexpressionFinderFLFixedObjectCluster testSelector expectedFailsclassDefinitionFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectClustergnameescapingindexscopeusage originalVarFLFixedObjectCluster  testSelector expectedFailscacheFLFixedObjectCluster testSelector expectedFailscompletionClasssystemNavigationfetcherexpectedElementsFLFixedObjectCluster  testSelector expectedFails classFactoryFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsmatrixFLFixedObjectCluster,s testSelector expectedFailsFLFixedObjectCluster> testSelector expectedFails newBuilder originClass usedTrait superClassFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsemptybFLFixedObjectCluster7 testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectCluster  messageTexttagsignaler signalContexthandlerContext outerContextFLFixedObjectClusterf outerScopetempVars copiedVars tempVectorid tempVectorVarnodeFLFixedObjectClusterS testSelector expectedFailsFLFixedObjectCluster. testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterU testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectCluster@C testSelector expectedFailsparametersToUseinstancemethodglobalsencoder optimizationextractBlockInTempFLFixedObjectCluster ( testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailscallbackFLFixedObjectCluster ( testSelector expectedFailsparametersToUseconfigurationSelectorformatterClass contextClassFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailscanvasFLFixedObjectCluster6 testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLWordObjectClusterr.xedOepAsterF tesr ex@ilsonClemNa+7cfet0ectesFL4sectC0r etmelec}cted9ǿassFaLFix?@"Clus' tZctorLdFai#HedOb2XtervDtest =] expalsmNuFixe~%Vlust1s t8tor g=Fail;dObj=er expeK:4spa7vToUs$ۂgEnv/modissFSWjectt D<2.ageTnLsign nalCC+andl؆Xlt ouVxtF&ject+(f/rScoars h)rs t0ridɛtorVٴFLFiKtCluS+wectoYuxedFaٽxedOwpsterNW tesÖr ex[Jils2.:bjec!v/tSel o7pect]}tnFLFittCluUectoOXedFa!xedOhNxster! tesL4r exvHilszrsToingE%.3ntmu*qlass˰)ObjeZkrB$stSeNwxpecpar{oUsememeMJbals optFLFixedObjectCluster testSelector expectedFailspackageApackageBpackageCpackageDpackageEaPackageCycleDetectioncycleAcycleBcycleCFLFixedObjectCluster testSelector expectedFailstestingEnvironmentfullempty collectResultemptyButAllocatedWith20 elementNotIncollectionOfFloatcollectionIncludednonEmpty1elementwithoutEqualElementscollection5ElementscollectionWith3ElementscollectionOfNonIdenticalFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster\ testSelector expectedFailstext candidatescontext processorstreamFLFixedObjectCluster  testSelector expectedFailspluginpackagepluginConfigurationFLFixedObjectClusterh testSelector expectedFailsFLFixedObjectClusterB<parent properties parenthesesmessages semicolonsFLFixedObjectClusterT testSelector expectedFailscanvasFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClass constructorFLFixedObjectCluster x testSelector expectedFailsFLFixedObjectCluster 6 testSelector expectedFailsparametersToUse ffiLibraryFLFixedObjectClusterB testSelector expectedFailsFLFixedObjectClusterE testSelector expectedFailsparametersToUseFLFixedObjectCluster testSelector expectedFailsbackendForTestspotterFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectCluster parent properties parenthesesreceiverselectorkeywordsPositions argumentssuperOfFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster5 testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLFixedObjectCluster  testSelector expectedFailsmonitor classFactory logBuilderaClassFLFixedObjectCluster testSelector expectedFailstextmorphexpectedErrorsexpectedErrorPositionsfailureFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectClustera testSelector expectedFailstestingEnvironmenttestEnvironmenta1t1t2xPackageyPackagezPackageFLFixedObjectClusterS testSelector expectedFailsxyplotFLFixedObjectCluster testSelector expectedFailsparsersubjectFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLFixedObjectClusterA testSelector expectedFailstestingEnvironmentgenFLFixedObjectCluster' testSelector expectedFailstestingEnvironmentFLFixedObjectCluster= testSelector expectedFailsFLFixedObjectCluster testSelector expectedFails filesystemFLFixedObjectClusterz testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectClusterM testSelector expectedFailsFLFixedObjectCluster4 testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLFixedObjectCluster| testSelector expectedFailsFLFixedObjectClusterR testSelector expectedFails debugSessionsindarinSessionFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassFLFixedObjectCluster` testSelector expectedFailsFLFixedObjectCluster g testSelector expectedFailstestingEnvironmenthashFLFixedObjectClusterd testSelector expectedFails environment groupProvider builtGroupsFLFixedObjectCluster testSelector expectedFails prototypesFLFixedObjectCluster- testSelector expectedFailstestingEnvironment classFactoryFLFixedObjectCluster& testSelector expectedFailsFLFixedObjectCluster< testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectClustery testSelector expectedFailsmanagerFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsnextLinknlistlink1link2link3link4nonEmpty otherListlinkcollectionWithoutNilnonEmpty1ElementcollectionWithoutEqualElements elementNotIn elementIncollection5Elements collectResultunsortedCollectionsortedCollectionFLFixedObjectCluster( testSelector expectedFailsclassDefinitionFLFixedObjectCluster testSelector expectedFailsticker schedulersuspendedDelaysHeapFLFixedObjectCluster testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster testSelector expectedFailstestingEnvironmentuniversalEnvironmentFLFixedObjectCluster testSelector expectedFailscompletionClasssystemNavigationfetcherexpectedElementsFLFixedObjectClusterv testSelector expectedFailstestingEnvironmentstreamFLFixedObjectCluster testSelector expectedFailssegmentFLFixedObjectCluster testSelector expectedFailsclassDefinitionFLFixedObjectCluster| testSelector expectedFails newBuilder originClass usedTrait superClassFLFixedObjectCluster% testSelector expectedFailsFLWordObjectCluster#. !Y#!#( #(  ! Y ) )#Y'!Y'#'!Y'"!Y" !Y!#'Y' #(  ! Y )#(!Y)#( (  ! Y ) )$!`| Y | Y := 1. Y + 1FLFixedObjectCluster testSelector expectedFailsrootfileSystemModelfileSystemPresenterfilterFLFixedObjectClusterx testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectCluster  testSelector expectedFailscompletionClasssystemNavigation completionFLFixedObjectCluster e testSelector expectedFails identifier preferencesoldPreferencesFLFixedObjectCluster testSelector expectedFailsthemeDecoratorFLFixedObjectCluster testSelector expectedFailsbuilderFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster. testSelector expectedFailsFLFixedObjectCluster5 testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectCluster testSelector expectedFailsparametersToUseinstancemethodglobalsencoder optimizationFLFixedObjectCluster xScaleyScalechartstyler masterShapeboxaxisXaxisY formatStringFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsaClassFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster- testSelector expectedFailsintType int32TypevoidTypecharType uint32TypectxresolverFLFixedObjectCluster; testSelector expectedFailsparametersToUseconfigurationSelectorformatterClass contextClassFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster + testSelector expectedFailsparametersToUsecanvasanimationClassFLFixedObjectCluster# testSelector expectedFails environmentqueryresult resultItemsfoundSelectorsFLFixedObjectClusterw testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectCluster testSelector expectedFailsparametersToUseinstancemethodglobalsencoder optimizationFLFixedObjectCluster outerScopetargetReceiverFLFixedObjectCluster testSelector expectedFailstestingEnvironment emptyDict nonEmptyDictnonEmpty5ElementsNoDuplicates indexArray valueArraynonEmpty1ElementcollectionNotIncludedcollectionIncludedassociationNotIn valueNotInkeyNotIndictionaryNotIncludeddictionaryWithDuplicateValuesduplicateValuenonEmptyWithStringFLFixedObjectClusterQ testSelector expectedFailsFLFixedObjectCluster testSelector expectedFails environment queryResultquerycursoritemsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUseconfigurationSelectorformatterClass contextClassFLFixedObjectClustero testSelector expectedFailsparametersToUse ffiLibraryFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClass constructor testClassFLFixedObjectCluster~ testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectCluster# testSelector expectedFailsFLFixedObjectCluster parent properties parenthesesvaluekeywordPositionsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparserFLFixedObjectCluster v testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClass constructorindexFLFixedObjectCluster * testSelector expectedFailsshapesconsearchcanvasFLFixedObjectCluster' testSelector expectedFailsparametersToUseserviceFLFixedObjectCluster  testSelector expectedFailstestingEnvironment workingCopyrepositoryGroupversions versions2FLFixedObjectCluster testSelector expectedFailseditorstringFLFixedObjectCluster} testSelector expectedFailsivarForTestingFLFixedObjectCluster testSelector expectedFailsparsersubject splitterClasslinkFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLFixedObjectCluster  testSelector expectedFailsparametersToUse decorationFLFixedObjectCluster%w testSelector expectedFailstestingEnvironmentFLFixedObjectCluster { testSelector expectedFailsinstVarForTestFLFixedObjectCluster testSelector expectedFailstestingEnvironmenttestEnvironmentFLFixedObjectCluster  testSelector expectedFailsbaseUrlofflineSettingFLFixedObjectClusteru testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLFixedObjectCluster testSelector expectedFails resetWindowFLFixedObjectCluster| testSelector expectedFailsFLFixedObjectCluster& testSelector expectedFailsparserFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelclassFLFixedObjectCluster  testSelector expectedFailstestingEnvironmentFLFixedObjectClusterh testSelector expectedFailsFLFixedObjectCluster s testSelector expectedFailsFLFixedObjectClusterz testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster: testSelector expectedFailsFLFixedObjectCluster$ testSelector expectedFailsmorphFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterd testSelector expectedFailsclassDefinitionFLFixedObjectCluster testSelector expectedFailsticker schedulersuspendedDelaysHeapFLFixedObjectCluster testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster testSelector expectedFailsreaderFLFixedObjectCluster4 testSelector expectedFailscompletionClasssystemNavigationfetcherexpectedElementsFLFixedObjectCluster testSelector expectedFailsoccurrencesBrowserPresenterFLFixedObjectCluster testSelector expectedFailsarcFLFixedObjectCluster testSelector expectedFailsclassDefinitionFLFixedObjectClusteru testSelector expectedFailsFLFixedObjectClusterfilehandleforWrite semaphoresemaphoreIndexFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectClustert testSelector expectedFailstestingEnvironmentexpecteddiffFLFixedObjectCluster  testSelector expectedFailscompletionClasssystemNavigationfetcherexpectedElementsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterV testSelector expectedFailsnewClass superClasssubClass newClass2 superClass2FLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster- testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectClusterv outerScopetempVars copiedVars tempVectorid tempVectorVarnodeFLFixedObjectCluster   testSelector expectedFailstestingEnvironmentFLFixedObjectCluster testSelector expectedFailsbackendForTest application presenterFLFixedObjectClusterl testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterdomainrange interpolate uninterpolateclampinputoutputFLFixedObjectClusterHp testSelector expectedFailstestingEnvironmentxyclassFLFixedObjectClustery testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster" testSelector expectedFailsparametersToUseinstancemethodglobalsencoder optimizationextractBlockInTempFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectClustero testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster textColortextFonttextSize tickColor spineColorFLFixedObjectClusterV outerScopetempVars copiedVars tempVectorid tempVectorVarnode isInlinedLoopFLFixedObjectCluster Lselector arguments lookupClassmethodFLFixedObjectCluster testSelector expectedFailstestingEnvironmentemptynonEmpty collectResultemptyButAllocatedWith20collectionWithElement collectionIncollectionNotIncollectionOfString elementNotIncollectionWithCharacters#otherCollectionWithoutEqualElementscollectionWithoutNilMoreThan5equalNotIdenticalElement elementToCopy'identityBagNonEmptyNoDuplicate5ElementsFLFixedObjectClusterV testSelector expectedFailsedsessiondebugAPImockDisplayAPIcurrentDebuggingAPIFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUseconfigurationSelectorformatterClass contextClassFLFixedObjectCluster testSelector expectedFailspackageCollectionAbstractpackageCollectionsSequenceable packageKernelpackageRegexCorepackageStringsaPackageRelationGraphpackagePackageDependenciespackageApackageBpackageCpackageDpackageMorphicBasepackageTextCoreFLFixedObjectCluster$ testSelector expectedFailsparametersToUse ffiLibraryFLFixedObjectCluster , testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClass constructorFLFixedObjectClusterexecutionEnvironment isEnabled testFailuresshouldSuspendBackgroundFailuresshouldFailTestLeavingProcessesshouldTerminateProcessesFLFixedObjectCluster testSelector expectedFailstestingEnvironment emptyDict nonEmptyDictnonEmpty5ElementsNoDuplicates indexArray valueArraynonEmpty1ElementcollectionNotIncludedcollectionIncludedassociationNotIn valueNotInkeyNotIndictionaryNotIncludeddictionaryWithDuplicateValuesduplicateValuenonEmptyWithStringkeysdictFLFixedObjectClusterR testSelector expectedFailsFLFixedObjectCluster@ testSelector expectedFailstestingEnvironmentFLFixedObjectClusterD testSelector expectedFailsFLFixedObjectClusterparent properties parenthesesleftright statementsperiodsFLFixedObjectCluster testSelector expectedFailsaStringFLFixedObjectCluster! testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClass constructor extraArgumentFLFixedObjectClustern testSelector expectedFailscanvascameraFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster9 testSelector expectedFailsparametersToUseserviceFLFixedObjectCluster  testSelector expectedFailstestingEnvironmentstreamwriterFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterVparent properties parenthesesstartstopvalue sourceTextFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster* testSelector expectedFailsparsersubject splitterClassFLFixedObjectCluster+ testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectCluster? testSelector expectedFailstestingEnvironmenttestEnvironmentFLFixedObjectClustero testSelector expectedFailsresolverFLFixedObjectClusterm testSelector expectedFailsFLFixedObjectClusterr testSelector expectedFailsmonitor classFactory logBuilderdetectorFLFixedObjectCluster testSelector expectedFailsparsersubjectFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLFixedObjectCluster testSelector expectedFailscritiqueBrowserrulesFLFixedObjectCluster testSelector expectedFails presenterpresenterModelFLFixedObjectClusterv testSelector expectedFailscommandFLFixedObjectCluster U testSelector expectedFailsFLVariableObjectClusterL testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster) testSelector expectedFailsFLFixedObjectCluster* testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLFixedObjectCluster* testSelector expectedFailsfileNameFLGlobalClassVariableCluster E [3r `[-0%B #(FLFixedObjectCluster  testSelector expectedFailsclassnumberOfAnnouncementsFLFixedObjectCluster testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster([ testSelector expectedFails environmentqueryresult resultItemsfoundSelectorsFLFixedObjectCluster testSelector expectedFailsmethodNameEditorFLFixedObjectCluster q testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsclassDefinitionFLFixedObjectCluster  testSelector expectedFails slotDisplayFLFixedObjectClusterT testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailstestingEnvironmentcollectionWithElementotherCollectionnonEmptyempty elementNotIn collectResultexpectedElementByDetect speciesClasselementTwiceIndoWithoutNumberelementexpectedSizeAfterRejectcollectionNotIncluded!nonEmpty5ElementsWithoutDuplicatesameAtEndAndBeginingnonEmpty1Element indexArray subCollectionduplicateElementcollectionWithDuplicateElementcollectionWith4ElementsstringCollectionFLFixedObjectCluster[ testSelector expectedFailsmatchToolPresenterFLFixedObjectCluster3 testSelector expectedFailsangleFLFixedObjectCluster  testSelector expectedFailsclassDefinitionFLFixedObjectCluster/ testSelector expectedFailsFLFixedObjectClusterQ testSelector expectedFails previewerFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectClusterC testSelector expectedFailsFLFixedObjectCluster : testSelector expectedFailscachehaltController testObjecttrace oldTracer breakpointFLFixedObjectCluster testSelector expectedFailscompletionClasssystemNavigationfetcherexpectedElementsFLWeakVariableObjectClusterRFLFixedObjectCluster testSelector expectedFails rectangleFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsrootfileSystemModelfileSystemPresenterdialogwindowFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster" testSelector expectedFailsFLFixedObjectClusterj testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectClustern xScaleyScalechartstyler masterShape markerColorgetRelevantValueBlocklines formatStringFLFixedObjectClustera testSelector expectedFailsparametersToUsesnippetFLFixedObjectCluster testSelector expectedFailsresultleftrightFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster' testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectCluster$U testSelector expectedFails nonEmptyDictFLFixedObjectCluster abFLFixedObjectCluster& testSelector expectedFailsFLFixedObjectClusterS testSelector expectedFailsparametersToUseconfigurationSelectorformatterClass contextClassFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster3 testSelector expectedFailsaPDPackageCyclepackageApackageBpackageCFLFixedObjectClusteri testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectCluster2 testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailstext candidatescontext processorstreamFLFixedObjectCluster testSelector expectedFailstestingEnvironment workingCopyFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsdocCommentNodeFLFixedObjectClusterf testSelector expectedFailsparametersToUse ffiLibraryFLFixedObjectClustern testSelector expectedFailscompilerFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClass constructorFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterKcacheFLFixedObjectCluster# testSelector expectedFailstestingEnvironmentFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsmonitor classFactory logBuilderFLFixedObjectCluster{ testSelector expectedFailsparsersubjectFLFixedObjectClusterh testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLFixedObjectCluster ! testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectCluster testSelector expectedFailstestingEnvironmenttestEnvironmentFLFixedObjectCluster5registeredClassNameFLFixedObjectCluster numerator denominatorscaleFLFixedObjectCluster testSelector expectedFailsplotyFLFixedObjectCluster( testSelector expectedFailsmonitor classFactory logBuilder inputEntry inputEntriesFLFixedObjectCluster  testSelector expectedFailsparsersubjectFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLFixedObjectCluster, testSelector expectedFailsparametersToUse presenterspecInitializationStrategywindowbackendForTestFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster T testSelector expectedFailstestingEnvironmentFLFixedObjectClusterq testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterz testSelector expectedFailsFLFixedObjectClusterg testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectClusterT testSelector expectedFailstestObjectPointFLWordObjectClusterf ? 2xAO )=d & mo1F35 (/. UBD B ca ?w 7fv,"$&(7C   %<T$&z ,%" -+3a ,   ?Tldl x'(873!. 1c (_m", -] ? #6 s 1&r;"9q 9V9J*= _^%45$ ! `;R  K^^s;e$  5 o!I7%8S!-EXX*   <K+=_ m&  .j$*"C EKRyF  !n,F& [m#%$N  V \I'pD [h d ~[9EO 6% k83G3 yUfe/   g56;#.7Am ': *(.%1>%'bpo]g40L;:? BN o3 (9)n#&AT"& ?N-W$ Iv)"b17,rGUe  |!Bm B8> 7 &j|(C?#<z,   4B}H,>v l$$! ~41X$ ,V2:@   (z6e #*  $ #!M\  +*/=7": +W6j9(f#d$ %= "$] \\T[M p^  x m:@'&/HO  +7* @'$3 aWfVM-/ 0:Nsg , yg v$ .kER`x?# +y &, D!%$"k>S % "C( V4$ +]2KmK)m/" %]  %0 \_`F =~ c| GkK?+w33Ot3ZYt +. ^9"|#KQY  %,"X:>`  )(   "f.<  4Ma-".J"5(@D809$(5;#{c &j  $/GW+%  . )kx nF$xM*a7N"H-W+#% !-\%Z1R=   |,I2 /   5c %>Pcqd%>w  .; $KC$  >  5% d  $B;d*OPZ[6"mZc YAI  6 3&e#$4A yO${!0QZ @8!<Pfo6C1Cc=$MY Te0 >!'0* #X  CIz oEF7  'qvB=K+ ! TZ!#  *$;R`; CM , -N3A-6 NB    (*%-1?>X15go&8",.@9%} |-0EbB3g_0&yX3"$&t#  hKxY#  /2R$,B=0>;AV +)K5&JZR=*\ [![I$1&:,;lMat 8 ,- .) %.5-&"!!/O&o  ,--F%.xE )%DH,6  0  2#!UiN,8"!T ,@,$:)8HP,:8U)b!J#(N""&%.>7'%'^ "NJ-L`dD &)1g A'o 5k<C<S GV+T]//t @ %QY+L H&430w  7sYA6=& HQap:" D bJ"V]j%"R?QaEB :6G&.   h83z ?{@Ej"d$. "Q%6 { ( !2Q6 !))5Rbv8|  X<,3 /&)+ 3  & 4.w 6 0:5-CwU+ +3 |/H+: k1+"e}*-zb,'}M\ws >&30VV%)hAf6$C]".$ 4 E A5&eJkJ+R.--%({!.1Bd4?O0** /&Z (z+%H%*/ P Y0 FM7#(-vjy )S l4L8 gn2 J-<D+yP"ru$Eh{  |(6/ ~c 5 F~#p~#*?Oj 'zD  8..X?%2DiZ*u9##  4!^q, , 5|z9 '(/D !i^`  jr- ^ fz(75.$Lo P  18?U&Mf$ *'0E1E 2* ;4 H#"QVP1( #=  =P012&[J@=(4? )R#Z 6Zq =4[g:!Z = =*B.?.2vV58m!)%,qiFL5  $ 1g !G5+.w}4I\bg%1 X}IA, = % ,D0GOY`-;'6(-E T5>-3*'_>N!' &# X_Ek7  ,~#")r 39P] <z K_uZW@04 E0D Lu*/#.7A8A ]9$*1b3 !LSbz,6 N %3[e /Q3=/$# j}1*P0/`   }D>< #z Mk9$'"nSl(3, .0 )$0&t`.B:3inF2 $ !C:@1C*2 $[8C &% /6  #1}1&N,1 LS` +@ Z  Y#   &t=nLNlKY Fy   L} y1/ 4/9\Q]&^4=In<!3Yox 6(%EQ[eMjl! .#$1 V %MAkU(*m&   1/xrM[},bu&+0>%0\.vb{-'yH 5$j&,;DP )4@s"PA ;#)? *r/B%$bxZs 0X34J 4u L$9/I@ 0  [%.8<-@L !- `?  $('|U& : o41  u('jtpvnJZ%- `.1=C z#*ObH }, )2:B07")(.O&<P)  Vh(J.5<R>% n. w?<o:(bG *2"BXAKi!  /**qC$ -${ 3*9h5*>Xf G  @ 6y   f0;/7O#b_ -~ ?SHG V,8J ' . lR#C;Ry @&T  [!26") j 2$IK*'56G%8O'@dbbv $Z# CYN8BDRY  #,_7 ;$-5= ( =;2 &&3 )1UOn,bD-q R  2,2&  #1 G jyY !^  -(D /HJDtsP)- k3 6 C^3:%f'JL 5; N, (#_m IY $/8B1P s-ZeV){;.O3-0 1 )< 9-  &D:,.T (  (.Q p)Nl(IxDl" .w4 $c.M7 CX"A  ('3"$` \/#u40fItz4  4o ^8>A   ;*""  0Q lJ_3O p[jgs,E*+ + 0 / {0!.##/ #6M wG  R$(v-   '' k $&,u CY fHD2@Y1 4"  -"j%W]!% B:CA8oV3H 2  > %("v[s-V,8)i(6- 8$' # #:p.S\A)  )%b`)o /:9>\o&4!) "^UwY  -8# l$/8BJRn1=l"ZM /)=d4/> )/Ro0C1?/$2P/  H %&1 + !, %N;-!Quk%PO_ - k  <$ !zGEK;O T_hj.%/%S\'$!!G.d *1 )5w&$_m|* *.)H`L??T1>%R#@L73@T&t(!nG1   R=&, +7U,M!'5EP(#`#&WKV%  - s)*8=46<D+;G5: *$;!y} KHx]SO"5  F !aNe}M'#4< E ,  %~ /Uu/:%-.O<'&6Mp zGw:HK O(~,1 9? >=e=i6Mv0<ny%:d %.M  4N1 &9A/\P$ H.%P5! .jRdE Ss\~   F.7(6G,*;cj^9G'B#-0 -WW9;S=>\7 +".4AKW z 3( (AZ  ) s l@!~"6lSD$cE& 7#Ee3 7t< t:<+ 7BpL,;  2A  a'0)cwL80rKQ$Y"# e 5 `)E 3  !-H   +ku %0< ! "&(e?4\1) .  .5:  *.5"$73: W ^ O,:& 4 +q*$ " m r5K   %05A `- +7-!  l e$~B=21S- M2Z4-&d<E&([!.JD Z< "?K4#= 0<5 &9 %-+>ENV%/r ;$, 2 *):$   p'!(=v(: -4.x    $5Dm#>& |q6I=*T+>mt&+ B). 5N<kn|U/{q!@gX H  cjD % = { x ):l? r e-   7N Gt .  7 3 */GGZ 9HVb,aH'%l 3&A Y Zb Z_ Pp<$Y  $'G3 64  !b1/",,5,87i  H1r&Zs!(=&&& WV n0`Se[$KW&& R)k i 1)07@  Sj)4 F,i6.n!1B/ <Co TI_s<o+o O;(;@B JQ9 ?3<US9rS;-%;lv-F #z4=I*GRW!p7>1G*/G. *a $~,-Pb>2 7[ ? r13<Y.#n4q@.>F! ;T  4$ Q.A?E? = *Ji# `    4F4%$ "d,m <. 3Y`%$   CH3"'+Vi =(?SkU,$ 7hsT:G#`""2  F" ;3$D. UJ>":5-,. (;M20(8b5n.u=& !/-  :" ' 4 7}R L%)" 6 v$%*8I f2{ :JX  Ja! @c'l%@) 8R W, z <` ="4)4 d 'g5,2$ ;:G+'-&) I+ 3+  2(ql,C" C^dkP2F$c FW]brM1c!T/AD6 0)*>  &% #@ c,2 8#FLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFails environment groupProvider builtGroupsFLFixedObjectCluster  testSelector expectedFailstestingEnvironmenthashFLFixedObjectCluster,^ testSelector expectedFailstestingEnvironmentFLFixedObjectClusterp testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassclassFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterC8 testSelector expectedFailsnonIdentityOrderedAssociationsidentityOrderedAssociationsFLFixedObjectClusterY testSelector expectedFailsclassDefinitionFLFixedObjectCluster testSelector expectedFailsticker schedulersuspendedDelaysHeapFLFixedObjectCluster  testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster dictionary orderedKeysFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClustershapeoffset offsetRatioFLFixedObjectCluster& testSelector expectedFailscompletionClasssystemNavigationfetcherexpectedElementsFLFixedObjectClusterZ testSelector expectedFailsbrowsertoolcontextFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectCluster J testSelector expectedFailslabel1morph1label2morph2panelFLFixedObjectCluster testSelector expectedFails newBuilder originClass usedTrait superClassFLFixedObjectClusterR testSelector expectedFailsFLFixedObjectCluster) testSelector expectedFailsrootfileSystemModelfileSystemPresenterfilterFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectCluster% testSelector expectedFailstallyFLFixedObjectCluster testSelector expectedFailscompletionClasssystemNavigation statisticsFLFixedObjectCluster  testSelector expectedFails identifier preferencesFLFixedObjectClustery testSelector expectedFailsFLFixedObjectCluster startstopFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterD testSelector expectedFailsbuilderFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster_ testSelector expectedFailsFLFixedObjectCluster testSelector expectedFails decoratoradapterwidgetFLFixedObjectClusterc testSelector expectedFails environment definitionFLFixedObjectCluster testSelector expectedFailsparametersToUseinstancemethodglobalsencoder optimizationFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectCluster testSelector expectedFailscanvasboxesFLFixedObjectClusterQk outerScope targetClassFLFixedObjectClusterdomainrange interpolate uninterpolatelinearexponentpowppowbFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster8 testSelector expectedFailsintType int32TypevoidTypecharType uint32TypestackFLFixedObjectClustero testSelector expectedFailsparametersToUseconfigurationSelectorformatterClass contextClassFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUseinstancemethodglobalsencoder optimizationFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectCluster7 testSelector expectedFailstestingEnvironment emptyDict nonEmptyDictnonEmpty5ElementsNoDuplicates indexArray valueArraynonEmpty1ElementcollectionNotIncludedcollectionIncludedassociationNotIn valueNotInkeyNotIndictionaryNotIncludeddictionaryWithDuplicateValuesduplicateValuenonEmptyWithStringFLFixedObjectCluster testSelector expectedFailslgFLFixedObjectClusterZ testSelector expectedFailsmockObjFLFixedObjectCluster testSelector expectedFails environment queryResultquerycursoritemsFLFixedObjectCluster testSelector expectedFails architectureFLFixedObjectCluster testSelector expectedFailsparametersToUse ffiLibraryFLFixedObjectCluster* testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClass constructorFLFixedObjectCluster testSelector expectedFailsparametersToUseFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterS testSelector expectedFailsmonitor classFactory logBuilderFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClass constructorindexFLFixedObjectCluster _ testSelector expectedFailscanvasshapesFLFixedObjectClusterR testSelector expectedFailsparametersToUseFLFixedObjectCluster)6 testSelector expectedFailstestingEnvironmentFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparsersubjectFLFixedObjectCluster   testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLByteObjectClustertp tP t@ut vFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster2 testSelector expectedFailstestingEnvironmenttestEnvironmentFLFixedObjectCluster argumentsFLFixedObjectClusterBcurrentSession categories guiCategory toolsCategorynetworkCategorysystemCategory userCategoryFLFixedObjectCluster^ testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLFixedObjectCluster? testSelector expectedFailsFLFixedObjectClusterC testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectClusterQ testSelector expectedFailsFLFixedObjectClusterM testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsclassDefinitionFLFixedObjectCluster5 testSelector expectedFailsticker schedulersuspendedDelaysHeapFLFixedObjectClusterB testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster testSelector expectedFailswriter fileStream fileReferenceFLFixedObjectCluster1widthstylepaintFLFixedObjectClusterb testSelector expectedFailscompletionClasssystemNavigationfetcherexpectedElementsFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectClusterrgb cachedDepthcachedBitPatternalphaFLFixedObjectCluster% testSelector expectedFailslineFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsclassDefinitionFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterP testSelector expectedFails replacePanelFLFixedObjectClusterl testSelector expectedFailsrootfileSystemModelfileSystemPresenterfilterFLByteObjectCluster#NJFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectClusternameescapingindexscopeusageFLFixedObjectCluster testSelector expectedFailscompletionClasssystemNavigationfetcherexpectedElementsFLFixedObjectCluster  testSelector expectedFails preferences persistencecheckerFLFixedObjectClustername owningClass definingClassindexFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsnewClass superClasssubClass newClass2 superClass2numberOfAnnouncementsnewTraitFLFixedObjectCluster testSelector expectedFails breakpointclspreviousBreakpointsobserveroldSystemAnnouncerFLFixedObjectCluster messageTextnodeFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster^ testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectCluster  testSelector expectedFails inspectorFLFixedObjectCluster$domainrange interpolate uninterpolatelinearFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster A testSelector expectedFailsFLFixedObjectClusterP testSelector expectedFailsparametersToUseinstancemethodglobalsencoder optimizationextractBlockInTempFLFixedObjectCluster7 testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterL testSelector expectedFailstestingEnvironment emptyDict nonEmptyDictnonEmpty5ElementsNoDuplicates indexArray valueArraynonEmpty1ElementcollectionNotIncludedcollectionIncludedassociationNotIn valueNotInkeyNotIndictionaryNotIncludeddictionaryWithDuplicateValuesduplicateValuenonEmptyWithStringFLFixedObjectCluster$ testSelector expectedFailsedsessiondebugAPImockDisplayAPIcurrentDebuggingAPIFLFixedObjectCluster  testSelector expectedFailsparametersToUsescaleFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterA testSelector expectedFailsparametersToUseconfigurationSelectorformatterClass contextClassFLFixedObjectCluster) testSelector expectedFailsaPackageaSecondPackagepackageApackageBpackageCFLFixedObjectCluster testSelector expectedFailsparametersToUse ffiLibraryoldExceptionHandlerFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster ] testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClass constructorFLFixedObjectCluster testSelector expectedFailstestingEnvironment emptyDict nonEmptyDictnonEmpty5ElementsNoDuplicates indexArray valueArraynonEmpty1ElementcollectionNotIncludedcollectionIncludedassociationNotIn valueNotInkeyNotIndictionaryNotIncludeddictionaryWithDuplicateValuesduplicateValuenonEmptyWithStringkeysdictFLFixedObjectClusterstreamencoderFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClustero testSelector expectedFailstestingEnvironmentFLFixedObjectClusterx testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClass constructor extraArgumentFLFixedObjectClusterO testSelector expectedFailscachecompiledMethodFLFixedObjectClustern testSelector expectedFailsparametersToUseFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailstestingEnvironmentversionvisitedFLFixedObjectCluster  testSelector expectedFails environmentbrowsernavigationStateFLFixedObjectCluster testSelector expectedFailsmorphFLFixedObjectClusterX testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster\ testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterY testSelector expectedFailsparsersubjectFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectClustern testSelector expectedFailstestingEnvironmenttestEnvironmentFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsticksFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLFixedObjectCluster testSelector expectedFailsparsersubjectFLFixedObjectCluster( testSelector expectedFailsFLFixedObjectClusterJ testSelector expectedFailstestingEnvironment classFactoryFLFixedObjectCluster  testSelector expectedFails presenterpresenterModelFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster2 testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster* testSelector expectedFailsFLFixedObjectCluster[ testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLFixedObjectClusterX testSelector expectedFailsFLFixedObjectCluster44 testSelector expectedFailsemptyRectangle rectangle1FLFixedObjectCluster testSelector expectedFailsclassnumberOfAnnouncementsFLFixedObjectCluster testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectClustername changeFactoryonSystemDictionarychangesnewNameoldNameFLFixedObjectCluster' testSelector expectedFails environmentqueryresult resultItemsfoundSelectorsFLFixedObjectCluster testSelector expectedFailsmethodNameEditorFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsclassDefinitionFLFixedObjectClusterI testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailspointFLFixedObjectClusterFLFixedObjectCluster testSelector expectedFailscompletionClasssystemNavigationFLFixedObjectCluster3 testSelector expectedFailswindowFLFixedObjectCluster $ testSelector expectedFailstestingEnvironmentemptynonEmptyone elementIn elementNotInsubCollectionNotIncollectionOfFloatanotherCollectionnonEmpty1Element subCollectioncollectionWithSubCollectionsubCollectionInNonEmptycollectionWithoutNil collectResultcollectionOfLargeIntegerscollectionWith5ElementsFLFixedObjectClusterr suitestream suitePosition suiteTime suiteFailures suiteErrorsnodeName stageNameprogressFileNameprogressStreamshouldSerializeErrorFLFixedObjectCluster a testSelector expectedFailscircleFLFixedObjectCluster7 testSelector expectedFailsclassDefinitionFLFixedObjectCluster testSelector expectedFailsrewriteBasicEditorFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectClusterw testSelector expectedFailstestingEnvironment emptyDict nonEmptyDictnonEmpty5ElementsNoDuplicates indexArray valueArraynonEmpty1ElementcollectionNotIncludedcollectionIncludedassociationNotIn valueNotInkeyNotIndictionaryNotIncludeddictionaryWithDuplicateValuesduplicateValuenonEmptyWithStringFLFixedObjectCluster k testSelector expectedFailscacheFLFixedObjectCluster@ testSelector expectedFailscompletionClasssystemNavigationfetcherexpectedElementsFLFixedObjectCluster testSelector expectedFailstriangleFLFixedObjectClusterA testSelector expectedFailsinstanceFLFixedObjectCluster  testSelector expectedFailsresultbuilderFLFixedObjectClusterK testSelector expectedFailsforkvalueFLFixedObjectCluster   testSelector expectedFailsrootfileSystemModelfileSystemPresenterdialogwindowFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterP testSelector expectedFailsFLVariableObjectCluster#                             I                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      i                                                                                                                  FLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectCluster xScaleyScalechartstyler masterShape markerColorgetRelevantValueBlocklines formatStringFLFixedObjectCluster testSelector expectedFails commandLineFLFixedObjectCluster7 testSelector expectedFails controllereditorFLFixedObjectCluster`exponentFLFixedObjectCluster# testSelector expectedFailsunicodeGeneratorFLFixedObjectCluster Y testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailstreeFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectClusterv testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUseinstancemethodglobalsencoder optimizationextractBlockInTempextractBlock2InTempFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster@ testSelector expectedFailsFLFixedObjectClustersxshxxshysyyFLFixedObjectClusterQ testSelector expectedFails senderCtxuffiCtx lastUffiCtxFLFixedObjectCluster -parent propertiesselectorkeywordsPositions argumentsleftrightpragmaFLFixedObjectClusterS testSelector expectedFailsparametersToUseconfigurationSelectorformatterClass contextClassFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster f testSelector expectedFailsaPackageDependencyanInternalPackageDependencypackageApackageBFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectCluster"1 testSelector expectedFailstestingEnvironmentFLFixedObjectCluster' testSelector expectedFails environment groupProvider builtGroupsFLFixedObjectClustername environmentFLFixedObjectCluster" testSelector expectedFailsFLFixedObjectCluster_ testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailstext candidatescontext processorstreamFLFixedObjectCluster  testSelector expectedFailstestingEnvironmentFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster%sourcenodecachedExpressionNodeFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClass constructorFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUseFLFixedObjectCluster,parent properties parenthesesstartstop isByteArraycontents openerSizeFLFixedObjectClusterO testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLFixedObjectCluster 0 testSelector expectedFailsivarForTestingFLFixedObjectCluster testSelector expectedFailsparsersubjectFLFixedObjectClusterL# testSelector expectedFailstestingEnvironmentFLFixedObjectCluster  testSelector expectedFailstestingEnvironmenttestEnvironmentnumberOfAnnouncementsFLFixedObjectCluster testSelector expectedFailsresolverFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster9 testSelector expectedFailsparsersubjectFLFixedObjectCluster  testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLFixedObjectCluster testSelector expectedFailsmonitor classFactory logBuilder inputEntry inputEntriesFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectClusterF testSelector expectedFails filesystemguidevisitedFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster / testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLFixedObjectClusterH testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster; testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster testSelector expectedFails historyListsavedFLFixedObjectCluster testSelector expectedFails environment groupProvider builtGroupsFLFixedObjectCluster testSelector expectedFailsmanagerwindowFLFixedObjectCluster testSelector expectedFailsbrowserFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFails slotDisplayFLFixedObjectCluster testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassinstanceFLFixedObjectCluster) testSelector expectedFailstestingEnvironmentchangesworkingEnvironment changeFactoryFLFixedObjectClusterinvertedFLFixedObjectCluster G testSelector expectedFailsaSliderwindowFLFixedObjectClusterCh testSelector expectedFailsnonIdentityOrderedAssociationsidentityOrderedAssociationsFLFixedObjectCluster testSelector expectedFailsclassDefinitionFLFixedObjectCluster! testSelector expectedFailsFLFixedObjectCluster5 testSelector expectedFailsdpnodeobserverFLFixedObjectCluster: testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster> testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterX testSelector expectedFailscompletionClasssystemNavigationfetcherexpectedElementsFLFixedObjectCluster testSelector expectedFailsbrowserFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectCluster? testSelector expectedFailsellipseFLFixedObjectCluster  testSelector expectedFailsclassDefinitionFLFixedObjectCluster testSelector expectedFails newBuilder originClass usedTrait superClassFLFixedObjectCluster testSelector expectedFailsoldValueFLWordObjectClusterY!YFLFixedObjectCluster] testSelector expectedFailsrootfileSystemModelfileSystemPresenterfilterFLFixedObjectCluster 0 testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsbFLFixedObjectCluster  testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectClusterP testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFails identifier preferencesFLFixedObjectCluster testSelector expectedFails presenterwindowFLWordObjectCluster@FLFixedObjectClustermanagerdeferredStartupActions propertiesFLFixedObjectCluster u testSelector expectedFailsbuilderFLFixedObjectCluster testSelector expectedFails operationsFLFixedObjectCluster. testSelector expectedFailsobj1obj2wpobj3obj4observer testClass testSubclassFLFixedObjectCluster testSelector expectedFails decoratorFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsbuilderFLFixedObjectCluster= testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectCluster! testSelector expectedFailsparametersToUseinstancemethodglobalsencoder optimizationliteralExampleexpectedLiteralValueFLFixedObjectCluster commandLinesessionstdoutstderrFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster>domainrange interpolate uninterpolateconstantlinearFLFixedObjectClusterl testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUseconfigurationSelectorformatterClass contextClassFLFixedObjectCluster/ testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailscanvasFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectCluster46 testSelector expectedFailsparametersToUserunnerFLFixedObjectCluster testSelector expectedFailscheckerFLFixedObjectClusterE testSelector expectedFailsparametersToUseinstancemethodglobalsencoder optimizationoptimisationsActivereplacedMethodsFLFixedObjectClusterf testSelector expectedFailstestingEnvironmentfullempty collectResultemptyButAllocatedWith20 elementNotIncollectionOfFloatcollectionIncludednonEmpty1elementwithoutEqualElementscollection5ElementscollectionWith3ElementscollectionOfNonIdenticalFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailstext candidatescontext processorstreamFLFixedObjectCluster testSelector expectedFails environment queryResultquerycursoritemsFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster< testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClass constructorFLFixedObjectCluster testSelector expectedFailsparametersToUseFLDictionaryCollectionCluster#M    FLSimpleCollectionClusterlK r  j  FLDictionaryCollectionClusterm*FLSimpleCollectionCluster[Nv$       IH e"  ,. $ Y lU6_A rt 0  bJ %$m7F  d4  nB9 W e?/+$4.  3 3      1  !-  FLSubstitutionCluster"3M$\J.8 %+)E'UFphm/3t%~"ib}./w) DP#`&# r6Q)F&2a3Bc&g# \V.[,*1 Cɝ1yC1,9Y12=g  C@# - *@)$0M82^O%a.Zfud*Ŀ#f=%t]-5:'Eb ,|)Tj$ ; ;[3#(0\ Bl,9aL}+ +" / ?-Gfaa,Pة2/8w%-`H/%\0b{,}bL  #~,FO().6g M)P$`zU ӌ3e=a)- ) T3al+lU//RO,IM)&B!H4/o3X1%1 ; 3w3j#-Lk t1,U$g.jîd8Gp,W ,8@ Dh.+X0˒(L#j/5z#?k"d/i&.157$N9`- +,*ش27hBc.?_./*'.5M)?]"6&&}('$#6e32^-#++w0B;(ϲ0&`c3h3/md2%2+]`Ȑʒ8s&4/*1bT.q|| G3::/%"!*qd$##W)&-EACF3H4$'M-4(.1.7Ԯ!8(+Y0/1 X/9t&4d2 ,=K|D3]%Jb0#O6b,!'\#*D#(+%OFZ/NnMd,S^"LQ{'P3C`3^:*W>ǥ3R&"#@*6wLS>!BՉ,r(H?0<Џ1$+ۚ]kb/".\=-+k,92i1B^"Zʸvؿ%T63s#*c~$M,$.8Tn1#c& (8+z,0K*[A>($X.ʰ02RKU$O# **Z2C Ie 3C0 1>/0N#hST+ !#w:&]@c0!]1yK).-'g1.81 >5W( *cW)2 S3D1`)0z!,4֊<#ըo X^0 \ X/@-b#yy\%C+Hs/ 9Q. $k$25 IJ 2 K=+GЫ62&<:3&;Y2@"c* &O&L0]:lbk3KP38%(U+,.Iz k$FGp*9{Vz v !#.Z1_{.B\&)6/\2) -hV؜-c[X  Z$"X& 2<-E?H3_V>&QP) !vNH16Nq  DÊ @9/(1P2 .(Pf-!/?=1[MA[1Q08//xȁ!C&l1Y2?!#(w L/H3dK*?j&o #3NI,ˡ '"'W'*kP#XaX_1,+еF#L)U86+(i\e3G$2ݑ- `(B2}H,f2T.0,P 0<\"u*z [%}?J!C &#)%H(0X+Z2j1Z" -$?Y1<`&Lp*d"%/%*)ӨJ>->x I!p"(y- 7<'#Q%''*\\,QCMV!u -q ` +6YM(SURc 2KO%R>E"1$Sʏ.Rcj-Y/! [/] g"!˱!&/87W0R$p3Xm/gL/dW(!-f3(0GzXB1>V9 ގp"=!1k'Bݙ*2r`3D8xI*!o!+O lZ)R;$@XB2=#M ?1 %[,Z8 %F0Ѝ0`$7Q OPg->B$7C1.$O7,MH*-+U],l"Z/.T_"/P+Z5 '?k_B<%5$rO--o,/)W\+]0<Kvj(M10A  S='1D$"!!*S).(5n+NSV.U+=3WmG͢^ ]4^g  )Zd,ryb(<yxA*T%^8&W/.&-!D}K#^D0D d +]Z.VC"Tt,1.+*^$7R+_$Ot_,=*K-L ʞ׾.)ː*$^ ;..0L1*W &$8u3L",)bs rV'-<b *7j \=3eZNr)Fǃ,#0@#>ܣ'֝$ZJ&Um,S,< R%;a,u5S!U,^3I=+ J93k&=+AI*ӫ2щ&_ ',RF,-l0y$%2K_&}!Fyqfb2pA'cJHyk32mo~#4n 7/wcdie '40. M$B\3, %%#G[G/ &  3vG -GG- ) # )G[ &G#GGFG#G$F /G F 3v $FGG#  G# %R" y&Z*CP:wl(P'/Mp*F<0_gΏeILx[c#N BH)2432"=2".AAv ".A;Y2".AQ .".A[u-"EFj'".A[ *".A;4"EE"egE:2".AH 2".AE ".A[ "EF".AVU".AS]I" .AOa".A?".A;"EV-"\.AH."EN$".AHL$"/.ABT".AD2".AO4" .APU"!.A?`".AH$"y.AM ."_.AE".AG.".A?fU".AT"EIH[".AC!"d.ALs+".AK/o"c.AL"{E:X"EN".A:fE".AFI ".AD"EQ2|C +(MB&' +q-1+ܒ;T(30O[/CV/AIr1z&*adG55`wO[45)xF(&,z%NZ44J\5 ,NuL `w75 utK45kFtF44"uI5 yW=45HX55zV gv@55}v7J85k5!Y45O :459N5a4vI44W5r8z!N TH45q0tXAp5 Ix:i |nf7 v,M45Pz8446C55GwK ?z\ " IF5%z9  tE5P48ztV ) {buF*5F&_S44w0M^ t]? E#45{ĄtN # "{U% $ !ex<44xL55S154my@44-V44>A441zC54,t64ńxx>~45 Ô64 oNz54\ _yO5x5>,yE x\5`5kw=44\]%5r5WÜ7_5r5SuU45py745[{{;- D{|IC5_4!TP54Zw"P45tˆtH55uKB ~vWu5e4[z9K5T4{R5 5DtW55Uyz)R55#v[h4 ?44V5<5su?l54z=C z><5q5x5>N585_Iy)<5G4Ry@5H4WyJ ,wD5} < 5e5y\-45n2zXE44w:  8ƜXu5<S5? ÂG|4 fJ55|5n0w=I5+5D%tY44u-C55wv>5P5I5% u|T55>Nz;5 "vE45.iy[5o4S5r4guY45>/55u8  nzfJb R45C_5r4v945 K45;5t]55x=|5g5Yf459x:844zu:n5JbwrYD5y5TĴu8 u woX44;5T5tC45wP 1 ÔH5<4zYN546y6T C )U5r5WƞO5%5(?5?5}ƞzBB5V4w> ^`{=44Y5XG(O45qWY5r4vkQp ? t7 "Z4 c{RZ N{O45*y{a<45&0xQJF5R5 x3Y54zGJ r {[=Q p vLQ5) W44W44wV  Lt;}5m4\5r5>weVj xZ< ? vA5g4{?45]w)FE45s@wU5M5(4{ XN4 M45`Q44PtH45?4 KE45zF/ NxY55#745&uI45xQZ p q954·Y44<J5/5mxB5: p[\45XU5%5)09944L5 5\kyW +GwNY5Y5dfZ5G5vÜwPO45vC - Sq 1 {NZ5h4;5l4PxfM<5O5{Hv{ :Ny\ {[  z9244G[5B5py7?C55!vI44!zD!5O4xM@L54:45(RA5T4ƚyy=45&ƜwDE`45w[ ˜wE5 5czT# H ~wG K9xN45zV5o5A\w=T45mħx8 : yusS55 j?56 x{=55vqE55 y< $ vTx5\5:]45m5t\P5 5z8xzF44tJ45'z(Z45z9)55OMF5 4x[x L v(J5b 4P< 1 J45,wFM [ =854!uMg5j5J;8{5 [b5,5SzY ecF44E5654wA j,v#Y45U`Nd5<4tYW4-w*Y5;4vmW45vxLt44QE55nyFD1xe\ " nwB egwkC|44{FA5Z5P/uRg45Q@x@f45KuY+5D4B845s-uV) rkyp65 5{T44t}6  etT@4416G45y0M4wN< k #_>5 5qygP4 N5 4öG55{yYX5d5zWNe5y52NtFVq45(x:5V54x!R K ){OVN44u@% 1 vP : T=%4M{pL 44{x? xG-45;iw<>55{< 5s4tW45LR<452vD5A4u9MTP6564=toPk5{5mA5|4wZ44xWW 5H4y:45yA#5r5E=M45|w=A v 7y5y56xT452v{D tI5K4oG=wH45>zX4 zW= {#@^45-WR ^ eFk45y>5'5C"J5T4w&<6 Jvt645wxHP'4OxxIH ĴY*4 xV[ N545vTw>W _ ^c9~45^M145w^P5s5va[5|4&955N4 ZZ565xRp5]5~|tB\L44 7*45AvAT5 5 tAQ5R4‹O25u5_yU<55[wR>g4 ZJxNQ54ûE45.yA55mv85.5/A?5B5 {T; M 65,5SBwbB&@=44A5T5H5r5/LNP44yP454t95t5 v=N45{Q45(z?z45>xE5= `x:5 U045\vD540wS75\5*|tHT53 P{FI%  a{HW5q5]4 yI@5;5t`yJBe5@4lvA5$4Qw>Z3555nXx5ZÔ{ZG <B5E4zX45nu>:E =xs<44:O5G5vx95 5Etu | 6uz}85;5tRtJ'54w,I5 5_t[ 6 Y15e^{G5@ ySj yIp5 49z\Z5+47xGk5o4x]"5t4K 2 yU45{qwm:55L=5B4uAx"{ W45Sv85>4tY5& EuK5d5zC55v\tQQ5S5A5/58T{_H5!5s;;5Z52_Ma54wO5,59wU\55&tO7450,:e44hu>d 'C55!lv8 45 x\5m =5Y5vPvQ. 1 '(xrI  uRS vZ:<55XK55XL5l5xHuY55^LG45>{\6  htG\O B ;?5t5`v:5j5}yN55|yU \451nXe svQX F ^645kzoQ zK-5G wQ5vQ/45J2v E54{8844{J4 M45{SH45wY u<@44>tJW45F44yw :s4C5@5bw%S[45uX459 7455t: 4 %?O5%4{77u45xG ,uJ (vS45=wY445=y=44zP44WxMz5{5yN4 {]O ,`x?V Q?g #<45+yM5 5J95 |kzh= v<(4594 >z44ğ:o4495<5xzUH44\5% zC5n4yV54!V|44cxCL5`5)H54ug725!4Qz>5"5Ct5<5ktC55XG$44 Wb I *|tQ uT&45u[44K5e4w#G441Z45y;K | GV55qu\X45 ğy=5 1x}95d5jt{O X5,4PxD1zFR4 {7 <;54bYq pwXl ,u G55\eH45._> &{ I45[tM454t=Rz5;5t9;5G5vwX TWJ =K5d 2\{W: e yu>584OzD5zw!757 x+]$5g5c#x-ID575QY{[*5s {v9=  y}84 y~Y54Px;5g5CzN  xvQ44z2Y5 T5B4Ôt[X By8 z>x45>wL5m4vAB5D4xKq45V75eOkue@'55W35%4ûyJ<44vNU5i=x45_LMY45xX : vLG5j5NzZV4 :yE TvVO % t[^44tT U t945|F4 uPr45p/zS=  xc:)4uB5>5wN4 zğu<45zR T y7e55g\45zV vH558M]=5Z5'9Ka45nnXQ45nu!=44`yZE1 C; w3Z$5[4vM5D5Wy5l5VuFX A:45Pwh6= %uTP45fQ[y5r5WAU54x;3 UévU455Xa45dG\5%5wJ zHT5k5!uR wdB5_5H45\xU;5 (uzEM4 %vM5v4wZW5f\5% x/B5157Im45WxQJ5~4v;5U4\ynP5"5;/v!M5v "uV45k{I55~!zRR44<xY4 tQh551yKM45MNm44tB_45zAU5* JtD>R45!I5r4uBA #yvL&5N Jw:35V5[wO{5l4tZ BywM  K0uE\5 GO455{M5>5wtZ44y,65!5.w-\054/8!45wI W5T5nyK445zvO55RU5,4wS5 z3644R45xP"54 zS,5V4):5T5yTw45> wAj C {U 45GyX !tA54t7O 0655\ yL5 54kKd5Z4yM DzeSg4SxEUC ,uh[ -{YVb4 c6x\5 #uZ,55 u]#455=5<5`t<J5 IW w7 vK5A5!{:*5*5Od5r47zC5 5GJtGa5'59U"5T5{QS45.wVR6540Iv>5 5itvD5U5#z645]Mj44sM4 rv\Pm5@ D44ĚSz44@?5T5éK5l5Z4 uL54>G44dx&I44ex'G?5H4v ]:4 1"HB5B4`W5Z59 wK54H5 o?U55 w955R w=P5L4?5u4xU8N5r ]P44<|5 xL44xE541:l45JuBU45yZ45uoU> ; #zQ5A4ĄTR5 LR5l4/=45zR44trH5 tKG44>j4 08)551t=595zS  ZwY4 T6x854A5u _u854Oz.VG z6 jy]>55"N557r45'W C \yN&5'5@{4=u55nvt[55H?452Z5<5OS44_wzV5 {jJ p LzC5V54{A5475o %|B55%uX4 "{@.44x[5 5>wl74 5x<C45)58 44uC5{ x`CO4 tS BÂy\x zS55@y6<45'/X} nF P55$zbM :nR? 4 zd[5*5vSKt45_6yU. tC4uX54wKZ4WwN5w4yvM> z LS%55C`A45{HZ5r4b:5C50ÂwN  {N45:z[ U ĚuDHd4 zu85;5tbv;Ty5]59wX44ğxJ@ -8V55<t\v55yR5j5bz+J05P4 I!5d 2w6 55sv]H5L5.x%;45{{S5 D\5B5QwR55R"uK45#R+5r5iVU45~t?y53 +]y85{5ngzS44ykB5W55·yV9 H564ux8 : B@xY55y*9/ q w+@5{5*)L454S54t\J NkzYi4 ğ{o< VR45t;zZU p oP?5S4{0YU5z4X?44KP54{%UT458w;P!5J LR44\5e4ħwQ5) {+8w45&J5E4tvAg55=>*5a4NytR585Qy\57 "v7 <wN55IuqV-5E5"yPV yRY458t6J55XĴ{cD a 7C25 4;5 5$PxM& BxQW Hz/R45z(z0G5 wVL54z< 3 wfG45UuXD^ P tS54[55ET5,4zI45LK44&C44my_Ra5=5@]yF{45zZT5[5#0u9'5G5^T5<5tWO"50u`\155:w7W5O5j56X55*{bW$55[Eb  #SBl5Z5(V44tlN  jH45tUU855Lu&Rr H45u;B/ ŜwaL44LyZ@45>zZ55Ĵz8r A44vHX5 ytT5q4y=P{45C[5( cz Ai5C4!wG5h5kvZ5 yPF : V"x?5x5'{)LF45 jvGK E y@wnT55i&vUe44=44?|451=54{X Kx;Z5;5wI45w1{J5 wWI5s5RwL;z4 PM5r4 P5u5Id55zC<54uu:$55A/Q>| @5,4vAf55qbtN5l5EL5!5Nv>7& zw@45M459hu3W4 yTd44wH5u4gy%L44uxB54tA 55 v\[544SSa54(vv\5 uT4vw[q aU45=v/P45k,@Z55x Y wR.5`4xX5\54vO65v4W45ntqO5s {LQ v ƂXg44y[> ?vNk5r5;tX5w5-zE44tG5W4L45*y(Z  &t`?44L5 4x7-/ yK&5) voP44~y[_ Tk{W#5-5}yT*44Gd5r ]TyO\5&4 >U45>W44 yN 2y/NC44V5<4C5?4K54Ih44x854tCD5h5+dS45!vJ54z7[G45[iC @J{H.44@/5l5~v<B54awY&45·uF44uF yI15`5LJ45Db54.\44%A45 {U@5^GtzPv5k5VwLI % tD >Cyx75# éxT c vQ4 cCz[44ħGN5%5^IX5,5/+ -ySUs45GõyUH551z_\5H5k!O(4zT45$xW45z~Ac451Qv?G585sy9h55):441yE5~5Nw~?u 4"tJ5k5&945{ylS5Q %w9-55Tu5J5w5{Bk55ixV5?4vFW44~vM { 2tk\s U5 5[-A45qzvQ54OZ5GöyTZ55.xSUd45jQ54y@45q SX5W5Dw}Vl5H4x[Y?4 ;xI54I44FU5Z4tHOt54w G442H54B 5Z5$ğyA 1wqS6 q VayP J*zI~44VO$5 4{VE v gy?45[p {w85 `z1[54w[ Cuf7{ % =Z|5B4v1>4N5 5\x?53 Q  z? wC ' Lm{Lo5: Bn45:5Z4 z\`5^ )x? %Wtx@U 'P4 z>z=e5:[<5y LuSV555O9x85*4+u>5U tw'Vx54v6!45@o vF]5T5~ C 5B4yF5G5N7N"5Z4w<5u5B5r4^zJ5H5!|u<55uz->55*w?X{55CCW44 yB542)I C 44VxTY449un745XZ644ubS448h y@244ZR5T5$vV  wi=:5u4vH5 Tv+\45 `v38/ XzRt45v< (U55iuNT  >vg\5K51=W44zNV5>5kuW5&4R5r4YW/5T5x>45~+wO7 gRM5r5t65k4S5e Qw=H5j5 į{I4 yu AP44f{RYE585:yC .x>: 1 wdzIZ44-yv:O ^wZ \M44X44wOq553[m5w J ? 945D(t> ħxK 4 tuG 5# Rx4W45<uQ 55ZwE k ·{eN4 @55fvL5@uIH44uuF451lx@45I45vxY45~M45~P5 4= k u9 p wkR45Sv}H ] {B4|vG T xd@u45.UM45z:5l5Tu*Z54vE U•zVV5X py[ {JNQ44vA@ \ 8y@=I5)uH585zzOB54jtZV5H4Q5o yH E<44<5y4,{/Y54A45$uI  uZ45^xDL>44>q5r4R54"85<5`v\44xQ uM44y E5\5Ra9 1E{BA525L~xN :m564JBw45Wg5y5u·yCVK 1W5 4zJ525OR54Gg _x>5C5v(u{=54xS555^y^M5F {iD5k4z;5z4 C54:y85@ PE55;u>45SwY448y:45DY4M 44•>45ÜxtV54P>44mD55#8c44évn;4/PxS "u=?04 G55õtT44vO<5G y:45z6 4 #wBN xWE55NO*5e4wU'5453z5N5>5Uy-L565xK5.4vR HtM55!yF5C4{G55TD4 ^zT\5 wtw;5x5D+uP+54NzE>45s{"S5\5!7vXR5k4a;5M4Y{6C55[Az\5k5_Dn H"V5r45<+ ,F45x E45su)E5v"y G&45y T45zx\5&5)UM5Z4u(:-5w5sEzsQ;5@ pxP `#=654[t54ğuwQ zL - 6?5E quY}45vBV54zX154v5  85 5LT568<45 `w; zA/45Pu"\44·z@W54v;44Mwv;45yX  |?5T4[Q45*yqK5Y4{XO44?5Z5Iz6J# E2w6M5} DwcP45D9j5B4S?%4 Ex5|54De5B5HX45;4 Z=564WzjF < Uu?H51tQX k wM%4 Ht95W5qv^C5O4Tx^]N 5 )x[e5S5y"Wl k=t@9l44;q U 95|5i|Z5M45uZD55F u@Lh44@R45Ku8 p  c 8{L5# yM458=u$NH554?uR45{>55xXKj y8y45, X Wy`I54z J;5+4My2WL44~T45?WzZ>m  ilu\b4R= t<5T5SY55IT5512vNBƚzO  ĕM45Ug45!;uF#5H5ki=5B4{]45DvQ< F T|{vM45H{G B kwE5k5yF44S5Z5xIe ] 5r4zCm kz< ,uU " NG)5r4ÂuPF vbW8 zJV5!4  [ WZ?5fƚ<5%45vR|5+4,Rl5Z4>@5,5x{=, W=zxTY5V54Ƃ{=>4 zH5 5$ty$?^ 5 6M&5%5wS4 Z8{y< 9t>55 W55W5501j9* vP# zl?/G4452tO5 4vT85V4vG 5= ukJ xU595nM'5 2x;44]45SyV9e [D845w)R551[F5y4775l4Ej5B4wx[54xT o MA44xB[ ey8440yJI8 vW_5 w[ U 1wY44wwM5*zC5+5ğy4S{ x `tm>Y % #5:T `tS4485,5z[I wYK 9I5,5>T{T5+5 #8z5<5yN UvS5pbxvFy iuZQBy: :8nzCP5z5yw944D45nĴtI? Jp5|4u T44t>^ stHs LvcM54R `teF5O4F44xE puW<555vHE 9y<Po55{U55NÔy]L B {A3553Ŝ<5|5B45Dz7 P44!t;F %;zI 45Aw=4 T >@5Y5>xGJ/45j#xbK45VDL55.Yo5Z4v6I yI55 {z]45"w>44iyK;5G 85<4v&::5Y5!w7 xC 54~y8 )zqO4 {9F 7u,U55UvE v844w|[44YwQL54u4E44]xB5;5dy[5 +vYr jvB E2{CDG4 1_xK5<4w:H5x5fw;C k.zC55[yW4W0=5<5`t\4 +xpIU5D5<&44LzcG445{,Ck vlC )iC-  xR]6 c{MF,54v[$44v|654F25 aR45c@S44wDz44x ?/ v\C e [55'/xuZa44taB5\5!atC5 pvpMn54yT<5V4yB5G w`wR245tP[5Y4,X5<5H:C451]w:55$uP5;5 eK 45fCv451nW451Zw_J55hxP55O5%51yBJ4 5wAS zS55?wE45)v*9!44euYk4 TEN5,5wO4 yiJ5@D>745'{8 E `xN | _CB35%5XvfU44(Tm5B5Fy 75\5RzMW T tNF44ZyP B5Z5S-:4 QB58 u  ~6F55oD452>wIV"45#R@ 44(v85^ zuMT5: TwTR45A'4 ulN ˜R45A~954vSU + yCzK0 T vS BNv5<4v =5e5"5tO5^ pN5| {[555DuFH$ ^~H y>[5e4xF5]4>wT5d5ƚ{X Y^55,v\54z<P45OzH  wAE44IzuR uCAu45oYx é{8Y5_4uFh44tgO u8>c45hZ4wAU it|ND z,:45C<P55uPu7M5 J45H+w<<5R5m~zkM Z uMB ~/>44vO5: (ziQ45!{2<44y3Q5G4cxQ^5& J<zr75L4DxUA55>5U{zF4 Z5Z "vDw5P4HR5( w L5'4CGS45w95|5_ wE75,5t[A z\W vuA54-t^6Q z K4 x655'/y?5 Av4@_44uM55Rn{X<55cwT54E5< <õ?45tJ745xT44NyO :w6 BOg5B5v&95%5d&yTK45fu;54v"6{5-{^OJ $u^?458vY 6v.Y. vzM  x"=54]H55({Tu ń9G44O5G5vũxXH45zg] GA85y4)tY\44 xiC45DavFt45wnq] H\95r5?x{D44zRj •tP 1{= ] uIA5V52yAA ] u#E xJ5j4JvM45OõwR5G4u Ev45t;44z;44J451A~45ts653 zX w4Z54xPLG ;t?44#{W5iR:5r4w< zzQ45nuQ44vD 5tb7M5H4Sv:J44{R fZy],55vUT44gzB45uI45+&v845v4?D -T 5(4F=5r49u+Gm54z>45)J5,5S)uLW44u@Y r  !Y]`(3U4/2&bP86][$%T=W!1%523z,q)r[/#OE1W+* Md0e'Gf0;EGf%|*1n*&a\Gf#@ћGf1nGf/s2Gf1-*0*0k*/s!*0*0rZP*0r2Gf"ddGf"dLI*&Z*0jGf1`Gf%|Gf#@[*q0ܢ%UlGS.H&<1N].u.*3j>3jc.uR>)T3j*1N->D>l>3j}-S.uQW.ulF?7*(G>1Ns*lc>1N[)Tu>*(d}1N/x7l?}"})Tւ.u*(Y*)Ts}-)7l3j7*(.u)Tl>3jJy->l,*-\71NVD>lb.u*(b >1N}-)h}->\*()T*-))TS*(F7)T73jlR*(?873j>]>1N`b7-l*%-+a%0Sز' #!:+yS$^9/b+.GWG-2H!Cd}2A; $'#@}*؀!#%11,4T7Re e0A&L./&#W*w0`) [ `"!&1702+9۹$X0<ɻA%X,&Q (B)dJ}H1$2S%Z,1*&])7"\#0z'A%),= .%R@3b2jO ~8 L8/$K2&b"dp2}̨-, @$k  {:%BT$ex?bY1[JS0)dK N)}I1 Y&Uy82/m;V&2 H* DAd 7N'[R !!'=(OC.(. +7`Go-cJ3ٻ*+W-$Ҳ'#W'O C- =qL$G1>O!)"bE%$%."p %[-b?lU2^7k62g/)$'g~ / 2++M'"~ 'L&l4>(9x 2a"Y?F!+b-E v (8+ 3N(7JN -Y`;+@yLK٦0$+'C(+Z*, * V1k?uT3d&&]  K U10K&zI>%J2. H,cA)*&ӗ#.Z) 0}..&  3{*'=#!r,c"i3 J'Bw0K!R&Z)   Y 0k X$ ( !@%P  O. #U  e~ *+  v 4 -j #GFO]ZK&E"K2k'YeX*"dRS"AP2d2d%d% _!%x!RŧRL!>"ŧ"]N!.Rŧ)U!>!"]ŧ/ :ŧ0VPŧ%!T!{ŧ0۱!.4!)ŧŧ$!"\t!2!%x ŧ!ŧ _Sbŧ"ŧ{!$*ŧ%5ŧ2/ŧ/M! P5o0L5 :k* i"C pv15N5& 5&!/A f258-] [24+P +S5z(:3 2*:65`wH 2-4255&55lJ -5i1 ,5O5* 5 434jwGd( Q T~ a/k 4i p0O5^r4o y 7 |55}%46 :&4v5x4 - [k -, )-5_A%x +5@+4)$5\n  +512B47 x-4! 5lk k$43IJ ew5 #5S+t5k 45C15^" -5$+>:oL *!4w74 :5s+5 9 #5i6 -" O2Y p%I4. $r5n75n: "j ; $/5t3 |,s5m/S5o,U " * 8$5O* DW#4+/ $*@5!. 5>U, ;/ d>4) 0Z , |  ?VV314+ q~ T, 5i ,5_3q '"V /< Ĩ ?! 5Jpv "* Lrp 6x &'4z35<uHz  )B )D4'R4,w ou4 p74>5- (mM#y5{ : 1} r* - s(1% P$@4"1K-f5# D :*-[ %5w" -1 qU-4A. 5/4$ T 4W5-q6 D1Z502;h'14W)/4™ q% 4 a24sV e4w5V#54:?  %%5zYZ5G'o5m(?5=@x- Ub <.W,4<! {$424M [~*58> 3:  2(47*5i3 54,{4#  z 8%+k R05X -L57"5wrt :'5:-!vz / w 5u u+: 45U6*5O. S$|5^/ &Z5g* *4: 5NVr  : 2 .E4Y,R40 2 P&5 s4#N mg} 3T4 44A4: (M%U4*5ig. 5 2X47 U&* T&-  35LsX"R5*53y4 j'5L#55m%&j )) " +V5Fb)O T9F4  5\" i* 5g'i L"5/ _*58v u9590. 77{!4=$4B ' "5Rh 35.o Q4 X4E$<587 '41:435J1   )!5L!5sh Ps'] 1u4)2 J60w3/4v { 155^( % 40G5I&<6O5 4<# CP$5k 5 57)4J,14%'4H8>4Ci Z#45#'^5K 5 4Y5i!41v4/~ ^5 67 1Y k64=| 2: 55[Z.W c[.X4_{ d& u4 Gn0q71 4/ hny 05&(o4. X 4 O'|wO D6G5i.{*%42u:5(" F06"5v  1o4|9 B='454J4v, |(  u b,50K0d5X5F"& v +y Lx~5@.@5% ,45u# *t4J5p. F1:5&|$,5\%q {5z |4Y +hG2{56 z d575w 4\+6 4,y F* % &4p4)4v:u5[n" U; 8 ,,>5:/, $58R4c0p0_! i7C4!5025ch- T1 å P]* ,8 1c" ! 9 :!5o ;3 $+ %}6532?589%2\5  (D6 o:5785 K #208 ^6 6)!& :# 1 :Z5khyk " ( pcG <)s Z2 4, ~' 8, ^$`' %i51r /5i--57S640l5B35pf "75n)5'5X.G >!/ F*4*4 N S ?:\5& lx,05[~!^'5ơ5(3# 9" t/ 5 2| 7E j7: $#N4#O   K-w4#D # tQ&52X^% #41rl  "4?4R (eq)4z ! %~485K3X4#6<4 '.4C55|r y185q#Z #[ .0,5!V"I4/I5)}!d5&4J (5&Q0 R9\ !+ - f650k5$ Q <zn !"5D "19m4 nw &4| }5W5P/ . =948 4ƕ58- A}.5O444] #E59354"x l 65p SK zpB 3t .& 7&4) e!N5)]:q4U9M 4|D & " c 5sxX 9? A,2 *W 6P5 f5 f/40 <Ix zm1>5o"A z}#-5Vu #} f75f:405a!!5}$ T -K4+D5 '%4( w99 .$4 +V:$4W:%445! e 'Wd,5tE 0 DW"m5@¸5)+.&!f$" T&+1k.,"-c&0Z'G&l (ATy' 5s2})-+7l:v0;0-Dy-%&<- 2I C Q/b[LU"~193d7Y&ջ$F< %82j3pZr'[  )dke+v r& ;*]1[c0`.+y''1[)r(7Cg%+"_1>I"?#o*Ϩ;b)/v{>'%"0Kس O- $e:Y_ $kʁp" H&# 2%d#^%522/'@~(b0Ύ&'#C$Ɛ( CEťxX1!#FS`NU[*&6 @ "!#.^<+3VN]/Aq]/_)R=R LƮ.,.7*IK&O1=E%!0{?)g`/#E"E-bD"[&Lݧ 2O2`' ;Փ-Yp$% I/mK!b &(*[,1PhbK=qA2Cp#W6$^H2(0?zBs(#!;*)62& &V2^*.(.#,4%-Eۧ%RA ]r) (E>ON*`H),BG v#x@&QF5"dP+QT !CN%  ~2+WR$2#L<(k?50<32>Z `.Fo:G 62A/'g4q$1;HRI%J`_K=0 A ̑0d n{ ;3(!</$/a1V7]$, l( 6V9A5$A*t /-hC1 z7q 2~H:5d#3rf /6e/! (K"49z5yz ,6)! ra L.t !^& g26 -,50M15g05pvT9CP5vW f4t3c 1:n! =4Oß 'MZ ('3 r 5s, d+ 6c ]) ,D , {}i ,7s:} W,2SV pJ5& ^-8 i"4MG%e 1#Cx!4(g{ {Dl zk/&Ŭ 58* 50ܹU +.5i9#T 'yF 61h5o)g |Ac:`/ U!5:v@4)&8Sá# q5A 1*+c%XH &Yth U3 5_(uɁ *ol? /J' $VÀu: k0 `; 71f q  7kĤ Jw%  p 3EE k¦5) 641$|Z x(*\Z5&e' U$ ;Go !ycC $  '  } #P ]#z :y `9, /Ex [=57(Ħ L1> 35 ^Y9a+YrM"$3< 9,`8D# 4*X<* +.Z( -R / )~", 9&  Nq4$6­  Jc4:Xq " )Xo #:&%c z9l 9#d # &b5~9 p1q5:$"45"S N* &E35yoh /m# '3] , 5I #2%d( .\5T1 )s#= #7rBW5- +T 4K5g/! [" 3t pm#ϏŇ A5Dü588 {% k/7 ,5&S-Q #K "zfX3--5z,^fp 3/ !0 2|Ln 0\ 3 >t" @:}5o%5U (0"5/9>w{ ]2N> |:W 8 ,&<cu#5|' :~q 54 /%6t'"cm* -T 0Ë 2` 8/50 $ /q!5C ƙ5j! v: +{2.l >? (7Q b9]5t]Z5b%, +[- q+\5p#u49['5X,:415[/#/` v0pƣ O#x> * S47V%L:4u#5-' &205`K 5 % Ê `02u 6,_ ,4- *c[ /0~ j 49.5&4o#5v'U! (,e 0p j$y<'3wA >,a5i) & *au5@~w<4:h3 ;7 "tv #3_ b6q '{T 7aa*& 2) u4)N m:! >&1y4:{ j5s +.M !<$ o3<^ :A6e*?45Pt 9l t1y 8!_S+`z '(,$ '@fW G+L 71_ (@ lg5!G &Z 448a!) ;"_  )/~4/&43,Ĕ (} r' e!} m#4-A ك  O +u5O3)qÜ )$ +,!^  8pA 9$f^ **F5N/u DW 3 4 x5 .PSó5}p$ :I:249J 7D4!( s%v6 %W„G9X ?%7q 8 d(8ŀ6 4| ! ;9&+;˹ 1|j D87%nh  : )/ $.u ^75U+c Q4-y\ v5-5G0 0S(+ w 8ob 1&FG Q8sb 5p>T )5 4viyr 1H. 0 +iB ||#f4& ,98J 2[Pq5#cŐ "u; ¨Û 1[ *# &(!n×W04L p}~~ )p$x8P ;T 19! 98  &D%&/ bO0;.[ 0p-\,+=e*#$rv4?4/4h4y444)_4\K4P4Fh4j47g4;~4Q44444K44y4}f4*4T4A4o4V}4>M44#4M4[4z4.T4H4{4u4(4V4:4S49n4w4d4WS4Yd4U43N4m44'x4RY42|4Zb41s464C[4=4aa48R4Dk4@4W4P4li4~w4rX4^4k5444B4N4O404vo4E4]c4`4<4-r4b4c4sp44l4%4^z4tU4Qt4+4,4L4$4e4jO4f4\4|4g4e]4`{4i4qL4u4x4544_q4nZ4Im4p44Jؾt4tؾ%ؾi444ؾiؾ!ؾ%4!4LuI@xHU #)Eq) bCA S!8_.*D|/J3^C Z (  *%Zb#ה,b;#5#(dO]/ RCN&+f'bZOB2@T "#rM3&&IN_g2r."6''"$&7d(@hj"1-L?[j1GMn$c z2Uk;-3Z10(&.'h p&+ C\=m) `""%i)- q  KwF&P p%P00a*~^q:+>oNÌ a-a/k/ , ^ &l,+")2)/ [5+_[" zG3R>2o /#(=(&l_h#pBn2D+.`+:)"*!.$0*4G(u75;YllVd#3i_ h5g5 h5g 5 h5g5'Kb0^T&*cS*aB10MN.~! "\^/P0)2l);*D69 OFNO9OOONF!OMXK?O:[UOXOY>=OVzOOODOAOOLOYyJ]OOOO6O6OO:=IOI9G8OOOJOJsOWMOO[OO?2OOOOATQEOO:DOKA(OO7OG>JwO\OOOT^TOOMxAUK^OOMG:DOILOXO[JO=O7(<[D O:TYOO\OVJ;AOO\OOO;LUOOFOOOOOOUG!OOOO<OPc\BHE>L[OSF9kO?<OOX6OO:OOHO6|QOOVhOOOOYOOOO;QOVOGOOOO>O7;X3E\YVOOOG?-CA"8OOOOOOOOOO%3 )0$ q5A0%$):#2 7b0d`H' 3bTW{''G" )30`9 fm3>7";Hv/bP&#ak*{1%S})>3}:ML9A" ǚ2 "!0|._@Si'ҳ(Z8*Q!!8f;O(-N(1|a41+0(T"u*3IvBs683Y2Lb/0,") ZS`a,AS3 $uц0 p%N,; W(&&J/}4#UEFDmI%o&* Hja#QR1[.()"l(*"4KY-;'"}\˴,@ \>gR/,R{'?L3.@5Z,$O@Y ¸+b,0JQa{"6$71.4*-D2λ~ 6\+"ҝmK2@FU eK 0.`(@l҈+lժ0L}|'b3 ~R1B.3BW7(&-0<Q'rŊl)2I9$!%M0Ba'gYY,32j<2}50</j&@3R)Hy2&3 =P-N/xzA6 yd%3*;/!C )p%/ Ӫ K&!$.`83d%39UY(1 146(*K+H!,Fi%чlSZO'd * +N&+1, ("d\Q% 'F&/2N(yU01k^xk/U$?w_/*"P< &q,e=*` !T+}r#.ø*#Y_p/x$+"@/gk/Ʀ'#,` BSoeZ2t/(R!TF,LH.E]NE& .+.'- N2C1QZ;,,1[C$!-d_"!Y0*;01/%5`"1`b3+[''>g"' IA1'H#-E71&3RPw$2T,[i" ,1Yd=1V.?3N+/dNB/84#w )K8"R&Ja M/pOCG*N`!m+]%=F%3W(/? !/0.(t3P`(ѐ-c._+f!M0":.Cl,1D$O.,V  ap) ( r@L!##>-,!C'33PHa%&L[-h+N3 |){YS.8Y+W\w%(fI:I,4d"dMa(U2C/@k+m(s?cI~!5LRS#Q\&Q( \| v )a!5)8 Uuf{x*NJD'R IF XL Í,4#X? '.!-b8c*z,$k=)1ZL '* )!W1k&Xkb[2", @w`,y27 m0!}%R 2e/AM2>K K*J'#o#]0`6p-Y?xM12KG b4 l( XK&\12ͭ&#2K?1> `-Yn% 0+Rd)G#$?mvp i0K90]E`..W B&Hʨ(%%H*i"/ c)-w29 K&lp  d2+1 T(N[P3b-F*G, y,rŝ.h(S&Wdyy1+|B$,1*",YZ+ [0-:<$OQV8, N>$7C1.a&i#%E|1aw#K,P~)F/F,0CI&r"d9|!?/C8!=qr_##1R\)1! $Ž!S./%'x$X![`a'ef0C.W (LV"3&1`7!;'%)\N2 U ,8 J *U,3I,W-'z)CO*%" &nXDaE+-^G'(%&&T И,L!88)5{4]-Ehq,$ 0^-C^O!EY /v:I'IhI/P*r%-Z[. 4 X1Rn!!0'ªrSI$" 7$';5IQ}5I9^85I*4Uڰ4F*5I5:5I  5I.5I>W/5IcP5I,q5Ij5I+5IYtW5Ikv5I4j4s4u:5I%5I.5I. @5I Q40G4 5Ib5I*BB4<5IE#5I (5I+V5IO\5I 5I/5I]5I ]45I.5I0ّ5I44^.5I=6Q4P|5ID484h"45Ic85I[J5IXJ4 5IK9w5INV!5I֡LJ5I+ر5IZ4(5I5IH<5IW5I 4WV5I845I5I(!4Pb5IU5I)O4 U4o5I]U95IU:4Dm=5I5I }4Z$IX4c4N5IJ<5Iη 4|5I?5I@4`B-4%U34G5Ie5IP5I;4^5I4Y{R4!4044BF5I4+Ó5IÕ4Vk4n5I,o42{G4*ڹ5I@k5ISwb4,/5I65I1mu4A44$5I5&4EF5I(5I'(5IMK5IK5IW)v5IC5I::4Q<5IeQ=4\b5I7͕4 #5I*5I+5I4D5IΈJ4\5I5I-l4̯5I ̴5I^4a4>5I "P5I#4T*5I-5I:ג5I:4+5I5I5Ia5Iu5I:5IT4Ji5Ik74I4 ZJ5IM6Ś5IOZ5I=5I8x=5IOA5I5Z5I14e84ڿ945I_H85ICE4_F4 Yv5I & 5IZ5IE5I"M5I"M5Ib[5IY#P5ISN5IST45I=Ϻ5IGV5I_5I4'06_4bC6d45I]4=m 5I$Q@5I-.-5I)AV5IY|5ILR5Ig5I3h4<'5IPk5IN 5I%!:o5IQL 5IS L"4;5I)L5I$M24\5I8+@u4"5IB΍5I%45I V5I> V5I^#t5IW5I:5IM5I4^.a5I͞5I5IyV5Iz/5IPK5IFV 5I6W`5I~45IP`4] 5IB5IڸC5I UT5I 5I4)d5IIg47;35IU5I  5I''45I&'ל5I 5IS345I5I`/ v5IHd4Be5I!h5IC|5IO4QU5I3*Y5IY5Ir4U74)J5IA5IN5I5ITIH5IA5Iz5I;T.5I9T35Id5I5IF 4HC4O5I{4 ;5Iy%4S$ɩ5I(.<64ΆA4"5Ịc4R5I#ce5I Y5IN4bF4S]4kS^5I<4M$5I$5I _5<5I>5=4(5I RP4 55I8:4315I^ 44}ڊ5II)@>5IbQ5I5I#߽5Iv4!_5IRv5IN##/4E;5IE5I/~WD5IQ5I[45I}g5IO]85I. 5I]5I,Q5I4ěbg5I&5I5*5I4Q"4CE43E5I'GJ5IV\(a4T94+w4`x5I P{5I'I 4]5I٤-4U5Iǡ"&4ң4C4d5IY485I@ ~45IC˫5IY4cO4bUY4Z5IUx֕4JIu4Ђ5I Z5I 65IO5I.x5Iʹ4.4P&4YV}45n4`#85IeH4=WJ5Im445I,5IBH4a45I+ 5IA4Z5IDr5Iū4'K4P85I[N45IL ,5I^4ZI5IZ5I/2 5IѠ5I`5I'5IUŴ5I=4'5I-8F5IJf5IYо4M$п5I4Fx4T5I365I5IY25I#5I5I?@5I@n5I04AI5IH5IS445Il5I5IXG4b)(5I:_5Il:5I5IB5IrbI4 !5IZQ5IW@c5Iu5ISk4#^5IÝ#`5I\5IF~Wg5I&(95IJ:5IX: 5IK4 x,5IP4UN4+'.5I&5I'V"5I$5I(34.5I? !5I(?ƿ4Z5I 5IMwh4D5I5I^ѿ4$5I[)@4Uo&5Ix5Ir74IU5I 4QP4'+5I<,5Id`v5I 1]5IU5IZi 4 5IkTb42Tf5I[ 5I;5I >Cj5IKY4 I5I,>Y5IZ5IP15I &M4ơ5I#_s5I:4&c5IG$5I)R$5IcF5I5{5I,4rB43C5Ib#4c4]5II/{5I45I&K5I<5I45IP5I2pް5I2q5IbU5I!5I_D5I |5I^w(@4)K45IǗ5IGP&5I\5I??4,a5I 24L24 5IF5I?"5IQ5I4"5IN1,H5Iƫ,5IЀ5I\5I&5I/NI]5I5IE &5I.5I4N5I£5IS4T5IAdw4A5I1o5I0@N4W6a5I%5I]/65I`Y5IQ<5Ic5I4v;5I5IU;5I=^5IB F5I I5I_k5I(ۡ5I 5I15I5I-Zd54 6 5I'4 }L5I4]5I5]5I' Y455I>"5IV5I?45I[45IF4W5I;F5I5IvԀ5I5IK5I^K5I%>5I/":4B 4?5II 4? 4cqb5I.45I5I"5I,߭4I35IXӺ5IJ4j5I394APr5I-~Pv5I@ ̾4b5I!5I>!4U|4b5I3q4E5IVc5I:5I5IIƋ4%5I޵J5I47,4@Q4c X4 z5IG+ 4!5I/P.5I N85IL!5I^5IsI(5IZT5IZX5I5I[@15IVF_5I_5I݃F5I,Q5I.'`5I;5I#T485I>k5IK64&HD5IW!Yy5I1H5I5I<5IT5I71_`4ՅA5IU5I.5I]S5I$5IBu5IG`5IU5IU5IXL5I`35IUr\5I*ڎ5I;45Id45IGc(5IWD4ͱ5I͵5I5I>A_5I:4ͥc5Izx5I`4bQ5I:5I] L/5Ia5I%IL4nB43/E5I`@5ICnΛ5I44W?4&%5I`5IAKL4X*35I0t5Iھ 44-5IJ4AP4E?5I9QQ4b$5I""5Iŗ5I(5I͔5IRo4$}4_5I*D845I05IO5I 5I65I>5I#!5IםU5IQ;4מZ4J5I. 85Iƺƚ5IN5IO4 4mܧ4,4R>5IΪ4<5IT4J4#5I75ID75I&l5IP4Y5I"^-5I<]N"5I9 5I ۳5Ih_5In_5I618464HI4MM5I_94MP5I)e4 5IN5IOA4ɵ54.0U5I;A5IXUSf5I 5I4F4e4$44)5I"5I l4/4BM5IM 4 4/5I@H5IU@I5I* 5I 45I6~5I65I=c35I#743W5I[4]5I2F5I4_4&5IZ#45IE45I+^]5I05IWv5IO_C5I I5I-d5I5I%?4&5ISe"b4[Vy5I5I0N[4T"H5I2<\d5IPǺ5I|-D5I>5IM5I4*25IlU5INU45IX44$I4`4685IF4{5Ia 4?,5It5I$ 5I΃5I[5I !Z472`5I Uc5Iٿ=5I!,H5I48 5I$4T5Ia+4++5I<5I[T5I 45IE(5I15I24n6{4:S4@t e4^5IYa5ITN/5Ioʠ5I\4DG/5IҰ"4(K5I)Y615IO644AJ4=; 5I^m5IDf^p5ILP5Ilb5I5I$5Im5I=F4V25I7)s5I K5I5I@@Qk5IWQ /5ID,ͽ5I(b5IFV4"5I&5"5I4eEp5I!v4/#F5I'#H5IV"E4 ›5ID5I K5I7~K4$Z(5I5Ie- 4N"4S{-5I9aj5I?45ICM4KZ5I'R4V5IM5I] 5I24Rx4S/!425IU45III5I_Zx5I؅5I/S 5Id`Y5Id`^5I5 5I 14ԅC\4T45I"5I³L5IV*4Bb4\<4^c_5Iz5Ih4-5IE5ICd5I4 n5I44Lb%c5I ]4$ -4<4ɂ5I޿5ILM5I b5IɊ5I5I&c4V5I5IGW5I5IAw4r+4M5Iխ4O 5I6* 4 q5I6.5IY5I`C@4ζ5Iab45IQ4J!5I)5I5I"]5IU 5I] 5IQ#ـ5I&?G5IM,5IM@04\5Iޗ5I#.4ޚ5I?4*b@5IP@3T5IBC4[k3X4Ҿ5I{Ey4Vk85Ia40V 5I0[ 5IXT5IFأ5I?25Iy-5Iݤ4(ar5I5IHaau5IW!o5I֣C5IډUn5II5IZKD5I|U5I 5I5IɈ5Ik5IKƸ5I+M5I,24ˀ5I5I7,4kO5I;5Ime!4\5IC5I6(5IR*U14v4>ѹ5I_H5I O4gv4qF5IE$N@5I_5Id*E5Iآ04s5Ivdc45IeD5I%4R45I&Y4 5I;5I;5I5I94;<[4'5I:p_5Iɳ5I~5Iɹ5IF@05I4c05I+?|5ID$I5I|5e4&5IԴ5INC5I4ɫ]5I5Iּ85IM;5I'4R 4 b5I`5I4*4Wl5Ic4\5I], h45IR̈́5I ͊5IVQ5I?S4V5IeE5I(5IE45IwK5I,\5I\E 5Ia "5I?\̥5ICM̧4ԉ4+P4DK5IDM5I\U4>"F5I4'S3`4.J4 85IwI5I5I'5I; 42 A5I@x5ID44ԯ[5I 7}5I5I=+5I5IaQ4G24d5Ie15IYf5Iu5I%Y5IN4O5I(5Ix5I2M4+_5I/S40<5ICA5I+ 5I 5IV_05IB+5I;.5IcN4O!T5IUXn5IޛX5ICG5IP*4 q5I/y4@Gc4@c5I:R4? 5I3#5IP54qXT5I&P5I;Ñ5I }] 5IB٘5I3)5IMA:5Is4X5IL5I#bW5IE R5IR5IBr4\F5IK4 5I%-5I>5I A5I4\a5I5Dc5I^5Ia?5I0Ҏ5I-5IփV5IֆV5II'p4#\4l 5Iq5Iڗc5I[̰5I:TUN5Ic]4b!5IgDZ5I=[5I.5IlY5IƄ4[6ב5I5I5IŒ.5IT5I6%5IH|5I]Y5I75I75IJrZI4' J5I65I45E>48;A5ISO4$ 5I44GU4K 4M5I"L5IY]n5I$5I5I 5I.6Q4"5I@,5I<85IH=5IJn5IqE5IEӶ5Ib#5I5IM95IH5I&H-5I3.42Q4޸4 ޹5I8?4RW{4< 5Ic5IЈ5I45I#V5IS5I'5I=[5I[5I&n5I5IKka5Iܟn4-E5I65I#5IV44<"I4'I4725IJT5IPJX5I>C5I~5I|5I<4!K5IP!N5I5IE2G5I7SH4 5I 75I4__4E, 45IXB@4b6m5I΄4w5It5IP4I5I5IK5I: R5I: S4ҍ+$5IHN5I05I5I-G4V;475I\64Gk5Ia^X5ID X5I2X5I$.)5I!5IR?5IY^A5IV+;5I-a5I 5I95I_ 5IX4<A5I?ch4+5IQl45IW5I F5IAX5IY45\5I<5IZ-4:5ILs5I 4]z5I5IN5I5I[5I@=5I4jb5I9b5IUB5I`F5I-EL5I V4i5I?55IC(5IX94 K5Iؐ\4[ 5IYEM4MO4OP5I3 A4.40a5IQ!5IHX5I5IVm4ɚVr4 4 W[C5IHs95IT4wJ5I[5I1QO5I65I)I4$?5I!5IEU4BI54Ū5I.5I4F5I'2_4ԕ,]5IOQ5I`L4p4-1944Gd4Z 5I"C<5Ij5I-T5IA5Ii5Iք4Nm5IX4;04%45I/X5INX5I=5I:ă4Cչ4M 49^45I65I5/5I%F@5I2@5I.R4S4G5Iu45I3$45ID/"4XV5I?5I x5I4C5IX55IH 5IN h5I;241/@5I &5IU%4lb5I΢5I"4U4<W4Q4u45IF5IH 5IRK\5IZ<5I+:55Iϗ4{45?15I#5I5I 4J5IK4 (5I"(5IdE5IK5IQ+5IH݌5I;rݐ5IՏ2_45IXC5I (!4UG75Ix5Iy 5I{46T495I'C45I25I74 7 4Ǯ5IY8<5Id-:5IN,40W 5I5I*5IBCw5I654HR5Iô5I<$Y5I5I$ (5IN*5I$:5Il4^450R5IR450d4A5IA5I:d 5I|5T4X35I$5IԞ5I5I3R5I;M5IQxZ5Ij@5IA4"c?5I)t46E5I#5I4*5If5IU`5IC4h5Ij4 $5ILE4]I5IWȨ5I0A5I=@ 5I"5I5IoW4ӓ5I$P94m5If s4'PL40.PP5Ỉ5I-42!5I 25I2425ID4Q4>3P4ŇD5I'V25Iڧ]5I8EOn5I,,4ف-5IY5I_4215I)^C[5I/C5Is5Ii7e5I3H5I\4,5I"6֪4G5I*Z5I]5I^Ѕ5Ie5I"#~5I%5IB4#5I4wĞ4X5I_7*4SY5I[?5IFn5I^4d]c41~05IG85IY5I5I]q5Im4,)5I,)5I5I5I5I^~5I!|A85I´5I5IVp5I0#m4[w5IXA5I}5I05I(Yi5I,i)5INL5I ;5I7jbD5I]bF5I43d/5I5IR5IKDc4^35I4=5Ex5IϽV5I.5I|5IoK5I95I3=4[5I_35Iat"s5IB5IY\4)915IbJ4 45IZf5I  x4 %>4IK4[45IU5IZb&5IY5IZ44$`n4K4 5If%5Idd5I5ID$5I{5I*Y5IV5IQO4+5IV43 741+] 3(2d2#)2]_R;Fx2s2X&pM!`1l+2Ri2R3R;Fe)2R((K2XB2iPRX222NRXR;2;6 h2uR3)2)2%R;FRiRimR23 R=\2eH2/#5 NS07+$# hu[ 3+O2R!/C$2S2B/$R3,',242f&AR$# h/C1*WC/CB92X h22" 1/C52RR;FR 1(^p1/C 5;$J2#5:E2 s wR3.2}>%(2 # h51<R!92A(/C2X[uR2X'R;R!R;F22q"+$/C] 5I2b/,32X )2/01hoR32+$A^(2X0t2L,R 22e24gRhe~#5(Gb2R}B+$/C0R}y235R}A!RclR;F]/&~*Y#522 R;FR/0/,R;FD2+$5gR Rcl2 1 4/,r|<R;F'jRXC 2229I2MnvR;F12X2L(1(/RHZ2X1n/,R3Rcl5R3!_k~5/,z)22+O72 hV:E hRX- hR R31522|5xR3d/,Oc2R R;FR3#52gR;F2 h}2MyJ5+O22@)2R 2 aoR;F'(/,+OKqR;F2O{6#5cR;F2:2zaR$"fs2 Ri5+O=1+$8 hRcl231/,2rR)2R3(R3(124U 5I5R2X>Ria?2~)22-R31P QRf2l(R;F/)Y/) 1RQ# hX2d}/)N2ht/&~=/jR;F22(o+ORR;FR3V%!/C5+OR3292m22XR;w@/(TR3\bR;F1R3RX2552()2+sr2/) )L`# h9D(R;Fv2c/22q//GR3.R}+$$bRX2 dI/,X /COO+$2X hR3/&~T4{!FR8~/C5# h,<mA|#p Zoj2*'o'3m.)!%^s6@Ĕega]-OHn`Mqc(v܈(tSVđغWĒؼd 7,IہEK;ٿW;߿y=h$yސ<Œ}a|SJy "_sF=eR2Ւ[[S@LBC1#rf|gM;|[N'+R1/ix,U41lz2o|maqf riDzսԀAc]"$U/=H>\A~iNڛw$MжR_4ݻ'O=4iZ\4/ ]aƸd' ,çOI8Qj͖vYΊuhWrAROz _ev |% .EBaHIuzzzz֐63;/{ U ؕ=KdqOgIɞôCΒ80dsZ5j<q@!B#F5Bw6548ҹpfY<Gƍ)=&@Ceل[,tֲղTյպ $Gu{% T|{>pI$uP/dz e{<IWBom7-,=[Lؚؔ؜g^z-YԈ;$5&$ߚlߞpOQ!dדǝd 45C$Xy6[ܧx¸YɸjՌgt6`[ ʤ;i >oIJI˙dW_Td84'Y^\[`XԶՍ[`}L8yžiݑMYݒNn @:k<pK9xvѹ9Ѻ' nŏH]|itNb!>Ofd {alD\ 6 g?SޔhևEe7!Mڝ#[@)P_W"A* 47 Jݏfh hijm!vXͩk 3ć=xҗ~@vڕv`x"cz# jpor{1;ѠӤ*)Ò-ÔsY# U̙t=(?- * 0 ,76*0NԒVLd^٬ՎՔf.u0Pi+ ~ z}84̱(s4]7S&&H@o$*U1n%[G'zN: z[}_ɎMɏCҴ(/H3aeɋRTU}45O=:c xRNاX • JNb͑`^2Cۼ80.quR|9`kӊ;fI(hK'G[t>NׅX@n [ 4O#7\R3 3CV5DVȭXȯc:F.<> п/,>?ԺU $G ț{vG ]P %+#X!Z#2(7++'jU lZp] (u1^<T8po˩w:f'6ً֟u5+F÷G9a#o}Qy/aĩ}   Ǹ45uLQ:aty&&SVVZ~~К:cU9ŚӋ& na7xF+ S%)Yf0 `ɩEe!+FgMٌ 46jΞl}9?&R]V|wV|XbG3=}A )Sx$Zi'\)_vw+PJAF!R}<=.> k ZʛËxn&ao'o !ͱɲ553Sd,0|Me1/1("bXbr+(I="k#'%1zuLkMlv/." n˄&E/ # |E;8A c_s>my+‚g Q V%؞0`0{ݚHGq'44lsʲG+iyVD9G?DAJNS)x}ӫX]ک tEHC ԍpUAhIL*,_Fjd]GCFAs٩44Mޡ}Qm eM^ЂT;=?#ӷp`78%]<ZK@TW{DD=cT8]55mPx)(7^E*/~2ܯ0[NS 7 ')O~u̦JkwӐc%o!1% Ƃ'ZPi8[N{j֧;l֨&fx5xÉ~}Xq53;,^̕<ƩQ KRMS`-=σ#I2%#fAhBc?\pDUhEV] DOqEPqJˬhmC0 L(_I:SMFG5@Щb7ے~Nܤ\IJ,R/aTݓŅިh-lŞM;e3#$n5XT.Tz(43,<L;;߽| QSU%-2чyfue7.5S5C0Y~hXE9&[/6XYFa4) \ڸúG'\+Ê!+K͠D^ͯ%z)K'N,n ˃]OLJb c0)UUfxt{ST'ʒӹs v/*1՟sX;B$E(H.Πϊ!g}sYx^2'  2c:FIPܺmqӴ߅Ӷ߉!x1{Ic*` 8 9ŵ,V-Q^|qϳ/ {_zf|ig E92i_ԖQ# מرۄRۅƨނQ-ܭ8iܲ<ˉUkp)&aO %ƒyhTRY߹\*+DFeY[~\r+  ,Ph   _9xCǯ?DzݦV MtgH}5Hh3Llt ?Z_jcmB .gXkR׭J!v=;bڊڋڒ{mIsϹ5}]g#;  QThF%<'(`z,Q#J!45fFď So0 2A”ʵbڜIWny}'ͺǿh r bXO <ٛ0 l>Yeu@ 9M)7q o;=Qn}ï9!c0dKE^LF_z`:dC1̓*-v/68;t<v5*i]Goq*Qpr+SbMy|c` f ʾ.ҖFR/2inq )sJ K{xOq*ޱr޴޵$T Հz>ņŋS-c+Э*Z~ ,]ȞR.(Mw,6Ӕ''LNl0ʜ EŌ ō ^[4ʂp >^>pQ|0 (΋i;p %$ϋъ܎{ы܏i}y~'a^45KĐݿZ/sخ42cĠf B0pDǵj\ P۲۸۹4:ʟ2 3ͥe3ɖs`SY֫DcL.R$\>3n9dnj=`Q)etۃwp5:(PB,a~.B!^7 mљO'xN|!=&%wR=R RAWCOXӽOӾPJkOl؄̥ ؋̫ad݆z+,߸7sf2v  $r2hq}ck˷ƈY.\v7 #-bS5 L’?vPByԝjDI8ٚŹפ8;W#'ݪ؏F4|ȿų+ 9::;f MԢ1D-3E N%f #2`4f ?} G=M޹P޻i "d{aEڎXeX]ߓEsv Tzݩݮmݯ 8ȣDAiNB.abN(!5~5FA$(AFˇ5$%oԮkpԯ^<!'_@y"gFǢQGǤc6=I ѿx(*-njv}Դ)e:@o`~@UWM9cx32YIOAĠ_ta5C5sTKq@ MQOUp;= Qb:™68pa*>kߧMŔme4 Ԑ)̛͔j'֭l*ֱOހNQ\%)/G(HƎ!KƐr%l@ +BKp=4""^ydP @Ӊ"]RGM4FRVa8K{xxҥB(g¹d)S (Yh S܍GRiѪmC>h745Q7ĥϟ {7f=U)XW.OIm/lk~93ukMu vkvs ӕ'g*\' { 1 :0 a_<`={œi VpXg̸1`E]Hqs(O~N^4et:lHqAuz44S _׽ n  qFlw>*)j њ`yZaz\aE}G^Oݎeӟ BT60lJU?Ĉ nJ:7skQ H֍QkdۻΓǗ0xJ&"ͪllL]{+Lj dY)_#bJk4Af&[m+` * K"nEMj)tu4 Hٮ3@jmה@@(ܶT ܦNHZR0Gɴܥd1H,Pd&<c}Qhѣ`z5ZF 'n%Php̞WN@g/ 3 qP S' 8Q:SFʪХծYl$JmτGψI:5C5&s| "xo:_ޚwk ?([&~۾?'Ǧe[ifD>ҲSmY8rLO @ M/NO1Koξ˝M`hn\"g79Ȭ9;Ȱ7zQ}UԷMN%o7]یt5i4gl:%Paޟϛ1Σ.‡נ/‹עr rؿr9bKb/:ϙXȂ[1?z3Bw5CK.xa)$s  D'F-lP.n $TԎH>1'557~yQ1K oq4֋+ٺh~Ƞȡ-qLu,͵ݙ3]3e_4#Q=T@D*"//ە@GОtN,; o rR#& կ{UceĖh22Ěj7skhtqmڥq/ڦszګwG$j߭Ӭ&jz fbmÙCÛBw'OUr1gIԜ!g֖Ij yz? +e&Օ}QvJx36;kEɵw2G= " ŃG, PۑIgo54@A>UNrQtJZ)/I3/=8[~S-w¢4 l[TSu?1CmH8|Ƅ Ī2܆QKt܉UP}EQMRNTL'aG͒->#׋qq2кZQ[l6z/UV!F#x:ŝ@55CyTbk °[u dzi7 IC"N#5^5!-6 6 TuJ~5x˧L_Wѓר"e-PڂSiiw8YT|oPрp|Ƙ0mqn+r| -|ZHOځP>1?~ֹ`g;s:İ %* 8)TU<_sПТУФ͹ݛͻݜoš\9rŤ^| -S<Tg8e!_ƛ.,-p&k>ʬQR';zA/g)G,4j}g;ɱfɶh `ّ$ܩ/ <Ok sīZ9@܊D}+rR}!K>"XL?jãJv;ȁg\m ۩xL3wZ]D?E@׵'؝WĤ9Ѹ\ = 7kɻP5ώ|"iCf՚Ңlmxoy:R;SyD=yzaTkyL P)/S45QiccRz]xԬ-֊6505vz٫pޝ)b,Їު%ˢIq@5I4r)"54ZH8\Єٽ d~%} Ƈl#o& aflǃ+>(!k|"KfCڙ;ouEص"|ǹ ǻYZ\̍ejZӵBb0Ed1@E vy!Z}pGm W\Χ3 3kq*oh{כE~4CB  J<։wؠSEp,s/z~E y[o_z 457J4%+%JX Зw\z`4 }-besXw rp   &;hO!=iQw|  6j0)K ¤;}¥=~8w\  =گUڲVT}?uHbbU r5I4E8u|_5I5ZƦO%=&K7081|y֚яS U \á3Ʈ& ) P9B^=^t̟͏f"k ]q- 0Ktl2Lv!+'3;X@)g[=;lTofMS*"7ƆkZ=Tyo-<&(6 jBKU g_pe FϮ DjFM*@U2])ĴHޫެx44ޮ37Bmʕ?#BGt]CaE- ,֒%yVbGkn7St^o΂X|׃3ׇbqUu89$wb: uy@ڴ@M* E44}'45!ݸe"H*ͳ4`ty@*45U˓\yбOдU8)t-15F37mwTxIY1>)xXfauןϑ!סϓЅQv{i,q.- Gjz{-45U(mPw\g[a-.`| 7  8  ;J؟R0NZn%`7@ ݠoWHʑCkNFO;8ZucBC` cIJCN|DCOko2HB3C4̢Ạ̄0^YIW 0 )> OoY+)[549S4#˨ om"-+ &BǾD5Q4ؑ9@D;xlYѱkۖz,{"\KgIB . /u“f3K7mڟ˽Yظ  ߤYA̓pFG8wi0mcW9v<ζ=lڔ=nhE/g@ bڗ!9Ͻ=<]? Lk7cKW?J55' yеV֌HYÎ"5:5i ?.'?/D?4543F4Hika5\5!k1 H{|A`Yb5I4y 1Lռvͽu,ģyl|B_5@4K9\?BT&WZ*íQ6MӁ#_!ܪP66NNPSC>~$_Cv'|( e3q7_ _ ĭU$d(7,èn?@͕Il9rs tBMߕM{p:<@*-Wst`2۬hbҝ;\ƕ Z pyĶ-ܑv aœT5I4ΐǖO(N0' 3 z!#c)/^+1m|450FKcw55mB&sz]%+ J +e32(#~Ţ]Vŧa#6%ZΕwג2g+f/ _A6,9.Zp*-6 V 9ز3 hMńʼn}ғaV6yJ"ĢLFA`j> &bA2{*"q  `:z+|`݄bf&g((֮̽PO\1a"~)S8<Zx3ͧh9ڣДVL,L7bu>ǥǒaWw#Wk6p:b jӡoћ ў h &֎ O!'io٨ ԋZ.Uɪ4]]%7q OwoȌ6B f0ܟ2ܠ5ܢh:U+̭.n0CϚ 9=ƌ,)ϕj055t Ϙn5١٥ XĉxM v% J́* ,IOŽ3yީ5I55 @A? ,S /T )۷1UM1J˺E q7N˼a]<f 1޽޿&֤w%<Ii5 5FY#o׾_fI bKGsC2FRiHVm[Ho ڢHfw0@&Pf-}c%ϯԸ?o?!;?  !D#]'G9"A5O >!Oˤ˦rԾ  _j`РլEШձ$hN%D" "uGVҽ ʧ1diտ[1܁ L} U6C#_rf52WO ~1YPba/S_9" E%e;ߡdp9sWlZK֡tI5 FŒ#ʃMʅO`i_Yҭγۙ&CyS^ _).C)7[  cvAe/.iKm:xWx5=`|ܔH:,ɧH#%D ZWϪ<o—-|l]y2U:u"w$t(j+j@hCj6 .u~<}~ӭYDI'5I4K?a44emlQůVq1r4vEr(T˾ `Y9vw<imoutJ ׿ia%cG3ym4)44PʆQ%ڡ+ѝ^mY2W]8 `X% ] yDcr~9}<FZ@K`~HId~;tw1=uxDE2ăr$#N{$OGӮ%ӯRSPSA~}D>suVf&FZvQ55K G?  b*tFɇ[B:ܽx[ha:kdK54)C $dKB[n?  SlR^q͋$y$t͍ c^f\VQb[ud\ve54' *H?OS$%,C6̑nնN45/X>nާƧ^wR)*4r]ߥ5I4;Қ'%km&S*<Sqeu8^:cg<e=f2j$3՘4&/N &>M5c`Orه?Ўȱ"q  =m< ۏHc* $(: V'Eש./0oխŗD@ '( 4Z&8}\W'~Yɬh(^E/B-Bw ]0{+V/x֔"(W×fPڪL;9"tߌeuߍ{ݣ * ,>jÀĎi+ %I&J*#LС9Dǟ;Eǡ:5 \Z ܂5܃vCɘvâɚwä]̵(4 p3b _k4G<χ$ω*|{nة6]{u}|MJ|~ gDk g %aٲ(f>lB d߂oø Ykivljwÿ"۱z(#g+S( d͞]͢bƞơ  7K =dcEe@JhM]ɔeADQF+{?A;BCr)` p X!Y"^Lӥ̔Ө̚6vTف3 dľjo zcح !?sQ,ַcWCfe_Ą4zKiӳ!K¾\yQ}*5t5VѦ؁p/ f*6`R9ʠȢ10}l5I5BR˪5!4S˫ r˭|)O "$nX?+ ~{ ;=u0ٖڄ 4tbaԙфpzn٘چ-/gޅZJXCKQ;LˑYQPkCx 5  pc-ĵXũeIK8A҉"iWIҌ(n5څ.Dmɽփnɾք I^cKce83j{ʫ,ʯ-rʰ.ʱ0Qʳ2!tQ  _Fٔ3!Ь:kA!#YzοG^\P54}HWsO0ߩu:l_6Ý2jFA* 54a,g bSG 'UJ% #hr]n2բP?-A0-/ , >KҦ)"X~5"zlW2$rϴsϵ0϶24C5 H#`/W?IW"QE| <6jgߊm< :Mlj !Eh %L;w5;437*|KWuRAr?"G:ngk YtڳP׆vhk*^_qDnJ5 5F_LXJcN]sF܄P Jw%44мėę JتĜĝ(9j\Z֙J҄< cR} 3mc z;_2"&J 1TPN5=5m]mPZ%#b^̳ǂUqFAW kıi ܐ#2ܻܾh ִ̿~7jjNTlkQo,poS16*3:=ֈc='(\C),Y2Z5EI gGku DCD nƶɝlw`/T-|.i֪!no{p~S1W- ߲ͣVVLlʽ-_D44L&ZO'{x }+5؂\ r!J#- ;M$+Ww`ˆQٕrٙu q50!txGe׎tY5tŰ_ŲܡpϱDܰGVΥ/؅Ψ4؉gȼȽ7J0b}LaP~ݤ\ #jA.˲Y,45I4{2G S5^ul7Ն8=ob?<żZ~݊e/VBNȝw=<S8|'bchԨi86IHUW" ׈Dߝ׌Ԟ S)454JڹƲھȆ{d6UVS=Q!gKC.H2, C(Cm) mZ nh k{h=C.:!=V3~̀<ـMҎ{Ґ|թj"G d6ʞl<6}QQR&\{׳O!Q)d=CNH 4 Rd xY\6O :ab<q1$ |ZL_jZ822=54D  vطOҜZjBҟ&XͫS ɥ3>d4B6Ϧ:Ϭ>8¶Rnc~kNpD{&0M!c"8c3cd c+`X:c"'c  c\7c%m,Ac)REc&aVc%c#+cĮc""Sc' ic vc+Djc6c(ec%cA(c$<c.3c&a(,#)=:2 }' /^<,X^!$* ;^E91p0  m4`D,;)j7B.C a&+.[/}$u1Rl(T&*"&W./F-j;:% E"K((AsJ vܬ&-CD(&02K )sqSr2p]O(h!FHE#%a&l,k+7?y'\7 @`TS3d+b%RGÚ3v$+9E#; -SF%C !27+#Y).1"#.'2N'N$2IUTh"!{1M'#FM1>2j>%RѱV@"0`ϳ-b""I-Y&$kz&x֮+BEJ *(2 };`,v@),#[4b(/.=*T$ ]&)X -+%2/DIi3Bhicieiehgjbk.cWk/ah#fj0hShQhfk]gkbkapliebiydififihjdkdkeYichdle)iOeQhdl ciwhl6h9lcidl[clhIhAahdiFdMiGgjh5lbNjf@hf lgkgjejbkIdhckh0igg$ihghexjzdZl*elajck;ehe9hgjqe@k hhfidh4d`ihRkhh:h^bhbpjdNjf[h'f+k5ghfi*e ib%jdbMi{f jdelhibvlckVbbkci&gl`ajekgChRgkgiPg1kalak&ewie"lcRlhlbk$djglbiBdid|lfEjGhyjdhfkyhhf:lbshne{l'bih#ih k@fjchfghhjckgig7ifk hke0lglEflhjdhcj8e,lelfi~hig|jdibjbicxj(dlh(dlbbukbnlffcibwlelfjck'ci|ghchbhglgiNclhUhehbjf)l}ghic`kg lhjflh3hh"jIgkcPidldJjgkighbkjfJlqgjdhdhbZich h$lHg^jhi0elghgRkaig)he'ihh+f?lhj4c)lfhhhcAkdlh8hal egggeuhcld7jfld/imghclejflg~kdiDgFickgcdkcl&ikfhajc-kCc.kDdlRejdjhkel bkbkdhl#gl$hCjhOjdh/fhhrkdc:loc'je*hZf'ifkeiclcMjhpj/b`kZeljciWeiXgk)bl?cig[k0g0j,fbjeheka|hUejcgbgghcidkTdkUhiKhl_blfl1chdje=kHhifhgkbSiCgwidDlcJgcthcidhodhaiclb3jglvajakbiehcjxe:ighlb(igOhdkhkmhluavkb)kdlc"lbk8hlgvhblpfjbd_lgukhDhbi[d}ifSjlc ihaibjh*hf<ibh"d:kbkhhOdBkflhgelbAh~ehtg;l alf0jf>l4a{ivghg6lZcph@hjNgjkeUl~aihkckgl.bkf=lShlTcldh;hh<hi?bibihkve#kbkgylzfikdRhbFhehblMbGjbHjc>j>dlghh?lfi]bhbchblcicj bhdkajhkadIidkeiic<igkfh,b|lehj5cIlcjfhglgaihldhg2lh6lh7laj+hGjd>id?ii ib9jb\lggcjgl>ejbhCfBhDc jVciajaieDiEchh)hmfkcLk>c iflNdjhi6fjhhblydi cljdgieIkb4i5hh[gjmf6laieibjek6alIghdkgilekfCjeZjahekehcj_al:hibkeififlh|hdi#grlehFf;jfghuhqhhxbhdTirhNlgjehdCkfilfkdhb2idjaleieSjEcjufkgkfijdh5hk?auj;dlgj<akgbhdhbl!dlbkbh2ah\hTkakdhbelcyhfkf kXhti+dj1ghSelglahzehelclcicicicukhjh.hf%lawj ehckhleOjckMhlfkxfk}blfj}hVhhXhfjjfLifqhbkidheidh8bh9blPci=dlsgltgi_elwckchbldokekclJhi.eibkcbRlmgj=chXg9iYhlahfhhjhfjekYfiblbjbhidhWfYkh4kc$kg,ibilcfhTflb]jhHib jghgi a}kSgfhHgk{bipbhuc|hveolWe8j!fjcUhc?kghc1lcHkgkfidkbjCaxjaidhh2j glLcjdbh3c*hgjnfh clckci/gJjb+ieGkg lajelBgj)ckgMjc,lagfki hdkOfke_i$alehGbjh[iMbib-labibribhgggjd"ishiti ifl9gjMbTiJbiak|hBkeiqgigplahglXe`lg"lckqdhge.hckghhl(bi\gh akd{lfjob8keakf.je/jd~iblelciSciTh`lciVglckdhchgkek,h+jXgSic4idj%bjf-iHcjOdhdgehpfj~ahsfplg!ibiekd8iibYkghjel,bk<ejah:ghej?gknah`hkeTkgYjhjfiZhighfhhlbldlCbib jhh)hlhblflelhjfgkf"hekbLk2hiei(giaj-biej^h,jekhlejejcNi!gVi"ahbjTgdlhjcQhwg'hfjhkJdiIf~hfnk dlgkfxi;ckf8i@gif&kshhelgjfhekhgihiahezi e|i ii cleh-f4h.bk9b&khiclgejak^ehak_ghgUlhhekhhchPik[bk\fkfldjdygfRhf|lcFhei%blhlh kejd1kfl5alc!if idjbkKgjhiLg]jh1hlhhejakakfwlUdkreXkatgfjKhifhl%ajg3iflfUlhh7hdkBc]i4dlOdkkdkldi<blrffihjbi^cgdldifajf#hfj ahc}i-f^jelkbqllcrkfd4jdhgi)ilcj6fQjak`cXhe>hhhhh$hh%d#kakihIfjehJfjfjYbjdkfhfhcl8cjhhfsk(fj#bQkbjQhjWdl0d0lgjc5jejeplbiAhkbXichBb'kbhdYj|g:hakchemkFfi8ciech=ckpdjBetiahhehjwekhlcjfk:clhjc9kehie jrhieFihhh*fNjhWj2diRblihkajjb<lb/ieickficjbkgshcicj`clhhajakariahg>jUe iahri id-ielcKlb0h?bkbkd if}lhjdkwgkhl{dl|hmkbl+hhc#kdiaib?jFb@jHehcdktbmiegkckahahgjhkici9elahcibb=iccifh h&hbigTkalGclaqhVhjehh]fih<lhj3hldnldjahMhdAhf,hfPlfgjhk+dh bBhb5jcjdlg5ixbl;giel<aheigkakNal]ek~cDk"hnkhsjgBjLhgekdhhc lh@ihlQgjf3i>gjAf`hdujse<gdwjtbWibidPiejchajhk3ck4ahglAeidhfie~icbh{cjdahekdh&g(hKdldhjZfl bhyhcheid[lfel\ghfjbjcl7bDjgj"ajevjejgkuaiegalcinelig`kgh>cskh;hegc8j gldhhh_dphgi fVlck7bKhdlgiUglncldhYehgDigjkgEk-b.jb,h!bj*fjahNilgh-jdh|bh}gPl=hFi}fjgQhcOk*cj$g&kPcel^erj'fhLfj[flfkhl2ePiufhf_jbjh jRh jSdgh/kbl-bykEb>ieskelYbVhgkbJlxbjJcgb jajch6ckAclg.i:hj@fFihk ghaah g+ifihi,b#kcj9ejghjhflelakh\k1dxjbi'h%kf]iQbj]hldkjcfkb}izbkbOjf{kb!l aicwgcj\flak%ckglckcnhgiayj&c_jeLkQeMkRakzhkeiek!dOk#fl3cjfkGeVibkhgcjjagehkh(id j{hQk=fvjc6idkd hdgZjvbjfOh0chgkb;i2ei3d jehjpg8k flfrkcig\lDalghe[ldilfkbd'keKicjfjicChdieWieJl@hkWbkfldj.hhMfhjbhhibjdjh=kdjdkdkLbthEd$gcgalekaiaidSjPeickel)fyiohl/glVdjDhjeidckfl"hkjyehhkdkdjhkbjdjedi1dj:bi7cjejbzkoe7ick fTkai`dmhfkbIldHlFbj alKfj7elhh1hjfjgkakeh/eM33#GF/K;335/Kj33IY/^NZ33</$H33^qU/733Q1/X33Y/Q33/Ra33`/A33XB/)Xl33Y8/*[33=|j/P330z/])331/Ym331j/xRg33/D:33B/933j/7>33B/FF#33NNd/Vb33 9/Jy33/+Z@33'c/U 33O3/X433T/Y33 j/O\33M$5/[33^u&/7{33x'm/Y&33O/tT33z*R/:33?\/>c33A/U;330^/[S33AE/Z33o</8r33p/:i33~a,/X33oU0/@ 33`0/L&33/GF33[/D33+P/VQ;33M|R+/|F33F/?/33p5/UY33/w8Y33F/Z33SLu/Tu33(&/I133 D/AT33/'G33/GU33/F33vo/D33/P33^(/yVj33I/=33J7/UT336i/P333/,Z<33yr/G33? /9H33 h/B33@/:FE33"\/z@'33N/RQ33 `/ X{33>1/;33"m/!Y33(/a\`33!-/YM`33</ M33 dU/I33U/`N33/Z33'#/>33s2/AS33C2/R233Vsi/\33%/59!33>r/6AU33?l/[X33/V)33AO/aI33R/[33f&/L[33/>g33Rj/t9e33s/-:-33}\/G33</@33*/M{33=+/V33$k9/K33x/N33MGb/fKO33w B}/U33h/_E33=/X33//K33 J/QJ33 K/E33 4/ML33RQ/9L33/:E33/Gm33/O633T&/?R33zq)/ 7335/!TZ33/@Y33 J/+P 33# /Pv33h /QZ33M/Ai33*f6/K33@/=F33\/6J33) /sEv33 /*;33P/tE33bQS/CA33ud/jQ33f~/Q33TF/E>33[~k/K33/ V33Y^/c33t/\33[d/yS33?+/8w33/9U33Kz/833/.[33<F~/T;33RJ/OD33ef/D33/=|33u/X33G/E33]/G33ud/\33z:2/\"33Cv{/S{33>>/NS33Q/RZ33 U/O33 ;/P33qw/\?*33.$/aAu33D|/?33E/AP33}K 6/C33I/<(33.(/M<33/S33:]/S33h /I331(/Al33`/)\33aX/`Gk33G/.833 /VG33@z/V933yV/mM333(/<33i2/@33/N33X_/ @33r:/!Be33s;)/dA33Q/<W33/I33w+Q/8y33A/C33lKr/:33mL/BJ33ne^/BJ<33-|/M33BI/i7O33/S=33//(N33K//'L33Z=D/\v33^:/CAc33xR/nW33?/hR33<d/'Yn33/ \L33|/T33/Y33s/I>33/733j/933#_#/X133$a/933/C33/[33$/I933[v/633I;/[332/[ 33^/!Q33ig/uJ33tCg/OZ33r/N>W33J{/A/33 Q/-T338f/.C339gt/l?33N/mGA33{/733g/E 33rp/?z33|V/R|33Z`/I33#/&Tx33o/833%c./I 33Q-j/]N33/C33r/?y33Vv/6\33c//@L336@/UAB337/>x33eS/P330m}/AA33E^/)W$33&/>33/+OJ33h/>33/z/\633/TM>331p/>33tt/933b/@W 33r0/W33C:/@33D;/P335X/H33C>'/R/AY33Gpm/=33O84/J'339[F#/@R33W/@KK33&@/<337z/'A333`/E33Z/)U338/8339/P33|/j?33g/PRt33?#/K[ 33u/o6Q33 / Qq33 %/(/_<33#)A9/V33/2P#33/I33/Z331/>;}33/=,33t/Qh33g/[33#/IW 33/K33i-Z/G33N/WM33/_T33_/UP33<o:/>33h/Q33#Hc/=33!R/\O33{/S33z]r/O"33%8/0HY33l/L833Fzm/=:33O/>33T6 /BA33 b./7\33;s/Y33'n/^N33K,/NC33&/]L33x+/(G?33/G33j/]F33q/.>:33n/Lw33H</\Ue33q/C33r7/G 33=/;X33!/$633 L/F33Dx/oN33/@33n/6{33/^X33E/Q33<y/7]:339kE/633/46I33m#!/Lh33P]E/Cm33f/Ns33D/)I33xBX/[33'+M/LY33=a/XIA33/Y733/\x33lS/_:$336t/i=33MMl/I33p/j7u33m/J33&%/^V33(w/ZU33'+>/>;B33/FX33[/C33[E/CZ33`</\T33/833\p/[G33/%K339#/UC33/?E33-9/ =e33[/bMn33 ~v/L=33} n/S;33"/C332(/T33 'z1/A\-335/?^33Y /;ZG331ML/833U/G33?3/O334O/+833/,J33W/8339/Y33+/ H33 b/XR33Qe/AB33Gr/F33./:E33K/wN33i/<33b$"/\33/H:33 /Q^333/Yk337|jZ/33./vC33 /R338[/MJ33C/633X/Ft33 B /@33[/W#33n%{/?u33u/z\O33/Dz33-/dL 33G/E33H-/RT33"`/6=33B/ 633/V336$/]33&X/F33/331 /I33/;33l/=NB33|/9@33>3c/N&33}/[V33 /U332/Vq33H/9b332\/?H33oO/X33{g~6/]:33k W/Y+33|l/C 33n^/733`t/\0334F/)833/\33hd/@^33>-/C9h33VAo/>d33 oTy/i633/Z3/;33Sr/}W331/T#33gTG/@633Y8/N33y/633/@u33E:/y=N33/aB33/qJF33_Ip/>33 /R933y/O{33/?9'33i/R.33t//?33H/KDG33*N.*/J33P/K33/\9-337`=/Lo33b/5:33#/G 33U/V33,>Y/W<33{S/A33g/\s33uF/=33qS/PK-33DD/Q7-33E7/GT33Hm/L=+336d/D^33Z/4E33< |/&<33TS/B33//O33'jT/E33TZ/zQ33[I/?33zo/R33fNv/5ZD33wlu/?33/VV"33]/K$331/J833]/M33 /yRr33/Aj33 Ut/WL335/P334W/XH33/+I33/bM33@Uc/@Ag33g]/?33h/P33/C33Wi?/<-33)gc/P33Q.bi/6L>33>w/B33^/SE33F/Ba33v*d/C33//P33 0/E33;/uM33 /?33m/LUE33/XY33k/EH33v/fS33lV/O33{/"U!33LY /4B33bT/`M33dU?/FD33/S33/@Y33}<D/)<33/#Va/H\33O/J933P/L332/TD33 Q/933pw/4Ax335/8P33/Kq33MS/;33}/o9)33b/@33-/N]633?/A33",/WE33+/B33*D/Y33p\dM/N339) /U33:*h/vT33~x/::33/T33X/ED33V/T332-/U33)3/Z33X-/;z33JR/G\33rQ/K[33.H/W733GIR/WBR33IKE/F,33/?9/33/I33s?0/S433t@/P33(/L33iI=/R33y/GJ33'/&Y33J/iZ33s/F 337/E33;e;/S334D/E3363/833/JP33rG/[33,/#F/33#y/W;C33!!/I33[/U833%/L33K/>m33!/>33:}/=Q33G/;33wsS/R=33x_/Yr33y`./B33za/Y33-2 /Q33?/: 33a*/*\J33/833?o /,XO33H/@2330/mH33q/LG 33h/N<33-/Q33tu/C)33,/?033$/\1337x/P+33V'/O33W(X//O33+O/Z33^/eH33!/K33}ox/Z33fB/X33 a/RT339/P!33i.bC/[33j/c/cF33/d;33/Y33()/d<33#.$/>33/Q33/WQ33[>/+=331/W33 G/E33/;>33(>1/gX33D/Mz33)M/@O33p_/Oc33P(u/< 33q`P/H33/x:)33s/733/D33-*/?33 ]/S33:^4/LI33?/>N33/?33@</?33lg>/i\A33k/T&33c/833y&/L33eL/\334sk/O335tl/ [833V</xR33 T/B33Q7}#/cK433No/>3320/S63331/B&33+Ln/@33C~/I:n33L/L33M/wZ33&a/9K33M6/S33V}/E33O#=/H.33h/Ga33@~/w[33U /-Z33*./]"33/VV33aN/733<x/\33DAt/?:J33/J33p^v/Hd33|-/G 33@/pM33y2/Y333/J33t/@33Kq/D33s=/<X33%/[_33T/uP33GE/S33k/Fm33/T33Mg/[e339 //B33mMZ/YA33nN2/M33h:/P33f~/633 ,/M33/?33jD /NG33y0/V33SH/JH335/933 / I%337/Q 33eu:/ W338K/`M33'C/833r_/OVO33Z/Q33dk/SH33K/H33lK/,Wl33&/a<<33/A#337/GL33`/G-33Xb|/GT33c/YX33/ES,33u77/J33V1/R33VI/F33 /J33E/O33/2ZT33$3/X833!/Y833k2y/833+ s/8 33)/E33;/N33/[33jF/E33k/C330D/gZ33k/\33/]T33F/YM33(/Z$33^Z/m833u/N334/ A33m/833_/L33, /G33^}/M330;b/R33/7?C33>N/0X33#[`/833 /ZV33H!Z/O330t/ZG33\9/5D33T$/1J33 /H133/6XE33/JB33T/p:<33Ue/NH33G.I/G33m/=l33Xo/[33U/[*33?$:/<33v(/R33NO/[933|/J33~/ES33D|/C33-;/N33i/[334EC/;335[/fY.33:/Y33/\<33|A/FA33,iA/L33&/bI33qj/F*33/U>33 KX/IQ33Yh/F>{33 6C/B:332)qy/U.33/0/L@33_;/VE33/=33!/5Wh33#7/J33*R/;33R$/A 33wmv/%5331=/A33Wc/dIU33 ./R33C/G33D@/E33/X330eA/kM33[$eA/LJ33oX/*\[33=/N33I/k6 33#</m[33"56/MV-33-/N=33.[/xPr33F[/R=T33W%/U33rc/rO33F/,VN33GP/A33 /Q(33j14/B=33OLM/:33/9I33%Gw/:Z33&HxJ/$TK33t7/L33-/Qp33/SK33/833}/{FX33m$/833"z/H33\JY/R33@>Bn/9233v/&T33J/<33/#HT33X/>^33EQ/Hs33FR /I33hXM/zAp336m+/R633^/XH33B/CW33b/K33ke/ NV33q K/H733W/=;33ZN/_:33U/Q33/g8833=/bD33nC//733{7/72338x/6Fy33Re/C33\+G/\336k/6T33O/ LW33F/@33J/lI33wB/e[33N/XI33|A/\33)q/Lt337/^=u33n/C33_Ts/K330mG/O33P'/P=33rA/J33B/ ;b33nz{/W33 g/BW:33'/CPk33/<33x/S33F7t/6333 !/<33iRo/5E33u/P33vf/;33/Q/qX33r$/A33k@/KE33q&/S=33eEI/R33lg Y/V33C/?33cz /Q.33g /HS33i/Td33U /m?l33`?s/$L33D/VK33q/OG&33;./PT33<)/PQ33x/@f33P/DM33PDe/.L33_6/G33tL/M33wC/z733?#~/V33/:V33&J3/@\33>Y/(>33LL/KL33MY/I33/ D!33cCb/\33]/w833$n\/n;332{/M33sJP/[33uKQ/@U33s0 m/Za33?/]$33 @/ID33 /O33f,/M33~@/U33/T33 D//E33/7M33!V/:*33J/m=P33<"/S33 !"J/K33 /X33FC&*/T33y/W33WY8/;33f!/J,33bJ/C|33=/:33%/M33aw /p633<j/qP333Zh/n733Nl/#=33H/>R33h]/933 C/=33HR3/SU33|/>33K/>Y33jo/FW33 Wqk/H&33|eJ4/R33]/MB33+/r633=C/H[h33 ]{/T33C*/ N33g?/S33/J;33+2/Z33MC/?N33@/R334/=333/J33KfT/W33'su/AT33~)f/Q330/=33c/>33_/CY33 i/FH33u/"Ss33!/6337R/I33V7I/LF33f~/HZ,33d/I33K.n/rW33D}/ Ud33Y/JS[33(P/tPF33M/833~/@_33p/OG33Aa,/g633x/<33y/AQ330/-<33u/O33km/633/Y33no /X33{/\33O;/ N33>/P33{*/=33l-q/0[x33_/D33N/s<33^ /G336/B33d/<33%*/M%33~9/5J33M/J33j/ZD33O/IW33) /K&33r/C<33D,/=I33$S/'J33MB\k/ZU335/j833IO/3\u33&/Y433ZvG/B33./D33Gt/C33u{/X33!:/BJ331l/B33*/D33 /;33/V33+/>33wfL/xKt33a?/B33$/<733!s /=?33"u/A33>WR/ PE33mz|/R33T|/?33RI/qE33)/Bk335Q/N33WT/=33w8/GZ33/JI33a</F33T/733/:33c/=33n}/^>33%/Q33Py/JJb33GE/DMB33]^)/H33 /Tw338/K33W1/mSg339B/V336/N 333e/\336/sM33/l]33(/\=33m{Y/V33cp/W33:[/RR33~/FM33/9l33ep{/g@%33v5/sMf33./W33_K/eB33xw/9[33yx*/Ml33/Rz33q/Pm330O/8?B33/8/33e/=H33+O/l>33T o/T:s33/7P33@n7a/*7y33RbK/633,/,F33%q/H33w/[/Ie33a/BO33No/V338(/ <33/Q:33Cj/wY?33{/>33/YE33Z/E33,k1/sF33Kz/V33S-/[33]q/^833/T<33/kJ33Lwz/Wa33/}P33<E~/N331/YR33o)/]33kH/.R33zz^/Q33.5/"BB33T!/633/Z\33Lv/Ty33X:\/+J#33db/[Nf33p1/pV33q2}/?r33/u833Q)/A533+ V/P"33!J/nF{33CX/M33x/O7331/K033hO/X833e/B33tJg/8332*/LN33 /U%33WA/{X33/}NT332/Y33+bE/:33W:A6/;G33 7/\W33!a/\>~33_r/<633HW/SEM33H/833tXy./>E33)\v/1\33~/1S33/]33Sz/6QQ33/M=33g/ E33/H33%N/TE33N,/Z33 4/_;33k/C33h}T/Vl33/@33:b/Y33r/T33hw/M337/Y33r/Rj33/>Y33//Ot33/J/33'/;]&33h/mHX334g/Yi33n:&/@33E/C33cE/:Oq33T/YD33W/,T*33Z/F33>/"/Dw33?/Q33(S/>33w(/F8X33N/7e33D/I33in/VH33|/EBU33A/Y}33N/Ck33a!/\C33cY/F6!33o%U/DI~33H>/Y<33'-C/eNN33*h/M33#/Q33$/U33k}/L33-/;33t/2O33&l/kV33[J&/C33k'h/<33l(i/W33"/E733}/J33dd_s/K33L/{Z33q/B733/W_33X/JV336*/:33c/Sj33lP/Ip33mQ/;-33;i/IC33=/U'33+w/|@33T@8/A33y/8T33Eo/TY33/FC33  /N33/.M33V>/I33a/\Z33"F/DKG33/y4;/733qcN/?G33XW/~L433k+h//R33s/!I33/;333FI^/UY33f/6(33`3/x;c33vN(/QN33~/yP{33Y/MY33n /P33:/g?33p/[33/Vx33/Z33]K/Vp33^L//nAf33,`#/W33|3/M33b% /F33/R33</Z334/Ww33/K331+ 4'.M$5?13 %)Cjj)Caaol#2&G!H /<6[ 445S5S445S5S5S5S44/wC|0nU$;ZY+ Oc'u X'a1C-328y2R^ 7P7ab:-d!"61O'ى*o$=H@-`1&J*dRbQ)U7o44n44n%44n44n`44nS44n44n44n44n44n44n44n44n44nq44ng44n44nx44n!44n44n44n44n44nk44n44n`44n44n44n44nd44nV44n144nf44n44n44nL44n44n44n44ni44n\45I s]w44nq44n44n44n44n44n644n44ng44nx44n>44nK44n44nh44n44n44nV44n44n44n44nX44n744n!44ng44n44n44n44n44n45I! 44n44n44n44n=44n*44n44n44nO44n@44n44ne44n 45I% 244n44n244nR44n44ng44nW44n44n&44n44n44n44n44n44n44nQ44nW44n44n~44nd44n44n-44n44n 5i4M44nC44n44n44n44n'44n44n44nT44n44n]44n44n'44n44n44n644nq44nR44n44n44ni44nP44n44ns44nt44n44n44n44n44n<44n=44n44n.541 45a0 5I44n44nM44nV44n44n44n44n44n44n44nQ44nw44n 44n44n44n44n44n344n44n44n44nQ44n:44n44nA44n@44n44n644nR55a+  44n244n%44n#44n44n44n944n44nn44nL44n44n944n"44n44n44n44n44n44nC44nD44n&44n44n44n44n44n44n/44n44n44n44n144n(44n44n44nV44n44n44n44n44n44n44n44n44n44n44n44n44n44n;44nk44ny44n44n>44n44nX44n!44n 44n"44n^44n44n44n44n44n44n44n541 F44n-44n44n44n~44n44n44n)44n|44nB44n44nA44n855a @ * *44n44n44n444n*44nE44nH44n44n44n:44n255I 244n 44n44n44n.44n/44n44n44n44nI44n44n44nM44nN44n244n44n44n,44n 44n44n44n44n44n44nV44n44n44n44n 44n44n44n@44n44nu44n44n44n44nj44n44n44nu44n44n44n44n44n44nY44n44n44n44n44n44n44n44n44n44n44n44n44nx44ny44n44n.44n44n44n44n44n 44nq44nS44n44n44n$44n;44nM44n44n44n44n44n44n44nr44ns44n44n44n 44n44n44nBF55I]w44n44nk44n44n44n44n44n44n44n44n$44n 44nW44n_5e5IM 44n44n!44n44n 44nl44n44n.44n44n44nk44n44n44nY44nZ344M{ 44n)44n44no44n44n44n_44n44n44n:44n44n*44n+44n44n44n44nf44n44n[44nG44nT44nz44nG44n44n44nI44n44n44n44n44n644n44nZ44n[44n44nn44n44n_44n 44nd44n_44na44n44nt44n44n44nO44n44n44n44n 44n44n44n44n44nW44n44n44n44n44n44n44nW44n44ncJ45IW]ws44n44n5e5I 44n44nP44n44n44n5e5I <44n44nvL45I5{]w44nI44nJ44n44n44n44n44n 44n44n44n344n44nb44n744n44n254 H=44n+44n]55I% ds44n?44nl44n.44n/44n44n44n44n44n44n44n44nz44nc44n/44n44nu44n44n 44n;44n*44nR44n<44n44n45I$ Fs]w44n44no44n44n44ny44n844n44n444n44n'44n(44n44n44n>44n44n44nI44n44n<44n44n!44nK44nL44nf44n44n44n44n44n44nX44n4444n44n44nh44nb44n44n44nD44nFO555]w h< h <44n44n"44n44nH44nm44nz44n44n44n_44n44n44n44n44n44n44n44n4444nG44n44n644nc44n44nz44nj44n44nO44n44n44n44n^44n144n44n44n44n44n44nS44nF44n44ni44n44nD44n44n544n44ne44n44nf44n44n44n44n44n44n$44n44n44n44n44n\44n244n44n44n44nY44nZ44n-44nU44n 44n44n44n44nX44n44n44n44n 44n44n44n,44n/44n`44n44nO44n44n44n44n\44n44n44n244n44n44n44n 44n44n444no44n44n44n{44n44n44n44n44n44n44n44n44ne44n44n44n44n44n44n44n44n44n744n'44n(44n44n44n.44n44na44nN44n44nU44n44n44n44n44n44n44n44n)44n44n 44n44n44nq44n=44n%44ng44n44nU44n44n44n44n44n44n44n44n44n44n/44nv44n844nb44s44n*44n44n44n+44n44n44n44n44n44n+44n,44ns44nU44nV44n!44n44n55I Ks]w44n44n44n44n44]w h<44n44nw54 V]w44n44n44n44n44n44nA44nB44n44n/44n@44n44n5?4s44n{44n]44n44n44n5E4]w44n)44n44n44nt44n)44n44nh44n*44n+44n 44n44n44n44n44n44nh44n44nW44n44n;44n44n44n|44n44nD44n]44n44n44n44n44n544n44n44n44n44n\44n44nP44n944n= 4 2 -44nS44n44n 44nj44nE44n44n44n44nc44n#44n$44n{44n44nL44n8W5?4N144n44n44n"944vss44nb44n$44n)44n44n44nq44n844n44nl44n44n44n44nB44nE44ds 2{44nS44nT44n44n44nn44n44n^44n44nH44n44n44n44n44n44n*44n44nOU5 5I44np44n44n44n:44ni44nj44n44n44n44n44n44n744nu44n44n44n&44n 44n44n44n44n;44n44n44n44n44n}44n44nN44n44nU44n44n44nJ44nK44n44ni44n44n44nF44n44n44n44n$44n44n44n44n44nR44n845Isc44n44n44n44n44n44n044n44nZ44n[44n44n"44nm44n44n844n-45I# {]w44n44n44n44n44nA44n'44n44n44nI44n44n44n5 5I:]w44n44n44n44n 44n44n44n44n44n#44n<44n=44n44nY44nZ44n/44n44na44n*44n44na44n44n|44n44n%44n44n44n44n#44n;44n44n<44n44n44np44n044n44n44n~44n'44nn44nE44n44n44n44n44n44ng44n44n44n044nH44n>44n44n44n44n44nd44n44n44n44n 44n44n44n44n44n44n44n44nD44nZ44nL44n544n44n44n;44ne44nm44n44n144nU44nJ44n044n|44n344n44n44n44n44n44n44n44n^44n(44n44n44n44nr44n44n44n,55a V  44n 44nd44n44n44n$44ns44n44n45IE5 44n44n44n144n44n44n5W4M44n44n44n644nF44n44n44n44n44n44n44n44n44n44n44nl44nt44n+44n44n44n44n44nY44nH44n44n44n44n44n44n744n44n44n#44n44n44n44n144n44n44nf44n44n44nn44n44n44n244nW44n244nA44nh44n44n44n144n44n44n44n44nr44n 5l4! s F֤44n44n44n_44n44nu44n44nb44n44n44n~44n 44n-44n44ne44n44n44nN44nw44n44n44n44n44nq44n#5l4 s44n44n}44n44n44n44n44n44n44n44n44n44n55I]w44n44n44ny44n,44n44n44nd44n|44n}44n44nR5e4 s44n44n44n44n%44n44n44n44n "4 44n844n'44n44n44nB44n44nw44n44nK44n544n4 %54+]w44n44n44n:44n44nM44n944n54 dH 44n44n{44n44nD44nE44n344n44ni44n44n~44n44nv44n444nv44nw44n44n44n44n44n=44n44ns44n 44nt44n44nB54 \ 44nL44n~44n`44na44n44n44n44n44n44n45IHsCl44n44n5]5I=<44n44n44nS44n=44nt655Is]w44n44nr44nA J5aus]w F֤5 5I:]w44n44nk44np44n444n44n44n44n44n44n44n44n44n44n 44nj44n%45I 44n?44nt44n-44nn54 \44nZ44nJ44n44n-44n44n&44n44n44n44ny44nC44n44nx44n44n44n44n44nL44nG44n44n44n44n344n44nP44n44n44n44n44n44n|p44 s44n44n44n44n44n44n44n44n44nw44nf44n44n44n44n5e5I <44e~44nu44ne5e5IM]w44nM44n44n44nB44n44n44n44n44n44n 44n44n44n44n44n44n44nt54  @s44n44n44n44nP44n44n44n44n?44n44n44n44nH44n44nm44n44n44n44n44n44nJ44no44n-44n144n-44n944nC44n:44nD44n44n44n44nz44n44n44n44n44n44no44np44n44n44n44n44n 44nE44nF44n44n44nB44n55a ww44n44n44n44n44n44n 44n44n44n44n+44n>44n)44n44n44n44n<44n44nT44n?44n 44n44n44n44n[44n44n44n344n?5]5I=<44nn44n44n.44n44n44n44n&44n%44n44nT44nK44n.44n55a44nX44n44nT44n44n44n{44n44n44n$44n!44n]44n[44n644n44nM44n:44n#44n44n44nF44n44n44n44nV44]w h<44n44nC44no44n44n44n44n44n44n)44n44n44nb44nE44nP44n44n44n44n44n44n44n44n44n 44n44n45a21145I{ 44n44n44n?44n44n44n44n44n?44n44n44n44n44n|44n44n44n44n44n>44n?44n@44nd44n44n.44n44n44n44n55a l  44n44n444n"44n44n44n44n44nE44n44n44n^44n44n44n44n44n44n^44n\44nJ44nr44n44no44nT44n44n44n44n44n(44n444nj44n44nx44n44n44n44n44n44nw44n44n44n:44n44n44n44nC44n44n44n44n 44nM44n"44n44n44nQ44n44n44n44n44n44n/ 44]w44n"44n44n 44n144n(44nO44n~44n44nQ44n44n44n44n,44n44n44nR44ny44n?44n44n44n44n44n[44n44n44n44n44n+44np44n544n44n44n44nz44n44n44nc44n44n44n44n44n44nN44n44n44n44nG44n44n44644nX44n 44n44nK44n44nl44n_44n44n644n44n44nx44n;44n44nF44nQ44nw44n44n44644n044n44nN44nO44n44n%44n&44n44n@44n44n44n44n44n44nl44n544n44n44nR44n44n,44n44n44n_44n044n44nz44n44n44n244nI44ne44n44n44n44n44n44n'44nU44n44n44n44n744n 44n 44n44nY44nh44nc44]w44n 44n344n&44n`44nb44n544n"44n44n44n44n44n44n44n 44n 44n44n44n44ne44n344n44n`44n44n44n44n44n44n44n44nc44nk44n44nx44n44n44nn44n&44n44n44n*44n44n]44n^44n5x4=5W4 s44nr44n44n]44n444n44n44n44n55a 1144n44n}44n44n44n44n44n44n44nk44nJ44ng44n44n44n\44nK44n;55I {]w44n&44n44n\44n44n44n'44n44n}44n44n`44n44n744n44nv44n44n44n<44n44n44n44n44n>O5l5I l{]w44n44n44n 44n44n44n44n44n44n544n44n44n5M4M {44na44n44nh44n44n44n44n>44n)44n44n44nN44nG44ns44nr44n44n44n44n+44n944nA44n$44nv44nl44ng45I! F44n44n844n44n44n44n44n44n744nS44n44n44n44n44n-44n44n44n@44n@44n}44n{44nu44n5P5IQs44n044n44n44n(44n44n}44n44n44nX44n44n{44n44n44n44n!44n944n44nc44n44n4444n44n 44n44n44na44nC44n44n44n44ny44n944n<5x5IU{]w44n%44n[44n44n44nR44n,44n,44n44n44ns44n44n44nG|55a;K5M5I44n44n44n#44n44n44n44n 44n44n44nm44n44n44n44n44n\44n44n244n#44n!44np44nY44n44np44n 44n4ms44n44n44n44n44n44n44n44n44nA44n44nm44n044n44n44n44n844n44n44n044n44nv44n44n44n44n44nj44n44n(44n54  44n44n44n44n44n44n44n44n=44n44n44n 44nH555]w h< h <44n44n 44n44n44n44n44n44n44nm44n44n44n44ni44n44n44n44n44n44n44n44n 44n44n44n44n44n44n44n44nQ44nf44nI44nP44n(44nU^0>2*=XE WwF8&/7TA1l,#r)\*:K!8]#1D0÷ Φ4#%(+,-]5%a&O)!5#8$G. ^Z2CN"8l,U$HH"' %C '"J'#20)W|3bM!U0E*J6PGL vAZ0M60!2"h2Q7m3c!}1&3Y2O'. Z(%?8?"e-&;X 'Ȝ*Ee, h5q53LH h5q"GJ h5qbuIK :%^f'+Fm'Ǜ%=($(qB7"62('&4٬.90HN%3Fe:S$}'{"144 h h044 h h244 h h344 h h"q%Fa/WJ)A&E*<C,w&rF(O0|@3iRz-xxI(##N#! H($X(0H2 0Wu C?+K/'*Akd+M"@-^tA36-Z&$ȸ ±'w_&Ve%Ab/N.)WiQ =-C_;2?>q&/\3|LK0 | /GF"@%W/5.z333A@# 7_*i.[-d x+'0;%XG,c({=*4Z2: s? hbw hf~ * hd1c hc2 h]S hc hf hc@ h hb2 hc( hf hd h hcEP' hc hd hc he hbP2 h hc- hb1 hd  h04 h. hcx hc0 h hc huS hb; h; hb2 h:/ hb1c hb1B h. h2&; hc. h h6( hbK$ h* h8- hb hby2 hb%#) hc hb^ h h hc% hm& hcF huU hcd hc0 h hcT. h1 hc h0 hS2 h'$ hw h hfh hd2C( hc}S hb - hc$6 h&2 hb2. h hb hcf h% he. h-b hb hb\C/ hb h h hc hb- hbd+ h h2 h]S hb%f6 h hp h$ hc h  h. he$ hb h$ h hbS hb hbL hb& hc heB2B, h- h2 hfw hd hbg hb hcS hc) h hPS hc}1 hc2# h hc h2+0] hf% hu h hbS hbS hb hb6 h0 h hc hS hc> hck hb-c1 hb[ hcpS hb2 h hb1c hb hb hb0] hf hc h hV2 h1 h5 hb1B h hb2 h hcG0] hfN w h h?0 hb. h- h2d- h h hcZ hb=1 hb hb* hb hb hb h-41M hp hc/ hc02b>& hc. h$ h he2cw hbS hc. hb$ hM hc1 h' h3 hb@0] hf2 hbB* hc0Q, h hb heS hc hc6 h'c_ h!0 hR1 hbr hcb1c hc& hc2c hc hb2 h' hc1 h hc- h hcV. h hc h . hc/ hc hc6 h hS hb-cv2 hbM hc'i h-c3 h , h hb?[ h"_ h" h2 hb2 hb hcQ hc7- hbDU hb hc h]-c hfI hc hc$X hW' hb0 hch$ h`% hc. h' hbV6 h hb h hD-c#) hc hc hc hc hbV hf5 h$ ho2 hK hc- hc` hb h%4( hec.; h hc hc^2$ h.+ hcS hc#) hc6 h0 h0 hw' h. hd( hb( hc3- h" h2 h  hc2 hQ#) hb, hcu\! hc. hbF hfX hcr2 hcg h4 hb- hcQ-b hc h hc hU hc1 hb#) hb h8< h+ h() h2 hbO2c3p hH h,J hc2 h1c hc.E& hc hc. h& hb hb hb/-b* hH h hcL hc hb$ h hc h hbs^ h hd 1 hb! hbqS hcy, h% hc  hc hb2 hI2 hc- h/w4 h hj, h hb hc-b& hc0] he h1c hb hc hf32 hbG2d1B h hc $ hb h  hf hb/. h1 hcZ hc-b h- hc* h$ h hb, hc1 hbX hb hc0 1 hc', h hb hct$ hT1 h  h* hi3 hbC hcl2 h! hb"b hcpS hb. h] hbV hc hc2r h-b( hcI. h, h hb0C hV2f. h he5 hc _ hb hd2 ho hd hb(- h/0] he? hf4 h$ hA hm h hc hc2b_. ho he  hce- hbo1 h/. hg h hb hc he, h - hcq hcS hbk2$ h1 h$1 h. h2 hG% h_( hg' hbs hG2 hed2+ hl* hF1 h hbl$ h. h. hm hc  hY1c hc"4 hm+ h1 hcs h( hd/ hb hd hc2 h hb hcS hc$ h, hb|o h2 hbn3 hbA)f h- hc hc * hj hb1 hc hW hb h hb-b h1B h/0Q h hbm  hcm!` h hcb h( hf/{ hc  h "$ h hb6 h hb!0 hb2 hS hbhh hS hcz h3. h, hc%' hb-c h6 h0] hd" h\" h` hb2 h( hg  hw2 hcB hb\-b5S hb hb62 h?\ h hbq h;2b-bR hb hb/ hc\ hcW2 hc h h. h0 h1B hGU hd hb hb hb hb$ h hc9 h1B hC1B h hfm h2 h h. h2 hc2C h- h hbH hbi$ hS hb hc hY-c-cj hd. h hb* hz+u h~ h' hc2 h hc,' h hK' hc#. h hb2 h hc h< hd \{22 hu6 h hb& hc2# hB hb hb he 2bI hfP heM. hbp3 hc3 h1 h hcP hb$ h1 hb")>c;S hb]n hs hc0 hx hc hb2bb1 h-c* hf6^* h_ h+22 h* hf| hg h/ h2 hb hb- hb9 hc he hr h3{-cC2 hS hc| hc hb8 hcL-dS hbZ hbY hbK h hc1 h[ hc h hc2 h hu hb hbxS hc? h$ h hc hc3 hbx/,' hG/ h- hbW hx2 h@- hc hb hb hcd hb h, h hc. hm3 . hc, hHS hbN hbZ0 hB hb( hf' hc2_2 hc"b hb/ hb hc hc he hb h 6 hp2 h  h h h hb() h2 h hd  h' h, h0] hfHP h6 hc. h1B h#) hb/ hc9\. h & heY"b hc he h2# h3 h he1 hB hd2 hc7 h. h)q h90 h/ hb2 h. hB1 h hc S hd hb1 h hb$ h hcg2 hb0] hfS hbC hT h hcf h hb hT hc1 hc}1M h, h- h( hc%) hc~ h2b-c2 hb`! h2, h0Q h 3p h-bUS hb0 h%  hl hb hb hc1B hn. h h hd2 hbt. hbu hb hb@,2 he' hbi, h/1 h2 h h?4 hT. h hj, h3H h he-cU-b h]?_S hc1 hcN2 h2 h2t. h( hc" h hc# hc43 hb heH hd2 hbQ hk hcC hbF\ hd hb2 h1 hc hb hbA, h. h hc?. h hb=2 hc hcP h hc%\ hb hc' hc hc hc,I h2 hbS( hfd$ h hb hb hb$ h h hb hV/ h" hb hb2 h9:"D hb$ h%1c hb hb( he~I hMS hb2 h hba h\ hC h0] hd2 h h. ( hew0 h.x hb- hc hbJ hcp2 h  hb hd h hcU hc hc hc he hd hb2 h20Q hAM h hc%A h, h h+ hb2 h hby2;' hch' hbS hcY h hbH h# h2 hb{-b h'/ hcJf hP2 h0P hc+%' hc h1 hbj, h hfa-bC& hbL6 h]2 h.H hBS hcK h' hb hb/ hb-b2 h1 hb$S hca2 h.P2 h h hcS hc@ hcA- hc=2 hb: hc2 h , h5,' h h-c] h" hA) h-c0 hW2 h hc hc& he1 hc hc h h2 hc 1 hcf2 hc2 h() hj hc hc1 h hd hb^. h, h h2 hf hb h22 h hG& hbf hb, h hb h( hc2nH 2V2 h. hd hbS, hu. hcc2 hb2 hc hbf hx h hc #) hb~$ h hc- hc hc hbP6 h# hb hS hc h hc heI. hS hc6. h2bz0] he- hc222&; hd2 h%< h_. h, hU( he h0] hg h-b hL/ h & he"b hd- hc hH h>-cn-c h hb2[ h hb2 h,3p hk3p hcT heW he( hf h hd2! hbE2 h( hf& hcf hM. h hc3Ob hb.HZ0 hb he21 hd he*H8"=.8/.tK#C+#6/@Ҩ-9 #1(=*JϞ'ۏ%I4>,r!T˵+^!] C1s'K,// T%M}c#},e0MS'1e"%_Tq- O2'"0<"' Cl%+",e(5^t!%W]0#T2$IL/=g"'[3.\r,mAB+.rk ( }#S>$I Q7OU*Ez J=10$" U'!!^S,WZ,+z3$P*+0V237p+TG0;0D&e %!3S),D%E/!F$w '*xv$m)XBY.0_1=D~%%GT8Y"Sπ1./7|$Om*&+9bص0?a$7]%^!`(I%d:lE ,rg&WbxҴ#  Q&h.,*߄#RQ"'r_(o?/6;s!Ld.) ј B 6!T@+%.r#|$Y#&.|')O_T!5I4[5I4_5I445I4 5I4 S5I4 <-5I4A 5I4 1 5I4 3 5I4Y 5I4 P5I4 5I4 !5I4?i5I4 RD5I4 5I4 X5I46:}5I4 ܌5I4 W# 5I4#5I4S5I4˚5I4 $5I4 *5I4 5I4k[5I4 5I4D>5I4V5I4 ]P5I4 j5I4'5I4 G5I4 [5I4r5I4 5I4 95I4 605I4uO5I4 5I4 c5I4. 5I4 /5I435I4Q?5I4 r5I4 z4v5I4 5I4!5I4Ÿ5I4 Tn5I4+5I4{5I4%A5I4 n5I4 5I4?w5I4 y"5I4  5I4 5I4 (^5I4!5I4o}5I4 C:5I4 :5I4 c5I4š5I4yţ5I4z5I45I4 O5I4 45I4P5I4 55I4Q5I4 6Y5I45I4O5I4 5I4 z)5I4 Y)5I4 Z5I4 (Z5I4 +h5I4I+j5I4J\&5I45I4 5I4 85I4a5I4 K[5I4 85I4 ?FJ5I4 Nd5I4 p.5I4 e/5I4 "5I4 0%5I4 ~Nz5I465I4 (ج5I4`,5I415I4 5I4 8P5I4$5I4 5I4*"r5I4 "u5I4 "v5I4 đ5I4 5I4 w;z5I4 5I4 D5I4 65I4 ؚ5I4 .=)5I4 UX5I4y845I4 5I45I4 h5I4S5I4 t5I4 .5I4 ]T5I4 s5I4 [5I4 A5I4 XD5I4 YF5I4 ZC5I4 XǴ5I45I4 g5I4 h5I4 5I4 0E35I4 05I4L5I4 P5I4 5I4[5I4 5I4 '5I45I4+5I4 \5I4 oU5I4]5I4 -}5I4(5I45I4 <5I4 =5I4 5I45y5I4 05I4 5I45I4 5I4!q5I4 !u5I4 K5I4d5I4 5I4"5I4 MF5I4 5I4=5I4 ڦ5I4 s5I4&'5I4 Xd5I405I4 5I4)S5I4 5I4 wU85I4 .5I4D5I4 &5I4jΙ5I4f5I4 E5I4 ?5I4 j^5I4A5I4 5I45I45I4 H5I4(5I4{C5I4"75I4 25I4 c5I4 j-5I4 ^5I4 H5I4 ;05I45I4v75I4 J~5I4  _5I4 c5I4  5I44=5I4 75I4 5I45I4  5I4@ ;5I4 a G5I4 *5I4 5I4 0 5I4 R5I4E5I4 A#N5I4j5I4 Bl5I4z5I4 5I4 ,5I4 /F5I4 iF5I4 j,5I4 A5I4 G5I4 G5I4 )5I4+&5I4K15I4 5I4 75I4qL5I4}5I4 ,5I4L5I4.p5I4 o5I4 45I4 d5I4 /5I45I465I4 15I4_O5I4 N85I4 5I4 J5I4  5I4 55I4 aW5I4 ;45I4 #5I4 #5I4 5I4 %s5I4 V5I4 M5I45I4>v5I4(5I4 W5I4 ۈ5I4 cR5I4 u5I4o5I4 5I45I4-K5I4 5I4 25I4 55I4 5I4 .5I4 H;5I4 5I4 5I4 C/5I4 C25I4 x5I4 I5I4 z5I4 5I4 f5I4 ]5I4^M5I45I4  5I4`5I4 ځ5I4 5I4Q5I4 p5I4 =r5I4 >5I4% 5I4 45I4 eM5I4 eP5I4 5I4B!"5I4 95I4'@l5I4)5I4 5I48;5I4B5I4 BC5I4 T5I4 W5I4Pu5I4 K5I4 V5I4G5I4 QY5I4 Ѣ5I4VA5I4_5I4 '5I4 M̊5I405I4)5I45I4r2y5I45I4F5I4 /P5I4 я5I4 <S5I4`_5I4 5I45I4 aW5I4 K2d5I4 [85I435I4NRO5I4 15I4 5I4b5I4 05I4 5I4?65I4 =5I4 &[5I4P5I4?y5I4 $85I4 Ø5I4 5I4b5I4<5I4*5I4 D65I4 D85I4 D:5I4 5I4 V5I4 W65I4G~5I4 @5I4/5I4 eZ 5I46Z 5I475I4=Bp5I45I4*5I4 5I45I4 !<5I4 25I4֫5I4 ^5I45I4 m5I45I4o5I4 B5I4  5I4$5I4 5I4 25I4 L`5I4R5I4 #5I4 #5I4  5I4_ 5I4`5I4 5I45I4 Q 5I4 Q"5I4 Q$5I4 5I4 )Y5I4Y5I45I4tx5I4 z5I4 \.5I4 r5I4 5I4 '55I4 ,5I4 5I4 gG5I4 5I4 C`5I43%5I4D5I45I45I4 5I4l5I4m_'5I4 e5I45I405I4/No5I4 a5I4 t5I4Bu5I4C 5I4 K5I4ć5I4 45I4 `5I4&5I45I4 m65I4 55I4 = 5I4N5I4 %5I4 >ǽ5I4bP5I4 5I45I4C5I4Q5I4 TM5I4$@*5I4 @+5I4 5I4 ] 5I4 ;S5I4 b5I4O 5I4P35I4Cy5I45I4k5I4 E%5I4/%5I4^5I4U_5I4VA5I4 *A5I4U*H5I4WZ5I4T5I4j5I4 D2*5I4 t:5I45Ϣ5I4 g5I45I4 5I4 7"5I4,a"5I4 GI5I4 W5I4 |ڭ5I4 !b5I4  p5I4 ~R5I4 "~5I4X:@5I4 5I4p5I4 <Ơ5I4  5I45I4 q&5I4 s&5I4 t?5I4g5I4 Q:*5I4a"5I4 5I4 ;5I4 Y5I4 5I4[x5I4%5I4_5I4f>5I4 ?5I4 5I4XE5I4 5I4 WG?5I4)B5I435I45I4 /5I4 \5I4nL:5I4 R4F5I4 #t5I4 25I4 5I4/5I40/5I4 1 5I4 7ْ5I4 H5I4 Jo5I4nP5I4 25I44)5I4z5I4 5I4H5I4 5I4$5I4o5I4 5I4Ȫ5I4 nW55I4> 5I4 s5I4B5I4 +55I4S5I4(5I4S5I4ȕ5I4 5I4 5I4 F5I4 %5I4 (A5I4 -M5I4d5I485I45I4 ^5I4 D5I4 d5I45I4 T5I4 U5I4 V5I4 W5I4,j5I4 fIC5I4 5I4Ӱ5I4 a5I4  5I4  ^5I45I4 #5I4 5I4<5I4 5I4 9x5I4[y5I4\75I4 V5I4 5I4 ?5I4 *5I4 Jۂ5I4  M5I4 15I45I4 *!5I4 5I4 '5I4 %V5I4 u5I45I4 5I4D5I4 o 5I4 (m5I4(t5I4Ao5I4 C'5I4 i5I4 l5I4 +5I4 5I4x5I4/}5I4 | 5I45I4 0Ґ5I4 g5I4 65I4`5I4L5I4 k15I4 PO5I4 5I45I43w5I4 05I4 K15I4 Lդ5I4 է5I4 `5I4 Su5I4 55I4 ;5I4N5I4 ^5I4 U5I4 \5I4 7>5I4 'a5I4] "5I4  #5I4 95I4 P5I4 w5I4q5I4T5I4̗5I4 ̘5I4 T5I4[?5I4 C5I4LVv5I4 ?>5I4e5I4eb5I4 @}5I4(5I4 A5I4 95I4 Q5I405I4Q[+5I4C5I4 .5I4SJQ5I4 25I4 f5I4w25I44^L5I4 5I4 Q5I45I4 L5I4 _5I4 +5I4EH5I4 >5I4 5I4O5I4 05I45I4Y 5I4 h5I4*b5I4}!5I4K5I4  5I4 35I4 x5I4 5I4 { K5I4 S5I4SS5I4US5I4V;5I4 A5I4 $5I4 _k5I4 ,5I4pw5I4V5I4 ?N5I4 5I4=5I4Go5I4 u5I4 !S5I4 %S5I4 & 5I4 5I4  5I4 ^85I43W5I4 5I4 /5I4 5I4/5I4 f5I4 `P5I4 `U5I4 5I4 1R5I4J5I4 (5I4E5I4 ^5I4 z5I4G_5I45I4 Y5I4 ""5I4 5I4 5I4 N5I45I4 4Q,5I4 85I4 5I4z55I4 &5I4 R5I4 >15I4 3 u5I4Wo5I4 l?5I4-5I4 I(D5I4 ki5I4#x5I4 )5I4 E5I4 3U5I4 5I45I4?5I4 W5I45I4 5I4I5I4 5I4 SD5I4 b75I4 K=5I4 a]5I4c5I4.5I4/5I4_5I4Op5I4 5I4h5I4iG5I4 R5I4 l5I4 15I4 j5I4 875I4 b8<5I4 c5I4 5I4 K'5I4 5I4Q5I4 Q5I4 +5I4 5I4 #5I4 e 5I4q#5I4O5I4 E5I4 O5I4 ]=5I4 95I4 :۷5I4^@5I4 :(5I4 S!5I4p5I4Ye5I4 ;J5I4Yh5I4 5I4 #5I4 I\5I4:Z5I4 <5I4^5I4+5I45I4K5I4M5I4 ;(5I4(5I45I4 H_5I4Q5I4 a*5I4 5I435I45I4+5f5I45I4FN5I4 >5I475I4 T5I4 5I4M5I4 !Y5I45I4 5I44"5I4 "5I4 ;5I4;5I4;5I445I4TN5I4 65I475I4ߺ5I4 5I45I4|85I4 &5I4-Q5I4 :5I4 l5I4 =o5I4%5I4 l5I4G5I4 -5I4@5I4 G75I4 >)+5I4c$5I4 /5I4W5I4 F5I4 [`5I4&a5I4 5I4O\5I4 5I45I4[5I4 )b5I4 4c5I4 5L,5I45I4e^5I4 j5I4s5I4d5I4 M5I4 pѶ5I45I4 5I4 H5I4 !5I4C5I475I4a~5I4B}5I4 & C5I4 ԰5I4 5I4 5I4 7L5I4 4 5I4 U5I4 B5I4y5I4 O?5I4G5I4 7f5I4 &5I4 /=5I45I4 ZȠ5I45I4 /5I4 4:5I4 j5I4<95I4 Z5I4 a5I4 $5I4G5I4 J45I4s5I4 &p5I4 bȈ5I4 ȋ5I4 5I4 ^5I4$.k5I4 kС5I4t5I4 8?5I4 ug5I4 =5I425I4 5I4 S,5I45I4 ]]5I45I45I4.W5I4 15I4 /5I4 C`5I4I;5I4uI<5I4v5I4 1q5I4 $5I4 q5I4 PJ5I4 5I4"85I4@5I4L5I4 ;5I4  5I4 <5I4 5I4 U%b5I4 s5I4 v5I45I4>_5I4&5I4 ,5I4W5I4 5I4+5I4~5I4 i 5I4 C35I4 >M5I4 5I4&5I4D5I4 -85I4 `?5I4 9?5I4 :F5I4~5I45I4 n5I4 pқ5I4H\5I4`5I4+5I4 P5I4 D5I4 D5I4 -$5I435I4~C5I4 5"5I4 5I45I4`5I4 5I4PA5I4s 5I4 5I4bP5I4 VKe5I4m5I4 5I4 55I4<;5I4 ݰ5I4 5I4 H$;5I4N5I4 X5I4f65I4 ػ5I4 E[5I45I4 W5I4 >5I4  5I4 t5I4 5I4CX5I4 "5I4 1 5I4;5I4\A5I45I4!5I4"5I4 ,5I495I45I4 T5I4^T5I4Y5I435I4 *f5I4 *h5I4 ~5I405I4 m5I45I4 ,5I4 2[5I4 5I4_5I4 a5I4 F5I4 55I4'15I4 5I4 5I4LK5I4c5I4 5I4 d35I4 5I4(<5I49 5I4 C 5I4 D5I4b5I4l5I4 5I4 5I4 5I4 R"5I4"5I4)n5I4 -5I4 &$5I4 IV5I4 5I4 5I4 5I45I4 ^5I4F5I4 *5I4 a5I4 J5I45I4;5I4 \5I4 5I4 5I4 E5I44k5I45I4 e5I45I4075I4 5I45I4 Q5I4  5I4 )5I4S5I4 5I4I5I4 #5I4 eM5I4 Ŗ5I4 85I4 ;5I4 5I4 ޱ5I4,޲5I4-:5I4Ox5I4 sQ5I4 !5I4 5I4 AF5I4 5I4 Z5I45I4 f%5I4875I4y5I4 x5I4 ,5I4 G5I4 aX5I4 [X5I4 \5I45I4 Z5I4 [A05I4!05I4`5I4 35I4B5I4 oI5I4 8T5I4 |n5I4 f5I4 G5I45%5I4 =`5I4 ]5I4 5I4-5I4  5I4 M5I4ۼ5I4 L5I4 _L5I4 `S15I4j5I4n5I4#5I4T5I4 .5I4u05I4v85I4 >5I425I4 '$5I4 s25I45I4 15I4r5I4 )(5I4 S5I4 5I4e5I4 5I4W5I4If5I4Rʾ5I4 5I4 \A5I4n;5I4Z5I4 +5I45I4;25I4D25I4E25I4F5I4 ^5I4]F5I4 5I4 5^5I4 k5I4 05I4 t5I4 vQ5I4 Q5I4 5I45I4%5I4S5I4 ^5J5I4eg5I4U05I4Q߰5I4ߴ5I45I4 5I4 5I4 V5I4ڇ5I4lQ5I4x5I4 e,5I45I4 +5I4 ,5I4X5I4 5I45I4ko5I4 >5I4 E/5I4 c5I4 uɖ5I4 +5I4 $` 5I4 a5I4 1c5I4 2H5I4hH5I4i?5I45I4 ,35I4 HX5I4\5I4 \5I4 Կ5I4:b-5I4 @Et5I4 }5I45I4 5I4 -5I4 #Ѭ5I4 2_5I45I4 ]5I45I4 5I4 55I4 9 5I4 j5I4 %45I4 Rq5I4 RI5I45I4 #95I4 Q55I4O75I4 e5I47 5I45I4 q&u5I4&y5I45I4 85I4 y5I4 ?z5I4 Aò5I4 5I4 X:5I4 @5I4 #"5I4 B5I4$5I4  5I4:5I4U5I4 g5I4 ,5I4 =5I4>`5I4 5I45I4X5I4g5I4 Si5I4 T@5I4 )5I4%5I4 !(5I4 "5I4Z5I4X5I4 5I45I4c^5I4 5I4 GL5I4 y|5I4 5I4 @5I435I4 9z5I4 o85I4  N5I4ִ5I4>5I4 5I4%X5I4 5I4 5I4 >Y5I4)5I4  5I4 qW5I4  55I4 5I45I4o5I4)U5I4 >>5I45I45I4a5I45I4 F5I4 )5I4E5I4H5I415I4 .Ku5I4Z]5I4 OY5I4 85I4 .5I4 LH5I4|H5I4}5I4 5I4 %15I4 n!5I45I4 K5I4 Lĩ5I4 P%5I4 8L5I48O5I4L5I4c5I4 f5I4(5I4SR5I4 5I4 Y5I4*n5I4T5I45I4 EC5I4';5I4 i5I45I4F5I4J25I4 K5I4 ,5I4Y55I4Z_5I4 5I4  5I42285I4Ã5I4È5I4'5I4 5I4 5I4 ~:g5I4 5I45I4 $5I4#5I4 5I4 V5I4 &?95I4q5I4 R5I4 R5I4 5I4 B:W5I4g5I4 "5I4 d5I4 ;5I4Z5I4 5I4 Oc5I45I4 5I4 D5I4 D5I4 D5I4 A5I4 5I4 '5I4 /5I4 t/5I4 uV5I4 5I41=5I4 5I4 ]5I4 ]5I4 E5I4 4[5I455I4 S5I4 D5I45I4`45I4J5I4 5I4 O5I475I4 ٴ5I4 5I4 LD5I4 4Q5I45I4 55I455I45I4 '5I4 5I4WY5I445I4 Y5I4:5I4 <5I4 @5I4 5I4>5I405I4 &5I4 W?5I4 5I4;]5I4RC5I4 G5I4 X5I4-5I4 A5I4 Di5I4m5I4 x5I4 /,5I4  5I45I4 3@5I4]5I4 5F5I4 .|5I445I4|Y5I45I4 XQ5I4\5I4H5I4O5I4O5I4b5I4  5I4 5I4"W5I4 m ~5I4.@5I4 |'5I4 %5I4 $75I4N5I4>5I4 c*5I4 W5I4@5I4 `5I45I4 #5I4@5I4J*75I4 @5I4u5I4 ǀ5I4 *5I4 W5I4 f=5I4 A5I4  5I4j05I4G5I4 5I4 -P5I4 35I4 @5I4]5I4 i5I45I4 F5I4@a5I4hf5I4i15I435I4ү5I4 5I4 5I4 $d5I4 f5I4 Pn5I4 5I4ړ5I4 #5I4 5I4 ;M5I4_ 5I4 565I4 575I4 5I45I4ƃ5I4 5I4 J5I45I4>5I4>5I4Q5I4 ɡ5I45I4 ;5I4 ;5I4 5I4 OX5I45I45I4 V5I4R>5I4'o5I4 6)5I4 5I4 rB5I4 C5I4 *C5I4 + 5I4 U5I4b5I4L5I4T5I4 dn5I4 dѣ5I4H5I4[5I4 }O@5I4 ai5I4 5I4 Y!5I4 b5I4Rh5I4 i5I4M5I4  i5I4 6<55I4 <75I4 5I4$5I4lO'5I4  5I45I4 5I4!5I4 _5I4 X5I4  V5I4 A5I4 B5I4 + 5I435I4 =5I4 L[5I45I4 85I4 &Z5I4'U5I4<x5I4 5I4 }5I4Љ5I4 O5I45I4 35I4 ?Z5I4 5I4 `x5I4 I=5I4 1l5I4[5I4 a5I45I4 +C5I4{J5I4`]5I4 vI#5I47I%5I485I4 1V5I4 x1W5I4 y75I4 a5I4 5I4Q 5I4 —5I4 J5I45I49p5I49r5I4cF5I4 5z5I4 <5I4 5I4O5I4  5I4[ 5I4\5I4t"5I4 5I45I4 _:5I4#5I4 U5I4 ͧ5I4r5I45I4 5I4Y5I4 Z5I4 5I4 5I4a5I4`5I4 AI5I4+p5I4 +r5I4 {5I4w5I4 5I4Kg5I4 D5I4*5I4 ]5I4 dՙ5I4 l5I4TL5I4 55I4_>5I4T5I4 5I4ع5I4 ؼ5I4 '5I45I4 5I4 5I4 5I4 -c5I4 Y5I4C5I4  5I4g45I4 5I4 E5I4 F=/5I49z5I4 {P5I4 8G5I4 5I45I4L5I45I4Y5I4#5I4 T5I4 v5I4 ǻ5I45I4+5I4 }5I4V[5I4 #5I4 E95I4 <5I4 P5I4 5I4 5I4 5I4 b5I4 c5I4 dH~5I4 p05I4 >5I4 5I4 [5I4d5I4 xaF5I4 +5I4 J.5I4d+5I4 5I4 5I4ϼ5I4z95I4 Nt5I4^/5I4 5I45I4 d5I4 +h5I4 ,i5I4 -%5I4 v(5I4 w735I4g5I4k5I4 ;5I485I4 R&5I45I4.d5I4 h5I4D5I4 5I4 2 -5I4S5I4W!5I4 "5I4 N5I4  5I45I4 D 5I4m5I4b5I4e5I4:B5I4 5I4 5I4 $5I4 5I4 5I4<45I4 85I4 5I4 O5I4^?5I41*5I41.5I45I4 a5I4 5I4,_5I4D\5I45I4 ։5I4xX5I4<5I4 55I4 `"5I4 gH5I41H5I425I4:Ov5I4 5I4 s5I4 ٢5I4 E!5I45I4 [5I45I4 k$5I4 275I4 z K5I4 NK5I4  S5I4WN5I4 F5I4 L5I4 %A,5I4 T$5I4 l5I4 5I4 U5I4a5I4,5I4 W95I4]5I4 ~5I4MG5I45I4 5I4 5I4 P5I4W5I45I4 ,5I4]{5I45I4 Ц5I4 5I4 f5I4 `5I4 z5I4%Q5I4 {95I4N5I4  n5I4 Y5I4  5I4 5I4 Ǎ5I4 h 5I45I4 5I4  5I4 '5I4 I'5I4 J!5I4 ۔5I4W@5I4p;*5I4! 5I4"95I415I4 q5I4 r5I4 95I4 D5I4 (5I4 W5I4 ?5I4 O^5I4h5I4 HY65I4*"5I4 `&5I4 +5I465I4D5I4b5I4 5I4y5I4t_m5I4eh5I4PH/5I4 5I4 5I4 =5I4 @5I4  K5I435I4 35I4 P5I4E5I4v5I4 5I4XN5I4 {5I4f5I45I4 U5I4 U5I4 5I4 9ߝ5I4 *5I4 w65I4'5I4@w5I4 ĸ5I4 5I4 0Y5I4 ^5I4 ݽ5I4B 5I4B 5I4B 5I4a5I4 65I45I4 nC5I45I4\5I4 t5I4 {5I4 X 5I4 G5I4 MY5I4Y5I4y5I4{5I475I4#c5I4C5I45I4 :5I4 ;5I4 <EY5I4M5I45I4 5I4 5I4 ;5I45I4 5I4 e5I4.Q~Z]?=0 (u*]"MRz'*v1!& 9-DVO$3V^ 2( .zŦSaPw#p*50V.Q)1J05)7G$X "/$2B5#3P b#\*I 7)d$ ` 3x3f2P#z+3U.2Z5c>-[+-1*Q)=NK&%K2]FB*kD{3F{)c]`3F/`:?,{N)`)c`{:v`V VV(VV"S"SV{V(V {/')%hxVdx&h. %$I, K#3 ;v"'`&&515 #B#7i#`&%*-{3S2W3"Fx "1ETx3^{G01L33\w?3"yUpZ3hyosR3 {[3Pu ^;<g3t_T$k3ydKG33t)&63y18<%37AxZ%vM3 y?@0|7 33tVx0<.ū3F[wSXRD33`vK-VAHS3aw1&Pě32_yQGEa33Hlx|g-9SƠ3d}(x(D$33pVt+>43,x|3ZzO3~x7^]<:ɯ3bLu5Nq7334z|0nV3vr4'xuN33=ny5!%G33:wG$]6C 3x&Ad=t3SGu #~SW3THv' W33uw]@?n35w2 FS33 xZQS33xvh$MsI3>,y14"(:;q3hxw*z@pv3 {J 33Sv5 uV3f%{5zHW]3@{1Z!C=M33w.%+UF3vaYݘ30zQ3ofusf833Ou~AfiC33iz4733%y&AiV\3ypy933PuhV33]z"A$3vV?B33SEvDz= 3W5QyL10>O33]tM{2EwU3<xp4kO)3{yfO=3Uwr@?q(3jw Li3Iw&zy#783Jt nO`3Ey|o,I5I3Sm"xUS733|`gu&7Z73gyD.SE 33H2&z!#<Y"3lwz]3{lB):qKe3"38t{cS3Zws `\3VzpWX33cv,9F:53w" 833v =T_3Ly'iK935x*"EN*3<t24B3_j&z 1Cs3 w- Q_ 3e{(d?33w288[3i"{I33;^uY6Y3Mt_r&nR3]{Z934?z."G3fy=3vw"1fYۣ3 vd03>2H3@uV-p#F33 x3G T)3~vD3R{spO33'sxFp6P3z!6y38Rx3E2S3WtS3P33Vy Z7P3uY33uF2O33{Vl7E3FXu3~YN]3x&bGM33w+[X3yiJ]33]$x"1;3ynP 3/)xA33z(%Je33\vWv3d]t;33@t$]#Z[3MtDbMX3:6t41v7m33bVu0)-;3tucUA@X33ZHu+5@3 u\,O`33=vy3eV3KI'z^*O 3bOtt_'l46.33"u[6[3yPn2?nX23&`yS*K33Pz "M38z%"1Xo3By8U93t?Z/B33{! ?;Zo3vpyR433uF{Yx3;{wgj1:~39u%=pȳ3Dzp1PO 33{fuU-%293vvaz"(!D433iMu.I|=3Whu*K3Xiud9NxMt,3}zm6383zG, H33yu]!^Kߟ3Uz`eX=&35w2ZL)3Q_w-o7S 33uzL.{bK3axT28~3%xzCb334x1SS33qv'05@3$w PU33oz G+HW3IwL9_3Jy{P* Iz335[uVk4[^3cuHO0F33XLyz+Uy/E3*,BzS'+S33uj"RC<+3@\avhU3.Su[@B3lx(@!oC33x89*R{3*\t' 63~v: G33tu_W*3Ayy B33xt$d7ކ3{*2i=W)33Ix+;&ȹ3zyX3/=633t+Uv@;3_x K-DF?3 rDt#H33tOuac<[j3Ex!TMDBj30y''GIG3iXt,2P33awIX33 y 2O33F'u:Q&*7#3BeyA.L3}t$}S3Bz;.=d73L{kZq=3gxq),;,33y\,R|3/v$|irS3!_ux2P1HFh3 tQ'j=334xt"A33 {2/2A 35uJ|'U133pz,E?3dzJ2 HVQ33Bxo`.Z@T33Vx.R5?[33:E{*:2q(U\}۰3{cudA43}t0  M33kwXt/#9;3@wDT33;w3 U33Vz~Q^B33w2$6%63u,EEZ3!pUxOyvJP&3;Zzn&R3BuW0JK`3)xAP:U3?zW733B{J?{X3yy&#C"33R8uL6V? 33nzQ2> 33O9td-ZA?3qzaHN338y|D<3 4v %8=r33fx$|;7~̏3z]111O33FAyvs' J33xu#;P3F>tj,oW3JwH!4V33Btc1uVg0xzB'VC33)PvC!PL3LkvKLJUW3 z b S^33 u#T33:yf\Wh3; y#u[A`3}zu1X-\33e}x'8 B%3iv'):~EKʆ3 z91\H637v: CX38{(R@<I3IR v,9?93]y-m';33-x\F3t}TK33GzB,a=3;5uk73t":OP*3E^u% ze:3Vpv oM33x/`+[V3C{5U36DU{Sq+:Q*33BLuu'cD3=:wy#qS3`SuyK 3gwEO33Yq{I\Y333mx+WN"3tC93I'K3Yy&s{[N3uQ]{hO,3u dK33,|lwDP33H#v-H(R6Y33cz'>NM33{/*B@3zy$F33vI-&= 33S3{F 8}3p`WtywGɆ39y8!;33jSu,\N330{~zicZ31{A!G33Px[vf"';O3HJw%YJ33JLzj]q\puAz:)OQ33jJu6M336uZ3i<f<vuwH835x';PVQ43]v8Q33zexV-I>T3:{:VЕ3 @'xGJ3,x.#<N3mx.7(6q3hpybk6)33.6w(aUC337&x|`QlG3vW$iu>DL3*u%%^IG(d34dvz3!~D33_x!xV63 x_2cD}33>}vY(KH3,/ywO>3qx!?E3yM- '=3r{*=v f3)tc!WjU3zXWp33vyLP3zq)B33A={_,Ys33`xG1k'Q3;+6t0UDP31l_u^$EO}3wuiJ33 wMUxA\33,0{Z+(=3anzZ3zW33Qy!2[63:]~uY33Ax[#I33Mz*t>N3p9x(OD3z gMF\93w<oWc3 +y$zD@33nwhnK3"u2\ ;MU(38gvzR33wyhVU]3,EyEH[#3Yz T3Zz8"o633 z#B=3N$ye-\33z41HjGZg3@vt8)=#3Xvy+SC33YwtpUI{3yEkA@Q"3U[w>933t%u>@3(~ u#^'=`3{-&*uQ,܌3eXu],)0\l3vr5xU&AJO3O;xq! ] 33tR /~Z3$z(sW36~vtz4TE3G9Sx!3rN3Ua{|[WA33Gt,_{M3uzL33lx/ TF3/{2833V{%CR3wyx/v}X.343=x*93_`w[% 733,:x$=:33huO1H$M3gu/hV?DIn{sH8C33Hq{@<PxPV3*}T{KB%.A7}3oDw Y&5A33QxKNX3?,~w [ 33gx'!W*3cx/ Tg33z)63>%t?MNXc33MMzN8k3bL\v[nSI3x%UD3jSy!6f3x.:g3 w" DkΩ3tw|-[o3jw@H33[x=Fz(Fe33 x&C*S33 w]/kp;33A2u*&J%33ya((\3Kv_4 7:33/vEm)ME<B*93=ti*tN(33Ly.[$f1S,3u.d'xF3J dxkT38Rvy  ,q!Y`^3^v8,}K33xup%H]P)3zpn ]N3|QyP!Hv33akHvP,FN3.OwJ@3g"uuT934ur1S33SvW.B(3=vNW7,Ƕ3cy^U^3by, F33zX'@-33uA!3J3z?/>M&3{5N5}CH33jhz+ o63zZtr%-1O\33Pw|Z>33t SH33Pays8?3?'y%)9WT31|zKyeL33^`w`"<Tcn3dx,r[3tx)m"!Q33-OrzN/CL<33Ow`qYS33Ev?3um {OB3PwO!=3\nzjd#C3mx0/;3-u;&;Rw3=\yT93c?L38{>l*}cCP3t!St3}Tu*n :3-xb6$3 P{^)( X33Zvy0s<f@3H)u/fS$3DxbY33ftb,KX73>Vw(xRK33]w$O='e3)Zul+]N43SyeJ33wu+M33v 1Z833"xyG.aYV3&+v-l@iG]3Nw)_T315t$UY@3mGt t$E[&333mNth)L33Lv# 6Lj3w$E33zgx=("LK33*tcBW3\\{dM r8J3()HxR! JT)3Jz'pE/33$sHv-+-v:39t16b33Gt>u$HH3 fy$?`3I{h&B3t5J33zf"oY33{xJ(r<338^ze{oT\5c3z$0 06h3;Sv6b3z  [T3x\z9R?3*N{<K,m@337z%%-IP3S u%KG33Uu}A%iT:33y6o'z9ي3 otL;uUi33NDzGQ[8?m3yV 3T9x1I;39)uMV#3F{D&Q32 w"0iT3d}{(1H3tW5sPE33]z&9IW*3 7v_\zy;E3r=NtK2sQؾ3u,E ?3<u'd?EL3euu'Y|3@vR E3[uT%V@38O+xj?aGqT3 /wW\3-v$A 3Cv=.Sb9`_3Ix0||Ow33tm-tRJ4ʥ3b%z91?">D|@3{fnS̨3Ix;2"SHZ3 dWu-IE :3=y+e-7VY33iv2a1U3d{2b\q3(w (8H63I`v%)M3Y533ktV)`R]3/$x>.C3vU<33{w/QG.3R;{X|A33u2iQ3C tfnz^n=33~wQD:33R0{In.W#U3(JuR1su;33>v +(ALE3{\(ROT3;zv9:39 w+~K33 Z&zzoF33~v;832tn+*>zDS3<v6?$e8o338{3J.3EAx62Z33lvUQ58(338t#ofJV3oYz\3\-w/'nw|L3z3-2CN3stcVo3^{63Yzf& UW3cRw&M;qG3@z\E3,T{mtpOS33-=t~, M33 v*]F3bzP0|cB33xXy9vG933ZHu:5 ;53[Iw,"7Y~33{Lv(nF\p3Fu0}P@3=)NK%gK,K"XK'%K(69K^ZK =K0KK/KcK0_KUKzKK1EK`KEoK {W'!Z1s; J)3?&0&0#"0D0r0)0j0,0!0 &'&m"B., &$dv.' C0c)$<#qR3,(ѻ7*&L0&#")o,1E(7"K2D VNݳ$k1>W2`50`E/՜0ax% S+K*bF(.2&\ =#. H<-'O{#S%D)?'#% *!PK]}&߿ E >"!&AO["/&F;- )XQ^A 'Z 1YR0LF%?>/x->d1`0":(O!C`oָi:WP3< m%[,$?7 K >G*Xf,@ 3M <^Sb\;%&93U*F$j5r >{EL&gċ)0 ;F1VC 62; ]' ""P<7>ۺAL~.b/%]}*b $ANPU ^$'W?ܦ'h:<'8"40L(Ip^6+662O6 6`6!c6! pU6po:pL6](6`p6$G6Wp9!p2Hp6ppDU6Ŕpmc6php$ pZ6pp"6mTpo_86p'ߘ|׍$7+!%?o+ww'N8DيD1]'_,{&%-"aP+J!B&"'W3X?^,"/q#sW1KN4MT$cw2̆"V  "V1-8#K *2w3#AQG* %K XC$+P -!5s o^ n- n'8] /^G9a a\ 7T^ 5S+ /)[Z5m'5]" J:CH` B0*5=+'&&B 7_.E '.$~ -!4 %+0Q0 )^4-^4 j 5&&B4%27Cc5Zn7!5<"  ['D5-11 5y. )K^ x0P58&.^ *^ 2k40T5 0A3 f *,56^ 1* 62m5(z (W75- T1^ 1F.9/12 75+^83G( U+].43^421F. 2 j t9F^5U2^8oC -5#-N45-R 5% .` 2  -4,^ q(' $k% -{415^&&(4(1k56G^4w()5o 5,^ (50"+5(.4.'. 3-,F { 2 M; /^ ).JH >1 N k*& 1/^^4B. |9"+52U5<l;5x 0v556*^5g3)[Z45. t nX.- {,WG ;+8HK1B45I.t n0'8 2(3(  5Jo/ " -z ^!*-I JoA$ K3r2/ )U46Q^ qn l8246S56+4 "+50A a> -aE5)  %2^ :2a45-/F4534 ^ -`^42^4048 '-5c5lj2p4<0Y5K'0^  6Z5,7^5R90>1y aS4"-5H$l^ t"1 1u^50$m^56^ *_225n`aB k!4 v5< '/ $q+ "2 k5Q)[Z9  )[43V^ -\2s.+ .^5-1F. -w$^ $0 .9.+)5M'^ BzN x,) 3^44A^5V8}^ %"^ %^5jl5 ob #)[Z4n1+i!4/%3pU-j' 65I'T4G45+5%n/ 6^ $`^40/^ +L&&B5T65rn^ *a8 !^:8@^ &() "2}4:XS57 'b  72`'d#) "^+v T7>+Q i4_n+t-55:^  2462 z5.c5cn@EL:'4^5H4n.a5 . x)%5v// (n& 4S4* $ 245N^ j 53:^x\K44S )q 41d'i4O^ y/^ 4!/f(:T -&&B4)&&B4")*a]9&E56#U47^4*J A65 7"+5Ii$'w5+SS5, 1 ^5 &o 00/ 256)0 j, z2]^ 8e0 ]. .^ #*--52579} "D54%$2=5+) ^x$^ -l"+49 .+  "_+U!` #)4 :.\.a5 :b &*& ^5 &&B aS35"2Q1+^f5o'0V 2*2A)0T46^ $92 l4'R^5#^4n256^ SB$aH40^^!`42P5Z(t[ $'D4K.421c Q+,." `0X$ )O w(9s^ nlC,f 1n >  84/. g10L5l*v5J*O 5E n+.#!k2 n' /s* 4S5&&&B &^35T574^:2/ n!`  7.c4np*O  5z 4of^ (^ nX1? HZ4-^4#3$J5:2 !%)[Z4-^ |25^5 k  K2O2X 82Y0) T%54 0N^00[44h&&B4!-^5[$"42 8 n ([ F'?^B3L $X4S5E$s.41^ -4'U^5:6^57 *"-5 6 "),N5(O15h2%'5w+/^ 16%'40  14v^4k^4+?C qo`? q!I xh5d%^5J2f-R ! L&< 0 4"+4**O 6",5/%2~ #r^ )  )|4#&E4v5ro8) n+7^ 5qne5c" 5sw,z5 *.# g 4) q 13'i 3! 5[5Io.  3 J-a85</~&&B n$ 65)i-R 9f^1  x2@0T4nr 2A2dPS55S4kS5 (,4:"<f 0 q"25#;^'.{ 97+ .S44S[5qn.aQ >6)^ '1H5e!'*!5R1f  5j -y^ **L)[Z4.3 b ," n22S 8 OW4+' U1? F*6 [5` N2s ++k'i 5 *4 '}56r4(^55^ k2 5y".5E5. n 5:"Z2 j0 C5h ! ~ A56#aX "2 %-^ n 7 [4a: ){ W4 ^)<5y)gq40^ 7-5 03p5@#^ 415&#S4J4)^ g%{62 -$G59#^4+* 1+m^ '-L4p,50t[ )^ 30]5%55~& 5)X ,H^oJ/ v[44/oaW $5'J^ #2U4l!' 0o+aV "0F5,8^5/^4na:51J 1*C5J.^4%a^ +25T! 0 uh5Ln4 #-4^ {#2l  m^4A J=5B$4-^ v5Z%\]//4ha5n8 *^ S4,0 .&&B 7K^ J2152S !b7$ 9^4(^ 5i4S5/5H^B7/F579] 5J&0 .5 0 P&S5T*aS /s^ nK5 |S Ln^%\i o.# l $aN+A4,^ $2 (-24#$ 412645 p9M fo -R.$"q( 175%9&^2^ V(,5e'T2 9  0Z t[ 23)^ -~45]-24.^ u9T^ 9) /^4.{A O657X^5`o>!4 S245W&&B4'^5O#h[ 7[ 1c4- 8=.aF v0^&5:M^ !2475 $4J^50,/ /5,!^ v5EL%4n,'V 3^ 24 a\  "4"A3p2T,'l nE5)pUa@ iCa4%C #/( *]^5/^ ()[Z%u :`^ n} a\ L5n S539U4!"O4c[aT o2h z4.aF HJ n+>d 3,$4G  1:Z 8!aP 4Q4#g. #^1 247H3*95N&-aE5"5^U &^5K(6)[Z4-S5(4!^ S52'&&B4l"w  x0^ n2a<5# ,5!r40^+&&B405:$@53i-75 ^4-?5T'455#. ='n4#^5c5an  6f5%0-&&B4(0]452!#'i $^  75e,^5 %W^ J5yn4 naY K$5(-4-a5/-5waX5 2&&B4$/^5*n|0/5Z(5 "^ %a50 2 32^5#!^ S-5t!/ -^5 $4^ P4`Ua@ 01F!2 J.  5?&4/ '2a244H !34.-z n. a> ''4I :s5'1( , /^5Xn ) ?g53C ! ,+- ),' n5"24Z'5H'2# +1   1 .5y)P"k fE4*h, )o HZ 04. /^ M:^ +,e z-X m64*^5|I14&15+ OW5:(%''5w Y'D5|4^ v/^" " 1*?4)h"5B' 2c5(o'2#@ 2$^4/5Md#59l^ +-4,s^5^&4aK 0C5%  3O425!(^P.25 $ -4.qd5[#"$ %35X5H_5Z!IaA n* {n\  i"^-656 4nq!'roD5*^42  !x 2Q-u3"+4\ 5S=5]415a#^ 3^5-4255W3p14!5D25l7^4-[4/v0]65</ye4%%0Y5 4'8 6^ +O %D5bX.5yN5Z&^5Q$5e8,^5vn} +oaP!55Z^ ')[Z4&]/ h ".` D6 -9 Sy.aO 53[562Y^ "5q"s'5M*d"+5| "$$%|^ ony+>dOS [41^ w;5 4_-aE {34%25X1BQ4'4(&5n.aQ a-R52^ Lk^50]4l(I K(^ D'^50&&B n= 4 )[Z48&&B4&&E5I#T 2u ;'^ '9 <9  ^599^B213L 3M75E 0&E41M#5, 566'4:T0/ :h^5 T'"+5I0 505l*"n &5. /A, r1q!`x2Ea[ o(,%^ p"FD5M94 5 *05tp56o+ 34&S46.X,d^ g6h#82T ol% )8+5 4$7^ (xS5r*V^ L&O15+-?46x^  5)( 2>85.^ I 8. 5Z)N. ' Y?5]*n^ T2^9^5"&E5I w41^54=35I4*1F. $G\8<+ %30 ^46[-^ z%i^5gn0Y15i LS fP4l!s,4 E&"+4.5/5@4 57!p^ ;St5B%<. = [4'/X4(^x<=5 581 8U^ @41^ 0( %5g.[5I H1F. )^4d.DS4)+Q e"^49^07W(Z41 O2  +2^0]5M ' v5* nE 7<^ 7c&\ U#^5.7+U &$ \/^+$^4-"`n  9^ ,&i5n+ ! K4.*f5,0.+5  6-!5:"+44t^ 8h-5`"27Q4.y4nia5co,8 :.B5y4  n[4o4 2 3pV45*^ 5B,R^5^6j^ 6k4%,xS5,^4+ :C*_4),' $X^(%= O5B*04 ( 546^+2 :, ,5"O/M5?65.^ ^4.! #6%k %<]5/j Up1 +T(` aY5224%nh' q-M4$^5$^59ia40K /J4(_*&,F 8[5I1T 96nEL:0T47^ i(S+ ,,' n 7 =S34'2a;56P^5o5e6R5*Y\5],^ 4c^4,^ -4o_ a3 !#) $B&&B42Y1 2Z0 T6c oS38&&B6"+4S45h5"^4n%'> H%35}B<85hn~27)[Z ?$~5Zn/:5K9^  0 'Q^5-(5f.5|+^5[".`Cnt*Y 19 a> % m$41-RQ742V)[Z4&x 0Y157#(^5 3  F2U40d^4+i257(*?5a7% $Cn/oaW #^ 7C[5FD6*55*%  + i915.{ .^ o}.]X4dH4y247^ &.5^.G )b^5o^E 'B!`3 /eaD 53 ='\&&B ']. l0V ,& B8b .47 33 5]0 B>4(1^5J,48.14- 5M34aa: :.aO 4YC -44(0 N64#85 r3 ck59Y42P0]5*#5`&S 0 p*5lS'a7 0y5%!!^ 7"+47S4-OU45Mj2 @ tz-aE2- -4#g 5BB%\u55C2j n?m ':^ ~%5,'". 56^44 j>05y H44I4 53 K  (&^ ^0:^4,d5 a-\4!.5E+1Fb Ad4l ^ 9v1M ;:aC G0q^ .IW) 4&o [$^+& ,s 4$5,l`P =&^ z,'V 7 "y1c4nd.aF &3. .^ ]iBo5 ,k5. l56A5%3 42<5l9- ojq4$k/0~ {.5Z2;^ %6a56&..# 0? '!` :/5W! ^  k$\5'T^ 1BG5*^ 4^[5I&,4 5e  L.l-~2p5K %2 #e+Q S$[5I7O^4$2 5C:eh"5Q2J2 :,^#43^ `0~)[Z4* !#:4k 8 &0Y 4//5T)^5&1 ?5aP 9/i.aO,S^4nx8 ,'i53^53// ( f)^ "_4(-)[Z4 .J :a^ $3 ,2" #gk1h5e1^4%E&&B4,-NI5Z1B:4n^ $nR5x5!<&"I^5Y9J^4)Z /^5io:25ly'i ', :2/ q44,Y,'l b!2 {)^4"'850O^425Z-O4 4o{-! " ^ n='a7 n$aH4+^42^4q g .8^4.9.4./ '%'>&'^ 2.B44 )$ 5V&/&&B4"|^ "h&&B5T225382` C5+[^ q+\ :5*P)4.W4:^  %\i '" &9M  r? 7U4n!aU S ~.+4kV1B5 ,'i -59 Q**?4fS5a "&&B4:A ]*^* %I^5Oo04.+s<d5-'S\.4*^5#o<!aUd# -?592-55<} $&E4:F'n5o:.2_5J2 45R2t5"*%^5mq Yi&@,y. n/ {h!-4oi/95e%^ *)35I 4-2 )J4k boH.+s ,"O4,72 15ep15eH% n)$aG4$- r4%+ ?8pW7  ^. * *+^ p'y[$--z L11 5}24,"{5O!+^n2a442U~) O2` C*^ *t^5g7f0 3#2 &:K&&B5ay5 q # r+5n2aC 7,1T }9MC #  !aP! 11. 44 m4%^ D)HR^+.n5 ,a^:U2q45 535V1(&5S/:- 52l x%fY4%'a7 )o *7^ 4(+Q J6&E  &E Za: ,1F. & .b- p7/R450  ^4). +&\G&R[5IS 20]B4#2 526@ ($K5<l* :6s0M  "+Q^ v%2 5An[+&^ 6N )^5\3" -[5I5b+P /& w-59^ $o5H"R64-P4j^ 130* S%5(^ 8 24E'34.1F .^ R25l%2w 143(1580215e'"D P$aG49=^ +^4:A 5( 4",' |5#3p4n! ou rU5T"-NI43^ ?(4J-z >8^ 1)5u,U^ %31F. ,B43- &2 1^ &!r5+5S!s^ 1$5%*;^ #/^# - ,4>5q%4&[0F b!i[5*V5j/,447 OW4- h5d(Q 4 5<. 5,&7^ S+45y%!` D!0HW  = z5T+^/" E%22< r8"5O."+5%(/ 2'+>d T4)$ "A <&^ ,M& lia ")5!^O#^ |)'&1 5 X %{/-@4%.d -&.^ _n' j4. -45 0Y/ -u %nt[ )"+491  41 U+c^/^ x(5$HJ$25B5B%)[Z4 k # ! -( u8Hn j^ n+ 64")[Z5S#4"b48)H`W/I^5""k 7< 2I"+4-425l)35I( 2/nEEa[ : '[ (:. -[^ "e'46W63 i #Z & 4ne%%t^ zkf $g  0T5<-J-5w.H G1^ 2 1*-z47a-?49^ nTaI nEL @o$ 7^ &I15R/ + z&Z4C48s ;HZ 6w'5525"&\5e"m^4:I <'\u4'' Kl'^r57)^ KkH ~ $+ HK 5~% %0Ya J$aN4:(Xna/, 6 nD5N#)&&B4" ,W.k! $5Z3O ` U$%5< P5oe,5!2.+s (lUH /^ o?.n z4/56!3p1 -5,% n0V )+y^ %}822 , S k^4([aT /2R _/`P7^ es5B%^ -n a> ._U4nHJ &4iSH5*0 3~ 3z1c5ee5R02`/b1 45\(-5 ^5K$y4 7R[ /0Q (!S+ 5^ *%42^5Cni "^5n5yHM5$} $U)[Z45v54: y4)> in$aN4+&' n 4y /6Z4+ - 9159&E4n- 5h^ 8W&o0(^91F. & V0!&.%"]5* k)^ r24$v^&5SUaR 1+V^440%'> 8 S^43H_5G,^ {5yH} *IaA .0Y1 %5&]^ o *a8 /|5n!I`,^ @2N5l0^5N"^(- Q-u$5`7 &&B4kj0Y & ( T%^ /X^4,,0^5{6^52^4S49^4S4&.aQ0^&^5gn#0Ya5 &^ %!^ (| 1(I "5B1 U7^ f*20(-l5Mn4jl i b$g.{ (G5b8 (-4 "b46C *- *1? 5 OW45^5[04S+ w 5^5+.5c4e2C4.W$ #I1BG /z 3^$k.?8 .-a6 10Q4" ^24.5^4n o + 7-' Z3Oe5 '^ G4k^42  (I5@&;;4o 14Q3 5Tn   .aQ n5' DU  e%^4ok24]1cU4%-W-4*5"& #4(! ,5!N^57L+ 6958%\u Z.^  ,5r*M^ "^ .s^ w u'5o M+A 3k^5w7~ - q!G)[Z5,*^&^5=:^ |4'A^ cd-/5u8^4)/@*5T4+V0 5+W5q%/C4#O2 .^zRaB )-w1B:4 \4}1k4 ^C {%'4%&&B5B&! p6t^4204 4 n ^2^5'9@4|,k4J52:^lR # 4^ ;7b / 5*$M r55IziQ5H552S5,9v ( 8 "(s5V-44&&B4  N,59'0 1)^ +t^40"aP /!aU +@^ A50]5%7^ FoX5 qoa $h^ +$5J, ^48g5:1-T 0)[Z-5a&2> .?5|nVU3.Y472 ' $ j0^ Qn-aE5'0]4*^ '  \."+5M%^ '-g ) 3!$ 9:H $!&J!275ro#5a,HR5G9OZ .5 ,M 2(2u5H).# g"Ps5 & 4m^ /^5fI4n6 $+L%3p Q% B0i ~. 27^4#)42n $(&E40)4%F^ 14/2 *i e4'50C9(/ 95*+Q4,HR5Z!S 75.C^.DSw523] /.%5 *a8 {/ 8X2 i&2 H50Y :"m$5i$ U05,n#ELC4y#j u( 99f _o1%\9 o  a>+^ 8 w #.0h : is+X 5".n o~aM ;#' f-,' 6N3 ,j^ p!4582 " g&o5.72^ 2AEa[ n<& HTS522E^5F"0 f [2W4$'^ ! pj! 7;n 1/ ^-48 ^5n]-z %J431 0^4.F,#)%  G.2 /0"+45$@^5!S#)$4'e35I / 5?C4  )3^ !' M C  .c #8  52C5_#")2B^5#b C(+Q5Xoj/0~  4:X2a<5(mC #)I -^$1 5?!^5mon"b $ %)[Z (nAaX p$2&'5nuUaL &^5u*^*5-K52 5`5;i'W45 M^57$^ &b.  /5c-.5,1^#) Bk~h5<);5502K + 44.\e42  4/  #^ '5(2*5ll. '3# h6>2( :/1y . ,1_"b u? (HZ  "4)B $pK5<-+Q(-! U#^"A^ #H^5)!)&&B43^&5714"eg5D&G e,#)& 4{1T#35<(| P2&&B49^ J:(((  !>5^3 4-.5hf .of 8_2 6!5b62 )'i^ f,!aU "1$^4o5." E9"+44()M 5$G^2.5 * 5M,30 nY? >c"<f '-' [%[aM5Jn 0YX+aV%&@4" : ,0^4( P%^4) 8 555CK4p4 r1&&B4]$ 5,,- -i64$^ 2^  %5F9/, 2 6@ 0Q5%-XS+ [n  2b&E4-&E5I25J.4.2X #n. 55)- 9[^42 K$g |k7!" /7^ $+#&^ 0fb` 4/G O,V14' 5v7H^5n9% {24!^3q5 UK4!44)[Z!0T46!aU 04j! 6-&E5q(X,^5z X oKaB t2^ (\&E5%0yS5Z!aU2 B.V43S5}30T426* *B2 17`"+4#^(^4: !+ /U25Z K4:^5i!^:[5IQ(532^ ,!35I*4"  )^ nD)5+ a=4<   e ]1+\5Te-4 5r"^4# /4aP &,8[4.#5B'^ #UaL89" nO[aT  ,' 1y^%P2#@3 4, 3"+4(3,"{ >65 *4[506U V+- D4^ - /r5;]v4254 5n(X /&E4oc - 7/^-+95:. 56$ J(l,48^ UkE. qn :j,'l <O25 .t 5_35I,*)[Z47[0T4f k"^5iS.a54om0Y E$ 5o'^58X5| *5$74+^ +N \"2T #y^4#"+4l!/D25(5^ jno0Ya |.%5Z1y4$ 9' :^5.5|31B:I^ (I^ +,14 ^4#M^ /1F [4. -"$ 01y f$*O _&9 #$8^ $c V:^ V{5T52104 2j4&)u 4 =5|&6@-'IaAY,^ o" $r^5{:S48S4&|4u-a6 3T^5X/m . ,/t$ %d95")[Z431g5(  [$* n!3A 3!4 !-25 j^ +.15,4 40] D4o.E41c 44"u n& T*25 %e -) %f^4652,4:^50n4!` (Q+)4 5m#7 5^ :%^5Q0]65r0D 4^ ] tF3 5nW% 44V5|C 7.5M7g^ 7.aQ /^H 2C 1:2a<4n(E 5+t5[!()5@5O^ &ZN4.4x 7^4& 5E^ 54(1M#4Ea[B(0x3[ 16@2  b2 G 4'-4E nIaAl+>d -H"b4d4$5<25%"+5I3$]4*Z^ z2a;4C$^ #:@"k 7& $$49^ 5%-45HK '8] 4^5yn{2` o^1? S6|23 <!^5]!^42"O4&e l9a? n#1 $4^4-q(:T +^#() Di/0~:\^4n4aK0Q05%kb0Y ' nM5,} $43i^4-U)[Z40K 0 @- 53'.{.'^57#[4!4 i120^ :^ S^4X^ r,?5%S 84nw5 ":L 5. 4FS L5)p.t (9H4;"b824#t1M D"( (25/6"b5(v4/64![5I- Z5+-1 4-!" )&^5%'> ,5q$<=5Q:HW %v^ 5- |5c C+ ,  4^ O+^5:'[5I  59)^ 3s^5+>25%3u'5`,5of.# %^ v.$d%a4)^5p)o54o4&\ )424k="2- 5h"-5B'i :'^  - %^ X: 40"- 6^5@oh-a6*DK5ou W1)[Z42 6526=^ /++ 0&56)^ .l+P jz5%2^2^525T#^ ~9 (B 5T*2$=3] 3^t, + G5 g&&45.15B+U5y"D 145~/0~ -E+>d o)%)' _#5T2s44^69&4516"+5"24,4.5z6g i t'0T4!^ ,-\'L5b ^ 58s)^n2g5r-<^ 3%' *^ 5^55^ #^ pl?1BQ49^05h#", 8`@4)2 F5r`S592*5FZ(Y5T5m^ e?04n" ooUaL5J+^ 0U "C%<] &^  r"-^5f8Z"+4$15l =oEL %0]44C,15!; 25l"&\#35I,.;  >5M$y J4$^5025l 482 j-\64i64-N0V  "59 n#<K5c9 :4"a * l^G'(Z40sLn95u *a8 )!`44 _)@^75l-^4-$G4:4 # 59:35I5+90T40^ U"J+ 0aP 8 - n4 `"W#.4_ 45T7< 0 0 OW40&&B Ja]4* ^ 4Ua@  {!e^ 5t`5yi 4/"$5s4 Y2/5ao0Ya5}%48#5~,&&B4,0 !^ - ,4# 6 $55'&E4"C\ w" ^ TM6^4&&~ oM?8 >, -2 +5$% (@5! &44\&]1 m L3 )[Z40C^4 nU3 $T6 *^42G .Y. !^ f*#4 e(XF<5G)*35I-^ -5 '*5TM"Z5l:&455&+5o- 5{2#{5  .835< B#)& e."D 3{H_5)  +o=+"`&5]%r D% ,0]5Mn25[/- + #3 949-^(\ `65an6!aU -[ S4"O48} T*!"+4o/aC O\5i'5_26^40 ^5XSw445'1^ "045,4 0)5&56/&w *a8 y7425x*5  N e 4c\5a25r1-! 0^#.5Nn`P v_5Z32a<5W)'5L2081 ! 82 C2R4n,! |*n-% 4 F+ 4o5R. ^ . ^4#,* 0.w:5~ 5*)[Z ""+53.G4-h. ?R5u-T+>d /%^  4/41.aF 1t-NI 1u15&(eb 7^ %(-z "5l2["b "K^ @$d- 4|5%!5o}4!3 7^ 2aJ56_ 1k34!$S5e9`?g"M-M5P.<=5O-I5)9.5Q C5Z7 3t)[Z ?85@A 4'D^4:&4*^44r'  K4"^ p3653/.5E7g  ~[5L9",' p9#HK ( ^(G[5^#-5 p Dh49\* f-@ q50 CL5%'(4 P5[0Q5%93 b 2$4fb44'! 20*v /24:^ &u1cU5E:"^ (B5,o4 |1? J14,YD 3%H +?4!V^4!W5e-a6 o* K5=.W7 D3Q0T4)x^ k294"(X ^15a%72 |1e :75 `.1Fp.>5Bt.d5!  ){2 *Y54  256)E * 59,  T [^  ]*_5g+,&G%`5&F-5x).a5   !9l5q9n^519o<K4(~25E1^ oREL *&&B4qy*^0m- nv5a9.^ ?47-5C)< # 47+`3h#:5%#45y #6S+ @5*?5.d4i$z5!^ qp(475*64aK 6 D9,z -5]0F)[Z41"^5cn b)fE n5 D/2g; q"f)[Z5/804'5D908 1*^46-4(1%b1Fb S- fC  ;4/)[Z4(+ug4'^56*?4o4 -45'i49568Q)[Z57'<K4QS-521].5^ CY4n>.5rr*!5 /,6* $  4 ^ ]2^4-h!aU 21SH +1c4,!` # =2;5Z5HW |#)u 6'. J-5oCaD/b& ,+2 U7,F |&^ ){567^5v&^ 4^(R)[Z -^  >4uP48$5<37^5*X3] ,^ 7-@ h& .o[ m.4*E(:T 8P+t 3- n!G"R5w*^^ /^ ^%U-5W/ q75"4^ "*" !B^ *^ U0 OW4%l%5g ,/5$.P ]!# 125o\UaRO1^ &J441H51$1 ("+5e#1^ #2^ / O%C %q^ /M 5oU &?^ n2a25|*+(S ,cr5qW18 L(^4'5((,5:R^4m^5j,^+[M+\^ 8p $c1 .8^494!$^ !&^r#}5:,HW +)3 i6 ^ e5/A1 ".^ )-O4 #5+^ .59:' 65I2h/O5 ,\"+45P/  -/ 'c^ 8^ w.4j9 :j5S%^$Cx2BA54(X1^ ;i5.H$65,nI a= >4#  q(1\:^k[^4F()5:`"<f T/e,:*5p2/@ h55$14.; '*?5</,^ 3,4&+Q)~^/' $- ;,@C /h8 (5Im4'sA46d^ 02 JHW542g5#'3/0~ $/^4`25l )5 &E45( " nRHg45}25bm8 O($ f9^(iA B2#z5,U2 o9q^ ?c$54|'i -2(: noB 5V)Z)q  5,&('i 991 -^ 25B-H\5"15ep4. 2`+&E! :4^ :5^ Z~.to5an*C %''5,^4i,5!4 ,T)[Z4)^ B ^5_2 4n- 3&[,49L(<5k:2 5 % l4Y!` 0* %^ ]9N4-8^9./0~ i(MA4+( n2 x7^5) #'"P 0#)4 w!l^  <( l! -($aH 5k54St5a }2 +()444  k'w49- x2#59/4 525l0(()35I H`51^ k+aV 6&&B4: n 1c5avf5ah +5Ua@ u5435* ^ /  Jc kH_5m1B4%^&024)2#z -A^56Se5Z(.^5v!LS5*,4hG5{i5+"^ p / !|^ !}^ #$5oT2S J1B4^ h52^ $#/{ $$Ps51$k|( %q&E a  ""b 8 t4!^543^55 35T& ,.z/ :/ 4n+ 2B5.4*`P#749*?5SS5a-/ "?45 & 0. 3^ f/5/3  H5 .X5#n0 O, ^/, ],^5F#o^44$5,+.#!.s^  u5(/ .5|oZ41 -S5nZ-%5w24( e7^ #laY 4 q>5i-41BR4oy+t B2V5B(^n'8 1 $`a&F l z(3^ 5L8 2434 6 !g9Y[51& a3 ,-" #).53nkW-52^ 5247^ 4^ 4^#lw : 0-b &^ 1:(@ (.aF4*5M/1 * `9[<5=,&&B4(-5$7^ ,'l40*O 0. l % S )o "b 8G^2_53U^5:'.^5Q0 Bn(I5-od+P V-2/4k : h+59^4.C ,2 #-4%^50]5)^86* H,?5,5l#n2a<541k5! [4+ Z. e%'5--l4 K&&B 8,z-^5[ 2aJ4.W^a? 9}54n w81T 05 5T(=&&B4 zmaBt*V(0 '.  *%15c3^5."'m56 4'U4x5y/5dm+ug 1} L' n4aK $35|!^4+E G! ^4,~- (B^ 24ns 8O^ 02 x24 &24#S-5 *^: ^ #^i# z)aC c7C 78s-\ 1>& +U56^-D$S5e-1C 415e/'/ /~h ')[Z4(/0~ k*?5_2/ /&!. 69*?5,$7^ 3_5d%/572^ ,.~GC4)j15nT) 5l#4.M$aN0^4]!4'D<505 15ES `3f-@ M W )4.P* 6n2561^ 8R.5&4SX5P1v25J45?'+P -85<96'49?^ T-2H ) n J24:  -\^ n"E I7[5"$42%5#^.Y? k(^^ 3t, : 2 /^&"_ lo7p )nj+aV ) .  ). "65*A(5%\9 5j^#3_ ]0^5~S5a/8 3^5J325 1k82h og." 0G^5{o$aN 3v^4oQa] nU p6- x* / 58L.4(B2 %&E473.5"-z k fn,44:15no)} * r-( [#"k4.47j OW4%? - -X2$5l.x Vp2.5Z0L,$4l!/ .#!I #9^49^ $(.^ 35q9 4+5r7'i 2^42 OW42"+5e n2 E |2 "R25=#)%)30x1-@ [4$n- 4:5n/"b _0^ !c- Ps5Zot"<f #,^ 835I6x4)iGs'5.^* ,/5* n%45)^/Y25u/5r 4!$ 6]0 8) [ 1^oF*& 7 -%4"^ KnPoN  'q4(24%7^ a 5E4.S+ "\5F.74,j($EL k024&0T4 ,5M&^ p"bH5MR5Z!<+ V035p:@ #0V 7[42j42*^ #"7^ L+L5r()M5$ *42^.2#{^oY.aO n2a25ao9(:T ( Pcr56,5lf4"+84&3 nB'$M4) OW54`S!46$1 /,'b'.o4 (,k 03+$15}7*?45j4q& a= (Z4D : qoV$g *140^ E4Q:4o/42SX4,-^ +2X (^5m:u&&B4lUaRY/_ p  5P"C "^ 5K625.c40h<=5+^40!` @O5,y (I = w(^ )t0 (^ 3^4l/'i v1+ Q9CE 5#: o&2U $$ >&[5|.49F5Q"}15s3^ 1^ pn',4,X&DaM K4* ^ 87!TaI {n!aU }^ 0TS5B)a UH s45y 445H).(@5b.47-! nS+4"aP $^ 7<,'V y5G%+ [0$3] -/ -^ -5s-^ *2#@ u8)[Z4,4*R^ (25#^5#D"09^5K&1T 5^ > 2O' 525~* .<(,5o7^ oW 4S59.# K2k^5-X^ *2)[Z4)Q1 4285:^5')>l43<^  43m16Q"/0~@42 `5$%4^ D25Z0 654 OW4M$5,I 9y&E5]##HR5'` 4j. 5C^ nj!- U3 . "H"bH54k$aH8$-R Hn3O5ZJQ4(3  5D3 ,+. -0PaP ! * X2l oE.aF Ea5 &[5I9CY290]4 >42N4704iB4/+ */c4n4aK-i yt4,.%'5&2^"j^\5 N^ 3!'3[ ln8'a7 .!^ >* +]40^ 2515B6^ 1B4#[1Fb Nn/0~)24^5q5)[Z46k4/^ "^5*.X5oP a3 O +5K'0]~5%2^ B}5n[aT 9  $5Z)^5$a)[Z40 OW5E2v40$X &C eM-}4!^ 3@^ 43 ^1/5>'0 )24.I^ %$S4  !d15sDSn4  $.a] :(|Y51F. \8)[Z :L"b 9 K4x.5ZnC  o'P,'l 8^ -! 4^5O9 X #5l#^3OF( ^ ( 3 %S524^57/)0T4HK5%/^4c744"+4!4aK ci5#N^5O'^4i'040.2 7E4V4024/M48635< 5s9^ H8^'^ m25y ^ E'0 lnc a=0(aP$)-O '^ 1^ "4*3G )'; - L4 -6^ S55/<^/:)^ o6 +"  *<^ 3)q 5 &^4621 4S+9 ;4oM4 %o-  Z#w^ H4oI( "b <$42k 5N5x5oc} ^,516 J!{)> kW-44^5~75 /7 3&0T4:A^24aK(0 p3i (5 0!4m7"+4801TzjA5E+ug5l)[5Ikh ",k5%%4,I^5Y4^5~0 %L:2 U*N4n$aG5O J&E^ [8o 4^ p-2&Y5I2,5n. =0S%4nSaZ .;5Z*J2 "\/ D`/5h2U^# 5;: 5 15f! 5&"+4143k42[%^42 K5 )^} ?8$^5X8%^ oO $^&2402G,PH4,Q^ o4u5%&E4r5T+0]5R %' 7n 5K P $^ ' 5G91c5y!*a9 #^5j:^5N:S=43"$ 4^53!aU ,-3 y46xU:-D5l&  U"05B$d^ D"/ =:N^5i:Q15PUaL5i/@*5 ) 5z y(! 8X^ | a3 . n : t)"+5|"^ |1h'i *GC47"b449 6>" naS48 nNt[ 3[5"725",^ y V59^5:l.E '6^5=6^ 4 1" &&B 4u!" #  o3:j58<,4/^ f+,' 5i7).H4)V1c5(n+% z|5o)43O5S.25v ?  {$g T'^4"&&B5!#^5n+ /li(X1c%S20 u3^5:816Q co&)-O4,^49&+ 7-=4(Is TT 5T!2#@W+K^ C7^ nf"$ wo+*052+^4!^ G2T5%#[4 5nS -1 nHW51^ 064,^^5n5$^ %&X_5U2/5*\ nUa@k,454oqC : nz!5N.0T[f4"^5o/@* 6$ .,^ &^225l0r&&B4.4. ^%,55Z6g^ ' )Z.x F,o^53,6&&&E4 x84 d.w^ 82 /p5_0  /N.57hr5/k^ Q3pP5,'v5+7/4o6++^5p(K,V >9*?5M(5 0(40,F  l^5q 05F+&Y 1Y&&B 1 f5y2Q,E2S+&3 4S342Q(- 5z5"+4+.> 7HM o;E oUaR 1 1 g "E^4*5 "+431M J,*? .- 4.`Sl[f o4 49$aG5- $^ ) jD/ #Z( 1!B/ \/'^ p5  0(@2A5;%\%fs&2N 7%'>S-4nQ#.45^ n3_5g6y50^ &  ^5555;.5r5.$5% ^5Fn2474(5n1 ;"H4"I.14$+ 0J&E5'1T m14'!"+4-~&4+c /. Q94 25n n-@  s- U(` D4T4JS5n.f5y'^ 8z*?49 ,^ 5 ( l 4%K294,e[/-Q^5i-R^ 9^ G2T5r:3 4#-5# X#S5</42^ 15r&;44 ,(^.aF~:^ _(_'*4(+ LSn5"8R^5Kl)-O 8C4'C^ 0^ +'^5>,N0T4o!$aH :75/1 K.5 /{ 132n"k 3p. kS6 ,4^5w25:j$aG51M5,1-^5knEa[ O28N$SH56aM E9$) V9%:j *1Fb1,1l>*v Q1/, 7"+5I! ^ - 4-" 02.+ " ,^4&. 49rU-4:^ B0EL :U :14'5!^&^5894x o& N 0 .n $5[:35>2 M0 "=^4n(X ,1^5N*^ e ^4*-^ 2492^ o1^ .k(0 n:.aO <#E^434"@25E$e+ 32 z4p^ oba? *R+t # 47%+\ .j. _)2N5( y5l+^ 7S!4/ (n Ec"b5M1:^ 67W-4.\ ? 5<' %N2:&  [&Z^5(0]~4,^4!5Y&[47^9, 3^4z256M$ 2#@ $^5/ '5%(Y5l%4Dbp5j4  0^5N1k4nU*v bR5w4.4:4o`4 5C p.3_7W$c5+ !^ 5H4G 4J15&-@48^ .^ 255l.^ D49 >@4#UaR '2})[Z 3" n.aM ":^ f: 0a^5@82{510c&Z4(*054#2405&E4nC .w%B \| 5W8$5J[ %3 D ^Bi5(TaI  ^5~!c^ [?J5aB n9-]5.8/@ _% K 30T4.w^ o5.o *.&&B5f.2O5l.` 2<484+' [n;2h/A^ /r5]4 l4^9#)$4 oG 4^'^ 9^ 5 >56940T404:42]5,'"Z l^ *S5"&^452qD5 4%!` n4@15T ",  i5|kQ S5a$,' ".2 |}x56..^ $35l5^5}578O -,D35l)/^ S^4ni24/'a7 oq0Y1 3c 2e^ V#^ )B. n /i5 %*?^ 0:4.&E5I8] a> 96D ,. -^  c^4c4m^46D[ 14&',JS i& 4-*^2t5lS3 5 9$5%:M5 A$44g^ *^40S5,&E$5W!d^52S47^k1[aT 7^4o-\4# 51 OW4#^55$(86(6$d5BI c#Q)[Z4'I5|/oaW U5<:T Y3 5+x.58- $2 1+ 8H. o!^4% 3 7R2 3r59)[Z5$35I&3G + OW44 + n1 /4 *^66@5,N5lo2( #32 T&5n. aA'4h^ 0' T,2491Fb 2a2445-a6 PaCt/* 11h5  F5%0Q E4o0Y4/ , %XU3 oz"b o62W%6C5R %^7&35l S4!35I0$S46X:5x#nu k 5l/A-l }5M#55w8%  53w-335I,433  +T^ 6D enZ*0574 z x6 q,^4,^ ;-r5Hn2a;5F2a44% 9U&E40%B m5Tt4*-@ L2C j2!504 aD5s"^ 18[^#=5/4,C /2 *5aZ 87 7<' 6Z,5-47^ 4+^x7^.,0U1c41* n%'425!.Y &-5qI14&W )s = *-5.8A46_} nUa@ 22d 1`&&B4iN48[5I",o4-745*g&E5I%6^ ^^U4n" )3^:4-, .^ n!4,, .n M*^ "445/2 !^44.^*^ 7s^41()5".N 825nM2aJ4I !2 nh^lU3 $&N-5x4,s146-Gn.t7)V 02 (&+ Z,C 3%^41F42G5/H5|-u5a6*^40u"+4#(X )2$5:^4n_U15"25/  o&(` 3"^4?'425U1 4 15n(-n?8 %)'  #)I 0^ ^ \5e6^4 ^ +4 b,'420&W 9^ ;ov2 (^ 0]51Fb or 0 &&.4#141r n-,"{ P4nS 'PDj O2p  25llZ^ 2%^ 5saX&~ E.5Z5F56+ .^43$ (0]^   8K&44!^4) 2 [o@.a551'&&B5q1B4.525X4e5e7S 8G*f5n1y51-3 +{52 (X~'43^5#k^ 1n4n+>d n  *^ ;2 $X 8o%  I&m24m#. 3#1 2 5_5442: -(*^)u5T'@+ @14:-v 4aP iN4k/ 55922  r- %0.aFe#^5&/z^ o(e^ a94.G^  O4,^5 ' S&*+ C&-^ .5Z73-j43^4J4 #^5C$^49()5F5}40T4)^ ]EL )GC4%nEL 74 ^5b*252& l3?755|h85Y/6*5r"^!4*[-75ed5PE40454-5 +s"O4!C$4=4(Z^ \3^441  65,9 W! n/, ++^*^48` 52 nvN U(b  Iz5@4,^ "5T-242 &[5I.+\5Tv*& $1 )74+z15-A 1- c51^4-*045k9gv4&B^5. D IaA "82/5a/ "2 N p 255%0]B4q4#!e[B'N43)[Z4+49^5U425T2w5Tn'8] i4-C5p.P)[Z 15!5o"!` (#:4$ , : w5M&^5:nL"b 7fU523x35I 1 {.5/25l)1T_!^5 i / {% 3 "^ #5G%i4:51z$6 .(|'6 &0]4nmSH5#14 $"5$^ $'8]4|^!R j /)[Z H-4%S=4$ 78H:jx#^ %dq5C5<.^4#^44)"k 0/@* 9` .^ 4X25Z% 9^xY,L4 0T404^ 1^ 43.W4&2H  -B5l&&E ""33 oxUa@ %5|*4-^ $"2$ /$xaM ,58E $^ i6`35I11T h*;  N 4,HR LU4,x^+w2 L# . r249*Y "^S54o,1Fb 425Z5E(B90 (3(- ->`4 |5|!^5b 7 ,= 6h. 2:4&[5>!w^ 9"^ &9# oneaZ k#^5abX2;4k ,y^0]4u 33 -|.5.^ 4%!^ 0]+5rj! 7"C^ >4,^ V. , ^ ,^ |*2h $1^ ]2] 3,*044R^ :, *"^ 4T5|4U^ x/F424+J^kq --b4&^5G0h .5#^0x+)[Zi82{4,15=5A8.aF o:35To|.)42 . <!N/ {' #jR z4 3pU5,.0Y19.%3 A-V'5S4V ,p. P .35lh^4-H5/$2B43^ 3o^5>56 U&m x2e2 n, &+5WnH16Q r725i*1F W1 4b15e0  fZ5B,^545&2 ^ hd5q'5*3/ !>2 T>)5%. 75T1^ -s4 "$5#'^bnoCnHJ )5~9^4Lb5%+o^ " OW4",* .o\9 `+?^ C'$- \9 S #O^ -w^5cng4 2740Q $2 v\94.w,' 0Q5%e5k46&\ `P B'S35W- ,r1c5E752W5%2(^5-+ hP-4)^43G^  55}6'4 9&&B5T ;R #)[Z4+J ~ )2 ni*&&B5:*- lUaLo[  85E#- 4^ -T A?5Z/5d-47"0T4 2 5Unb!4d?4'D ZD44^ k^4:P415B$  &.?5Eb .>^5.@,5:1>^4+. K Z  %^ +k^kaZ +U435=3"+5I #5l!3S5R#x4,,cs4*$$g !)[Z %[4(^ 7$g (^41/: 9V:4G-@5o !:^ `" F,6x4,^ . y3492a256<[5F-p^G(^ (5GY4x5y)5e,115C('i s1-\,/538k^ aD 8v4:^ +^57$5e5d4aK r)h-! i-!4.5B.2? 5| )u ?.748Q^5oK%\9 T.h"+5|4^#, ^<K5r ,5>3J"+4n/oaW0 o,C5q:&E ,[4&Q^#C *. 'B qop./ 4"Hp4i% 80]+5<r5u`5P#^ ' 0nS4:^ LC5%'@+aV 0 5,0D5%ia5j2e V )F-NI5Z.!` $[5I$^5b9 'p0P5R,5 <50s4aK j  nG%\i S25z 95t 6v34i,)5... (^41T 6=2 '1cW' p:$i#j4' +053 Se5a&m58^v234q14.G4,aP xj 0 ^5*2(nJa94#.5 #"+5I-l5ao}^ 5 &E4854q$5,&a584 (<56(| i%$S4#D^ 'h4o]!aUg.3*?5a$^4/.4 4W^& 5,os1F.B-  K3.45 "- n2a;48 4- OW5Mn *I^4>1 o(a? #r F nc5n0 'w49EL 82`5J1as i U,JS|g5&h$S4&3c - '^ B7O,5z&*." #2J1`: fk2bn  j2j4$^48W^7(48^4: S#565a5(&E4v )$^5/1^ G5n a\ "4^4*1. T5axd5(2a;472A 42 )0Q ),^4)y5}$^- $p 3C &,?)5E4n  3c2!` (+ .s6' <5\e4' ` 5yn!5$c4) 5![h +2 :nnp E*)[Z4V|5Mf&S^ "~)5y2&&B5T,'4a.5,.> :hP 01F `o 2g4-^ +oL&o D(-NI46M2 7"+5|#-^4lK^-q" +Q ]+ %^ &&45.5956 ()5.0(5y685"+b2 $,' .PD 25l^ DS5howTaI + 54M-H5l45)4n!"& %&E4*0&E42,V kTf!4-"5M026 ) !"+4( [ 1 $O^4/.d #5Pu a> -V4 Q4 n3/ P#)4f& 'b nXE 'd^ +.!# >nF /5\^ .o48^4 W-4 5TlC 1H5,^". 3k-@4+e )6 X4\1c45@^ )B^ q-4,B^5X)X^ d.J48C4 4/:4 &55^8^(- S5a2X 1'i 2A *s[4#' '(^ *H} w2& 5@b 2L45& l)[Z4%^ {4+Dn5Raf4." 524.f2V e%2_5,42^ lHR5m-^ n4 u9^$S5e-60F H"#3g75j$Ǥ3 2Z.'$_1S9$*f^30/]G^54"IeJE/%$D ^?[#, H3'0e8.%z;!-9!?O%%Z{"6'-# I!^ *\'N-*20 $B9k*9& 3tgEܕ)gLv,I'LO+E&PB$GZ)!]/c!dRFK'_VA X"w1x6)%޳3`#b908-$ߕ-!2%N'P.Z(D' y(kx=Z(]%'-)8S/ld#'"%:EY& X8/L/Az4P.*V!k*0 t^3$2ުVR( a/2](1E?9+.V/")jMI09& !.Ajun^ѧ3"@32w2GMe/|]'D& W/&F"^<%q$<#c!Pc@'%\?/$Z1+)"*R)Ix(*rH&K>~ 4d~/@B"'ra!V1&(J,k"^-ϔU3EX'e!aX0*5-z%#m"K&J oķ"/;GcҔ`$%m2H4SbJ}$f2'`1@(5& K))d%Q(9$!>_#d*_%Ƚ.v,2]#TObyn2y )Drl-4He<,؟T2V3%'6$~1P:JN5. 2.5bUݴ |% [ҼY06,!i"n4.(l'j&1O#$=#,G2DY#u'  !,IC>|6 -0#+yT7_# -/Я@M'6X\;' n(}[}YA)2V0'R5%+$@&ٶ :0< ,7,!HB Y&&t2)T9,I1OHn.,V9(QC7O )-.C2H!b,e'%I(0V'73E%O# 1O"6 -D7.+cR#;Û+'(E-#[x#-{P(LIFN#!ѲVB0~ϴ%>J&{(;ְ,F3KRNJa 0و%$2)=!*c0$)p7nɍ2?O 0&,&!L+TH/В1\u&! w%D]Ŝ(Rcd!Ur!h^g417Ab_6x22  B1A.o'#w,AЮE1k<(: !pRZ+2`d6xXfaw%N]"&/&"!/8V#XR,\!g AƎ-bעwC._2&,XzlQ!C*?(J_2&<n%,1,B(07(yG3N;1Q^2G1Y4a) +a_"e,4.(-G-ć2&Qh3&*&^" 0-h(3d;#+6:G/K!Qm0<K$2X)!U$ K>. /'#{S@,cG'W? 1Q%R3ZY\y=1˂ ,5Gʶl9@'X/g0#1=1>+H7/19?2a=׉0SG$kq X4:iA4*2)D,V'*$6;D^M"c`"F @@2*Z'q 6-8(>)G(UY< v 'gA`(43ͫ*z3&-YU;P2j30\&#1`$h*%*c6+B?3!ހ V-`>GdT!#5W,#A01 u/xV.-Q-,42  = $"ك 2 P J8 &Ld&!3B6%HHk.y+%_5+Sަ#u l8-(&>%Mp/] #n.:&l %K1[]0  G1/dу )N3["dk!Fy:s?%KE&* 2Io) z$?1y];%e- #2\ MeS 6#.2}./ pF5 !.ؓ)~1ױ ,6G#Ż IY*X0`߁( P/?a-E8/!ܼ p@.% !#w!E)̙U3Oz1TZK,$7|Y$O"+Xr F,h1.'!*-d-"/I'?`%^_ r]<8HOd$08+Zȃ/._/(+DH h;M&w^6w^7ɇt*<  {y{z{{/n@xNo@p@xO}DR6i7j}FRVcLXcM0k1m74-7/A82!("){S9cϠ}5}5FwWwWZt$ymynx5z5{57G<8G=9G@:GCv X]{7{8=>':(:2|LUy$));5;7;8{L  ;}Zl.wIQ  LfQ$R&S'T);T>WuRME{Fc {G{Jξοww|EW#W$W%W'yy#z4{SF]NOkWu.u0u1Z(-\/\Fx),:b5uL ]z #]u ..|?O|?Q|?RxPzPy9 b~G=mޟnޤ gi"HL3^~VL~"""m3n3 zztVzKs'w'Xw(Yw)]PRT*AJ~   r2z9x\9t D|dž|lj&-ذv~>t~n~q `mݬnݯ--u>?zMzNUWvv7!8!|2MOP/x$Uy}8" " XDDttVm&Z҆Iv<8J|ITZHI<v>{'`)?*@+BzkzlJAznzo[fvV==xu  ˌˍˎzm,n>0PQRp+ , u1 a}Q}T}V2Cknewe*gjt2.y/Cy6y8U?vW{%{%79H}QYJ|/7IV{Z{Z<)w_L w_M ʽfg++yMNoqLO{H{I+`0a08B,9B0:B1} S&dpPy ]1`1aOB{Th{TiAu%%u%&}l7}m8wVY!abwWY$25^%_%`%f՘g՛y1HtW0{{$*6;w;wZ|Mn^^^y9y;y=y>+ ~*?x*x,|;u_M+M^=^@Zɕ'(\əeQR>;b~y~z<z@zAR RttcU||#l|447vF~|5WwWx)¶xguFGX HX b d K\}2}6)s)u@~z:nt r]ft tt y|pȿ|r|sfi|v}.TvK?] vM?_ vO?Q:~6QAZ[\>67t@%t@&z$Q'bv/"v1"{3ߦ_`bE;cdexKVPV&#(#rsz~4Cz4E`@aCbE+bW/cW0|0s)|1tv9D v9H v9I}}wUwZrtt9y\\  \s>>}^aHZ *w̲TVz9. z:.A?XC?Z(%P&P'P{a@|au2u2DXoUUw,w-HJK{"Otn3fD^VU_VW`VY~)v#+v${Y'+`bww}['} [(;Ƃy'y'8~8JJ  {[  !$&}b}c}e}fDwi`}w Lx-%v)yD]>k5l6P'n<ua=0?1d eݺ61ݼCr|Ty!~~~D}C]}E_NIWY w/ZH~5&6&2#8#IIuZz(zzK=wwv__ hyl\ ,C@R`:u =1 |>1$BBBB~   1xC#zt5%{6|dH7tD`YuPĹQĻ<&=&~0OQRUGHJ{HK  Y ^**<,vM^~ ^+iP<Q<u/NWX_YY_Z-X0BY0E.|(A(SPxxxc 0   Stdzd|t|X$5y{qYv\GRrZv]GT~HxoPPnIMY+z/%Y.r* vբ{;H{;KLx]xxx]^}M}N}P*z;MvnoMz t^|Awx{|B>?@ v@~ /~ 0VRiWRkccv|dv}e#vj#{4Wo}u }x?@\$X]$[TG9oVG :qXG ;s6XZiKT`)=u:qu:rL!]+]0)٠٣))yyn] o]v: v; {3bQ( W, [K$3%7&9z /:,b.d@x@y{b{b""ΌVw~3w644y\*Wu¿uuSv{1(K{2(M1QE9F9K<K>KBǣy(~ :KK @Nud-ue-uf-?dugPhPexf}mnijkFjC.b,2-407KMub͜z"wwwD|V|VҘy"y"3~3nEErEH{GV{JV{KV@u$'}u&'~u''O8} P8%N!JWw[tw[{6( ( x.x/JJ^|>@>A>B||O|}O|~Oe p`g'~<t~>w~?yV-|[j\m/>]n{Pt~|2LvUQ222aDbbDeu>Uu@UuAUj2k4>Q@Sh7wCr1Z fx5 !x>"'1bd8pzJ:=>AzJ B - / 0ƇƊ|ט, , =lvlNvmNvnNxRܙxSܛ,xTܜa#=$>cu Ou Ou O*`L wM yv0v3TwDx7}1Oa|Wэ|Xюd7e7Pf7 h7 v.H<=v0H~~=qJxDxEtI"tI&ZVy Ty ULNv+({<~!{<xh _"}ʌl+m+aNcNK}~cdEOQTd=d@dBdC %w '1(y1)1-T/T5vLХvNЧ{~6{6{6G}J4??@B{{{{u;M?MB})ME^U ^Y _*<4 ?^@^bvEBdXA"g0R}ci[ay0O~MA{c$FF}_vxVwLQWwMWwNZX'$zԊ{ԋR5S5ZT5[\y'y)XXEFu#u{ )stLr|]v-|]|@BEy*y*;T;XM{X^ {Z^ o[p]q^Mڈu8.Nڍ_@:6Q9:8Q  ~߹/Rrdz#,z#-z#1=>4V4Wwju…z|~yE#j4~Mm4~N~O ~P!w>Ft5u(K{Kv\~h)E)F)IxNxPtL)uL+8<= ?OٮPٯ..}?p|JQ YZ|KQ|MQ[0 1 y .%zQbft"\')E E E ~s~t44 4ExzuV<=Y'>9  [%x(}:uvzKJzKK[\V\Xt>t?DZr>_vCP8vEP;~- a~. ~/ aaMNPQxI-x?2??$-.!!2vvKL{D#NU>CxxSxyUxzXx{Z}.0uV |&ҟ|'ҡҤ48:7Z9Z}@Gwc8qv^356;pqsOUOV`Kx> x? OQkz.>LM7OIJ``9 ݄1uuC>}}eNm2RCCCCRT-{M7TU0{O7Vw}k }l&y7Iy~  Z  Z  {+w+zu<u<Nn}vK}wLNq_nw]j0k1w^kl ROSOy7)``]9{0*BL+BRSw|d|d ~ ~iBTTk%Ea[c\uH6toHpH}6qH LGYHIYIw#Ą-w$Ć~%~%'7&'HxYYYu u#R;wzM[ (yY+3yZ+4-y[+6~h+<LMRN)$*%+'۵u0|1Af|SSS0xAxSSSugdKz$lz$mz$oiG"G%hA|`Xj+6#.6&/6(GD6:CuQt)t)|||Lv]~ K*^MN;xsgcAMLiBMOw eu%^`u(^d"i/TQ@"|R5bxx//}AA!RzRcpcr4|{q\vVW~=A~@E~AFb e5Gf5KF;tX(tX))),)Ԗ :3 :8vv{K{K{K\x}c}h)):zL{e iH?Jb+~ )&Ͷ(͸w(// @EbbyM"""vk33{E]n}h=b#;]iJWHKWL-LXAZC[E,ŽI((9\ \$w؍((9ttKgv/-iXwPIDzP{Px HSaaTacVad5}).).*.+y?y" y?|y?}{c3uDy}}UCEwpg}"az{EeVxsQtSvYu:J;J [J|Ƣ'y9y9y9y9 J~[  uuW>uX>vuY>}Ke] hAGw3 -@ -E8091yU&PDaF!!z2 z2z2CCC|q!yr2ys2yt2yu2D.~zD18&vW$9&x/1u7u7}97:~'~'~'~' 3;Ix ZZZ  uxPuyRuzSu{Wo{==|k_|l_k,l.y(,hWaD=~4e"O`{ `TTz =t1At1E B vdWTzy%^U`W|6}6~67_HUwf1a2b3d4e<x&#7]HFvt*t*t*0fv{Sldd-d xx0}>}@00}DBYzSzSzSd5|L[GxExvXvX1~b\]^?.&6'6wtYMtYNtYPĎďĐyTyWտ*,v v#{Mqsx`xa}ڟw*}ڠy*qzTM@ Z^[^<=?@r[/@@@TuR}W}\-wQ0y cy sώ5vD5{tF{uF{wFWi(k)x}=d3$x,5R13zG.Xu~i~mXvXx{ )]:NO:}}ȩ ))wW;!Lv]3&vTZ.vXvZ6p8s{5@ tw x/Y<=?A/12b{ή"4!4"4#unEW}YWoPqRjlwEӒ44qM8Wyy:W:uu(uz9KdCDKf/|&'y:Cy:Dy:FKKw\{N^I-J-K-Au,?;(a, +a-  _ ? c eQfxUb4d"4uͿuz3MDV3w[w\vҶoy63^Ej_Em8Vhij{{ n{  't8Jn|t[[[V[vvW[J9fQK K  $ &l\0z->^F>`>bHqPH |<`I J K ;K%ݗx-y-~ > >PP*+-/!g!j23t2q|C| UfUhvw~i!~j!3=3>DxZDx[kzG&2s.I0Iv2I| Zdex'P^J) L P@ƪt,'t,)==|aTUkOVWlOF v5`uxvywzx|B,C,7>!8>#9>$$z z     PCv@vAC[NUxq!#xr!&22xCyC%(zeU%*zfU&+zgU',gyh{Pѩ%j7%k7&l7'm7(| %HHuY}},< fhi&w77w7IDIFIHtZv<<<_:_;_<}PE*_+_-_._ 5 7 9.0/000{f{gB|uS~}3 J6 M1OwdBWdyz)y{*d%%i6>j6C\Y')w7X}Ճ66yH^   *m{!{#;}uMb^{}i .~%&*wU,xLyOUu9F>?@wԥ!$wԪ~5~5~5GXxX )u7)u9z:tLwqIwrM]\_yM;y~W6uM~X>wME^*F^+~ = ?G^.{+ɀ<ڥ/=ک||$Q| b @x{{X|Z}]X#EE|R¤|T§|U¨My 58798F~~W-.z5(nt9|KK|v{*-h::nxe\7]RuȲuȶBz].>vEQ)v {x.@}@@}Qzb~߈ߌߏߑt3ߒߓV>vJ [dSEUEx*VE9Wt\4  ӛz'z ' Ӟ"9/#90vJvvJ{[{[Ix(}x(x(a}}KlwKpzz\w |\]-X-\}> }}-?D-2DCZ{U]56xF"BpNqOODQD"% ҿM'O'!>8WIIu[ u[ ikׁ''vJ{wJ} [[Z,y|=[3= /m`h> 3F-  >l6 >oyP~~SVXY {ݟ1{ݣCaCc}}}~efeijm!rAC}sUqtUsy<My>Nd&Ag&EuL0Z11Z2 |ֵ|ֶ8  ~ Z{v5o=p= q= jeuLNuMN}< Wv_LMQL0,12,4w*w,"~=~=~=-O&.O*/O-0O.y>`!y?`#yE  uT T dwyfC ygC|{3#{4$/606uH#&$'|2|37Y]8Y`   ~70 8 xYYYD*z<z<z<prpyN+UO+XKJy<y <~'f~(k~)mJl_D@=A>BACCtAcvϡvϧ~0B}$u-CTzn5zo5zp5)C*DqGAw`wawd)6|"|#!# %x6Gx6JG}5!"#))Ր)|LvX:vZ<mnqg;jlx6mMh ^3@vRJRKv{c {c νx/}AKALRRi#QTUl#opFZF[|;}F\F^|=|>:w&f'm~$EN.~$H-,5i.5j0Fw]XHXI :HtÅItÆy)':]:^vvL vxvy{]ٍَ}nzF]e zH]zI]zJ]Q7R/1a.b.K?L?N? Q D}}PS@^w@ew t~by"m3v4Etx#dx#e#4}4%4}5F"F zWh)jzWmz Wn¬{?9y K(u\<}Njǎدwywz  \ySn){-|-&3}-~-N>ux+b-e j mCawWwZ|R.I*?,yQ3'yQ7͇͆3!3%}D}~}O^҂_҃`҅b҇F3E0BVBywyyyzy|%'b''d('euiuj88zJ?2zJB6 [g$w |'||9=9>yyJy|Jy}J[~~ gMhN,,5uOu O6} } J`} K`} dghv^ -bP~>SP`Paxda:!8u2,u2-zCwT!|wb2c2`abPUQU~9*#YZ]&^&_&a&{B7"^tIW'%v~8`*Ix   \w]x^|z=Uz=Vfz=XNNw w |3QA,.܂x=x=}~`t \z1btBtB tBtBtBTdddve vfvg{}~xLTxMxN[\]SW%z<6z=6#z>6(Y|`&G&P&Q&Rx7xx7{x7}\}]IZ= <8zŎ:ző|+ }+ M|QM|SJ K L N 7v%{v(~dېgۘE:=,N_tty0y0y0A4SSSvR ehjB~BeTfTgTz\dyG$FG^G|Xu!M"Q6gYkmtİry*IwD;;;;xFyGzIvIɒɔZɛx*qںx*rڽs}G2M3Mz^z^~$+O{T{VtRucS}Ht05w8w9A34[SC&(5#; 5%5'v {:X {;X ?@SFw$+||5yX~~{hL\@L^L_ur]dus]j}]0r*Q;>R;Buv#Lw$LN]W y"?Dy#y$uA.y@!@$uu0|ߤ/\@^@yRUyRZyR[#4B{T*RETElu3W,u4W-E[p}.Ӭ/Ӯ3#4#1ӯ5#w  w ~Fi0WWx9(9uu9ezKjBD\wfR)2|:q:fr:hy=Ls%y?Lu'e]f]#pr. | | vޮQuxbRbXuKYuN[wVSVTVVVXuvww+y{|EB&+3+yEV3za 'zd!'zftJtJ[|t|v{}(Bv#v)~r9EK3G\Dp)1Ǚ^-#zO>}6  v v v |f  ݹݾPazzz22]_`7tDUUL"v? ~aKDx-c.gtҏ'&tґz8&vZvZv{''m}s}tJR|[j e gzqpS,Dr=|!|$  " $ .`;0`@4>9wOw`` gy1y1_C%vYuTTps67k!Ex727x82:x92>ICAUHBUKCUMK!z*z+&4 !{3H4H5HZu`I^IahZjZkZy+g<OZP^sNXv3O $P %b.e/f;}}} =eN y_X܋܍{{SSudy}o j}p l}q n1n1pdBfBgBMy3%1y4%2 AY6`Z6c Fu2G3G{Y-&pՠw%6|yYyY~*;{e{fhfMy\ BuB^uC^lE+G+C w E1~NF6G7#_!9ʃʇ۟ۦuAWccwwwxk|AAyQSyRSyTSyUSyVS~bO@%GAB-123||,ß.á/â||$v0v26 ~G~GX*+-.));]t]aww8x |Y6|Z8f*Og*P@;A;C;?UyM3AXyM5&^G~ Z>4ɟ?8zz0/=2/>@v@|tRtRtR!| ΅·~ARxixkxl#wn4o4p4u!u"I?z`F!eWJ¾$ |O5.xF} }J(tKtK\\BvQQ~8:]~x& `]ox( b]pBr9._(QH x@/}Qz8߯߱EDdiEFelfm|2U-[ABC~4NDFEE#Ow0W41tӸ( (\ \ \\\|((}`}a^Kz Y~*-{)F*H|0|1CPu|2EPw}.}. QwQQ w~a!y2y2DaUv&~v'v)efD"VsVtWuXOx3oP}!m}#n}%p<a=e679y<  9 J[4uƈuƌיכ8xJwkzJwlwmE[F[  H[I[J[y_3`4a5p=q=uN{#`{&`7P/B~!n1{|CzC{C}vUyыZ2R8D9D:Dw0U]94p:$gI$I'u%u&zZSzZUŠŢw&w&|"8/8081I  yoZypZ08^Q++_V`Y=&{9=*T) m* n|h|kD,R,SvP=vS~OJ~OLb`Eˠx (uqBBzT0zT4zT6dwJ Ш|e|fabdUC1VC6f?e@@eA~2S%T%N6O6{L|-&&&&v_va~H'~HZ x| x} bS֍U֑֒V֓u2<3u5zwM0 2 Z>\?w]F|)b<xNexNi Z\0MAAtSYtS[}~t0qSxA`R$S$dtJ5efgz1Gb8X}:XvS{%8{{6jwxGXYxG]Y7uAzD|zկp;Pr;Qs;VLLxLz||C|D^ |FCTYVZ,*-*.*/*4M5Mw w ?Rtc'c)vF00}yqSrS sS }zl#zP|<49lFUWuN}5zGGwQXcXeçèëikìt)G)HL-pv=]9v>{kȔ{nȗ}٭deg}7/L}8~.~.@(?)?]Q abju=u?i@+@www"ΔΕΗqy`4 -/vTVUVVVv3#G}w4F*F+F,||F2F3W~(W~(Z~(\~(_9\W\[uhǭuiǰujDz}R(}S(}T(g:%jh:'mw?wA\DIIy-y-y-1?2? 3?!6?&7?'uuP  x|w.jw.ow.q=@ABDybVyb!~"%ͨt37DcEVdFV!GV#<QҠ'3#$#4x'x'8J\J^u\uaz[<?@=wX(|7hJrsy2\i k Xg1؃a,g>P%O' t`24݂-->vy>v{>x!Tde2SCAB jw!!k|6.|73345xUxUxU8 &"&^#&7{Ixop|F|Jvokvqm8~G~aJ 3[>[B[EƔxU+xV,xW-ƘZ=u-N`   vv,,,xOxO` z:z<|.1BBB*BtvTtyTtzTeee |[A|\BR! S! i>1@2jk~Cl~CN1jx x 3m!%7tzHvwvz{O{xjI0~Z`Z\~+0+7L<KL| g_(&}=0'(}=7)NNNN __0tOyA~hjvPkvRo{ . 0{x$Bx%Bx'Bx.x)B@T:AT<8dz%бz&дD$ 6$ 6%6)6+=G?G{(X}6}6HKw*`gMKMNC;v {Aɶ{BɷE$*wVOO`` q:1ݍݏyCKTSUX!\52awCU^}cU_}g />0?1Byy8 HH{u֟Iw` wb m+jkm!n"VuaN|u ={{,/ w=O)*`~0{l{m{ouIzf MBNBOBJyw%w&~eMc~e~e(%Tbfuu w7w7!$HH|Hy]*y^-y_.ya0[]~k*~l*MMM,^bcu34 ; <N*vUN0~_3~_5+ʢʤ۾ۿAlS zczcklw@0wB0lA|b|cXGSHSG4&5'~$$y~%$zXtXwXytû!MGv$~Yuxxt)}CD;zLu)zh]zi]j'k(m)RSSUTY|qMUMZx^nx^o}R}Tz@zR;||t/hA*jA-lA2^cxce_cy`c|fx1#x3#hE E4<FC=FH_Qv$*v$,v$0A'p}3Ԛԝԟ):>:?z aIoJtK!]$]ww.}.t#yQe -;vpvr{/{4{5@Qdbeb^3zAzB/Eh1En|s#G#J #Ku4m4n}EsuWRWUWXWwSwYwZš(#($tu/tw0tx1v1v2{^ؗm(K9L9|M9WxKx KXx KY \}+ }, }. }/  A  C%-z%~>d~>P{ Tah{ X{ Z;<.1.4u6 |3 yODfhyPDxU u{-o3|VPRT J,$[V{Ʃw'u\׹}L9$}M9&^J_Jw4 C[<>}:,>U'O O!O"Oq` ` `u t ` `zU>w>PKMOQa)a+yv̇!$!%~{2C{@YZD}2E v*&0x7Fu|?Zsu}Cu~EZw }'wO8N|n|IYGvIzJ{K|{ YN t6==Om~`[ F LZBTUz|da z}db5CT8CW:CY<CZ*Txe`xea}%}%66 H] H`zs HbYmnpqYHt|&3~H~QZ,w'{Łu֩xI*W@Bd~8d\K2Bdv 3Bhv"~T@B(Є)Іw$55GtGt o3{yzK{ĕ|Ě}^}b}c~Ġ*1*2`zU+r;{s;|zV.zW1\]ABڨu< u< <^^ w//?@@@yR]yR_yRvF5vG7vH8{x\0'WAu%XAv'xS-lxS.m}>4c}?}A}B/ϘS#T#z55z ~F!1W3Wmuz|:yjLOykLP5]U6 vv v :);)<)MNQwL&]| | ]46y`.yfyh~@~@{Q{ {{ { uoߋ/gupߐKmR?s8wG<r#s#P4.;<_u##4Wy (|(~y"y$(~9{~9KmKo\x{P5i;j=B)"}:NW.}:V.Kw  w  w  ~l*,| -Paaaz.z4ޘw_?wa?mwc?wd?we?wnnbEy8`>~F3UkDpV:qV;{ -.|3EuV~~'RTx8x8[[zz LK|?5NKOK < 2)\4(~-~ - ~ - 1>nPz``ݠ>>v{~mav!n!s>EuSv35KD|  |  VxSxUxW}&yzzZZt km6v8fy X~#[bSIEƵFƶ;&='=tz ` v,v,v,{O1C zjGzkJCl`e|!-o"| !.'x(y2")Cu%}U2ѵѺ7/HHHHtHtyYrs77dIOgIRx2Zx4ZFb+Tc+V>I<NCNE  2ʳ{++u=K=MDGBBvwxlA]A*B_E} 0} 1"%6H6Iy+~GY`a{b{c%ՍՎ66}jHjY_`*w*x0*\d;]y-Mfy.MgR^S^T^U^u0,-.{<^wMwM|"|$|&hjyۇ~AERc{_c{`{a}`Vu:u;u=}*Ah}-A=vBS#dwg$dwlZ5h]xFXKÇ$$$5 yNB)~[:LHI{,Y]]{.^uu!u"';|;M"M#^5v Ev F~Ɇڱ/$x@`x@dzuZ u[ u] u^ ~w5@aR;cNy:#byh~4.;F  3z&/Wi¯##t|5FWX((x:;h\i\Cz_(Fv:HsIwv:|dLWLX lxȺ?Q4 t͈|m.|o.{m@|XQZQ[Q~5bX(WߙXߚx3x!3x#3:E.<E1=E4tCz#HI%##v48kv49v4<{3E{4{5W" xhӢ}'ӥӦ99JJz{J][`|-(k<+9ve fw-a  P_PcPe̡̟̤̦ vc.xPyPxHaSޠt2UDQ&U"y#{Q%$~u\u_P}VG}VJ}VMWxIy[y[y[z]v!'}׈{WAJH I J w[K L } }  7,8,=~O`w C{ r +/)t]wg u^v_1BݱuvsCkwyAT\yBTiQu!{u!~;wu!{"27yyV~I~IZ>ZBŏrֽsֿ&}@IUZ4w-6!w.U+~>V+W+~C~E2-=yNyNyNl_ ^__z.z/,=,?7=wO5wO8S|L|M`.|P1yhyi1[T\T{62ДO P 3Ж%19|C;|CTe,e06xH(3xH*xH.xH09YdYgįij%%wFHwHH\y!{N*~*<LMD^{ F^{ tNS|<Y|<suwxyNP_QI~ʿ~0003SALM SF~cczrϫUzsϬVztϮ,0s w B.+S'MRGLXXX@|6Sfg|6Z?pY"v[*,-l՚ox;;? JLKLMLD]F]tG]z,E*~5v*6wMl^ ^xxp}/}@RX.r |@/Q=AN)Rv*RvS0`1#2#3#w4w4 Fg Fjttyuy7vz5lF{fF{hx\ÖTx]ÙlԼ[(zKzLhLiL3c}4g~OٙPٚ| )  LuL}]+D?FQWv6/1Zv7/2v9/3z@jxb_ ` #H3J3z z *E+E~V~V$&{#k{#muFuFu}Wt}Wv}Wy}Wzµ~w|(Ew}(FK2K5yW\BPظu(u(.:/:0:---Fy}y? j~Po~P q ua x{h~Y.O.R.S.XdDfGG͑H͒w;"w>"DDEDyV 1wV)bz3E8E<E=wV'8y~t8~JJ~JL~JN~JPk*m-{E&{F*?^(L} J \!\#\   $\vV!,xOxO zi-h-nzo>a>wx|xoaGaIaKn!Ao!By/y0e2=~:C~;CdtU*+7xI`ZZZ_\u<,g',i'-_|4 !B[*/,~=fN__z Y\,,t܏,OOvhvivj`~ g~Y~Z k~\1k' :`Tp% & z@E?F@GC1HEIG+TY%xрxсHzH{H}YYzz h to9tq=tr?|V7OIcjv* Ev+ Hv- K~ŘF+G+H+NN_t t yʈ ۞+ ۠v=!{___xf 9}0}0jAkEz^W`W||1btT u.T&}dМОПw6 w6 Gttty&u\Yrx ļx"ľ}H*M}I*N;5N[;\;=M1z!z"^F^H^J^K& ;ɠ<ɣ{*{*<*MMM  }^6w/Yw/w/^b~R~=R>Sv 0?v0Ca{=BAA{?F!SS,1wc.4|$ 51yy~Xԃ{$5uuGSuvuwsuzSTwK){x:PNXLgy%]mB9; u*w]  O|..@.b{Uy{Vzn/G@u6g\R}Rf}Rg}Rj4^w#!~1EEEExW7}u#ӻ4FoFwwhW|||(((tCy@w9yC~IKhp~KK~LKs\v\<J{!\2):3);4)<uDȊȌv%~ٟ.~٥xQxQaaaQuOz޷Xba,./03nye~E!7Va9Vb"#z$zz"t;|Evvv'89v[u:(O 99vK;vKC \N| V| Wǝ4Ǣx--x-0}> }>P,z ]Pq^PMavBOa~+!~, U2EBxD5()+""z303132$vDVVlxvҖxwҚ}8,}8.ZU3V7tW'Xru|%8%JU&JV2 [rv o [v [|},Ow=w=w=OH  `F`Gy˟,{{m`n`o`x:%x<)x=*LuN|EkiC0Hrz-eFF>GAHC{2I{2KCOuLURuQuT*,/01&&%yc֏v7uvv7QIlRIm{Lg h 4Z=w}+s(<)<*<e+<Ndy<y? , .~_b~_c{, }r_}s_}t_awY08iSdefhjSQ[c\fu1uu1v56{dTy(~Tz|%:|%;|%?KGG }{g%{h%{i%հձղ{j%i77 uD]HuF^HuGmIEw"*$M%t%M&uMu+#u+)<<>ABCNBw{_A]A^yX~cS~dS~eS~fS~gS Qcv{0~D0(u u0d?dAv$a v$cv$d5~5"G%6< ua$ub$uc$z9cGeGw9Xw:Xw<Xw=XB; y~L*~ L~"L@]A]45 *U *W*Y;|M>|MD^V^Wɧɭ~@@xmR)xpR/> brΓsΖtΘvΚM/zcN/fvRN|cd cg||,x}F1Dz=t^t_59|yF|zF14cRdVvUf[^:&_:(`:,a:-x*Kx+Kx,Kcx/KD\ttt:L:vLt{ { ]y{ y.mx}?QNQOb b&z cͦg.|5@AE0QFGvG"I"%3߾wEPw^4U`W@WA{=‚ƒ8xOxP(xQ_}e9V{JXY}KZ\z?+iU؆W؈|9FHK\----Lw>P~:aVtp @+0ya.b.v,?shQQ!xWR!xXxZ}&2޾}(2 {3{wyzEEE ViunVlVnGIK'<{@wn8{|Dz{y[DyLƙ''{(#J$J{*%J[[w)>> z>yXOO `{}-6;tP5uSHuTJuUKuVLz>T! ;<w11>w22 6U%y lѕ!D"D%UrI3yq3*-~vZa.{<&{>&6+U85V88-I?C^`v+v+=1~~~x_o "#ut,Yuw,cvORxOTyOXny˩|h 1|i 2g17i1:Yj1<y&TBCVd!{ { ttC?CB|T  |TeLeQv%Iv%JMv%ZHHHJxY[u7&]7U3Hx55Hy:^ wZwZ)*<@oD:0 pG;0WX ZSSuuc###}ψ4W!tt$kyZv@G!vAG#{p[{q\xh)T}9:0@};:1E*PL;zzz/]Cz~Ȟ~ȡ+ٹ{;{;LL]}...TeQ jybsEtFye1/OtW15R4I#bL("" "wΥ!" E EWWy#ӈ{4F8F9ukulWW}U}V}W}XwC9wD9LlEL\c6$7&y)8)))9zz\\wSyP~a|HZ>QZu+L?Q[@Q\}b*R^Sb&"+w3>w3F%D(DV)V,x~xҬ"Ү"ұEXzEZE[E`VwZ;|'u8y5k~B[~D[~E[4Bb7He)9^|\%|\(npv,v,؎v,v,ؒ~ ghj<=uE-n>DPm|8!X"##$92bx#C ~Ua&')z!z!3339Dtt|Ufhvt&vu&i7I~&R'Uju 'Fu'Jv[Kv[L- ?שׯ ,=~=}O}O zzܱܲt{>|]O|^O|_OjCDEn1o1p1~!HOBQBRBE! t!za2 {{ў%%%xnxoqYuYY+zazbzdMZO_M7O7! fZjZl# k$ lŵue} < <wN-_1_4tʣt=;vSNvTN{x-Yx.\{0x0`Cc`Sz'vz(x"+@1F1H{B*2-5{BKTJduddu }л}м}62wGYY KywtD6dvHSfHY{Dww4*gwpqDMYM[^ly %~~**Mu}cT}dU}fV}gX|ywRA+wSA.[}\_c{VacGnMNuA%d'f(g{]{^{aLdOdd Rd !Uww$1$2|5UG|5VFyyX7~n$${\5{]5vGye}';)w: ] Qx*)**$u;pu;qz&z)z*M^^ wou|/ڡ|/|/@NyJQyK~Sb~Tbr A|WBCDxy{)/{9@ R|c=#C#Ev4fNv4h~~WSWV py#UWVWWW`c|P(H976Ky lnpbtRL>tS Sv.2v.5~u~w~x~yQQ!xba kcdzXA@z[^QQvbw|"k|"n3߀EE 25}V0z"QSE|gW|jW vhSSӑUӖ~39#UYJWQx[R8=t(qt(szzKbv\m-L-M>  a(zx̋̍z-{-y|,P|}ބ}ވbdRTwUft"5-t"9t":./3LyBDDDAG{ uҷvҸ'}[IUV}\Io[LMO[z3P_z6!w;'8{Jq={Js[ [u},o,qwOiwOk.u (˿yyy-Y>cxy{{Q{RY`:GC1D12T~\!f~]{C{CtruI}{}|&67g7hAnopZ+?Z.oŀpłqy:֧y;֨Y&8c:uIuIZZw,|<|NNy Hy J_A~,*{r={s=OO uJ9rs}:{uQTST*,uCuCzTzpr%am|6q|6|6HHyc&YUyd)~oĘ~pęX%Y%HHJHKH."Y|7|945 *v<~M p sxx+I+L+Num<Cz^N;z`n_?6mnoYAtJK[AxHS,~&cGϖ=?z0B |StS|d\$$457~9VX}u*6@{Yzl,%Y'YoUVwUwY$Ղ&Ն'Շ L}]3acg~t}t ~ mn~C@chR@diRCfijkx5clGεHθ?/@t/A:z)01vcvc{#{#{#4xoxrxsY`z$9z$<!5]LnF0|9X<|:X@6{K<7|L>8ÀNB$ԩM:Q%,L(w] kt)Lvs] .?xX0xY2f5g8h:i;}kQwb>bAbBzCczDzE3?4@O/P/6G| Q bu"b3}3EwwVzt|#St}#USy4tyyy{v3W`b{be{dhq¥r¦s©P(-Z9ox ;[9q}0K"}2K}3K! zz((( !"999{K{K \}(-jlowsPwtPwuPwvPZ[N dasJi.;z"?uQ*M*b v>"3wUUUUyy{E(Vyz|u`l}NY8[8abw6J5w7J7b[^c[_d[a<ƴ=Ʒ?ƹA)'+','9-#95$uJz z [[[z [ F,,wbOO`yx y~}_VWe-YY{C>I<_=b[P[3a.uZ}̔2!vCvC ~~U/22uD?uDAuDBUU&&}|q7~|t7|u7`T\Z}y+L^Z~y,NLO~7&')'{ 8X I"t [ [ [|l+׃v=I_  NxCn[,wttcOqdOr:`g<`jwa Vw=>?|/1X@,B}d )Cegkvd6~U|Hg~V}{zYxJzPxK|Q}R~T&Du7qU"Iz;V@ 4B 5Z5D 6vŅ|+ַ<_Mxx klz+ۊyztmNN|O_I5_AaAcACSwd*@wdxd!+D   t1t1y yBtT ЊxcGxdu#G}XbwzY%izZ%j_6CD!aT`#X#P(-(%(@/206%61J'Y gl]J B=^5"{H3v]O!ˆ-+3t-p1.ԑ b!!Ψ'S8$"'Ct'_2b$r) ,r]Y]t!AK[H#$n2idaxI!eW%^F&WN@ Y8@#r[:%;-.|/,@X %Z/B+#jGPag -z1.‰$7!,*/2@=  **5(/  Q5 h h hQI8VO<5 h h hO45O<TBLS~5 h h hP5EW:`B=5 h h h=k==T.5555T.IWE$95 h55X95I:;A;/5555G;/k6'I`L 55554~L WYMc;I5 h h hI WYLE9M5555]?A5 h h h ="5Z5ESnE{5 h h hE{>CF h555 5FlWI6l5 h h h55[~TK[ h5553[lLP[=5 h h h45=k9WI=5 h h h=O=L:5 h h hB45L:PZl8555568W[[/B?5555b3B?wmC9995555\5WDDSr:5 h h h45:IUZES55555SwWKD>SO5 h55%SOT["=M75 h h h=HZF~T5555yT[8t;.5555;;.WN_KD5555Q9DkLPZWW5 h55)WW5I>$7=}5555o=}WCGXW5555_WWJtVB h h h h*L45BROj?55550@W8\M+5 h h h5I56tWZ{X:[C5555E?TKDEo75555R7IG^:=5 h h h <5=kU7S5555SkUJL5555"JTW7RGY] h h h h45Q>s7T5555CGJ@kPJ=}5 h h hrA5=}kZLy[5555![WV=KkT5555QTIWX%C B5555ѾBIUBG5555.i>8W@J6 h h h h45HI9F5555-T;5WUKLg h555 5Lgl8855F5555ъFW:kFI5 h h h85IWBA[B5555T@WBz=IN5555 UINIDP<5555HIKPGOk h h55σOkR7UOe5555Oek?BT85 h55Q98TLPHU5 h h h5I5UICZsN5 h h h5I56tWLVt55Y h555N5Yl@RJ5 h h h5I5JI;2]PP h h h h 5B5PPG;XB=$5555HWDMM5 h h h5I5MTU9#\a h h h h<\AI-D5 h h h5I5QD875555_7wmK]QG5555GI?MM5555MWFJ6k5555͏6kI;8-J5555ԙVkH8tN h5555NlUWF;5555CrWD8,Z 5555GZ IDZZS5555!SW9<6C5 h h h6CIHKCI5555`IWQEA5555=AwWWIN555596&wm6KO5 h h hOSOL5 h h h5I5LIH:;i5555;ikZLT5 h h hTW[B Y5555* YWNKzQ55557;wmT!LJ5555aFWZ8tW5555%WIW>? h555?lUZX55557wmM<B h h h h45WxQL85 h h h558k?Q~X;5555<8WZ8t8< h h h h5B58<ZQ?U5 h h hHU9UW"7g55551;SW=T85 h5 hQiwW=RK5555DKkY:A=|5 h h h=5=|kWW=5555O=kLPZI5555ٌIkE]C=~5 h h h=~kA&:J5555DlINb;K?5555JW6;?Q5555;QWJlGNY h555Pl8=]'5 h5 hW3KwWT:C9 h555m9lGFZ5555|ZkNM8C5555IVwm85 h h h~55;>Q7CZEA5555\UBWVaJP h h h h95I5P[X>B5555i>BW;< T@5555YT@WYJdW5555Ҁ9kQt>75 h h hh57kUN4Uu5555Uuk6<8R5555RW[[/;5555KVW:kFB5555ԙBkUJ@5 h h h^5BbA9:5 h55X:ZpD[B+5 h h h5I5B+IF7 V5 h h h5I5Gk<`S9D h555%59DlAyH=7N5555?7NWBKkO5 h h hNL55OWTf?? h555 ?lEX75 h h h557OXWH5555WHkLPZ;$5 h h hRIf5:IYZ[`A{ h h h h 35B5A{;X,D5555MGW=T=55555=5WJtVG5555;W WKMN h h55XNCK=z5555^=zkBA\5555WT>?YK5555QILPZ85555z8W[38;[5 h h h5DKV>FR5555KFRIVA \5555Q\I?ThE85555cE8WCGXY5555]k@JG5 h h hHQ5XhXAFQ5555PQWCGX5 h#9X55559X6<8I+5555IW<@{\ h555#5Rl?9rJ!55554e6DWB?N5555PWKTIY5555IYW[[/N h h h hO:Jx>5555 >WUFU h h h h5P5B5UP\|65555W7H:9TT555567PI\UF89E5555U 9EW\y]655556W?;:5555BQuR%65 h h h56W6'7Y h h h h5I5ZLAB,B5 h h h5I5QHTA5 h h h35AW[B ;p55553=GW<?JH h h h h95B5JHM?\*[. h5555[.lM|QA\5555>IUJY,5555{Y,kUJBW9<IF5555X@W\X5 h)@5555FVfWZ6R5555 5L1WZ[gW5 h h h5I5Qk:kX>B5 h h hBPQ9 h h h h/95B59<SN5555NݨLPZQ65555YOT=cV5555YVITI|Y5555YWUJN5555Ҁ\HkQt>H5555*HmBc[ :L55554eVkJNQ>Q5 h55Q>QTC\M5 h5 hRMEC[;5555%LkS/D75 h h h7ZXU5 h h hI W>V=5555%=I=YQEg5 h h h]W5YBD;H5555cPwmNjBuD5 h h hS)5a5DmN QAFM h5550FMlZZ&K~ h5552HlK(ZL5 h h h[5I5<A>K{75555@W[YHk7 h5552UFlNWYM5555YMW[L> h h55s>Oy\N!55558GWY=:O5555KLWT7P;5 h h h5I5P;XmCD5555DW:aFD5 h h hɦ5GFM2YF5 h h h55:׮?@?N5 h h h45MS)C5555JAWKD? h555;lNNB5555BkLPZCw h555(CwlD\$O5555A~@WLV[5 h hGw5555GwWPMEZ h555%5EZlLNXX_5 h h h45X_RJ;W55558ZWBh55557TD[X55554e9WB?P5555E\WA6?D5555* DWNKzI5 h h h Ͱ5\WSLM5 h h h+5=OWAFP5555 BvWUFI* h h h hI*lX>UU5555`UUWQEF65555F6x838[?Q5555;GrIXGVVd5 h h h94kP>F5555"FIDqXB5555|BkNM9tM5555úMWUFYY5555zYYI>AGN{5 h h h8t=5555ܯ=kU??U5555XEWY;J3L5555$LIWI,V15555&j?WNIT,9N h555859NlGFZ5555OZkLPZ@5555@D)TH@5 h h h5I56tW; PV5555p7Z[WU5555X<WWfJ3P5 h h h5I5>'eRV8B5 h h h; kP>X"5 h55WU@TE VJ55559[JICyGE5555\8SI<G7Bv5555BvWZM\B h h h h5I5W7PC] h555v=4l<^@yT5 h h h]W5YMEI5 h h hI-kUE_55#M h h h h5B5MPRC5555P@|W>MA-T5 h h hFw)_kQ%L<"55556WOQI`@5 h h h5I5JU>P h5555PlLB2E=5 h h hQCI={5 h h hr@5=k[VB5555BkO L`R05 h h h5?RW=x5 h5 h&=xwkUIZ5555#MDIH^V+E h h h h_45EN,:QL75 h h hV?jMZJ 5 h55#DTWHLb5 h h h35LbW6'7I5 h h hI [8EL5 h5 h,lELw["Y7>5555V>IJ_M$55 h555-7 h h h h$7mM*JrE5 h h h5I5C9;:7:5555KwW8N:?F.5555\WHHF X5 h55UX5IBY85555L WBzA}; h5554M;mQ8K5555V@W:SD"5555\8CIGLF5 h h hR5I5F;M[5555G.WGMC5555LIQ8@R5 h55]R5IP@L`=5555A~>WRGD6u h555 6ulZ^RY h5552LRl;V;@j5555]c@jkLPZD h555PdlK(ZU 5 h h h[55U AZmO55555YwWXGB0f faf%P,j. g$\B%,&'208-s(bU6.u.e!onNwF(Haq?eOF[d3d'lNβ;,7N'^.sEd 4&cZ-.q">3#\@!#'#J_d/\#؊3u-"Uib,00 &!v$'Lu /0e=)bzm#XC_#"ӳ!gnFXdE!g^ la!m+r5,!p*G0?R`>1s#@!\~-+3F7: L)cQV*I3-3!3i555555555555)a(J'ka+/&0\'~|@_-#?/cE~?qaz?1^F?$ſ?3(?Z?L?&H?NE?(xY ?=Q*<wK*N 11sF'#Lo$"RG*T%45 F9+%%PJ F_240P(NL FX:%B(,6;(,L:3(,X4(,:%XPN,24%!:X N FL F6zAsNP24HxXR24%N%:)O%KW24_P<X[(,ZP1</P1/<2Mиq5qF5.-@0+L] ^-c[h&c2jX$$k)}/*ߩ)R?^ "QyJ>M&#$\/;2&͟ y̿$e!*&%)N-+`%c+4"82!C|  93^f+(S&#9%["~IY7^%_|$^b_;8/b[Y2 "!=D)d_-bR.|0:.( -2P&Le$B."12b 08a),O+*_G{&M2;D0?*]1kg0ؽ,Ic#.ʉ- Ԇ ?k/ma,4  L&$2#'S!%B&;00K? ER1L @C }'ŭ&N'gB-E6' 2^W0`(j%R$"0 F'%JUd*<Q?*c-:%]1>/+W[A0  ~13B<+W],1a/jE{%Y;'Z!+x4(#>y3(7$R%5q"31[Pp'2O2CvKT1$%j"d>'#5&#NV) R  &l'!#&%#!.ۭ$A#*(Ԍl. Q ^) a1 vIx d+.L*]T/U2AVA '3dD{+O4'[HZ! )"G{0<@1#`D&Q(w92})HM$.2s?#Wp v(B[(RS]KE%2/(+y.A-YV*k85=@ 5Su]4K6b'#=Q' Ee3+P22$8bU/B)g1D3$9wL'(C)u$'.̜Q̜*x̜!j{̜(̜(e2̜̜ ̜+~̜O̜I̜U@̜S.̜(%%U(%c;4&aC]u,=([I$"\i^u>(a'3 .)I"c.kF#&$_=Z\01A& && &o*_o \oo1oou#oo'5ok){ooԄ81o(o،0o߁&o9oXyoؓ~o hoԿ1oH :oE݋'koܓoo |ouod 2oR"4oo*RoSo2$oo&ovZko\o\,oiCoUqogݧ,Wo ouZdo)o6o[##oe1o(oת2otFNoUNooo`Eo" oHo)ov$o.voHo(Too;oWΏ!Ko> ,Qo`LoQo1-7o$loxo=Ro27oo,oSo+oӱ[ooݲo(oL3omq o]%o`6o,&oƢ&To]/to&Eo\no 'oG o oˠ+o?#o߼;oowQo.:oƣ[oho׹˟=o&oڤEoi"|oy-o~'o7(o0Woo<3=opo}oB*/o{$oq!oW3oDC$mo%oģ*TMS5x$G;0" ;#"dE}`9u&lax%2o L  IyF'[ vY1_$*,i-c].(@C.#Q&?Z?\*,4!!t&ž0(*'#;ty&LW"!YR9) a2&ޑ` ݜL!CG&O$Y #Rb)R2}K1kgKDF"01%ֺ2^ *=#)0<-+5 @L]+.2#!#P&4'3'$'i8*!<. a&Q*d/0't$%YlE +W{O/bC*p(7&-b[) #!9 %J1[,qU NI-201>bnx9,1yKC*&' ,3T.-EA'F( +;3K-f&#V}"~=$CP-Y%S")'Qp 2D'g`#WTX d3#. ~/m!ye&A,yHG&$/+rE6&UBZE%JЙ0KX%L22Ai!9 .NZ )HY^X:E 9oJr$2*'O XR</S(j0$%Jљ& 7%RTB2j>.0_'<!^$k4 *JlO$e)!Y %M^?A5#PS21'' ,u 2P-:2%K'd P€`D^!!1}9/y/|61 %,xZ$BV  Md/+JM+HQ1s] 8}%/%2{dS6#o,3s^\"ܾ3O}k 2'FBItM9Y8J<CV.6 . b1Wb@iF3|?œ%}L)| uD'\,D>\"d4rp(`1L%8'*ۜdM.0@O8 c#Ĕ(Z('bx) Z'G.x *@^!M4-m)#&(Zߗ$ˇZtj׋70+1q?n&,W#T";jY&N6 Iֱ!f>ه3&1D0{'^<y3Y1bdt%,&qaO31=ԏ'_@D*#{&!)R8*,W*{?\(252&++R#ի4T.g,U3{N"mMR cuJ̅ e^,;& h SI4&#53G)%!3&hU [)T1I:!>(*RMH2o/%J\.r2A%oJD2$d% Q!A&V|tb)'Z<%0#'2r$aW@FR* #$#4'91LH&BĊPqi[qJ2T  X6$q,Y&-,P{/$#1l+XF2̩-7(B,Lj,p3 1&%Cj-(MV/cSyHE2Q`Ots=!"61O'**3Z?J)Ք! 3-- ]ˤ$$+&#@W ~)/y1o3<Bl#p )O%`i2Y"5)1*2Q$I<21d!"!3-0F'&c-&D-HΝ#Z"K`x 04c#$T--Z!W7@.P$T'>.4M$yȍ%=>J!b ] ,d1 b/,C'-z3#90/,G'Wc+!+S+Ƒ0[ 3:#={3a)[/;l#50%+2[]b$)Ȓ$~ r14%*( &"GI2:12Jtou$d3\%-w06R!#D(#!-D,nF=-E/c~s=/w11.nj>b O[3<$i*h?6)>["``ĕZOsoAA,6B%9P0CABtҁ7 AAB[O Aa?@sfB|!@p8IRfМ >'Flu>L#C"ZD19b4>˿+r?,s?M5?'\C¨BveD ڶB|w>XϻpWrB BFh;@5ݾCAM ?AgCG3)AQéQUS> TWi4AL "gB6vv>V x?q??cAG~;ɢ >5ܳv?+@SFibe[@^A-?Bl }qr@JGCC-wۿ oH?[_#M\Bq>>oV@_.y@+>ԇ:BWA<B#A 7B~'5(^?  ʦ;J>1z?EB K@?L^G˗]M` FnԳA`@ CT_ՊA?RrmμFAbAc7+@ 6>fRpr(jAy?z?K@:`@9^@Z?DyEҙ?^g@q$?Jk{AY@@٠Aȏ@(g9B?D=B >(?rp[TBHtBmEFK6B\ͭ@PB7pAǷrBHF@̅wW!Bl_TVPB  C#>Kc?VDrwb? ~9C/de?2JyABf\R >T@b AG>fSC`>tĘݼ?=BSBn@vMAh*Fm'@DA? ? QBR͐CR_@u8>ΌYwBAe>AAIׂB1!M>lAl[A\AYBY@@+iAڽ®?CNhǰ-@i~>A} v@[%?\&?\:0@+];4@,^<5@-u|@)NGCv~@X >iOH?=@۞X?s?KչBt @l>\\r>KϩйC Gݍg MBAjbBk >ӈ@~BB.AvC'Q!jRA*>ΖB@'@@f0t2;?fI@Q?r?v?F?g\BFM&]>{B.KV8xwA=nr NͶ@L;@`;AA>`(u?WUѲ?@$@Ԕ?dי.?%~rCXtɺցH>Q0fA?A~CJ߀@Տ>A؛>?ݔ@>:D"@  )g@ ~"ʉBʌ&ʎB#ʐ'E""j#C>A@AFӰ@&"Zc <BHb*?BN$cuA;Br8$Ke΢> ԩe2B >nRC f<]%3ؘ>4ؙ>EAwC9>=pBC9C?n0>EkFm?>A U&a@F@NAui?tȩB ե cyɍ>CB7 U@ V@6 6AIC?Ap|B@_?LuȦ?/v?T;N=XY>)?ƬAj??*B@zAE?FZyB@XYWWnom">FW?UlC@>?jAD?L~CYCZ>n>c8Ҫ@ Pj~ >i@-*X>|BL=A4?A5Gɰ>?K_AX,@G:@Z{,}1?m>hߏBI+@^GBl`[Nb3)xXeZdteC5C O,Q@q?7&B<XBhܛ^ܝ@&q%w?S?.C.ј?B:Ju@ CdG>M> ?bUB ?&~>s"݀t@A%?0{P?'h%<a&=>'>>,:@->@$\?]L-+@.,YCז>Dך>bˋA8P?0@\ĊBY]čBZsѕ@jH"C\uAq?^wAߺ@ ߻@#L>@BXC?B@6ڇ.BW5CHhCOeB@M>j@.ln@/@3 >??W@@B5A >]!Oű"QŶA{#RŸ_?xV@XY@K+tC>?)L?wJJC5xKKyr,M;gAC:%'AM}F>kw!g`ez#@hB6C'BG@AHBAO?UB<_<AEABf| q??eXB>S=x?l>vBÏy?\L|iA,@́(s {@;?K(ioA`>B'@BHJ_aJ? s-A*`A~?j/ރ">X@sY/U@|1>jߎBC@?ǔL>o: @n/A$+>ht@:nA7;őCS{s9?QqDAA@W>/q@i(C}+AYABsP@d]A?v`A>? @ ?H@01d?9/0C@ͤd? @\Bp%@^Q>XBEI&?b\C0&iRAGmcwn?q2BB{?<џWAt4y(BvLABƽIK@#%C+IXHx~c>J]LA?@KQ;vQ@W9YA@_' VBbsBgoՇCg>rADB>x3?#6?$=268@Ii%emA?As+%ԟB9ܸ3ƯĿ ތBޓ B !)+RRH6E@C?!b_?"V#?S 0IQ NjSAP m>cd?37@=MA@cN~HQс@,?SEn@PLA\hO>h}۽@yB@xr?r0A?ULA?q_AAz6C? ق>?B)]?A)>r=B><i@YXēؽ>Swh?no+`{Ӏ& @-@%D2@&>r@j)d{Y>7c5V3@TMn}ɣCea??AmWÖ@ytB+@?ȴBBU:Az$ʹ?hnU;۔'A]UaVAcҿA1U?3A8ATBTXBU YBVBV@HmBZ(@["BӖ+ySGw@DAjYh̺32٭>Yi@e3[*T?OڞEP&?|bt<S'zAo/kCkmBG<h@XuWA/;?M?H=3PS? @B::z׊{ͬhjA@V@Wj>?<g B<c>W,>~AA? ,S BRCܷA&Ľx5>&@ {BjJNA5KB_@;3AQfeؒB_.W@N^c@[Ak"AipC?cρBB@҃Bo(At*A"?@2kBoBn>>٤A?BhM>ZeC ]fC!&k[bB390@SCUTCV<b4A Bx ׸G5>(ܘ U$>g%>h>@$ݵ~AB?SWCBJ@@=?F*,@g/@h<Aq@kA I>_B5dAdԻByh@)QCuzA*v~A+v[?gPA{?V˴=&@RakUГ ?VBnrro@]8w@<{@@8A "TA!QB@¡B|ڨ>Ɉ\_.<ix?hm}?i̠HhkBd0Ff?@gAEC@$gy >c +B31F@M(Ӎ AB ?3WAPVBQWBR^J֓(֕,"A͊hBv@*AFRu>]L]Y1 Z2 ?&U7Z3,e?-A%/B"K,p΀AC%<"A@nR@R)/mfA%NߪA0´A5Be@A?I8L?$B*A.J@ a?)#B7nB}C5IOY??A;BD/o?C=C>jBK0BQLH@K>վ?GK{@TXwU\xpB? 3KBjЧBͲݗ@?:#g~bAqţBsŦ8)>?BVB;8aɳ?Awו? @CBS!B0Z?y]@BAD?6ѥhѧj@R  >~) An*#Ao0UA @} ^=ۭ@ oA?׶@!qbQB]`p>C^aqAC_@m<A 4?a7Ҋ?T%. < eQBBq-AF#>iU?`B).>{1A9l#Bbw>ЈAdO|S*@cB)f@CKNښ>>`سA`B{4A?,@AaCG>\H?+"@Tn /A-L@52K?7N?8PASWR"?uDLZ?إٻA 8K?9M?fB޶CznA(J,'Bi}+?6yBE>dBP? ?o\^Cy}dht? T~@m->KHAY@TN?dK>Lf>y!I_?A_?SN@$>?0ßZB`߫N³Cf4ACǴCA 8q= RB(2/l*A/G#?+guq>Wx?V2pNBĬ?YCzD{@u(IɜAg'k&.'BrB& A{o{?M,?&@^ӣ@l,>dwgVY]BQ0ki7jBbHCA. BM5A"V@`$Y@a>B@,A[I4A~ԁ%n B@* TB0ۨAJ?FnCD9+ B_?p6A"ѵ>ZIAx 1@A3F$4H%B@N3A"O4A#P6|VՉq?C_ew?BB}9yBi-է?Y^AK ^M>>+B%>aD}vi?4QxK1>eAlB ]آUs'NB*ݡC'ʖu(HAB:bA?%Bap@tHuCaKw?D5BZJAk$?&!Tx@,B ۍ@.YD>q%q-dԭ>,*?.-?>ޣ/D?ޤ0EV,FHcA=@7BPpn@BըCI> -A{ >TX?N̖>ByN٣@ e A CrB<k>l-e>:ϾA?@ rBOo s@[ݴAOݷAPBqAV>^yC?yE?zBB޺Ƴ@˸PAA@J@}@SB9GBR.@.0?'\L@ ~V΃AJ`?;A9׀(Bo/Ҽ@@DraEvbAyª,B D>E>XN>&}sA#B*x>Ag,?~zx>Ty G[)f[?>wkArjzW[BAC*êAnaC, dBdZLG v=vXZJSArB+ ?)dƙ>I,h7@m`›>L1&BM4'B6 @(BV.3B$A-B$oʢ@>\[JkCLKlCMas>fumPy6v`CEbm>y?~nδ.tzok.@#Ci!IHW@8OذA2>@_aň?~ҔBMԉAa?6/> A]-@XCB>X fARE<?n/fAK6OasB4QdwB5RfyB6Q5C1za@ zs?ft#vB8@C޼BDBc \p`v_A2[B2ad4uH A2?1a M@z',@F)/@GTB\TC] ĆtB^$ܿ >B!׷"(ә?Ћ!CPЍ#CQ3kFBy͌Y>*A%Tl2A>k.)BtpAW! ?J*ziǬ?{@}sBA UKxhrisUFBwBBS)T@lyCEg?EԽ>>[wy(> nJ6lS#U$bC A>+XA%HB@@И>BA¬>#?4J~  as? W A C2'6?5i\BeUN@VO?..RAH=>0ʡAvb?Zñ@>z_e}t1M,b5 }N:~D9gBcE=l LFCc$2?_'5?`ѮB1@gAY>79@~ ^} A? ƒ Ɣ @E$CWAK@knrtl@q5+? K6-Am@:r@;:ApBQ/[B4HwI{Ǔ?Pg@fopx?P/C+0?}Gg>@\ 1?]4?7@1]C^COBdxwJhBxMjQWُYIXٓaJ/}8AX0;6#>C A '?LkA?MA'B;C6C7 C8 XC<q ????rpoS?MdTAǫB@.F-!6=!AF"$>VB 2B$"?4d4BѴ@$2B-`@"y@֣wȒ5%@PA>vgAS@ys>pF@7>@dϞ)=1>t88?uCD1:Č?*oXt tAu2E5G@A8DA4ZFOOqϤ>H5&BB}q@iAŕ%0@̤VBVl A3Yqr?d>+EBuB[AZ[ɭA;|"C@.>w@[A,VX-T@2(ͿCCڷALp߇Ofx>:CO>YtmÇ?SRjVB mB8k>3k;m <A²^@µ_@AԠ?j΄Bh՜_9?  >1*zb?.ج@>7Ӟu5ʈ͜\?@ pl>nf"?@A;6AcAfp(>>#?\4Ӧ@wrk@mnZAmg?nlpkܙ @lܚ"@?ZoDB]C&HΙ`MlΟ ;ۀN @a|BX;A_`n?Tdąl-?A?E>m|A {B/?0  BB@  ?N̡C<Ԛ0A!Z"\??CFބYވ]?@'˒ZAU!ABݞBATB>NC?  xA}h;I6@1~sӏ?8zҋ'@UK?:J>UrlCsnDOX``CBjɹA@<9B=<B gʮBr+(C. emAnAtqqK!C3X#t8?k&B _t>utAq@?Ȗܞ>|Țܣ>}r;B,ѽ>U?,Y=WM@A0?XB7?Z0WŨV̄$Ϣ71\p*@7Z7C#B?x/7WЌC[&=@r6Ae>nz)A{,A&>NǍAqӄB#IB+ A6BSBw>a>bմl|2AڮLh>B߱6Cz>>ԡAqB >H!J$A1L?C{?$BN LB֗H>B;ۓ@]ȺB=Bb(ANF@b?)8BFdA%I>]`?%?BBknwgºX90fC4B̼֬Ak@{m@|5@fM?Z=f@<A[]Asjl?AB1»@O> J@xMJQAt@Bvr#pV{@ >9؃A:.. Wx@ԃ@o7sw]JJ*ƚ>ZvK?-JC$o0Bz>A]{AA^|B[uI Bzrf>e@C@4TZBN@<@b5AM>N>z>}ѭB%C%ߛ>BȅC;Ȉaf@Zch -3~B3AT FA ˖B # q?w uA| -GzbA$H{f}cEDf YOā@<r\Bf?mM @S@jׯ?&?#%B*B/4AxcMƉAtz?t*C0<AC dk@P??e]BwGBxJ|!O?mv09?JC(s"o@LC)?(N7?>PCb9TRҰά?^?3W*Z,[>#^.N/?,@16'0"9g^ ߨ Ib-o`"LO(f5V #@-i3PDz1@L"-,u$O7;"C,R* 1.+0l$7^ U-k*Xgǁ/@-# ܡ.֜DNs,SJ#L!yUk 0+ Sb!!;R#/LKT5,QU)/^1%5G,UJ1<+i1&:)'S,8)NM=rA{1Qc- (/l(:X!ن1k3/d,2$U4+/$ɌR, ]_"!D b,3#$k4?G!%H+"-=!0+SFF3)0<*rF.I"E?/{xaN,1 @&N. vH=&cc25 y^-Eڄ0K#)AȎ٨Ba%q   _`ʑ %R>.,*Z{5>-)Q1'CC'p #H .E=$r2&` m$4/gj( %af)!0'L&5(&{,Zn& +@NTM6/!H[2j5!-b-#-(+4&2\q!I21_,; % +HAA2Cԭ4y F1YJX&QN ^lA 2]'F`31`*`0rk$2C!UA?%) A.:2 0W1K8*-(/8T8Z!/%X`;,4S ^$(;:!\8r,פ(7+W&fU*2H  &L.4) W &#ܭ*b/X-"Q-hr'g4c'V\'(3NB3d1>1#*/03;&Ly-c9"9i%-(am]%!Aۄ+.&ZGR '#WSbKz*P-'3\'#) mZ1%#{/xB G1 X(^k-Ym1N''02 *UqR_p"dd>/D)'w0`[oyO,_ܑ&W (d:R52.(- )~b 4R!22}#.&D+s E Ξy:.'?fS\ ,8">KD!2eZeK1,pз!o[`3%YO$?s <dW&ld0F1L*+1\+Y)PS&!C7l%I.Bjd r5I5I5(5I5I55I5I55I5Z45I e 5I5I45I 5I5I45I5T45I5I5l5I5I45I5I5]5I545I5I45I5I45I515K5I5I55I5I45I5I5E5I445I5I45I [5I5I45I 5I5I45I ;5I5I45I5I45I 5I,5I5I45I _ 5I5I5/5I5I45I5I595I 5I445I5I55I5I5T5I 55I5I5<5I5I565I5I45I5I5l5I5I5<5I( 5I445I 5I5I5o5I445I5/5$5I5I5M5I445I5I55I ' 5I5I5x5I5I55I5I45I45e5I555I5o45I 55I5I55I5I5h5I5I5|5I 4 5I5I5 5I b5I # 5I  ^5I5h45I5I45I. 5I5I5|5I5I55I5I55I5I5/5I8 Q5I445I55/5I445I5~45I5I55I5I55I455I 5I5I5/5It 5I5I45I5I5E5I5<45I545I5I45I y 5I5I45I 5I5I45I5Z45I 05I445I C 5I5I55I5I5 5I5I45I4 {5I 5I5I5<5I M O5I5I565I 5I45l5I5I45I5I55I U 5I5 T5I5I5T5I445I U '5I 5I445I 5I5I55I445I445I e [5I %5I5I45I5I5/5I5I55I 5I5I45I5I55I5I5P5I5I5T5I5I45I 8 5I5I45I5I5"5I5I55I 5Ii 5I45o5I445I455I 5I5I5T5I5I45I5I45I5I55I 5I5I5"5I 1 #5I5I55I5I45I5I5|5I 5I 5I5I55I 5I5I45I 5I ^5I455I5I5E5I 5I5I5o5I5I45I5I45I5I595I5I45I5u5o5I5e5Y5I5I5l5I 4 5I45(5I ; 5I5I45I5I45I c 5I5I45I5I55I5I5l5I5I45I5I55I5I55I5I45I 5I5I55I5I5<5I5I45I5I5T5I5I5l5I5I45I5I45I5I5e5I  5I5I5<5I5I45I545I # 5I 5I455I5I45I45B5I Q 5I5I55I5I5M5I5I5l5I5I55I5I45I5 55I |5I455I5I45I45u5IB5I5: "5I45|5I5I5o5I5I45I5I5l5I j u5I 45I 5I445I5I45I445I5I565I445I45_5I5I5M5I [ q5I 5I445I5I525I5I5%5I 85I5655I5I45I5I45I5I5T5I5I5l5I5I45I5g5R5I +5I5I5/5I5I45I5r55I5X 15I F 35I5I45I U 5I  5I/ T5I55i5I5I55I5r5T5I45Q5I5I595I5I5l5I 5I5I55I q5I5I5E5I5I5r5I5I55I5I45I5c5[5I5I5o5I 5I5I5 5I5I5 5I 5I545I5%45I5I55I @5I5I5$5IM u5I5I55I5I5;5I4 5I5I55I `5I55%5I5I5o5I5I45I 5I5I5r5I 5I445I  5I5I45I45Y5I5I5%5I5I5|5I5x5q5I 5I 5I5645I525+5I  25I5I45I5I5E5I5I55I455I5I55I 5I5I45I5I5<5I 5I5I45I5i5I + 5I S 5I5I55I5I55I5I45I ,5I5I5e5I5I45I545I545I5 5I5D55I5I55I5I45I5I5V5I5I5M5I5"45I5I5E5I5I5T5I45Z5I5I5l5I5I5o5I5I55I k 5I5I55I T %5I 5I U <5I 5I x5I5F5p5I5I5|5I455I45R5I5I55I5I45I 5I5|55I  5I455I5l5]5I565(5I455I5I45I45l5I 5I5I45I ] !5I 5I5I5I45I5I5;5I %5I5I5r5I 5I5I55I O5I5I55I555I445I5I5(5I5I5]5I545I5j55I5I55I45Z5I5I45I U 5I5I565I5M5$5I5I5x5I5I45I5I55I5I45I 5I45y5I45W5I5I5T5I5I5c5I5I5M5I5I5P5I {5I5I45I555I5r5T5I5T45I445I5I5"5I5I45I5I55I45(5I5I55I45M5I  ?5I5I55I 5I 5I455I5I45Is5I555I ( 5I4595I (5I5I55I5I5W5I5I45I5I5"5I " D5I5I5o5I5I5P5I e 5I 5I c 5I5I45I545I45+5I5I55I5I45I5I45I 15I^ 5I |5I 5I5I45I5I5W5I 5I5I45I5I45I5I5l5I 5I 5I5I45I 5I5I55I5I45I5I45I5I45I5I45I55@5I445I5I45I5I45I5I5 5I5I55I5I45I445I555I5I5/5I5I45IC5I5I45I 5I 5I5e45I c 5I :5I445I5I5]5I5I55I5I45I55w5I5I5T5I 5I455I )5Ib5I5I45I5I55I45B5I ^ T5I 5I5l55I 5I45]5I - k5I5I5`5I55%5I5I45I45e5I455I5I55I5I55I5I45I5I45I5I45I 5I5I45I5I5(5I5I5e5I55^5I5I55I5I55I5I5 5I5I45I555I4 5I4555I5I565I 5I5I45I5I5I55I5I45I5I45I5I5u5I5I45I5I5l5I5I5'5I5I45I5I5M5I e5I55E5I5I5|5I45|5I  5I 5I5I45I5F535I5I5T5I5I45I5I55I5I45I U5I  5I5I45I5I45I5I55I5I45I5I5e5I5I55I5I55I  5I5I5o5I445I5I55I5I45I5,45I5I45I5I55I45u5I5I5|5I5I45I455I5I5T5I5I45I5I45I5I5d5I5I5u5I5I5u5I5I45I5I5T5I 5I5I45I5I45I5I45I4595I5I5?5I5I5M5I5 5T5I5I55I545I5I5h5I5I45I , 5I 5I5I565I555IC 5I5I45I5I55I 5I5I45I5I5x5I5I5T5I45"5IG (5I45T5I5I45I B 5I 5I545I 5I5I5E5I5I55I5I5u5I445I5r55I 5I5{45I5I565I445I5I55I 5I5I45I5I45I5I45I5I45I5I45I5I55I55I5I45I5I5e5I5I45I545-5I ; 5I5I5Z5I o 65I5I5`5I5I5<5I5I55I5I555I5I5]5I55x5I a5I445I455I5I45I j5I5I5u5I r5I5I45I5I55I5I45I455I :5I 25I5I55I5I55I5I5u5I5I45I5I55I5I5E5I5I5l5I5I55I5I595I5I45I5I45I f 5I  |5I5I45I5I45I5I5M5I5I45I5I5(5I5I45I5I5M5I445I5I5M5I5I45I5I55I455I545I5+5$5I5I5u5I5I5/5I c 5I455I45t5I5I45I5 45I5I5o5I5I45I _ 5I5I45I5M5$5I5/55I4565I555I53 p5I5I55I >5I5I5|5I4/5I455I5I45I5I5]5I5I45I  5I555I5I55I5I45I5I45I5I55I5I45I4 5I b5I 5I45+5I l *5I5I55I p 5I5I5M5I555I5I5l5I5I55I445I445I5U5^5I5I5M5I ^5I5I55I445I5I45I545I5I55I5I45I5L55I5I45I5I45I455I455I 5I 5I5I55I l 5IL 5I5I55I 5I5I45I525+5I455I5I45I5I5E5I5I5l5IW 5I !5I5I45I555I5I55I5I55I5I5M5I5I45I 5I555I5I55I5I45I 5I5I45I45o5I5I55I5I45I5I45I5I5|5I5I45I5I5]5I 5I5I5r5I 5I5I5M5I5I45I ` >5I5I5E5I 5I5I5 5I5I45I5I45I5I5/5I5I55I ;5I5I45I E5I5I45I L v5I5I55I | ,5I9 Q5I5I4 5I45T5I n5I5I55I5l45I5I5]5I5I5l5I445I 5I5I55I5I45I5I5W5I5I565I45E5I5I45I5I5h5I5 5I5I45I5 5I55O5I5w45I5I45I5I5W5I5I45I5I5M5I5I5 5I5I5?5I55l5I5I45I5I55I Q5I0 5I5I45I5I5.5I5I5/5I5I5%5I5I55I5I45I5<45I5I5M5I445I5I5T5I 5I L {5I5I55I445I L |5I445I5I55I545I | 5I445I445I5I5r5I45X5I5P55I5W5"5I5I45I45t5I5I5(5I555I b5I545I ( 5I5I45I 85I5I45I5I5I55I5I45I5Z45I5I45I h5I445I5I55I5I5l5I445I5I5/5I ) 5I5I5<5I45+5I 5I5655I45/5I5T45I5I5T5I455I445I5o595I455I455I T 5I5I45I5645I5I45I5I5(5I5I5y5I5I5I5 5I5I55I45|5I %5I5I45I555I5I5M5I445I5I55I5I5j5I5I5M5I5I45I5I5$5I5I5 5I5I5l5I5I5T5I445I5I5|5I qY5I5I55I  5I5I45I5I45I5F45I 95I c 5I5I45I5I525I5I45I5I45I5I45IjD5I5M525I5I55I545I5I45I5I45I5I55I5I45I5I565I5I5|5I R 5I5I45I 5I 5I w5I45 5I5I45I 5I545I5I565I5I5?5I45D5I5I5M5I5I55I ){5I5l45I5I45I5I45I5I5]5I5I45I5I5M5I5I5u5I5I55I5I5<5I , 5I  _5I U 5I45$5I5I5Z5I5I5r5I5I5+5I455I5I5E5I5T45I5I55I  5I V 5I455I5I5T5I5I5W5I5I5W5I5I45I45"5I445I5I45I5I45I5I5d5I5I5\5I5I55I x5I w 5I5I5|5I5645I5I55I5I5/5I5I5|5I5I5%5I445I 5I5I55I5 535I5I 5I5 5I5I5(5I5 "5I5-5&5I( ;5I5I55I5I5E5I5I55I $ 5I5I45I4 z5I5I45I545I5I5T5I5I45I5V45I5I55I5I45I455I5I5e5I5I45I5=45I5I5+5I455I 2 5I5I45I5I55I5I55I5I45I4 5I455I5I45I5I5e5I 5I55?5I # 5I5I45I 5I5I5 5I _5I5I5]5I 35I 5I5I565I5I45I5I45I5I5Y5I5I45I5I45I5I5{5I5I45I5I45I5I55I 5I5I55I445I5I45I 5I5I55I5I55I5I55I5I5W5I5I45I -5I N 5I5I5W5I5I5O5I5I45I555I 5I45k5I O 5I5I55I5I45I5I5|5I ; "5I5I45I 5I45X5I5I45I455I5I45I4 5I5I55I5I45I 5I5I45I 5I5I55I555I445I 5I5I565I555I5I45I 5I455I4&5I5I5?5I  5I5I45I5I55I5I55I1 5I55^5I 5I5I45I I 5I4 5I5I45I5I5%5I5I55I5I5'5I5I45I5I45I5I5M5I t5I5I5e5I  5I5~45I 5I5I5%5I 5I5I5l5I5I45I5I45I 2 5I5I565I [ )5I5I45I5I45I445I B #5I5I5e5I5I45I445I 5I5I45I45t5I5I55I445I5I55I5I45In 5I5I45I5I45I5I45I445I5]45I45/5I5I5W5I a 5I5I45I5I55I5I55I5I5E5I5I55I5I45I5I565I z 5I5I45I 15I455I q "5I5I5e5I5I45I 5I5<45I5I5]5I5I5l5I5I55I5I5E5I . f5I5I45I455I5I55I45u5I545I o5I5I5?5I4515I5I45I5I5P5I45.5I~ 5I 5I5I45I5e5/5I455I5I55I { a5I5I5 5I 5I5I55I { 5I o 5I45l5I5I45I5I55I5I45I455I5I5%5I5I5<5I5I5r5I  U5I (5I5I45I5I5u5I455I5I5]5I5I45I5I45I V5I z5I e5I5I45I5I55I5I45I555I5I5?5I5I55I 5I545I5I45I5I45Ij 5I5I55I5I525I5I55I 5I 5I5I5o5I5I5h5I g5I 5I5I5;5I5:5I^5I5I5u5I J p5I445I5I45I 5I555I k 5I5I5V5I5I45I5I5%5I5I45I5I5o5I5I55I5I525I 5I5I45I5I5x5I 5I5I45I545I545I5e45I455I5(45I : 5I  5I e B5I5I5o5I5I45I5I45I5I5W5I55)5I5I5M5I5I55I5I5l5I5I45I 5I5I5M5I G 5I45#5I5I55I5I55I5I5P5I5I595I5I5T5I -5I 5I +5I : ]5I 5I5655I 5I 5I45k5I5I5]5I5I45I5I45I5I45I5 595I5I45I5I5(5I o5I5I45I5I55I5I5l5I45|5I5I45I5I45I455I45u5I5I5]5I5I5|5I5I5%5I5I55I5[45I5I565I # 5I v5I45r5I45B5I5I5T5I55|5I Q5I5I45I5I55I5]45I5I45I5I5 5I :5I5I45I5I45I5I5e5I5I45I L e5I5I5%5I5I5\5Ix 5I  5I445I T5I5o55I5O 5I545I5I45I5I45I5I45I45|5I455I5I55I <5I45I5I45I5I5u5I 5I k5I5I55I5I5l5I " 5I5I45IO 25I5I565I 5I445I5I55I5I55I5I5M5I45-5I5I5r5I45r5I5/45I5I5l5I5I45I45Z5I 5I5I5%5I555I5I45I5I45I455I 5I5I5Z5I5I45I5E55I5I5u5I5I5%5I 5I 5I5I5]5I5I45I5I45I45B5I5I565I5I55I5I5r5I5I55I ? L5I5I55I  Q5I545I 5I5I5 5I5I5E45I5I55I5C5N5I55%5I5I55I5I5E5I5I45I5I595I5I55I5I5W5I5I45I545I5p45I445I5I45I 5I5I45I45r5I445I5I45I4565I5I55I  5I5I55I455I5I45I5I45I5T55I5I45I545I5I45I5I55I5I45I5I5"5I5I565I  %5I5I55I5I5M5I445I ^15I5I45I5I55I )5I 5I5Q 5I ,5I5555I ?5I. 5I5I45I5I45I5I45I45^5I5I55I445I 5I445I5I 5I D 5I5I45I45J5I5I5r5I < V5I 5I ;5I4 5I5I55I5I5h5I5I55I e5I 5I , 5I 5I  5I5I45I5I5]5I5I45I5I55I5I45I 5I5I45I5I45I5I55I5I5/5I5I5W5I445I5o595I5I45I5I5M5I5I55IL5I445I5I55I %5I5155I5I5l5I5I45I5 45I5I5;5I5I45I5I565I5I45I5I45I5I55I5I5l5I4 5I5I5<5I5I45I5I45I " L5I D85I5I55I5I5|5I 5I L5I5I45I55H5I45L5I445I445I5I5I45I5I5?5I5I5<5I5I55I455I5I5]5I5I45I5I5 5I5I45I5I55I 5I c k5I5I45I5I5T5I5I45I5I45I5I45I p 5I5I45I5I45I455I5I55I5I45I 5I5I5u5I5I5 5I5I55I 5I , 5I5I45I5I55I55|5I445I5I45I5/5I5I45I5I5l5I e '5I5I45I-aM(N]~$3\psI*$f#.l$O"b+ݶ1. ~,-$77,B*.0 6.?ݛDR/ :)2  "k!X!Xk((k k"kk)#'H%& & p/[G(>7#->GF)Ld)”40dj*ԣ' M,*1 !!)SI1$"SF'1#6 >6'$& 'bRs:rw$  "6u$\*H@)L|:d&$s 3m()-$~`#LJ[3([N#0 P#b b'YTN3;XM7?.K?$2IV)c2R#+^_~vG3G*T*!!S3N)<N  *W}2+J/TTJ/dԇ_ct>ct_a>aԇd0]X|HK*ML>.-9*%sid"2*PF -%{tƭ#jC%dg.0)TF)k)F2Nj)K]> ~$@V,43)$^3i#2#!*(2)"nR4@p" s>u\†*+J3u1YO%-r'3mRR28e1soBO1o-*j,@4z1"B{ L.ʋ*;֦,i/\'26?#q%R$xR:R$]3F]@^N1e()c)cR [)c3FߡRT$JO~1Le^u$3F/8^9Le(( (!#$ Q3FW@Wc%#)[:9:^H[Ā[^ќ=G3F_u)cm)c:$)c e(1 [#NO~`=G#[S e(ܹ$)c=G1T #y3F:J3F2=G(P ^(/!3FO~1 O~(ީ$?O~1/$^#W)c23I\@1Z:K[(l Q(-v?b:?@:X Q19^6O~^/:3=G#((dR)cR#")(W)cI/@1 Q: O~3Fd Q3F{(1O~3F%$(X[^LK Q^W@Kj#Ye(^s$ Q)c7w1R3F!>1:&OR)c d:SK#5R)c#@P*3Fa # Z Q:%6-k=G)cTW#˧(Gg=G(^(3FL)c/LO~1`W#V%[^9R#@:DqR.:HP3FW[GsR]1@#=G#93Fރe((C@2jW:e()c_ Q^d+G^31RE1(Ee(.:1 =Ge(KTTǑTKǑǑRGD%)-2jz" 0K!3u-c9+P(1;: S-G i"2-.Pz&QO%e#D')"dFo?r!&LZ&#=y*H `1N$A#.RT&l(.(La$-b>s+.*.E1G0 ϑ&PL$279h3׻"%0Y.2}M(KvN[K2&<.K`'2) 2,a+'  &ٛ +1k(9y?"& '#ܐ!/Tq0< vGx&6% ,T,1eG*0!5 2e"(,,41>!Cd  -E/ .m$k# % $4&?*E!&8*s#6ب0?_ 8!'rA'l"C<$/ G0`kI3d'H1[0/!&]A7B9{ڃ*"%3}* 2M+W*`B#N$62:S' Q"!%R{)4- ö+*)n(ƥ1>W%=?/x^$+/  F1:1Y-  @'gN<K:?b'#b2%~-Y_1%o!"t,/4LfF(2Y.;( dѳ'ѳe4e " !fZ/l*1#}9: -$V OJO '?O3UOONǒKK(ONOZK3=K UK^KK@K ;Ki&5%²*&]d ,_2+M06:" }+FI)W^ 1!Z03r "-(+09.$-*<S*)[20;J&yN?<#^2dZ;zJБ<u8 %.+9'I1f%!I.-5])b^i(r'9 G3@ uUo0&P  @13?2j=r-Y+901G+y9_%R׳`{%"$2}X! -b U1" S+e:%1>.0`S?$&. #.j"!G<e"? 73d'#pxB'2#ƜF02a$kw"v*k s3f= )M`$kw _|)EI17+e+V>dt3e4 D4- 585if+? 7Ye38s f! f1W > d1Y T;;b255r4F5/lb:55/5bp1W ,Iff57: ce?"V ^ Cf185M5(w5/Yb*&Ѽe0 iJ Bd+0 xe%  Ǯfc'. (c1c44ޢ|4c5  W jg95<4]56mc$ ) jmg,n 4 N0؆f. t$b) ,-Ie'  Di c5 F/ [b|"  H c(  ,he.' , ,Rc<) _>mLe\ 455b3 @  e3 yMe:m b ~/08e6s44ag!/5T5k[4\b7G5l4|56c25?55"jc. "545?b`"/  aofE4 ?8e-5%57c:15Y4ȧ4,c.4485:b0+55`!4cK + 56e8 y Ff4N55`ϡ4Qc  ? )d(4 !6f.8[ p O c!   %c+D5D K4c(f T e(h5%5>5T4c0; Aۥf:*5M4r5/b[,_44L4/b%z Q]%e'uǩ[f,'w45h5 cF/  %b,1P f|644^4Cc(H45e!5"5h'4JcY* )tԲ b.8 <Ge(45?x%b$ Ge, S + 3fy0Y54r4d0Z45%Ѐb)5*5y eL)  "b6( >Fبf#I%Bve#L e3I .Uce/9 Id* 2 Jb'6 ڑ:fL3/ :f8 #Gc2# % 1ڭfZ)4 eH.O45Ze$44ޖ'45c+~U`f* % ^f5-$g6 Q?c0! |=:d$5-kd2 k m e+ g ,ct35 DF35&b/K5e5|d* " i^ fc\"1 q æ c4x݌K0e35b e P5B5T9f Q r ;yf1+45 k5en7- f@ 445m/c: D-2g#(QX'b4+ ;/Kf*.:v+e/.5H5'f5qbs8b45rԌek'55k24b%z zf)/  Qb*# Ʉ d02 4ԼeO8 55Jhn.c1!5]525?!b&`5?4;5"vb78 r ,[ e&55uc4ac7- P e<,5 45PDcy(L5%5Tb0 E _ c) ( u܇$b6L5M5elf;(45%:e+ Ֆ fa(4 y5bb~.5l5?>5Mgd2t5545/b/ L 8-f,  &xb$B559i51b%-54@:5bi'u ߰4e,{4 e&L Uj~fr0?44ɟ5M~c:4  Zc!455eb%E54N5}cw& a\f &  ,ef*559R5|c,45'C5qYb45456c8  E eY4 2֛f9u Md 55p` f5 h $tf$Q (f",W qVKe% u UNefl%( - Uyfp+| Ye35]5;5 bK   f&45%,=e% )"0fi'5B5T4me1:O 4xѾf2u U]Se9 8 'Ԋ f&5!54^5O?c+ e4 1BreC65"5:e8p f -f$ i b]: $ ,c2  Cd/ Lğf- I -&e{0 k$f>% { df1 0e4  Йle+ "<fR" 0. b#5T5uYˀ56!bm4 Uf! 5$,Be#Pu Vd/ -9f1 3 -eh/ 55wc(v5l5k56g4N5Y4ǚ4c# 8d/ v .Rc_8@ a& Ub1'~ dnd3e'/@ c"5455b650 ƺ5ve25x5D5;Kb@!  |* _b6O 98e84 Z e.  - Zf345ytGb)15e52+4b6551%Η4Hb3h44Pc-55 .c/ 5E5m5(bg.   (c,54l5ybO(  f#c44T4c#d юf/F5 5R4c' a  vd +x tep"Q559BL5|d25T54b5"  . bt" 5e5pЉ4bu' oY+d"5_5Cg&O Н #e~045v4b * x D?# Zc* + " f)44OfB/45l2&5f1 ِd1 | ۶d*L5T54ucU%5$5Ūۡ^e|:me Jf5W5 4$c41F5M4s5/bX4 v`ac5'5T44lc+U ed$ ;e744 WUb({ &"jf0 V ]e7B L d+, g5^45e 4b9* cNf^/ < g>e8:45%˞Pc!1j ; leI  †e045eeK8& : ]Yf3) ^ Ntf,5- %m5sb9: exu#Oe4 5T5O4cv3R w  ft5Z _  ib4? L \f+44`Ӹb(v D <15f&5<5/K4/bw+ T d&459Zze 1* " b' *e+ eU85e5Ğ4cc-a444c, ) {=c0ULkt|eB$V d4Oݶ {e255qA5c'm45|\4c%  j~ei(4 ՠێf8 "ci(ca(p] majf)S5 4 fT$5h4z5Hb- . fz/5r4Xʙ f{" ʓ /cV7q A f7r ݁uf* Ɓ b!54G}4c/55|35Mb4Z  "` e4[ n [Xe#44V9cR:B45b8O : Õ c^)  C <Hf"V fY*545lb"55| 5cP2V5T40.4c4h54ޙ*5b5J%e"9 ^re0q  sby0r55;144bz: B m_Pb- 4ٜ:fm75 f9 )  et' 9cM" ~f +5<4Րu5~c+5T4Ցv56c#? HF;f2-5l574cp+55K4b4  e+ D |Ѱ| 'd.5w4!5R4b i54BJ5bq08 7 e.0[45W4d6L5Z5 5%pf#L9  Vf#O 2c5 ^ Qe(5444Dc6645`ޯ4c04 !"5bn. )e75*4ܮf=$5S5D &b i44W4c% { d35T4356c$45d/; )XXe(&45P^5W}c 5<5/4b?5Y & e5Z S =ߣ bT0 pf0,45lE5f2 slgfJ# {  zsb3h5|4rU.c&5e5c; CI?e4a456h4b# 4e% jTc:K5l5xDT56(b>4  o($e9   Se#54 5$yb, FfX4^f /  \d'? u˅ kcu'l 5C=f 54c11X>>e 95>5O eZ55P4ݬ4bF955)feT$ qŽ"d()45rtàe2h5<4w5lc:44l4b6654 Mf"| C ! Qtb*W` $f0Y44if* 4wf555dT4sc85J ?#eR145W4br0`k ~f' 5 5rzc(({ F Nf'y545Mb' he"A % gx=b =55s5o*c >4 Do4f"B5W5o$wb6 [ ~qf(.&45%h^b.X {e7- -ze2r ' Kg7D WnWf"7F /f#%44 75 Lch) LЪg)4 ׉5Jg3  U (e+4 F!f7v ߆?e5`5 5V4c-5 4K5Pb#5M5p5/b* | G\f!%5T44c3!/ MȜve]444j4'b0 Dtf. x QbL! z <e,, 6`e#45RX5bx# K qh2e3/459l֜ f& e( J ܵe%( "m3f"s 1 S Ee%4504cd- > em1] 1 2cH"   ׼ c%6  Q>c145 e9 b (5645b\!44'56b/  O{f)5 -fCg .p d<e 1g5 }5Fe& 45XfQ155?4c5cB b z V: Lfd2 ,F\ .e" N,f2 ɷje!N5Q Hˊ5Jb"z e-L5p[ea:5M445/c/Q $[@e245d?4b08r45e9'45c"5Lb&4456b1% wL qOb.[45Ef( $ g+: xR 6cN M5}53%65Fc"2) Fd/ KuUf:5M5ef6 $f&SM8e"5|5?4bf6 э ;e(=55A4bI#45pOuc!445Mb.ļI Rc'55AR4bM%x ݃xfD/ 2԰`f9 q܋f 5_5BMe0 + ҷle# 8kf89 vw g 7454$c6I44te/ =,f: EfV,n UlRf%54ϼ@5lKb#Q5T5t4d' ef57 1 L+e6 Y YM5fe&`45{K4b!z rGf$P5M4ק5/1c'  C{Tez*54Ә5e9b,w. ;oeN&G44b:0 '~]e: %h D>c1J e=/>5e5|4cx2 + Һ ob$P45'5qcT' "8f5`595Ⱦ52b!q45O5bV-U5T5{^4b(,  $ b+$5<4ò5Ic4  4:g1 R*e6-5T45lc5 %Te*45ۤ0e7 ?urfx5 ge%  Z <3e( c ,c*h   2c=*i45u#z4c>25<4f}5sce"/ ueyf5r1 =[e-a5a5 ܫ}d*5 4lf,& eF85q4V14ic%45dL5Nc74 bc =54 5lc- * df83564ӝ}d'm4524Jb87_  d # U  Qf5!5 4e )2 ^ f$ \ve" ڱMUf$ ?`we/ 5B4Sc-0556A5`b4L45ȵ4lcb:65 5dƵ5Dc- s!L Lc!5Jj ZbC#f395%5c[7 Ǐ [d$j jf+$& ʹ Q@cm. 1 r?hfg9 ̊xcX3! N f0d5۪&5b+ D 2o b64454bY# j,`f$| Z % 1b#6 +f3/5b {7 c`, ]f45474e!E457q4b=#b f + f'*5T4 4b8 f9)594$5[c16 ( mFg!)55YV5b:(45rb<* c|De7$24 5ie6~44U4bN553 D 1QbQ%445Myb-6 +c& Gd0 ^bd*p re*q44٢ b5 `1(e&45MVf255H?5c4 ?es8 ) ef6)T @  f - Ms#f2# ڃ-Te-545hc*4414c&n44E4c%5Z44d" c̀If" nJf  ?N}b7,55l[4jc5`45 4d #? V g8k  3cJ/ ˣL 1b6 , e#d +sxe+P8[ Dd6m ( ff045W 4Xb". Rf5: Qej#45(S5b(-5T44cn+ Eqg'`fh$P5 4{c5Pc|3l45e7#45rAf*55 5e,/ p eTex0l  bW* f}4 #e'5}53JӚf&k s Qf22 j f5+454Q5kbA85T5.g4b0F5T5G4bR0G54!5*bS9545 b p ˌWd' qf\( Ke'55x5 c#0+5Y4ۧ4jbP8y {Ae95C5f~ eJ&45(K4c*8 [qbe&/54::4c#k  e 44f.j  6b2  k*f7:_ o0eD:a/ +b+ Z Mc$44e,p TfF#5T5Y4b! j 6c+fk""Pf,T5T5ͅ4c]#0 p ֳ|f$ Lbv. Vbel2545xcG,454 c( Hf"  V /Ѩ c#44s5]Ob:? 3d1455;c. GNf5+565([5Qc*^ = d6154[5c'e475"5x.4b1 1\Mf9  ` c& [ !fS4f h ? N9d(65T4Q4b/5 5$ȀX4c9 R>+Vd7 Uf1L555c045P5W1c:44 f- o yKeb6'"fw/W8f7rX ^')f,5M48H5/b$4" $Ёb&$a5T55]5d6 ]fq4` e#J $@Xe!*45Zpf644N4cr%45Ȋ4c2$ k  ne% 1 Äf)1 Kf,t4456Hc$5r4$f8fu b tŬ2e:5l4)4c#)55e4!bb$459{M g *W +Mf4 uCd:u5^W=5 c.- L V>gd!  * c)  Y :f/545WU4PcZ7I  ~~e4 C  f. sb3145W$5]b1 $2 b*> V]e1] T $b05T4eA5lNcz:  G 1 c'=  ۉ= e1p rYAf-5l54b//&  vc1T8 "M߷c2"5Z44{e$U5645c'w5655Mbh4H ]3f2: K m ,b!z z~e/k ^  )f3 4 z4ab{55 pS^f[2eu ٯb}6  :e* 8Vc6 ,9qCb1`544b vi ! *v|e02 {fn!45ْc(5:g4c3 Dd&:45(˜c35J ph "c) f!` v\ceo"55u~z5bE0  ΰ f."44vÈ5eEb!#0 f!5<5όc7 Ne5 # fU' +Ȅd#`45Z4c245PśJ1d,^5i4Nb4 p `f:{ ufA) sÃf)5|5uײM4c3 \҇ oe)2 <Ǡpe*(5M45/bc, e6e.0445gc%5T5R>4IcC1'5l5ARɌ5McE45iWw4zfP%o f&/  L.rf`!5N  4Wec! q  b75m4 ev7  ɅMew,*55;5Mb:' d)f:6 # ke  z chXe`) 2fu  (A3kd+ .qb, _ %Ve56 , 3er# ƿ+e9 &f8) [ fs:50<ff8544c2  ` e(445Kf1p gӠg 08 Y"he+ b 0`e4/~  c 0+45Ws 4cs6 &ne &A55MD49b'459Ld*44-2e25^5beud% tŎ b"5?4ܱrc( M]fj& BeA# e ;c~2L45/14c9z5@ ZNf-155`4Tc*a ]&e4 W| ~cW$ ܒf K n +U b154\U5d)B C ^ci( 2 Óc cl" 5<5/y4c*>  Ə~e3 EJ)d'i  Bb15T4c4bU  L d/ t e!54b-.44)4bk, ]g)U54TT4Ec%2 Qݰe, B g ! ) C %c: X  c 7b;"55E40b7 "T ^.c& 'fv55T5.@4c' f4V 1 m%c $Q 2 ҕ{f'S Jf*45 %e1 6(f4[  e:  ^9/e7 ? c &f$@44fs4c,5 f˕eeV2 Ɨu c5#  eW5%565~b">  f&  #e0:5 :5b)545wc% f06  ǣ"f8r45#f45?4>O5"kb$L y"e%45 5 0bl/ b bhe%w v (>g0,44֩e0-55?k5bB) ; |hey155u35c# ef5l5P4׻K5b5m q[0\b$45i56b' { U fO/k FFe%% f]te&:? ]f$"5T5kȗ4cj6554cc5NB 7 Lb.55;j4c (A ( fI45B5rob8c45lz5f6A  Tkd)1 O;fe/ 44ʚ4b!I Κ%eu& _vf/; w kce! D1C f- s c Be+ f-44Dc 6 ؍2d/ }#e[/5u5YW5Wb"z fW)4 6Ճ4b5 eq% |g-45t45q_cL3b  e%< F VWba(445l5c. f eX(/5h5+5H)c2u P]f345%MMb3 WR> b)" R Eb"4 u5C9c*5iέ5Jb$C5%5M5b*55u954bG+45rc%45C5l*b^9 SM'e3.44D5b, Mf1$& tH b8 _1c)!C54c+ Sp^ yc9x lSe(  Hle" d- ) AZeg3D 7e5 { Qҏ ec455z(4tb! * \e(45q4c (/\e% , Zg-15|4-؈5c@-4 %!a cA/QwjD 4[kd7S  xpfb.' R, [c:  g5u ` bgFd5u ' )f!/ Ӣ2fM:) e xbj)S5E5Re^%(  qc3 ie:4Xe 5 1  f8i{`5^ De%45$f+M5 5T554bc2 $ue:944Mg x  c85?4̎4Ob4N45W$4b* p q_d-54G56Ab*5u4H5c, ҍ b+444b.45r„Xrb#+ +  >c;(v45 &e1F452Xco" ('SQb*^ ` ? fc05<5/ ٵ49cI!C45r>b254Mư40c* | ={c0E45(pEc3 V=̲ Dc9%N f ?O c o = F4c!I iB7f<'5<5/Ղ4eb  \f?( $eP*G444bZ9z44xe1 )^ uck3 e%e+ Nd 9 c&+5Z4&cD)5%5M~>5 c#F e245Gt5lb6 6|fK!X _ e:5Z5Ӳ߄5%fN"5B5r!w+e_05P55$+4Dcg05r4*f]445{ &4d!45W_5]cQ-5a5 [c"54C51b'z44͛]Sb. q xCd/445c4W ϗ :d #  &Ƌd22  g   ױ$ +{f40 нe2r e4 4 >ގf6, Eb^NfC42445d6U45(JR5Mc4d a 8f+  f $5"45bc:45kv5h]c3M5l5T(56c)X e4q@f4B ^7 c-444d-45%g8/ 5 wxbD3 D źe35)5p5e"K & mԥ b( ؤ Ad-5M45/<b7 Uee1+5l5I[56e N # ]c, "e-+ 3 c&% 5#5Xe$]  V^e f~.5%45<#c8 ZOmGf85 5Mf35T5'4=c8 bb,"Y d V5<5/34c?'45Mpf%55514cS,L44 w56b) )[8c3 ! Scg2 w(f Dg.  Ug55Z4cO e :ٰqe(t {td! ixeG,3 v hb%555oc/%5u4ҡL5 7c0+| e/9 fG6s45l5GfH2546X5c'5}4Nf:' p^e#-N 8һRd 055K*Q5wb., E @lg U c8p ;[f%45Ef 7 55H˚5Ab( f!5B5r31d+ : /G|c$ -) ocq'  d1 q ,JbH5h  ý ~c,544b_444SEeS! 5^@ e" _Lf05E5?ʸ5]b8+5T5]{Rc655‘keQ9 Tc8'5[5G3bo 5T5|4b5 45;f). f:565(40b!t ! zj*e>-  Vf- : kWc  e@9564شc{*5E5Њe}( ef844^5hyc}2a4515EVc0~5T4:5Mb)4 ^5JZe6 D # eM/s ڠ c 744[d&  e$, Ϻ<g4 .  ;f!$ : k J/cf#P ϲFf_  >qGe; 5 U5'b( =htf) ,e2)y )_f7i 5 fld1 p :\.d+O 9b+5r42e8D4564c8F J u~f  D ,Le2$ /ge05]5P]%d, +Nx 3e 8y 6fo%5T5|4hb+e55E14bJ5 ' HeE'-4f1 > أ%d-, 1  6 f2 U j=:f!ԓ ]g0$Ka&F5GGqG%G"G$cK/3 ],' n ғ+sK3-5LW2 w%'&1A:ZwW*J*[.sS$g U"זz*e"}).t*>(#)7']!m-6F"s)*$1/I[(dS1 T?qJ)bp,.02 l4 ,|ao7&3/.{p0 Tc#3tY٪,LN)0Fct:2"6'JZ"8b;c0,,#+ڜ2 R2YX9#p.3-!rK&j @GQN*Z<+6,)J#j "j2C44@4 4C44{]w444+49444l44G(449444~4h4;4Jr474b 4446p4M444.4L44A4n4L4ev444y54]44444444S4T42$4bM4%4E4z44404a4]n4s]w44[q444494I4 4XE!4s F֤4.144?44$44"R44#4N4'4(44+44i`4>44444 4m4 J4K)44!4V44X4-4.444444 4u<4+4'4544ie4c4/44oG4q4 4v!4wZ4444,4 5I44$44r4 4V44Q4S4 4x4)4o444R44U4444,g4c4454L4G4%4&4s4rV4%4@4M44N44`4444 4 4Ei4 4]4444144D4s44#"4i4,4444H4444]wA4444K444.44 4/4444p}4/444n4l4hJ4444Ot44i4x(4W4l4_4e4uf4404~4 v44z48[4X 4)4P4%4q&4=4*444M44qT4]4Z4V4.4#4Z4v[414<@4|4k444"444S44\4D4Q474@4f>4444#&42444/44:4h4-4446z414247444%4jk4<4 494* 4 444 4L44o4Gp4+45447-44E4H4k44~4Z4[4~4r4^4" 44R4k44a4\+4(4n4Rf4T444B4Q44?4p44e4U4T4J44^44 4b4>L4M440T4 ;4P4@444*4K444Q44&4a4S4B4c4-44X7484 44}4B44A44o4p*4W4D4@4t444m4?44` 4b444,449T464a4!4"44*44Q:4t443484s444$4\4!44404 446)4444a4z4444j44 44y4~4!4)A$4s]w4A4444b)4&344;4E4S4:"46n4R4|444{444T4U44oe474F4K444N4O4g444N4444{]w4T44xl44t48:444E4J4"4 4344]44u4R4C4o444o4 44$4u4h4l4m444u4P4X4.44Y4/4 4v4 44w4>k4444]4 4n4M4N4$4 4,4*48@444p4V4k4424{`4-=44444m44]4<f43g44*Q44444}4:H4dP444P,444x@4|4?4444,4W{4|44444/4s4Yx4:w44Q4|4C!4@R4444444dk4(4s4444D4E4`4v4,4aZ4[444u444444s4tX4A_4s`4{f4 94'4 444U4j4.434#4.4K4T4}/4;44 C41G444 444,44444444{R4]wq4 4" 4A444I4\444{4474w44U44:4;4?4m46484A44d%44g4Ch4.4404944+s4hx4 y4da444I444)=4444b4Z4-44424P444h.4=444e44f4d404$4}4{s4N44444Q(4|*4 4K444j4>4T4o4V44Mx4'D4y4(44444<4S44.4Y4L4f44Y484-=4}4434"4x4Q444^4O4C]44444Hi4h4D404Y4Z}4s4N4b&4P'44444T4]434rb444f4)A4gO44t4u4r444Fz4{4444i4;4\4404^4^4_47434f44i4w444U44 44P4$4*464y,4/4B4?4/e4|444'4 44]444m!4/|4|}44j4?4=44724s4<4=44&4z444F4g4 4(4s)4 *4t4]w4W41y4;4,0414)4444d464?44m4j41>4?443#4*44 44z4q4a444}4s444FW4E4`4^Y4BZ4'4 4M44+4}4%H44$P4 4T4{4444)441S4<4E4:4J4.4x4y4 %4%4.4L44[46474C84D4%44X4i4j444,478 4s 44#44zz44H4404`14a44~4D944K4l44@1444Gm4*n4+444f+444+4n4424/44%4sC44946|4$444!44Q4444U4;4\4=44F444 4qX4$44A4%24A44_484u4 44B5I{44M42444k_4m444w5Is44444}44E4UF4VU444q\444484g44844444s4-s4y4I4D4k4,4x4`44644o4x4[44z44XO47)44b4J44444454c4B#4{]w4lL43"4 444444d454P84~64(G4V4{j4L444e4\44K4LR4"4f4/4444S444&u4444'44F4444,4 45444>44 v44(4#b4#4O444i44Wg4 4Y4h4494:4@4H44n44 4F4-4*4U44b4c.4-44m4_?44F4>4{4N4v4,44e4G444h4Y44<4=445404r4s4R 4444[o4m44:4V47444 44444M+44'44 464y4E444e4&414"4Q4^4e<4=44444u4v4444 {4}4444 44'4 44 4 44+44p4oq44q4L44d4N$4%44444"444B4444f4y44S4+.4]/4^4K4k4N44f4.4/>4H44M {4$4Z4^44444yh44+4~4I4I4X474;44n4)34W4r4A444E4>4444T4G4!4444w434G4;44:~44jO4 "4&4=444lq4r4/4 y44l44s4j4)4c4B4W4P4\44H 4:g44444C4C4ID4J454424"4c#4#4k4&44:4n4(<444X4O4a4! 4A'444Q4:424QH4kI4p 4!54c4v44444!4544_494:4ho4|44r44# 4'4444444$4&44444e4 444 4I44 444s43t4e4o444(4w4T4x|4GR4]w44"44441]4644w4md4K4n4^S444$[4444 E444 4q444-44~44| 5IsD444z4H 44444p4Y 4ZL4'44|4}U4V4`;44.b4U4K4F44;4{4=4G4#46$444#4$4-4n44Z4544<4i4*j4R4 4y44cC4r44^/4~_4^4_4a4v4*4044W5I X44-4l4V4144g44j44 V4?44?4"44 l4544444@A4vS44Q`4a4D4( 4[4444p4444404445Ie~4uB44F4?G4@@44(4)44n 5Is]w4k4~4044u4&4M{|4>B44=4H44&444O44[34444_4H4&'4%444^4_4 44>44ji4t4g444)4k^4J_44W42 4V4>h4~4m44O4 4zX4? 4 4N44i4444PW404484)444I44{4j4J44440x4*44L44<444d]4;44Y4Z464=44p4B4444444444I4M24c4444424~244N<4 4444{4I444g44Z4[44 4!b4&2 5Is4U#4K4_4(4g44F+44o4(4I44t44u4444n44%4x4[4/\4\4@44p444#4`47l4P44M44 44!4H44Y4E4F4N4*4%4(444Sc4J4444}44s2'4%z4049454 4-4l44C4Du4w4s4N4`4d444b4644444wp44{K4dY4>44d444c4r,4h4<4 44<4Y4t44444c44V4W4 4444 4 444444J4K4 4244R44B4444!4B4+C4,M4&#4a4O4\X4Z344l5I144t4m4~44w4W4P44`+44'4\4944-4454vv4w44i4444z4_441 4t4444447484r4W4y444q44!44[444Dd4]44B4I4J4444 4G4}4f44!4444O4Y4-445q4M444 44=444"R4'S4>4S94&a41C4r$ *"3.>H%U9hY) TW%!x,q0-M ($JM]2A4! Q D DM$ Q DP] Q D6,P Q DBZ *х23R62  Ԭ!]+v-])/40 BDS%(Y>%JJ:[3D%Z2S/ς10";3ax&q/}[`(mv\b|,,~)sbN$u 0 FO7`*Bjٸ. ; 8%"M &*aR(`{Uӏ++aȑ p's}@H*:t"6% '/q(kP!? 01U׵&+Y.(Q.%1<Q@/lrB F(2'aw,.TL2`VRG*_09. 41$S4^IlN ,[ P%'M9 H`E7hU%0j"6%+!{TP, b-(>{Bm 45#  a+7%jA)5&, k%2Va&F`-K+ʝ 6;k#i!P>B5|; h0(+Y7@B ސ#O")Kֹ;LS3'.d+[1P*q/V<  '" c$2$?]**K#/g)%,86>/[0M! Xڵ'$kcQ 3P.ߠ/f?TD/!&lJݵ !Bր0`<(՝(fb)XW+W/ Ty/62#q \:'gj.9K  !!2)J1 =$,1У6+H<1#S;MT@!#c")wE1L&]31`bdKG%H33&#(,*Iq!CdMF.h+1,93d- Vs!~% I1QZ/ _t$BU)G) /V&#' %R͹)V/Lؕ0 [Q, /? 1$-cX&Q&  :/6!?@KW lV7P K!lN>"_Â/*/ ""KP]FY!39=,O|M$P+0/2?,T& Z`21(IZ  ?<0}K ?`)  I!˜6r& ;$y3Q3 */%?-EK"LP|/aU.()BЭ!6#XG%)MA/(b2&\](("(%3; ݉3B`  31YB!H_ۻ*0G&ɼ./ T'#q i I O* s 21E03N-Y:U.=/(*)Q.Zz21Uy!1[(U@Y.r3-hI-h/8p'!5I+%`1$L$&\-EQ8N32V"?n3-d#.D,4O&L/x60KMSJ %5&K1\c'#1>&H Y><2 (yʊ '%R"cc1DgQӽ'k[ S2}[) u?˥$&7N-b0H$h,Xh1kL*/KW!-V{7  DoO -HN! !GqlX"@.ټMG9*zނ#"1+ v'!/A2ݔ2gq:70I8c%+E(P?R%$62jX9/dES5]D @.7 ? w1x[$Z/ h:&Їr6}3(N- *Z$7B"2&y ">j$O1.c+_U*J #,.,>gS'-z-11 b)+2m\ h^2cF hb9F3e.A-cjb+ct2b2cw*.AF heF!b.A\\cKeRw.+#cSH 2 d2c9J h3 fW hf -bD2c))>fAZ" hbb.P+d.A!eR.A\R" he-b > hR" hcNIq h:@" hd0Y.Ac.Abo%'b.A2b!b..A C hbMc\c2Q hb0b-e2c cA2b6*R? hcwZW h0c.Ak2c2eX}2j'b.A2dF hq+fA.AX hdl\c`u[ hb+'c3b.?d0QM hec\0e\.Ak'c2bb:. hc^62e8\b6-b(c_^2bj.2regbSJ hc. ePcJ(f?gF hF2;C% hN hcZ" hfCL2f8U hf"-f-bPW he=c.Am 5?e2bx2.A2b<PB hb4-cH-d2bPF heF2b_9 h<6bn[ hc42b>-c C% hfc:r hfm;Iq hb-c:r hc`;-cUO2cO?eR%cV.A(2d9[ heZ hbMN2bA ce-c^40b1.A|-ca2C;2c2b:-c)>cq-bF hcq-fa >U he[9 hf<!l-c%;.A(2glW h  bT2b|jV hf(-cLV.A-c-c 29(b.Abl22e92c^]1Ffj.AY-cMC hfCr-b+2b}C h/*.A2b!2cm@" hf-c2.)>d%ffY%fcY\{ue2bp-bH-cbM*c.A_.A2b@bQSR" he2bIc\AMc2b<%'.A-b}@" hc2b*?bTR:x hA@" hfc}3ObeR" h2!] b2b< hv d5:x hfUA,BP= hb,2< hfvd.A3Ocfe,b{B0Ycu.A2\ hct^0eW hbJ h-bH-b54Ccc.;i.A1F.AY2bvW28?cA-b=P?cX2ee-c])b-bB.AHZgR" hf29-c3pbV%fY-c}0et.A|^hR" hfeR" he<-b]Z hyMJn heNfbT:x hfA2b-b0OC hr0Q2b1C hfr-c(:r h{;Hb2c2v-boaQ hbTb2Ccb.A)f}C hb03 cNCbWL8b hf[foN hC hC hcr4>3 fev2pU hg2b;%'eo.AM hcM hfbc-c[ hdW he8b he.PB h\2dv"$fl.Ab9-bU2*B.A3 e2!R" hf0-cCe.A)ce3eo.AX hcl0fJ hg2#e.AE\K:x hcA.d 2cv2f2fx fo5-b(2P}c_x-bJn hcN@" hJn hcNU he>f(2c;U hd-c+]2b. e2d"$p.A2:3.A2c2cHcXg.bCU hdfU}b>W hb0Qbc2tW8b hc.EVe.A)S-cS.A7$ hcib~.AX] hegb9NbK.AC _-b2c8,eB-cC% hc2b%'e.A2f.bcwoww3pP-f|(2ej.cV .AJ hcR" hf(2d!d.A cl.A3pV2n-b= hcu2by2bz5+cq.A[ hec.A3pcP-bR=-df.A> hbC he3f .A2cj{c. c2b-b2ck4c`.b#?R" hg-daI!f.AR" hebf^"$e.A2bg5R" he2;c"$c.A-c-c (f1F.AB1Fe5.AB.cV c~R? hwPi h$c3 e2b9bT.A-b_2cVbv%'f .AC hbP c>2# .AE2C h6^R" hf}cMxbH3.2Bj(!.A%b.A22VbdO-cnL.Am-c}=+c;.Ae=.A)HJ he2db0n.A|\f\fmueS2b.A.cV-bDc1bwC% he&2bv3 f0-c<-b-cH3 cWhb-b2b7}fx2#b.AE-bV4b fb)U hf:. he62d-c+-e}-bs2#e=.AEfvR" hf2c5eN3b.A7$ h2cGO-cB*c.A2R" hf/-fZ" hI1f!.A fmW heV hcX] hc5-cvZ" hd< hc=v-bC271Fb.AB2#e.AE-eac S .Ab(g.APi hc c2C.A1Fck.AY2fvQ h_R? hfw2f})>c;$!.A-c3%+.A2. W he1.ACCfL0.Ak-fac/9 hc<9Od.A X hlJn heN:r hf;"$c.A-chQAM hbc2cr2c1'd.AHbeZ" he2.-e\!6!w.A\2+}}x .A)?_R8b h:. h!6e0Qc%Cb.A*bL.A-cb1SC!!1P+'.$"QKS+v L+z5p$7\@&!Wڏ(PE]Utg= o(!|].O*&W`a /\R,rSq-bݩ S*f'n2"h_# ݕ2\.L !  , +IH7vU}. b̷ 23%<2,#-2_K(! 3 >tD 0JG2rRBe=/)PB4` ;/O+ 3$9! 1ĢS4-2$*Ms'F{, 8PN.wVY)[.Uv.3P,L > ٞ"i2,K$+#C/O#<)}.0% ,&96&9#&9<]w1\@۩4?a:ܦ49' 4BԤ4>ɏuz4(4A5H4>˒دs4@˓شu4>oӵ4BpӶ4??4? l4]Ϛ4?Tw74?x*4CQ|,4AN4C ݗI4B6(݊4>B$E4=Bo4Q@md4ZV64.XɌΜ4>߻>4?Ѷ͝4oC54Bs4A6ِS4BّT4>KװZ4@_4 A[P4ɢE4@ɣG4~54>ڞ54Pn.44C7<J͏4>,߯4?ύB 4"@=4B148?}v64=>xM34?΋ 4gB%ϧ48744(?,Ў!4tA4"4[4R4FC4B 4!A\ߡ4?ߢ4#Byߣ4BՍ4@r4Bqw4?8&k4?'n4Anב4AEr4?ІA4ϕڹ4@4wAY4Bо4V@XؕXB4Bt4vCs4@˾4B$&N41B4˥4`4B ֙4?Ӗ4/4@{Hi4MBA4?!4UAZi4TB*`4^C4ԉʁ4BK47?ϗd=4-?/ӐX4BΕ04?4p>Xc4%T4B^ЛH40@P;4Ad4?ݚ47@^˳Ҟ4z-r4&>lKУ4>נى4f43`bہ4 >|4+ 4%A?B4in4ʇ4r?0޲=44x<E 4b?[4AWAܾ(4@٤V4q;}4~>4=B֖٨4BV 4e4s>}G(4B'4/>(4?qԝ4BQQҎ4xASҏ4Ue΍4+!4p?GY44ԑެ.4@XW4`@6ݢO4>>pآu4? YF4gϞ4? 4#4ANʦ4b?c;T4@B*=V4\Caʷˊ4uB {Ւ4K?=ڵZ4?qՠe4<׳4ux41?m4%Aih#4>^4 >ڄ4t:͵4BvHׯ4IpIТ4?Cb4Dץ4;AlUі4Bغa{4 ѝ+.44? 4dhа4@^4{@#4oA~4?˿4BMsj4@@T4JߠA4d?HL͐[4>j4Az̉v4>ұ4?i.4D?F44ت4@S(.4 nq4I@Z ·L4G?Vݼ4*Caa4϶ҷ4A.׸Z4rAR_4>J4B ?42oe4FַA4AL4|7i4?՛[4lASu4>c04{@ ʖ40Bcٸ4xyϘe4pJo4@4 B^ \4.9K%x4@Ml24IC8̡I4C܏T4Bu4#?MX4)>Y49?;O4>մ>4 >̃̀4@i04ϭ 4@ͨ 42AپC4@Wh44o4@܊(E4 >ԯ4:V4C`+ϵ4C-ܓ4Al@4*^<4F*QБ4 @ Z4CAm4Bν24Axu4,AY4,d;44ݩ_|4CK$W4:=tG4CO=4?XNӆ4(gۻ4C*߆-4q,4eN4Bj4l47Ͽ4? k4'4AҴK4>ˈM46?]4DA^4@J'4>g̪҃4\o4?@?ҬR4SA̸4,A\ؽ4AS4jWjKj4>kLk4Aݘ/4EB)m.4MAp04PfRی4? {ґ4&|4Aͼ4gAw:Ӵ4`44@tvͦ4@,)Fe4@-*Gf4؍ 4a޹{4AԳԘ؂4?AU4k4?f4}ӫE4>]k4d?+>k4BʍXt41>ߥ4H>4A4B4QC3ۥԎާ4?54B&ϩ4BiW4B͓4$?e Լ4BDj4`?{Z4@1d4b2e4AOvC4.Aћ44&Z̜4A>J4A<8V4>_@M4Aʈ4 ?u4Cׇ4tC B4@̖d4>;gf4>*Ѣ4dқj4))4BZi4@͚34A#Q4Aض4>ظ45?24|>VTɒ4@T4?;O4@S _d4@[4>y4!iح4 C ֿ4:dќ4>L<44gBjJ4C&ق߼щ4CXʉL4@ߝˑ4P@ ԩb4`>44lvѣ4>&C4LB˜41?R˝4?@"D4@|n4?3q4hA4V4?&4,?<4,S8A4B{94p٫4=Qw24n@4ܴGͻ4,oqؖ4V?fHz4J?-~4AV04u@׌[4qB7ټ4N>C4AQ47?r"W4AB\4Խ4/K<}4@͠.4?*4*BGL4A4Gϴݛ4K?#4U[4q?|}4BՃM4?p4C.D4<?4>ԂCԃ4,̑4[@w4^>ϒ^4>74@4܈/4?ջ4>Aս4?PBږ4?I/4BR \4%?ъM4Am>ڶ4hӥɞݬ4)_&Ք4S4AuВ4 @Г 4+4X?4A&1m4BL4o4@_j4?d)ݎ4e4'L'4B 04@M43?D,434^hB>:4b@ff4p4A+4@aӏ4&AɻN4C r4A4B4h) L4@@4>Ϣ4*4ג4P?vߙ4x*d4A Փފ 4*CОp4Bʹ4?n߲4hZ4y@Yl4Z?J4>˻l42Ϝюׅ4B8Aڕm4O@E4f4˰F4O?ʳ^q4>ʴ`r4{v4q6Hc4?$ 4?a4$@uk4d@;Ґ݅4C-4@`z4?:4rה4/ۨ4?Z4uHW[4_@c4@:4RARp:4֒A4?^Ӭ4Ֆλ@4r?ݶK4Ҋx{4>fޣ4+?PT4}!4k!4JՅԄ4-?؛%4@n4@Wӣz4Z@4R^Ѹ4k> 4cةϲ4@ak4&B04~A,P4y?Ytٚ4٪՝ 4ATΩ4?F%4r/4??]Ԇ4߉a4AB#a4kAyd_!4?]ϦՄ4g?#ϨՆ4AbѧE4`{4-?4`4/C%94BBp4|146A4@M4>ۈ<4BWۉ=4BfT4MC.`P4V׫4Bɉ4$A\4%Aְ 94H@:4$-44?܌z4H 4@BH49@%ݹ֐4@&!ݻ֓4?lɛH4WAK}4Bs4ٺ4YaZ4@S904@^}*4HY?P4?"Sҫ4(Bˣ488ӌ׈4{>;4iw4Bٷ04?i{4 O}4%>34Aq԰4? |s4?V74A?л54%ʜ4Bɇ]4z?c4xn3!4zϯӻ4?{4/Cc˔M4? ̞47AKPI4{u14C&~4BOr 4=Bٱ4k494RALk4WUݲr46AP˅4/4W4B:ܑ;4A*w^4IBx`4vB ɹ"45@1U42yW4=4C"g%4CG8ζ4A.L4qJRݸ4BFDӄ~4BO4FAX\4'.g4SҾ4.?.P4?w߃4?V߫4Bڏ4?m̄ՙ44>bނ4ר4HcЙ4>D{4@>4@ 4*O4B?lʱ4]+4ߐϥ4 B'PQ4A[r4I?\ s4ʡҜ4kձ=4AѼ4?y{/4I1߀40AvjJq41?P,B|4T>ۢ,4B<ۤ-4X4Sԣ4EAև>4Ca~c:4?@8J41>Nn4_@cq4sF4: ۜʒ4LɋΛ4w4v?=ܩ4;>ʆΰr4zJ4>ۚ4wC#u5S4@'4aCף4ZHې4%AL4C]*4N 4BYnrE4:I'4?ҹٜ4Aһٝ4>ˌԔ 4݀Q۱4`548@5?I4 >U4LAV4B--4SAޓ̱42Bא44_@>4ri4pD45Y4?h{4!?{4B{M4OBw4CNz4I` 42އ4 z̆4 l̈4B(4dTЫio4lBߚX4BG4@ֈ44Bc4A'4 A{ܸe4{Cݰ4ANӒ4?jo94@uE4Alر4]mز4\Aӷ4`Y;ʂ4@|4C^Ҙ4@Pۮ04A+74@9ժ4?04nA;5'4@l14ܲw4MA4sPه4!?@4Bܯ`4@w(ڽ4U@(м4A84/?G_4-?ޟQ4:04!C)14/AӓP-4>^Rߓ4B;:W4@BڿՀ44>p'4A͜bД4?=۶4 C,ڦoг4}Q4Bp ʠ4 ʣ4\4(@$˨4@}V40AҺ4@ 4fAJd4fKe4C'$4I4?J4^@HM4@ˬ(4 n4>4]t4C ~ɪ 4?؊4@{4CA$4cDI4-A̭*4AWGh4]?U4l4@vqp4z@M@W4G4C+ˢT4{4-mѾh4d@؝i4BͶܝ4x 4S>w 4[A! 4B<Ї̀4m@̧ 4>yR˦ӯ4>\4^,14>v4ׁ4KPW74mC$4QA &4AM%K4?ؘۙ4Jx4*34cPA$ 4B>DA4L:45L-4?L4P4/߭ͱ߰4@+Dc4]4A4Շ)4@sFͮ4lGͯ4A7s4ו4@W~34ArQB4@RD4ѵ4>֟4:?d4B˵4|d4Y>6%4^#=ӎE4@84>Ι4B\O4CH4@ذɿϝ4OF# 4@E4v>{4 4?F4}=J4$W6п4A/X849P`4j? \4?@/M4tDQۼL4B@5ڒ4Cu4 4Z>Ci4(ws4>>r4??s4KBm4_T4?Ԛ4v@Я֌4\@)d̷4ApI4PA|;4<; n4 )X4);ء4J@yј4@љ4>84Bc4J?dݝ44iac ա4>Sf4}/4yQ̤4@94@4Adfq4c^ל4~B@X4'?^B.4dv242Bou4nи4(BӔ4-@j4>[]4Bu4iB4k?ؾF4̍4lR4?W4AUُ4?iI4?3٩4@to)4BJA4B0ι͈ɲ4,κ͉ɴ4>_Nވ4BU04@W24MA!ԧ!4B)R4@-S44?ʬm4^ڀ4y89̴4nՂ4I'44A_* 4$@J, 4C5Yе43@[ҥ4>Yx4 >4?%!-4 An=4Wrlu4\ަ4Y?Y4"B 4A~_X4>Zֹ 4?zl_4?U g4B4U?Uܙ}4B 4@0.6څ4?}ۣ4??4Re4@?_4P@ʓ4Yۖ4>y_˛4'A .k4g>24mBԵ?U4g>ԷAW4OW4>rPΨϳ4?b׭4I4B84>94~Atիw4"B 4AN΀V14Cۇ4B4)@gH4qҒ4Aj*4?oB4AɎ&4A1z4A-Rכ4A4A<j4>fb4@ѷ͞c4߂,433n4&~ ˯4 ؄4>6h4V4A,4:?K04@$24/CT4Bkɱ4A@]T4?p3r4|>&4GBڎά4XK4AۘЖ]4˪p4jJ43* 4v?4>4@U%ʮ4Cf4A%FP4@ˉ14 64^4 AgQIn4RJo4A4I45>i}ͅ4~͛+o4 e4?~o-4C΅4=ڐ,+4h40݋ܫڧ46X'4A݉ܪڥ48y47'4]CS)ϸ4$)̐ک4?g 4A#U4LB=W4m4kBσQ4Aؐ4>nӛ4ren4B gΫ4C/94>ռ4@ϓ4@jʕ4>?ʗ4>ߕh4fB|ߗi4BcЄjж4Y@Ѕlз4@I5*ݧ4@ޕq4BAN4CeM4C26Ә4@˘v4?Π34"EރϤ4,A<4+@0b4Y4A>m~E4?ZQ4#\S4w̽v4@۫ۅ4[>۬ۆ4@|ЀE4N?4?l~4] Φ4>2 y4]AKA4~ݾk4UAܮ4@F4s?=4Bl4~Ϗt4>SX4kA0p4Blש4@4VC4&Ae44B vu4Ah#4Xr4xhk4 Բ423ӳͩ49@ ܿi4.4c5:4q@ ".h4x ̦4C\"l4#m4B4u?k4s@o4B<.4iA@5Z4%>=s4Xҡ4`Bр,͗4>E?4>RMԿ4u?2v4>0M@4OB1NA4?ޮ4?Aʅί4j ˲44?$4;>_4TB54}B~!P4^#y4s? 4A>!ֺ߅4?#ּ߇4>4jg4AͲ߱4XA,&l4?94@C9^/4B@٠z4 ͕ڋ4>ߴ4pɸ d4AC.4@@Vsʘ4Y@U4C(X 4.P7;4@ w'4u=L4#A4L܃ʾ4@n4BQ4X^(4X><4@'~4 D4|T4tB4Buh4@/۽4Y:ʧj4S;ʨk4$Ջ+4C N64Aɤʊ4@ɥʌ4Z?6ϙ4A22Ҽ4?pm4Bf\04?BKF4a?|f44ϡj&4Aת4AIN4h8z(4AAK4n?e4|[!47m8&4#?iܵ4s@}ځ4mʋ4|̫@4f?;Ђ!4>ͿЃ"4N@[ 4A޻շS4=4L@zp+z4p@*̮4RBdr;@4CI̲W4A64>T4p>`G948@<ؗ4oӠ4Ac4@4[BnsB 4JAX4GRخq04:BD4Ұ4 D4Eβʚ4@#4WAΚ&4?׃ӹ4Af4!B?o&4B՜4BΥ6Q4@!]4?1<4b4";2&݈4|<1>/4}B9}ٮ45?JF4hۯۂ4@@Ӊ4Cڷ4z4ѻ4 @4 >34 4+*4,[4K˖O4\d4C0g 4(d$4Ц4NB"qT4C]^4A۷\46_UH[4FB2ߋd4BJ4ZQݷ̎4jY4@Q4@ ]4@k4B7}p4F~U04Eܷc4>4v?Cݽ4 @#n4BTμ4WҸ4<@B 4].b4t)н4Fo4?w34A+4J ٰ$ց4=rO4 B[(F4AG([4B84nIѳӜ4)BsW՘4fع4Afޛ,4"ɠ4c?_4A4C{qP4'?K'4B"A4 V4@CDih4A+\ܘ4Cgt4J34A'u4*Cl49D=lܶ4w:B{24x4?4c>`4 ׷4B]Q44U^K܂4LB' η4?)ܐ:B4A ̈́"94G?kn4sB34ɖ}4?g4A4Aj4? }4|54B.hߪ4<Q:4a+g\4;>h]4B4f4A~4?~)ؼU4()54@'4wB:z4[#4AѴ<I4FAխy4@"+޷4@qٯ#4A4ܺ4@P]p4<գߧ4B14>ah44BY,4D@Bˎ=4u>hB4$ѽK4z#%4@ѱ4 A.3C4QV4ASy4qg4>A4YU4CCۄ|4>.4X'j֔47wҳN41>74B 4BrO4>]ܞ-t40BO74BgӁ4f_h4H4NL4B/c46AK~4n ܹ47y4v*@k4?94@54.C_"'օ4@ FC4@z4E?>cΑ 4ޅNC4C@O4@neb4G4{B&EQ4Bx΄ݙ4>˶,4Bz4>Z.4bAڍ۠*4A&ք؋49B5:4jA̵4C%4?4f4 ?ZIQ4!4uAFm6O4c@~̚=4)> g43@}4aM<4C>͡C4EBK54m>;4whؔ4B;4IɈ4>d $4e<gث4@4H?,ӕΊ4q4W|4?Ez4Bޔ4SCb9ϊ4bA(AR4?7184A3:4r?ӇJ4?rߟ 4j4vuɆ4TBbگ4FiA4?Mp4Ү94AJ/ٕC4_BԈl4+C[4Cۿϣ4jA~4KA4/C:ژ́a4cOZ4mA>_46υ֠d4l>ڠ 4@4B(С4@43GПx4@۸G$4Bbך)G4 B ѓ4Cdє4>)4-q4w ݨ۾!4hB,˙4A֋)4;[˼4 B 4?^4A]֗4?hO4_znX4M_48A=Ͱe4RB)ا+4y"4؇v@4T؀a,4MC̠ ܛ4HB+т4_04BSݫ4?&|(4nA3ؑԦ'4QB>̳4'@4\E4CW43?OSט4>4@>{|4?9m4)>߳4%)դ4BRԢ74 >A 4Bԇ ӝ4ePJ4>kQK49?}4@4ɮ{ޡ4Å4\Ǎ4Aӿ4;@_,)4>a/-4$>|P4j̓4@ϖp4@ ָ84B99f 4&@A߮ͳ4>,4iҶ04"Nʔ4@Չ*J4=a4Ob3?4>B{,4BOq4?E4B%Lw4Bw4,A4Y>bҵM4?4Vr~44G9Ӳ4@܀4N<ӍD4 BUt4eu49BP4).4zMٌ4g΃4@LBL4B4έ4B B?4Ck40CD4gԀ4@kʵ4>Ԟߖ4 <bӑ4ںV4Vt43@L^4AA"=.ώ4Ksbܳ4C;h4@7=4z>Οպ4O4C^߸=4@Dԗ7Ѩ4}fr4@O4.4>e84@@44H׻qڗ4 qh4i4!?4D4>|& 4?cJ׺4]ʻ!ۀ4Q@:4BNOq{4CBWmѕ4@@e4?S4oAjˀ4}?ҙN4CRVaX4̾4HE4*:չ4<m<4uAZV4D@h܉3x4BY4?}d4B׮4>e 4FB4s م,4@K9P48B]4@}m4do4>o܁ʼ4e>b4+Bط̂4X4#"e4w"4@4-C4aB(4O ׂ4b@B4TB4M?ߍ4.Bߏ4[ ړM4B}X4B!42@b[ؤ4@xզـi4AH$&4cA4A4 4?4Bi+$4 @m[4J? 4bۃ~4@ V 4BlX4HB4>~б҅Y4A`mw4?SR4BT4-|}4C>OE4?a߁4CɾӃ4Cγ4xBhOθ4BjG 44W@\vH4-j34 @4?sah54$ALԛL4A,4UCF܋(4BA Ӟm4?cG4@Z4>\4O?Ͼ845 ^4V>cڱ4Sr4>4RA 4?ے4-?NB4Ceۺ4;AD;4A^Oш4N4?!4AډlK4of4=A7(4aZ$4BS64qB4Aq֩4E2y4rwH64x&ε4? 54@q2Ҁ4YA4 Aѭɓ4B\V4+1}ܢ4/4s44C?ݏW4>l\u4T>de܅4B4Y4N@w4BܚU4e֍4>4@Yrn4xC "ޖ4?m_4?n`!4B$U4?6o˷4n#فs4B޵؃4fWΈ٭4oAe4V>-+4#?[41BL4A@+4{̼(4t@\Ϸ4B`A.4(@͋fh4A%q4BCr4CLމ4Amː4e&Ѻ4B_c*ߞ4OٲR4?B-߷4S˧4o|X45C<*b4BZ4[A ɐ4]@4Ɋ4^҉ִ4D(4Bv7ɦ4?:sa4 0s@ڇ4@x4.]4Dy4CPU4:ݮ46ҿ4<RL?44C.4A.N4ygjl4@4;'?x#4y$4@D4?E4@("4M4<B4AA)M_4A@)p74fs4Bχ֡4?4_CZ(v4Bߤ4 yIԋ4Bփ4G?Qmv4@Zh4?Aڈ4lڡы4Bڢь4AX4Q?QҔ4i@Rҕ4nw4>spLݳ4%@QGD4MB-4Bqk̛4>߄4>@ʟD]4'AʤE`4w?Ύ_14N?2<4y5ɗ4C4yB/ͺ4940b54?w4^ACɚ4o>#4Oݐ4.ֶ?4Aݒ4B4@%\>4 }ܤ4;@du4z48?ז4[>h3!4BzЊ?͘4T>f4B 4o?b 4Bݥ.͹4@e 4^c4^}O4?747?Eި-h4YBIdބ4-@>׍sT4}?@4AKԕ4r?ep4@ٓ4@ٔ4e74?t co4?hG1-4 ;bN4AoXZQ4?ɳ*4mݯ4[@Gɵ+4t@Rߘ4`@+ђJ4BڭڜϽ4U@bޠ4!?x94?o3C4i}"4AU~#4A8`4"Wi4B4ע 4AjQ?4C!>4o4A>T%x4B+4Ϡi%4>t74VfU4@]4mky!4@R64@ן4KA:+4w>V֏40@2ޭz4?Ln4ASʄ4#?-Jg4>׾4@7׿4Lۋ4TXە4SAuӨ4@3,"4B(T141Ak$4)@uf4CVF&4Be44CEXբҨ4pTm4?٧842@!4CM"4@ =~45Y4Acڝ34bKn4>؞s4A؟t4LB*ײ46Aecx4Bv4tEֵ4Bк24 AF4y>p4FBH# v4>ls4>u4Av4<\4B߶׼޼4iAֲ4A]&ͪ4A`)ͬ4? 6ѥ4>'؆4?Lt4"?֭I4&B~֮M4?n 4>sP4@Nz#4 w41BE?Vh4B>4CYa4BUDދ4&>WVEތ4#͔407uH4KA@4 B4A@. π߽4sBQa4 C1֣ʛ4k~746BM܇4?`WI4A =^4hՕ4>g `4At"a4"CU޿@4@B4aA׬Ёz4 >cPˠɩ4WR4GB޾W4B64>\\O4~]P4C$,4dA.4gӮI42vIs4eo4>̣τ4?\64xZy~4ɰΌ 4A dP4EB>4׽mT4@ͫg4Jԓ4C42?$%o4AԠ4H%4?'k44Am4C=N]4DA}rx4ʸˋ4@S!4AD4@>qN:4?!ӈ#4'>F4{AGН4BџjI4@Oѐ4C9t4;*-4ty4Aك4Zφ474g?4Ҧz4ʺ4Ba=4A}[4@њ 4?u+45Aaڑ4yIC4ݺ֑4'?{UҪ4A4lԱQB4B&ͽ4TgΣ4@q˹]4y4eBT4A1v4ZAj4@҄4>2ޜ4*@4ޝ45 ֳ҇444"@ge4ھ4NAk04Bt(4? >4A'K4)BX=ޏ4CJoI4H@p'ؓԨ4+A4>ܣ4> $4+Asd&4D?4>"ڮڟ4>]4A^4?ɍ4?Bɫ4(p@ס4?ɬ4>zҭ74Cˁjʯ4P?(j<4ۡ+4F@ 4A9 4=B14@r24B5&o4f 4CC4? ҠѠ4>j14Bk+֥ʝ4@'tH4n4?C6Դ4r4c8Pa4iA44Sk4}@)(^4Aeu4A**_4G4$` 4?~"4!C ?|4!?A24G94Q@`4%fAܠ04U+TgD'N8%yz;)͗0/)=,$i-1X֚(]A&,2 ;:,Oyt1])ã)7M` +T-70 .P#ݥZ (`(.^07) 3I9],'h; +24 *+5-1sd` q-#u#;.5X ,_ G_ 3'~X3v I'~B.5_  qB% _ % .5F.5E@36:36_  1M% SB_B36+E@.5a'~IE@'~%'~I31_  %.5B6B3E@'~pE@ ӵ36J3v36B 13v3B?% =31i3^3v36p38K31Og313v.5{O31PE@% ˊ3v3ϪB3;F% .5A3v36ȇ% '~:_  9E@3v31B33_ 31t'~`36313%  aE@+&X(`N*w@"/I:F/2c+- !3N/XV Q,g##9'˓, I zWyDH/J {GDPIFN1s/&m"BM S$2E/,O">-/g.-P" c@1&Tm-KI#P]>3>R*K!*-bc-E"-c%K*2-Y82 0a>6 i%R%3#S&#<yX_( ]r/A"#z*\-t9R2"J +.=,.EЬ26)<;'g;Z*j#D@.BL1%];KQ#.39&l,&LI{"!l/x-F.q0`2e,#V{Z&),1/] 2j1>V"% $)$RX&=(7`'#!w%NI2!-Ë)*/)0<Q39Pg+!1=$2\#09 12@#,4 M I/ M'%I0Kˢ& X*!PaY23ж&'M*7A'\fx)&` (B'H!g0(ov+( \%K"d"2}D1 .((1 Z&.;Y1[ Nr?* *) [- Z9? GЎ;;3(.y0h\^!(WR.W8m ! *0T2zwI0A+ NT$݅l&-/V׬D9;½6{DŽq3i (y5z͚: %6t241yu W* m&lÅ1Bػ,]pEs( aI$Oz'jOI'b"֑Ǐ'9Rk,9nVπn>kV7_.#s*2n3^K'lfokk*0+^U2v'#ag62w4ԧ*+1+R9("Y')zV6r))(?j:#@Bl2a!)rP5( $k'_ymڌ86ŨW48\E0+8d )H#laVVH  /S %!n 6 -  0:IM"E I"APE _8%xE E{E _E%x{( !+Y-,5 O1T)P0 )kI-Q?1_H/pV#3k8\ħ13{G_*9oS7XGH3-\[9i_r^Hj;*;S"\| :%^A3:Y q1siX>ɉl|P66EW0*H3n_]M$I)n :YmVX3.-.!H[!)]##)]$)DI(3*5\/7X:NG(mVy6Oo1D]6 q>Ntk'ĊL3!mPuxl ^-1]s2'"lI]v+T@S=-%SdI%0%i\3!.|^ފ(NK35P&=OY"~DU3$U[nrWY|32j*V53n%&YGF54L\H>^n?$)J&^ 0J'X-G5$3{(Y35zY3-sV)i'Uȼ54Vl[a nLj3%!Lk@35'V3'V3%N(V3$XHb (o^GѶ~(][ѷ1Om\x3,Z-oES31{Oa39V"@$+UF"$9h]3!{#YA33F,=/r-V33nVj3nRlnjV+V]aԂ=YOkyl Ko1ãFY1.kHS>M"SaO UoM hoMEQ/FHW RF63Y*oWK8Hh3+5Y :BRg3&Q41M3\M3)M{3/\Oi34R*Ko(U$^mL3¶O33in^tkU(IsA2Z'X1B&F3 9Vw\o:Lι.X%XTκ)#W_;!#Fp\93P3-NLYm+Zژ"Q:k!RLKG2o6]#z5kH83%x^a#{^Lh m9|LW95^b3 VYf.1kI34fD_tF?L@i7Z\ 3$D39S 3+9`j^A\j9J3(dQ"4S"I(J&%=J^3HeiEU"ehfiEV;lAMZzvb&{G jlXD'r-Q91LPl{V1ku+Y'V0-GM1P%i"+s[3 *GJ .$FH*ÏS 3^Q81xP 3Z\="']>l T3"Y[7HxY[3dkOV<8S^oM7YR#1mJlN)zD%|#Y/F) >: Rp ?2Pp B|)kZ}-!BWyخl?V^^3#S%L% )!O4a6]C!h"7-z\2j5Z23&7WC1@pW3 CXBP!O83^,5TVV+jOa}&0 [qV3/M:p ViLt/k8QKaGD(`O2nf0L34mX3$I2FoRD07\ 3.xG?3$_xZs3(xRK%Ò_l_5!j{M)3 )EkZ:nM*3!gÍ[~3iPzPC :Y+.%]2*_Yx,X+%8(8ZQ\32WxF@#Tj+)U\AuG#`R#$OEe'{kNH*m$]7+`+/ 4NZ*&pM.9LvH2$pQ|3.vQ37 I3)3^e,%0_[2>3${Zu&epJJ3n-Z,28yb\j`[*s%*L"I_6E3*%aK:C!oK<mC_"GT0Ƅ^e+'^%G+3k^~)A*+o(Sz68[=+$tOT!9)WS2.tYCns\T;k_UE'LF "35AIP3o6ZGr37uFqA%3k@X,Y""#KJU3HSV'G`Y,XrQp3k(Qrm3*\~|M&$<RN3NƑl~V3'.xEDE-xzJgvP!K8T%3)6IYs&"6Q^q).P"&_O8MIFC3isJaf'Lm hQi&Vm3)[8Np3A R* J*R_*>'O>5yK\S NL'o]J8BLqB) ZB/*:-mKF}&p II9_o1ai+Ẑ2!Z|=(M3%%fF]>"sG%",&oNFv&^6T!2RWiMjX4kZ0m .V ߘ u*P3KP6|5Fr/O=zF lr6FHr6}NA=3"uw\U/m~Jtgt^^8alNiTolU'5hoTS; "M[l$cRZ1bn-3WN: .AZq3K'`-KS]2\G6&m<^31=n1HH*I3,myUs|"bWP3yQT۳+Q0ۓoMVyۖ+mO?3'LA`AQ-:^)1fZң27.Z6=U GP1]]iO,KPrSnI P(W/,So#}GX)'[Ow7N޾1W$=SE3!^8i*'TFi[mqZh=GlnF%6P35GL#O3u3[L$v`DL-DG (y\zGix DG{^7w|^:Y9$M3(aX 8{h]3B#W/-IrrX3n!8HHC:j5-}5f_#(3GG%3hZ7T*F!Tl9[-.1E}sȥ,U M,1M78w>TEUi7.W31.#F134uhdG(}g2Y+h30_%L@m!Fd!4QJyw3,]3p$M0#Ps* 8F%Pv "L&*oR!H1qR 3+:ġU!3%U3 0\@2L P2,Ե5fSY3o.SZ34P6}]dc3*3&KEޘ Ex3#k1I3#mEF^ Λ6qWK3k[@mZaחM64WG@R3)#X l_)N;m/o|K$F\5 Td33Te3&̩nYG8.[\:/c-M73.n[.3$9.Dn30sW$63*=Rp(O%W%N3- TI 9Kq K.Q/{T3!n'*Oi?4MS,Q@m9[bX6X "G-V 3%7-WR{*^5S_Tla!Up.L[""5H3kHI&n^][K3i& ]bO3$ m\};0 lJ 3+.\n3W e6FU*#n0hEB~5IME*YA%5'Vr03Y'O@9E!X`o36-eU"^W35xFg:JU\#4׏(X&4^lu([1^)TEW:[Kkc7WiǺ9He36p*[36r5W0 -CnQ  8 R3+~7T]!-iF+Kc-jlWW@sl/\|3nPAP*3oD8Di $ SgaENp )0X6X ,9XZ=aL7_ lSD! L:?Y.e6L3'=_A3* "K no6Z++H/>%(M_ @$|#N9Q3Sr5;NެJ8YQ[tky&^03nC(GJݐ+Db3%^D3Ho~3$LHW^1.mRHp3iE@"-`\v͘+I3lUN_U(ñ\T3&znQB8h'7\U{3[1Fvg&y'S[31S&(pN!'oS$IT5׏$JT6iאOm^9J|,RJ,,V/ .2I3'\Q3kaV14 G(k&JL5np!]OR5|OF6O<3:]3:߮Zǘ7[G J:ZJVQ9IamL32{ZO.-K>~.VK>9pW{\OG)GxK XX9 p"E93'7XF33IPnlW[' _mdQ+,p.  i0I K\%w35-PF,A6Ef!, %SeT5qE[=ʀ,iSfq8TO1Wk,-M1FZ/yZ ӧ!kSkS.24T3w P1B!x1S!k] 'X!Vp3r-[ p8GF|elJ@\a3*'\b3lw8E\"dH\!Mb^ $P7iOnUP7(T0e8djOy9{Y'3']&.U 8  U8!#cX/"j\RwH3=T ƹHmC70nYZk;"]tPb$Q& ]`m i}R`0tO%,E5vj]@,F'~X!O"2Y|C(]ήq^(hn[B˙.KN1#V7O: X3)L )!j^3AtPF:Rm|]}r9eEtjtZ̯b.VY .e7/IyW3*W2.!KH5œI%blBE:g5YQ%C<F~Klh~\;$HMDv9.nU7D7YZ)hxU?7F14pQFkT>3wPϠ+5J|[-k-Si3k0Y{J3:F <+3N!N31 M .':ZU0pXF3ē^Z:^:QV7J[<6VF!9doSN{4XWI3"!xLy$ N4&/c^0Dw.Y/eTr3/m\v3K34Z5J@Ϸi.JAϹm^::)IZ3iJNvB965_[3&Sudx(n=V{m#L'S'kh];3opG~hiRL3Z6_w/u:Gw30MI3#0`Lin.*T:6^dFb0D*30+cPZGkPQyx3PG->rLD hUO*Wx3+`.Nb3/_-y\/՟1mR3i!lE,ե *gX3iX/ŻORyk"Fxء5~h[U"ÅK3^%%3 QuP|~#"I0ڀ5hQW3!tnH".mbM 3[`3Rl^8a:5R9rkT@/?~O3,NQ]81zUZEۺj1F +*MW+37CO`7+u MX35}ЫR[l^&Q^$%p^8AY-H4+bo/\7$Q)PVZR(o Kp!(J8Ft"G3(OEg 6] $H~Z=0PBWf(kW5w!I2_1o@H+_Þ5X)95jIVN05NH'3:4uP(,:G9.SL([{$qˁo H>Řj.I]#O3$GK3$5qn3J)L$T))'lH;4{7%NV3Ă[Z38ALE!3(j,R}3nLX*\.hneW.5\]38=@P3lF-)8SuNR+Y!P%]S3)6Q` *dXb,Ŀ_#3)usV34\358T?΋7oE|32FlhjIaE.Zm=OV3kvVNf3>ZQo'(RU3-RI4MJ>R4HM3n~RD3oQ '+{RE<3#J1}4:]Q1a^o8F(N#qemLq5I.R+)oO6UT,29SF34J335YG348 Vl\O7#Uo"19L^[3(АPW$KV= X2H'T iwGSF)5M{,\9Vm~^'6R[ 2K ,V~310TN'B'NZ19S3*]9P,mRPHkFfrlnES5i?WY3*i@W3kBvV&8E2|0VUP3kp8].lo.w\lF.^OMj.`+h_;3/~uXB!\9H?3j3iYj*8l؇rT#\j2GQ&8L@[A3kO3kW2VM8EN8E0_"Sc3  Sdy3h]5d!NN %]6.T)ź]h3l37X.ҕ39Xuҙ0?U"6/"zU"%H_[37(RnB-xQ3"YO{&].ĐZ}X_qh7>V{%]VBg3i]eF%BE<'8 pZO7V3M,]3/Y5"5Qdh=Qy0'_3mgRSWS'G-0۠(G(wJcQ- Z3nZ3e.SE !DJ4^1 74T3ZG\O'Z=Ti<\Y0UF3%kN@Oh1K3H -Ma-L-x.3[0+_:U{1?J3>lOlK,3^%D,{}]3HR A#]ʨn9W ʩ6_FC1%SX3lVXlEH+\D1ML[7a$myQ3L2xT6nDq x3Z5Y9/ZN79uS3'KPU2l%W"llY3-|Y3,#q] 3/JSF־0.G3 ߗMT bS4"8nt%]'goqZv!9sOW$#JB 1K$U&,BGך-Ĩ|Q,#.g]S5S-&f[}N'(<_1\B.&h[{N/%EjxN3X361T_"E+_ 5[ksZ>,2$G39 'kV)3)`PCܞ2~M3nTLL*k2BVVn3a-J,O6/$GO5nH:O2wP,5+jJ-g3[NO$6&>27|Q:|n\.3 l)Vh<y5%Pe!jTA73X$'I33ht:LpC~*,LCbM3n[3'H4$E dJ$_D%*cW3!3K""K,*eoJ_'Ú4*Y.Y[tY$O375}P&a1LsH#JWH5Y#i\t7/EO$WjjHBGDR&2")s^ckĥU9U(`W5&XQ*hIA3w'E)&j#eV.T&F2_1.0G38UmI46wF 1JT3(?4v\n#%]gjEt_/|}m\Vb0$hK7:*Q3 $Iw3'Qw3Ynu U%m_a3/`Ɋl&J76{oV3`f\g39iFxjA8mQ)rn:O32(+OYd 4ezU33lZJintSLV0jM6 3`,NU#,"Y8&$ H3(rN3)Md4Ei3nI-(,fiP323UbnNE̻&'E&Z3h~Oy78Q3bQi3x_=}3*R.G'=D6"sŘL35h[J30<R31no&R3-J w3.Z(x*TON$3" 8LfM<3Xv3(qH1 L<ϧ(J '}F3(>nWY3-ְmV1D(cY&38P3huToWPM8j7\R$4]I3kQ:lnxFL*2|MkG;E3bZA8.OW /}QRobnBJ/2pGPPS\(UL9tW0!!jޕiP\?S,Tt58"o#Sx3,opVF,Fl.«X~F'}_&8&xWzXNCyls^>r7PCVWj{y.BH $f2RT{Q%iYxH p$*oI:h+x_P5([FG\g+^yA5[G]k9UEx'wIpGa:}V3*VdX7:[#\ ,37OP5H\!J3#fcoDM-,plP3,HnL31<mYZR32hLC3.SL*S>N_/>ȍ9i*^;35]u['oI33ZH,zK3-K}1Ya4Yb{:WM\=HQ6#3Ym3"/GQ߼$vrN/'/G3,G3'GU3^)cJ,@7-#_fOo* Z*ZxRs ,._Ԙ)f] Dm]@#37I]31{H 7*&r8Xj0C[*w8nLr3+2^s4~K+nZF%xI*3o"SAn1K=xD3*fZJ&3&~ EN"C8uJKD( EKk O3!JBFR3!2_J-S-LEKUk:1Pgn4\G3+^dO_X2ghI.3L)U)mWZ)"mUNGGٰ,PLz7\SD!:F_8 ?q!98V\9/oS3'3F3+)Jn3+&1TO +']VcRѡ5ao[N}Ѣ4]<Y$())K. -Uj3$+YS &<[&\p_DX#]bh0.Qݝ6'jiY\%:jXe3y19Uh0n&D)3z_*o9NY3 ]X\3(P*)FTA3JN% !/1RjxD1]Af+']G 2sZ1E#Z6\3K'+Y]$GA ThV+AW30W3*b[w33+Q1%w i)Q2_"Q'jhZo)5R37J2VTR(fX>3)}tmRAUw+,Q][nT0Mq2Nkq'E/YMy([k!F|9'`Nm ]'aN[ _02HǬ5P;%M7ZNP9Y!YX33#FS'sk^(G&N_V.| SʋqG4ʍ)ŤQc23rťQd 36GWe43#R\I'a3/HWf3p[Un R2}zJrP]&Phd_+?QM(PQ9p$ZKj32H0^}>4V3OIjs8'[D'YWD%VT#zXI;֞*[V_3="P08Tq'37y|]kd ^.D 2S\El54Tj,Ui8yH3&V4-NGhyl]Z5.2S34Wa`M2 Rwˬ XK3,#ZQx3'SN.›H3Z->N'WGA>O+muJp.ŸH36>LX3kGN4&[[3.f[AhiW5"#T*e3VU*yX&H3:^'39t\D2U)[i[&^tp7'LUB\)Yn\UW$jVOInQo4NxG3/E3:dME4S/3j+T rK3#/YK~lObYNր4SH/RXv֖~4SJ4GH_3'hV*+f\7'b4N%O{IvmCZƝ/PƟ)P!H/L63&M+ nqP:%[=m CWi1P#S(3:O-JWg$T*J,!X  a\Z0!y X?3+tO31]un]S33S37oAoNm./-}XJwRQKd!QLd!Gx LS7-PU? 7Ć]3)@zbG/mQ*3"}Q3,K[1"Yk6LMX3iqGW B9!hD7l M3b2LWnnK6r*Xp'\oTB&9G7$T]K3, T%j.Pߨk9UJb#{ֺp'M>Hz*QK#φ$IdI3(R'69Y?:7`Ik}M#bCJ/Ym3+JN3) ~5T6+QPu3k,'Kn-M"&kR\+,V[3Bp'I%Y0~X1M:EʘQAeE2Kd+N;;Mo'-O3(bG8qҶiAXFc3oN~φ/SL_3'mL`3/MJ/!x^k%hLVZs4o\v/}wMz3/İEH3 ,0n:Ri .1n;RjL)YKLp<ZNr )o[U3.W4KL!4lVo\h# #oSV2-bV3i1y V(VbhOxŠ&;m]T&=R38g.CJ?*QEU!mlg_[ K;,NM38.WiLrTJoHZ)Wri/wM8*HMa/#V;rR"ȶ /\"A di_) f89UC :Uoɴ:i!I3#%9AO*83+y)F}3+k\r&,;]/\ۗ/Z9csZ//oiTfpjV7q6&V82A !DnQ0(6 >jN<2z ;Y45S. 34wW*k3K3^lX(3^mZ1[^n L-'bFv3k5Z|O$vUoFP3nVWf$-F^`$ +R_8h+R`kS`)##\hn7ji_*d7emfG ׫G)f ,N37eFJg3.uwZ:7pT \!K3!K39Qn{K3j*GRl\3Zl(dʄ-.EA}*v*rFT3[&3/V3oRP #90Nj7"oMbP.yl7K9Ȕ6]2HM&|rO3'.Ok34w^]34y \?'!^ j$4XM$)|Y*//j[5rRXm-wY3,:Fl:Y 2)HSMRY38+O(b 8EZ~OI([&3!OM^"9=p J{6uFXME_+W/ynP/37XKH45SC& jh&V\(xR+:*U^3:8Q<m:cL\3:ncU1hh_Fk3$#FBG6!^e'fΉf]W5m]{0=TR(J/39pVK,[:!m!X334T^43-K)4^<X'#U3_'9]g n-Q%D3"TZ~0nJ[g Kn,^Mc%nHs-3)6oUYU<4#P!a/Z*NM3l uE-(7jOc>3Ma_ eS3(0S&AovP21JoZZ6%I '2/G]ʷ#PuQfrL%:-<_3nTU{!* V)3(I8)fN3kASݫ)=u1Q3"c8!F;3)?u2Q"dl,NIm kZSn^/rnM (*Fhnͨ2HyV3NPFͮ=Ɩ]y5U\$\NQ3.Ja('D.Pe-E-Er 4cQYKn%\w0,XK3:{5bUK8J4\*s380ULJmJ/k)G#3:Db7Qo6L)4+/<V HP834Y$3-I׫iWw<I׮nA?ZNk!L0Z{lLT+w!R3(<t,M|1}AFD6XIvf1S2#no|N*L$Hl.Fi9S#3æJ5/]XO4hJSO6[>Z$`,wbL3)MQ) Wm-B#Z/wNP?7lP=PB)xH 32c.UEmZ5+.Uo^E@3+hEc3j K|!6O+Q2m[S3/wF3.|SU3 []Ӻ!Y3-TlFE7tL03y40OnHo$QOqì n`L1C3YXU:7nmxG6Z4Y7y%[+:"3^oSQ5 V:!oTj*]J2cPZke/LZŲiyL5ŷ]+KEOD_,ICo`,ID@!m6X3+tEw6* Ex#7$GyKEk+Z$9Z6IlZ{3lJ] <UHr(]|9Q+1Og3(ÄM.=<9|{F-35vlAYJ^3+MR_, YLz3:zhn]6+Y,Z(m:Tu3(d_O&otL3(#Bj6J `kV˸6:TmJ 6;o3\3k:,V; 7L>1B1αcH8F1G-L9HBn^ /]r3?-dS4 Rk*K1 8LB14тiP+$HCL2nMW%.GsnDT $%/G|#^(!E36Uo[?߈9oiF '-.&W*O5M3o~P`n//M`_Q|CK3^wPBP0(7WovC!LTw33#h3)ED0Iy:Z35BЏsDT+БsD`rgmR[pOZ!C*J  '"ŌP+*0eS>3n+W9-Z](6Lg:}W~*G"25F"3nW.]x kQ*^Y2A-M36L8Am)4QC)D*YUR7n^7 *ZOl0n[OmU)I]~F.3xZ`3 Dd#kj[@34hM|3#m[R0M$36v3S,3sF34pZ7bW{-Bp[o`$VR̜6z{Y3,hroWR3/aPb"#M7QM~8N' ;o2mF!D35IE3#`n.NX7!Umr.v!Kq3*0US)\%sQ)<'RN}hlR2lIFDUj3(l{L :+[x3FS21_U3Y6lZ)!E853V3ok(GV?LQ$22XR5\Q?,&yVV/ZKĠTVz3j)K3U>!,K3( Ow RV]o ^&/iS<lhJE/nQF BVq$)H[S_3' \LDR 71U5#mJ;X,Z:H!Z3+ Jne'p@K03Fn^/ Y^P(m1}GyIe K:3 gX &3DEQ.F3.TpoR1m_q31#(Js ‘Z|ѫ!;JV3:1 HQ3uX{3}RK3c1dNfniZK>2oX@VQ<EZȸ*l.\733vQ s(Y3 YM[<$UGoN'BI+@+IK9C5(Y^]#S."^žX"!QI~3/Lʗi%[p{k6U64% -&S%3'{tW}3KR31kM$W!GH_(^H/#m) ]wojU["qjIR5QXkZN3:k75Y'a}G@v/O34O3:3Q\3zoRG{'nJ?3$}Z3%kL2JK1-Zk3Q{[58r^j3-ipH[C7^-5@\G3(:4HV.XaM3dV%?V2'E]3$sL6F3&(Ob?>'HeN`9 0Ev!?$4GWl'\1o0(UO3[X4'Gc3'LT!hmDS6lqH_IzQj9X9b";vPN-3OlE[3!cn+WKy),=S603ES73l4J31DJ3%JxtIIWodH-I3 ZԹk*WWn"OV{9M~jQVElhlVEo$F^B3iDiRHVQ'WR{V3lM1iT,&mG5xN 3n!>FNb36XNv9d:XR1"HK !KrK5q$LV^3" H'K3 owZUw3,pW+:F4mQB35fW39uo.[;6ؘ#9wJ\w9#0Mwk Y3"(i/Y 3(XPw3JM,4Te3D>-m%Z3WGp3R 3+w0b\,XnDF# &GZ2:DD3nX]2o&WK3%wuE8UI^)C5xI; JCn+Epq458#E4\!ogI"7R3!([B$i(L*0pMgD,-SDlPS#3dD[3M\kN E[/5EntElO3\/8E)y])ZQ2"Xr34-\3"\thU$*2q*RB'Q:{TQ3!MfRR*N{ NQXٟo]k9J}3&ŏM0]&(3QHTЮ&hT38vH8cFL,ipG,iIm ^>%4P!Y3#YQ]`0 Zn-8W}`"W~`8DLâY97xN3k*)V :?$FL48 IqBNnX_3(*DS$9:G3"G:to"^XinXD72!H(@[#sOI ]3kI 3k [[[Xk$}ΑEi`$~nZ+z%TgS{#IE3)viS}:63Ti3s%I#cNK:2F#5K3k&S{g*m\hl#u"tM;32"D'9mxV,9FZuk\$R~*ŧW)~39EPo F3o[ 3*7N\ZFA"M8\Xq<$mGN 5P2+P38X604Uo 8][36pF##]3:13UlL<32\y _93k{OwlEnXshwG 4I:WFg6^! 2n\`p !WLJB "7SB:_6RYTSk$;IFr.b}HZ3lřLզm3RO>6%Xe% 4Hk:D}2<^G#%WzQG@3&}%S8hP7mY3&PH%5pPߑ#['3,[& Vl32}S;3i-{T_Ma:pP^yWh7nK00(I7 :YrM:F7 +}8Ys8H&E[5VH&93#.oZ3%8.4XL#}iVۢ†Qa)nTH9zQJTP7pR3E&Jk2\$! $"Q/rQ >3nEY3(M?*Ļ$$Q!mQ$V0vhnuVd0w5Ϩ%UtMYhOASx-^3|]'MW3(rPJ1^,M4\X831^P/eS3!1^wFI__k(NK!W3:-1W38O:E3:n/FO3Rԧ(N nԨ"U2.3+0~KX[i.&O(!2mK7  HcG+PG*XNf36[)nK,eMAd9+o`WZ+!Yh3'3JQX:_rSI$y[#tM,rMy*M8osR@j3 _N**nS[0^O%Z(?qoX9i(;NO$*4Pq36qXI@1{gVvY3O!QW6pZe33ghL )͗J2Gi /srOO36ŷS%32J\ އ.mOJi-+ۘn7UV Έ=Gs# j^W&Ul3CPr0`)-oI"-}JQC*Lw/f&N3/g&N39O-%'m^D2 K-#_(JG+0[:kŽNCƎGd::PE3'׍^P&k0M3l YRMaxmVd$ȴ5GO.<7W31P-O35S]O3-K[~37>L[3-g&^1Uz [\r30u_T[3 =H.*XD'VXf&&[n6 nZf87 I "tfŴ[53)zS+31F]j߉IbE833S=ߊ3.{YJG3=\E&iQ{\bE'+3J3($`Z`kI]o~S$; KF*oH2W+U &)N`p#2EhNa2_rJ -lJ{4,n.mF^ED6O]W)H0D%[I3#*RSn2}Nf37G3W_/T3s*K%y,Rj3$Wi*0Nc3l+Q"G 4s)[ ,|SDB&Ht[j% :7vsXY3!!XZi3&X)n'{O838<o\pd8uF#Mk]#U+3'[\o?F-|Gʝ-IFiJP)1'_h[139Zƭ{[.?XBk&9Q 3R<APU-'uUn`So35mVT݂7JGz}3' #Z$C3+$Z%31EJGGQ3"ݭW'*i2U)i\324 aT3A367%-E38SVT4136RX6^k O31^,/3)en~^ ')hEu"9Y4L)1)$8]> ~`M3!Z)4Q|3%R +)*I}6 %jZi37cU$vJnD2 JX=*)yY1jFOp"F1Ou0v^.`k[M  6X&W`))ZXl .G!82 N6U5#S-'m]Sj-*K3F*"^o7un[U&3*\lY5s#097L9P-E9nK !T_d3vUR%1)K27>N?*J#y1ZCd{Or"rQ:oEly395KW935ioW~3:QlZ!X2!p'*]!t&Qf2x%K%V37 mECY\H1sÁ;+(]C8iH;39`X&?91oEXI,Im%N &BlxJIfuU,M iwdLZ7%LuH>ņ*yHʼn4F)J8 -ېkXƴ"o$H35D5V z T 4dsZ HlJ$&^3, JKsMuL+,iVh|3$8|?I;'+)oS3ƇNk p^{Mnl]B0a)(Zp( Z!FK13R~,00U!7jeO"6=u O#~=hK6O+#eP3.R-GaGCnS~1NV$X#@:NW6:4R3!mX >3{*SH|"_kLvc,T79YwA37<ØRmܗ5$OL*l*HJ9g^/1&]TK&nKAl*T322HC oJSWN"Gn7iD̪7L+3*~^3.W=S%g6}IZ3/=l\6Z3#OyP=znKZo!P~!Kpb N eAH(Ī&+FXd3Q ;-O]='sbE2KgS&)TTZ1H<L(Y |0Rӂv'\rz^,|Y=A3:R+*Px.1+P_xjHP3lj5](3)q])X30rJ\^M"%>oF&?["tlOz4C6WIu3)"6!E9?13^sʱ]n{Wa393tR&6*Rg (]n32\m[}o'O(D6k^q$6%RJG#*L=363hT.fyD(Gy[Jr,nWSdb-?7ZI3*zm]fd1}|S~@!HD:cyOo,^\33$[3\K )sGhl*+NNժd$EL %/Vh\3'RP35T!HX6L2P4[!%i3^L 3k I//[&yz*[)G1KH#;6$MS0FR%U 1\M3(\TN 5˥Eg9>Xd+Q}9k*IK#onY 9]O,})tR 1Lrc,Ic 03SUzoT+\B#5uIp 6P 7"?EJ(\^?!ze[23jF;_- )yN1nRJf73*3D)mGxqy(\{bFG$Rpj^<h(cE3/K,[$F'H5O;"ao)¤F(@hVZ{Oηk/]W9c״"QA3(aKCF+GH:aj%T=`*nLx:"M]-CKUa 3+2\~)b_].(|I5:Y::2Ǽ-T6:Y<<.TF3)Q Gk(|N11F k) S92WI/&ŢG X3"E; %M%3&chO0iT\dVFJ[|e0k^WJ3,nI,9ZLkWW3"6[K"!Z3#4S.NBL9RxS:e+X!U% 0ߜnEtˍ-N/>5orG\W3nJ28P:J3#cBMK>! UF2cQ k$9<Qm$'TK«6cN,Fp#v._ 3{Rh*\3$%+xE]j'0Z'([VyNJ%i#O73nMO(xU|3au'GV{^_: IK-7S1#)'iK`,F7(Ø[@ox_V ,o4_zm\pS"9lzGZ3(NT_3"QnlrH/W(?8;QP1XQ{3,SPwP }jI/3rN%yyXS3s$wHYhS3#xJQ33Y3x5U_WSvQ<g">-L&:7'hL\3![ 37hJ5=.GTC61^Q@ͅ14W'"2^03Mt&JM+5M33Ps0E81vn\;"}-0\] kGF3+Cm"XnH]9T+6Xo45N:VjP:0C'6Y3v9EolI;2O"<v?G$:>Z=3(oM\'*E3)-]*_J@:'5X3)x[3:YJTdE:S]+3981DS$K~T*\[>'8WZ ]8*LNm9:(nP39*NNo9<q'Z3(5h-0Y:7'^h3a,P](hV<3,V=3%8IX$noK3lH2^`Fy/3% M:Rm!B?D5U'^K" nQ377W3Q.K}C9M[3+mX!:tG&^P3:bnT!3c)I1Kd8DJ9MDN()DDO:eT"39iMND J+F:EZfL6<%]VU?7l'YPn5^\E2*(*X&Z$Q#-'To3(UU%$Q/a0FE$35FF37KWF5(L "nVF3\mIO<4-P7 >+Y++Y+1UEQ:Ry%CN1iLUMFy3o M41-:E':#]3.}mF܁'dFA-T|&3:1)T}32Q31v.UC339QG0ni3R ^oMM431N1^021N1_yt[+ZbB)AMoY{h-Jli+GLTg*(n_k,G'7Y.&YI'.2oZ)"W  L3 oX3 mX3K>( gP-3kO%N+5iL ToM\U2HP4]I$($h[%3ķQ)[Hq0FKe*r!FZ}32_JY/qPLY2J'3nId&nFQ4D Xu3&!Mh&J6:D*8.+T<3&WoG4h3aFmx4k]1 Z?o9U{ō8 1A\W"Z<HZ`V"F-jS36VGgMi9vQ1M.]j3.)]35Ll\ T3'tY$k*^o+3-Q>(tU3RNo3VY]lyNo MK~C0N0,+AFS(h]Yd,'U;QnU\}3#mGm`K#wI03#Hd,TUp3$۵ [EՋ#^Г)'\iЕ'uUL)3 QPVeS1%V3*Wn*HWXL!PP*K'X̬4YvNM30!L%t6-'Rflo¯^B'3hL7#-sx]KH-:8Gh.|*D36hL/.i(+T.iW!3 ]mB*9N3/N3OQR3.aiI3)7IT3)uLu(^>)odY^?8dyI08lP3%1Ke$/G9%nI02LeiS;UBM0XRH(l+]42)n26UU@&_q+.T]ۇ&aV}3N"3)e F@& Tv3&T xnGL"7(I.|Je5$nO}3n3V{8uOJ3#Q;w:$8[A"SL[3Ge 6nC[n^._Kbc,E2V 3B&Qϰ'jhNd32S^7n[/4E33/t\G:0|gn;]{<9*VOX 0ƌX]3l0RWj OFjc%kL,5d9H 5hv\(oNQ5[3(LcoX4+Xf"1'W1`W L)t!(L>p)KQ]iWzG3l-\C{7k$']3!7E]!3k 0Y&8X;@8X;A9ML3 T^ `nrMqѻb0+M\_F. Fq;:3åVinMp3_jMI[.wEo! 1Sm3k?#Urn'>mQ3l4X=mTk^3-UH(nHN,PoUKZ$FL34zmHk1VH(6\#ZV,(B(J\-Nl7qY^`3$م~^J oĹW$K$\L]4Vw[&W$aZ (km8Z3%1.LdI<2O"=2O& KlO OT$Xu lE]M xQ.2[OMB"S>ޭkZW"1X3k)bLPq3$=Jm%Lb)^3AW1hk!L[Ws4xIQ%h%Vg3hBUM&6}OHos+V|239P.S 3(|X<eMB J.".)oPj3!mEh(!Gk6~K3(K38qV9"(Xol!ΜYFkgSR Qj G3oxWQ$t[3.p+K2 )[ 3(2J}+J3(vJ8[*N35v]T33F133^H%}KX438Wh95oR I8CN\A.Sn*;V2D3"|O\Cb1HK:Z43PP&'V/Ur-&*ccH3*eoH3#zYqHx2R^veP$"0)Sh0Q٪oP '[^0kG33:]7^<h3("I=3@!uVP"!-hUt3(>I>g3*`L P-!4[=(yW^3:tJ3i~SkbkI[d6,(7Pt&CzT3?O,%:jP1,*U/¾]^=9NTu&&PiQ`Z3(ngD=35+$PI6R3);oG54\v3E-Y;^u8-ubZH30fTyjXKC6ojE4F d&4T fiyJ ?\y 7EsqZ):RоZ&`<$BW@ Jd#PAR~Lj_VMG7M>;33@U3*{3AU3"MC3'%rY34J-/ʣ~G, 9+hQ(3&A:^^ X3jHC"$f[3Y9U0C(0szP?1@m1R32\LC(AZ38_.GC* ]35Ɯi&Z8_G$f..5J(KiTia"GN#C6?X&& [V3o5UL-PV7E*Y5wPW7+kF7'Iw>:i.J/3$1o_R*I(Xz.V%: Js)n#Z]]vsPYY&Q E0|&k~%EY8oOT9."F;`10Q j-RY30 P32|H` 3*($lGWO,EM<u)]\m4Ga]5QtNY()\x/mY-:--N,&K 3/tsNbɐ&#F\ -[*(38mU@W\D#T7X)j7RH>Uu51| _ 3j,Rp3n] -8GGykRxBRv _s-n~Y3 4S 3n.I|n/I}K^G$b Q:B5J^hg['"N#]68ŎFWcỦ"~`V]̋0nL3,8oS$E5{O4R%.'y-(Pb[I 'nPksMQߢ:0X%5pJ3.iNY035#Y37:T36i=T7;8Y3 SjQ3o27~S2:JmZd3Eď\$^3l)HzR-;g0uYVAiaoWvd/b|E]!VVXH/Jo-&Nw+mR+s/O #N]@T3![7Eà%oKW3"_|F|)S:*V1nKB ,P6[o\|V/4?Zi39vDq,GZhvD'[#BgrqPBlBEE3'P)\?J24~O{ Qz 6`F3$pY,39p$Q393|uZHv:!o]"Y3iIh2;,WA;6LHVpD) X*]^sg3oMhɞ*\);1*!M6ldI9,iYR3)z$U372ULo z%U3n3SnIT@z0P% Y%DN8KpFQ J  O5Z"A#þ_ETA 9c#5Z#A Ƙ]gA#~Tt%ZmSOj"OR(zuPM.3%[uy^3,iPNt3"PR7Z9ELk0]P#u/]$xS) 4oW)Jp; I\F%KRF)U*<.mEW]3%yO!3-q!FOW$M^t=mR 3&%1_ 2h5k Z5/m]!!Z69V$j5T7P=36Rl!3(OK">0/IM 3!/IN3:Y %(o4D.%R !;YBN)5m5W'30lrN3&"o+T 0AiT,ltWd):^6,AwX_.QD3("%M94ȇ*W-Ez|A5Oq}S%4 m$Pa32jD 1gY7@-Gb3:>ԆXic!=FM\Uv62O9oi[9r7nFk6zS3}_<V+' EPVQ71ԏ:$NhO3/5E?_$OpV9#s9dV:]##.| K3Z6QpI:%4]ħ2I\ W8${IL&7dķJ 7|$H3l}v,W?3-h[!3-XRb _iTK(:igoS!DkoJkaJ3-F5G /JV-zsF:%0XW !ǑqOpl9HK T̺4+pVES3lS Y?7G\5.;.\{?h9U3!1TQ2:RH,#]Y1Qi/dWI7YU!IiE% ,.M2\R,[L?21,oW 43*ن4T.pZ[-WdQ"{E,U,'Rp3:oXwC3lGkmTXl"Oo][͝l-M= F{rISֽk/F,U,{3Y+e\T8ohrQZQ:n^McDv:V'6X3&KhlM2VMM8ESc6kP36/2P32~H?35 S!6£VI3*kR\@>5Vǜ:N2+4XI=3'\&35a[hv0OK>.naE5$[p!8n{Jvi y*OfX!)Vqd3$xVrA3k5S/3z+_ -}MYөkO?Ӫ6S35TMD W.ьx[$D6P2,(lLf3.E_+3^_n2]p0WF XC5aE3$X3i9M73YUL,X'S9S0>MZ03T3&qU/Y#\OhI3#oV43/HdR800AQJX-eOE3/Z  y/.yS3y'P]h,PjoZ(4įoG]3Vu=Z1ESOMo0^&5QĎP3lDĩPie$V3ko#HVzZ(6Wnz1+)GB-IE3.+W3klW>i[aS6 1P@1 Sa:yĸJD3UDvLH@C.hO^nnYi̴5J3XPL̷0EHTn6E e?*EeBn7vZ-3+B,#R3+ݟiO~:3kBV3*Mn3+#QOHB)MXNo)NXS3XD3%ESY~l#Sn31'nEM=C]z"7-I\E&%}J]F>34T+*/JY#HZkF` +$GL ƟM1*1лQ@"]M.i0pMM1%E4l.F%ČY[3!"JP3k_\ P3 +Q<1|mUt|.[-9N Ҁ @nDK33"Gm^F$/xMb_$5y^S^3~+F@n1(GZ$ ED?c(F3A:+P`A"Z2jnW3 3i7ŋN3.%vQ]/r^22C)nhFDl)qSb0vR_*0FB38&N$+S*T3NFž2=N  f6qURBF(9Z\:4Fq-;_d%V!=3& kP5z̐&%N3'J jLDOճ.5Ro38>OHL7PHf%><J 37GYr(R4D6k%]G, LmG!flqT.3k fF6lrT/3+G^33oW^TAol,7Tx'U-{-r:^*33KG@93JN ծU3 QqKq%pbMV#"Sy3uSSk!8DW sT13hY*#N*O35 GF3'Yb;ʼnWOL3X5JS#t8N 36ZYc&l6&#I`+[\3+[la&KLjT3%>i'Kl3)2Km&31Z7F*o^fEc(zxH9(P~g_vĵFD3 Q_O3)yKDj7\3:BJI-!Hz#@t\k-2LUZ&>+Ml=9 H{R)>N|Ti1[TG8\y3V%!Y,)%P.'U5[GQq)J#1Lq|:z%nD:P 9hE2=+YDr7#G]6np]v8 )ED3!^vȓ%j^>V:X3$S[D/"UN@+)kD6}P 37MiFP ;37v.Si33|S"#\Q_93T-EG*IP2RW[B3$&NKfB0/{E]'[- ^cQ+oJ3*>eH.T/F+hiFD1YjO6~MTR+']rΒ4H9w$\"%j_jX34+Eq)ΡmRX-'nKM=9>N]/3!0*VLj1HV5.NƥJ+7)liAEn?XV39/Di#:/D#,v] 3%^]31YY:nęU 3(Law3OMa(]o0R3n&nJ7KO7<I7M39n\q3%Yv(\s3 Lk[Lף[Mץ-!]EL!3$KK3m !3I(ku&1G.4oO[3$T/]=2,0PP('K6Y4i3+>Y63Z-K] zn0K^Q*JJ}&NE$J$)wKby'TRڀ2mP39Llk@^ZMz@j8Ir3:S2IJ?!Y3.#\9[(0hYp3&0J"Q&4kT3!,o\b"k<8Ha3( MP9ͩnX&E*S38nK E3::o5Tk4nK 36EeY:9MEO7hY3+nIG,N P'55uL# M85kN3lE#mVQ"IR3 mMIU3o]y9/ĭZ:5pS03*nIf9W8~oGI-IK{\:2 L 341oE6^3,TYo-,n$µO1~8w7ZP NiTKT-{]y3'Fsn-)OD݆7E-R|'&TvKYw UUYU*!Nk$V9&LIJ3155NS'-.Pf3!ZS3j3oZ@+]!9wHg5©~7\225P3%~q[:lXL$%Q9O2}+-Ա*O]F.Io7MS03#?āYE\1.-%LxBe/)U6!T3?\6%T=3:mXe3%X34z0Mu 4WGiYz_M 7)GF ƕnG3"n Zx0qA^EZc-ƢQ3)\PAU0m^ 4'R_3#!7OS7 OT+ENiܨ(}J03-S1Ou//--o\15 3KK3j2I7?3l7HU3.cSB2?wYB#O=TiHD$lKU%,-Q 'kJT{ )Yzh+w( [hsT~"6f`{mM'.S4M/K[6V2$?[7 P-[,E,X| 3/yFp9GBD!2[X\zz8zNU-TG#nE>!65)UD&k!Srx\3.Ts1 G539;i G39F I2 i G36p*ZB33RŬ'9,~Ll387lQ#lX3[3"_b'3)VTX+Qmʗ 0TgS3 lXL3/[Up0bm7ZD_jQQz_Ҹ(%|J(WD43j&BRNH(M&0ZF8m9F/Hr0P370YWB-J%sRQ9xFDlj, AST>%nZ63Qj3(&KM6'78[P3"^XQ (% XEF#zN&37XH,,NIVB߃8VnL?y7.nK39(Ztl )@Q,-u. vI5yI}!_?,HX"8]!94HY3/jU=7.U7 Z.Nk /XZ/#4E5J~}ɺ-#|9HsG-$ 3I*4IJ*Go-U]mM$IK31¦.Q]JMI"GU}k9.ix\55%Uc8?&Y.U3 Hf3"E:%R?p"o ["3oQcs" FlA# QO+< lH63;VRm Icm+\33vL61zW:-sJSp3*Y0T"{}YJ*}Yc[C[wh U_?9žF!3$G+n9Xa4 ZnFH.f"^#AR 3:Zya+'ROC}8(oySN1P 51[Sv3:\Swt3.hG63.cL$Gl*bO0:hY3)FQ3(FIyK@l+GQZ3!1p]JX#vG{%0Hq3HrM3k8W9W%O')lF_62p[:.6E!x303fWM6sLIG9OoEd;f$r1D 6s|Zȕo?=V.uX$-q(Ta."ArTc/&J\ژk%P@F"DxQN 3lnGtl&X*3HQ"_QtO!^{T`pn:OR5\>/QP*jTJr4<$GO*KNlc.^C'-OBII4/FA`!^3$RƝTOd#iZ 63ŁL9f6nwM&3!ZL:gY'8Gy2}4jR#"N7bU+,VK=6G'B8FU$34pHd9Ew^JSn  E##WhPo3I&z[.X#TH[32{|_iY9@O)n7S 3(uEUY*a*C]L7$J)H/^. }cH3*Ty36/CWT]A@.[ J5>upW]ڰ"#O#!Xc.-"L6[S~[Ѥ%hHNm -m&D<3NQ5Jc38J35WU03jWd"\A)˛pXqg_5^[&dW.6OY+4T3/U+?HX[3,QuQliT>Z3"SQ8hIQ"gnMKU%'*FLݱ&Z:3,Z;3^o*TDI.CE!38i,W3r2X-: X!Url$Mq)`J<W3$دìPmZLG5r]V'9*P!2dqR0,*P8n[3")HjsR% R[0<],\VWT9 NN.8X+[0kQW#,N3;5DzIkAJ76b ~HfrgLJ1\'Sǿ6mZ3hlL#7Wh33#_KWj37D kW^|5{]51\~4[,i1Tm%Jf3";E2,X0W*U?-XtU ?/#352\3:=53\32`<pOsnGyGD=7JQDak`7KQEN1I3$*WW*6 _r36VQ'u%5~FoU5jV3"\Z>l>Fn!UJal]}3ųY~$)~P:GP+ĮK3)yF)R{L= jMV(PKL+E;nOQDhr\x' &nLl3YJIhM V$[m]|K83Qi5W(.-aZJi:±KTl36=V"Ѓ#gU)H3!!+Lo3Gf(o5MI@!Jc%Oa8sR3!: V_3")T-3-.:Fl-MKg,LOO,O2i Yu3VD_I3,-Du8iNy3%2KP1hRe39zF&0o@Ic3XXr3:^\H30L2^0Lf2cInFKZTl%6a#V nQgr E7RN79շlTC\]1 ^PZ" sO ւ,6YmtIgօn5S 36mKk3$nqW3${N}nE3z5[E+>wIYP+"VlOV44'Ugf306ۆGcYGd'QN+2s0QOhhqQP+nyH4f30 iVv%;iH53!Z3n1KaWL4nGS_y1pZw 91V,3FwOL:G, 65^$O lNeR ɛ-K`45,q^DO&E/S'1GJ/_M/3D7,A#^ B[@ W!3*oK+3'2ۊ{L!9nkK,-3:.TvA'5uQK.31yV_8U?43G9SD,krL+3x(H$0RhYV\"T^c,5_d, j~_iJa_e3.8LW4o,EB1UK.$P_$%$ x/L(%-L*%lrI$,},_="-pS d&RH MH//X]PE3!%[+k/pP3v.^I$7+RFh3k0nI:kH$Mw6]Z( gUW&^8UMd3. Dk38UVs:qS7X+C-n]'<hvGMv<Z)2: I,57Q.#"Xg۽#]AAm)M/Ap:F";"f!S#30rK8 07SZ]Q|.'[KdP/'[MdS47Sa$&*T(%z?V5j2U&ylCRG-nnKht7LLS%HMFy/PVJ3M9jZ f!N9kZ i"SY*p+JV*z"xY{XLs%4Hv)d/mLy2 YL|3M @-$c!H)]Lg#]L#% W93kFZ%5[3,p/Q,^6L(nF31enPȷm+M/MX-9q]2-:AP83U5^7HQ.doE"o/[,m@m`G8~kP4$Nr,nxqtZ@XI4nVbk3QIl*IW۝9ȫ3$MpT@9JjI{i^Dw,Y~A10ZJJR3*O$+o^T3iOqZlc~+ǀ8U=%K*#/EGp3!E% 1oJ!Q3ƾtR Ui&D3.]U,lyQo3..~H3o:Ws&33MIWR$Qeo#ZXN!`X.I nJY$)*n]R36Wl[ s5QlOG49J%3#PiOE:"\3T!3/IRO-o*tKb3+GHԜ%"iTC:A!)HDm9W_s"~JŁ9X_9AxUZS§Fk>`3R)oY#n.G$EoIlO[J%nXhw3k 4L}щ%m#GC*3%E96,i&rU3kF6Vt#)[?lnPW/nUȘm+WQi#Wi(Hm39N_3?5QR 2k%!F&hP}q^#+HK()u\3nE#5+}\31X7S3"iqK\3Y4GvY'X",ڼqX"69nT36"U`32>:#H3!/NRxEg79J^y)voJ`˂4aE33l5>F5$"Sĸk{K43niY~Ĺ1H%2vO37VL;4P&O™n%O`-OD('8 QWr30wH|53xAQ·) uiS3hWN6Rue35 a]&o^X{30O3>*N-7$K&30HY36U43/U5r30\5. Nwa4nR_3)+7o]V]'D`uP0^n6hEy9VIX9n\I.3'/H0.~ZQY#K3V-$_g 2_h#ʼ5/xKi kt'LXa"0_ $Uu3 n]TS3!QM5M~[Fw; z/"XSD1[LzWl#M3VX2] 7$(2rI3)dY(%UHN>E+Fkw]URn0J3-emJW)l $JO#I8 FYZ[s5ANj ?2v{S3s6F9nNW3]iЯ+XY1EаY)34TWiEt !Eu96N(<3%5OF o&X3* Ij308H3-N*oS 4q^h4NJ4*^x ZCPP36.XZ6sn SR^2n)EI/,gn^ 2ovvN"bE3_T\a!7nXClp0*E&3{[moW37uTR.W%8U3,fi:_3#mZLQaq8]?D,nPF6͈K2M7 $/W^39Oj3,[nZ[9H)m\kGiYzQ&eC&KRJ:Y#Il$JJ(RjH"3n%3%KD^#KZ3jOL3-P^3I*_N/>Q_o[2K ^\=sP*#V6==+,_^=,*VK}-mzTW659.|[)7nUyD/Rr`Z+îG$m7G/ Q "!mF+g1S"ze9q]Mf3/]M}3:GHkN @_M3l%X:&RE#3+yO5[Eud!W]31W3+0[& ,0[2 l:^(z6H k/SŚYy34S:',lH<)nFߐ/d)FF=ߒ[\"53 MJ3+{|FIW4>I~/7Q6nM 7O7&70z6V86]E3.*qIHiwLO% XjYR)PFnƫ$\SnhAQ!z^6|:JHuF f*FV3;!L*]6,K)H7Ry_"V'CS\n6 Dy7B(_ }_YgҘn`X[C-cjpFm,W|ɠh=ISy2-R*sVR.+S^6Bf7Z$\Bg ɑp^_n-\WJ+dR lVՁ7*jJ7Z'0M[32lGMr5$\_\2nY:3nRd*>S`J[135W qLGnO0nL)0OiwL65=O 1swZKx3y85\3!y \8/Z934o6Q 3ndMjCϐ4DMk#"yJ=ض0{I6~oYJ:34L~Ƀ1Hڪ4߾)Y{M0n'Y}a)LX 8aO3:o;F%FohY3 #XA:[JDDv0"X<@3C]vcA0Td,wUecD: [3e3n] $-V}0$70Y`a_5v(\B-U">y8MHC5L((NCS+3\c%NK0]3g:^W.*1mZ7W81J3"]Z?~,PO$~:?Od3*'{^3"+M1J5Z_-*o_t 38M*3~P}TŴ'ES@3N:+iIP~;ŷlQLyd3No\/|oR*f%Op3#X\/E~CI,tX# )U\N2D(X\4G23)j*G 0zRUsTQ.3s^V)s4Pk.LK)`08?o;[3%jtlLh3n&R*3O^z$'6D b-b\w3hzYrT^!$zX4]S3z-TN3! Rm !Qs/0jtF?392J9Hc93%\L$[D0krMO3?[.JE7 L3 [yJ6_> 3!V3 D~ĺWx˱4Vx6,#N33(}n>E3j&O3pGYO '>pJ3"[>@F>6-P3nQl#VQw!vVS9n{wZ8!VG3lt-J4/J0.N.8__-)).K3)K)39 ^UK2{KKI:/J?AL%T)]*_U#3:_^ړ BL{ zK?C%KÁG3*"N38GDPnETQ9Eh32[./nkO}*3k9#MNU<o_3Wޙ*|o^au&4Pu\6M^FQtB]8Jz ]s8S!7NSý]8h3*!jYiX7G"H23&PxnH"C(@^H73'~D.E"QT Dkp[W, ϫR_}+1wnV38nSq -iJWv&3).&Ssh̒jVn?*$YTp'!6U8mHR#C}lE1432j$+ S_8:W^d g\_[:#GV6f.3J,v(PI#3(Xm^\=63/0OF34IdrWW ZKi2[ ~2W)4oPSIn mNt#QXؤl83Hz ?J>m7(^.^8nG<$P_2h[PiG=PSOKu)/qkN |} [+ !JQq^/WEkiS-fkL,T-or0Wݡ)T K_m)s\Tvo sO*}MT7?!M2|0QmG@3m[VMʿ&Q63:m8Q3O1Q]*9VzR3O3'mFe3x(iJ& Pzy31x{jTJ39oZo3#X&l7Zq3I/'\@n1Xl8XI&N.d0\e5]4lk6]qkTIH17N31lU/9YHSd4(VT3$-rKD39{P3/(XƳ'-nMid3 8+Fr4O,nb5H3PĈN`3#,[-=(F4B3}nR}3$e\7NL: DtO>+5Δw"R]=(X3lY4pXl31f%q"NM6t9NB!,RC2N {G3$hUNj-J; /ED,D $N\Vb1+Q9ZC hWL/V n)C–iTRCG,Q<7jj^/S9%SJI3%;sMa!0/w\3+=J$6+Gd])1[/-9O4/[:m'Jxu%9U.5o$^i72J ù MUü/F6ZWºH 3,:[ 3/(x\mG3 PYZ|8Goy32Z3wKs<-)J+3:VJ33^D"mA],Q0oT"v3j"I|k)xF6O3)nsX#n$[FgzwWglP&#nUJ33!C^HH,!An^kC7O\;*^->0!@Ws'xZ*!bo[Wu'yZ )tQ_0S4Rodd"kqG* 1Y3(^rb$6#S,32tY3&/Zh50ihY33^B%Nr4N_i&Pj*4xv[xG6cLwP-h$E:#"_3oOG\3+\Px%(tSK31q.H HhQ!*eUTh:гnQ.7pK7؎hn[-sMN,7:[Iz,aE<&_GQ3&SC3g._H3/]RF4S-XR'Y3n/U>23D|X}T:.nQUn_R.X-)oiG-+!@vPYQlSy38RY39ڍpIe#%{]{ 3!@\/7<5HO<7=u[Hw3bjh[bE4rEқ,^Ҡ-{MZS-%cSXhF_`'rf^BA%[A![]H7C HK0S7O<38}XLjF3: RL]$JLI!+!HtP Z (g݈kMdV(pO3-Ea)tFW65)xHB53(tHWXnZ'S$][]5;ޗ8KX)O,6#]I3lfMR-_nL  3"t:RG4/k1R/3$vL]9($\,L3'J%)EoD=3%U  hW3$hJH3%rmJ13}YBȤ!o F[3N#E^47/IQ]`N %X39YRUگ1o^3kk YS3^ {B95Ra;SX'x'Mt3.T~1P0N  nI1G3%M-noIc"IUJ:!HK#Q@7ב(U\ˈ9|Jv3*X]u35K3NGG:-kRykMR 'ֿn Ejދ#,ZA#6/]Mlf-WX39w̰G}G~jP^C5VNE0Y1W F'3'hRt# poFeiWk>K.>, uS'E?3[: - nPd*loW3noO3#UV:HLT$JU-"U/WLV$wjPX3Ƙ]~kHp$uǪZ_ [eW.Gk9^Ga3jqGU{+AfIK3on;H^(Od.)]DYCQ*V(%\- .E <7z1oEXd%P3& `7ND2oGi3$ªZMs/3$CF8U1Ro*UrF4JY1@JIVFn\-E)MQFC3)NVC4:&AnaK} 7mX3i pREJWS*;$gM6K 6U@l9=UixPg'"^V39FPv9;.yCU3h]JL1Vl+@_w3(,ɒXXg9k5T_Vu#TKv%GMK~ke#X^3&:G ,>U3 IMK3+W f"W;31JO|a8']Pa;-YHb-N33ZT*_lV#wY2s&Tq[]c{xM0wS3$>\!!#Z&3:kQ=<4K^P:2q[?%-[_$35@IT!p[`i3-_@E3/R3(R3),BY8"Gs2O(l{+J#k3):dV30B';\32XU֯6FM P"7AX%19E8](zfY3*zgY3$\AE- W~&E33ZTU d'8HGO'"J98SƠO,3 h\R3WIW9(vZp3\=9k*V( o*Y/ǐhhRdO^0Jm-4 T -B0WjU8[s>u&1lXa3!z$WxP#}LP9]QY~YZG6Tv4ݫ$z:fOr=6!a_X836%b_Yf354GTnZDz4H=36YQv% ]((SnTÌSrOi3YzE~9:hLFhjHd"8hHn3]ZA0UkW:~R30Ul*T)Vm^3!:K23jZ!Ʒ6;K43+W!3kOJ3!4zF26$]53n<ƐZƒZ$R9V7(UE38~LN36opL3$]+)Gb~IP3IY|C6U3j*_mV]*"2dN17_C.%znxJt٧9Wۦ* ^g,;\"^P$6F3*knYy3~4'GKt]K+fV:UD3(CS3,VT8T]!3xI:^ &vOh5eK1#8LgX3k7T%i3+mYt_:W^ #YIA31pIB3umi^'O_3x/]H "S\YkP[ϝk2ShIM3:4P63 cR(o[Q) ((V`{<9kT<  |Za30t' ^z3knM!L32U635nIy3i |M/^Mm3$&^Z%CFS5"c1hIr(o<Z_S<*\ZOV0do%qYz1q$X63 mX/35:3 W501WX02lc!E':lIq,"4 F<3#!*G|-K^@c"0G7t.5E:37I9/2O.s30Mv[3!E b8^[)R3*MNnl0/#\3$olmOo+ļ_"tMn{GmU+k$L10B^}rWNkr^Q3.xMEGI)PZzGJm&lH$5'"[3hwPCB#S834M/qG#oDBki X K.#jX3M4=R^G"nM$jT՗+0^3+o>^35&7[P!30nLohK1M&R4P$RL7:/)I`Rs4ڏ$_ u4 [X3Y1$b7ņM3E{RV%[ /-nUP0]6)-({\c+R&NN:n^,)4%Nt\3kmK37)OXl33IOf34Ed#l,GE3 VQHV422V!QH13'mztRM7DnJ@1F-*J=9hm6I3#zHԹsYeU6P84;'/UX0h[o`3.JL31Kw]"/S l#[p3+oR3s{GL4Yk,Mn5Q 03\3-NE3!d^ї1uIErn^:3:VU3nNP:WU;3)DGb33pH~?&dIM(33P0\OQD3 Q3-~WG3-{U\[bTB0\bV&GX Q M$32TH//$LnPg3n}G^g3$ I\"%|QZ3-nBU<5323L30ʴ3K?+)4?/Raq:Zz[: 3,Nq/Q*,Nt!`Ĭ\v3%Y 4.íZJFi4үqTF.M/JT K3 7O3 YzR -^~OoNF-Z )QBVS34&O{3% #oSsKn|6J$"Ke'TT 7Ftp!L@7%KnT8S;4)Hk3#72N8n3<E3:Ty7p:XcV vg*TMd2KZ'9Ix$iEqP.V0 EF38iPKG93o3%lL.1+9QKH39pF35eUM3+/"j^#1DJ'LM3#>7m[r#Y03iS\3+5 P3hk[ 3D-P3#FQy&Jq`;J%]Gd*$\|JK)JZeL/1W^>"YWN.63,MGnYGkҌZfu$,UGk3*I9@'|_%iQFF3:\!YQ3:G$(|Sx2W86'N ,8 ^YD`QtkiZX\W#O 5I3 GAxF$G+]P).\A33/dmK'(Hf Z3nFuHiGlSJ.W388IL-2l3KU3%Q1K;E%RF{3NUA5M|B2Ot`3nY'DVql\&7\ ̳#V'P3Q.&P!F4XX'LAC7^<3k,SM {#pV3*cMx3o)IL!8tJT^(XOB9$oI C_B,J381E3#7N3-+\e9Tn&6ESMWPrjTkM,4iS|vF,um)ZP3eMngE(s3T.`Eg=UQ/60juPֻ6yL'-"W]31rYVO"RRJ5~S3'TNnF32G?o=PH(.1Q{WƁ(nT/&PlG^I{)QU.=`.dQV=a.|Rv:"\\}w]|N/Z0,Y_0-Yn_$,H_ $V 9[3&mYG܉<vD,&5R:܎k6Nq"'Ns3]J36mN$3POO%n T3/FP33S"DQ3L!.32(7xZi/\[CiQ|3SR0.bm!M3(,L6/i9y]OGadoXQ9BX[^ A%D*D&&p^6d6SzT7]bm-N<jY9/TS[%J%,5xE`}/hnVߠ0PT4U[%"KI33dM\4g3=Sc370vJuu3yB3^}K5=W 3k]3AV~(^pD30wO@3(iOR3:~|]&ME_o1S7i%vS,g:LFYst[5l_SK=p7JnFGj3+lMZJ%\}&D<$u ]v3-,Vo17LYk:Mϣ*S_-?3Q5)Qmp%H];n%V3/S=0{' M\B>-H<)8H;l0Z##5wE3#€T83TT3_,1+bY35^3@'z[uj+_6n2G*5''G`]+Z Wu$9_x3:HARg.rN}%( Mc\eOS(|pS'(tV3lP_{cR,tG;{,URP3mP4$lY mQ~V6hO3tS c#6…ON϶ _w|MHޠ0#nUd$Ͼ1ȃ-E˜ 5LoJ32|R3+DRa3*[8o%o[Z`+aqVE3+błVu0GM34^XoLO58-NX0oyyTph38F3E3lNL37n!U(_7؀[(a!~މmV5y6V3$Q_74= [t.%U76xB!Wu6EmZ3'E32ٹmI6;In}E/3HPa m9_\G]3c[ yvR|Y_X, .jX!8TQ1S5l(KD"Y`@i3ZFOW'fFԕ+g98Qhy Pm,nPnAL"39ƒM4O)zIF=$zImE\U*fnFW1gWXl-/^;~m'&X73W.-m]inkYF:D49$R4&8D47iW[3DJUhk wSEr6UZj(/wQWwn$iZ 3#:@[1(nH%W\2ikUM3'-MD3+ hDo3i2JG3E:8. ;m*D;3E$]31:T3&k;TM3*N"Y*!"J+OH.{lOo!8VkT3kT Z\@3+hZ^349?Q33+T (W .*B %[o>PX%}f/^W<Q!aY$x3"kbY%34 1Thz E]|CqE.^3Rs3p`[3rkYH.?5}M,6(EJV`k0If30'nOZ#*q/U^]q+toX!P_u4+RmMI+{qjU6kJ3*RBJF |'"L|8!4]aj9lAKGHoZ\(v%}Hf3%~-_4&wH3![v3 ^K:nmFp3+oSo^8[0\M#˳i=W<3BS 35N\e5U3-M,3j#Fs\Uv8tTx)k/" Sg#S@7Hua/cN.R>.LS2.xZ+GaS3.Dn!U3U7ZnGKH0ZWcv3N22!2G37FLw8-4@mK'3/hN%I/U32{DS _nd3&LPFYPG$[n\3 vVMêN^!3(lTnl31LToW3!]Y r,IP(EnK]ٳ:l^N3.:8^R3| Oe",Q)53o'x]4YE1wh\8!.( ^2~r^)t;L(2CoZR3lzOv:$|H^x"JFEygQwXH- /[Y3&mR3$P2F.oZYl"p3Jp37 KnMj$POK%T(3lWE3nwI US3hT)3!_!|Z*?9P +`\z(c)(Oe3._HL . tZp#[J<nQvN#|p+M 3*VtPDYoc+mQk-'VszZ%{[]çW35LuP5dk})H&F&!I 7G:OM46.|N7h, I3[Enu+fY~Z!zZT'Zz|^.\ cc,]3/Ɗ6Q8W,I(L\ \f/bzMONf4-tI_^5-vIs_a0mR3"I/!+C_ 3"V,-h\63od0EcY3"6U "7KhU3:('Yv XRܘ,JXܚ$N)#j\u7M'B!gmgH5$ Ih3/@nfG3k)IY!:sS35(Jn39R%@"dn[IPIx1Tlw (qPJ+%Pc.]rTL-}U+%'hrId3%I%(m\\Q3h)M3&M3/'X3nU@?,zKS,{S3D5 VI${oU;I3.hL37yRo;%O?L3/M ,R@LP3j0 LxM8i6_!3"Tt&GE3&-5I^.t(H38qƅK`FO:WZn E5T'\bU<%U^"N6h[3/[3>_~ `#3QQC9J3hM$*b]L3.R7I01F۫"U074I04\5T3{7KS}7KrSk27Nҳ,el Rҵ#)WUKu*hV-3n"Zp#NI[8GWS8ww I[,GL4I-L] 3_Pw3-S$oeRBnHD~7kOU35nSŜ3"OXC37X"Xn,WWT [nE=:K%5 XTb6$R|P"c0guCK3%_W40o%RU35=_)n,X\_9QbM=3!!T;_3 ]e!37oF7/)TQ3+E+_F/O3I4I!ɪ4[/G" yaR<:3]^H.]_.YGR,4R8^nVA23+X_b.x)\>bk 2^ 6iCW34ƱM2$ Mz,7"R35^cf']D#&\p1QKq0UJF-r9TGF41N={7qK9R;=+aP~K7K)(JRN&\C](ަ%MFaâIZ0:Jf32uRDa%^(0:[>F((TW\d8K3X(lN63n/F3)2OԈ,Zv[P3' FKt -(KYv0{2V|30mGO,VYpI5XM:SHe3~AX)kKI'QBX )(-F)l:Wp3$Xx)2\^!RՈ-FV{!5I*:_3$YWCK|5 VJfn'Sj0>k{FH3iFk.Sl*M-3pK{7y}Pd3#{H44H,.n;onYx3R.H\1G_y?!ǞhNJȎ?lHE"6rU  'St"8jL3%Q_|3 &+PP&,PlgNf8W4TO'nI "+*h^X3^[3O8=QKhtMr8.nEq64¹Yf34[$3!z5NI3lsFc3#Y)!u[aiEOU92tQP<+#P7.E\8XJ7%vF[\@ PzlYLF32U[c~3C[LH39[fR3imVf4&@H/*E3(XV_*%KM\2sX13-9KN)P%G 3b*JOL>03Y*3(YTK =#L J\T+ćD3/ I?t .J)_oWB8frVa!i][*!-]+"^KMT/UĞP~8ymQ-&&[337b'[4|3&&NP34!_5ݥR83+k{]Ms3z!]N3~,!I]3!]O3.KzLKNͦ7KzI3%5~KYE_!űO`38h#Uk"NA*4͆s1^w&pZd!OƖQ]c+-!Sk9-*k0U)5R;3!pI3),V{%[Ц/ oG!43"6DS?3i JF  sߙFA "^F +&J3o ];3}iZ4iRu`V`E0xH}x a"w͸o)KY.LW3lq4mN!OCvI&@%rGKYA&jJ-5'gG&|&!P6@:H@>3i\gg3/O_|P69IQ@'yTBtj$KWHOXvS.2 z SXL37v_,3nZt39ku[hkv[f!jWHpH*iEUv#pS [nV yGsW4³F30β~P%lÑ]\3"pIpy.Iz'E01)Sb#K>(HI4+EGZcF}I#UUc&DHI,<hE3hvNFbIkD[E(.pMer 41iS|HW9S?]&UV c'R y7܀o^{Y6ٸ}8Kr!7}Q3h1S(S,^f*W]2y'Oe31g[P3"hp%Fk[*3lC:F3'1zOJ3lkM_\U2OH˭m#]-3/+D@3:'eH3:Kp,+sK?_WR-W@%}1 X;̾*3o^T8T Wkl39 PvL!Hl[d !BH .OHx:G23/_ZM3,U!N-nm^&O"oE3l6O%N=4k"RE3{9^ |L h|Y(JSC3l=RP3/j-QYu1\<^%0^sJ+$Qa!b]:M$HlEI3!\M}8n\43&5Rn)G3, N5-07Z@-]3-W9K5c258Eg"6sYY[sC.\F_Sa3"\39>Us$)L;8TQb3k3UOcV0Kτ/Rh^=3i0wGkpF,]8!A.F2#&]^Whum]sW&1qlNI+D 3RxUjk_`W&8KG$7Z3h&GRC|¢V 4//K/r3+p#O\D2;#T&T$X1V`({Emȣ9Bn=K9DmJ2qU_(3A0H5RlTE$3]El;+ HH)5<W ,o,}KTѩ-P>i8<Ow.4}E8k.BL34oHbq-Xx i7tx_p3:9E>,#HO3&tDXT/eM!0RG3ijpX5/uI3'IPyH#EwG03 {hR8F9-0II43Bو5Tw#5wF<42HvE-E"9J%@]#;Yc.n&mJ<VX6, ^39W%bUbӆ |Rc3 }K5O\8SӉ4yIe%7UB:N4'9rLC8GZF:+J*$X'7:KN3vjKR,n8R-cdUR3e7N[zm (uH3(6Q93!WH)4'yN036.S) 2aFzUi!kDGI#^:6U9^3+uW|G3 \3U)L9EiWQ'Jke9GyUI_g9H3FYQ30\oO].O_8I(]l3+KPnKPt&E] n9#"\fp5/w_K_L Q?kS\>8F5EJU2pXAQX)5Q-vQY#'ԣnZ& /ZVK3,z]F3nYD",+rL{s0[H3BjGH5z-Uq!(Y3l(Sp8FV'5X2YuV $,PO3q6Fk V*&.XT V3U9  N3l9HnzUtMm3^%R+hQ{35(-PV64FKV74F VE6bm?JS35Q8^O/R>!h]Jg!8oW-)Q[Vj1klj\ZD1,o^32co^/3+{>9VM2ipN sV3-ͷvdH1oI33M3*Fǁ R7D 5N_35~]\$TN3h$U1j#T\.xNKkNR>Un%_Z->X9N3ΤJzO'tmPgj3jD\V7] 22E-3+Pe"X(y')Q3oI3&zoNeO2 iWY@W5l0;I&P/n8S<8l)a;Um3%R1/kYO3"kY3Z2K#![["J)!^jHs9ӛQ.4-E E%"<sfVw3.zO"PAL/$TOW:M`2!WGj3*]6KR1\K&7sT324J]7ndN!7?ViJ71PV+3l@Wq5msItlk=Unp/^[m<30wZ]aWk-p^JoV2Fa13n6tYX B5:rXn5(|X3$t}~FU)ٗ'0yJwƤo MNת.QPxN3!rV>I׭WJ,:BZm3RzT QA3l3Ut37r_ܵom?_758KR3]$3l]iL`" aEe3G> 1 >/G?@1m*[2r-^|mBl&M2/CqeH3 .Yod*\L^2 4`6HC:Kk*s^MrK-UQ&-fF03L*OZџMPP13oQ0IcH <*PZѡ [>߬8IoPT3/vFSkH"7K34rQ"î":Q#+oLN`9B^ 3'&FoMZ/Ux3U{"3,PS$n~NR3.6WD-ų4HgqXO3{ Q +D1m^+1:cG%34niIlea%5] hn]K T4i0oDy3#o(] eʦ1N/oFU"kiPvVf+0 U:^N3V~n3I3*8Hv |J)wu|Gl37IT<06AU*Xk,]A0Lu#T "HU5 <!~_33*^Kt'On8J6*:nR3!s\"MN*X3!^PR7DTH1+[Td8ðTI3[ !Ea36t{Z%PIGoyWP63 X tlPHH!11,]"glHs/WP3-UI|6xRB1r~\g!w RT3 xRU30^g i1zXHY'{²W3'5W\GIJ&FhM0o&0Fd9sVD'G|8Lp,nQ934 *UB36dK%4%0\:Ty3F#Rr_qXWLa#I#:-GG.}pUycz  DҒ-Em![N%:Tn(RGT2Q=BA-Q?A7mFiZ$X!1- Nz5R7 nY3I+nY 3lmoP«+RF%KYoI8Zg#&G1Ԡ3PWGv7ox\VQ3lL5V8S35{Vt4z~O):1wK:xD *JmOM?*q_4hn`\Q@*_34 MS!#SoPGhkX%UhkXVkr-N+"&WB :<I.T2]!NN368O * 0klX34aKt^"3=O37(XM!&SB34sYd3(^6g^@O2V 0=%Z3(_;K_L~0@&^3#xD3#i~ ]*R#.D31 sS37m:KQ'R9G(Ԥ3V#L*[4ghFYj2uARP6hRn V&(<N(=N+MQE4'PS+a9}Vt30{T˜8rN,#.ES89/:Zr5h I.3%ׁ6iO  iFt'G'$.ƆK32Gu18G$]M]H3nSTw30RLA#WV39iPH<k^]^ T*ETrڵhxDeȫ&0}R`'F#:3$Pc?j#PLj+#.M3&#Jj'LR8Is8.! iXE3i1H*BO39\}]_"m[{'380XxZ"j9mI!t"l-](L'8(\(3iXxT3//TX3/JG[3.G<3o\#@1%?J^4"E'M[t+rOIHJ3:\U:\ZjzAEKE7hL 9)D3ſH ?5$m]d \'Z" 9H!{W#1GQ2m],39Pn4Ef3lƁTQ3\nfU%&usEbJ[5#mZ8Y(lŕS2"(r9*SH\3UH%36iELDZ7!1[n$XR=3$[44J rK/[;C1mG 2"ERxS-"NJb1h\ 32&T3:6X :-rK3#uO̎!&F.7D8G7oPXSn]39U4sK^5ljM+i0wS2"<eID7tE611_C7&AJD9)G3u3'LLU , R nQ(n YI 3NnX3Q5g+oXu6AL$UElĢY͇ ģY͉o8TOB6hTD-eE^LQ .Q3i=`Qp8\qWa'F n^w"&M!R]-|M4%o],r(WM"jV.5Dž,ʁ(G"7dž.bŠU 2)J`\)1G-(wHiL3$JNG0mMb'W}D[8P-PpP)]oXt32u LZ+7&-2Y3lG6 .yHD3%Bn2H3_7?X2ln(E`7@X2m7W=okcLd|}7Wq7Wr\!KCoBCN 3C!VG' Rl] w*r Gu&4!]V38T7d%gF^@)SEC0,fF&%rR1j3&}&M!Kƪ(]E3/2S*/:x\!3,>G|3d(EV;BznWllcHM3NM:DeƤJIٝ4lLO3nG.n}/IhG/,({+H =,pVek3}"BZu=~ZQ="(JFO 3`O`+ iHE6S3/qqDW3/rx2~L:&]R38wURh+1 (x]Q3&]3+\cBi0`Y"37l"ZD#dY_2#4G'Z<#V -2@N3-:^F#NS3 \41|PX#T wBxLV/8KpQ.3Pt6ySMv32YtN3)]S93.LmP3zIa8bW&c-"]L&36jUT'8PbߴnS i RI31mhUϒhzE]YR#WDS#XD+zDϔ% Fj3*wkXy#3X31[F3!:^>3%PK^l/T6MLi,L5 C&TMYcp&mEN3 5I<3V50DJ0"nÖH3+nRT9,hk\]wϛnJMV1i-?V 0'nU3)\1"Es}‰5oXBx(VgqKd[5rsU)_k(O-=GNR)nT39PD3EL:t3) )^T+FU32n"PYE35nZE3 8PJ%79I6UfW9LQ6B9F4\8OG5I3/ZfY_+!\0T2x3F3,ՙjMcoG4gYn`%wG3IP`J+K57}E v؊8W*q5j4\;$M@3-S33k"R*W,3i<W-3&ywUe6^|-R6!JvQhvQTl)M28mU/d&1 F 3nw F M3o{`\F4^3$FW  *SR,RB'Gq3/aV3 hk\ δ28)Za3-mwML8zD3.^dz+H 3-thWt3(3Q9y!]%bl`.sI#n%X3'qn^b>a/^@+F?y42XV mU46TLFQ2O/0FRnf_HFUHZTGW"V4kI& YW6}|J4dް.G9޲vQ޳8qO$=8rO$?o|GgpS ~3#KJe3FA1GK3#:V@NhtV:Ul25J: $}P{N%n‡YŇ%X7Qb:8O?3:|X-E^^3PsNR}D4DK314t]03|<XsL2_[L(YTE]i4y5T@]l42KjA ,".\R4OFN[/NKc3.1H3.`V#XA!1\/]MZJX[S[Z8ӑrRl\!Zv?J$Ibn+[TD>3)n`ZRn]Z0lX8r34wK3!?jPZjRO\:%O<3,X:37n[>%Z ,[A0JU 3n_Y_ˆ22Rn}$dsM#-3/iM$3m^?O+m[#Vn,J4ukx)L9A5I<sLi+n]q2I&E3&-E_3.(\<3SOb3pVu9n+l}ST3)RqmKh HRKj*QS3(]N3"]]3jXΎ`(8_~5M 9G-olY2-l[Hئ4N[\97Ob .S\+P9kX'SM4P<oO{R- YW75O3%LUk:Dr>$IUw-30bJE\P&GPoAOW7qi+vW8 c:EIl@LY_c3:SHE33$W=AW??!3HF32+VA3C:NE+wH h@}Pk?93sP53uPnDO?Q- U]D)lu+N}-10L4-l\.3*E}+Q3'JnO\J5Y)L|DG(HX$r;J3()L2i}Ig.kyFQ$3oHA,KO"q.t0[32nLY35LI?RW3R->NYLj(EB23'JnEV'l/ZKA37nkOP3*Rc5'YQJ3lI~Iwġ7L/3:kfIƱ9XvP3,P3&$Q6ƻ>%]l{9I&V$N+3H4FY' :oT#!>8T$J:E4^RI3-X~TI0\dkLMhY3+ oTQ>*n:Gg. sJ1>-n"XJyNzE~c'~P;8)6I -U~z&L-H5]W!24Cq\i9CO 3 -O $|[<C5w')] "=TGm )H4%}1P 3ll0KQ6Z~3E,]{kHyXþ'<EZj3.4pQC'oBIb7L1YPMkś\"x/TEUIQ"_-TL3%@ V 31A{I33Y#8Z6\23"Xm3\3#W"( {V$I%ATo1CUA 7k1D3,]hSx3!r]xz3jYQ*BQI9LF3'Zk_8|VXoM3-M3/*M3N2Oi=O'*I37p$YIlO8r3,/Y`f8i;O93k45L*oY 34z mTC*fNr\Jt:Tz3'nV T\ ]k'NJ58wIa3,;8qS3mbHn0&W>o3);+W{%'Ei+fsxTl !R<0o!!R=pkPHf-^5X^3'<VE;&@6":WE B5AY`$*UI 3 qQ%~?iZ .RP3k+5M.=P4+BR36[J&73n1MG+05I*4OY)YfX39xG`3:1G3 "nZc39,WnH8wU:4ۉ$Z_ZU5G_.{["~^0eVl HnvE%3.6GX$/6GY%!X(^bH2~n{UQS)=kxSnɦ)?iNɨ+Nu:KNw7OJY8&D^3f+1E18'Lng'W%1eNg-d:^ЋP#PIXMnQ3Ķc:w\?"S~9D[y61\5%kG{%mozX[+SH$1[U96+rSp63& ( 1O' "62>D n&V2Vo1UO/wJf75Z |3!98,?-nU T6sRNֻ/l~Q҉ @3 S-6g+1\a9*4~"i$15%zRq"30=!?fM.U-4/%"ID'%%V1k/]6#,x!.$2R J$*ؖ S\e3 973A.)y^~Ѽ%*2'.2f!%F*r5˼0e\"CK&?u R*7 )!(]-!>(Y$69f]t.\) d0&eF#-] ,N^-#'6L.c@)mYI`#u&i+%,B$'*7_?4PVʹ sX 2j =A?s#Ov(\&e0ϒ3+'"61O %0V5?0UC2%)$U:!0*!'`3`2AX+ 0,$B)8()Ҧ%m U#'v0+"L 'I2@$21$M0<w&W?']PTw2wG3 MZ*)j ,><|0yP,.TP)0,0QJ+̬/1W;+F+u3`J%rJ3"6#%y%z3h*v//t+d4}-'A[3_7R'&}$WH?%٩p`2N0/-#J$Fb)Ra.J?'e?U'Lf wFb 44+@-A/H1-9)0шX)gKJ$Hw6.)N* <,P=i$pXi- ێ*ɱ(1x^*>{&4qbGl\60K 0>oZ"2# %R ZkW1k5: EAW)xa0D !8.r,@", R ,,R  .Eb\,1UG 8k=14+H&^`*]10J$Lk s 9"!'  -݀*,,1{Bw()!C\2eir*O\.1eU1>Z*!(Y?3+u >&#b(!3d~)a5%";K D1H2+Q0<  @ŋyYa&QGE%@. Q''V'(8`/M&&cyA S/d$.(M-`ɜ)Lc1,B߫T9`D/="#<1`_]$?6f*r1Q/C) S\u)T/?(-cd&#؁(f-> i,-BF!7HF" #.;\'gڐ/g+.#s4] +.#! 3P"O}0`&l'#Y- Rp1“./2j?2}N1Z-E%j%Hē#K y4(?2\2/M9$e)RA.3N?(.~?K!2,71*z$k0"dh 6P vY#X^&AM.@g(-Yg2&͍1">!(1<%3G /ZL*_1?3P/UO,$XR@cLl X 2~Q -b޼x.? -&Nk2_e0  l381YEU(>+C,7$2^+d $(3PbsE,}3J!D/.Bi-h%505Y+Wԡ&@&S' > a-=$7_*:"B1. F,+-a{,RC 1$OǸ "/B3%-'+Z\I_I r/.$Pd'?9 ] T :c$,*!ٵ#U` 2D&D.b+1 N TV.6%JTFk:Z3S(+#,tb$ '% $>/}\oBv$"['V1@!!߆ E-St!)#0:=dQ$ +2/%U*eI(i# s%^'qI8d_xk@AU&WT,r,g=!A5b!9U1dgW-HO#ޔ&X;/ LY^$$#/0$3P#WGZ<#ci],X#+]+L g̮vW<3=0~;W$#D/? _g#"5[&x>'["sKa0S(G #2F,0R)%&SW$̀&1&^" A { 1skC c1S#%q!0PU#biCi24CCXC24X&u&Uddtn,*bߣ3 (K"$%Q w'Q)X2|y*=o_^/T)80-,C#h,${jE 6/:$2%T'%%/ϟ)0$"͛$(V$<%a &}(X1_$eJ'l#33S1&  'a3z150S*RD\% <_ 3{%[d!C3Hțk1s1$5$8agH\$څH\kܮH\an5kZkd;5"H\Zg"5"[F(Y&*,= )%R1)X([ 5Hm"< s/}K0 2ua[R(AZp(Ȯ&0vtW2")͡`V+ $u(cj$&.CQ*. 6*.* 6*-Q-+I-%ϵ-H-mWJZ [mN?N  NNZJJNNN]Z   KNW mmJN?NNJmN? K? m]@]  [ N W@N  m? mWmW[JNm  ] mNxm WWmNm@m? N NNKNWNN Nm@WaJmN?J[  xsNZNNmNN?mm*&!=-c(;Z""~N%6)dX ' .'gaxx&#8*N^ 2'&LV1SJ-b"!B;Ə!ף$k1B-K{ 7%S2$ G H(/a1k"f*-H,>%̂2-Eg @&+3_;1- 0 ;$R72:H$Qn$%L-Y`"U) /m?? 03@2W) Q3dE/3[(78=.˃ ~6$^:0KH&Q&L.>&,48$ l(a>2j$2`y7&SH2Ar%:j 41DV$e7 !6;$^N&lca-YF[)2} 7'('NH AaT%A140`Rͬ)3#.U" 0]+ L$0*&&0 ?4)V.*2fvL-1>y v),W-+  $'#ι%لAKP%Re6'[+.(+Wާ$+-32^?y/#]0:!C'#1&\/b*FzKF0+ +.,0<c%J;xf%.!2 c!#(eT*7&ĉ"[O"dײ?H' Gż2&Y#W|*'߂S.P1[a18Uiܽ+y  A#!% %"x(*dE*/̚ vV,1ׄlO{$T.ek{L*kcT,/bd+PKy'#[!''vVEb".]]DȤ&;16d$h٧$[b* #)[9)22'hq$' {`!w!w^ 0$&ܖ: t!,%K! 80`6=.(6'#Q@+BgV&)][2It3U,I"*%=5d,:'Ue#$h4X.M"&2<0CK5@! H!6`Ĩ%%$d( /5&4 .N$)0ϖ1-3z721M!S .$$7K!U+}  {0"-{./8j/*C K1|\'l&A{4p%l39!-FcO-*<&+}D813 0-55<,")'2i!R07n 4:ޏ-9Ϥ62iޒ-:Ϧ'V0F!+54%KA'&L&M+}G>&^GB,X16$(E8I)m' :34/kV (4#;]['Y]\:E73 L+07.+:1p&<$Q4$n,):b) *zP+0j.V+$c*3 42i 40,W(3$Ӥ$0ӧ/13G#2.:/9 o+W$\6<:1)!<$V+}//L-09^4G+2++}"})) $999'm&eL 8y{-44+/ $7' %8.--8/.13&8+}.4?P!(2uP#G rђ03G(06<8-0(-:J#U;'/j?9B/XNj7Q23_,#4D,o VH.):-l^6%8i.{005j)c!(E79"|3&"&#,$,.{I)G[787J7C079#"B3i6"[)U7n)+}q3"-mu*9(763 K%% @&?P\:2`\;.I $/+}Lj0eǏ-V$ث/<08{3{3#4w2!#q[" `7%-5?40+9?1?QP-{/2+52i9i+0<(L/24$(.-1\5 Uz- ,>!%j$":o,(/v 0s+'V3.- ֏%!҄02.25 (8y-I/8,&AV93&{/'q)s9  AxD1!,9u + +}8  ]2ag+:g:'"" 3-$nO69&4G 46 4J и8$ˋ5.M$-n>2"|4O1"1O'`&4/#n`  (j 7>15zkp)|['%T-/(3q 9<ӆ0$y2)0%2/&(4&+}U;&U=/$;+&A3K"Q%!e2y7::+}H (-&,`7$;4#%(Z*%/Z&J&4)'&5Q(8M ~+a7D<,Q)R20':]NN2+3W5c%+2l0=W1/N4(V14,:4%~+0:܃8~&y, S&$'S6V.Zdl+B1x9 Q6z&/-(.m))(%B%B9C$m/D0 7d9RC/ %#8q3z-i62 0,L`9V '!$" %2"+} 3"4g'/* '1;n&Y#&e'c ;7(tf. _+$(0 j^"^::S8)7^2i#%N*o14w'2x'3$z'5ʀ"Iz7""1{M2</`Ҥ"2Ҩ#2i6$()*4.t0S/<3$&,{Y)!b'k8z,¼#XO'0XQ#XR2 ($$:jԻ6C+}G!0%$8o7O.j:+!P8%3)2J07n:,NR#O*6:-w3!"i#2qL#n-,p(\1g0!<,-):*E-71H/$Ȩ4:Ȫ8 N4$)4v!ڼ#(7R6jb9  l %Tv)/`ۂ)<({/<ۈ- A939 5$R,0'|0)0q", ~44/!nF&X1Wu,J)C$4$'rF6G F9<*2G+"K0* 4'n?&:&v2:/b m8 p3,_0-4R12E .U4T4UQ,#a0_$? GQ;"3+}5, b8. (j͓#,.1/./0A0)n2g0"@+<"30r, 39a,<.d %M2mR-z-)u)2(w)(6*0 E0u%b W.*M'Gӭ+9C'\9F++}2x+,` $='31$a.q20K9% 8-l*/2!.Z-f+K!0-o9Q-p1-D,nPl7  +"|)%*̱8aj#1i'. " 51$.%<8?W9 7?].2Z*2k 5"a "1H-~30s3"!10 %~# 3e) 7zD3 f+ 8%C VZ"K)ָ/4u+8i<9 *($(&*8j"gĂ72i^ g-m[.)+}'-(.m%}7.0m,$(Ж"+}[,')'+*&A/2|,4 U*6$d# =9 </~P,$(!776o24/}607\+a$L'g)*?+&s@)6B"66N+}9S!j(!/1:)'9+#L{&\+233 "5*,{c6 U!NI!((i 0&\0(I+/(=}. ZL6P&41"X&3+U& k8%1g&k$((ƻ.. *\1?85Y<Q!T#; ' U5 4V%6!0=6%0.12/5X1 (-('0  ˖,6˘--0B#!%%-T#$||'  'uX+S10$(3^1.0'S&A O07x&z6,g +&A|2@,)n/ "64+}ĺ #a6 &-k$% 7C#)S |+<.G-1 !$0!& _ U%1<3hֈ-<(!%<.&0,kƖ. R."W)$+!-60," !< ,}<9*D:y3-/w8z.<{8$(.:`*- $6[\A%_:,)F1R$2i5/B7,t&š$j<0G+53v5"$,n!B9YZ2[&W598+}0-15$3L4k 9I63 %093%;6b+]$G8, #6d;.p&A=!k07%`*19զ \;L++Y199`k9bL7X280 *9*|  0j;9?'] 3!<%9+[29$|#z1Q 1S+}8 $8 0',4$5-<X/jc.{43X$,/+U$(&l7{ m!,64)0+).`!T:#  - 77 "+}$Y)2i2Y.%1C$+A05v:G :$G'7X\)W&Ü%<3  $L$4n 54(]*2q/07/"y*h&`.-b* )/2d3  4}+]7,+}8;0|M,<Ȯ(Y1  V/2 bb9*  0'.W(9N9/07"x)'$".3G.(Mj&)3(/2@"2A+'#v#t (($(A$(!0-(1E!+}W+3!`z(071b%(P9t.r"%P %(47).l-ל.BMם45Ǟ6<O#(<1/=3k-t7~w!G(x-O-%S-3 U'W(y,0N1' 'Xa4o *q)$(T/*.c*R05;4 ?"07@' N6O"./"& r- $(+&+'HyV+ -):"#.#/0y&;V&= V,*~&06+&8:H,zP6/15[z$A(($)5:09N:19O!a"!0])@X%h}0^,2+Dǽ-LY:$O$0nK j z*-8w>:8 p)i07`#{0Ps;$Py$2(o$̻8%̼8 ~̽')h4{k*B9'2"u*_2G802/"R 3):9"rU1D 4 v8w&j'<*,2qz) 1&2Ij960Z1"1͟$",$#1#g;$$$089+rd#yƉ/..ٍ#_ƍ50|=k1 8+}=n7m5-m=p71A$N# ($|$-,:c="- ./`0m1s#1t%k1w#+}1x9cA1NT|65f:l*wL#M.Y07uz9'U+y 10*/$%:g.}&s0(7wH#>Y6/80P8t0L'&`)&c/=74y7's"{(Ť/{$  <"+}<60$& -'!()&AS(-"10H 0*_/!1_/#z_."%12   t,&`#|(m۪8(2",B 642 0_!^$G/A:N S:QSS2d7Ed>+\c(,_g*%LT5jU",{.%07P9%r՗&:2  P&A'D8A -4r̹!07.%.!f'* Yz4f$(s4<;5X+}# ~+@'*V-f% <$]';,mc&(.,ϥ-  WY97!ɬ y*'%5"/;$M!!z.C ^.DP^%/2f5/A+31(/j A: ҅-3*-./<63w$A5 G9\'SZ&"R.hx4:(c#c  M5;&/Ÿ#jU%r&10O3X2+:&442:+*.z 2iT&9)%:q,#a,:"!W$Lp/w$+34]w8R1)-5 ,70+;R(! r2[$L!.r2qȐ/{,  .^ 5u{:/+@?8 7B<3[A)-$ /6@!6(9@hRw9A+Rx*e2h*V0 2U)2P$W>6U'cZ73/E##&48 1 11+}W6#H7T7&81.w!<7]8'& --P8TQ0:~!-97L(L.$ ;"S6 *:T0ڧ:h(ڬ80.4 }'0/?r' -,zi9Q 'Fa&r3a6/$ .$."(?. ?&1("Y10($3|*3}89<22{/ "0p/: 4 (4 7  7  (<1"36%>)}(0v  y* '*%'(~5(9 /T6095j969!$CN* (~/$&*.(X"H(t5n9 <!9W#(KI) 2Zǧ( \Z'\j5v3$]R']',+}%Ap-=  9jP7*S#^$ '0z!-2~. ?#'&4[!:j2.I'fD!4[&5D&8lT7(t5d$v8w'-I1E//'+͂%!֝1rh6O-K+}I 06&I&00zG#{8*A5_"0b2."$#*J]#R.0!4 {-j[%$32$('#+},a9NOY* *  :l.$2N˯2˰&,&0,,~(B0Z8O)]8O&{-_ 2Z 331+Px+z)%f-!eO6-y G,5/*L-z3 L-0722i)0n50s"n"o5,H$,"H'"*p7Z3Fn::(Iw20%*+y1+}H5&*/ɕ++}!,&<0)p%BP8-p.%$+-S6'T-]Ho8q7M(|B%[+0m3̗33 T1$/"ջ1(c%J0v#*0*06 kC8_-Q7Z:2/Iߦ*ո7i%5 " $7%/S3.2#{ z-y8-0+1$4z+8/]K)$N6 O0+}O)_+)"0!&6a۸ 0-)zAh6>0S0|S/S+}7Y7V('( A:ug,k2(5 #G "{'$6G'5$B5$F-q +՛36"5G9 ť5G.(E5y e{&*Ou+[Zv+\0w807x/3 ;75! ~J$*a)<0;.$^^) g40ɸ:0!7 ~/Q.)5)*.1g83#+;:K=:R 2*K#)#:f )<$0.088u'0C:|$3<2<.  ~:(zΪ96 Ϋ$C&ԗ2+9:w(%K$rS*` }-~$"):(%:%+}:"07у:2iх9/}+i)Mȑ9$(ȓ3`UQ]%%I7$, 2&w ~!E+-5J<"9a$Q6$(!+b'((K6q#%E^" (-C0s0+}V8# (([ ..gc-&%WM%000 ~'.9]%:Z%&1.@,&Pr+(؏# (!ؑ*9#0{,N" 2i/0\8:+}\1,453#.m /' <-1D0Z'1g[8>+1(]5_K.T,1R/!3-c 2'Q3Q2<ʶ:&*  !0K07"/`7n+}4#$%3#~#Ds*Dv% -hU"33)X0J)YE95)$}8Dx0."0$80%L&+5.*80z"/1[M"k):"l+}#e(ƣ'$-0$װ:G6+}J(0s0"111R1 QE(0>!ǭ'-^, i6\`,)('$K6 -A6MI)+ !>! 00S(gPC/$a3a!"` !'{&0/C#/%U9.):+9)&5!!.8p' 28z7){t*k$M-&w++3< $&0!)4>25NŹ7$1$'!o7-18(&n"T 'A Z. +5(s&+h*/%)Z'"1]007, 0-Uټ,!00-6W' ^3 =(P (1=%+5:(˶(% f/  >6  6%$B7b-B TK97%d&&к& н2q-1!$(4Z$(:+}T-<&)Q/0R9532Q3ߋ3]((|3_%f5 ~E(ϰ%j &:6b֠*/9,+Ƥ, ƥ5'2 :_z>. . ./7:&$4Y,{X#N}7@$%&  %6)n&&+'$A905/p8$+},&,1 E"WBZ01j<{2$ 3/$*az9^07-6% 3*5$:v+$Gw3Md1nf1*$0+#C6|+m 2j6~*H5 ~o9g H1OYO7_)[ ,S .$|U '#z;n-<,z4 ~1+#1($8 $t^!:)ύ+ +}w6ڣ7'V0(f<2pM2%M* :d  ) 7/79&_(@"S@&#1i+._&z)m+}S#.yc)P#.5)4€5W)z5W#E,,(b)<-k3 5+I1-m+57*8k[7,G03&$3/f6Z.1)ü1 ý*A0þ0S$)Z(06$ ^(s :%3L?"LC)^0]J$j7G|(x '*i;+oV%,{W!(L5yL/'!2+Ѭ/O0+/$@/4Hp/63 r'(s/8v79by&(S2 /X6z2$/Z7!|(+}~'+}@/dB6 0 Ω3" +}ά$6(63A.?0:q"o+(+H˯0M(>!@( 03,3)1 Ӕ-J4%({-47pFA:i!D8FG&*W5).j-1"<6'3f-+}0*07d8n'p)/ -S% W-T$\807/-\/%,Y-W+}\: P )*Q`-#2.3-5q0%e:{/3 ,/P,P30)ш `a( 5&z5#'$1ޅ8ފ6 }2<3gQh4\'g&2iQ6t b8-"7%2o){0z2&68D% {2*V5=3 2$(,$$V&V*% #1G9 |'%Jp0X3[.3 V)Z(t%e K$$9e!L%f3O%g$P/ ,(/$R+}\-%:Z66$|"=>a6079(P9I)$(,+}I8P%$0u4:]6 //x/1-N2n";4%q1g<:!2+} .#^T62H+}#,Ex$<83#&A&U&+U*U1J7q$(%#5!7q$2$(Ͱ8Z7`7g09a7$b&071$U@'h&88C/0+}J*,87?s( ٞ)׺"j = N17 ,O.%+5807)+ 6%`&ܺ!$, O*-15c(<:#=$1"G=609^? $C*&Z1T!75e3T R/m(}*1n,=o*p'("T:g6-$z5o߯8 %)k+ߵ*jѰ+(6427%H 1Hó/E+ö6$!)5/e1{/IB,4{))6X+H8f<{"<"<"z!#-t.,/n_=&('ʬ52+}+0O(w.&+Ub/5/ɂ b$()N,<-Y08"><7'B7B }075<S+03!QdZ w E'1"v` I.h%o6 O8?1N.+}6 ~B$0%U"s 5դ)6?)2G4& G!PY.;0V $9=4Y/G $D }V/H(1R*v3 3*D1g&&3 &+} {R:[$*9<4+*@&m&\:'{M9/R#0^(%C&.I,(0q30!>0&7o$3 q,0&$?3d:"r0k­,(X=--F.6s1895$%8! 9_ *- 9 8$6$<&$$L9|6 ~]"0:k(.9=7#Q)%=5M^,"%%(~%3 -?z/*kZ*z/9F *TR#$ 2) 00 b"z{y 7S_ 8`-Z!):(4 8c1- )R#R 0Ԧ*McE({Ԫ1+ԫ-<,0/0$[7$q5/0# .25$<0F8+}0}+}W* 3$G07a:-4+j*~0(19:LK9 ,#+}\#\5U9\0*=%(^0c3 b5/]S5+j5m]T5N]V) e3Cں0ڻ0+}K$/<-:))%z"0s2F 23  :Da!w'Ox 1~,[.2 t6 ~@%Q# , Q-i'0(+}Q-j6("ݺ8Zݽ:v ~)7$3"d !ߍ3$3'33M i!Y9kOZ*_&5(820*#$ja.).$E0 E* a* /v$'/x+}'4!ӝ/)"s/y!z{t!-92.*!!0J+, 6P [6R.[!m$[/CD%YG#@Kn7lx+dUKs3/g/ z3f-? {/ /<5):\:bPX:e*.ND!x*4z!t<*zi.'+P*- )3G.K2:{|&+}"A7KN"D#x(,c$P v+}Q"&A'#S-͎*gj&U&4[4z'828Y%-z&2 &&+}68[,0n4;m%$p,+}6,<3J: (82. -\%J|(l$J3 5n["'(>39"+)81H&s2i$1+} &tN&%V71=&g/Os(`k69'&i(Ow+`m&E0,+}#.D$2P9U/% ):R:"oT:#iW)H ~ݢ3D153x 6T  T$5))f2/2z8s$C38<Â!q/X"nz,'|0&A?)'|4m3 #J!7s%9+}7u+2ii)I 'k.8m/&,4($+}ֳ'09S '3G*(I+ I"M-$/o3:+/MN5k[0t,_2  Y9) 1$#09=-g=%-ɤ%jO(-YB#`/#12iD90"4 "9O8#3Ќ0 C *8 1)! 7v#?{5%p$},:'I[2 63'=&A',%* 01~%%0/r07-&s,3/,*)'/&4. <6B+}2f {)$^(w/\+}+W't3%L'$<5$<"NB3{j7+*<0 #an9-0_F9/y_G7B)0|/z05 &:3"y0<.+}5+}""ϣ!gk,f4'ϥ&[ 0/-oB.i3 21g-'0,{-@)#de($4*3!E5 !Y ~5#w%&"%0%/W ~5_40G3 9 Y5`1=)83_3+/5-)!.;348,(1+$L R'n S+}0-1$8 &&i'&A+0-03>"ؐ-+}33 +}o4&Mi-u$^!<8`$e.$`&h/u [ RL ]RN6g0O).m۫0a AG0cPAJ4*:!mR#R): ~R:R'99+I-&0R,4,+}32/aW5(W5 W**9$'%-:?{޸ -o:2Zr3K0BԱ%1-*:`90+2+*  &k9])7Sz,T) ُ%6% .RL0x0L60ё2s$]-D! * ,b+}.'-3<079Q~#X&2iY1abJ3&34('B$/#6R8H1+}@b"[@f32i!3-v,H8{)7j+V"Y<ˎ1,z2c1S#a9J #0x2-n's.V2$$(/! 3Q"8*B',\ % ~K&%0$bnj7+}*': 'w+%(-B$!+}  \9w'9yj*9043-7$t*[a|+`\#MK5>nQ- (&u$)0&?5<8G %:}-mQ6)_b&+};3Q͉)V$͋7x1r)%'n 5:<51%i"~"e$E/7(p&A5x53!})$'c!0(42600#({{-!',)R$#-)3oN"6 $$F0J" ~5J:|з4lh!-:P*< `.j#-%3G%-c8'Qj-)t a51%gӃ(a6(0&x"R:n2+ 2:5'-2+5FU>1z7(#($1gW+J0(2/*m`DP7$]&<:3&,%&-+}0$zZ.a)3)<)!  $408[/g'4 8^3S\O:+}I"o I:I$I/%[8+'>-.m4_%P6<6!%),:"'g=14P0'/ ,!10,$[ *# 5M6x1w ~ _"91"G4KTc. *k-501U7718+";,G2i<*H2Ci 64h1*I%Cm9"2C#(aO3%+ %-r%3%6\686:<Í5007Ñ-04..44!7z$#^w,* =++}Z@+&!{\0$|2$4 2%20I- "$|%M0V4!}6F$}+$~+8/ ~=8 _%+}!Iҧ$92i,3*+A1+}5 $Jɫ$^d((+}d):Z0sI$·',$.&' 6l¿#T+H"6<07Z,'$8$8$7Q7)B s7*V5g'Qk%4'G)!1"H*1Lh!+2l#<6)H+)H,"Z\282iK(ĵ,<**@(,1%7$M*0b"15:( {Ϝ+03ɗ't3ɘ/$|%a *!***$*d(>1_$#+}%-7I<1!# a/:<[11gK925i 27/& 97"Z& :4..#8)1z**+}U1+}(Y' 0.mb0"0#i4{z(~/,8"*u2i:X$6{:: )+$($'q"3 L00fW+f?H!JM* 0%]2 /1$4j O>.F" #3 `>3'O6,E)g 0'"`+k3$|8&s0 v(;#4 !?5"<8((43 2;(C15a%s&&%t &){E60H#D/G9)H$B3V ]"-օ&O0&9hև,2 -.L74&44*} Z.20.&A/4DNU4E3 NZ5N)(N\#_[./D/++,7<4<+,#=d1|+N"k3' N" _- /Z-,[*-<.7B8.^3S4K 1g: h*PS i2bj) M#+B%3̈-To62K"0%Wj%/'x-:d8)G:V :W0-n3Bzq!գ:-W3E6 01-s-P0(C  !:&8#}&) ;- Mx% A/0"^!{- $yA4c ,cY606L183c2i:>62)_$[:@8%  7HZ+1H,+}/-0&G+U36+}AX5o!Tҫ()i5B5C/4 $5)9.,{l8S+!+%4"%98+d2$+8H0883 d6$n+-+.+a9{5t9%G 33G33Փ#0%,r$G'X($,+3 +h&4E8L6.%% -%70|:$<,y 1 R0M2 /<404h.u+R  b'/Ή')0/!r)A*07 &i!sA5_7*c[7W$A1k/9z"@020:6/ޛ,x S/$X2S L:(("# ԁ"$+}Ԃ"S.+ ~.:/o6O<${t6:6;/7MR:<)N:6v"~$z"{ m, ,"r/):6"r8&z-9~ }3b%.+}.$5t+}.' .(+}($- Q#$Q2L**%' ;#߮ 'h.US*T5V( V23K6h0ԑ)$(. +}#%* J5L:x(a( :y ~(0{05]9M.3J$@|.3 J-YUb('9'3jK''n0U$(%7-y31z4bL8"&:G*:̹)$$(,3-m.&Q?g!"5z'a1(++U& ޶'1g":N48+}Dc"Dd$.S,@ ,A)5gb6c&r+͡!O23+}'3+k8&D$J9+ċ9% #v[7*{'/P ~9 '4ן:U+}נ(<2vJ!~ %,,Z=$+#1>$m$`M0/P2,+8U%`%n$)39+81++?%E+ 61 (+j!3t(9;21 $|(aU*p$ 0.-+c.> 2.@'28*+}D'FU!Q" 9'2i.$+}7+t !j3{YI*11+$ &$h(4O%*+}I(3%$23Z#"f*+}+4q%+1f='63GP)(G0s0 8+8 $N:g  q#)+0H+}=.0+1a5O `&Z)" &Y.v701,0/ T071%L(g$o$p1g+ T2* 0*yZ:z,2iz5"8d3 C4#*eT)$8}(?*!$8~B)6)3 6!+}&].P.2vk3$(r)03YY}:z,n{-$$\$^0 d/H/.O/ +}H5+}Z /*:3& !:2i4$@4B''?)0%3+o3 +q!h Oi'KNc!0n}-/Ng*U'15X$("`$'b/<($/  ɓ4.+# -z05p$({-S)u/, )b,$( 2e0+535.55m"W5Z $|"'X-04 &F-)4) R9(%=(Q6i:u.) ,6l+^Z/[#h#,-07.'79Y;"J3v ;U-QL+z~3X4k4_1W{F1dڋ1eڌ3*:t;0K-0"Q.&M&/1<4n! 0'|I'$@%0n_'9@"Ru:1/.&|9#*4%0/^90w):7zc3(&<:!;(c 2#w  z,#07s9#)w6A<E%(,R%}9)+}G%+}~(R70"2-V9+X9 )K:^:{#R :|.!06K<2L*)A7]7*1y' +ș8)"0|; $q; 0R*l1]4' 9}#7v< *,_"_?3m0f#> Z/H%(8 @'<'R'1 # ,4 74_07ˡ1 2.z9#/4- x#&s`6/|/e07! 0#*F.-(g#++}F/)e6i (*5<$X0&%9 7`\\)\+}:))]:++k  p<+= 7?+E?"(?%)*#P-07 )a(&4$cu5h2'*QP63G0((35"0368W#I<(b)/,M)c!vV:-m+\56%/ .MĮ# }P9L$Z2[.^/.5{%<%$/)U9<,/J&-*.3j,!u%<) #h(z`# 1 `3<0)R! )O+,9Q9݅+z0>1[2.!9T1!R&~ !S4`)::0sr&%9C7C7Y'dG2,ZI4$ 6j:!:!7{ .2',2$w)';+}1# "H7" 7/R1x7T Z&+}Z93 s0ID&! qZ3\+}8z&}J'+4  5-i4/#-)8Y,H=v8Z)=w&(=x!0-0&6K!/{"`,E 9.h3=,%Z> %[> 3,0O:s2+}`/`*>{, Yj9m%"+}?%#+&50+((0:!(T#.A,. e :10\15 2FC/1+W-$nk+V.@0-B80D!04y7"7+x7Q1&m2&n7r{879g*Z_5$ \2q+} ^%%-ũ1&N- 8+ %۴-A3+*t&V7f =25V-88$|5N0 _,$(4Z4\5""ɿ S!S*0%+o)): 3/ 4(Hz_+P|'):K01;/ +/LC1>*n՝+Szd2).՞5 в&-f0/+z4!3&"&4S*6nY+g$0*_)2i/$3"^_1(^b*U/l+}#^+oa $<1K& $<4|,#ʔ9h"b:.07ӻ)y& ,01+},-l-8'K%,%*q( &60)!| 3?!} 3A:-00)")"r<061@z̈́0!<֠ Qz֢6L#M#1""+!I3<j"U6)D6}06++}* n, '5# 5;818%!&1:.-67"q .8  .9S :%1=41D'b0 6):#'d:()`Q8"1510˺$$ /K( 0+1c  ~O  5.ݎ6y1(qCH(rCI (,k86\T#j3T4! Ӓ5eY/92Y+0C)|c)~e//$`*--"$A:+7;-. 7\2^4x&f4y0$0s&{,q&5&' %.6@0o-^&<8<1-<-j A'-_z-8$ -{'i/(,e3G,\!, 0,?$BX528 4)+}S,'&%d3:03+e(53 T7&A*2I.%\07"h4$(-'%W3$6(6 (662rG(,&AN2$&4YL9$]*n%| ,V]%#3!:=%4-"%uH0,Y,+}*3/&17y`9+}--V<"%'-Iƀ+s0n+u i(&$+B$60+<'._(KjY;<2 /"0"(g#3 ""<*.((&)'.$($1%/)Ϗ*0+Z/B8S$dO/14#,-$v7$3"6809$!##6)Ů%G2%d) 4 7z1\3N1ZL(<-N,#TV1o+)9q*]k^k(.  t!L$ w4ɿ4 0 +}$y(7R-8K/!b+}"R!F*^ G/ Ϋ1:):/!|/7;05|A/5bER5e3 R$(c}4Wr>'A. B, #,#"%+)8-(U1c(Wje!W!W1`06+}9#"{5$$-* )6t.|5"F F#G6ί/+:,m!h/)@1ԛ6)':1v071l&:E6^K9,W0 )K.f07X'7(j$u_!- (&A%p& /)0Y!3%8 7q%0r( 06$ *Yrь/?'.[<.R5+}.~.S+}! ~.!1.%H- ~&50('e 3$3-lQ5+}. /5GQ5HMQ4(%$%b"h-+}b#Y*"2&ISEi5,13V:m-<) H)4I- J(2q3WW/Q'(%+ (&-)G K,.Z-2i4t028h-3"Z5:)08.%),*7["*X\& ;--3'E% Y3 +}>:+}1z,?*j?3 .zʺ/70ʻ,1  :%k 3,38 &&-mD! %N8@)::$O)n)r% "Rݹ3?$+$3#p:9:+}9$$V9%$V9P_6=}+'T8$#,![U$ ,1 +;(2g9*80k:40[4#;:0$,+> +h+- -%5O7-mp8<34 +pN+q+}O#+}-O('<14>,PM)Z.+̈+(:,g0X!'0$N0U!7<uʘ44$!$$ѭ5H2/i230)ð-d*8U3/ k93 )*2i)$@*E$?"+}8R#6<0#I4 7 7z!ck/#/"."Zپ+8+ 5#<$k,n%  -Vk4 Oh4 Oj2!"0;/i( )207g+*A)>&43(! . 2ܼ.0 2t!/.x"N3M*~"P )2{'-> ("T94".9'~66Y"t#R,T.+Q|0=7i8e M%0Z(+Q,{ϸ5+}Z)3<3L~(I(J707!4D!fM6M831)':+})T<(u!,+}4Hz]90_8=_.,7+Qx,y10s2R(+0y7')2=/Sv/Sz&A. 42-Q# :153 1 33!Q. +}&k/:-?T507:):Ё7j%?-52/ DX3X&X8V:.%d%ė%Ĝ3 ~ğ11g" #8l7s &{2i1'*X$Ɂ'W/V3d%7 <49/ -S:Y?%%@.-<m/ R)9#&z.07I4-V`990!/2 S24)$Ϛ&#252570…7+5Š%@W*0jW7 [2h_!8$UA7(B055+,EI:F G48$ 8x+}G5)8%Q)h+X|.<:&"85 V--5?uLQ+{1= %)47+#$;,7-1$2y.R5L&#ѳ$$[n#fb+&s**@,0|/Yuh1/7e0 }3.%'z+UN-/h)<2u{7&RA,,:6~2Z/k{#+.2"*!2O , 1-*U+}W5^)[%j#9!ӟ#Y';:4(e'8%-:FS83s 03u #(#+}(*$9*3 9!~5(jKr/"Zε6J+}@$0:O(:R#]&y 6])ږ%VK6?B5+\+%.?.07C")h*):?"*(i5?%;%1Qv*b?)&6w$(?\2B 43V)V9'1xV=.n+)0[/#90,h3$X(S/ 3/z&_!g5(*0V+M|$S[21-d.+*"|9m'W!w  09 1!x( 4+&9+ j*!<5d!0$3G:+}& +<9 `/Zc3  ݞ56 -&(, *c(Ӝ8&D1c[7@/"B&$2}& 2~! :&C12i'R/ -VD4M2Y8($'06+3* #^!0s:/$"01HY7j+% 9jD&j &+}173 %+}x 3"(2Z,1 C8 : 0I:+}I+4z8 :pF2+#u'[c/tJ7'5z5%,5920!O)31#!*(,l3 9-'0V`%I0ܖ%J ,$1,19ZT)$T) T7a&0s9<:5+^##Y%2n${8b&A:U.#(1%)*ѷ57.6(.o,-30û,>+}"0*r*&1 0&o! 1&(L&)$#y1#$8u y)%0%<L$J L2i'I6W0i3NF6dNG1$_C$O0(0 9d/_H84+}_I*-(%ʴ*y+72i4+"n+21;+4=J",PH,Q 5qN8_40'!F*010)eq1g$("r**(0B"(D-x, 7c3#'@6 B%;f 9"H% :% ;P%#)M=,z ~&6T+}(4 G+c&0Y7$?/j(.P(ߔ" Ց7*'$He%&s2.# 5 57 (,; !! *6-?% .(R'm2!$AH)0 /(c&L"0|P4B) ,?#a/0U Kg/$G*Z 5g41F87±7=#{g.'Բ' Գ$51S 411.\L/9{ H [:+}\ I j]- /2!4*8$;+~<:^947,Fm*"14b&  r"a0s 9 //&[&S0:20n&0z 5*$|:$#f*7 478$(w,Dk hF,$1#3 Wk%,.%$:R)#%+2iޑ%,+}#3Z@9v0*F#"0 3 F9K4i$)א,u+u&*):w&-"9:& $^:!< #.K6{A (*k/924z)k6.mi5E0%m ~V,{&Al8(8$+ ! /+?2{Q59/91b5s' 8P$(1(y*$@11[):Q:0+N0)#K(e,)%ߛ*}ߜ7F<a4@ ~E2:B^#;V7+_/ E+*9# 1(1/0)LF47)O'4;3|#E*%*0ӣ V|#986y1H+}[*F3 #Z$(7 (!!.D99+`)vK'p,%Pi' "9 >9 ~>0(>!F4!>*+"F ,%5)#-6:I0:JP)2!a2a5<($8:/!, ޣ!+ޥ6c6'"1@8(z:Z'7 ?6$݉)EC7kH' '].JQ/T,1!9'#7*&q/(08\5$I.HI8 ~[.+U2?@׆4O''/" 65.f30sВ(-(m(_O8r.Ǖ+b+L,,z$ "$#12i.-!i.S-6 ~9[0X4sݭ,|ݮ&Hݲ6"H7%8/29`!4$EÐ19`40"SU{ 0^#a: 0/'M&N'N&O6 ,<E-7|4$597%X$6t k0ZC7/&B&40&&022.833(+ :P$Z$/5$+ %:0G=1A'4h,XR"-٦$l S"+}T$m(U:O<./,<&m6(1O33$N,$+}`12M%`20: R.E'H!%Wˏ+$3 B5/%5):&B!/}/9E 9G 9H %З,U30+}+ ̮"cT&&Ad+y&S0/6&V0h70i ~:'ı2!0$Ĵ/z4 %2(R(6!k?8$H-$8%'' L/3*+|2*8] 9jP<.<$+}<#8^:2N2"r^$+}R.0.<2 +}v2+B9NO0'w1&$_P)$J!i*%06!\A zɉ8SB.(/"3 SD"1SE.' & 1y "E S'-, do1X$$0CNS*|X"+}p)?54d<:07H0<%$1J< <6=*8A&&/3 *) ;C()(L7 5%^(+L71m4(23](ؗ,< ~x-$*8;((7M!5$(!Zc8Q/۴(%/&I+3:!˻)3;9,a c():c)## 40(%&kd02ih!!j6(6 $'046#)_v!8 5m')v9 :$"73p5@1'c.Q XS50Ô$kU%:7+ (:)3.X&AL '4(.$(j/07+M.p6Y(%M!+},-і'y4]:&:"H6*<*+}? +}N$!P& O7 P \,_/'Z+}-0" R -,H b:$b%14-E%x&A'8)HV,+˘)x%'{9; jO<&$4-8 F8k)39~(8zK/(9YK0;$K130*s*2&\@#!!%Ǖ.0":ט"0(3غ).m'*{K/_$\/z +;!0~o'_-3U? %{7.*$.)/S w:9<Ae9#$?,/%pb8͐9a+3/- ~D1n#(EA$Z("++}Ғ7o9B207]9D-jE:2-  $!5#5%$.(w /q0v1nx+*=*;G5J+l[l2*0 K/Z$("&0 9G#J0+%W008+}$<8+}. /v6M0s1MO1q$0 , ,$ 6`8\+}`8/vC7U t#-g#-m*m,d0n+O")>9$>7zӇ)kr)Zt*!@*!C9 !D#o 26)$-C-bC%,>0"Z[0"1]10*#N0/G.'&/+}L#/q4*s"+$e)(I_!Z2}(/*ּ(zY:/.07'U=J("R:6"1[,0dZB1[-5ƀ"+}33/=^4I0n=b3U=c"]QN(X(?8+2p=3='*$#M%1j.(1}49'7 -&<",1!D51* (F'v$T" 0:z*  2%Y!]! -h0&Y7 72<{'8I#2i9C %ř&(/+0<"= N$v4 & &Mۢ- <H*NnN/(RҬ/># , "0y-pA$k7'S"D %~+} +31",B,iT%)&s$/3d)d0n(Р:%/u6 $G4y%#['#\,+}\1.67P676'1H6'5H:"07N9qw,y5 O5 R*M0"'M46 0"H%y!l M+^+GT#y2{ۋ32DX:9 +Y3a-Q A#)-RA +A 2(R!X<E)=+0)?(#8v*%%70 Fz+<Z2^$=70A6ud*6 )E1ySM9$<&!c$&#Mc${3$ 1 5ޜ)ޞ:0ϻ2&5/2(*n1<-%?+{F$X7+8K"O7#$Y*$*  : +5O0$(:$:7ak8 53b$(:6D00+>',* ,*#m4{ȉ4X^%%}$.-6<@*+]0+}@1!9 76w5#x(H 61+5 20 }--:0 ߲ '(߳0*/.mF2 07:a)%Pc#b\#]"V{: ~.93G z6H2i:3 ,#$W6-)9(3I$($T06ӷ+>Mӹ-`,"#-b3 #7/4.)Fp!Fr(]W./06p3l<F:0:A |:2.R92k9).=I8^+1g4N16] 8(a(1:n"83+n/]-+o ].+r-m]1'$١)?c6})0?d $?e5?f.k(v!30HO//.*1S.+ .4,E(0z Q%b`&bc9"ݕ9#-ݖ5{+}"X/4436{20 X0).$"j&#+,H'5'$J%N$\ 0E& E8$V4142 1*7 2%82V,o#'0J/so4$J-=4J!kL%|3"2' (L4k191%93K?-$K@:~\L-2&%$ǟ(hz$i>)&2i9>2&p%-a,%0&'Pkv4u03m8-"g-9?*:!#y22$'J D#+ n07"#D1J @&%707&D:$.3 '$1֘/җ%&,p9" <2-/qI/rI#-8!-|,9+}420R2(U53 1E82V%F1%G+}9++" [u+ L+$&{#0711'2-2r+OI+ OK(N (Oj 2  f#&5f0>?'a(O (P7. kܨ. [ܬ! )$g0eC eeE76ӌ* ~@%+-i$hM0$C8t+}Q0MUP.M.O9u<#9.7K07L4]&#$H-%6u-&v9L4Ik#7In+FZ( 4~$50?!62 Nh%0#&3(":0-j90BA' 3 BB*d1(n  u5^)%+50$g4'&T&s74130B&dB!"Z)T}:/e6z%7'%93+8{!M+}+ Y24:Y5/+}Y97+5y1m3 7( 1o,7 8H jH. +}F:*/';-.4q v&^&) O:/'L):+%. )N0^!^!@!!A@#1-?#2'@9e_ 9f_!2$(]4e/$S .g+}c%0{+6-24'"&K%-A(078}4a|2&l7y$'Q$57{ş+<$a-|y)+ 34; 6jL2e33$7) Z(%c+}^X7ɨ)"9,07$r0:3G&@,R(3 !*R.&&A,%k1+%'d 4&C,s $ 0N R4h#c ','#~# 0L#W4%U+}P"\! 3$$$/$*]3-2[!b-0F1F$'Φ$(*zX"1w4/S)dT++}+$ 1053G$E%8N+}8!3GP.j)R2=K)s'8:*-z8 :!&A5k#.0(4{G$3)ͤ)+}@9,+0z.O&A}"D)QG3H9rs7 b o)ԗ&$(ԛ&#*& #.#sX9E(d/>#VWE$ "C$(<t*.y!1(!+v-9)Q36)01.60) "  $-"+P-T*5!  (}S0P)o#52iV),1R.*i  6-ʭ":+}:j a/$!'s!)%\1 21I"E1zV+$U2./f:'/g<6_."[,Ykݢ0/3x9"0D E'^q(D%r.H$8'9!!':3 8|,3 8}.+E'[6EJ*g%\[A'40 0Z+U +L"H9 /O9 -2iv,.v,15$> 0'O O6jX-76k-94Q'A-P:-074! 0E33'C:0*(:18ʇ&@+ʊ!0:-!-"S007ʏ00gє9$|E!02::(*'#!&o-GMT-H(tU$PV6 r8- x3%X&h0n&"B-;++ 8915-y3H15[I42_&$,Z:;=32+}4.'b2*2+6I10,Z6Q ,[6!02W,\6SS,`%+}^,Jɼ$OS(7OZ#r04,07-?m( 53e ~3iN 4 B3H2$T;#T=4T?5 jd$nа&( 0%%7t18M)KO#kT(  9:+}#mT(  $0+%$/3!-'.,)$$U4m*10s4<u82i/$%<0s-1#7R.h)2j4{kP3%%6)\U$<ϭ3L0.-5 y'{$*.$֗3'** 8JL6k>: M(<8LB$k$n$Ug5)q%l<1V+}(<+8 80s)#P""* A09*) ɗ&f &-&)BN'z  )?1 6+}S#A+F6+}S&1$$#jp:%3r7-915/4(c6e+}n"8̘%&(X0j0k %K") Ă) ,*+}J.3 ą6 *6Q*2K*#!( (E%!)g!d $+5r<& 35*%z{.1"p42'!$(5l/fe5$Ag$&A(5y "O,M  9c4c4';&$(w'(F51F5 F%.W'**P5*M56OW&n1Z-*}1 _$ 2i% :*f-0sY)Ȣ# *6<O7!P3+}L7 # -20&3}+}b3~c:h5~0g5j$  ~, G'<A&,3I;s:,\@ 07#:$@: @"iG8X.3q3&/<4079*<5R'ˮ:/%!0+5:Ӆ ~*#9X/Ӌ%=(48y4'+" +,I ))V5(+0i% 9% 292_:1:\%i\b"09$- n6%i09z/, (#R&%90d-a-:8g$.v)0.w6}$0?5$X+21p{*3 b,)07*!$+}".)(71H~&//-}$:`P7$+!ҫ \z"0" ^ "108 2M$H! ! 83 >*9',"#:8/$y F53 (" A)" 51B%')"'","9pO)J+}3O7$`6 %]0`*3 -%#1'#"1(@(<t-Ex&(+}(-F|)#5<!0 ~ ?0|!+  5h),Dx!,\!):.%1B3<ֆ5"L 71Q~/I/(I(z(+}|0&.+}W5'E1<7'0!486$8, U%)'jJ 62 >7 @0',! &.].O%D3Q*+jO-Fܰ!Tܴ.+}>)b#eO31`,j0",+1 (!(2b.e.e.3e-!3$!-/*x  93   !0! C0F"0J!/7 $( 9Z1F*p<!ë--+}4Y8K03/b(^''0a0F]!746+w+& (T1Ŷ7072+>0+@-+}+A2#P{ :4<<3O0 N.-e$ʥ#%ʧ*0,3=>9N'9z8F&A3n2 _,8-$/  -%C_)+57%%)a+:m1s&s3ydQ!ydR6_:d82%:-1C( *4c-B%j;0&s<,1g>1^,m +}TE#QTG",$(ա0+,"663G1 2409$Y8%v):L)3 M85D%3*'w' 5{$% *=-y?96+F*n1HT.'HW$f23()8(5-R)MV$+Ϸ+T0#])O007|82+}0`.O3Ň+ڐ:$2z+}-%"Z#i1?d+k90?=1*)g,P#()BP:*q^1+!3#$-7"5!2>&"9M0n& ~ދ8SQ/2i2]#63G֦:48M:5 8Q8>)!3 [$|/9l/89nu89o'8$0),0j +C 20|[3 <8+},p"(.A(7,s2=4|=.0*) ')z $x0˾'}" $*2i1t1 1u "+$ ,ZN8. 8/+} 7/E70+}J)7-{q E3 * #2iZ*1-+[ s!c"!e%*6 )c{0&20/|֬9O 87 (8!$I >$("#bz-6&4A!6(ts():+2B03p0C!{*)94^<(k_&1|/2  M8" /+!0703Z6y#^ɡ5}07&73w(2Be)j00,1Py5S5T+}4/ 2!'$ 2wHЃ!<ܕ#$U 5([):'e50/"{"1RĖ6'$40lg!?,8+^(Z%H1-8$+}16ع!1>( |,00.e< %S9$(z+{|/>!*-!n3rj<4B*2f7++ʫ#2:$)ɀ9S0 4*?.b-b'c-0e,E'2X"oϙ&40^*.)<) 1G6% :5L%-T707q(s31,X5MX,149&4816=007! R6?$3"^(;-6@'((%u9%01|%Y1'/9+-%z9<%~,0^z2$X+_+}1 [73 %/f%Q@%R @%S!5* '4Cz(1H۟1+++A<*R9,00.L$3 &W(:8 \$# |޷1$|&`-\0PE/!X;&07װ1)!3:M7+}:P7|+}7}2Ŋ$1L-j]/3 7%j:73 m9j1.u&/~5)))".u3@:3A3 :(t&Ax x ""f?80Qs:2<8/Qu,w</+3 080 +6 Q,,Y%w*(( Ev630V/$(.4#T0WU*2&20-r#F< $0s+ )j(/ x))K =:1z΍8z"9:&%iإ8[)!6'"!V1!Wn900T$*' .0\ f "!)2$1-.~6''aq"m/`h (I9xڿ:L'.=!5D."3   ,]?+x "4?<,"*W -!.$07 * (4 D/+3'+}U/.0,184r)33Rzh'YDN''.s#aͼ2'3 V u$&V5!i1'U40/ - 'W )*'Y.2J6#5[]-[&7dƲ9&*-&>'Iy-J7^"?J-"1!KJ ay  d+} !"0QH$)3GH0>+4v'{$]$(f1'#, -V03-[+RH5Nc,S&43G09-(yC8C53G!+n!)p0Ѹ/AQ82,%\%2//4)  0209)`&5/3,0IN" IP/F)3#%7A1%>y %^+} ,\)[61j4"r+#ׂ$0710+#l07s9s(=L8BN836m<4{43 $I0 '_#B_#3 ,z+yOt#$(s1 .2-T[!+d3k2*p#1+$Cb%`1 T12T&$T$>$76^7 ej/0$ߖ')0Æ,Y$$Y.Z+2zB7$ !<&*)2~&s)-2 7r2'7t:Q:I 0U);$Z4101):174#5+-2 ]BPR2$0<+jEU\XD& (b}1(If/UHIf$B$s1b(1/UACb$Bb/UD1$B\!IfOIf$'(} 1T)VX"3T02%Md* -_.-XBx-%T1{A:)2G%T"LUw7_+$ZA"9*`)9}+&8  Zh!%!J/Y[16F*E?m%aK/I8&fٓ*>+;%&,6)! *e!GW] *2r]c 1o/`'"6Q]#p΀*QF2*$;^:J&2,'A%U0$%d1'$"(!!46 *S*EjR]!#Ǧ!d%^Պx($`А1,&Wn93&Td,r,%6 u*+, =B$7ҽ-?1.u"&g,Y$Oϓ4,- 0I-W+2QDD]3AXq5p5q5q)5qf5q5p5p5p5qI5p5p5qA5p5p5p5q5q25q5p5p5p5q55q5p5q5qC5p5q5q5p5p5p5q45q5qg5q5q5q5p5q[5q-5p5qM5q=5p5p5p5q05qq5q5q5q!5q5p5p5p5q15q5qr5qb5q5qj5qY5q5q`5q5qE5qH5p5q 5q<5qt5q5qh5q5q{5qO5q>5q5q 5p5q5qs5q5q5p5qL5qe5q:5q.5q5q,5p5qp5q5p5q 5q'5q5p5q75qn5q5q5qU5q5p5q5p5q5q$5q_5qy5p5qw5p5p5qc5p5qa5p5q#5q@5qX5qW5qS5p5p5p5p5q 5q85q}5p5q+5p5q65q5p5q"5q 5p5q5q5q5p5q5q5p5qN5q?5q5qV5p5q;5q5q5qP5q5q5q(5p5p5qv5p5p5qk5q 5q5q*5qG5p5qx5p5q5qT5qm5p5p5q\5q&5p5q5q~5p5p5qD5p5qi5qR5qB5q%5p5p5p5q5q35p5p5q]5qd5q95p5q5q|5q5q5q5p5p5q/5qQ5q5qZ5q5p5qz5q5q^5qK5q5qJ5qu5q5ql5qo5p5Lv)u!XLv(LvLLLv!X("Lv)uLv"Lv/=%rJ1:bS!!ŕ 'i$" T1M+.Ts( 0p:5!S"(1IfL#+W&|]X#*-F|!sAk +a+c*?3\#U0x[&TL^i;2Y/ * %   .6 i̟5I}/y85IbKҋ5I%{%F5IexA4̕5IO<r4#5Ib34bIКJ4G|zԙ5Iy4x|5Iʫk5I#[!5I!5Ipޥ5IXG24qg,b5I  ۗЕ5I؎ܻ5I95IGk$5IҟL25IFӗ4Z5Ig5IcUa4n|5I5Id ڤ4\05I<)ً5IbU4A?+5I޴>4)X5Izf_5Iٟ"T5IA2(5IbxW 4ʃ5I0i֬(5I#cz4b_hv45U*5I"PK֛5I5INRֱێ5Ivх4<q5IR̗5IΓҩ5I!s5I $1DD5IpBN~a5Ihkٻ5Ig΂܍5IԶ@5I=94>W4 [5I7_ ^5I8_`s4%0S5Ib5Q045I/k>5I|ɑ5IR\85I^v"5I2k5Iytf5I|45IT>~5I([5IU-5IGP<`5I:}5I9֯5I >Ј5IBW f5IbzфP˄45Ijc׋5IYmt5Ipδ5Iߔ;E5IY5I^f5IcΪ4K5IcvʎZv45IIcj_4?ۦԏީ5IۧԐޫ5Itɟ/4RP ހ5Ibbמ0Q4krKF5IxcLH5I*5IBzf5I;l5IQB5ISjhج5Ibސ'5I }W۔5I|-5I߾э5I8ըI5I;5I sD5IM D5IbbC"~g4#2 4C%y85I(W5IP/t5IN5I^1Q5I!jq5II_uR5IٗЌϼ5I/:D43O5I/Ҳ5ߺ5I5I24֧ϔ5I9yH5I)c33"Ϭ4&7#Ϯ5I'bQ]4b5I`Pʹ5IW<5I؈w5I?5IT.5Ib]\4bوR5I 35I5IHb5I@[bب5I4 " 5IcCUK46cRj5Ic8ޤ49١ 5IIϰh5I b:24c<ڳ4/՟cT4&[ѪF5IB% o5IH4N+ߒ̇05IY4BVt{5,  ͸~5IFN5I5I-VmI5Iy5IdhJ̰5IU,|V׏5I(WD5ITv5Iy85Ie\ (5Xi{(5IM݇5I/5IQw5I0A͢5I #݄VC5I5I|BV4!44dٞ5Iψ5INYKɘ5I:05IWy,Պ5I%T5I(15I˕5IMc54H;ܨ5I^t˺5IX>M5I > q5Izdޱ4Qݦ5Iד5IMqɜI5I Чx4Etg5I[/5I,aZ5IfN$?5I_Z 5IjM]5I 5IO5IR 75I**ɯ5IP:5Ii/h5ILC5IAcg$4ͥkв5Ih5IVkZ+Ѥ5ICU5Ik ʞ5ILfl ʢ5,MF5I*͖5I "?5I65I#5Ibܒ/45I_Yݍ4aA 4Qˤӭ5IY4ʀ?5I6|5I~F@'5Ie5Iԟ5Ipؠ_5aWT 5I|F}5Ici5Iҧ|^4N3֝5I|bӊB4r5I5IX4Qd]T5I=b6"ֻ40f|+ҍ%4 yЮ։4dC\~5IFݞ׉5I؏5I(̿d5I@k5IH@5I`Dtԭ5IbU"̋4J ߵ4*4#w5IVڙ5IIӾ5Iӟz5I5I,w)c5IWiT5I?5IOa:/5I5t65Ir5I#5I=s5It5I_mH 5I {̓5I\F5IKff 4Yfw۝4b͇4xp۵5I_ԒѰ5IMD48ٖЋ49٘Ѝ5Ib>64٢`5I#8̬5IdB5Ieg2ӱͧ5 5I5IJeڛϻ5a5IU5Iۭϫ5Ib4fn4Hp5I?5I5Ig5IhO75I 5Ic5IuМ5I $'4 cr-4TbC4t5Iy5I= 4#ݖ4EO͊5m\5I&Ь`'5I.gm5I05I1 5Io\5I z24}ɨ5I;<e5I^K˽,5IZߌ4V9|5Iv5IfM5IQ5I2mG}״5IP!4vө5IN4{8A5IfZ 5Ic_c4WR^r5Iڃ5Ir2XT5IbTy4 &ў4dU4Zɕ|5Ikx5I-1׵4ڌa5I8ω 5a5I'k4׊F5I c;$ۛU4cwm͟4w=ݓM5I5I/<5I7ͷ5I̻5I`Ԋn5I!4LH5I5I  C=4*bRuҗ4  5Iyק5Ip a5uQJܜ43 5I}cK4o;4 ު4Θ5I9g5y$5Ix rٶ5Ii C4jή5IZE5I:yԺ5I4b_)4\:5IDUֽ5Iαʙ%4<ʩ5I}u5I1S̨5Ibݣ[4'fa֨4 ˚5ILܗr5I~ѮEV5Ir[ܡ5I 5II̘4b8F 4kbz4cb4fa۳4 5IUZ4E'B5IܕTԌ5I >ޚ45I+lG5I{rE5I;5I][`5IJQޞХ5IpN4HMԜM5IZ[5I5IN ˱5Iթ1̹5I5Iio4Zܥ.Ң5IJvN5Iv4z&ؒ5I ٴٹ5Ic]x4y5Iݑ5I8 #ޗ5I(d5I K$5Ic݂լ5I<t5IT̙ʏN5I ξ5IA~ 5I=xV5IC=V5IѹO5I`5IYΏШ5Ib(4c\0ї4a7+5Iԁ-4տ۟5I45I55I ˩5I [=5I+Τx5I*FԾ5I/ 5I-ޑ5I\d4"b̥444P}25N5I.ФJ5Iݠ/5IԮ5I^)ёI44Y5IG4YlK5IDʽ5Ig6פ 5IS$w5I=֜?5I"Gڔ5IxF5xY5I5I#zE5ISm[b5Iy5I^<޸z4`mڸˇ5I$ڴn4cn!4fcvo%5aSɺE'5I t5I[:5IG$Ӧ5IS\ɝ5IGA5I޽U5Ie35Ir#5Iӧ5I+յګ5Icj 4й-5IZ5Ibhɼ]{5Iu&5I(ل5IؚZ5I?SΖ5ID4]d.4?g~A5IbL&5I`5IИ15I<.5Iet`5a5Iי5Ib1sS4f 46ؙΝ5IHwٛ5IrbXӋ45ITZw4uN۰5I24[>5I!ػb5I%Ӽ׶5Iն 5I1${,2O:)0:%dD/H$. !S1"n8?!1J1#a@(]s*=(1p[G,}$!\gE2h(z^r,hqa) l@~@SrI0eV(jc F5a K.a$],fZY1+?> h_ct ha hTJ/ hdԇ h/-ڳ S03a &u#V(D[=?F'*,T-V$JD۬"YJ$ l=>A$P &)aUf&c )x#V-R$01cA/"E0C.`QI, &d!:5L3ni,S 2!(%U()1%S%_JȀ#)(4)S$wG(7)+nA`",1(.V3I1N  )#0=/ I)6$@D@ݝ$R-]X%= 2lq"#HTO0/ %K+1/rM&b]2pͮk`1!Fx%;2*(Oqc޽ $D*(+޽*(/.-*(-5.qC޽b*(`$D*( $D*(Q*(d.-9.q(66$6 6:Y2J%c۪4, h6 4 heM:!4 hcZسt4 hg>4 h҈4 h4m hfZ؅u>4 hfէ55L(I5I hׄ5yg he̔P4 hmΐ|a5ID5efn45e?4 hdS5I^ hk%4Y h~V5I5dyt5,5fՌ5> hHI4 h۴ˮڂ5I h:4 hH5I hcqd+]4> hpgs4 hЉ>4 5b@|44 hB%4: hg+a5 h[;v75I hC'˫5I hVXח5I5p5I h<64 hb 5y hbsP5ai hԅi4d5f|5% he)у̢5l~ hߛO5a hcߜQ4 hbA5a hePaٵ5e hG4 ' hbo֪޳4- h4~5R&~5Ih hf]4 hD\4 hb-!84 5eɽӂ5y  hd"94, hVU454] hbލyՑ4 hc^E4 hc5, hT)4! he> 5I h >H5a hf܆t5a} h@ܼ5I5x4 hbc5I !5cm4 hb{@4o5@gs5I  hcb/4 hf0!p4$ h5I h R 5IU hfeԬ5yc he4 h5I h{5:5a hcَ5a hr ;44 hΔ/5I5?4 hg)\4 h'5gѫ5I55cb~s5 h5It h3i5I: hdYA4u hdѩܰ4 hۑZҤ5I hbQ̶4 56:5I* hc2"<4+ h )_5a h)NC4!5e:ݔ#4 hby;ݕ$4 h4 h?R5I- hh5I heʐ[w5y h#]4> hfL4 h.g/05It hfC5  he-01R4l hdҝk5Z huղ5I h>*45c \`5y hdMI5 hFɡݭ4 hew4s heގ&5a  hg)4=4K he1x5a hf7%B5 hf1a̺5 he%4  hu04 hw65I5w5Iy hfdΗp4H h#Fqޘ5a % hߨqd4 hfGο5, h4٬5I% hj4 heߦ(ɷ4@ hc"+j4 h֘4߹5I heΒ5I 5fE̯h54 hC߈5IE hcf4 hD׆ڊ5I hb=g4H hLԖ؁m5I h5I= h5I hR4515I5b<4I h5af5y5I; hfGa5y? hcaئ4 h`4e h ғ64q hص65I hцݤ4 hFd5I hg5l hAeޢ5I5ԡV5I5cVݡ4 h<Ӣx4 he+l/5a_ hӡs4 hC4 h՞bS5I% hfL5I@ h4S he{l94s hm<5I8 hf 34 h׹5I hgZ5BC hJʭ4 hcac4 hnp˸4 h5I75Qր5I h2ւ5I5zr5I. he̝'5# hLK5a hgհ4 hbq3.4 hեCͭ4  h.5I5Vˆ5I he ^145٥x5Io hbH45_1d5IK hfʶ5 hpոzu4 hf2΁ϑ5Z  hb{:MO45gtЭ4 h́lT5Iv hz.5I5f_4V h5 hbPʑ4 hZ˗5IN h5I\ hf0f4 hq]5IU h 65I5"ˍ4~ hү4q5Gi5I h0׀5I? hwՐ<5I hl؜5Ir he əG4 hH4i5 # 5I 56,5I& h%R͌4 hfZS͍4 hdΉr 5 he)Ξ5y h &5IQ hbTeH4 hݪ5I hg Ӱ4 h4` h&TH45 "ό45uC_֫5I h75I htЗf4l5̒4 5p>DP5Iy5e7/5y hW{ɧ 5I5SL5IZ5b`4F5d5. h@po5I5J4 he?ܽ5B1 h |BR4 hb9-*45f5at hW݌4_ heҚ޶4 hiԹ5I5Ի4 hdEӅ5I hc84~5{E|5I hqeΡ5Iv hd֢55M he֤65, hՈ*5Iw hc@YG4z hGي4 hcٍ4 h[95I95dF4? h y`j52 hf҆;J4 hf0[R4; he۹4 hGp4 hf\t5 hek&4 h%X45feFѦ5B hct841 heޙ֊4e hfhd4 hda@5a h5II5f~oܭ4] h?SJ5I+ h ԫX5I hbTڰ5a hb|{;4j h-pbl5I5Gٳ}5 hf5aD5e~y\4 h^5B55J<5I5f\p@5a hbZ4 hL k4 h*z5I5%k[455I he4 hm,ӽ4 hg2n5I 5 ρ5I hf`(5y h14_5[͆֞5I h5I he [ч5, h}S/5I.5e(ߊgv4  hϺ5In hf܎5 hw{5 heGY5 ha;5I[ hzҁ5I< hbo|4 hG.5a h 95I5 :45b>ϐu4 hbqc5a5d5 huЏI5I hdzճ4% hWnH45Eن-5I hdG4L he x۞45yo5I hbUP55f055yO h#85I{5bm4 hc/L+5a hl4X5I h/ֆ،ʪ5I hfqi5aa he3!w48 hЩ5I hfV5y h75I' hcJ5ah h=O-5I3 heٙb5a hdrݱ45f#/i5 hd;-4[ h&ڻ45f H4Q hec˞]14 he˟^45a hq5,K h<Ӛ5I htN5Ii hcNW̏ڨ45r!5I5 hfM܄ʿ5  hfIv]4X hϟy_4Y hk4, h@5I hVF4 hl5I hf3ҽ4S5v֎5I hf|5a= hfvf4 h %4 5֚fܔ45dҌ$Y45cNYj45f̩?5a hdB!4W hfvӤY4 huZܟ45T]5I5Q݆i5I5&t4 h΢5O5IG h_5a hb^4 hoS4 hE\4P h*45ױC;5I h^U՗5a h5a hf_/49 hc;b5a hBSݟ)5I hfɭ_4 hK ݜ$5I hf<55ea˃ݵ4L hgR%56 hS&5I h|5I15,4( hm~5I h"4! hңC4o hy45I hfj84) hsؿ!5I5U5I h4 hdX5Ic h j߬5I hfRӺq4 hկN4 hq 5BA h445fp5I hfuА4$ heс4 h+4;5)ѡ5I h`T 4 hf0ށU5<  h65a h-g`5IR5eWI4j hc2ʲ_4 h295I5fN755b˴)4 hb:ϋ 4 hT/R5I)5[}'5Is hޯܧ75I hf,cӪ4N hcG5ym hc`J45ͣE4 hdѿΧϱ5a " h,ڼ4n hc&xӀ4s h5\ hޒ5I hYUԍr5I heyL؉{5y hf͙ 4 hf0Dv5m hcVڣ!4 hb&5y h3Վ4 h4Տ5I hcl45M5I05@nq45`5I hxצ45eGsn4 h&ә5I hD5I hɶإb5I hv15I} h5Ip hd͂٣4 hV4o hڪ͒5I he_V5I h5I" hf޺Y4 hl@$5I h4 h ʥF5I, hN_5I hf044{ hfٽд5aq hO,5IB hF5I6 heI47 hev4 ( hY4 hey4 hW]5Iv h4m h&Р5j5fۏY5a5Mя5Ig hfM'-44 he*a5 hdߑ5a hdq4 hd55\5I h۲5B  h4J h4D h5IE hc"4 he`5, hc3A 4 hc_'5az hg4 hf0ކ5,  hfՁ5,^ hfRp948 hY{5Iu5#5Ic hfmۓ4V hf̅G4& hf&7Ѭ4 hd~t5, hˏ5In hc<e45Vi=f4 hѲ5y  hbE4 h֦5I hei;4 h$ 5IF53X4 &5ev4 h͑Ӹ!4 hc׎l4 heZͤ5 hJ#5ab he݃ծ4 he05T hysԪ 4 h4: hkԸۊ>5I hcɔ>4 hߎ65I hdڲ5a2 h$+,5Ik hcWub4 h>Ev5Ia5bW44354 hb/4$ hc,4 hfX}4 hd@4 h?چ5I5h25I he˭4  h;ם4( hf|%4k h 5I hz4 hD55IE h6ˡ !4 hw^5I) h5IQ5e~ْ4 heΆ4 hK5aB heڬښϹ5Z he0ϛ5rV h<-5I hF=/5I h=85 ) hbo6^4u hK(5Iw5g`X5a h x5I h#֕٦45Cԥ5I heSj5  hc4n5cH%5a  hأv5I hbjްѯ4 hg4 hLi5I hf\l5a h4 hlݿl4 hcJς߿4" hҖ5{5f ٿ4 hfߩ5< hf0p/5r hdE4g hctGr4w5Y#45e`2>4 hc nF4 hdۍ4 heB#n4 hi5I5b݁4  hbHϪ4W555If hܖ5a; hp5I| hv #4 heܱ4 hf{5 h5I5f%@l5%D h#45a* h-15Iz hܬ5I hc3҂5I hf־5, hf2 5 [ h 5I\5&A-45B/5I h65l hk;5 h[˂kʰ4 h͎Z՚5I( h%Ъ5I h\x5I hcվg 4 * hfvpO5 he6Cݴx4 hi4 h0R0/0008$000q00K2.);A3'OV .;- C.+zEl8%"-3"T:%<4e"-0+NR+ ܤ`&|>)!3>'k&+/14-\%!V_2 zYmVt%MڙS O M2R UY/ra2QK"~&&qI7#!&'%   2'c8 @Zx?i("./m "*&`$e-,s+R- }1!b,s[54Vtyh;Q*))#_(':lNK91E "-]GȦ!7&> 6d'" G8k;b$Z[;.45<҂p 44:55oW8.u45Tuj'K5(529+5<52 44*D5/5?-b44ܴ(D5|5(@244/55uM*(45 O-95u5hD"44^#n54Νi@44.5Z4.:447+5I415"5?+`55od,44-"t5I4K.452A55I43545TOS"5I4xŖ45?4244-*m5I5Z!45i)5I5~0 5M4'45 M8945?5R45u-44245?7Y4425I4&g45p#5I4ц,44`'E44k{%45$v($45 łc5>5I4v44E 5 5n/5I4f.45dA.5 4![5I4$15e449:)5I4ի*44E$5I4.F55+$5P4Ɠ)5Z4ȟ 65;4:44V)5I4u144T)3445u%44dk $ V545.#45ӓ25I4λ75I4=є)I45r8z44:,54:5%5$C45}8144Q!5u4+84464443/>45T644S(\446?5I4}r3e45<gx:45uO*445)5P4U- 44N E4495I5B\:5|5]ո144u"45<v45I4˰045I5 .=5I54E54Z845 &844:45<ۯy:#5I5<65I4(§*F44!{,45<B&A45Z#.45d944:2745-5I5BQƃ-44Rƅ/#5I4uŭ(T45aaș*5I5 *44g44ۮ45d42&+5I4+(440#45T&45M?r/"5I4a$55b/45Td+44Յ(45TŐ645(/"5r5ː745uxˏ )55%A45(IF'r441)f44ֶ-5$4&45<ќ+%445A,45dR/5I4v$p45 Ͽ$5I5 X!44ӗU.5d45g5|4Zν+15I5%'5I4հ" 45T&.5I5444ލ) 5I4ى4154t<955/555)l45ٱ)n44ٶ%5I40>5I4y^:5I4944Θ$5%44ٴ*54eT"5?4ڈ2"5I5aډ4-745ޥ25;4.5554Ӆȋ9 54Nj<9!45uǎ?-5I4,#549i45Tm70441955 744|)45E)45(+n5+465%4k9845TT5>5%4<"v44T2,45]145T"444q5 52}E$5r4585I5+5I534ӼM7M44OHGJY0+g!*!)(uWs#5/#(H"&Q1 78 .px!U?M')5@[$Rߟ7 &܄(A+Z3ճ!M\%k̏:55T h#5o59J,'445I@6^5E5E4OC%554[#45S6-45GT0n5 5I8x/ 1 15IHm444>!n95/5/4<)5546 n.55B5:dm{5E44>nm445I= 55|5S83y5T5< 444D" 4<- 554[7154 di745K a)m444[k ,5i85"45<Dxm445a\.5%4Zo444En 5E5E5IO. t t4Y 0G D ^0444Gi 45a5;1(5e5e4\m55RW-555IJn5r5%]T8h445IK6 445P3m5l557o 5B5B5IP*K5I5a5'n 4Cm45T5=n5 ^ ^5VW/5451554P0$t \o+5,5,4[n5 45 9?)55G%m44@G5R525HW3;5,4 h"r5<5<4\2"445IL&Q {5[{i55565Dio<5H5H5aL0u56456Hn@  5I8lo45t4O4 ! !5IDu& Q Q5IJn5  4N'%H45,:Zo5 5 j&5"5"4X9n{444Z 45eNWn5 5ICm445aC^/555An5546KiV5595Un5a5aD;5554Em5,5,1cO+h45 E.5E4o445IGoU5M45M*%504 4M44,2>444Wmr45h4=fn5Y5 5PQo+5a5a5IRs55]5]4@I !5I4 7'M L4KS'N449| 5r5< hn5 4Uh45a5H 445? 45|]W6$5y5y4@m5!5OFoO5?5?5I7%oP45z4Y35p5p5IT1.45r]WA,5>5OP n55I98554Ffo45T5@\i"5P55JCm5y5y5a?o&05u5267445M:4448p445aJL%>44\ %^5r5r5ID9n5a5a5IFi)445IMPn455ZnR444Aj 5n444>Jn5,5,\?i3554;Z7457oO444:oP5&44B4444J3F444Ri(554V"~5I?"444:i555I7G&f5I5UNo45S4>Vm55S?Wn55IQg!5[4?}.k5<5<4< o554NGmz445aR/)5Z5r 9n444A=4+5<5<4Yuh5595A#x V#|455.h45 5?9nw5x5+5Un5 5 4?o-5e55Tm45lT|7q 5ISm444=h5/5[ko44[9445945 h954 Bj 5m554=h25%59& 5yA9mE4565P E5<n551cI:n5"5"4[85?4>.&444S( `5n645@o4444BW (45[$ 5QW54A+445IN2n554K#%445BKo5Z5Z5ILm9445aY9444VB(5B5 :o55A6555yN&)445Sn5 ! !4Ih445INn445:o5h54=a.L444C8 4Sm447h444;KmG5a5a5IY:5S4K856565IQ}o'5P5P4B'4448eo445a?45T54Pn444945M5 h!:45u5W&45Xsmi5|5/5:$ 5,Cd$554W*45,DQm5|5|4MZ1A555nb5544Cm5a5aEm5y5y/]*n5e5eX5n5  4;945,>2-44YRo44T[!f5<5<5I8+54 Po5a5a5I79+ w 5F7 KmA445BW7n444[7o45| h0445IG=oQ5t5t4V oR5%45PI @45MmH4448(45 Kh5y5,5[*5A4HF155E5T;]$Y45a4@m#444H8m5r4A,45K5K5Io5E5E5I:y!D5565BPm5e5e5ISoP " "47o~55B!F5r5< h 44 hn5 : :4[,35]5]4Po5y5,4W|o44S:m5y5,57"44D=/C44:/D595P;n445IAo@5"5"46&5559=i25B4/n  5IAh554Ufo5,5,4V0'448"?5I5W", 4]8-445Y:5T5lMm555IX:45| Bm55B5H1;555aD$Z44KmoD5a5a5I[15 45BS+6564n:455Yo44K685I4 =oK5a5a5I>25944R)645,\i%5B41co55B4;8~5|5E h%45O 344 I(5/4Y1 j j5IK|m044G<!(445Rn5|5|4>:445DR!5H5H4H-445I=qz5]4Aoo5`54U&5p5p5aM_#5I55Ho)54;Pi5B4/i5 5 5Y,F5e5|54e444[]o444V044[f0   5I>%45u L#445IK%45l hn4448+n55HUh5B4-15r551444N" ]n5 u u4Mn445a=n5 4Hlkb 55I  4Up4449m4564N.5y45m<>. 5IAFp5y5,5;N5B5Z5n5 f f5I>r9555aTm445aXG!5%5<5. 564)4So555aDyo55B4VX8\5a5a5ITA'5/5/5ICn54<!  2 24O1n55aVo444IGnW44&AnX5(4476445;ns444Co%444Y3;5I5a5"45,5SX$5<45D:n445[9:45,5mM)o554Gh45. 455S:25l56 hw5 4 d'  5IN-n5%44I%M445]i*444:6a455m446/5,4 hn5y5y4X/45"AKm5,5,1cOo35y4R<%.54-v5I45J 1y S)355W h(Y5I5<Hn55aBj V - hm5a5a5IEp 44@7545"7&5.5r5%48o444A$445IO]o5?5?/6i85W5 5B9n 55/A0b45,iU|("5e54X7444E4t5ID75r4@,2_445a[? P455h5y5,n5W5W4;#944B+45(57oE555y;vn5 W W5IDMm5 45Ki 444Yh45a5Pi 45a5T944 hp5y5,4F3>5u5u5aI&455mP551cDmn45T4;"U5I5L6+5y5y4RL(F45e5X0}554Mn5a5a5IE%o444:h5 5<68)544Oi D D4?m1444H%545Bm444<}: 6K:5|5|4@7445U'$ I 8n444Tl2H444O1^45 e 44?1_ 5IAE,5I4Ah559 A7{45eSCp#5e55U75|5/5P$o5E5E4=m5a5a5IQI( 1 15IH' 4>b r r4I2C54 h2F554R 445I75445/q45 5/r55(5+6445IX9 5 \)p554N45I4 f$525H545Z4>Hox5a55|B .5T5/5=-i?5595Vo{5"5"4@895r5%5F^m5547)L5I52n 5IE!455BX)556 =n5 n n5I7nh5y5y4@h45 Emm5(44?:w44ZPn5 4>m445IE0-554Qo444V{)5Z5Z4W-85I4<iI5 5<At9t45?NmE55l5\;"5u5u4J15I5a5,445a@*5<45D m44FJ65 5r?"6445IFn444Xj:4448.r5B5ZM84556o5l5l4Tn5  5IAMn45_4Qn5B4O#}456h- 5IZ+45o5B<=-45YKem[444L'65546m445aU'7445o444>nb545BOn5|5/5Rn5E5E\nFWW5yC5!5E4N2545Pm=44&C/T45a5Ri$t5655Ilo655S[|95r5<o445BPo54o5T55I&5|4Oo445BVi55E[&5l5l5IPu( 5r5< h-d5I5Um}5/45BI: 5IJDmv454EI+5547+444;R85E45U854]SPh945x5\759595F7 x 4Pmc5959Uj f 5"g5/4 h444Do448&DXX5IZ h5/5/4NtoS5|5/5 7+n 5a5aX.N445IEK8444U'554;'54 h45P55No*554C(45,D645mf55B5J-456n5L5L5aC!,444Ho5Z5Z4AiD5<5<5I7n5 45 64h45 Po55/OoG5,5,4H$H55?Ln45r5%[n455U2345e fn/5B5BL:t554OX)444\5445y=944<n5 3 35I?k/d54=ob454Nn5]5]5IL"o@45W\(5"4En4493445044W!mI554M:l5}55,564]XM.mj445aYz#555IR5n5,5,4:0"45a5SKn5 W W5Kj o B h&444:"'5Q55 Q15y5, 9o)55D  5IS+_45,5mMh455TDo44/M$59595a\m45e\55I4Ro / 5S6(445:(5(5oB5 4]TYn5?5?4Qnp(5,5,1cYF._54 Bn5 5I?F8540l3444Ro55Lm=5 5 o5V5V4H+n5/5/47nT444CKm5a5a5IE:G5T56jG:H5W4V!K45| h z5I55|8]mX5R5R4[9}5E5E4@H9~444=nT445]n554JmO44?v:944 h1645?5M:5]5u5m444L.444;Go555II1 Z Z5IH-445T?#445I] #5E4Q+; 4O24? 545ZJ+<45 h(5I4'tn5y5y4W9o5y5y4C:n555G.555F94445T/5%4;*5,5B5o{5P5P49y45<4 G8$ 444@.745Fz,$5B4]R96\445!5I5yDo&5u5(m245T5;6)G5e5|U+l54U?)o5l5l4Row445IKm554C 7.555IX#45 A(//49,J45A%nP56564J(45eA%V45r4<$g 5[46rn5 4[snK444F78-555Lm55/7m545BNEiM444I)}554Xvo#445F 455 ;6565ME(555IScn5 5ID&55ZOfm5,5,1cK=0445aN.54=944Zn5 5IEp(>45M8ne455G&!5I5a[@#445IQ/l555I8h444J75I4LYp 45%;U`o55r5%5<p 444A+H444Koj4Hm554Q3Y55(54~5I5a5p 55555y@m5t5t5a9ni555YA}CC4C(m44S0444AnS444:_n5 4Vu*$ 4Pl4G 5I?A6c544<oI5h55E4J45XnmQ555I;0#547n5  5I@~)Y5 5%5h554AkoR5 45VMi444Bp45{>m5|5|4X$55650554O#o55,5Po^45C 45lJ$m5{5{5I9o554I#565M5-5]54C/%Z5|5|4S%[5<45TW(%5,5,491565M5,5I5I5I=j,5I4 33C54055<S4k5I5,J*n5?5?Rn5,5,4V.45H_/5I4 [o5%5%47&45a5Gm.5V5V4Qp#55E5Ey7"55473,^5@5@5IIo55B5\oh444:mk5G5G5IAwp445aR#v4455G5I4\Xmx5a5a5IE~:5H4&445M[mi5e55<*05I5I4P 44"55]D"5l55*5M5;h5,5$e  ;0p44H.545Vn$5o5o4Pn/5 5 [=oq55B5\!m75,5,4Uo5a5a5IC#5k5k4H."45 [n55/@%:5h5+[=h44PmO55/= 454BGo,5T5T4An5 s s4AnR5a5a5IVh5y5,57onN544Lm-445IIVp45O~n@ 46VnA4449 +5a5a4Ima554Qen5 @ @5yB &~5e5e4U/445Ah5M559m7550ns445a@1=5 5 46o%444="@555a7` 5u5u4E,445na5,45KT459595IN3(v444:45Z45O9n5y5,5Y8T45/XV&a  5I,25E4>"55ZRo5,5,1c\"54?.a555IFn5\54Vn444To55B4To5?44?m445IM& 4Dh554M&&5I4 ::P5e55G,!55I4 ]n54<i-444VnW55[o44ZW7Q55>95T5l5n5 0 05IPn545>+5I5y70445>m5%44C0u444C?"4545Kn444BmM444I>+5e55>"444L_4 4V'45 Xm4449#45y]RX!5I5a58V44 h'45|\:$F 5IT 5I5+o#55?5 @E#565M5DJo:5u5u49Y-e Z Z5IH5t5 5r5mI6o444F(r44Lo"5,5,1c744Em551cL$  5I:p45y5(W-  & ]n5l5l5Rn444?05 45]m445IZ7nj444Ci!55< 565 h"5r554.+4r4Fgo444Jn5a5a5IRKn5W5W5a@05(5(4Fn5\44Nn448.n5?5?4Y@'q5564R35T56) 5|5|4Wo~44/>6i444Jn554Uny5q5$5>t'44464444ZnU5_5_4A2 a a4Cm44Tp5a5a5IEn5 49$+445Zn5 5IT6T445I> /555L515u5u4W1h444[vh444NX)45{5{5EoS555Q3\5<45S[O"444P&n5a5 ;p 445J9~44m5 5 [7'5I5 hm445y=s(w T T4Gm'5+5+5I@h5y5,5Go45Z:)444S,645u h*'44Io44?o/ n5 5 5Fi45yA;944YoW5a5aG>:845[4@h44o545BZn5 u u4W+j5r5r5Lk-!55|5\h5|5/5ZY59555o 5o5"Kw345,60595`Qm8445INn5,5,49n5 4O.n5 5 5aPS&445Vh5H45R/x555I82l 5I7m+5Z5Z5aE "d45?K#  H3:445I>E!44Tn44;_o5a5a5I\ 6&5r55 b " "5IY%_5T55<Pan455rBp 545|K815H5H5Nm+5%5%4E@+(5M5|7|n5 5I8nK5r5r4Wh445IE-47554Oz"455) w w5IH05y5y4Zoh5%58=:444=n5e5 a.5S5LCn 5,5,5:o444Mn5 B B5I>mm5W5 5 G-044 ;Vm5a55BJ)8A = gn,444Yco555aYm 5 45,U4m455IKo444?o555aAn445IZ5k5(5(4Xr;5595oQ845u5U (564L!*/45x59w#5IH&5 5%5m15a5a5IO !45o<8iX444QLm4447144Wtm5a5,:b 5<45oW>oE5 45 ML+ 444Sn555IQNm044W@oM5(5W\o44Y#-5I4 [o44&Z$5l5:h554E,5%5ES,444J0145M5B8oO444DoP455?n"5o44A&@454P0g45Mn5 * *4MMp55B4No%444EYn5 # #5IW&nK555IB-m5557oZ554;n44Lo[45M5Zob444Orn5 5I=V66454O%i4446&5%55>&455uSk/44VoG5a5a5I\ 5%5<5954 h:B5/5]0l945]O75,5,5IP[954QRn45"4? 5 5IVo5 5 1D z z5I[5555ISu3N45x5ZD,5?5W5o5X5X4@m454G855e)m55/S}2/ 1 14:|85I5R!h45%;*#444@4#5644?n555y]Jny55;5V%"445:q%#445IKm44/?a7?45%?in5%5%4S8555aV\n555IN n5&5&5I=( Yn44R(5%4T :5Z5r5* 45y58h444UQo444Emo5)5)4:G%554A5K445U7o5?5?4\~m5644@qn 44/:&444X2Y 5&5I5I5,6/5I5P^!5(5n5 5IJ}"$5T45Y"n:445M6445Wm444B!45 <#945ANmK554PRn5h5h4K'0 445I8n55I9Ao5=4 \8445I\2o44>Fn$59595X1#5E44Ho5,4]ZL"5a5a4655I47W)o5%45;Ln5 4S"m 1 14:"o55A f:r45yH:s44S,445yE5o44$$+5547'!445IA]h45a5No565B`'4449]n5y5,%G'554A_4  4I@l 5m5a5aRl  U05o444H:5 5r5SI/E455\m55D A([5I4]QJ*445W.5 5<D`mV445K1445IGn5 # #4Dvo5/5/4FL645<]2654]XBXn5e45J29554Q: d5%5%5IB~)45C>355AHn5M5MDE95o5o4T7|545@7}5(5(5ITp455D(5>4Z#(P4559<n5 - -5IFs* l =n5kk4NnW5r5r8Fn5a54O0!45a5S8n445aV/nX5W5 5 Vl 4Bfn5e55[.445MF/5<44H85B5 9Jp445WDn554Y$:444B(35>5>4Bom5a5a=$y [n45Y m1555a[wo55B4So5?5W[55 5 4F1645$5\#U45,Uo550m5o5o5ITVm*5a55A9}554: n~5y5y4Sv85I5]OHm55Fn4446785I5y:11445y:ou T5W4.e45|5In58585IOv)5I5yD:444\ I445I9+!S44w6C555;`!U5a5a59:[5h5h4P)y44Vo455uK m[5/5/4Zm44K2"554Ton44H"m]445IVn05o5"%CUn144T`n2444Hoo5!45=.145En554ZOn5x5x5IT*r55 Q65e5B7545Gm,52524Zo444Z%5I4>.45l h8] 57a8^5557m5 5BS25I5yD'5E5E4XnC444G+G554\95I5yU-n5,5,\/)555IFTo445DX+%444O8/444K(i 5Cn5u5(4YN(j455mP5656S:25I5I4Gjo444Rn5 5,G":445aS#%45eJ!65(5(5yAD 5,9m454Dao5y5,4C'Z445E"44 h"444Zj-444On(5,5,1cF-5%5%4>K145a59@9e5P5 d9f / ]m44[3d45e4F005|5|4G45I5 h*5T5T4Wo5a5a5IR*M  4Q645]o444;t4x445K65%5%5Tz4y E E5IMo54495Z5r5lb 47dm5 45 VF0u5r5r4U%444>-5*470445ID)45|5@35E5E4Sw9<5I45?"44 hoq5y5,5[)"5I4n445Gbnl45]5M854O4547k45uEEn444<m5D5D4Z 445I?do5a5a5ID.o5l4@2N 4 p5RXn5 / /4I25<5<4P`2!5I4!44/,y5IKCnj555aU(5I4 :,  5II3#5I5aN\8l5u558245%5SU6H454Pm45rTp 453F/D45e7045qSno5y5y5yIn5,5,4Gnu5IT74x445Co5&4 0o44/<0 1 ]YU6045M5Yj0455>n55a>X"4447<$^5M5-*)5e5? 05I586o444?6p45P4X oL45?5W6r5j4<]"45a5SMn-5|5|5IYn444KE7  z z5IOp5,5,4Yo45y]X?j1444C  RoW55/M5n5a5aYoZ445ICgn5a5a8m5l5Y(h444Vo5a5a5IAam5T5T5IS1K445Cqo 5 5 5INm58584O;9445: 3554C 44545|5|5IWm!45M/o45M5;9i#5y5,5Q o554B.:B45n5Z5Z&X9 Q Q4Z%5I5yM]5 5A+/ R)5(4 h+045M5 P8+35555]5`5';$444Gl65/5]0lo5 4 \6545/@P05552444Ao>5y5y1c;!,5a5a4BN-555mQj75<5T5Fm=5r5r8Hh)> | 5 875Z5Z5IH?)W5I4=wmU5Y5Y5aD"45,5m;~ 5r5r5IXn+444Ny#5Z5Z5IG&45|$w5%5<Mn5E5E5I?n444Lf05E45S[d8114:o 445I@7*8445ICn54F(/5W5W4>w#54M#2G45B7o5y5,4CMo5(44Gn444Q'` D 48Qo5a55B?'a555yQVnD5r5r8R5|5/ do5a5y[m&554Kx)447hX55Itn444Zm5,5,49.55T hn5  5I<65?4iU455|L0m ]!445aS7o5M5eV*444E *54%5I5a5)454J%n  5IODnZ5a5a5I:v!-5Z5%SmC555IZ7549V7455555MF o44E^o5524LDm4447*5]55o=+44 h%H44Vo?5E5E47>55IEnr55/Sx:452Dnn5545BE[245?5?5aTom5945uCg#54T1tH51u45X):mA555y[jr 5nf454@`"G 5 54M,345 J`m554[mJ5W5W5<p5t5'5BNn5/5/4?=85T5l5( 4YmJ445a:p55PDn455<o\445T>:y4446m;445aL645HF)5I5I4Olh5B4/o5a5a5IX#<5<5<4H655B5Xo5a5,5WVi:445I=S*5r5r4=1nY54S15I5a5,55E5BFp44579445aQEn 5 45 ?! R444\g S5,5,4WZmb44F445r5r5IL]6 5vGnD5y5y1cGyh55B Pnu 5IM=&V5e5|50v444K m45y]R9o445aA-t55X7) K5;()5%5<52445I="2o5?49n555y7D!M555I8- + 5Yp 5a5y55444@n~554E('!5<5<5IN7% 45lG h545Z01Z5b5b4Un/M5/4 h/444Fo5P55In445IBnu 5I\p*5e55N8#445I;m444>k t h545BF`m5r5r8SN$[544Z_m555a\!4457 65T5<m^5,5,5?J45EN2@44565'|45,5:5 5 4F+ 94Z544K'H45yF}m5y5y1cB-c5|5595549(545uEn4R;n55B5Etm444@ R5<5<47 S554I45/5EB>o455BI65T44;rm|445ICTn445I7.<445IU8445n=44@9m445I<35/5/5aVn5  5IYmu555I;15y45mXme5`54F-44P'5I5yT$44Pm55/JA$5/41cnz444Vn/,  hh445I8$ 45h85nf45e5BJ^$444R*5r5r47c45T55H"445I\"5,45W.m B B4JRmc55S@Mn5 5IT"n555a:n45e5@:b44 ho345F3o:444J+55xD)44 h55M55r;kn445IRf%545S8"554:/Y5x55o)55U7Z45.Lo5,5,5>nq5y5,487[445B&5I4 =o7  48055< n445IL/p(449i75-4 Vi845PT1 4M455< Vn&45a5Wo5u5u4Vo44Zw& 5P55/Hm4556Kn55IB07444Y0o5$45Tjm444A356565aJn5y5,5:145`[!445aH,5I5I4V"@455E#&444G9444 U#n444P|$55u58n445yO!o%5]45Xo5a5a:$V455SH* { {4D8*45/,5 5r5SQnY56425b5b4[>o@554Ym44Lm555aH15 5 4Mn5 l l47))555I6c:245M$5S5L<-44 ^/544GYo5,5,4J o55B4S(555,Ae&45| hn5665I7o555I?m"!44 hk n444N""5l5l4Qn 4Ki5B41c*T545n!5,5,1cQow 5o444N#444So5588>  4B4045y7:p554?n444O8u45ZO 5B5 Pm^5%44Jo@445aG+#554S$ 4Sh554[2 fmK444<m5,5,5Z(P445Rp!5y5,4U!5l55m@554?!445IW.)45r h'445INo,449h555@$,45l h5x55TFdn= +5n5 4Vo545 :m5,51\nj445I]I"55dUS1455S?#45 L:45yAm5Y5Y5;n5,5,4Kmc44=X835r5<n555a[}n5 & &4Cn5R54X2 ; ;4F%o5l5/dV254 h6445IJmf5y5,5H,;54 h*,5<5TM.H5I5I5a7lG5;5S5#45s4X054592q55E4Jqn555aLm=44<8554PKmb5,5,1c[o@554@)7455D'[45dK)5Z5r S0 5T5l5"456E9 45/Q2+45l hon5a55C8x5/55S;iZ { Jm5a5aE $ 5I7s+5I5,H*nz555yW=nM5a55N+5T5O+44(63445H0/445I].(44]WAn5l54Im-5,5,4R95r5r4]( Rn445)!5645#9o44U&O545BUn(448+8444G+945e hn455HZ3J45 5?[m44="54n5%44Q/K44Bo55/I7 5R.A44 An5,5,5I=91 44K&c445,5a5a4Fob444Jm444U#5IMpmA5%44Hm5y5,5P,45@o5,5,5IAo544On45r'Rn554D:5IUKh455V_nO5E44Z145(Rh5y5,1n5 5 4;F3q445An45577*55?4P~o445:o4446&5,5,48n[5a5,[o  5I\Pn5/5/70 5><0445\o445IHnc 49*=445yV(45l h2W565M5PX3545BKm=44(G_m445I@0n5e5e5I865565\65r55!44S`i>5]5 4p$5|5/59/5/4 hn45r5:/+ 45,Lm{5]54:V$55MDZ g 5 L"k  4CY4\"l545>h45n445\o446Nm&5B5B5I@&L44:n555y]5&M445X(:5/4J+5565Q145rFKo564 a35I4<ns5a5a5I=*4445)444\#`444JEl54 h';445?Zo 444@0E5r5<), 5Cm5a55V5445\ 5a9345l Pn5 5yMm5P5P5a@nK5 5 5IEnT T T5IAo5,45O4.444Omn445a8\p(44@'44 X+444Hn5 5IPfp445y7m44[n5,5,5Vm541\-45y58_o5T5T5I9md5a5a4Z9j5I4]ZHn5t5'4;j3 5/5/4G$5y5y5yI{o55B4MmoE445BGmO5a5aNo445B>(#45M9dm5u5u5aJmJ554\(%444U2*55?55n5,5,4G# \5ZOp551cXz3445yNp7A5I47o;45r4G65#5#5I=R' a ]V=3#B5T5 ho~44MO74565Ii754 P w444H.h45(5H"w44Tnnw5`5589h445I6m5G456T>,555ob5(55SY-85I5R .5M5eP'555Un8444N}o5a5a5IU/5444;M1U45,R87144;2545Ah45a5T '45ZR@o5845r@m9554V55565m5a5a5IOL/ 5;<55r55''5ID445r5Ln5 S S5aYC*444>(445Om5,5,4E"7445B+45ZFm$45A.45HQG,i55<5PN.5M5e55%4=o5C5C4@645%[!&44 hn 444N2G5/5/5aV2H554Bm01445Yo54S+554F+545mIn}56565a9ma5"5"5I:um`55B57x%95a5a5Fco5u5u5AH/54-2@44 Wo55/K1 5S5S5IR145On555aGvm554Do555I@/ 445I:44545m~5y5,5?6 5I<o5y5y4H65<5<4L n 445BAz5Z5r5o44;0\445h5/45[845,56( fn?5/5//R445/454Tn5  5IT#N554Qn5M5 a75/4 h/445IBI$ Z ["s "]WS9] 4Rn44Zrn5c5c4\n,455K1(5"45o<n55B4>I056564M&445a\ ,O5e55<F"8444Hqo5y5y1cLo444T65W5W4P 85$4Z-t45?ZiL45M5ZK0444Wh45y0,45ak 4 44Eo444;n5a5aLxm5!5p5y5y4T:45,=n7a55G/)444F645un Z Z5I]m445|ANn45|5;n5 J J469,v5|5 FiL5e5W\25 5r5SAmy555I;n5a5a5IDn441c;:5O5O5aA8g 5IK #]445IBm44Z4594Oov444G'#A5A5Yn4KJnn5L44B!v5I4]SE4744 ]55H4Kb55r5r4Ten 5IOn444B$445;u:45B\n5,5Tn5a5a5I=n44Ni3444H@mF5l5l5I]@(x444PoA59594Z245]WGh5e5e4Am445Q oS5547Am^555y[M355E5Gn4448|o:555IV2564X/44>6l565)"s  5IE0565MP"945ZJ!@54H}m445Gpo5y5,4O!A445|W&5I5I49Pns444Wn/5r5r8Wn5,5,5Nn)_55E5B\j+ 4MHo%444GX55645uL$45e5K9N5I5 h+5|4g"O L5o[+n5  4Ao5T5]VRk5T444D$5I4>`o5 45 LO(44 \(44905I5Vo 5_5_4R'5I5B*Y55l)%444ZF-45Z]ZVo444Cm5y5y1c:t6d 4S45"B%s5I5,Yn/ 5I8:o5,5,1c>\m5X5 Lm5945o8mr45P5/7*5(5(4P0oz45o:WQ#445>n5e55Mn54 An55/8#45Z]SP,5e5e47q8u54QoW5,5,1cZ152525a<i45a-5I4Yn5l5l4K . [ [5IM3g5?59?5e54W$ 5IIyn5 $ $4Hp444Om,564 L(445IEG&45,5?;:d5I5I57)(5]5u52445m445IHRn445BWo55Jh554:n55To44W#5e5/ h# 5IV%k45,OBm5a5 [Li55M55G0:J45T(445IV  C3555mMomY5B5B=[o5y5,56n5 5IJ1o554L~,95y5,5Sm55/F'45a5G55I5I4P5oi45y5X!8445aS?1H455SH45L5d kO'o9556]Z8&n5 2 24Tr!45C4Xoh5a5a5I6+h5,5;Q 5B5ZS.o55?5L'555aNob544ZX44 hn54AO1 _ =9 * K15?5?5IQx5k5P5P4D@oS5(45K"4:n54\K$5o5"]ZGHn555V744 M%5I5I4Uk&q5I4`k! f 5+455!]5I5I4XoF5a5a5IAkw p ho5556%44Hi#45a5L\-5I4:!4X`m445IKlo5+5+(Cm5 45 >  44&"5r555# ]WDn555aVn445?N4444Jm45E:S$} 4Vp(5a5a<$~445y>l855GDNn45a56p8544;s"44Xo555Flo555y@ (44 ;4l5/4 ho5565TQnC555aBtn455oPn~445a6m5a5<5T6 445IX8.5 4]Z:8/5?5?4F_1{5I5<@n45r5[nj5T5T5yQ,5%5nc5a5a5IP665y5y5IJo5O5 Am45Z5\o)45oKY) 5,Z`oC5+456Ao5%44Tn5 \ \5IIo5`5`L5mX4446^.S455S;n5 5IPn5,5,5IR3Z45YImS44Q*45e[n554Kgj545n5,5,4>+5I45L5565649#!  47$V5e45mE.m;444Vn5 5IWc85b4&BoA445IKyoo5845hIMm5a55X(o(5a5aH#454D &:44,p5a55B>m5,5,56*+ < <5I;n5a55=m5656S@o5,5,4@dmH555IRUk Y h5y5,56h45o P"S444QYo5y5y1cDc,44 h((445&)4446m5)4 0m5"45uC@(%445I\m;45P5D#44X ,N44 GR2i44Ncm5%5%5I@Fn4Q+545oKWo4448oq5a55?md445a9./5T5mW5a45\_o]45(J&444K9 5I4 f3D444Tof444QK"{54Xm 444Q 5I44"O.444=2@554;o.h45 5F:44 hp$45]5|9o,4449#5%5%5I9%*5r4 GWnn5 \ \4@o.455uT!V45-N!W444;o-  4Hp5y5y5aFn5x5+4S+554K-5<45<'.5 45?o5a5a5I\05I5I5I9m5\5\5IBV75T5l:wo%554UoB445aS8445I:5B5 h:5I5a5Bn 5%44B}n5 F F5I82L444V5u5u4Y2p55B4DUn75 5Z+554Ci745Y a354V544 hn5 4Do]549Qn5,5,4Lpn55/]1945mK`i35Z5Z5a<( v v5IL&444L&45Mh1{{4K_"`5(45Vi _5565n5549,5-4 .!5[5[5IFn5 - -5IA4Z { {5IR&<  5I@4444?(:444Bo5,5,1cRYn5 5I> 5 ]WEo5r5r8D"5I4Bn5a5a5I7114446y45,:O(5M5M5aC:u5 456h45t Tn55B5;,S445IJun555aA h444@oS445Cm/555ILnD5 5 +n5,5,4F'5%5%4Anm&445I9m5,5,Cf05S5S4B6o444An555aV +455A+444?pn5 8 85IZm445BTLm5{5. Pm744$"45<Q .(5I4]X=9 T T5IF7l44 hp444L5]5"P&5e5e5IMT&444[Km5a5aA` < 5IFh5,5Bs0545;h45a5Sfh5 4/ow5y5y4K644 h7#455* 5I9u.$ 4< 4X0@45]Fo444Do5m5 Ao55/\n5a5a5I?#n9555aMK"75Z5Z4=)5H5H5a:Mo55/X745Z\>!5l56 hk _ h-t45h h%.555aIbo5B5BQymN445I?3h445I=n444D1!455S m445BZ/(}45lQD'5I4 Fmk5~5~4;;.W 4=;o445a[844Yn5rr5IK:444= 2  47X+45aDn344>u)c554Zh545nW5y5y1c6 (445o 555aN;&k 5II8n444D~m544RiM445IMio:555IC75I4 :k5P5P5IJ1^45,M15l56 ho 444<3444KR5+5"4A#5<5Tnm44Dn45o5R^7w5u5u4Ko444U5a5 5@8t5r5%5<77y44 hmK5a5a5IS145Zh55I4 [9+45l&45y5T4 C `844\3b 5IWr$45 5m=5B5BH!5 5 4G.2445,9o5W5W48.44WFo555aDn5 5aD-445IW: //4<o5y5y4Hh45S6Y5I5Kn555Am75a5a5IRns5,5,4Ho%45,58@n5IN7&5655Io56565a@NnC5,5,4Y80445IJ-*94564&?n554P9mv445Z9- 46n 44P%:U5u5(]W9644Ci&445a=9545[-oH5e55>v8b44 h!5%45Y + 45Ln546-0544G+555IBm5a5a5I6L%G54R3n5y5,5/Oor5/5/5IZo445ILm;545|<&L45,Z%&M545O/44>5 5<U!5I5Co545BT!5u5u5aRo;454S#5<5)o5`5`4Vs. 5y45m:4M45li45x5>n444@'45P5|Pn5 5 4<n444;e+C45M6)(54n'5a55>,594U85I5 h7 45kEo44(Yk <%n555aA654545I7C15l5l5?oZ5y5y4Wn5,5,1cZ244 ho[444\]ni5a5a4<o45e5I=%45T1c,5I4-1n5 4W-45ln 55/Go5e5 >h5B4o5Z5rJ)R444Sm&444T-/Y555aB1x445)45HJo5,5,4C(n44:145a5SL#*444GmF445aHm5x5+4Z& 5W5 5H7m45q5<XX0445C.05/4/m4444?os5y5y4H!5B5 \mn445>#565 hmz5<5<5L05E45>p5H45/<:45r4ZQm445BJ|0u5B456Io5y5,4S/ - 5vYn445I[&5B45SLn5 4@ '455n5{5{47n % Um5y5y1cS%%555I6Z945i5 Qm5,5,1cPUn45w \0z44 hn444M-25%5%5y\:59594G55I4Br8445IR]55I4 =o)55,9/45::55ZO%444Ni75H4 XoU55|5CF 4565?Yni5,5,5a[op445I<o5M5 a&s545V &t5r4X[o5a5a5IVm5945uX.5E45 @e,5I5B][K1455SR#455H5U5I5 h4P 5IL+op5y5y4O855584440l%55y45ZJmS44Y9n5y5y4Rm?445IPm445IR( U5v@2 5 5r5SE3554Gz2445aIo%5?5?4Tp.54F o445BR:#5?5?n45.4In5,5,1cZ 5I5a5"@445:C1 K]V\rn445B7+4547z)545<o5?45C345h cm444U#G545/6/5/4 hn 1 15I6Ro65959E-5L5d1mn554P-m:445S*Axx4In59594=mM5,5,5y6+5E5E49o45o5[['245| hm5,5,5F%5M5M4U]'5565 hn445Jh45an445IE 5e5/i75'4 Gne445uRu(5Q5Q4Nu144-2445Ks+445I@n55D#$o5/5E5.5%458I8455\%& 45u5BRy4444\0<4557i5r5r5IOI 5r56Q!5Z5r Am445I<%h5y5,5K+5l55DLp5B5B5I9na445V!6444E-n445yZ)445,WKo444So5r5%5J745L$45W5o:``5aIki*5Z5Z5@-O54 f95`5`5PAm5 45|G6B555IJ~;| t5%M49}444Y C44 h9~450lna5a5a5I[,4Z6i5r5r5I=_n444W(75I5 h*5I5a2l g ho5a5a5IKFnf45|4R#5/4 h.*45/\(445uR.+5y5BUP8q554\c&5I4C+ I4Bn5a55|@}1545 P+]45e5Mp'5,5,4T-|525H/44Y e e5IW75547i7445MP5?5Umb44An45Vh445IY $-5|5?! 5ITNo5a5yT,=552 Km555=~6u5%5%5@0 4[056562 45<5SR2444ULn5y5y4K:E5|555o45Qn355/RP k k4Ionu z z4Fnp*5|5/5E!35u5(5FYp#5|5/59%45HVA7"44 SA1645x5U$D55/H44 h9|54F(54RmS55/Dh5%5%"5I4 Yn5 * *4XnK5B5B5IC/05%55VCo445IJK,b555,L344S445 h#0 x4!8Ro"44Q0*  4I#445IU8P 5I>p5 5 5IL'5 5 5IH!.w5I>=# 55(5  Z Z5I<!5%4Gn5 5 @m444J45I4 70v444U3n5 5I<*444Rn344V2((5IUo444Hn2445i5M55Qi444>-!" Pn55IUh5E45K!,444\ioW44@:55B5B/(45lL%445ID?%5"5"4[;/*445&  5IHn5548&5T5 h05l4"oE5%44Pn5 W W46n55>4Tn5e458A4i555n5 5I@nW44EHn5Z5Z5I?.045Sy8445II:]5?59S55I4Dn54L.3445ITn444Y' 45e5Xk& 1 f53q444P n5 5IZn5%44I-945 h-:5l55oV445I@ob555W$5<5<5II/85I4 :6445IR /445(<54*45I5I4>*u5e5e5IYmx555a;!5%4]XTmE5<45Y+45,J[15I4 [,5/5/5aL.  5I:Uo5!45%<(5I5a:#65(5?o$456!=<+5I4$o555IKN5{45,5mJO5|44 h3W445'!5B5B5IWo55Z5 5@/5I5a5/54C[n445IXb/54E70445B7n55/:95$5;.45y5T{o:444G:45<5SL*!5]5]4Qo554Jn444Qm55E5S9!(45y5V58 45%X+5I5I5aSho5a5a5I@n55B5rP8;5I4Dh445a:5245,5mVw53445M$ G G5IJBoM44G0 ( ]*O44 hn5D5D4In445IX*Q5%4 hn 5I@Do5(45F4z5L5Xkp'555a;!545U#54 Po5a55U-t45rZm446o555y\n5 5IR9mR5{5.5Moc554Bn@  5IUm_5/5/4N095/5E5nP445,=o5o5o4As(J444QFn55G4<m5a5,'T,5<4]ZFi&445IT4'55WT%#q5T5l5mi55E5S5e54]?-444<1m5656SC{/45F\3-445L/5]46)65|5|4X'*5 5qXyn555y=.Q45 Eco%5T5T4PnS5a5a5ISp 45W6n5/5//7/n5H4=55O5gRFn2445IPO:5h54Ap*55E5Sg5z4Zm # ho445IZ4X445n444N+5565nx5,5,48F845o h'V555I9! 4Nh45hUo5,5,4Go445|I 545 >.h55`5Eni5Z5Z4Gn445a[mM555,H.5r55i594H$45Um453VD0;45yQm5a5 So8444H[n445I\0^45e P:564+5|45S<5t5B45SG#45 ?t3  R5Z5r59444U755%)1<445?hm"5e5e5IF(54"555IW 445IF 445IV*44@z,  4BE15$5$4B[$444F-#X5I4 3n5 N N5aA'5l56 hnJ5h5h4I/*  5I@[m44=oj445,Q2* kGA@n5 5I>}nx555a:+7EE5IMo5_5_4H 7V5I5Sm45rXo=445IQm557Kn55L95`5`4<:p445IKo554G2"@555n554H2n55/KLn<44So5,5,1cNgm5]5]4B'541c61444?&5 5r5m7&455Tm554[n5,5,1cD/n<5a5aXo449)5M5 hn<55/Mo44Uvn445I;k hn555y\@/55kE/5T4h-r565M575<5 h)5P5h5&555y8f%V444K%o5a55]o5y5,5ER+45y5N+55B]RPh5y5,5L04 5IO"5k5$ 5IWom5y5y4E&H44 h.Q44 \+8445yR85e5e4Qo5y5y4S) O'5a5a5EFn]56564<o-45]5|[5]4D5444Ehm444T744W95Z5r Ab(45W5D-F5I4 Pm444O?ob5E5E4>T 4H1I5M51K444A-5I45?n54=*5/5/5yDo5q5q46$N 5I=&j5I5Z<&n5<44Zx85a5a4QoC5A45<8:w55ZRJp45V5Z9i:z565M5+555,P+5 5%5n5 [ [5I8555|5mE3541c)555I9&o,445I7%'45W5M-S ?-T 5ITGm444?'-W5<488445IQX/\445I["J ; 1mK5T5T4Z9m5|5|M8*445yB,444I4445aF4555INrn445W?8x45]5SR`,445Jo45o4On'565 hn'54535&5&5I?O345oFn)5.5.47#>445y\i445aXm44J65I48o5/5//VmV5a5a5IP:/44?/45?]UU9/ 5a5a4K@n5]5]5I8' ]WUi*555aBy7444H.`54 [o5?5?5I7h45W 4m:444SKoe54 h"65I5I4Tn555SS(%445,TC0 5a5a46-Z555IEr445h45 'n5 , ,5I<$!456;(85I5a5544K}mk445IMum5%448E6~5l569qn5a5a5ITm5B5B8--545SO05I44Ii8tt4Ll-/5T56)7L4W(452S!o5y5y1cElh445IO h5r>i%5 4/m:5B5B5aC*445>4555645W5Z<n5 48n 5a5a5I=355T ho"44G15e5e4715M5/Pzm55B'@$  D5SY$5T5l5654[j5+4 ho5a5a5I>455E5O U555aSoS545PWn5 < <5I[mv45x5B7i45m3555?.A5y5, 0'45AA'445a9 %5945>n5  5I>"n55h5Gok554T9o^5?5W<n44/OmV5,45X|945y5B/0555I7=iK45a5I9444V*(k5|5/5Sm445D\&4446dh55> Cm5,5,/H6N5556"5 5 4Ni-554=1444=n55IT4o454Kpl( T + h#5T5T5a>fo5a55BIIo545BM9,5II<-44582545S\m5e55H.B44E,"5T5l5n5II5L,445aW n445IUlm445aO.45y5F)5,45XTn5a5a5I9p55>4YG:x5I5I5I9vn5 5IKQo445I:N6B5l5l4Iu/44RBn5y5,5rAo44/TWo5T5T4HI5565M55]4M&44\m5H44O:5N5N4XC!545nii4UnN5644?n5T45SXnoY Q Q5IIn5pp4Bo45 P,45K Ph5Z5Z5a:455Dn5 5IL*x5 5 4Fm555ITm455P 44 KoY5y5,5H1545P*44 ho5T5lX7; o o5IHm&445IHn"45 5Cz-;5I5I5I\(m445I]A*U45e5:445S445T5<95J5J47l x E hp5,5,5IDr8?45e(h444Qm5_54:64456445IWJnl55E50p 455uRn%45T5;6H)554=2i445aLm5,5,5Rv*@444F$$ 4G6554F65?5?5I8do&5]5/mK445aN6ng45a5Ni4,45r]WI#y54Ln#5B45@t8Y5I5I495&5a5a5IWs75 4Jo5I>Cn44M% 5I5I5IE:k+ 53c445A6c444SJ$5q5$"455Dh5y5,&|444\,$i445n45M5C=iV5P55>hm5r5r8W8 5IOop554K;45u4Bop554=0445aS*- ) Emu445aX %5I4`1444Go=5r5r4Y--45/5SQ8#5,5,5I[%=4WRm444G%? 24XD/{  5IYb 5,5,5NS/|4454:Yn5 \ \5I >5I?mX444[7,}5<459: n444X%5%4=0%444<(445y7B(444Bg4 Ro)5|5kn55I9o445,Nn5a5aG'55E5uSGi3445I@0}445ID'44 h:~45]>!u444Sj45#+444M3nN544@%.445yOu'45h5Bn5a55B7{5|5|5IY(555a>m444Th55H5;l%45;!"N5n5> "P5B5B5Iin5 45 R:W5q5q5IZ)i*445IPh455|O+.445ILo 5,5,4\4)v454o5%447;95k40l8545/> n{555I=L7U5|5|5IAp 5Z5% hj 4Fo)54@m5/5/5U*m44Ypn55A5ZO-l5B5B4R*5Z5% ho444N>o55/B544G4D5I5yI.n555IE+F554R!nd55E5<C5v55<5G{7 ^ ^5I9H-W5%45Tn5~5~4M Z54 h(g z 4Q$5T5 hm5656SJ.G E E5I@n5 Z Z5ILZo5,5,5aS5n5 5IXi5y5,n5W4=n5~514Wq#}44@m555y:55a5a5aXW7[44 6\h5%5%5A7,55B]RGc- 4K9b444D&44In5 5aLj45r hn-444Zp%5,5,B244]ZS"05(5(4\f2456  5I8U!U445I[m5y5y4S05]5"[4s45@o5545565 5 4Xn445C'a445a98445I;)5l5l493'v5 45CA"45,[(35595EDpn5,5,4Kn444X=8444Zn!44@2 5I]9&5565MZo5Z5Z4K'#45W]RL.5a5a5I\#n5cc5I=m44599$5IL9% 5INiV45o5@w(E44Y454]WBx0E44,n5 w w4Fmz444O3#44 IX05(55Zf/Y5/5E@k^ 5nH45MS/Gxx4DoL55u5V.5444FV/445IU}m05o5o/Rm!564n554W+N GnD44&EX3] 4@(| 5IWo5656S7o5a5a5I6"3_444Uo444[m5a55X0, Hm5a5a5IV/44 h9B444I_9D554C}7 6 h)c445Oo455=mK5Z5Z5IXZiH554Dh!545Sp 445*( 3 35I=+5I5I5D ,95B4]R?$n55IBo5E5E4G:;446.V5I5yF 555y;3444?o554@W-l445I635z5NZt*45a6l \iZ 1 yh445INhoE5a5a5IG+n5 4V*A5"5"5aU[o%5446n.5I[40 4V 9445I7n5/5//Qo245"L)45n4D4f 46%8441co555IC8C45Q@6+55B]WD%c5e4Vh5Z5Z5LnL5f5f4[(545BBo445IP,o$5<5T(Nn&455@ n544Wn 5y5y1cT5mQ444L&44 ho444Ye1 { {4?w(S44464445,T4b5W5W5I\Vn5E5E49*45e h4044Zbm35y5y4<;l*445n`5+45S<% c c4Zi%5I5I5aC#5,45B'o5,5,1cZh445G//444;# 4 45IQzm5Z5Z4Z 5I5%Jh444@h445I=n444?n45M4>]-44Q515I5aOn5 w w4Doh5q5$5|T,5%5Ux55I7Q$I555IB&m5k5G]&n5564M7N5I4 Yl$ U5m;545G#445D(n5  5I9(.445IC 5445IBqo45BVPm5P55o?5m$45][5Z5 4G 445IUm555aD(5o5"]ZE$44?> 45y5JmY44?)S455o445>"d45BY(55 Co65h5hY%i5y5,5M0H5a55uCQ345e8m #5m>444:o554Han<5,5,1c@o55/IZn55;^$45MhoWW5IR%44 hh444X-) 5%5<5) 45 Po5,5,4PQmY55@=39555yDd85I5a5"q445I78455T,554@rm55B'F455< Xo5945Yo54GQ.]5546?%D4448.^ :5/5/5IJp 5,5,4Ih445[o554Si9|45Z\n5M5M]K)54 fn5a5a5INm8554G6n555aL6nv5q5q4Uo5 45 8Dmy445IIc5455mEox5y5,5/:n45ZAm444N/J445a<1X45oV*45eF25457Y554[$Y45,5S<@o)54I.  Fm555aG"2<5e5e5yG2=45 Sm;52525IL*%,5y5y46p55B5P4545O+444JY+55< X35 446*O45,P%1445/o5?5W5m@555I6n5 4D*mt5a5a5IFo584 Po4449,545o5a55BPn*445I]Do|455H\o444?$5I5yLh45ny5Y5 5D>0S 5ISVo5,5,<9 5I]Bo554\!-444=nP5l5l5@'564m5?41\65I5yX(5I>(554N,O5M55Cn5a5a5I:(05I4$o"55/7n55/En5,5,1cJ845:664446%5<48%- 44<!554D:5e55@45I4 7n445I9 n5546ni445=b&K5I5+om5`55Xwp5a5a5IL9445IWm445I@m444H<o444Vyo5y5,49Ln5,5,X2y445IE3o44&I":5M5M4D:g5I5I4<65]5]5aP\nr5,5,1cL.5]54Doj555aY: ? 5vB:n5r5r8<315!58C`3445\pns555a:!54 ho%555,P-i44574457 @ @5IY75I5I5IE1444Vn95e5e5IU,)|5I45R n.5a55G `444L{o}44Nw(n |5V^4,444Jn445,N$o45S59>44449n545,;y.K45]4S,1540m:5y5y4L 6e5a5a5;%45e hm4449o(44Vn5|5/5 Xm5a5a4?7lv  h:/ 4Jo744]F%565 o44/=!n5a5a5IW$44>o(55/Mn555yP65%557Vn5a55[p44$95I4]Q[m44Tob5o5o4mJ5(5(4Cj7x45%:)%444P7k {5o`5,5,/7ob554Sn5,5,1cN` 445Pbm]56564C'(44B-G5%4P4n5%449 o%45M4Xn52525aX/.?45,5Am$445 V V5E]m55@6h5B41c5%4>o5,5,4B"+5I5FGp444S_o=5<5<4EV#55Z,444S,55@ n5a5a5IWm$45e\n44/9"oy5,5,4;D444Q8q445F+Y Z$5I5I4Jin5JJ5IR, [,q5I4 K+ 55B5\m44Q-2444PZ!II5I:m44/8#5,4 h 54Ch/!5~5_\/ 5,7:>55]Lo555aQ<:@ )5RE'X5W5o5  4[h45%Do]5 5B1444Go444[' 5Z5Z4Ymp56565IB!0f44 ho5a5aJ"444Ko5,5,5a8o55<5I4&5B45Um445I8?!845%CDn5y5,5Q>95I4 bn445BP*5I5%O2s \ \5IGm?5e5e4Mm444BmK445aY)(455Dn5T5T4FoiH5r5r5IR'8J444>60444V(8L444?n55IYi7552 /'554=645,?!445I8n5 4WSo444Li 444S+7 l JJi 5y5,5Z) 4S 5d 5IUn5 p p4IjmR55D5|C9, 5IL&455Ko445I?Po644SY!44 hh5645\zn554GnL444J45 ?n446X5A5A5IPm=5y5y1c=83Q44 @':5y45 6)A45e PnE44?&45a5SUn5 r r5IU5"45;*44Jn45e5%Y7) Z5o=^(h45,>mT455<A&45,5m>$z445*O45F<n5 r r5I> '6444K(5574OYp 55<$xM h554B#o555<5M! 4X+55((~555aU8(445n(44Enm445IP 55E4Am5{4Fn5B5BZoy555a\mx444\3- <645,X1+444K75I4W~(55u4J(744 h2445IEii4446:554XJ,&&5IUn5 5I;H,456N 55B]RIkz hm5B5B:9 5ICCn5 G G5aOW0Y45ah545En565647 i)45y P+5y5,5\<ml5W5 5Ym-5a5a5IP_))545SS+5I4W+445IG"5I@ 5%5%5IB 45?,5M5M49) 45,FNn54Wi5 4/n=55/8>055oZp554Dji5 4/.45e5<:44 hk%445IF *5M5e56F5I4 [0z45BC]+5E5E4RC-5]5 dm"554Do445aXYm54;T%*544Y%+45e56w%,444Hjn5 5a<n5a55BEs85S5L7w0v5]55;Y*445,K(5a5ykQn 4565@h554Bo5P5P5I8J*44I4565M5HnT56565aW[, { Sm5y5,] n55E5H]i5545|;m6 J [&% 5IA|'5H5G2^5e5e49i 445I:)445"4449o5e5e5IN%V5T55H$45,Lo5;5;5IP5|5I5 h/4559 5IH;7555)5r5%5TW-5r5r5Rqh5Z5 /11545 ]E$445Z* 5IU\*5l5S)#5I4]X[2445I?25I5I4[Iod45a5P2m5 5 O&Y 5IWo551c@n#44S0|444Ol0 h) 5\Im5 5o$xmg5.5.5aRm45W$xFnx444K3\5r45S6s+445IHn*5R5 U%  L L4Y'%5r5r5II3q445 :'&445p 5a5a5IUo'444Qo444UO844F1645"5Um;55H56x(54; 25I4 P"3541cn 444B$55?5D$b45<m44;.45P4T!45%J'45 o5h54T6m5a5a5IYm5a5aSAY2D45gOAn5 4U$]XX4Wn645hToj5|5|4J\o5;4 <55<457L#555I9o#444;=n445@744V87 5I8#5445B#45]\Wn5 4Dm5B5B4\i"55959"[54 ao)459*44 65h5h4[05 45>3&445lEp550.B5%4Go5a55>p5y5y/;"mg5d5d5ISm~5a55G'55qDo554C15|5|4Yn554[+z544H7444Fum5,45Uo55;5/@  } N*5y45mV%(44Nqz 5B>o5y5,5Sn/44/<$>445IUR/45a$? q hm5y5,;h444Zn5/5/4E*+5I4 f845S85548O845QT2"45uYo5524EBn5 f f5IWp444L?n 44V#m45Z:7`55l=o5]51c& f f5ID o444B&5r5< h0 n n4Qm5M5M60o44Io445IEU 4565ey"<444B,u5<5<5IL'n4?0H445IQo5 5T6445om5"45|S#564;n85,5,5IU0444In444F65I5TPm.445ISn5a55P945rEQ+K Q 4"<-o45e h55,45?i5r5r5I6n444;L&45T5Tn5,5,5aWh45=15?5E#5I4I95I5>245<m44F:2444@445lh444X!5?5 h,545<E?o441cU6i5 5 4I&6s45a:75Z5% h!?45l5B9+445nr44FQ)\554T)]45A+5E5 hoZ444[n55/C 455SRo[555y7vp5e5e5aN:5I4 O- 554O$D5M5|0l55I5W)j55E5TB05I4]SN(554\Q2 5IO|25|5/5 N)o554Up8*444T644O#55Vm444Dn2554ZL/545TJm551cQ9o;45Z5BEn5 b b5IU15I5\i245aSm*55B5GiV545|X-P  5ISn5Z5Z5IR7t45l hp445IDm^5 45 N$554\&45xC0 5IR_&4446W*444A*5E5]VHn 47 o5a5a4Co5Z5 5:n[54?en/44En\5P5P5IOo5a5a5IXo5a5a5I8m55K*5u5u4@An55/O6N45M5 <8t5<4]ZO2G45U$%5E5]5/5T45SE1445IYo%5o5o4G: 554Yn-5E5E495 {  ]54453d445y6zp5,5,4\doj445IVn5 48n45z \7!445& LTo5e5e5a8o444OUnE < <5IXS45 5h445a?4`5/45PH%554Q%555I90 {5oDn55B56n'55B57n5 5ISnK444>)k545Uo 5A44R1 5I:m)5y5y4="5W5W49'<5I5<T3}5E45S:n4449o 5+44Bo)5 5%A09 5o59W,"44C1n555IW"455m145P@1l5I4 8n45Z5|D]445a5S-44 h3K55W:m5l5l;aoQ444OKoR5<45Ua,545yO=|4F5mK5,5,4<n55\oy5a5a5IQ744 FZ2564?\6 45O5 H:5g4V mB555I]O.x45,=,!5W5W5Bm44P*5M5M5B*5%4 hE5Z5 4N% b ]n445I\/4459Wn55I\&mt444R,o5g5 Lou555IBn45Z5H{15E5E5ID:5T5T5I?&p5I4$&  5IM6m445V8445Nn9444> 45e5S8 B4Dn.5y5,5Vo%5(44T_n545Ko445a?n45ZR+556 N N4M645q h3O 6]XUo5y5,5Po55B5Sm449n444=3d5565Nm45Z+mN5;5;4Z n445yYo5o5o5aA:4>_n~445IGk ? 5nE55/I"/Y5o5W)4\l h445]4A45"5C#5M5|0lof555a: , 45,5Z%y5%4Qo/K45lm459+"5 5Lu'444Rh45u P/45Z&6.[44 h7  5IAo444>1Q55?2E1S45y5<o448B"54Tm"444N(E45Ih555Ho 444V3m444Zo}5u5u1cT4F5M54Cm5,5,4K<555j4P1'I44=/l445?~(~445I[(5IC3545BGoK5,5,4R o5B5BW'i745 4l<554I(:457:p 444C.44 O-o555a;(' 5I6o\454y345hXoJ59595aV3 5B5B5I:z5 4?oa5"4]RAh5445)<5F4]VF/v554D/x5|5|4K/y 4AoH5|5/4B/n5 ` `5IVp$55E5Wo5,5,1cJgo455hEp5H5H5a7mN444A<n45<5SUJm)445I:o5a5a5IH$, 5I55|6&9459n=5a5a\8:444WTh5y5,57n5 Q Q4Ioc445a[p5a55<n554R\n5 4Y(5_5_4@n445%;'5"55D?4' 55(51>54]W=m4)5T45J(5e5e4K"45eR$n5564U.v45<5SL8c45a%55] h0445=o8444S:44W`344(-45e5V(45A"5l5/nN  5IYJ-B545Z7Y&5%4 hl b - h&5S5S4Wh45a5Cn55B5;055q8n45h4965l54>pov5,5,4Kn q ; h445,KM&5E45J.#5%5<5o44EoM5e5@km45y5Wm55/>Zn444:n5a5a5I\^n44We/ 4Om5a4$x9E5u5 Gi9G554Z9H45`E(z ) 2245r@455|55N4445$%45Rn5 5aV~o44 A8554U85Z5Z5IGn5656S[Sm5a5,A255T h%*445EE+5%465=5=5IIn441cK:n5P4Qn5 5ISen444SM$554</?5 5 4On5/5/5Nn554U:(45/Z\2565M52554VZ3455 55E4Y")445yMb"*  46n55IFa& 5I5I4W] 5]4]UGn]444Pn^554Hn5 - -5I<65(5(5IPiU5E45Y5X45a5SY%44 :\445a-5(4J70%4456559595a6:5x45,DC'545Lo~5l5lH15I4]QF3 5I\#5T5MQ 44 UX-Z5o5o4Dh5y5,5[h445IC(44ZnP554GmB444\$45,G* G5H5H4X)n5 5IJ*555Cxh45Jn5Z5Z5I=y$5/4SI$ 4[D$U4448 !5r45DDg./444Ln 55T\,5 5%5Rk 5o55H5P?6T5459m5r5Bi445IR+}445uNm55/7o5!5!5P+h 5 :o444\3554Inr5a5aEm9S45| ho5,5,5\NoC5Y5 5BMq05]5]5aI2"4564 B "% 4XJ="5T5B,C455/X60Z44 hor5]5]5aV945,Tbm554J545Z4I i<5B4/(A ] ]5IZkY h5B5457O445I;.44 h0565 h.45| h055<58u%5I45@05M5|Meo5a55|Ya(5I4i554NnU554@!5558^m}5E45<N~n5 5IN5445IZ,5T5T4[.O44 hn85a5a4R-p 45T" DYo855555IT)%5<5<5I2o554[n446 .45H8ao%5 5 4W4F45I85(5(5yZq*E 5IUn44W(55574(5<5<482[ 5I?c#\5I5I5IO!445y\45I4Gen5z5z4Gi5 5<Q844446>:f445ILq)5 5 4Zkob5456Nn5'5'5Pn444Z+n5hh5I995ID1V5 5rSn5a5a5I\&U a5 Ir(C44 9p!55B4HV)54< mF56564A4 4S8&444Sn/55P(45F449#f5u5u4K6  5I:(~455Li445a>&5B5B4Tn5/5/4YnO5/44T1[ 4; o5E5E4LSoK444Hn56565aIm554Z" %5H n35,5,1cQp5,5,4CR*444N=6 51515>75(4S$Z55Z>(i-5/5/5I[l:554&r5y5,5Pgn5 4>/J5I5I4>ni444FmP44ZCob5`5`4<n5  5IUo557 0n|5|5/5\n44U&55h5h5Qs85<4[ro45k4<nS5,5,4Yv%35<5T5m5,5,1c> 55T5Dm'555:mK444D,oL5944BHn444JciH444I3445N%44?$5T5T4Xn5 A A4769:45a5S6h45aSn5j55Xoz5E5uJv955<9\) 48m554K*5I4]ZV65e5e4F6 5|5|5IO6#54D%^444>i45(7645e5=m449)5T5T4A"55E5M} 54 hm4447^655TX#$45Q]$945e5M0n5a5a5IZ.n54<,n45 bCn444C5p%55/C,nH45en " "5IKm455J*44461.5I4A)m44F)h44 Pi 5|45SRo5l5l4Tm45T4Z%5]55@i)z5I4 P1f5E4Ti1?5I5Km555II/44 U 5H45P'5A5A5yF@/05B45Q!30455ST445n555a=m44<34446E445T5S9x6  5@5& 55<$45M]S=& 445a\k094565SLm555ICL:5T5 hm44SRn445IL%@444J. 444Vm&555ILXo555yB4mp444;-l555I8755/J5 455(55Z:pm44481&5,Ip554;Ao{444Com ^5*455nu { 8n444Vm44V+5H5AZ)595 hn5 4Ik5 5)444@h144 hp%5a5aDI145(K456564Km4445I]o5524;:7444:%' 5IV:m445Y[$45 1C5z5z5I;:05I5Omb5a5aC$.*44S.+445IME"#5&4["$555ICh5P5 0,X5M5M4@ 5T5T4AX844B%514Y0445n#5a5aS[:o5e5e5IBo 445IA)45T5N6.5I4 fn5 5IJj54DWo55/Uo445Y6m345*4N#%$455J'5I5yDo5y5,4C#n554Bn5a5a4G&5e5Fo5,5,4D+05645K."D45n44&X oy445Z445o5y5,5I# 4HmA5,5,5Lm{5u5(5 K"4445>e845 QHo444LmY5y5y1cN!45]]RD_mb5Z5Z&Xn444ZBn5F5F4Cn ] ]5IQ05r5%4W/45<Cm45$>m44[ 9N44 h5# 5IV&:5r5<4565M54445IF:U5]5]4:8455n5,4]ZK-5I4 f0444T6555?5Xn 55l5QCh445IFvm7445Ens5Z5Z5IV!G444Wo%5Z5Z4S2n445AYL)e5B4]Z854]75K445IWo445I["554445IKn5 5nnq5a55BMw7[554WU(45uRoD5,45Oo55B4\n45Z4J 45%PT2,45a5R%45 ]h55B/n44\\% 45,Ai>55E A-45a5SL8*5M5M4>an5a5a5I=n5 * *4:   49R 5\5\5IHco*445IRI+ QP5K5 4]W\F)444?i52456o5 5 5IFr044 h %5I4[o 5Y5 4<745,5;.444:n  h9 5F95<4]Z6O6u445:25 4]XYn555SA . 455%5|5|4IEnu 4B|%r5l55V/i<o#5P5P5y@c15,5B5! TM95B5B5INm5|5/5L5x5/4 h*`450l045a5SSLn5547h45T An5 4BMm45\ 0iD444H`(`5I5I5I9- 44S2 4I}05<45oN/ob444[n5 N N4Un5{5.55,44:n5 4Hb#5h52 n54M n=5,5,1cKH-445IU8 45e5Z8 5:5:5I\oD445Mn35a5aK\-45a5<5 5IC6055NPV 5r5r5I=] 555y@o745E9o5X5X5IM/55W ho5a55B\ m5a55IBn754=? 445|6P"u 6$445,445IOM.554NLm5,5,4LvmY44/Z1(J56564:'o5a55Sn5 D D5I\:5P5P4G}" , ,5IYt#p445744=E"L5Z5%Qm44?o5V5V4WoV5546@"7444Ao554Wob5M5M4@#" {490n5e5e49mu5u5u4@a5545Ln5  5aPh554?h5%57!mm5?44X045M/05Z5Z5y@844 hn44OmZ455SGh45u56:5T5 h'55=o5?5?5N#55T h- D 4Pn5**4B;p%44S>#25I5a@1444Q1145,5mT *4559 k5 Ax = =4Kk h(5IC+45l(45Mo445Bio 555I\.45BF$5(5(4V&ob5|5|4Fn55BDV.5l55BA95|553|5I4 ^2o5P59n/5y5y1c?2q444:H8B5I5KBi?45o5BF) iF.455S?M35655OFi&444Y_m55B4F|/  5I77445A.75h5h4>&744 h7545Dn5(5(4>)n444MNo555IYOn445;+455=n_5M5MB35T45S>,455>n`5A45O"5T5S0z45Un5 8 85IAm55G:h5525Rn5%5%8L^45I5a55<5<5I725I5,&5<4&E)2P4446!44 hn5a5a5IH%oL45 4G645 JGo52524Ef+5|5|4Xn5,5,49n75a5,N5554:Pm5656/Ar#*549#+45 5@n5a55:# K ]WU=n5 5IJW h55T hoY5a55M&E * *5IBL3[5I5yE(+  :^m5a5yDn5+44N)455[P'5446}'5 5r5V o45M4[nC445Vn5 4D1444G15I44R#Y5/5E=o5,5,4@o5 5 5IHr6L444SQ-5,5B5Opo5L45Pn5T5T4C)5^5^4<#1H5l45m[" Po445aN[*444B:44 h  5aXMm+445L75I5;\655TIo255PQmm(5245P n5ee4QiU545:o444@5)5)4S !n45D7) | |5IT4)45|/nz5{5{5J3445yQ\5554O834447mO5,5,1c9+=5I5a5&5l5l5I\i444A3554Io554?75T51c25I5l7'm551c:@,5a55B^p5T5T5IMn444On&45y5M:5<45B8v5<5<49) 49m#=445IQ*`44*455W;n445I<n5 5 u1)5?5?5I7%15I5 hg45jSi554:o5a5a5IW8n[5 57(444Bn\445aTSoP45K4U2444[, 5IDo5a5aBn445IEn5a5aPy,45r4V]'55B5?n5|5/5V?o555a=)m554[n*5*5*4;n5a5a5IOh2 D D5IYdh5B4/9}455;PmZ5L45SJoh5Z5Z4Xm~55B5Lo445a; m45<D'm5/5/480 4Um)5548M,$5y5,5Jh545Qn56564>+445IEJ#5I4In5DD4Y%5T5/5F+mw444M.444V: 5I>Lp45a57#56565IJ#555a8m+=5,5B5-_5l5l4Q75|55n5 4>%o54 A-444Bdh444V1 5<56YnD44/YoP45c5695 Q (]445I65?5;5Z5% h:c545n5 l l5IHi45T)e:f444=p5B5B4[+45,S>3 < <5IQ 555yV 445IAJn554C#+5?5?48+5B45DN7Y554O7\455Lm5,5,4D$5Y5? (5I4 Zm444Ad.5%45\G*v5(5?5*w45Vro5a5aB*44 h944E<4 46ou445aT45E7.445a<, 445D.44 UDo%5|5/4F*!555IFny 5IC'444<_'554Cm445|O5444;n5P5P5yB&5H5YEn+5,5,4<oT45h5I$$444Fo54[U$45pmT445G89= MJ(q4?(r5B5 6m545oRdo?555IO054]RI7o445IR:455SR!545:5 4DM45r h%45/5SBnM55B5D4K5<5T5n5e5e5I\mF555>o_445I@o45W&6f54 h# 5IDn55>5ZL$n5n5n4EWm5y5,5[Rm&5 5 5IQ+mK5%5%4GWn5/5/5aMh5y5,o5p5p47@m5a55Jh444YI85l5l4\o44>o644JnR444MQi554Pon5y5,56565M5&;444SY&= 4]+h5]5 Mo44=i0b5r5r4AVo444Ix2m44-n445ITso-55E5B]625B5B5yCnj5%5%4Q95W5W4>n65?5WEe 445yDp'444J'75I5 h7525H54(455\6e444Nn5 5I?6h45Y5\)o5549,/B5Y5 4UHm55A1445a9ok5x5x5aS'4;45P58":5I5 h!d45v$2444Fn5UU5IFm445B45| P/`44X%45M5SR~o595PIw/a5|55"S54@n444?6I455m5,5,5;88 ?4En5--5I?m5,4]RJ8\4447my54]ZB%F `6/%G5T4K-u5A45IR+!44RmA444S1 5r5r4Tn555aN*5r45S7I3I4S4555IH)5 5 4B0.U556;0p5<4@o5a5a5IJXn555IVS#552#5I5I4F8  5II85l55n 5,5,1cWn445IZN,454"U95H5Ko5;5;5aO4554>>- 5ISli<5y5,,444Y-444@(n5 4Mm5 45 C55E5E4I^m54]X>%45r hmA5 45 Yl'45H5</A a5O)444=n5 4;%m445ITa$445I?)444Sn54M p544Ao44[ <s5=Mn5a486oE5,5,5Nan5y5,51g555IZu15457f#5]5]5IO#444T8+B45oF*!554X-g5565754D<n5 4:o455r\n5  5IU{&5547bn5,5,Dn44I9845y5YLJ&t45,>.455!455Z[4845|5uN" y y4Tng45y5C%441cn449n 555yO@'554Z)05Y5Y4Mm3444N:(5K4 Im!555I\(C524598K55/5/5Yi%45$55B]R69^45o<ORo5a5a\oF444Qn5a5a4;,N445>,445IE`n5 49f:2554ZS65y5y4@n5 ; ;5IT20554D0o444R855y5BD)44 0n D D5II2U 5IF[o_5Z5Z4En55I7n$5 5 5IL9*5455m444Fo5,5,/A+45e B5S5IIo:5|5|4A5T55497c` ^4MC5U44 hi45an55IX9444Em5E5E4@m45e4S*|44Ln554Hmn5 ! !4N1h5 5 5D.45rGDn44=n5a5a\6C5l55Gno444W%5l55=n(5a5a81455Vm5Z5Z5IQh444Fm/5&5&4I#*# r r5I9$5?5 hn44WOn55/Bgmc5h5hW0754 P0444C8r455*i45lh45 o5,5,4Uo5 55,Sm/445IB=o>55?#5W5 5oK)%44]RS-e b :n!55/F844488445IO5)^ 5I;n045h'Xn144P*o 5a5a5IQn25 5 5ID3  5IMym(5H45Ro445IIo5 5 4>S5o5" d7=5<5 hn5 5IQm52524Zp5,5,5y9co554V.45DKn5]]5ISm5R5 Pm5M55/H-445o 444;1445IS)" u u5IS;6'5r5r4B6544X-5%4G5a54:,`565 9555yOm,554Hh445IGoo5 44Fm5,5,1cQ{6445T8o445IF6444Ko5 45 ;o5l55Oboi45a5U844Z*! 5IGi)5Z5Z4F5Z5r5* 4>m555yUn5W5W5aD3o5'5'4\Smo5547Fn5,5,4CJ7 46p555<): 4Up45l]WPh445IBmG5,45<9{n8X0 h 54 h+5m5m5IHy* *Aq!445I@g$q5]5]4X.5r45m:n5 5Qi"545:K;5e5|5n5 5I9444:95 5 5?m5e5e5I=D+45M5Cn045 E5445IIj 5o445@]o555I:(i444R7bb4[  w5BPn"5944T3&45M5H/145yO3'44 h8 5IIn5>>4Q9 5 4 [3&444Wk2z445M&B555I[5m5a5a5I9544K644Nx2{54Tm544Jo5,5,4[#U5T5@%k5|5E hm45Z%[6n5  475/  4Bh5Z5Z49W/55(AZm55/R7554\m5a5a6od45y5@.45 Fob444B 554Bne45o5B$,45<5SHg5 5I?&e5l55o45k4V$&h5<4P.y559 8p&55:2o5%44A-.445I;o5565Gov5a5a5IGnn55G P4< 5I<n 44/=@4 i <5[cn55B5On5y5y1c7m^5a5a5IZMoy444Go5u5uSHm;59594Kk-  ho?444L}m4444TF5* 5IK# Z>,J45B6o 5?4%Uj6555,K&  5IM'445M(h5,5,46q"S44=n44J&o5a5aM"6 5*45V4mc44=%M55<58-{445aVm5a5a5INo5a55BPj15:5:5IUB9,,5IBo 445I6f1&  5II36554H o445I=*555y<h5 4/n5  5IB.Z441c7555IA2m5a5a5I>+n}5l5l4WGo4446g)45[5r5/Ao`5a5aSJfob455K+75E5E4H4!@44HO1U55W h1V45<5SYgm554Cm5a5aV5444L $W455@p44Q6555IG65%4 h+q5,5,5y>o5y5y4;Xn5 5IMI35565oE444M# 55E4Pn44SWn54LznW44/Q-^45<5m>5/n445/A,o555A)5I5=\p!5a55BEd5445A1#Y45rQM355T h3 Vo445Bm~45Z5|Z:05645G45T5l5m445V'n55B4Ut845u4Fn{5y5y5aE:5l5]RAp5B5B4R-5T45SD5)45M5]Mi445:AoV5+5+4Ig35656_1554Qob445,Sbm44$$44Snq55B4n5 5I@1 45,GE05a5a5I8,m5/5E5445T56`o445r8n444Zn55/P}!P5I59[m95"5"5H"B45l345h35-4 E#$45 [$5H5H4SZ-# p ]6J5M55Wn445P+445I44G  5I5yWmM5a5a5<:444Bo0551c88:5l5l5?m44Vn45W4CXn5 5IMiD54 P35]5]ZK244@J(;5I5N9444W7m445ml5o5"5L=m5%44WBi75c5 ao|45y5@V05%45J'z44 hm44In5 } }4J*~555IPL245<5S<ox55B4I4.445D%/45/6n45"On*5j5j5I7 6J5e54]-o5r5r5ILrn-554?m444KV%45 P045e5F11 5I;fn5n5n462o-5|5/5L 054Peo5a5a4BY"45e5YH/54 d7455n45a5No445IU055482045 P3P445aC645T5S@s3Q554Gxm5 45 Wzm5"45|>nO5]55 Zm45M5<Un5 R R4>mt5,5,4[0m5B5B>7n554Fi()44 h3 444B-5y45mSm554@ n5 . .4Y85x5x4H|:=5e4E145e d15y45mF45MNm456=m55/>+5ILU"5I5=!445aK53455oZ'n5QQ4?05(45Qn54;o+444Dsp&45o? oW44;nS555a6o5a5a5IX4444<-4Wn]445IWn554\Y-554I+ F F5I7n5 g g5IIn6- 5IMdh5a5a5I9!455* g ?.+m=55P9455Sn'45Z5Vn 5<45\m55B]RD9b45e5XS,5u4Jn 5656O 25I5Mn444E6m5a5aST-5I4Tn5 m m5I; nK5<5<5a@ln5 5aUh4448'm5565=o 445I=Jn445IIT'( GPYm554BKo5F5F4TEp5`54M:5T55Rn45a5D 845,He4555I\w5"5"5I:1,444:o5a5a5IHioT45P4HC)595PS3h444@o5,5,4K*m5w5*5Co5)5)5IO85,5,5IFmS5a5aTh5y5y4Pm444K[6  5IAm`5a556em5|5/5L/E445IP95I4X/444Zp45y5X+54Ki55A5K62<5T51cl1 ) )5IT3&5Z5r JQn44(@0o5e5 Lo95T5]WE)56564FU"5,5,4:k> W * h96554Fno554?-5Z5r5X-5 4]XF/5e5|57 LL7564 Vn445IN.)'545mIn*445I;o4446,5r5%5G!x5I5I4Yn444GL1S45a5Y"B44Dk554< 4P/n455Sn55IH>7 45l/7 585_Mh5{45a5mTv7 44 :&447.~44: :545'85I4 Kn444@o444An{444@<155]Q675K5K5IL-o55/Un555aS2444Eos445IZp44/=)ng455M44 hm5505,@ FVo5u5(/n5 4HGm5@4 \,445a6n5e5e4Ez544V,h444JmG445Nl(!5(4+}&$5T5T480)5B5B4Bo445I9!5>5>4Wn5,5,58jn5I:)444W/5I4 Sl C 644Fx3555%Q44:g%R4\{%S 7 75IS!45O7445+_45a5SF9545=9445IQr2L444A9845a5SUh45o5U,5T55X~m5a5a5IC:5<5<4;:5T5l5m5`55B>m45Y5B< 2 5X i?445Jo,555aY 5545Un55467 K5 5IQ&m5"5"Zc'#444=.o44/Go5!5!5aN,5l5]WZn5 5IXn)45} Am5a5aX  5ION( $ $5IIJm445I@@m5a5a5I6j%5M5M4\n564 >-G44Y mL55G8444Fb'45TMn5a5a5IKo5656SR*5I5Ki<45aSo2452[inJ555:n5,5,4Z65E5E5IB%c45Tn@ 5IR>nA5T5T5IGm_445a<7 Gn5 * *4<o5a5aCBp584T=j 4Q.444J6.444X(444B35p4;mL5e5eL, 0 [45u5u4ZmZ545SHoh445IIs.?455<0V45l h0W45P5|Q85T55uUz' O*'5IBm44(77 =M)54D'44534448n55IVv+  5I6Ai"455|Y"B55] 55E4C+s5%4Tk+u 4B -455'5/5/5yR $445O:o45Z9o5Z5Z4[0D5I5?n55B4Np5a5a5IO2545ZS2565e='N5I5?o445IG"54HPo 5W5 8n45y5>m445aEi 5y5,5Un55(S%555IL%%555I@0445IU n 448'45/5SN+-45yE+o^45h;354W-=5|5(;m555F05I58n5 5IJ(7]4458444G7^444SPh545Mn5 5Sm554 Lm5e54U^g&5z4FB(45]RR (5M5e50545o{554T"c5I4 F85A5Ym444? 3445N:n5 5IXt,s5#40*x5"4oX5944B0;44>n4549.52524[!444;:5r5TRoO5 5 57oP445@na4OE :45?:6V5I5aj#'54@Ki%45ao5y5,5/Y7545,5I5 h1|5I5aQ. _5SI\n54;345,S $444@1445n445X+ a45lP/5I4GC9?8= d554Lnc444>+44 h%444D$ 4=$565[.M  5IQU&r445I?Dn5 4=6544C%545m555yIS)[555I\9565 o55/<9n5a5aA*o554:+I5I4W& 9Z"%5l5/,Z445Q75I4Vem3445,T]n045P7.n155/Hn2445IJ+nD5B5BMo444Dp5Z5Z4I;'|55<@p44\1444@!)5<5<5IT+%5M5M4\)\5"5"5IB5S5Z5% h$ 4Qf&5o55o44SW D44=ooU545E!65T51c v5B45SI25B5 :mF444Im[5e5e5I8*!45M59m5h5h4ZnL4Jn45y5Yn 45] P/444]0/5|45f715,45Qo5H45/T;!45`5WCi444Po445RoI5P55D/44Wdnr44Z4/55e)9R5h5+Zn5  4X&~5|5/1co445[Hm*5y5,5=g5z4;:55T hn444:!44 h+H55<]WZo4446# $ hl 50555Z8! Yh5e5e5I\'654O)g59456np4446h5y5,58 !444]4884O2x4565Z 144ACm5a5a5IEwm5e55?{%h45<5Sm5y5y5aLB!4452444En5 4=n)44 Lo5B5B5IK" 5ISm,5T51c.444Qw915S46n0559Kn15,5,1c\n25B5B5IDm45V@([555aRho5656ETp445IE}6i445,SBo555yW.!5 5 4-444O%o5E5E5I8445r@+7,444Hob45P4MW.  y5Kn5y5,46 45;V(445Z*@556#<445IVT#5u5u4< _5Ln!5a5aXo445Vl #5n5  5IGm55/Om?554>o44[zm57574[o45n5u4455mK7%v s s4In45<5SEi745 07|445@o|45a5Do4555I>6%$45 k# 4; X545m;'545T5STT,445I>'445IP+}455Eum444ZkY { ho~5e5e&Vo&654$54O&74V!mb55/6ih5/5/5II .H554Q'n445a68454O 4YBo5a5a96:45E5SZd)44L"o45x46n5a5a\iD5T5 Ph44577 C C4;!455 P?m55l4:n5  4H(5 5IM)J55B]RR'55] h1;445O&/244 <m:555IH9a = =5IC*54Q k  ]XGsn5 5aX2&55|5#Mo05e5e/Q2(5.5.5IWp 5a5aSS-5I45S+o 5J5J4H 5554R$' 5IXn/44&QBn05W5 An15a5a8"444=km5a556n25y5y4:545Ui;445I7[7eCC5IZo 559'Re+55HOs/Y5645Vn55B5;x345K fn445IK*}44Ce,444G# _]YL-445IA$n5  5I8 (455;&55E5BM53455L745W&  4M$5645Nmf5a55GP155<Pm5y5y5IRS/445Ko5a5a5IAo5a55BK/oO5o5o5aNoP545= !444;m554Pi(445IP4445?oL5o44?X$!45 ?8n5 4[,85(5(4Xn; 4 44=o45N Lo44)eY84449:5I4UG'44 8m55B]RK244Ucmk554A2$5I9Co\5449$345A45<5<4Z%45,An5!!5IUo}44/JM8T445%H6;5M4N*55Xd1 ! !4P15]55O,n45a5K>p 545n5 5ICn5,5,1cV5o45l [5p 5IJ:3P444M3Q4457n$444HD5.5 5 5IT3p444A!h45y P"45,]4$ 5I4NO5k4449Bm|445IZ&l444]&$)G62P\"cz%+R!D3(R&I7<=28+L)_ Yw'Ip0<"::V6.EQa#^"6! o G4%0A%)&T,()!iM9t, <,!a0Y&/.7- Ɲ_2_+G;+mOe!$aj-(1'#p`g*0޴!2b0b;MߖO"պA>Z'1I> :$SaC)՞-`O2cCIL&P}m&jFY/ƽ2 ; +@ [#PYg_V1¹2*QEB@.Q&$Lx18A95#>>h"))0dT'r$%b1u7Id*^næ2]Kb+2"[<w=/~/)$=M (*),-O,V/.T%7; _#m] 7& 1iG`+!3bU#Y37 `Lbm;x+Qo)X0#O2sJ(^`A:03;f7$*-/ 'f) d"!% ',G2&\ &Q1.(_Cw!/_!CX e'Q&0`? JZA23iS,'gB 3d;'R)*`4Y,1+o->1!#]*+.K{!cB3W2eQ)"BʯF6E%/!"dNNz @.96. $ׅ '-Y v4"{yK%!-E;2j^BcY&@)&#rj,4. >%G Y04%3+W-bK'#^(!c,$2x2V$1>7dM"5NA90-I#.  2}< (J0׽ ]%R!*Hd&^`52ޝn -"&)77+Mj.E#i:#zs`XG1 {1Nd&:k1Y?- Id( qR1r,;#(/\0 (3 K$-ch25&L،-xv/xצ*, Y-0KNmPa#$k%+$#`66%)!;:u o-q#=ҹ(N 3Q/0/ *ߔ.G...N^L&Q|g`2^;,r( A4Sy]$s+?&W]l&d3=.(j.haʺ%A #q,=d,M$7 K$8d R`"! 8$O E,*^+P 1.Jd'-7b,b<'7>  3#4/,%|#3(VK23 II? )| !uV0E3Z9S&?{+֥̃vG1+x'Ch+3[["%$$01 $SqJZ*cYl/ښ(Y3Wd #n^2-)D&N%wc%H"'1QBeHv.&d^ &<Hc&3Ye#'/''*'9"0,KT]+ 0,sGX-J-A/M!!Q0> S1;'9*S1 J$"H'!! #S{#aAx=!{(#e\h\^s&W (dc,r$^,@ZZ8.Lm1h v3$i"hX L"+91'#+cs#CX#C)(&TMS)HW=&(4u6!25:#p MS|G]WL, )3'&!c)]/k2\Kx# Kx#KxKx"Kx.KxKx%NKxds ڬ7U c. רp>K03OqDLo[8n=Yc "ʼ4+ia J*=$5!ɑbEjDW$zn) :8f5 -"`9fC!/Yqb yXD@R xnݷ»ǜ u5 R}EB0 L*T0LSXΡ)$jLnt4TgW=NaӚPKs,X1B'dBK*)Dh*]4 c0`,mC hR" `TK& 5tu5?$OR:ENK%Wf Do1'N/p\:cCC0-? D+TQL*lR St?:,:*/O,gR‹#R3Ftt=)ȰsI _dYWZI('.N .eyw_A%EW Utm C fVmDŽɽ"{UZUw*6+ KH'2ɐMu**r4A]-d^a+n)`[ /+[SMteM//¼_X$< W_6\B6[2 kMCZ=|OGT%I# $ V<6h|Ǫ~:y6;C.ȱc( RTATvj"8wS11}7/HGAc E G !WZtNx_vY5-!1 ne>NbQ)#s.U'.;WAK2+bv _Z'N5da<^;S4'd2!>j ap`_B:2X37!5\a4KOPy)T&XY Ʌ]+Ð.Q*{DҊX0G}>8D f;$>* G0% R)+-_b^ca(JI!%D&'|#B[qvS8 ,Z HPW_Jܗ%• `1i/ O=)ͣ-5xU/VhO!+7*0*-6iGt*QFA @ޞڑ S2 .?ߢ?*"*d3=M>T%rva]5Zh B}B0Фu=Wdm!(gW~PJa'^ NI=ZrCS!a8J> 1)1Bc>lM0!`X);^vWRe9lL!b=ʂ9[<buVE׿ն3Y/qTZ!)/K;gA/ ZM".&"3`1s'H (Bc {e05 ')"F$.!2f$z,3b9j)s*">#>#1>1"1p" &/Z-c:A)fUU+L G.' Co#J ~{Z_/.Μ(ƛ%JƼR=O"#[.>*!),BT2,/M* A4xB;)= 5I5I5555555I5I5I5I5I55I55I5I5I5I-Op :ZF'.ZF1ZF4ZF((ZF{$ZF'1~% {; ! 1sX))Q#I,+b$%U]*kB.ӡ'XN1?X G+/>$9&5$9+`S4a/g2p0!((.CL[ 4(W(K}<4=Ym!M R \A B(I{W=26(JC0Fn,Te9YM>C=H9P=S,lmyTeO6U6X )Jz$і?X&)*G{;l]@Pa/04xKl4%:<#$'T!@'g"p"'K$=aJE![%\דRaUU;BI_dXjxMj+eF_gr0= R L*`>w/pO FqF0Y/;/c"4T?<mMEG8( óL$>=!J8Ւס;IIOOY2b>@J-R^T1 e q_P=RAXLq9.K;W@;Q<]e WB-(e ٲezaQ,}&.4#Vh'ӀJky!Y w-a21-D5*Zy |:G^Xˮ@`$cӕsCAceKuZ'ۑL@˪MO0[nY#+B*a]NBʖH,LX7N\HGcb^cnWh`FX+pPaa%3U1Pa'HeJ1׬F FU)=u:tG46U+xQ`R>:o6Aׇ~TI7[@SBp5%Y "$ތ+)[FF/:x]HB+r>WrL[QR<O44&\n1OPaU-T,)^`!im]/U&&N,I MѮ5Y Up<<5B7'tD:=_&>Jd/FJ[Tp75Á[9^-~^WaFsGl+dl&a'3TT4/_e^ކ\z-UH9Rޖ! '~4i_PJFB-D+>hmxTde  ܀J?gODmcz+3O@aSnSc&A +K- g-r7/sKO|CkxAZJEHyLҜ&"|Cl \%P#'A?E%R_4<Q3%vɓ vc.`)GKb:F1T {5/"fARgoQ a7FhAb:C"N9Ͳ38H,ط>T a!1 C@|=86UGy| 3iI2529&1H*; T!CyQ܊\2fY,>>/6IDs/&ۤokw%h(Lvx+4UQ%D^AP  @)|A5$9,xʡ!L;PMP>l[5-źȧa'v1f I1:N[C56s7MDXXi(fGdG(/VBs^z(SP#}CbLbxzn;^?R-f.E.l,(d]`["'0 \]r21y:U+U#HץJf8ܪ`%9oB1= 0YbL +/CZ%<MN Bʙ\O X1+@<ATR9:2R0Xz/35`91)MSMQbj<4` DL)\S:0چZ] j./(eG`=f%@gvd_In'u)zBV1 9~S{7ZNyN ,pܳi4eH+HJ=S$w67;1W;$+]+/;[ s+\3؛(q?QaAD{4"oh:EsPj5X6CEF k N)92Jar+Tf AY 6fDž 5Z*]odHD\bpbaFP9­KttMo5D~XYI 7NP%4>)-|z Ct  y=#ʲGJGʄv(td<7r6K6M46 6[*/A{*Du j`!] <q4$ό4M%ebv($",6-JYBV0+d{^DUI$w\DV+dPda9;"ޡsX6AD,#`p'.W_!LDcDZWڲ_BO|E }Te) ] :6y,#a0MLz?NM/yZ_R74OS(.j6YE/z'/(\M't}ۨMacVN(Ih&h3.Pc}V *33R'r6'OZ?[ WIs.F NΣ7g[&)L+Q&ecqCsA FqA5d4d7ipVcC$@HQ PASLϸN"5_ >L_YZX] Nr^"<Vk!A=>gaL'Z}?XXdJ'X ".:IVCV)Tx ;V  HʍA$b;XbI[m,8Ed\rc2t;.KNϭ_W?Qm~2p9K%Q -7 |2"ZVqQLپ@FD q>. tS@,b$kг KHHv֘!֙o<SAmGiHN$3TDHږu9;^ @mc50G&T-k3#e!4ҭ'γ 8Y6"s33F<<& +Oa`2Z ]t Y1/T9K)4R\F 'a^Ccz8Auo6 S$/Gu`/(#IUR–##43W*-Qg)\]MT}n]3'x]w-h_+TOl pP}CXG" kFٳ& aYW\y:^y0&!5"(1K"X;]dG/i7B2ec4n#W؇ X?|)]NLN] wl./FI @w0ae?83-+ :-W ywSQj>p`e`ltl1'*<\މ? Q>j8)+Bo#_RH""M;-ARH[RH@{M;$/D`M;ŞM; RH.(UM;@6!RH$/RHM;RH$dM;-vM; M;^jM;"$RH.RH#M;^SRH$eRHE(=$))q)$q$G$G)(m()m))m)m) tG4{~2/T *<.PO(*$c3='q/9UxP12 a-p2QJ$Q'1O"6(*^!+#p]aʓ4*%/ ! :0r+Dd%LZ' \Y (}&B030<Y,$)\%[2''R4ŃLS#+:1dL)4+)1"$V(-(3q4tl$/Q1(4*%" !t+R!$Z }++(!'2O"+ &-!!0!H5a5I5I4 .5J455445I5I/(A}:Z"+."Ur ZqK4|UD xV \(*)J"-*G0U,@<4 )& 21SzG+N-u1^Q [/J'?>M<*bٗky*?# ܆0G*P0$o,K&0 d%.E0&R_%K 2d+:2B WN1w~LM(qï/D2(| 2^R_V, L((+"C7(-ae5C4('%C%(-.C!C#ȯCC%jU("=C'5-(#((1C0C%AC%jC"E(&>SC#`7C.aCdC("C&>((  C.P(ګ('yY('ySC![$( H#( CM(((P4C(+(-a>( HCC-(#`V()kV-0IQG|M-u.Q$&0GD<)!5J,%X0/*.8 2%.$ٜ$: /\)0 M,&!X,) 'ͻ1O(WFZ:c0\0'KJ8=0<O~A) !'-5).0:3:\UFKvX1*!!= .-J;23O+_//3Z"3"L"[M4S*(0^ 08/Ԏ_<"#@ Χ#) <f 3߃/ x-U:&E,0*oX*sr.# Q%h Di+8<<%^Ry#ʛd3Xz!%  ".~":*P0W*\,BD-4$Wq0GN8!_=hG*Qj'Y- /)R0.'@16@Q(^;i% \.{!, ($,k޻k&L%G3p44p44p441) zSj$"<>!!S )'R1Î-'(2`!6F.P2Ka* &$U+ $+, C&?!33<-=|],)5 wa'Ka#)V .6370+$ *%?+$#0v-KK8Ű%82ܸ#h4 j%B_)^.X'23eF!VvY!.I7/6'PQt%9 )6#*c*^B!+2-I(1Nu@-Y+2"O* acU"L1v6&VG8IR'DV"c])Z%C;'"t_9I6/,B#' Ō";]0~k#? W0 Dp5I55I455555I45I4555I45I55I4!'"wJ$ۙ-S]')\S.:*:Y@w13. 3{3 3,[3%33*B73[Y3 f3&63/e30$23#B3 R>3G333-%ĥzc(֞E"V$.&/*ۅ%s;/;;$6;;%s)`;"";""$6;.i.i;)`!;!/"i_k,oQW W[ NKNxJ Nm?N[N@N@NNN?N]NWN mmNWJs  JmaJmJm?JmNx ]@@mJZ? !dE5Iee)|)I/6Vg+o2ٽQ 1#33.p0-gG)*  -HP C#H/ZKe2M*$53c.,>K \+%u9X`*Y$,c*Qh +P\JU !&Z)TY&!zEs/)% *3`!J ds 0`2X"DX`)XrX)X>H3XvX*1XY 9)$@$ 9@$@2$2@@Y@)$@$@ &$e4 @W!#RIY1d&#b/5*):  P0a  vDB8'z) ,I(+WM{ ~:NR"T )d %$2c&9&d'[%dY!C0P)S_G$*M*&Ӂ Ex' ݇%4- 1:\182"12ĒS'%A'#$31>i-Y+.*)fL((0DJ!#7# 9H+Y";+͌'mHzRŒ$*-)$$%GM(' 3d'Va,h&Z$A2&S3$M71ɤ1Li!2ߵ'g09*E0<!=y<6n+>(/Il+ b*(* +yM !2}7"d#!nKHL.;Sh*;g&l &# `\ !3&R' &Lœ$Q%(7,\/bb-+u0Kġ 1kE/m0 4C?3$ \5.5-+.$2^B*F{k L !%RKdq0`6[Y'*^-E(q.Y'͘?y.2j/T(20</2L%Q??%Pa&UU Xx !,1Q3%'1[? 2&QUyn#.֛$k&_rN 2A0%"!"Eaae.(7#Wd $(,4W.ȭ--cD)!k-b%J Q),C/0$^5_"ԫ1.'"~>&>z$ ''x~8+PH 1T' )>^'_#M8O#22  b5$:IJ#ş*#0*1CC#1C3?/A@&$V.e/0 H'ܥAd*:[%\ >#Vz(V;"/W(a,r2~5 C*K0> +"".`!'a)',/dN3$|JJJJ(3 >p!&`B"2[*M:*Y-4)l!J'2/\{"J'Զ80Y  *U33a,ޒ.9% FXm x%.%}2OB c Vb%G1 ί 8%0|(I3EI+63I,+63E6(6,+I!hI0I+I!h63606)!aSk1#&-F>XA4'5O7+["!+ &W0b)Eb)[yڤp)*u^:&-2+!0C7 %Ț2ӂ&>_.= `3bD&F Zj$D0"1$*!+ bGe,@0)N6;9~^Y"h"e-:߷2h`+lEF(r9+)"61O'!+ݨ#"S#h)SGOQ/0l!$f1HM* -=] a,ݓ'Q[J ,z1$5.T#k | /6U|2 a( x̶0+1 <0 -‡,81(]!J (03 1s@m-0u+CJF&o.q)A*e;+:$B@#7`-jm/ c+$y17G0<@rۯ0>ɰ-S@ '"e'6nb!}&2"%? O2<c9$~'`+|/O;3;dF'^$ v !GgG+/V]/!$)2HA0*e$Rc)%FcL 2Ũ3ZHm;3TXJ)X +<{%9(\,cR.t&QU._ց @$P Q/a)bt H , !+MT2ey'Ĉ-U $$7#mq*M /1.%+L$O&Na"\,,t"/X/.1IJ$1-^_l+ZuF%˄'?rA3s[:'`WmZF1-\5%5%5%̓ J=1d!!SK.$"}'7.'K 2x*]W+0+ t̒-KJ44r44G4r4 g4r4,rUV!AZfxů/kž&WM!dUB#7%^:J1W_,ʻ) IX,W+3"$7l %Q$O#- x*1.W$S)J%G* ї..K 0[ h} h#.A hE6 hWE2 hV.AX] heg. h.A" hEQ h_!.AP h.A5 hV.A%'.AIq h- h>.A h.AJ h@" h!4 h E2 h.A1 h.A' h.A h.A h.AS.A8b h= h"k hV.A h.A h#.A h_.A h.A h.A hegEC h/*.A/ hVE'b.Ac h].Ac h.A2 h.A h.A*Y h.A(- h.A hb.A hcV.A+ hE hY.A!.A hb{E." hE> h8 hV.A) hE2 heE7$ h4 h_.A hV.A, h.A"$p.A*.A*O h.A? h.A+ hf0E! hp.A3O h(.A2 h).A hWE h.A hE- h.A! h.A. hE hfE h.A h&E! h.A%;.A .A/@ h_.AS h_.A/ hEW h.A# h.A h.A h E0Y hp.A%+.AU hE h.A hE:. h! hE? hp.A%\ hb.A/ h.A:r h{9 h hf\E h.A1 hE- h#.A:x h1F.A1.A hf.A2# .AF h h_.AS hAE! h&.AH hE h.AE hEZ hyJn hc)- h.A` h.A16 hE- h6.A2 hb.A(: heE h_.A,' h.AH h_.A( h&E1F.AH h.At hE!w.A'8 hE\ h3 h.A2 hbE0Y h.A" hEM h+> hE h.A"< h.A$ h.A2 hiE%\ hc.A: h_.A0.AX h.A. h.A& h_.A hEF hC h.+ h E+ hE hi.A< hR? h5 h.A1 h9.A- hbH.A," h.A0n.A h.A/0 hE h EPB h\, heEJ h h_.AW h h<.AU h.AV hR" h h.A- h_.A2 h.A hWE1 hEC h-\ hb{.AV.A/ h.A/ h_.A h.A/ h.APi h hE heE h.A h.A! hV.AC hE hV.A! h.A h@.A0Y hm.A[ hV.A h>.A(!.A. hd.A'8 htE. hE.A.A h_.AU hd' hE h.A h.A&\ h.A+ h&E h.A( h.AC.A*0 hE htE+c;.A*B.AC h hE / h.A+ hWE hk.A. h.A) h.A%' he.A- h_.A2.A! h.AZ" h, hEi h E h-.A hC.A hp.A2 h_.A hEW h E hE_.A# hE h.A .A.t hc.Ai.A3.A( h&.A h%EC% h0Y.A& h.AN h$"^!! 'W1r 9"SH3L:D ݁$,-< &V rX'7x5IS5ICN5I.a5I!`N4424Z4)VZ5I4N45I2 4+QW45IJ5I"44*'YJ1+:[%YA2K>0 <l2u<$>$_-/H  KV-J====v=2 ùQY1H%/jM1s[W:KK'z"c#CG=F.̪0F̪(9̪$̪0k̪̪ ̪,+53J)B3' ^*  &j;J/dH1+ r;H.8)G+n=UcfV,`r]XV)=/r-F/' {Ï.w41sWA"Ħ5(Y[S75y9) c+G'تY'GH5-MfI (% yd5'%&-fO<,p"%C/'25[ lduY2a<)8,/$5&J@sf'\J, G&)J<}B5-w,T-<5"%ZG{$aYyB Y)//u2ab )r%/ J c&<7/J^&  0l5"ɲ0/M  yX%G"% Q )r<0ͯ,EV(GJ5l&G0-vY'й JHY, "&)Y)SQ%RG'O $*2a@G)r\5-/)u50mGAY2a&c;w5{F&J.GQ@"%D='f[I&cy)μbY{i<)", g&c̝YlNy< 1<B|<T<(;f5f$&&$JH/&c/- e5'd/{d15Qv5 Y:&{Z/ ] -/)rCY[ T/[UG$N"GfC-/J<( HGl y&'@lRm&)=<)r $-G" ,GY !/"%'7l) )Y00GhYfY} ('<-T&'{=}YQ0 'T5{; {GGHGA)/,F5bc"& p0E<"<(V~/2aG'8& ѦlUGhf7cGT5"V)Y"%?AQ"?&0'G 2&',. G  T5 y 2a C<l46<"%0&Q9<)G"%`< TY < (;<&{2aL [?$&<Jb/yY)r0 <' /܇ f'+<۰c߬GJ)r/0 tQJ[$yC[<yZ/-,<[d' Q)rGl:5)r&2a ;50J&f&,"%,5"%YYY Z5$o$&$R  G[UYѝ5((c&t) c&Q)/  :5(TD5' <l@/- G"/"&c:2aY04/,1 &0&Z</l J#<'Gl" )rc {("3Yc, t/-U  /Q=Y2ae/' YU*'jVī&M3S?) $";9&L &Q#+WEy9{Na%? ~~%T /mQN+y2}Y!_-2#!0<o*]&@K%.. [,1Hc' (\1#.!)$k|&+T'2A%$2;HɄ W*c9a%ޜ(`.(ݦG *N'O/Y&R.n R 2&K{n1DR),01/ *=05%RK1!5L]%.P'=3,('u28.!G* o*'#d8$4 {$e;-EZ.C7`/"3`0B v%J U$I6(7$0Kbr1kR9'[C$%,!/bT)F( 5,4 K-xn1= L)C^-b2T'g1Qzy 2D"~`lT^Ad "dK!-Ye2<#.L/4(|!#E>BZN1[Т,X;L-+q 9)d8% 22jHYg'X!3d:E BJ}+.4%\-c<- S*tJ"Ѥ ?"TLNH0gSB25 + Jt @P 1>&lY.Mc?RA?&#X)20  '#,{x'C1{2EI,<5#Vf-"u"zn*1/#ϝ$2͙0(T#:-0&G('. -s(P !d+M4$S0I V_0R&%D+kӍy7y̵'+k+kRDE+k8'+kHRbK3?$9U)+*T! #|! *rH> "4W"v$-#<6F6J/.0iNHo$$"!O"d "M~}}"FO̭P3(IP30CP3%cP3-%:(=NP3/ 2vP3-@e-@GP3(=0/ C,`*=% :m({.) >h&d#ҵ &Q'"."߅ .kZ'3$01. %*%* &l*A+GG9+)%2Q)˅l#W9 '.17?%JB4$Sl1G2"d;(3/-tC, ~]+2%}4ӼRV),1Z/mL  YN%0I`%+y>13a;*52}'  v ;h30ω3dL x3  @O)dI@N4-cKMKi.P!(+G)һ&L֯*a"!#<.( م1\&.B$'DV2#!I0<!ĭ-Yڴf̄Aٕ%EGx*9}'g?&Y( ܅Sds*xTly%+)0G!C!4I&/-+ '[,J T0) 5}(]22&9T,*HR130d';' +Wԍ#.L4yD)%& 2A%-bռ v&QA"R7+.$$*?E0?״-7/[$%}G2B(x%*,4.؞([\2~$_"~ 1'#A&a2P$^C&#% $N)$9r "/^{$&2!{#$2$e2A$d(7N -E60`01>}"K),1.e.r1[9-20Km- NZ*'?c3í/bKl(&݈0NO3=92^m#ڛ/L2j:'J;K_1k$*&e] 9  L$kN3%- bXH _!#  %R_aa+aa1akaajazaaI`a<`a,aCNa5aaa^aa`a,a a?Haaa`aa a4a-axa^aa}aaYaA}a&a6aYAa`;aaa8aDa:aEKa`4aaaaa_aaa=aNa a&aa/aa*aahaaMama``XaaRacana)aaa aa`3`aSaaa`aala9#a6Ta$a%aOaa;a\[a(a{GaaZLaSa*a>aaa@aRa@aaa a:a=Maa$a-aWa`Uap"`aDaIav a(a]ayJaa~a'a9aBat aFa2aUaaa[aGa0`aw{aa `a a.axar ai!2a)aq23aoQaa|a``a`aga3Oa \aXaeafaPa!>aaZa aabaCaaEaJyasBaa.aa0aaPa'aaHaauaa#Vawad/aVa83aa<a%a2aKFaza|aTaa?aa1aLa~`aWa"aa+]aaaQaa5a7aa7&)yJ'4=+sK-(Y1TK{[#0٫[)k%!=/]FX(Ms.!1g .I .I:*<&-eAa-\"H3&GK*6Z-| B1J'x0IF.HJ&'v-Sp(?vS'gaTMW&^, cǧ$LՋ//uۛo-89 B`s-v#R8V'*?C.T&9.BPO!z.9 p2)"W.KC,0,ҩ#A$ "6'1O$" '+sW7')@4:CRp·J 2%,b8YQ_0j@^&6>4MU1i1u$DEG-']1t0a%252 9)K$ed=+8/* h09-<+!)'/ b-cs !H/]hPi&`-2 (u0#|)+vU( +*|1)I: 011 o1=-!\Ɏ0105T,,<2! |J ^' , {N0'IOJ(.Bbc'ZUj}`IB80+2;=#p >=6o0m 0.>r/!2:"N9B0_MSj_K <&2!Y$$|7&q ;('R1/ L=/ӎ2 Ԣ,Y+.tj0)0O|"gDG(P()0Y1J1S_(?^#J+/~$O} &^+BcfU$P^%(T3-L=\1fB6#D!G28 c%K%80)#dDT3 %w&XYo(c]'!\IV'0v'XZWC9W""_76/1.C.-7)n/_Yf/1NU7R3.#*Fe&Nd #,+%@.}%*/4! &~/6,x'Y$hA$ s0C$(,TXa#*;0 _,Q!"\u &W;),Lz+ۆ/a )1W!'VX-[p,4SE1F0t~(!F dX/9M /73,*/e.-7'|E*423k 2 ,#x1'7W +-t'>&&_mBv3a aDn" F/}9(0 ++ 1,0I,A%X%~>j6v$u>`V(ʮ 20Hu.R&*)L-KS(M)<s*1:*-&$!*Fj RS%˽-# n'!*I* +)(c3dW0*z(2%IT,Z,4)  &1\ %,52X!# &a vl83P F-ha 'NQ,1Mr2&2VAJ,'2Ɔ)וG1%Yw*"$SWow7 S$ G"!? :1'a"__>/dx-2y_1[& ČT"(;8*;*!C:;"Q``BO(2&U  (4# *$k*1Q!@1Y3E l(y1*%3R)x8Jw70& ++ ='}/%-" )L/5*1,.Nr/́g0`a.a2( -c`p+t7v$('S@-$l3:e 3BaDV 17(Z$?.6&F'#.O1k 0-y,@'K(A[-b5;R/?͠#& /gU0<"2eS~0QS`&L1$3* /WǷ0 ?*!S1> !2W!k !Z$Q. k2L@ 2j%>F${ ΰ\8?v3&&WP=*6&V-{*`28pe.(t2Y7*z/B%]2.L*3o( %1%HT1T1)}K XFn"QK7(a-Y 1a,].\.$2'q7) Z 2)U#./eH.f֔0Kk~y"d#%R"(fa[&^[F*DI#XŮ +tlWȥ- ,3Nw#"-"80!_+Ue'[ E1ܶ+H2}31 .l& ^ @E"̐H &lOoT!ee+WE5! G45I-VO)5v515a44-VO54444-VO5w5 Z44-VOQ5l5> I44-VO5f5 44-VOH5a58 44-VO54544-VO5m4 44-VO 555I44-VO54544-VO55n444-VO5`55+44-VOf55!44-VO5%58 s44-VO55n444-VO55X45/44-VO 555844-VOR5?5>444-VO514 44-VO55 44-VO5q5!R44-VO5{5145I4-VO55 44-VON54 44-VOa54 44-VOV54444-VO*5k5n544-VO54 44-VO54 >44-VO5444-VO5A58444-VO5g4 344-VO5{5n5a44-VO54 44-VO54 >44-VOW55V 44-VOS55! 44-VO\5d585r44-VO]55444-VO5x4444-VO6545W44-VO5g4 e44-VO5'4444-VOE54 44-VOM5j5n44-VO55! 44-VO54o44-VO5b05O5 44-VO5-5n 44-VO`5h4 44-VO5X5!5I44-VO54444-VOI5 45 44-VO 5b5!44-VO5|i4 44-VO5+4 44-VO558444-VO5[4544-VOU5W4 b44-VO5nC5~444-VOD54544-VO55 44-VO55' 44-VO 5o58 ^44-VO.5i4444-VOZ5_5' 44-VO5F5544-VO5rY55I44-VO594544-VO5/444-VO55O544-VO5c=4444-VO,55! 44-VO55V44-VO5s45a44-VO 5u5\ 44-VOT5K515I44-VO5p4a44-VO545,44-VO5\45K44-VO35@5g5}44-VO5y5n 44-VO551 44-VO55844-VO5dh5O544-VO5Y#5'5I44-VO;5t5O444-VO5O5O 44-VO55> 44-VO>5444-VO55~ *44-VO5B5w5|44-VO<545r44-VO5]5 244-VO5zk4544-VO55 (44-VO75~5n 44-VO55g44-VO54 44-VO"5Z4 44-VO5G5g444-VO(5&5 44-VO55 44-VOJ5^5n 44-VOj5^45I44-VO5ec5> 44-VO5}L5 5I44-VO:545y44-VO_584444-VO545! w44-VO5[4 44-VO55n 44-VOe55g44-VO5 P1>)U,r6yx#B_&W\g!O8U1.c,,ڝ" $7 R,#r$O5>M B-Z*,+$]^(NR3K22t*e[-X2<".a$!0f1LDh+'Dh33Dh($G2$Dh($.z\Dh2Dh(Dh+'nzDhDhDh\$GDh(DhDhL.DhnDh1kl3>2^)dP8+.O9'' Y&'#]0<GLPoB.;22&="-U,1  L` ZAg$2ʎQ*4X|,&'s $_q?Ai  -+"I; Kx+"!Sn"~R,*)`&l1 0`"<{3 9*s0v]%#W$pR>&[N%R$q Bw%d-Y+W#%o P  5)@(0b+ߧNӱ/m(/'D0$k8$e%#<%Jn-bX]G3"dNЪ(%&#(7 &Q!# -E/&#Qy"ǵ @R?[Hҥ'UZ21[,0K` )^e2}SWO.EK-F)a#2- |!]H*YQ0$0L*FK+\!60 [W2`Zy A2j$5+y;~("(50ȷ,4b#+40yD`% 2R0df'F(8)W(}:x-/b2"B!d2*1>"[n#W"3d'g&0QW:1('[o1) !!)%=%).(ͪ/*3&V#؉b $%`#!&m6 ^&*$-cTQ (h/$31)S.@U*[*!CC]&֭) 0($^[ L. v.&%قQy),}$9sا#.3 ~,&L"_2A*&0i0RV'%J2H@B< "%%$1G[SAM!!!$"Q2'; 1ܓ$<&W(4,r[0eHT&I[1׌a 2H-*sfU J(1)#(D&G/ ##pzM$C ),u=#(m25q!Y[SK)n%,f%"% *Mk+ !3a%[6#@/W /Rat-9 Nܷw%D͂5r.df,.#.haa x g h.  ? TpL\^$0ڮ$O5>;$0S5a5a5aM;'5o.54$0#).feeF5TDbe5/e5Bt4:?|5aq~45B5<.A455r/}/K(%d.*}$I. '!^R35'.80(.1%3#"x##.38+t*8'<+$l((!2L+_$) h+9!E(q!~,C."$23=2'5'&#2)w&W*4 7"p1;E$m,M1.: 0H'1@){[2$, 8"`2.)v"4R3?2],F3~') +~l '{+,6(N%;.v0:$1E1)* !+-0!"|KN'+&n,''&$/t"+a+';- 3_%l \3#1%1&WX,\7(S*-t*2B*"&T'&o2(1"1%IQ'z6q2%,7D*#t&)4 %*y3*3+k9b.g!K&T=+y" */=*-7*R,(I,W,D3 ~!"T'=&  '$+f- L *d'k.NV :u0W4,*_30wK-2$< ""21yq,Q+8-Ul^'2!qR2{"Q"M1e%Z,0+ ,Y+0}"  /1 !%/(O,."03z#M,3i.=*.c3/>'}/I:&s.&'@})#[--"z##"cG(C*('S3o))'f'm(+ ]0  :# 0&2,yT*a0_{'33["9!Ey1%4 to*'%/'-`/5-3. 2c 29$D"f3@(1#g$$!.Vk"a #Z#0(+*0/nt/#)9-;L+[!(3l")% 0+O 0S34&)*m2`%F('E#(3A]0)Z>A,R B 3 x!G.,p02z(@}3' `30ZZ B@0-#%(/)")'\"  P/>(p*u+.\"31/-s(s'U.1~**'(#F.*L(J--4/^)- J*(V+Pv<!Q]#(D=-.w-"+-6)'F'Je$5n.Y)"+x3b %#1.1% +7&D -'W -!54F4}fadyg $05$0.X54$0$0}g}5o.w.Z.3(~5)j/Shff445BuȹȻ@$.2% pm0)}g45I45I\fS*]T5a5Z5aT~$0.$02k}2m2 4,.#cnej4<v$45Z5 5Z@5 @-2!+@.4-t$05lb45W1M+u 5a5hehfc55K2[}8&z$U2.4ie )!bxbf b.~~}^5o;x%,/$0.WP5558P. -jxfiaeeDecaema{(.Y.0Y=F,.#..|~DL( {{ {5iN1445]2. $g4448P yZv$055m5M.ِ21cpp5y.*gP|M :j. )chBq.5 *h$0.5d4}~9}|~l'5D45"J~n}OoC$0  .4$0D. 444T~VI}" "5B.ot2cd.3]Y*4 z4\8b32.h 4#i1l\5 T}'5r(8{w565 .~~}}558* {44 -m$1ح|4-p.gd$0.` 55H ukUU~ݪ e b_cdbf~geg8hF5gdkH4S/o dawG4n5Z!}545%5.5 +48A5yt4g%dahatb.5}~9~(~i5.-4$0-.5 $0J$05 5 ~~ҁ"b5{5syQl}jA| ru~9ywvrx^p]{tIn|{6 "3245gharfdgd5Z5o.0Q.5,4$02 L..$0o\$0 6. Y `d,db&~Lnea  G2m[fXbi~-..O4M..4$0fcfghbbhny(.y)$5E>44r5B`$0nkz4k4i"7_5T4445a 4T{d9heI5.tT5lw:  |5_ 4}R2(444-5yU@.{ { SU5l5,5,5,=4.H4.$045,4Er4bhhf+uPY*iOjegc$0#)f5aix.&cGg 414$0< .4+ y4/P5{#bbe+`. ]5a5a5a@.iso/sBv7 v _N.v9 .5W.n $~$04~4,.#564!64$04YK$0y-$0545,4@0]0n+$05M0S*}$02%'3W-cTdDh  .f&hgwdmm5I5B46  yC02|.2y uo  4}>~75ddd5(5o2.4.o%6V5|.5<agf"ddn8j/z~4}5%[5ZhAfb444=5sT5 :$0!x..?.*|{~4sF`5j4 >5W >~|}o~ 74 s&M?s+w,,'1B+ -/556y4kJyeahbffbn424/ cd_c W5,.a4v5,c\eded$045Z!.A425Z.3dr n.42}5y( XPm%|r05I5I4;abfhz445aG4fa.~~~G  ,r .j;5]{...1By.])q1cfVc)hf4.55T{m,.#5r$06 G MT90Y. |45"ffxh@oos4R?5V ~X/l54445R/|..15<5$0-q 3${${()4z. .}$0- .n ~q5an }5,on_55B5 L'5]w$0-5I5y5yL2$5$ Q.F“!$l ~t~u}.96e^eibdf+$05t55cmgecy444L25/ <C%j.Lae$0ŊȾ (4/6 $0.5ls5b2 "v59͎5< {n4h~fsc~4@"@#5R"Q5a-2ߥ5q5 '5`!V2 z444] c e)$.444Ur5]5T 15 $0.O(5a{i4"-45Zuccd|hi J5I5y5,G4)tsK,.#5f 5B4N4yE5%5r5%O;p45w 45a5W  y\ ?X5/444=.|]~~}~45(P Za+)>44}~fER45 o?ޯ $0-,.H""$. $oe1BC Q..45TV$0  455j5%35,'2u.$0x_\.V '52{Ys}e dhd"ddbcBaqdc(hhgg$0JJ-~[ 4vV[444 '5mcg'h5/45O5 .5,5.$0H$41{&@5M5B5W4ݸncݻq} 5Tq]9h!e 56 5Z45ZOoS/i55!444@22.}55ZuB a.x445I5 4UV 5". $07} 4.ZG.hoe.$ 4x2$0#m*4 &Q40bf+b){7egcLep%5 3v4i5eZ 5".& )y44F1mA444G$(2=.H5aG4$0!'.k`}9$f9hfYe4$0,G5I45Z;4Br5 D5.47$X4`?54! L1!.n3 . 6.$0$0$1&1$05Bo!2T'5I5a5;p&,'dН  n$0\4m$0l4454GR"n5rdgbBb$05 L H9.Du6.4"53xgHhaga.vm0]545  -4\?..$05l 4 l.5e5ks!45545{56Z j a`p~hl45I55I==$0 5w5455a4$02Mqq .2++= w.5I45I9@45"-1,4 5,wn O.} eche _4445T"z2.~o 52 o4®.#W4u }~9~(|j3445l L4$045?$05B 45544L2dc e 5u4.6x.5.5uա.~5!o625U 5V[452  ;;.0Y.sh~~~  ^}a|$0 k44Iq2}45.45,4T~gg4sc44.5Ky.}H153.$05y5pc25 4 z.4b*ftgf d}}}}J4cfch ewfb4~WJ oC\RhJcQcg\a{hNc S~~2wfeTelbgelj}l5uXYj]1f.4;}e&f@g4 )>]/55$0..jx4555T~{.!+~.$0 D2494445>4(ehh'idbfqa.5|.m?u]L5a+l lQ.(:.5<.444> JcH5%5'+>$04m0t45y49@$021F5-4$05E5vghp5,.#}:r i~,abkgFeGb\.5Mz5ez1cfbQ295,3p$0½xw58j5(Q&o$.5B "55%rj .6[5I5%4>m04jj{m$0gfebh(~5B45rT:44444E%'34.U. v5\\1W5-5Z4 45T..44 gMb}Q}~4 t f5$.5?445p5P5Z͝0]" Z2fgS455 5 55b m25Z.}[d+ehcfeoJ5i+H414i r7d*hd[s[y5E-5Zea0%~o^44Jw55a}~~5aj5,5y5,O{|75r5r5r8P pr>D58 5,45ZF$04  g||v45leqelehfjd $05I4qW$0 N2}.4aR VnaS5I4behskk.5<55B!'! 2. `feaszi.z>2  U Dg5I45;U .uS5% Ti5bPeY&, z&044}$0Ii\:rrm.YVZ4$0bsaedi.8Z QdFchackad:585%k}p~5 7$zsD45M$0v=u4y|141F2|.mS.!$0 dGhQbuhc!a kp4$0n.S4Gg-}P~ `.45y5 $ mbf;.| r [25"k8444G1&3pT{C4)>+15]25_No=1$2eedf :4oCr.5 U$04u- ~z~{4_l\446cc45% K5 (Y..s,.#V&_S&bddbyfU.$04.45E.\%fQ? ZR5B4.T.N45a.-.N5 L 4aa% 1c$0~.555=(n.5 ~m5nIh}ec5B45MG'ka02ZM$5=.4}hc*!-5 a}y4 )5u~~j}~255y! QƑ$05z4 Щ.!%c(5I45IO%44ezd%dcd hfb0].$055u595}5?.5#5,. sMC$0..5%}~9}~F5"45M.5Mazhg$0.4ecy5y 1c$0gUdM4)oe44s45B4T~cgehl./5es6$0o45 H*hb.`$04}$0Fo4(5eX444T~4~O~0}$l4.Y 43 .$.XSahXf$0.}444  '85WdgbVhc45B55BT~ae'55H$0*4~4$5(   $0^ $0. n5y45B\mm55B4Q5^ocoa4c :4QH4b.@ ~E/ $0*.4.48a 5$0|}b|} $.5 = 124 a/fc#5?o4 5E.444. l9. &5,y|K4 444] 4"$5a54C%E49Y., 5,Ș}/45a4HQ.o&U5r.s~]% .Y5 $0$0$4$0-455J.Xz\5a5T5T5T=~.45` <$0Vo5E&5~*.m45w54448Pzwd]bbYe<4dbbKfg5y45yUox }4cfc5e...+ZVj5,@5T$041{.09}5e.$0 .'5l5I5B5I==de" "2#-{z(`~)~&9Aff,\5KMKNdd vtǫ45%4-:5h4&13O25@ s5y5Z5oSS5Bk.555T~$0nm!..5z!5_.5I45aU "1.5z2}~~ff0w2.D$$0.}? Udavhi$0 z"zP5xuO"$.c5y$02. ,J56 *i~{9{:.!l$0omfbI5Z54$0>fc+hcgf fhacpecSgb^afZ".$0.. S. w4}}}~~>.%2 N85.5/ zh4 55 tn.. )$0. f 5B-=5%.h `28b )\OWpV4[5I54b9˨.$0bc5M15S5w#\54$0jzq.};0]abfC5E.4} 5?qYS/' .$?5et\ 44448P-. }42T?4548Pr=5 55 db$0ĀU 4444ZU4ld7Q25 . e-bMgdccgge45o.5ms&}}uO~~w~nv*praqd}yykewy~d}/m#3m7$0444T~v%5r5 5a~~j~I2)-56ahj}%m;r5 +|5abe~5(5l5 p5Nl5J_i$0_pj|dchgafB445 o5M4p'OO.j :5Bacyksi.4ܩ ܫeafh}~}.$0}T56;t7Sw.4.dY*l5] my45,4T~|o gAcfF.4(56.5<,u$0e.ee p)PRd5 n55HWR. ~85}g*fcn5%5%5%T~bfgooS!~~~4$04455B;xn4J5e4ag hM y bv ]xk7x45e5e5e8P+}p 5T<cEd8dNshh$ |4 \%f5r5E..24gXh2$0Sd *υ2f2c-b3cry545yQgfd5BA5M.tdteQ - .w5,5,5,==.zfHh2fc  An5y.04}DXkd* p-.hLeZbj-õ5<.Zz$05T.'5aD($04[&5Mnz.@. %Ab5<%'f44-&M~)F5e.5y45y\5yd|.$0$0fKeumOb}$}MJ5,M^52 ky`(|4..acgf_cug :C5p/[].^4Ubv.4.5l$0ebl$0k/-}A5?5%.5h~.5Z} .t255|& -$05r5h5B5y}44.n;qF..(f55y7$5l$0.$0$0PiT5V5@5,bgB)f55hm4X445~yqU.(|p$0$0C~ |4 Tp.16< $d)d5=4.4~T5,$0boegD!ͷ5<45<Z.%.5q q J4~.-:.$0kk5l e54e5y.ecCh=g.4}{}fbbDb]fw44}|Eh$04$0#5,6 ou$F]5yt&~~~~(pupx$0df5L.2v4heP 4,Dv~PJn-5jj5|M444E0]4 .P $05lG j4ed44;'4}itxQm5t{5y haa~g J4-$0 badbg4n}~5<Dw.bah/fyt5 VA [-C-D ."`55B5~}N]D.5ekh:g!5P 95/i4xMlv5%~25BrJ r,.#5/.5y5T 5"5B 5* 4y%h.5qfg~5g.5B ~~q %4fcdcd5H15k. $$0$1z5Vb4~~$ PB.5y.4|2-.e5t55B5B55BErrL.5n+ nj56-$0i5Elm #ln{"4~ -4.4&5Bnmdhrcdh&x81x<5I5I4O5~#8BoX~',5-.5_v55.-.T[).* .+{$05~5,.4(g^N_.(uW+*5,4.40].f\a|'.n 2!,.# D $0.4cee@k1D5W$0$0B. heJ5a5l kNQdJ4 V}%(o531"1{&@3]a05HVo4jx 5u@$0{U$0oTs4.$0  $5%4i x.55r~}N}e~5.֢..54J9^)m2 p $0..0Y.  .bdphc>$Yl?:h.44P$05558P5rk$05bfogceb,dbcW5E5(aahcbgn$05?$05y?"5.4F"362 dbf02E1TD! 5E )~o.4l",.#~3%%SEk444D55*5v.il5]5Td5f1}\5u56dg: !GUceh52$5@2.6 49U4&\/w R.K4h^bfeh;m~,ؙ 2(p{5Z`yIt.-15l5l5l8P4-WP5b:Qn4M. z&5M45.dbd7.,*5|44i5Mi p czD. W}@5I5>5IU $045B45a2{15%oi @-4~5.5 }[Xj.-.5e5e5eT~.5 4mp8o[5(5agd4..2!`4 +hbe9hgCj4&}~}N}e}u~t,Oo i5eB5yv.>&.445S2$`..1cJ5T4$4 .4454HQ$04 }$}g h(cfd'5I45r;a.C.45b5]554...5abb {.4~ 4..5MIE *Zt. rf$dg Gnp5?m/3 R"m1{+M@Ag#cOg.4.O6H-|~J5f  v$05I5y5,;4+m$0=}agb=$0N5I5H.i$05ki5e 5}-nN45y 2e?ha.0 G$0.$ d3gfg.$0e6ce[c45Bl?o}~}P45yo.46D~~~}=~} p$NY4 1.Մ5%4}26) '5zJ5^44deUU4Y -.*r5{~cDhpn%-5,0v.4 y$0k/.~bh.{}45l5%}..4~~Z256? 5I5I4U.m yqv444M; 4}~~^|l .4l $ ~~}I(u})~555`u4$05Z5od;z$0$0l  %5a5,55ys4X>vowz5Sz}io I}.n5<r .55..2804:ob55@w,]u ]S]J5`545f ccgh.M5 <v5B55B6 $05g .4 Cp55R 4y3$00 gtbf-2%'nq5Tqdjdikso$04 4Wx5]$0.5T!m551M!E5aFt5145wbdezR5 $e(fh$0:2Hr  &W44'#m}$0#<0Q\RKn.%2.4u5H5A44 25siLLLM]5Ts5,`4ȵ|g.&.@5r4' 5v+,l.5za}A 455E-gdbbww$05V~nk.hLq[44F47;.(4.&z4cg^4ocr4@b5Z.545ZQ~. RӜ$0.dff6f o 4J59O5m5+ afQ5~_K. 5emr($X95 3~~~ s4KqDs$05. j$0}P~m .5K.5E4cZc_cHp>#>$6s9.5<4jvvk̕$05a̖ $0|Yddbgf,bfr|Z|[g<d-4{]tm)b~v{$04a F57.nnhKhbe q5.;Zt24 xwgzT.$025.}X5aobocDD .J*ej~" .}P~ T~,1cIr} 4.}2nn.",'mfd4~G}s]iEh 5 5Zcadb4O445y>5o5Y +7.5/5, vl uk5/4k55o!$05|5E- )*5$0!5444~|}ou4.|PU1.5a5 C`.5Z5y5y5yT~$5h e,fi bi a}4.5i5zV,5n5y4$0uW+5y5^.j.4$0r[u\4Z35e-5y5.55ň/,~}$0{3.$0I$05,Cxj1.D4 4}qZ"0Soo}sLdfg45I4\-545i .5I45yO4,4 ø41L.be($0.$0q:20 $0 $0..4dI4z.4$0{564hgWgih.855@~x%h0mT%l5y~cf5I5I4T-5T4$03C ~|4 'SJ24 f 2!.4425.}#m5<5y<p< ů^v5a- }62.bdB ND4~dv~]kPkQ.|0,5 2 >;xid>c>45%S:S<d\cXd?b-V) c5 5E Zl$05M.fend{c$0444= `-n5z .0].o5a!. oBj..$0 I.0. :45Z.r'4u!e,0!e <313abd 7|!}$0$0o5 D5cfdcdhcw.hef4[1~5Eof45T5O5i5s6g.^5j .k04o02'Q4d5e05I7-!5.5y2[~[4$05bg% ($ )$0b}45yl lz.4~qB}.o k. J D .4 'i"< $XF 945|Ä4})*4 tm ..@ v1..5I5a5I==.5~4, pwd$f) 4k2|t.$p45C>B$0565% R.}$04|t5% wPb 7ebXch0g}g,424*4.wH4 Z5u.4~$0\:r5.5I54GWj~@bg~eee®.2%5 45N}`4$0,}}~A!5ǐy504bK6eegd 5a 70Q5( $=%S55= B5T.5|5p?&;puP0Q5.$0yav4z.5$5%4 .i7V4i84.' k7$05053"nb bcc5M$0Y*VN.chaee>g5%5,4zc2zd~3..5|5%5P~~}V.beffcdf55y w-$0$0dcb45 4O$0 o0P45B 5o4xi$06 0 5H 4 .455C44.pm4s$0` '5Dn5 $0-`.`.4ilh5T̞̠tk.55$0jU :5B5a.U<..5/i4z7$056}4$02cd DL5l(MT5Z52 5a 4 +&5r5B5T5GedbNf^&p%f4ri} RU}5 !~4 6~..8_5,.M.5(y y 5~4|2mQ|4=TH$05,5M5ZS54.5r3OvSRQ4n-2U-. 4f 35/R?. M5a5,5aT~ .5y$0^5%$tGee.bA5o5% _p4}$0/5rlB 5%84 4iS5+ R%9lVz6VlrDrETY5a.hddZefe$0.&I&Ls5b55C w p .If^aW4hlh.|5xŐ$0jwA4W5$025T5T5TT~.kx1B.*`;=ciT$ _$0 q]5l.Y5 m;I5em5a|.~pop~|~ ,444= 4.1b24eb2f}c5T.5w z $4.$04()z&' y}}t45w$0$(V)Z 5y5<5a %oIbCdxefcFfbcd~5Z.U$0.n/l}c45@ 4Ki5I45a>uC9g2$0$0)11~xO5b)s5T.45ob{ddg]!v.5.45Z44B |^4gnbg|_.cg>bg?cTjr5 g,s)v .55a$0s|wޫ.n e$0QU tbSujahhbT.0$06rjn eVDg q5`dfh.5y $045a5,5ll.+ . 4O5.x`$0$0}}~}o c~.55T44 o. < ~%Vmjh~c.&5+Ü H4Hjǖ2$05-'45|Q> <$0.$0w455sa .-yM.4õ~~\ݿa5.Zq_ A-.td0]4iW4!0Z"4 <54K568Et.$0$04lk~}N}e}WC5Y(WKLD545Qhe8h[h4d.$0f*cP2&5$ch5 5y5y5yM; 5? _05B45lG..j2E42 E1BmB9JOvHdfO$0 y5cgacJ8C l(&5g-5~ '5^,.#. v˗.574|5..$04! ggY.ddHg34\.w%5y .45355y$0 *!..tVe1f5]$".  gfc rABUL xxi545Erfa}V.5 ^55a.i45.4&.444T~x"x#5I5I46 $0&=k4hcIh-$05,244455Bj+fmv5$054ef|hagg~7444dbF_\8}~K5%5%5%>4/5a45aT~T5a=_. 5<45U45I44T ."."+4 44bch"B:4j fw5a  m5o95[ o  vd;fgehd54.$04hbfb?d`>be~b@g4GG.|F.oaaejO445Fzbtb#z5W$0cVhdhC.sY5 teabj^j_ 5  ?.51s4%\5)~H4$0b5L4 545E5N4d6-5dKŻ5_ 5rkL/xkM1}>~~o2.}.-5y$0 5(. }.ffg4 dsC~~j~35y454F5Tz5oz.5u5!5,4GG +2ci NDnX[4.4}j4.55P* += aXj<5yjA. 5r4o 5Xhc<d555HQ5r$0~~c5B5Zedddeb..6- 7N5gff'bg h$05. ef.^I$05y 4/?. B4_@{s4 Z..:xgflhhegefbJeh+Ί}F5a5a55wM5ljteHgc_55k2 hnJ~ {hzgb.F"444T~5l.5} .45.U' FF<5o o4e~Bx. "jj p(58{}h$0CR"3 4{49y.j.h.i0511V444>.o21FLh4w5eTop^j545I5y5y>QG6d(f? h>abagcg&ge*$.` k~hvfbbfua.q..  F/ /7.2zj5,445y4T~}D$056_4q-4|l5W5$0}x}5rr5.r.4cgO24457i5(55%w~.#9P(,u x\u5y44x-.5Z1 $00pq5l.>u9i~N$0Jn-4j|Jbea5.45>5s j5Px 45  4#$\1nv5H5 $0dVh5l.5-$0.,.#!5<eBfh4޺ 5-24wm5=45a45ZG W2#eb}YZ.$0-42} 5.4+.@("!Qݖu%4i 74=hbWfl ].V)8qxrro.5uj:.xar ח\5L a.4-91~L44 5<6vvXR.. 1> E )*2n44nTsu=m=swjs(ntimcrjl>rBp{|-niquyl8 vk"ysmnhjmu+zwixzijj~}Cr szswmCpilw%p.o|v/rl|$ovtk%v<~jwz+~m^xw|)|m~:|psE~]p|ay{m(nVps{>tn^U}0ubBs2v<n x(k|qij7mo7s#jGv~vuJuDq<Qnz$k~h~Ym l}~er6w-r|rZkb~mmvv|ziyo}wvxNxpNx\n|'u {Mq2ml-trz@qxr|?iljyx~l]n~uk u"rcyjTv}+xrrOu9iw]}qj swkx jswz?ylUkglUvq4$1nC4-,|@.4-*0,"t52>tJ5ge.5zl-5 .z1eCbb9m0 z.i -b}=~} 4546!z1 ~}N]}U$0 gc h5B5rI4UlS 6R"x44575t.~h4.ZW )dg$0b~cx/m,45p(5%T5Z5Z45,4Ov2.fWfcde |54644W55$0pB.sR .5>.-i4fZ4nO $0_4t*5y_chh.~`yj454O5y54|10 q;1 }~#w& ,5]di[e+hl94_4.. -554 i$0 5I55ID66J wr:5]44Ru7 )5<u4)x 4jV& Em 5p7J}...Is e@֐5R5y5,4Gpgd dYI.56 | Laaf.xD}7o5..~.ptt .4! 4^}~5a.t$0nhg5e{e: 4 #%.4rBD*~444.5<j5}M4.25$04|hee`ht }z-$0v5/}G4}8Y35a0bcdd5l$0$0525M4;O2.2oc5gedhU.$0 .5Zw }3]4] M..G.~-5/.y$015$05$0AfYy5 45x$0S4z.l$050445B5..Œ.$0q.445aGj 02$e5oL4u|éoj.4$024\(5L(h3 R"$04 4 k58$05);5l5j}~ ~4$0445I5,4U56.4!_ k4fcfba5o28b Qj.~ h.ngT|45,-7 b5a.5|.4zxmF4m}k5nj~~j~O SEh5l.b dlc#V5l5444Cp40Qo.5z$0,.#41<"b..o9-r5<\Yhe.05? 5Z}+5-}x~}5sX\4gabyR:5}|56.sC5t)fS4 .$0bat4O. jQM4.444T~Hb%V""D5J"${$0.k.5X.t;45$0'5Z5<5l8d55Zv} Ң].38EMryENG.4$0.}>~~=bxSxV {S!8-$08f3O2}6k4}4S5y A^J56~ -f7.p`hcYd9X57["U 8ghf% ;5I45IHQ5aW2#h..5z.CbU}w5MFB5.4zzztL 5hd!4kknW-+ 5T444HQ tY5<5,.$0z#yj5i$ 4.5(5(55a5Cp5r4$0!+\wY{~/$02md2bceDlccd 5~c}t5I5I5IM;x&5r5a525x$0 (H2gg6cbch?.ehufb .5 ,. b hWaaucRf>4p42@"$0456Pi[=5I45a> vAy2".=t.pTsg)Q5B54.5,4 .0g$0P-144. 1Z5|w c7ed >4+*DeU-4. 5E}}.X5Q2%9.}~9}~5<i>445lO| wi {4$05a-(D5y5.+ !5<}!om7i-.$0}=~~Z^G vjz+2 i.,.5e)3$02!_*Jg_cc4hbS5 h.$0!5$۶+~5,m=44(M0feW4~5 5ygbcfcdS2hdAd545rl' -hifcu4.  1.l<52!N30}GQu%4u'$0.2jGD4448Pd@bqf/0#% .4o}=~}.5r55+45| }~~5o.\C.1V5Q~.$0 ;sF>1 M^].^av k,5y2 45,S.5I5,4G*i5És5I44;9^.4e4eb;5so14$0.5T 5abUcehc|h)} @C45<..5Z.$55y65.!|.b.2.td&h c174448P-5""h44(5Z.$!~}5rr5a5<5 u..w4C45D5bhceS4 50Q5Bh9.}l: .3$055r55rHQZ]c5ak 3.4k.m.;_5<5r25B5/^vchc45lڒ-..2a$0p.5a@J$0n4o M -5l.4545B/h44{C}4lhhxfgf#Rh`i5I45I==-k$0~qnmJ %"5 n 5.5a4448P)4‘q456Zf5I45I6 .5 5* 155x$0Vu3p ...5 ZTmcledch< $0X? Kgge=P9lo+5*$0456.}5?.z G?.W0fc`e5Z.s5,A)..5B55B6.2%.yb54o'.(5l|c|dv-g@a3 ! .$0aa5a5,54'l.qQ445%$0}>~| 5?nz^k5%~$0}t(.~+.4"$4.5I5I4G1o|$0.$04.2u5I54F 5T3Ixd :.o~N93 :bgev[4jIn{44KY5.@gh'\`D.hgbgm >.54 ~ 44̀.?. ?0 /4.5B5B5BT~5,5y5,Ur7e 4.5r:e5I5I5I] |$0n.!$0z45a5 $0m5hD2q5%56d^d[eH-3C.5,5BUcb.;!8e5k$4.n.. [$05dj5%~%bfb(&ch +O?5 <5 2Iq5i$0mI..a$0sX[y..5Z45ZCpR"3 5g df]c"4md|'#~`5I45/5<$gcgcMSk56ky1}>~}:fde{2~}m@"2U~ 6pOj.-!5]4eb5~ 5| nZ5<CJ5mt^~&e3e5<.wDic:5,5alR"2]45 ;}s4.}~9}= [..2--5| Z&(4fa%44.2:. 4x55/.p (05 6N s'.hwb+.I|.x#5}VgbX.sIvChhvE_wkY<i h5d4,~.5q %\5,5,5,8PJO t$5g.ef5y 14jn0BW5| z5|45|}4l34o5a4455yFw..5B 5$065T4HpS*R.]YK5y45B 45`5<54&44Y42jc L5%.84&g$04 RE dv9 j /$032'#=s. "._295l"$dab"b5e4}~q5a S"z d=h.v5vil5T4x5.4. ~uffe*..4.2%(55u$ D#451Uec9c]ffax2$0df8bfe4G5 5. CVfGebg2{5y5Ew34;"o5B5B5B=v4$04+BP2$04{ 5a4MWu~5M v.'5B 42$V.5656568P 4 ~wlvb5έ5%55>5P j5at5BbeKda#3#5yl5Z5FDh5 42K5y.$04Tlkl5'f(fh.'w}~ccdF.1.dg9.~C :4dEae555T~Q.6 "44I5u_55".52.u.[\{545!S L.29,a.2% ..$0.45o~~}&5?.4bQd4554$05"$0eR"3 ecU[3,*Y5~V.k.4615.,$05T@T4.t5(..t"zo$$0.jJ.q})>+5Px..445a2 '8 .%}~9455|5DR!^4448P 5~9goc&do 4..o9V.aec4! )o-#m~5%55C$0eabw5#/4fka 2`>5P U Wk4pye@55:155>Rqv ca$4~|~ ~h-4!31"1{&@3]a0 4^45a5aL2.adfcaD}5 5I45yG$04wt5za coj}Uafb .444@5525$0.{H{Io}%4oJ+rY965 ƨ.5,.4F- DmWmX'. Z4 ,2[5 [-.R",TShf`ed&5ZOl5,`vz5eR.|CMbfhg|E44gg0hqL4}~9~(}4..5aTw6zbf2z45a0] )afhC52:.5iU"U$*dutj~')  Ѫ$0ѫ5Bl^'5-J5M5ZuLuM45D&&&:4{ 5ao]5.2IG>.5$0..ufB5v5B4p,Sq f..$0 {4.y5s5,+xy5(I~$0x~ 1495<5].N_5I5I4F^5.,m.0]n%n'}P~q-4=4q$0$0.}}~~F`W5B.4R"B2 $0hc$-55I5a5ID$055I5I4>r&CUr*5 5T!g$0,5B.5$0fDeebh5</6&;~4p44 5Yu< ;.5$9aeLcbdaeMhi344gb`aS5I5y5,U 45Z5 U52ou~|~ |.5B4 (}b.5T9:.54!..5?A. $0{}y3pYKs$0Ls444Z44.5I45aGyVz5 z5=5en6h5WP5W...g.$0.gf5 .4!<o|}B~}L}M2}N5" $04hA444M;t525 X]1w5%ehfd& 444T~$0r~5a45aO+LV45l.}|-.2%'3.}]5.94dh5Z.dKghdc05T 4=.4 "5<$0~ 5a!"~( $0ba$0 1) %`v55N!~$0.$e%edac{g7hdLe:.4.3p. 5)z)5!@.}+5Pj .4f.3}555 @5,5,5,M; u]#.5iw5}}Z%5Z3q.)5(2!5J.1c5%f/hg 555BQ5 .445B&~84 J45.4.KB4]4 +@"!5%.v^  v`.`$!e,0!e13.|40.^.5w>,4$0t<.455444>nM$0nObi}}{5hg[bcghc 1B45k~%w74.4} 4lI5l}|r5.u05Zgdc u3!x445yG{ Ѵ4}5D.66o5I5I4> Y~:45lEm'45 .; 4~ 44'5y.5-1,(-e4{5%<t5 5r.!.ddc'.4.-Fʵ)02E1m..4wp 5r 5 2ASskj0bgM|p0v0 |,.#5%a~g]ecd1fngg9dCgot/$046I,e!e5I44G.ef3o 5.ffbf4.55 rB.u5au] #$0 45 4%eo!.#5(444r+..$05J2hYc}?}22%o5N5r.525Y4..$05<.5e.*y. Ss.T5a~G455B3555=5a.5< "5u0o5'5a5 zZ.:i4}z.5a3nn} -54~|~ L} 45?.j%5y$mez$$5m5Z$05 5TR"45Z..)il20El{.25T4 FLS5$0 pk 1459:5<.. 5wk'$05Z5l|.4a@_2.5,$05,T555Z.~~}E5W4T Ql44R5,5V~s$" ~545y5,;4F}F f55r2W3%'z44YoWU\:<2#W.r }fm$0~shdhbagadhDb'f:f[bpfcd5Z$vwgb8db>hg4#j$0.$0}-$0pu...f45%4.$0vv ?4U5[$0m.H8}.,.#jv~Sy~5rkd.eeg~ n.@gLa45 Wg4m1F.$0$05}C!%3Bߞ.'5yX}5O5Et..h.b[bRfcN4oH6o .hE"zW&5rL5 ai5.#~Trr $0[ 445(.muiCV~m~n4~ 45a5aEo5. 5~|}o| 5L5?&.8}5l45P 5Q,.#$0̢5I5B4;|\44g=g455y,.#~e4z8,.#dJfgޢ}5q >q5I45y;L 4}=~~k55P.odE[.accrk4(ujVKUSulxBxC43.E $0"55u5,ouA5M245T t5 u~5 _.4.fexg444D-2'5y$0 88|8 ~J45J .PgegHmi$05*5$052.2-Jn5T vmp5.5I44G/1F2%X..fbg.gp.. | keb2j} $11&5l.5T.4.y/}>~}T4}'o<44o=2.o?.5`. , . | ,i5q&K@d5hOcie|dTbb/h|bGbIaoU a%'bchmb.. .2..${45$05B8$0}5$0$05B5Z5"~}r}sp<4ggasP.._j5yk_ 1%_) $F)Gǔ=Y"`- `0Lkz5.425R|$0 e585M,6"$.5Z  4o.5R$4}5 8"b}S4e.w54%ulL45B4Er}}oO456 .o$0.5D:Yi<Yjx5J.5e5,5M4j}y4+5M.xxxm(.4NP5I5a5G5T.$05 ~e\(~p$ hH25,dzah4 s{f5I&@4a45a ~l5.4 M$0 i .2Fg/ce 4.5y-4cl5q.b6g|~4~ 5"21B5,t5hahha*1$4$05Of~!5v3prH$0XuXio5j5 j2lV&_N}.r<FG D}u5Y%jKՖ4*44H.5Z*ac?dh~.o5.5k M H5a-54m*}z [d%fLe/~.5e.MmMo5 5Z5 O.. .}~..@.5?$05Z24-555]0$0Fe612.)^4$0.5.4wzwf45<5|$05Z*4. P4 45A5$O$05<(. 5o-}}5%4g5u(M}5j& 5]}~~$0-o$05e(L.5 |.u 4$!b 19:32..5L4n5 |55B|x|yg?}4$0f- .glgf.`0Q55?n4.5I45ZUW5BnVgoghh~p.j545B L445B$0.q4i5/1c/09# 5Bggh~gdI+n-u4445G -lE5<c(h~bfcG&2..nt9Y 6u 564cageg!'4ǘ5rض5.b7g1f~f<e K5K$K4n:n5j 452$5 4SViW2#5|9dc yl\5]qy55BS/C~5F:43)YcFcgzaq55B..$05ҋ( e5a4"fe5Z.5/rv!.~<44xP5'n4".'s$02$0JIX2dgk6-44afxj(o 25a545X $0.~VJ5 63OX.}*mw 4444yU4`o~h45ZnS]D -5l$04$0t45Pm4~x5P 4k}?fdbc "5..C:UJ5.i} 5,5T5.U4449@}842~5.DY 5e.4i{#{$ U~5=5|4,5I5B4>--.4r.5y45yO8g.]8i~05BP..2.v:v;5 ƅ5^dhbh,1}th .%'3  5,.y#$(V.,55fzbh,5I5G44wfgVgcce$bh4.l4M. R? nDbd5a'sqF5$05,.. 8nP4d.F5<//.o'4de5,Ts.5<5<5<T~X .3333lWz~*bEbzт} -.592+  o5y4 x ;.5f!g5h.74$(I.s5r2~)>+ D +51.5Z4 p+$044ab9j'.$0Cph*&U- VKA .\P5y$0Ǡ4ja4-/p.5{j.ggR55o4.a/$.kyP5%52nj?55.qc%45..y4 :|4z./."4$0.} ~. 5.- .w_2$2gxegvll5y. 5N52n,r`0Y=44 %c^bfdh6a.3 R"4m4o4 ~ 4()2(xI$0 .ux)$0$04~ -{Q#"$,")((-~;-~<SC%}o ?Q$0vL5/g(}}~}&,N 5,|%$0}v0=444>4sq5,`D25J..2,.#n6*n7 0]5T4t>5$0}s~".$0ce,h $05k $0.2"D'm455B|* F54.$02$0 !M,55l5Z  m2J5rr<5y<P8:."$ 45l4~c c4.$0* nl mq&gb}d&mrm4~>}!25/ .~8.5,5bacA5{bclh5a1~p15B.4<$0v>5 ehg$.4m)n.-!N5ee7i.:"$jbh4|4bcܝuBE5~!5B..5a"}52.||44 4}>~~6z.Wgafmh heefRfe5,=(.562gdg)5"Y:X .43.4- }8W...{15 d bzcj5,;p..~51 R.-vK .cv5<$0ol%.N4hg$02/z 4}}~}8m۩$05/5/5/=q 44.q 22}. [21F#c5ZS/n5eg5/.45E#)$0.w5|.5a5a ~4444M;5ydd}hf4  24ê5 5J45c@ffdh#bmh5}Z"044o;$05G444Z 5.jC. $(V)-5S&Iobhdgu45455aak4$0bd{*X5d45E5<;5T55<$9z32@7ɮ||2}`.pX5v\ :Α\+$0n 4m-n&4.d<ffSdma5S4.4f44n{4.444=5_ $0.~|~ I MG.W..8w5MjeReVj4~tl0Y?#(bfcbc3hfc.5H05Cge6.7x~$05,:$o5f*5 rK^\i@O Š@H4gKei '.j}.3p.4~&fgbq.]x 5.5o$|o.$0o} p5<5=. S[2 0.5, .k445@844 4b"b^Czm߻db%b fc!5Z5g{f4449@5`5ag.53}m]01#0<4M_E4 8„;(( 62}_$045"55MJ35525 P+؄45 $05.2525,5Eh\iQ\45a5a5a] /$0454yG4.S|N }z,.4}. >4 5+5A ~Qk5  54./h4.5l5I4k4)>+n-0Q.5 \%fxUSU5\.z]lx5$04 VjVpc #xI5EbafeogC'84-44B.8yaafh55,5E<445MO45yaezgQƗ.j4 4{_pR95ade$05yJA)R g-fgbchcZ"4jk; =|0|1.4&pk5B5|45b `k, 45n2$0 -;r|Bq.>5B2.4--r5<4|z.!54.24fcc5#tftgUdQdit? v~~}@} .0$0uE B+5UUgIhThdd3{abLg(45|$415e$0hqh494..muC.868=C 142 I4,h{er5rB^'51 P5I5y5yEegNfTd/.5N~4T lbge.ahfE~M4!~5s4j}t+*h5i4^45I5a5T516b}} pBC%<*:HS/2&4--/@.? t@5E48b4w)w+55Z4$04 5%5w E weR.%%N26eac8h8bhge.2#*S . jX}  24.!}n}p $0.#5r5r5rT~SHH5NEv jn4g}$05Tv#,.5,C.Kedo.kF{.5k5Bq..q ()*O_ov. %2!/n D2O/(.45r5l$0}K|0 .|55n+1b|5*~S5{.d$0n5 $.fljGj5 4 ?X@5u5(4. -5Y45]R"z5 5I45aT*~55a55L25e.5a4b.4$0$05S5T5,$05ڕ1bp.5y4$0.5 5 45!5!.fegrhj}=~}5%'xi$0/.k5y5y5y8P H4%.55ljv4eb H}45,q  wy45y.  ]χn5{4n4~~~} Fqt t vj -$n  53}5I44O- 5$02,.#Z4$0wa445o L8$05BG5<u444j m{o{}~u;.pp$0L$0 S||y{4k5 .| }e5Zi5f....4b$gZ/Q5,/R4 @qtb5B.k$0k454M;m4$0n$0}o55a56$0..|5zf az$0\.444 b4r44x($(IZ2{}14]1F  A\_$0..'45%U'Y5:4:6oagctddgj5B ~jySyT5545O5umi. D45y..P~5y45yUr." h /5Z1~.42qq:24.5a \25ZzR,ͳ O"-.$0$0q 28bt 5I45ID.5B ggcfv4b}<}&_$0E\5r.4~>Jn--444$00"5Z w-5lu|@%5GS{n$0445,46 $0.Fn0 E"55%\'2jeade$0y0H/~5o5M .4 `5Q v... .M5r|O >5B>k~~}5 l q-445yI!]"2\}!qr $0qu>.dWf 4Ub$$05a.)f.4446le$055v$0cqgcccfYoU 5P4 UCU|~; x* $0&2 5] |$0(k4..8urjjxK .Vj15{G4p6425_5yPB5]F l.,&45l}` r`X.5%44i-5l 45.5%4p15,154o45 8.4:~b z2 K5r2}5aah%e#45 xi.H25$2.r5y#}45Z VaemddgyuG45aN}"\5"m.!5p4}$s 5W5e:x4 hG.$05OW45.m.-bdR{p*gcgc4<i4NN+59 :4.\1+`GH5l._5ZT5l4. _  y1o6.0.fdddchB$v3y..$0 445a48P$0.45T.4gqcb<-TFnePddl=4%5I45yT6/.~$0..51-5M,.#~y$0 {A.dheAec=5a4 5x-4..5I44E|$0 ^.2F;5,C\$0v n.ɾ 4.4cvaUR".0s$0^.-~Y.eeb| T{ ^$05H4..2#*,t<>.5 .5e 1| ?A5nbtt5a w45/45I4O444@ S4}LoJ.3 5}XF :}(} 1.X1n(|$ }or5.+1 tCHddZ545I4Ur )5B16}m4.4L45B.44M. eNhIacdWo5H*+5 R"3 M5'$0^..~}N}e~U. 45ub$K?Y2=}5.pQ,5a45 .45.5l45T.45wc>5<l5az$0M.n45(.otWZ ~~~~.5.3 #4.5,5|w2$04U 5|5y..1*~}dh_hgbrgc0a ne2hb5H.4$0.$0.&&fAc$05m})_$0&Rm}=~s-()25d!5~5a5a5a8P]K]L4v$05Z5/5T1B4.s45%4O5.v5r5r5rZhkim/|$0 5I5I5ID5y.*44~m .5I44U5I5 M.5l.5hPcb5y5I44>$0555M;45r$0$0.4$%/E]}Hu.WO $0.5Ei~~j}$049'5,5;5,5,5,] 4[45I5y5,T25x{.<R(n.5~i..5$093o`K5a5rQy=29[3p>MhPN.~ 5nX]4.~.|W.$0}5ag;dC>$05$0(wM5|~d!!%.5(hZbfhއbdލ5$.q?$0t.iilp0$X6+~4}I54..6(+!(-45a45aM;5a4udue% 4..48SIE5}~9~(|$0.m+`55a5O#)#4422.45,5a.44 $025a 5<.45a5y5aT~. D )5 55r 5u$05<~a_G.5u54j.q[~~}}- 5y5 .0Q5ywE z'z(}$5M5BC}CC ăo.i5.5e.EhbHg"455s ..40' uXZ*6$0jr.{0m&fcKf=5M & 55  ||.-5~p9gbvY*YAN$"adPdh5Z5444D45nS_ B4 444L2or a*5~p .vyeh\02c[ccsfdged $024-  5B5l5y52z*$0$0..oggh.C$0gTY.45%`z55`"5.%e665I444yr35 -$05 /..5%w4ĝJm,4,55,4445y5jgg.4g< 5B5 5rFMa45y46.k9bgeb2!k:59.m "+Kebgh4N9N:55>ʭ$0fb0op444O.~$c5v(ϕ$0l44$0.RB4$05lnd|5I45IM;5Zz}2C!/84nmg!45y5y5y= p5e\cF4.!5-}k$06<4o$0X455%S$4 $0L)d.u5ex_15{j}{5}@~|}o .5. 5I5,46 \mc@}>~0b~~5,dhc6y. 4 5Z5 T*$0ccbf ,.#}9$05/~- . 5H5,52"Z,U4qq FT|q5I55BG.20fhbghRadwhMepdqf~1C5 P#$0o4&bjc,b4 "\:r^N$02uyz~ .)).4Ԧ) 5I44Gm..4}(cf555]]u45j5r{{ .-}}2.~4..Jn4,.}0=p$0,.gGh*44.)s4,$0y5,45l5Gq${Qut.S5,..5Z q5o.V "45I5y5,OeEfhii.(~r4 (4}444.Wb 2 J444M;  bde$0u$0YI5a(*2[2 . L4\ 2"}, 4m$$0p"p5I44Ge|.yf..?F} j.! 5EtdXM4I.b$0.<50.}B4H4c-. 5M55s5I45rE5T Eaes52-5r45rOw{J454045Bu.}}}~? 5<mZ$04 ,>5m]h1b!Ix +7j-^\=l< k0a;j./ _`HwFuv4g 6i*[GFJ.5UZ5 $0[[E5^.bfacmo,mpc~fgag+f{4-45lO.v~yyy 4|H$0F>.}}.4cD.!/x!1255 ?5T5.C4586$0$ ! 4g4hecf95t5y5Z5yHQ45I4.igayh3{!m4oa.$0RS5'5a5x?m2{@4-H6]  j[h[5o׀4mN$0K~=N2.Us[-.5I4}}}nvP535T5T5TM;4.PFPq 5m$0ddBh$0~5`$0.44y5x$02o5H)B '$0.,d4 5'.5a.2$0`l.hn5| .o:.Hi_5 Y56-25Em54m5Tp02$0s I!5l4c/chkg4ńcx3p {5Z p!-F@!.5-}k_eaem>.m+-25l5Z.At~~~~5_4~_y5|eawn %5h edw  4/5y5B4F4,.#15P5B445],.#$0d.~}N]}l5$0$5Z54G}5´.45M:47$~5]1=#M=1M/EM#=M0M 4M= 4=.^=/E=0=#M#=.^MMdr-)=[W1ecGK.Yn\G%0*'O)c)m,}&%<%QXs# si.F:,T/GM$-O3k,VjK^3iR|(7*lʟ kd,)+<X{ /,2^Ws(GQ#{|I+>)!.D+I*Z-u)R3.+6 F;m9-w5I5I"Q'Ͽ&80 0o/7!.s9,=/'3uN3yUA$b_.?~Udq' #m-T#\G!|)P!v&c" 4mV0e>.#,ZQny`3**u"80?g.ʩ!{H(~<+N/^!0/|f0`%|-)Ve$`y&L I%;$Q*[:_f2 #:D{Bk"0f# ܔ!3&#]ǂ3!^2:G;2f1#Er1N({U3FX&:ˉpN^1Nao39P":B1")cS/#EX&2X&NN7#EL(NK#ECU +^:_A#E߸X&3Fӿ N(N: <X&?G#EZ/:=sG:/:_%(3((  3 N ANW.%:ƞ^1E^)c7o:.3F.:#E0.2;lp)c^203Fϋo2I3Lo1 #E.%1-"9c"׷2~":G MA {(3FEd)c?:KU .#Eֲp F^3<A3Fp1.%1.Do 'p3[e )c2)cZG }%o)c "2ڷU)c .#E#E"Md21%GN?"81Yp܈A3dvp1d3sd3F"GA:td ?X&:V^:J3F 1/:U#E,MAN^:]5 3X&#EGN";(!O^)c11/2,G)cH 1I/(: N"zd2/>pN,X&ԐU:9.% G)cANF.3D+U3FG:վU2(1R9p$':E3FR12v׸ 17UIA1:CR()c&1.13FۀU: X&:m". -d ء21.%::.%N)cGd c.%:Ao2F^:f/3`^X&#E`s  #EC1<.1R 31N^G#Eh"B.:"`.%1<A)c6X& D&WG37. )cЛ(#E^2o:d#E3j#Eo3F)cs2E/2_d2B.)c{.%3s1 1:å1:623o3/d:A238u3"p/#E13Fd3F*/ U3FñA:ȝN.hp3FE.%3݋ 3.%:Ɵ.QN< 1_/NN/3F:11:Jp.%3F-J2A)ce_U3F^)c<p  o3F()c/1]X&:4:1 a"2U- 3yG3x:_oS=H3^IS*gg555555555555555555-pV)u45g'0u4 {g(0L5j5pg)05j5pg+=0V5K5Qg"L05K5Qg&2.5a g,Y0a˔55g#(05K5Qg$ 05K5Qg%05j5pg*"Ĥ ! -WM _$ &Y;1 p ,   +b X2 sc  G u % } 2hU (n (A +{ / j +4] v@ %[ H | . /;u a #I 'u  Y1 0=  * &  5 . 0B5 'j -r c qd0 8) $- 0  21bo 9 Tz  nC + , K Zg /= & 0 Qq   D ` "d } 0(-  v/,  X +ik "s9 ):  : + # #< 2k 0 њ 2 8 TC *  1m  3#Q   .62'1V)L.:1sl"3m6q:\Hrմ-4#<A7$&WV`^2b+!JGX::"m:"mX:&b.kUA-V"01ű=U/,8$Ÿ/"`c.) (19\T#14N-$D&Ss'3L//UE3^E> ,wG7:LC'9.2bN*kaRo+(3(:32N0 -קtK.9v1'/ -Qә&R2t&Nl/&4L&10'&&u / (JuUj() '3;3 '>&W4p#_ I3Lw.f.EKNO"fL;Q@N J8J M{V"#T&\p:Q^6EVlDMMIe:8q?JJW:Pk U. @BUI~;c 7K[ N 7#SD*G=F*;Kce\09YRXy8kCS;BA7TKb?HP4T<]NS XE$L: #L >]VOR9TMA#DNIAd7eX#JN"CO6QAYkQdSF Y7 Z6JI8>0A`TGR4J~EACOH`FEb]GaWbI:I=92kKU6*z6XNTFA8TYxOWITh>jZ$aSeFHEWW<GHC1KK_F;JA@F(*Y;7/AjN(]&=CJb_E7HJDD!C ZD!?v[M^<HV{[wUOFQ[397C|uUT\LIPAprGJnPvMAL'XlM(OEH(XLl7Z=A[7L$S[C!<7ODBQ<(aC!8WrC B?rUC[P"P+3K;O4R-B|5[\W:C)RZO>lS6mTwbKqP7\lE1PLo Gk1MBs`M`FiBJ)E TF_GY>cc>6J;[OC;8$J<[HTnCF\VxQF&DGGUU6Q*PRRfmJ;zb[9.J/HE!D!FP0Q;LPrW8TVV\vI9bY XFcs@2>8l<,KNlV-,U=-V>nD}Tx = ;1:z >aH&!Ra>~\A[^TJIKX97TZ=F09<6<:NNuZ<M^=,"X@}HIiS4jYoWFh=-89J:=PM:-j{EI=:[3=+KDK6>OJTjVR[*$+D7J<@=TTX>j]6]TT[K W '\ (M?HCH+QbSH9)RA7~?z8PU8{8 5H;FN;WY Jy@3?CRU6@YPF<EY}RP8 NZ!PWk::']$IDZG\=jM>A5\7K&9T*+Q(]FC+9!rAUsJH ED^=l)QVHKaSjdIpeYXIJR.=QYUm"VW>LK$$I7\I9J:Q{PEPG}_B~aP'N[LEGm@_ JPRvYm,A:EPZ@4Y2EhH?[PdN= 6\Ra &>W8YPYI& OyF.8[CW#MY::\ATwAf;+@M>LB&M!\JXO[$DAXLKMAx?NP@OQ {ZV:$7{:\SX{eFDLESMF=OQ QQZ[AQ$L]EABzHSCk\CGk6=P}[[o Ep XZpYK(D^:4.W.8OcS{?G5F {F{OKj2 YuZaQGa=^Wd,R/UwmW UCM-:n6 SUYAUS,R2pFyR ?>x^\\"J<Sgd7W_Wl.@qSVQ^N UIHYO^Ai?NVowGA6IF/zx;<X46G 6V'R VGBw>^noHsopW [6C Ox8ElA&/;fHRj7y~W8 \Y88CCM<S7M:JI1STTLcWlYnQ>:>tL4G bx8C<:RTC@ HM[NKf%AA[(*J6\[<Q7ON&U'YmYNH'BP2:/[T_JCOd@;yFYMS=rHE<~kJFKKtKV5S=HzYFmQ}JEXN|+<?>?P_LVI8f9loKG7}Z0E5 =ez\-K-|7-}<jU1XDJ.FP6T3RG lUsHHX J'DCI,S=:iG-y@LABPVG&iTkD]/E@R8hYE_UE988|P} KVCg:RjYGMR6s8 S sE tO&I"zPoL1=CWhD6!IZUY$><mW=NmQ%M0S.9/@280hI.K0F,gX$@U(DwLo9E6]"mFXgRTy>d?0Ww:1W@MnOq<Z\u?CX QQW$DM%4Z$VNRS'e8<<GT72Z Nd:3@utF#1Mz`FWQqQJ,RVjZ=[6( PVKQJJOEE:MHn\Z4>g y\R88w9[ OY3<6R7fY\cMrU%?^JYDL>4H.]iM';8`YZHS0RnERbBArkAc]LpLE)B=%:<>&>YRri'[=cK0cZmL|I \1*:=F?@8O(8@BeG]GTCB8VREq\[8C37Y<VS<VEBWRzv:s|?XXIIUdF;\"IIvMfqUE`G|>>K= HAWE|VXt;B8~Ot@<?*;-6IC7SXTdu9- U;8B=E WRWL)8yI%W[hMu=v@Df=|gMgZ<ZOAAn>FZ^F qG!Rg-@O< U 5Be8ZVPmwEK-=>;3 8xLF:T#U%=T=OgZVNh[Ba7VWk[/wQTR97NffVgX2GIA H9KCN'nZN!?y#=VK[x.X:icFXBJ5J/NUJPDLE>ZY&;8jSCSUVY?<%E7M?N;>F@'cTv6{~O6=u=Q\Zr<\TuRL@yADX?i68/QyN*N%M0Wq;4>UJ8K8X\:_@^L<-2@lA\X&\qR=]<3H)B>^Vqn\?F"AIM ZW\^O_E8M<7NxCm>v?T;(L,L>c[)]\>{|>;Y@ @%}6Lt8XRm[%?uAlW\XE-L[LxJ\L7O7;JP! [!Ft/Z#B#WGyr8&SiAu?<GZXVt?#P,SP`MgKOv:pzVIR|\x>m}S?KRIqFWYUE=Px]V9OV&>{I92T#9/h:??<9h>M{~[H"N28>ThFJ?/NSMhQp+dK&G?zqLwuBB=I";L&IAP[+:ENXV=YrB@fXCYBP*8vZGI3k= B];QXd)T5<;[;=-I*?RCA:BY8uO{!QQVbr2K`5@~[kZZVpCZ$)KZn)6 QHPYHiP#TMluTwT%lE[>Y.&5SRtNL G Y+@%8p9X1UevCwM-X8\6[GSsJK2\sX68MV9eTYBT]E1$\t*-(!$یXgی*Xg*یmییXgmXg!$Xg dk#c$\G2 \&@7ºQc,6(44 h]4#45l h4,45 h4:54 hh4)54 h4o45O h4"55 h4,44 hd44n45| he4mq44 h44L44 h43>44 h4m55 h 5I85I4 h4%45B h47@44 hd4545% h|4o5P5h h44*44 hB4(!45| h4645 hl4+565 h4'5I4 h:4.5I4 h4645A hB4#44 hi435I5, hn4444 h4"044 h4m45H hk44244 h&4o45n h4nt45 hN4%45 h4+ 45B hؖ4)u5<554:5I5 h_4nt5j4 h+4+5I4 h.43`5I4 h 4-44 h41e5I4 h#4$5W59 h!4645Z h>42`45x h40 o B h4"5I5 h#4:45T h4755 h4o454 h4145 hG4n44 h4$45 h24m5a5 h"5I!44 hQ4055 h4'w44 hZ4m5(4 h4m44 h4045 h4!45 h4-45 h4-z45B h94m5q5S h4844 h4*44 h4m45 h4n54 h4+44 h14)05q5S h\4m55 h4245 h4$E45r h4nt5_5 h4$5I4 h@4og5S5d hY41c54 h4#45a h*4-5l4 h41F45 hq4)44 hC4/44 h4844 h4:45 h4+45 hW4" 45y hӎ4(44 h)4%_44 hW4m44 hC4945a hЛ4254 h4m!5Z4 h4nt44 hP4244 h)4,_54 h4nk5W59 h(4o45@ h܅4%)5l5M hG4)45p h4)595 h435(5 h4/44 hQ4*45 h4%5`5Y h4945y hw4'm45B h4#R5I5B hC4)U5r5T h:4*G5/4 hG4o5w5R h4*z44 h4"45% h}40?44 hb4#45 hv455I5, hu46$445/41i5I4 h4 44 hm4244 h4p+45a hR5I+54 h445I5 h)4844 h|4"b45/ h4$45 h4+459 h4nB5 4 h4*,45Z h4&+45a hF4&v5I4 h4)45/ h4(44 h4m5D5' hb4 ?5I4 h4#44 h4,5u4 h4*44 h4544 hw41I45l h 44N45 h4%45T h4&44 he4:Y55 h>4!T44 h4)w5<55Ad41b595 hZ4n458 h 4"i45% h48+44 h4%44 h4-x44 h4m45q h4544 h4545 h4' 45r h4*N45 hQ4(L45a ha43.55r h4744 h{4-Y5I5, h49I44 h4&x5l5M h4.45% h34054 hA4*44 h4)595$ h04%54 h4455E h4#5I4 h4+v5I4 h4$w45a h*4(45 h4&5A5; h475I45949445+4&"45( h 40I45M h42\54 h4)5I5, h4nt5m4 h41(44 hp4p"44 hy5I2p5I5, h.4!45B hZ40.5/4 hZ4!~55 h435"5 h4mq55 h4+45 h4555e h4/-55x hT4%44 hg43+44 h4&44 h4844 h#4/44 h4%5r4 h4%5I5 hs4544 hB4mq44 h4044 h4*S5l5M hN4n54 h4:45 hC445e4 h64o55k h94745 h495I5, h64+G45B hĺ42v44 h[4"45 h64)45 h4n5$4 hZ4-5(4 h4m5 5 h&41L44 ha4'f5k5L h4!44 h4nt5p4 h 435I5B h$4(44 h߶4 54 hõ4'F54 h`495I4 h4%.44 h-4344 h4!44 hɃ4-5I5, hҾ45=44 hw4*55g h4445< h4m65B5r h5I644 h^4245% h4,h5T4 h4#44 h4 45y h:4!=5I5 h435/4 h¯4'44 hM4+M45a h4m55 h5I47456 h4m44 h4.55 h4*{44 h4944 h 48j55E h14m54 h5I$E55 h]4245u hb42<44 h4-45 h44#5I5 h|4+*5l4 h4nt44 h4o45^ h4$ 8 h4o54 hq445e4 h4m54 h4mq515* hr4'595S h405I4 h64944 h4o45 h4mq5K5C h4!5I4 hܜ4055e hm445I5 h495/5 hu41!565/ h42g5/5 h4344 hw4444 h495u5P h4+644 h4n44 h475<55c4$\5I5B h4045 h48|44 h 4mq5f5^ h˶475_5 h4&44 hθ4n5P5h h4%44 hѐ4&x44 h4'5I4 h>4$(45 h4!644 h49A5I4 h4"44 h4:<54 h43m 5 4"45 hb4'45< h48D44 h4.055E h4#5o5P h4*q45a h48v44 h4"r44 h͓415I4 hֵ4'Y5e4 h4nt p h94#:45l h;4345e hj4*i44 h4,5I5 h4:p45B hz44}5I4 h4*_45M h34-565 h4't4554nk45 h4-144 h4o55} h4.44 hҩ41\4454.54 h]4"X44 h4 k h14945y h4'45B hA4'5l5M h54n515 h4m45 hF4#5I4 hr4454 hu4144 h40E45y hm4545< hD4m45h hG4/5l4 h4o5 4 h4'45 hF4&44 hL4,L45 h4744 h4%44 h34855 h465W5P h485M5E h4*5I5B h4.65l4 h48-45 h{4"5Z5 hv4/654 h495/5 hD4)-5Y5 h4*44 h&4)5I5, h4-54 h4/44 h4*44 h4145T hN455L/ h24:  hҮ4o5 5$ h 4.i44 h4245B h4og44 h495L5. h4%g5I5 h44L54 h4#54 hj48'5I5 h475(5 h43+5l5M h]4o5=4 h4m645 hy5In45 hv4-E45 h4!456 h48d44 h4545 h4145 h)4$054 h'4)44 h4)565| h!45q5e4 hk4&45B h;4(44 h44n5(4 h4#5(4 h4.5%5l h4!E54 h̶4145( hF4145% h|435I5 h4n45? h4-k5W5+ h4-m45r h40x5I5B hث44M44 hL4m5/5E h43C44 h4045B h4'a5e4 h:4-45 h=4'44 h4+d5I5B h342L45B h4/45e hř4,5e4 h4:*45 hI4-45a h4/5l5M h+45`45 hצ4n55x h4#a44 h47z5o5 h4nt4 h4n5\5> h4nt55[ hf4o54 hI4o45H h4155y h45w45W h-4&5l4 h24*5\5> h46144 h4354 h4544 hÞ4+j45B h4+44 h4'a44 h415I5 h4m458 h4nV5Z4 h/5I,55 h4545| h4054 h҈4:5<4 h4/5T4 hX475I5 h4 45M h{4nk5u4 h4545r hO43M44 h40745 h|4&`55E h43944 h4&$45B5,4(5k4 hp4nt5 5O h4/45B h4#:5e4 h4-44 h4/ 565 h4444 h#4745B h4(44 h4&:45y hm4"T5<554$5l4 h40[45 h4o'452 hY4o451 hS4!44 h4355O h$4/5I5 h'4045 h4'45y h49h45E h4"44 h~41844 he4og45 hh48E55 h4o5[4 h^4(55 h44 45 hգ4"05I5, h495|5] hE4&45B h41745 h4.44 h4)M45% h4)U44 h4.5I5, hׄ4*54 h54/ 54 h4*S44 h+4)5d5t h43>44 h4)45B5Ƭ4:k5I5B hв4'54 h4445B hӿ4244 h4/[5I5B h4-55 ho4.44 hІ4!\45 hO4)5I5 h41~5M4 h04:456 hc4+e45 h4m565M h4nt55^ h4-44 h4n5h4 hm4+)565 h46c44 h4+^54 h4o55 h+4.5I4 h`4"45B h4 &44 h4/44 he4*44 h4*44 h4:45 h&41'44 h4o55 h5I,t44 h:4/5I5 h41R5|4 h4#44 hNJ4o5\4 h4m54 h<4,)45 h>4!u45B h465]5 h4+245a hr4%44 h4o44 hh4.5l5M hE4nt55b h4:l55l h4'Y44 h4#55 h4944 hF455I5"54.T44 hB4855H ht4 44 hy4645? h 42h45B h/4+45B hՄ4+254 h4.55( h4m5\5> h4%5l4 h24145 h\46z45 h)4354 h34&,5I5Z h4n45 h4%p44 h4$5o5 h405T4 hD4n44 hI4844 h4 i44 h405B5< h4n44 h 40x5 4 h43A5I5, h݇4'O44 hk4/5u59 h4o5o4 h4o45r h5I%`44 h4$45 h4(45 h48345y h4-44 hZ4";54 h4444 hj4 5o5P h4+5I55^4645P h~4)55 h;4*y5I4 h4445 hp4o545 hq4o55 h4&44 h4-)45 h4.595 h 4355/ h4n5`5A hl4,44 h4-44 h_4044 h*45V5I5 h4-564 h4'g55x h4-7559 h4)+45 h4m5B5 h65I'44 h4!45 hJ4%45x54**5/4 h04*N5I5B h͙4n44 h;4,5M4 h4-5H5 hP4n55r hR415I5B hE4&_5M5 h4m45+ h48564 h4!E44 hJ44a44 h4$u44 hƼ425I5, h4#c44 h4 l45 h4'5I5, ht4o44 h4m44 h=4%44 h4' 5I5, h4844 hT4.644 h4o55" h5In45 h4%5I5B h4/L5E4 h4&55 h42M5|5 h_4745= h4m44 hH5I%44 h4nt45 h4!45 hr4745B hǙ4744 hǛ4& 44 h4o45# hh4 A45 h4nt5\4 h/4045S h4-5W5 h4(5I4 hٷ4o5 4 h4"b45 h/4 V45y hَ4 5e4 h4$44 h4,|44 h485(5" hH4nt J h4*45B h41M5V5O h4(45B h435$5 hȲ4/h5Y5S h4744 h4&45B h45^44 h&4%44 h'4$145 h4854 h4-45B hN4045 hp4(!44 h42d44 h4,44 h4655 h 4:i44 h4345 h4+5l5M h4%44 h+4045< h.4*45 h-4645r h42a45T h4o5+4 h48144 h4o5z4 h4/45< h4:44 h4-&44 h4%)44 h4*452 h4;45 h4*25;55 h4'45T h4544 h4+44 h4644 h4644 h4#44 h4/44 h4944 h4"5I5 h[4+5I4 h4%p5I5, h64*t55z h4mq44 hl43j5I5 h4-5u5W hij41m44 h4055x5,4%5 5T hW42'44 h/4945 h42515 h4/54 h4mq44 h4,l44 h4"45] h04$45B h4!45T hs4'5I4 h*4%*44 h4o54 hS4(<44 hA4544 hґ4$K55" h<4044 h4m54 h5Imq55 h64654 h7495I5, h4:45 h4945 hz425I5B h%4-M5I5 h445 5L h4,44 h4&W44 h4o44 h4:5+4 ht455T45#M4/O55 h4$P45 h΁4344 h΅4$54 h[4-45| hu4!Z45O h4/[45 h4/45M h֥4 =44 h47:5T4 hp4mq5t5n hZ43944 h4m644 h!5I,/5I5 h4"456 hn4#44 h}49Q44 h4(44 h4755y h4& 45B h4m44 h40+45 h߳4%&5I5B hp4)E45 h~4-}5I5 h4+5I4 h415;5w hz4045B hH4' 45a h84"]5I5, ha41O5<454"Q44 h)4n5\5> hK4!44 h'4%45T h?4-5k5L h^445Z4 h4mj5%5< h4')44 h465I4 h[4044 h4.r45a h4.44 hh435I5Z h.4&l45 h4.45a h47h55 hA425I4 h4&44 hJ4#&44 hW47@44 h4 45| h4m!5y4 h4m45` h449d5I4 h4 44 h4+44 h4"5I5y h_45l54 h[4!q55 h4645B hh4-+54 h:4%44 hҞ4!44 h46:45 h4-54 hN45n5I5 hc4)cq/n,&2&j8t&13U!x!'1Ob"6Mk$ =,^( bD_ #1<%pe"j X$3Jb_.)'S%*3w3Nd) D0!"2-sPqiO "/g $ 8>qH XGR(%CS3 atKh[9,8O*2-ٔ$"L0w)9|/?+gTk-p9J)i5|1Z12!1%)#-YH_n|2"x-q0bԵ 7,zy%-]%N $ 3yJ+*eHE&d#O *==8",=/b*V%f1o su.a H (\,a2 H1L UV$l0b5@+\:"!a1`VA2Tr)_;ʜ׼d,$"$tF&#v,,%G:,m9ZANhak6*P0(Qϊ*L!.C12/D"/&R(|.$%/J,*bA4 0 n2>1n(/%K +N_(/B2Dpj2 1>{Jx2G\9%#S+ D*[! o0<$%W 1+\'K'M( 8T;+as_s.(r`2\JZpE!-A FBlXqR-Kh7!JvF,.\28%O9-J>Է!-Y4U5#&c,5S%e52)ޓ %%hX/0%DOD0c,Yc</lH2k&#α#)0}.p$/V3KB.6:$L"1*3+  SAU$  rN)~+&+?V&3[h(+,-k-F'TAJ ̫2(H'Q -5P2 Ac!c&s. I?Y+L2SbH(L[ om3-d+X(+ nWͺ tEcN)C2u-P^2Ǔu6G$*OH E")G'+"72 h h h#6P"=*HT+@'/<#^&t-9xϜۍ&H G&W3^y=.H3q/mF{$ e'[R2 *5˳"~$e^0]*& Ar#_@(FRWd*K+2A&0M|$vc#{%3 c.[),eMQ/N>,!'l~"d.VS$BpT ~O0H0: +,+y Bk/$L*=Qei0^q+.W\"1.,V,ð*GrW ++˔$7f +,-/$O*5O([Cu.lO2-4H%L2c2UB(k(ɋ*+GE/z(3F RSs'!!$"9,1++Ο !Zȏ(b1,1We8ƒ2%E2'Qbv070'$ǹ%2X/!,O0P37&e/+)*wTeD^&+t*0*6! %0t)qd-%^j#^hx#K,r&WM9^Qc#e1 1.0Ȇ$7$O PT*l+D/Ը/0~2: a,&k(P=2x"q3].2 ?*v(++"VǨ1W-83"2.<H]$Ypu3)(!U&#v# m!>f!NS&+x0/M**X-QoDk+j- :0;=j/W$#"=##0~ !&[#pbEd1*]^(u-^.3V8MQӃ0 -cF w$0V*(2A$zn)l!o #d_W">i|%s (vxCf)*a*X1$Z`%!É2$,63*I DYTa%0.X-nP5Il`3\?-k2n8# 1K/)_I  "-nB>% ,25]=K!"8J(Of2"Yy0cOP[8#yˈ/0ȅ,-9$W3u/hrG;0H*S{I&p"D0)(؂Lc'ec!ec/ec,˕. m ;4m*_,d,(N..4.!m&mW.HN,X,4,R,I!. Lm^L.,km"m.@m,<_.R,Mm,Lmђ.mc-RmJ.>.!_mJmNm2r*s@Y/ct5IdF#1a0')Bz3c1BzBzBz%u!`Bz)%1 Bz+ Bz !7Bz2]&BzHBz'YBz$, Bz\8lBz,Bz dbeBz!34BzDBz*PBz*$ Bz!:BzwBz ;BzXbBz3Bz&ZٖBz&V Bz*Q"Bz1Bz8IBzE\3Bz=&m)C'\^"B !)D\!)D\0D\01 R)l&~)6 Hp_0 7_0./q_0?O<)Y_03_0;*<!@6*9_0%7PdHX)3!!_0!KX\_0_0/N]W_0E_0._0 *_0]Q& _0_0!_01  q_0+ͼ_0%Ef_0_06_0%V_0 a& G+b!9_0%)6E_0?_0  &Ձ_0lbx)Y2x}x x$F*j,#(1Y-x  q*d2+WcX).D! !#S֋?թ(pyDA) \,42}6Gh0KC` "_#'X"dP0m'gQ"!bl2e0a?)&J`/!=o/,B+%;%_/x4b35- !Bi`B]*{2K*؝*2  'cH1>"%?I @V?2Hʷ v6OY/S%$ 9@!C K׊21R42&Ȃ39s)++@3)K#p9*>-YY= .)%$Q$ki&L1c7*)V2jށ13H.E?&lݒ,1dU$25Xr]B'A-R(~1x=("J90<!41k1[&#Hl _r5%+ovK&1[.7=&QR-Mq #o \3QDV-E.(^0`& Mф N-d6#.c!:t-c?)>F Ip-b {%R1zR%#3&\-#D7X(7& /3dq*5 iXnؔ -&''#,* 0XY&W!">%ݚ&;[+.'XC-V^[*!.41).-C$ ^ed2L_LR@Vq&[c& bL3'+;)YR1T%b/Wr$8-x";u*?^W-Y22 ) KHPJ[1K*(_$3XO^D+SSI ,? լW  T::YcN#R   C9ZSn5S22>.?)\-HM-!-q3 R"o1kEa[2( w-Jn|--?-0Z3.2tUgW2#@.-A\Y+s %'1r3 L?XT$ +\m]J26#)$@ ,12R11c022.aO-/.JG 2$H_<KW[2#lHn04(}S2$n1B:,252P-0Y3S2 2ZIq.--2/'AS-,20C, 2W--xX]2| ?gXmM. l1 - -!0]` 0Q N2<2:xM a31M#+ug1k2$"Z 2 V.a525(ZI Q 2}x^/C!280F22q.,'F2(F,??'$"2. 3]W2# -!.X"$}2 7'8]23%'2:-"b?80Y13%'<W-:x2-,$]-\07$2$ .x-z293n2v.f ;SX^2 C-3 fR"G2;1"$)(-e(,"{*_#)I- {6*232t-SH--C-UaR'a7aC5o5uB5S55Yl555hP&8S3 =23pV[\9f2A | 2&0W-m:- 2O1/2"221EL20%\u'wz0]0].-RP-(22R"2a;'"DQ0]a0Z")>+P0Q6x*q10)!.aQ1h-2&>2m$d2w% 2`-r2,-CY"$.c2m.+  2VFo3O21c0QC_V 8.E&W:.s 0Q6Z.oz0Z"2*-[J-a222A!0]BU 20/1Hf-q-.B K2@"S-Sd8.2$%J.,'2-]1 a\@")-l j/ 0*UaL3pP31$M",&;NC%-a92,/C- >!'3 .1BR\28b%)'.0Y2$)u"_y *2@"@CU2.)2#E2-#--2.:/%\i,0h i2U-23%'>W 3W}S27#=+=j8Px+hD_6U *:1 &0]+1 /@*US+G<=4HW/*:j-2%-&o?2 *0,-% i v *a8a?- >C-P!'2H, o.-\%fs$ -i'g2j_S^ D2-\ a2B-12}E2.`2% 3peo  6'7+!I6@&((X,27.2_()2URpS%6M.C.=%H ['n1F .123~%'Wv.2:%3 bR"(@[aT2 = A3-M,L yS!-.*2#{22$2.S}\WC.d12\K%fY220-q9Pi32 #O"(<22 -S }Fw2|e2hu*-DO2<SC%_-+()M2G0QQW2#y$aH$.p16Q>C1BR"8a:dC2*4 9.*f$j3-&$11$63prCUH.4 '$)S59h!"$aGSef/ -*2j2T.#"bHZ"-,zS28b/{0(#)4aBaZaX:r?S!1M.1S220| #)1B(l\6 ,!2.;-2*2,NSS * %'' ,JS.-2-O..2! .V26}k$S-m228b(x,L.U-S.Y3 R"2@"(.:+0)>,+)qFw:xC'D\HR2C -c6*H-@h2T PB+t !`24 S-. (Y PZ"3OU2nT Jn-? 29 '2.#2}%2tS.2%(YMSX0m29 ?-T2N. 3]RH29#=+=j:;+h[_]Z*8p ~?BQ71BG,' +-3 Z*O$~1F.2S# H`$("0"$%Iz6"$6','V\e5 8b)>+-26[pM-/oaW0]6S/-z[)>+ 4aKIaA2uhH2.1F///, 2[X]1FB2PF(,|2U(-.`dSb3 1THK-1(!aUZ{2:.J  21,$H2!Ca]"$*UrR"wN62.+/M-tZ"2Iq\uJ\\1<K2s1+z!$770Q02\:rbc$c.{2%*&2-0?/. 2 3pUa2T!1,E-u(-/2)-O(f&X1cUv}-]&Z .0'-}(&4x2S1F221<2d9Jn-Jn-v1-ow!\ h" /2(:T2,<\C1y2\y%f."$2@"D2!"S 1,-l2]^!xCcM;. R?22A1cJ22-)k.-- a=<2,V6 0+$X622$ 8 H2-H62UC=-?>&\PE1c()StZ/2a2JS-U0u-8R" .%)/0~%#J</:2 'SSU|r3 R"\"b2/F X-^1B2`-"1 ^2 204 7$2aSH}p\C-1$11>S(I \2i.2a<1F2})} mC"fE  0]~2X!~h`PSR"x(1^ p1 1cK(C5S^O-B2.>? 2C%'I1c-d*D2"bHp( (-j-40] 5?2-(.t.c! s/U3,55 /N0]21 I Y2<CL1Fb2'2!W2$4HR0]&;;[  .-~)PB #. nrs%f-,-S=2C%-eaM25xC$ Ua@y=0YW2222[}C%0Ya -'(\v0 '8D2.n!-+TaI2{M3G '*Hg(`&a-b2cf! 3- 2~12J3OF  N0]", ' 2j,fC.nQ,B+>d',o/@CBQ(|$ .2t3 2lF6C'2=2aJ-- a>aP-a6.20Vt2W 2"k5[8{NS/JUo$. 2-u-=P0Y1?E20 -=4.*.G1B-O2p A 2[.2\/:r(3p M. R?JCh.'i"<f-2$#) H_*v 62.*2#S2i*!2H:. ~4I$ - c *\X:rH2'2,1cPs'2X25So 9?Q5(0#2-2O&G,k-#)&3%')5S51FY229 1B3 5R"'?e%\9C%70k.2-@aY$"-aEa5,k-_2.2/$%62R+2H-22C.aFS- :-R"R?3-2a4;0Z"E:x2g2.$"-.c2!Q.W2&1BQ*$g?-, >+U 3SA[2W%#=+=j7VI+h8_I7S*O&+ 'i-]L)>+2b*-4&Swf-S22` 3p1(A 1 1FCHJ+Lt[6+R"DNCVy g-+U-&+aV2x&~0 C'-  )2aD0P-I l226\ Kfb 2K2 0QPi12&2 ?RM. 1y)q 2 U.['.--7#)%D[,'l/ ,-2!0W F (ia2j3Oe3q%'." + 0'- i-LS3 3pE2i3 R"{V*Y3_,W2# 3?V;2@#=+=j\JS+h[_T+X*U= S$aN1 02i!4.+sk"br--2p[.*2#z2; -F-f 2-MiJR"# )0Q2  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .Ur_mqyvt`d}hl]ufapcko~bezxrgi^j|nw{  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .UK(%d.*}$I. '!^R35'.80(.1%3#"x##.38+t*8'<+$l((!2L+_$) h+9!E(q!~,C."$23=2'5'&#2)w&W*4 7"p1;E$m,M1.: 0H'1@){[2$, 8"`2.)v"4R3?2],F3~') +~l '{+,6(N%;.v0:$1E1)* !+-0!"|KN'+&n,''&$/t"+a+';- 3_%l \3#1%1&WX,\7(S*-t*2B*"&T'&o2(1"1%IQ'z6q2%,7D*#t&)4 %*y3*3+k9b.g!K&T=+y" */=*-7*R,(I,W,D3 ~!"T'=&  '$+f- L *d'k.NV :u0W4,*_30wK-2$< ""21yq,Q+8-Ul^'2!qR2{"Q"M1e%Z,0+ ,Y+0}" /1 !%/(O,."03z#M,3i.=*.c3/>'}/I:&s.&'@})#[--"z##"cG(C*('S3o))'f'm(+ ]0  :# 0&2,yT*a0_{'33["9!Ey1%4 to*'%/'-`/5-3. 2c 29$D"f3@(1#g$$!.Vk"a #Z#0(+*0/nt/#)9-;L+[!(3l")% 0+O 0S34&)*m2`%F('E#(3A]0)Z>A,R B 3 x!G.,p02z(@}3' `30ZZ B@0-#%(/)")'\" P/>(p*u+.\"31/-s(s'U.1~**'(#F.*L(J--4/^)- J*(V+Pv<!Q]#(D=-.w-"+-6)'F'Je$5n.Y)"+x3b %#1.1% +7&D -'W -!  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .UjIF5k,a xuh] =:1.G6l-*b_ vi ^[ >;/H74mj+`wjg!\<0  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .UK(%d.*}$I. '!^R35'.80(.1%3#"x##.38+t*8'<+$l((!2L+_$) h+9!E(q!~,C."$23=2'5'&#2)w&W*4 7"p1;E$m,M1.: 0H'1@){[2$, 8"`2.)v"4R3?2],F3~') +~l '{+,6(N%;.v0:$1E1)* !+-0!"|KN'+&n,''&$/t"+a+';- 3_%l \3#1%1&WX,\7(S*-t*2B*"&T'&o2(1"1%IQ'z6q2%,7D*#t&)4 %*y3*3+k9b.g!K&T=+y" */=*-7*R,(I,W,D3 ~!"T'=&  '$+f- L *d'k.NV :u0W4,*_30wK-2$< ""21yq,Q+8-Ul^'2!qR2{"Q"M1e%Z,0+ ,Y+0}" /1 !%/(O,."03z#M,3i.=*.c3/>'}/I:&s.&'@})#[--"z##"cG(C*('S3o))'f'm(+ ]0  :# 0&2,yT*a0_{'33["9!Ey1%4 to*'%/'-`/5-3. 2c 29$D"f3@(1#g$$!.Vk"a #Z#0(+*0/nt/#)9-;L+[!(3l")% 0+O 0S34&)*m2`%F('E#(3A]0)Z>A,R B 3 x!G.,p02z(@}3' `30ZZ B@0-#%(/)")'\" P/>(p*u+.\"31/-s(s'U.1~**'(#F.*L(J--4/^)- J*(V+Pv<!Q]#(D=-.w-"+-6)'F'Je$5n.Y)"+x3b %#1.1% +7&D -'W -!  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U  E)o/& .U=4$45m5y8m{=yJzu806H5a5y54 B  A5#+5`5A4!ym$Nmm " )oA5v6mLn>9k<$i$j5 \47E),V!osqv[{|oxyU|H>mL 45,44445%: 2 5]4m|>q[ =:%t nj0g#>lq=Snz mor3}` © %uz+ .c4mr3m  ň45@5+ u"9!Q455E!Rmr\kc~|r]kd~5Bm b ,msk542 4m'44Llm8,r@vkm%2*v;;;;;;;;;;   q qq qq qqqqq q vwuxyVtZX][oeW`~fm\yY|uchznid{l_rg^xpwj}bskqvappppppppppp`1`09468375m'4n'*4m5M"47mm{oa45b~wwrww^k5y5%5lm Nm%mHm 5qm54*4m4kK##lyzUl5yk#%;( Q L  Bm+z+{n om.D#.&  {$t0t+t,t-t.t2t1t/987(m.nIG/nJH2u{2nKJ"9c z9esY9fmjxmmv{uv{55B *o46ku`0 !Em/.\m n )5)pozm5R4:i,cm sn4 m{2qmo7*~ 7_mm5/5a"+wmk"-WXmmmm8lnVoXmmoszS3}fp}Zzpr+N85556m4.ommn&( 5P5Ym5<m5/ sGn}~^m4jI'(6,6mml[!#//#& &565u4 44mnf /d5h/ 1lnb 5x5,45%ĕ5u~*p>X5{m5/ ]6 ) }*n|C5 5\"5E"0 -m2(Tm+&8`nlSD h45?5H5<54to mHimkEul}mo *j%S%4_(t  k\o<5m~zjmln43m)<,`kRjm^G^H^E^F1 mkpypsnm U A&:m tl.15|1kH4*.ƍ@*/ 75 4m1 m55Zm/$mqRm_qS" T5Bvw;:- m""O|z} H2(187 +52  1 ]x0445UM : +9 +m [j^05y6Kcm5y5} oruFjm 1}4>55%9T&}-:2&~5PÚo-s@ovv8m44:.n3k||  %54ZLA79m!2^5:1jnk4om'Xyq0mmO,:m m |VyB{^|%Q wm85,45m|{0qytuuk qp3smYuq: )m)5m%h}tp o} mlm44* 65"--gKgSgPgMgVgUgTgLgNgQgOgWgRgh T44iDeu^qpl{Vn(p}K3m86+F  l0++ #m 4NŨ9444455H  | {4565e y4.x5mkj1k31p518$_l2jqmM Um nzp z65J 9 a,Y/s mnE-62A5 pym skkooql7kmbƂ:/ql2UE2WmmT:?mv 3ƞ3nm 5a5B**mj'- -l4 vuwq|jOFRY)r@Em<?z4CoH2~$7[wN,c(si\&BxaD%8Q]}^bU;MgJkX'#{v5>1P0:-+"lqA`L_/=eTh*3d6V!S yG.uK9IWfZptnmu b'T50{[r1~}j95,m6f5,lw.r8 1 L64û5Z5645&m ` zI6mmŞ45<p*&mkmpm777 )HNk 5L44n mp>=kpPz # 2m5,45%~m}pKmn bk i km445Vj,’r8mm8jmmmmmQ&m6č?4qmKtuumm nJ'1-m5M5m4 :2m4,] +5, n n n n n DD}5u kZp  & m,n76:vpm/6e$m $mt57-Po{onmXu~um{wz5Z-"305y%4 {Ɯn2$l5,m Ds|w56i"rolo5y~)r( u:.)jvb)twpxkml~U3p$3 x"6|m4x ljJumkk _qx.F % Hyr{ 3336rmb`a4mo"26H&s$ m7U15imkv4:Dm -mem ) ĚGn!ox$ 4n}+q8tqolk*jl "xOz:mm mD |m5,5P8S*k-?-@0l  xi$mmsrl 4-m0l%%5ar|9155mm!m*a# 5.lq5lyW{isbisd5ZvUtO,o|,japg4u4mvom!^m1|=m %nutntqH7E:7)m  55r4545m\nd5 5p5] ^ 4v |}ta|~tb5y5%5lj4yr wJwlX 0<%555gm (8Fmn.k .5km5BrkC}~%'(V44 +*m5l%Fmmk2¬w mTq-q.q,q/).4m% [LĜLmDGo&&5@)m  z5<m.mƏB!'K"2ir45: 44442m2n $ m m (5 ħjzo{|m7/zlitWoL&m5F` ma5s}{Lmy m 0mzm  m45yn8@9lm88 0Ot5@~Y} Q  sDƛ6:6;tvuxv.km mm5ymm5Tkomnx#Jj m$o',mzr{p'-nTt)ÝHmImm ]k9k mk/!mA$5.|Qun{m 44N,hmkofw,5- kmm534o7m7 *}p}xy5:m4m%T54 ,}t jZs-mq.m-rr5m}lb~* mmyl|zl#V`%|m&9m 64 k5B5Z5E44(mmm8I    ihifig%(10 52&+-.*#$/",3')!4oop\pdp_pQpFp]pWpHpJpUpGpYpbp`pRpcp[pOpTpLpMpPpSpKpVpNpIpapZp^pX]s]rdfgceab   z     |      ~     {    }     `%`"`)`'`#`*`$`&`(p8p0p.p/p1p-p6p3p7p:p;p5p9p2p<p4XVYTUW     ____________________]]]]]]]]]]]]]^o^S^P^d^T^r^^^g^[^\^b^e^Z^k^]^V^Q^p^O^n^m^l^f^R^U^c^I^X^_^M^N^W^a^`^K^L^Y^h^q^j^J^iǬǧǮǭDZǪDzǨǥǫǤǯǦǩdzǰǴ;;;;;;;;;;;;;;;;;;pppppppjdikgefclbh  qqqqqqq}{|z~DFBHCEG"$%)('&#ppvpspp}pppptpwpuppzp|p{pxpp~ppppypprpppppp`G`R`U`D`J`2`<`E`?`T`F`=`7`I`L`4`H`9`B`@`V`C`;`Q`3`N`O`S`W`M`5`P`K`A`:`>`8`6@^435,Wkmv4x#qknlh5]5y #'15T&U~gpd) mpWlu5y .m!nujSmmzGr~{tm444,nYnm  m5,/d| G zzm5@4) c7_lk5X4P  x[ntkmmtklym,m44  o{mm55|4 5,0B"_5g%3m5,'55y5%5lx5jjozp7*to~ s4#75)  L5rm+mmm 8,^n#L1!5r4m4n  9m}vlx44mm$%oD9k=mq5]50&l| j>7{5{65445r `m 5a5,44mk lSemH . , - +ijikilimyz{p pp p pp pp l_____________IODKLGHJNMEFACFE?DB@]o]n]p]m]q]l55,5B&mm[h<=:*@:m,}>n"/$5(7k544441mm0&0e255.44mjnaq5y5%5l565]*i8j0<jwxU|}m5555Km k1m0 }ln 64:)k&<o_(6%k9Z5%5M#tMr(mx|tNr)m {4p6 [66\/;m  V k595*A1l5y mm :]C5"445j" mvon455`54~\mmx5,m] .o:y:z/"$0 5"44wuk}mqp}Fm5,45 52m(HlTvK54meqě w*mP~rNlmwwq}\6f8{}4 5y5%5lm"l& ~3m{5y+gm ! 0 ! ! #5# 344 1.O4!.s&k;&46m45Iq+ws)v%:+p2k kmq|K1 5um7RoC7S444:G:Hg/mm$% u 1#F/j1Hqq S 89j|mLtvkkz|hz<z=-I]]]]]]]]]]]]]]]]]]]]]]]]]]]]]    ;l;n;m;o;q;p1-0./pppppppppppXY=@E87B?AC>5F6:;49D<3"#+ *()1/-$',%04&!.2piphpfpmpjplpopnpgpkxz{rwpvt}yqu|o~s^>^;^<^=^:W Em%%!{(Q5Q5n m%%Z%452 (em6M54mH5?5m55s  sC55    F E U|m t]jpQ45Fm3ò4mm! # 73t3**t4& {,`5Z:44 I  5:4'vE p2 n8 [ 4 -44"_ a m@2rGzLxo*m :5E5ym n}(u {Nq4ml.4bc5%5Bmm%3Ln7k3NtrKim4 5 Woil!5 0n({pmk/mo!vaj ~snmvs ,7,94mm %&u~4; C%(o oz879n)15B45Tl&m 2m5a5"l65y5%5lmq,x'm, HyklH nmkFq(ƩƦƧƨƪsmB ; w ?5E4%Jy1l2zs>osqv J w5# 8  , O A5Zm:xzmo-*lb2m ;m8 1mmm/lgl0&Jmrm bm|u m556m.5-ml~4 &\2&] 6l55pŠ55%m!~  5,tmm oq{4j a*,b4, m5yB/o5P52$s|.U7H,m]km -5/ 5A3445444(–ol*t8m #Cm5r443!m 5( um 7nR'lX5 &; n655445r 6mm ) r!XsQ}~2k5445r5 m. 5,4o4}o[n$ehhhhht3t4t6t5t2t1lnompnnnnnn7465gggggggggggggggggggggggg6m<,r knyn#k54\vn|s44'4 5mGB 5, f5Z~m4#ntenBnp  -i4m9q h45oQ \m###G# mk$Yooo+|/!k4xOjm #8#9&3 6 D|ir "rCrGrKrHrFrErIrDrJ{{{{{{{{l_]b`ke\cqfian^pmdgorjh```````````````````````````````======'*(,%+)&rR[XWTYNSOQPZVUMeeeeeeeeeee|(|%|&|'|"|#|$|!ddddddddddddddddddE=D@BG?AF>Ci i'i"i#i$i%i!i(i&i)>>850973<;>=2:1B46A@?s.s/VTWXU>=@A?Bg~gg|ggg{gggzg}.- D( 5R4.!2jm$5Z4WnI45()cm5*m jRmvkwmxj$& $ 4  k5 47s5u7ts&zzv' !,gl""m5Y"mm$/tkm >nQmnmk4}Smtm455,45B4-c %%lYobn^%Ul4W ( v 4. .u0mt15,5 ioM{F&ˆM445Z4  556m44mmy9bs}C/4lnjvy;,k ? !4&4~}*s @ v  )"lkt5 4:;! - $l<''5N1# 7aj q%nn?*^ |:_kmk" 2mscq|jml 8I mi5i o?0 60 ,5(Z5rd+0+3x6m +m! ,l|-Ɠmm_ssvulm"0Km`3y55`5+3z5Bmm. xT )#|"c{Rm:3 4ko)Am;CTqf. ox56;;;;;;;;;;;;;;;)]ksymjkt#}n854NQ*8,%55$5 5-m 5J :}`qpytZtxm*Tm-5%5|m--/Q3F*+LmmoYnw5Zl F#mm44$P-56m{"l$lc5lg2uT  44 045j5,5 l#pm 545B45<42bm; u m44c& $m2459;;;;; qqqqqqqqq `a`e`]`g`\`_`d`c`b```^`h`fGABEDFHCqqq^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^.TzkkVU!1$VwWx&m'A  -m)t!ô,/5/ŎsZ xsn/ 2e5 45,z1$btn<5TnO,5/5a" T%Y:(95y]oB ^: B k k@4448m8mkjP4 ml j4 ] Qno'nn.j9 jm }u~pyvyy}zio3Ok,jmm60WsX45ej`K{#š#m 145mUmX5rmm$dr'kV~kW~op~<5H { h45o Õ mvm  !43!$#%2HX  4y W5Bt5,}VvsFpxztm*mm v67"`k$yk&yl :kmlIy4n=1T/lCm5y5]ul~5rxn?z:"sz35,m%Kï(  = _#n4_l*lm $-0H#-#P  3233( r¿5|l kt~!~zlmwu8m mg5(m pm65B5<m4uzv7umomm$?4kBp~m~m5,)m))smk}qJl/l{5{/_)$S.o)5km( #6  47 !oy4454k%%m28s|9Qm4t 54   mzrLp il:nm5y25 4Nm w5N5/V5,m#*`8k5#55y )n0Rm\u+8°nuotu`-55Lj56.T |1j?8|{l13f[ n65Y"(/7I-1( 5S(`F669{m!ilKCmzrtu45/mm5,+/ej5%5|14$))78,`mō5 5E5 m Lysyi|r Ik>l&kzon1k{ql;k|5,  k/V'"/Wm5/=vmv"dn415ym J +qmyw=lP5'44554mx.}_ n}b~Hm4vdm DOsvrqtupXUWYSVT5./103426m}wm{i,55e45?nW"omnxo5 y : Sm.rDrErCrB````````Y`X6 } @+i m#5Z3kM4 4 [4oo_3Y 5+ G$mmmwBpsx .mmm3d2nHtmMm 45/t7mjm<mnp p~@,Xk:MmGpk yc5mm'yjjtym +2:omkki4m2lR)$ 5} ,j')qm5a~As d & 5aj4m5""m2X(lmS  _ > 5Z30U0{no{3yt}u}uy<O}#wqlp t}u5BS.55. l(5%&ls sapp {qw~MpXoqsi9K,%m5#5rj|2m4{mm&Dm%925|x m_$dm$ m5 56445~sA|uqKv|'y4 *E [256m m-n! m(64fmnnntoGl`i}m m oh%m5l(Fz(8M .-  o"9Q%5,4re+4X # y qBu(kj}5r Z0043}3~5gq }s7 Em=mO. <v$vrtomGL{5 5%5M5Ml#~sWlë5y5_mmY>xkh  $4mm ÿ#5am|w///ym mLl|}ufl0q>m*9m`}stBbm:$]nQlV]pgojcTXhm^YUi\PaWNf_eZkSb[`dROP4/5lo 2U;FA5"}Gr%mkW +*44:~$w5o4~}5,5 4leo6,mm mj[45hm&^ U4Im)6=mmxm?mA1s:>m$#5"4.5y4/m96779NmmO!n&ol4 1u~umm{m| C .wuu~l)7 vsov2Pm4$ 2R$3q~t"mm5Bsmmm5C/xly9*ojn9!kp|45?5H5.v  %Z%[%\4x| 55!w*ll5642z8,kl0kj}ssSimz}65 5E64+z@g5 \ f  {5Olm 645Y1Jnnl)<69 \ wm o )ij7L48 xx$Hz"s)p45Qk5Q " tljj0ylzrP v!/f/gm n r55a5y m4)D yk:*3 mj5l Vj5, Cnn:mkSm'kTm55+'m*owwo 0J"a}23h5m Om8 45-jvw K Hm m¥5,4.a  x<mqllmlz  52m;lvpu jE2167039-458/.FGECHD{{{{vuwtsi:i;i4i3i6i5i-i7i,i?i2i9i.i+i*i<i1i0i8i>i/i=bbb ``````````==9;:87rrrrrr\]eeeeeeefefeeffefffeefeeeeerRrSrNrOrLrMrQrPdb1<z9u{4&m) W o95,5E4ipioiqiny|!e/L5Lp45 4/>77{qVsk56 H wmmm/`Uyy/a)k2#lD565( n55y5%5l+7 mmjvRt 6B44 Qmm55]2%wmk 4tG U44im#6l)ka(o%%&kb5| m254 { 5#*!b#+X& "&ab6( L+5.U` $4 m{oqx{p.|3m&6m5]6m5r4m{?/(/*u4g115mnn%8p5ln7kmv]nvn %z"jj1`4 Jmo~m5#4m7:~h454 "' 2'q8h 55+ 0 m_opmm 5eglzmu}4 U viw%m.4+0 gm5Z566p 6rnClmy[t{me5B0 m 55B5%lu45&>5M5EGst U@7^m5 #7*1lm4mmn7<m)~7=o ,EmmpKmmse|P5YspsoZY[\ggggggggggw67513/84029grgoghgsgqgvgagjgigxgugwgygtgegbgfgmgngdglg`gpgcgkgg{vzuy~x|}wtsrjqjrmQmm D|5-:Pm (5a L5Z5]8?qav }pqQzju?xn>nt|oqbvn@nt~*r <  --  m5}zE}zFlh0Yx0o>~S}=(S4~xxrXmmlz  uW )m5565( Snn< 5A5Ylkk6Sk Q m7+B5y5%5lus9.444oKnsz~4m #6bnn$n, r5Z4  !,)J,4IkV445/j1Y·"5)555m5$m !   !!m+m4q8q3qHq9qCq:q<qEq1qDq4q2qIqFq;q0q>q@qAq=q6q7qBq5q?qGbd[]_g\`chf^ZeaTU_Sadc\ebZ^WX[]V`Y7E@D?>=<FG;A9:BC8sssssssssssssssss'! %$&"#rrr!rrrrr"rrrrrrrr ````````````````qnsxzpwm{ovtylru   =s     `3`5`=`8`@`9`;`>`<`7`?`4`A`2`6`:r5r:r9r7r6r;r8r3r4_dopfmegqciklhjn======= =====!====qqqqqqqqqqqqqqqq! ````````````````````````````````rpDkxq9m 5,2yqM5qm"5mAO+o. z!~vOm5rj5 LlfoF55,5Bm9ż+5"524 5 5E5 4-ijf5/4mm <j pmm&kJWm\mlo] Gkx#n(Aj41z#  k 4<&y zlm)5 >ImOmP1J unmnnJDm]!m5e5a5,4n"$2\n&45'mmtx97 Vk7 xmy%"vn,'j"w2v,F)%Onk%[z\ }8rw | 5eŜm0|.36 ()m55ymh &Ougnpo r.)6$6&4+ ;4 mm5 T#l/ Und 4K > m +mŦ!9nix&51nm~}oj]p mn3.'x~) FÌnloP5Nljŵ9U5[mym z W $zl}rl7mm/:mn,{y  5,4m'qtQm-5 5m4n mmlmm5m8j"{j4tyoskyDiw|eqj#m%&Gqix}&'m55m@( Dm3 zx. 34kgy+tv45|4ln!Zn62-:58j4l-Q  w Lpm55,msn449/,7D!t k5/Y 4  54mm-znwCp ' o5mm5E5T,v6B":k2122Gl4-o: 4n-,n0lkzJk.m====5;5dx{lq' n yt8G#8l#8j{wZ4mIC9@=Xk%}45 _ :Z5%  n mmm x5 xltktltgtithtjtf h i gisiritp"p p!m mm m ___QPMQOPN]]]]]]]]] : ole&pm5L (= (snnVou.b!9  %bj5B44!p4~mi))5ymmmfyg mm m45444p5-kym5?5rm/O}vnk $kN 2 ,#'nnn.oqn4oM z40a"25mwn445l4m"l'm54i n.l4e D^y^~^{^}^^z^| #xm L+^5u59 Ii# m04mm \6z.5<9Q9Rx|54m#mhm96*x3~l  T.m6}E ,; n:al/m4mj_1&mU ;;;`r`n`z`w`j`o`|`x`l`i`p`y`k`{`q`m`t`u`s`vLJIK^^^215/4306     ` :>5w ,M m emD9$ppppppppppppppppppppppppppppaǜǢǔǟǡǣǙǛǝǘǠǕǖǓǞǗǚ^^^^^^^^^^?=@A>~}J5?'7lm5+45  m" ~un}3m2 '5smm \ O h!: m44=5tn(n-=0iULwi mm%3o`G44lmrg-+8 ?  +9pmmm0 |m3(~mrs E9-9/g.% 45 Pdjz#& tpLmUtpM  +iDm fG.mu|*45B45<ml)a4455|mm6BAQMNRL<T>GI;FSJUE?HP=D:CO@Kmm$5 5Em-m  t *=5:1/ 4uo2n_k1}mmH'm8( 5,45;;m55wm" m5annDn-o2nl zm+m m*6 4s3k6@6mno%-5BD-jD~m'#~~~nxip R w), p# `n..j5Qg D4r~m_=[=Y=Z=\=`=_=^=]`f`e`m`c`g`h`l`j`b`d`i`krr r rr rrrrrrr rrrrr rr5`4 mW! $07!4ú, z cm C5akymm$n15U?mk dN % ]/l$ 3lMio2 (# r4451ixu4m oxJwCm  BmI3D f Vr4km4+m Ejy 5 5T nFm 2 )65MrBz{elm+4m>55}rdrcrarerb1f#m~l Ãj8okmŮ)5e.3+~%4Vj!5%5<m E$k45Pxto , 1 n5k4|$|l7:Jm42n#bm"e/k&a%;'j 5B{mY L5jSv!wm|y$ul)90iI%u%Po5ma V 88 _#Smmm5m5v5M5E645,6 C5W4 m#k5y#m#n t 0f5445 454q5 {U D1\1]?5?5944mo%no?mov,+jm2&j})m 2)'541I44mE445B4|BmRp m5y4n5'k5a5y2>55 lq mekwm  S0@m'cA&zw}~x{y|`PXWTYRZ[QUVOSrB(*&-%/,').$+={{{{{{{{{ <% *3~'U"wiz`}@k$C1   1)!&=#,:/WHc?pP4:>@)u;vVdGg!KRF>0Ne-]5.IBK&ArM+F9HJ8S J3| tB7EyDGhn* ;{Z(l- /f_Y=[x768qbOIE56 C ^Qs#(2L'+jaLAX"Do.T?0%2\<$9 ,4m|~} x y{  z rqs]RP\O;Y6^W ~U/ik<XV>WzE`}nQy5R%pDwB0Nc(Uh =b"ZGL$uZM_4CXJ'TYo&a:I?{ t|),d[\f!+HTxK#S3j.8S2F*[@Agm vQ l7V-e9 1<<<:<8<<&<rwsOrrrsrrrr}rrryrsQsrrsrsssrrrrrsWs_rsUrisssLrosKrrsorrsNrrrZsZrrrrr`ss srrqrss-r^ss`rs4rXrrQssrrrLrrrms<s;ses=rcsrTsrvrssssrsrrshsrrs^srsrss[ssarPsrsmrgsxsXss}rssrs,s0r\rsrstrrrrsisrrrSssSrsrsswrssrasTs3rssErsqsrsskszs7rNrsrsBsnsyrrrssusgrs#ssrr_s s*srsrnrsrhrrzrsrfs\H2E!<?P"3KO/V0)+$C-Q@^%F(8#W;BNS>5'A,R*TD \YI]4G9=:XL.&JMZU1[67qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqwvxe?.!D[wRgz5 s%Ll_yoV r`,t+ N@X8cH3|79&~jkMY>]"CJ=FZS*$fE(v{x2K}B-q i:1n^ b'4pPa)\UO6QmdWGuA</0;TIh# 5Z55Fonnw_m#0zF:œ54nr4m b\1 qqq35r5 Z ot u ^(mmAmk5%14!Dmi !Fm5 gÔ &m5 3Ro.l:) 4'455m/@~mk(C"o/B |ukA5lq4 {m :m4")"*5 S5845}5m&w5 zrzq";k Q0#445hm5a5 545G  V ,kq+W8gxn|yvosqwt}pz~ur{gggggggggggg|ggggggggggg~g{gggggggg}ggggzsmsAsGsjs=sKsCsSsfs<sbs\sPsXsisNsas>sFsesgs;sLsJsMsHs@sVsIsdsnsUslsBsYsDsRs?shsTs`sOscsksZsWs^s]sQs_sEs[jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj=>D`D_ ( Xm5yWj(zlwm45f+Q5 $IJ+l8i/[000+Fzokx~_36J3~ym5y5eoytx44ytxj]# Lm4l!|Y,m $$545a54)55b mh[nU'l>m,7ll@t45545/:t { K5Z042m nm'5kok Ę uim ' ( )m1;2k/Qv~Wuv8x mzQ5Z'Z"354?7F/'%3msm6f+bm9;k.'4m3~Rm)Yl_smGso^mm,,!5  #&44 XY)r,= a!kenP.$4kI,mtS a  4-  m45m a&m52m5kkgm5m5 zy_}6BmLG(*  mđ4j0UljmE](c  L--xDvom5l$vom6 {A&|on~.p/m  m Hm.F 5 &k5y{o5~mm 9!4 pWa.kkmj  A m5a5lm5r5%7-$:&0::cm8kl 1/'q5 ib8ulT}75 e m/3g<;2Mr, T r-juvr'%&($!" )#DMDQDXDKDPDJDODWDNDUDVDLDGDEDZDRDTDIDYDSDFDHj`SZD\FOGMX?C;=L:B@RIE>QVA[K]_H<YJTNPW^Ut7tFtDtBt;tEt=t?t@t<t9t:tAt8t>tC   Lm8*mmmm U""2}DmR6(.5T7-54ry{  Dm O*E5|55Bj#p#m)-gÎ5m59, }4L7B4BkEm4 m,44m_ E4mm5!4 H45w5K>w %k525m5J kV54rvw | m !*[m:45Wmm sK5rnm 5# (440n&n#almkŗ++5Y42T+imown};;;IL 1Mml.qnm/'+#*-%. ,)!$&("``````````^7^8^9qqqqqqqq;;;;;   !#$ ";;;;;``][ZUX_YV\^Wqpppppppppppp^^^^__^^_^_^_^^__FGDE<<;;<<;;<;;;<;<;;q[qVq]q\qYqWqMqZqQqSqTqPq_q`qUq^qRqXqNqOfikchl`dbjea_gfgijekhdcab87tuvsm 4h-X4 o4 mmsrk(s56m$Q  4544365 Lemm5yk?U5%mrv6|-5)G)5a5lm5,, /"O  5o5 x+"1tMKSu0N"f43 f4  :to;o^n' | }mmu,zwmlp&to|Fr.emaj ynlnl ~Sa +(r5+u>+xllolwjFs ss0)21+3-./,(*ggg ggggggg g gggggg g(%&')*g[gXg\gZgYijj\j[jZjYj]j^j_*./+,-D\D[tItGtJtHdae`ifkjbhcg>======>=> >====> > >===>==>=>> >===>> =>==>===>==ggghhhhhhhhhhhhhhhsrvtu |1Bm3mgtQYXVTSUWRrr rrrr r r rdceba__ ____ __ __ ___ _q+q)q(q*q'MLNK<`sturnmopqqqqqqqqqqw.,-;;rGrFrKrIrJrHOMIJNLKP,p m5k/Qp"%m*l hn70l)mk5]5Dm Cm5B<lzunmrt mnnr0/mj"F5nn\o}aqmt** zm"9{N55e452 Z44###m <Xrpp=Qkrri‰(5u53x#3o& mmz :44 d&3mo U5l |.Z f9134455p|pmcCmf vm$ m4 7qm~nX~ov,d44||2;6[Q0mm;Cam. >5ZOmwl‹m".l+zW5T55]5'57ũmmyWszv t)w{Xykjp;wfztom-^" 5 %6(rT(5l8nm5 LS ek%%% k`m9Bn9D U5x45N0qqqqq~|yz}{4 w3^pirRpfm/m6)d/ysy864^J# n",j%n,j5m ,I5,4$1m45B5/"4547]44mtc:Ym  1nc-l/mmEAqz2sĉt5a5ijzKjnTzMn  2m%rwoYg$55u5lMm k{uyz}CyLpm )k-mm&00Om~$*%5ll. Ejm45pUw/%9loWm )=)>)?n sp{tn[yxG}<wFwvImX7 m5m14_tRsgpZ&skp\} !m)Z \Sm\,14r*2*3Plyt:( m-Z9//545emm5EV- ::/jmp} lOm25m%wP0ef56,k J5Bmmm g Wm4%m4l4"[\m4#|&u~kz-p&o3g!zhs"5mk49!5a+.m sjm5F4 7mm{&& mÞ9 jmy5BwAnqq q*+556n q U5,m,55#/lK$S5+ |784"{ 4 "|4rV|m) (bZYX]\^[ n mi~p(p%p&p)p'p$ %9A463@= 7!>) .2 5' #/ :0+$,C?&-8<(1B*";______]]]~8-5 *mlDo)3=m65 46u m0 #rijympmj&V5%Gbq5:5J+<.5y5m#  K 4&cEkl9m+vmz5yxk wpspr|{$b wK{/o\y~49mRpÐmlk2~kjmkk45Em9/vkKm~r|m45/nMm'9+l N 7 5a5Be5 5ov'555(45*:0\m {C}5"',G)*js.j)565k8w m_5l{vyz }}5 B5m"ul+55&.v &Fr kh+mzsuu^őm.kxmR1O  <8i(3)028fl}m 1~  9-kmk)m5y 4(  4,s_}1Xiro3r{s`Y,"<?m4%-smn5pl:n2q‚5m^|**nn3Illmut4m4 -in MiLzin Nimi]QinAm45,o(o5Xm(l(;”l 8#xj#?\#Blx $ msr4m64+9v62og+n8kxk !? 5B v m5<izlom65%45Emh/95#jm4l?1&mm45Bl)55(m "!mmpwkm""22|lB'kPnx ```````}``~NMTOQRSP[ScUoTpezvsjwZg_b`xrlVRykmtqWu\^hndfiY]aX^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^CAB;=:87?<9@>]]]]]qJqLqKqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq;];P;S;b;^;[;Q;a;W;f;\;U;k;d;j;_;R;Y;g;`;e;i;X;V;T;O;h;c;Z;;;)(r:r=r%r0r'r-r1r&r+r2r.r7r#r)r?r<r5r;r*r8r9rAr,r(r6r>r@r3r$r4r/````````````````|}~`L`Q`I`F`K`O`N`P`D`E`M`C`J`H`G`Bwrz~uy}sxvt{|ɀɁ=)=#=/=%=.=*=,=&=0=(=$="=-=1='=+gedmkfnlja`cbiohqqqqqflqckLSh\JT_pgtIrKWVeNZPHmQfRUbuvYis[O`^daMn]jXo'!&$ )+"%,*#(pppvpkpsppppmpfplprppppzpnpipppupyppppp|pp~ppp}pppppwpphpppppppjppppppppppptpgppeppppppppqpppp{ppppxpoCAFOTMUG=S;8BQ>D@I9KW<PLNJ?EVRH:,-sstttttsssssssttssstt tst sst&st tttst"ttt$ttsssst st tttsssssstssst%tsstst#sssstttst sssst!stt#$'."(&+*-,%!)/     "#%$`````````` =vp\pOp^pcp[pVpepMpRpTpKpbp]pLp`pSp_pUpNpZpXpWpQpYpapPpdpJrnljqpoikmr>r?  $!" #fdc_g^j\bil`h]eak" !#`` ``_``_`` ____` _` `` ````______`_`_``__{{{{{{^4^2^^5^(^ ^1^^/^!^&^6^+^3^.^*^^#^,^0^'^$^^-^%^^)^"^;;;;;;;;;;;;;;;;;;;;75EV•ma%444q455]j4Df56msi4] L5r pmmz45|4n~s?|u m+hm|i.muxlylm_5U5:5 V:C$mmj44l)5Bmm&h )u?m44q#L{mGcNkrAvL5h5H5+5 }1Z4,+B.;]&ts mmnfgBm  $mts*l:l"/,rk 44m'5C nnb4[l $m4wqi:mmJx$v}t  ~ #ysz w|  "{u!. mkwj/ t,{p'0|q2r 7l+x64(i"z 1~8guh*5se!o} -d3 #%v$cyfn)&g/g.g-ij2ijJiijEjTijBijijQjRiij&iijij3ijij#iiiijjIjjjijCjijLj0iiiij(ijjj5jDj jiiiiiiiiij<ijjMiiiiiijjiij*iiiiiij iiij!iij9ijPjGijSiij>ijiijUjjHjiiijj'iiijiiiiiiiiijiiiiiiiiiiiiiiiij%iij j;jj1j?jj,jKj7iij)iiiij+iiij-j"iiijNijOj:j@j/ijFijijj4ij8ij.jiiiiiij6ijAij=iij$j jij iiiiij ji(v}xwz.* ,~!%-#  +'u{ )"y|  &$"#%' $&!dn|xvktpqzlwyi}jfgsh{ruem~oggggggJEdxzS8^hlak_<c\rnW ZupjL|}P[BNKtGA mCwXRI:]of yF;U7Mb{q~gH s? Q=DO9e@Yi>Vv`TeMG28lYgw?m9J'x0>fq6=orFzVL+4-ya Wb}v!Ni@IP 3C\7d<&S# |{)B%1~H./RU cZAnTp(E"O*tsu j$][`:XQ,_Kkh; ^D5t!t#sstsssssss~t ssst t,sssssstssswt$tst+sstsssst&ssst)ssssssss}ttsssstt sssssssssssssytststtsssst(s{sssssstssstsstssssst szstsst sssstssst%sststssssussst'svssssssts|tttsststsst*tsssxssst st"ssssssssssstssssstsssDD$D+CCCiCD3CDCCzCCCD*C}CCCCCDCCDDCCCCCCCpCCCCCCCD6D4D?D D2CCD CCCDD<DCqCCkCCCDCCCCD8CDCCD CyC{CD!ClCCDCD DCD9CD#CD:CDCCCCD)CsCCCC|D5CCDCChDCCCCCD(CCCCD&DD CCCD1CvCCDCCjCxCCCCCCCCCD"CCCCuDCnCD,D/CCCDCCDCDCCCD=CCCD0CCCrCDCCD'D;CCD.DCD7CCCCCmCCCC~CDCtDD-D%CCCDCCCCCCD CDDCwCD>Co+XhcR/5.^W)(A*x1}L[o{N6 wsn\p#"9$ufbaT ;V4_ 27rg?H0KPdyE< t ,]lG`~-i'CO>J!qD&@IYF:MS|emjQ3=z%8U BvkZ2 6m SmRcmll4krm(l(+X} Jdl'm0k63n+Uk7P9E9G9H,5 p|jk# D 45mw)e,8 / 4nE50+5 51nq5l::55z!e5B5rm5/5+Wm*[455]\45u{wL59m"m%KUm5#5b 0hm+i"n(l"n"4x$iw{% 5T4rb5k+-4oAx{8 r45/043wmjvm,*,ymm&x m5/ { cmP8 QmP{.vK.445x5A5 4455V515j5444y455 m i152m4i 'O6 'P 55lŽj4$!/pm5/n5,O2q5'g575 t_j}pw'&w(mY/4((( { r3r!trr">mzHu#m5Z5Tm "o m5y+Tm5)4jwD#m5-4 qNm3W5,m     jkmM45C m444l L4+m36 u+m  +iU...9y$t{noIn5/l o,&#1l)5495445rm9m BO!]!ms$wsqm455moZkmm*;, nnr? "/%@:Ytu|44q5 5l' h555p|5y5E3~Po0}ootWm*-wz_+m(yxirm  u  w5Zmld6 H. 3#oRnnj #va a+a!aaa0a&aa)a.a$a-a1a'aa"a/a,a#a%a(a*cm.onml5mkvmx !q'5u4Wvk~5  mm 4 ~&w2oyx7s;ommk5jt42-ke~m6'q#t2si{xv{xv5yZjm 2C2E2FmUmt6m7 545e-fm  |I}4U%65s! m5m45]44uz5r0^D35]4Œ¡m =  m( {m 5s ~&06564mqCr ~m#_x!K$(m56 mm nmMvP/H5 2$:$;  "{xYp&&oInFm=44 em? D)TMkw#uypo55}2q5 56*A5(-_4:vwh]m~k0'">zzk^ 5< em*w-m-um +mr};8 m4m %ttlw|{{4m45G44m_4m6oo<oo=]md_!* mmm$&3ym~vm)4C],Kc UtmjŶ.!Bm)7cĄ m )8 qsq{o8mnnmBnU5t*z*m4:|-9-:m5<mmGEFCD||{|{{{d(d%d'd&ac=ss s s g m'm uĝ  mnX-S f-W -m (x0"m:1np k 1 b &5m o 55mt6.  Fm o]5544 (6j5B44(5..5h{ama5,opaopcoZ$2kqkrb54cm5Fkm %rrrrrrrrm)w)y7;,?m:5c5M45v1p15/5{*Rw.4451(kw@m45Ems~~=jk$  m$44P%m$,><>:>7>/>B>A>'>1>=>@>0>,>3>9>5>&>$>)>2>8>.>;>*>D>6>C>>>%>4>E>(>#>+>?>-9nk67k ur_twiw[mmm{"Jm%24H}ZioQmHmuV8Vi@Ŕm   ````````````````````````````````=====rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrohg% (j+?4tiij5a5y5.Imm0{Em45  B 4 ) 5d `C 1 J Q `mm,":%9,$krm[5 r$1'\momq3N:nj+k,:nml^ CU)I#N- u%`_j;]O0eLvo=cH8PpR" 1b6(,yt!.\i$7x'f+594kKDn~ *Q{?rVZ@23g&[ wJTdYBa qAzMXS/:EG|hs}>FW<mMyIE+tF{a VK=eu41& (n.}H>Z!:OkwpJ,xC0T@ G) %S<mDbqA\zh"Y[]P 'lr`vLBdi_*gso#R6/8N-|fQ3$5 7XjcU;?9~^W2ghrghhohghkghEhh}hgghKhgh)ghXgh;ghHhhgghDhqh@h:h*ghmh<ghuhVggh ghLghBh4h[hnh/h.h$gggggh h&ghfhh,hwggghgh h>h5gh?ghZghhhhMh2ghghghSgghAgghNgh\hlggghggghbghyh~ghxh"h6ghh|ghehtghhhdhgh=ghghhgggh'hh gghh#ghJggh3hch9hWhhh7hQhsh_gh hOhggghPgghhRhGggh hzh%h{hahihUghphhCgh8hYgh`ghTh(gghhggh^ghjhhgh!ghIh0h-gh1ggggghFh+hhvh]ggm:m;m\mcmmmzmmlmmKmmmmmmbmmm2mmmmRm-mmWm4mmmmmmmmmmm.mmmmommmxmAmkmmmXm'mmm6mumUmmm}mmmmDmmmmmqmmPmmm>mmmmYm~m$mm9m0mCm<mmrm)m[mmsmm=mm1mmmammmmmmnmmmTmmymHmmmmmm`mmmmm^mQm?mmmmjmmmmLmm|mmm&mmm*mmm3m"mZmmmmmFmmmdmhmmmmGmmm7mm8m%m+mmvm/mmmimnmm#mSmmm_mtmmmgmJm!mpm,mm(mmmmmmmmImmVmfm]mmmm5m mmmmmm@mmMmOmmmwmmmEmNmemBm{mmmv!k  m5, -m:-Ap}mB(/45dxm405+ pm 5[m6/mm4H0mmmmVoc r>}Jv9.mm1t4~4b)&w/z5  K44k...BR14n~6qmfk/y/s-{|5,4(415&*,/n]2r!5+5 !m59mm B <8 k5 |" l vnnnt5xnmkoZo U585-2qwjE 4zJm .l6mm0k  .é#m~41lX|  j u D %o4o<oVoemm5B{kGm~'Ç)CÈl#:9,8v, 5 $ 5a5y545E5,4w pm b_ Q"T}/57Dk50O*5Bp #wzwwttrmszAB—{)}~zk-lr4m*u-$5nl 0oms5o %o&+l38+ >,.mk colmm&>}( mmuky8kK$1 k?3mj4m 65B,u99y/U@| ru~7ymm 4) Gmeeeeeeee{{{{{{}z|~d dd"ddd!ddd552 S 444=m m5447}QgmR5mTqgz q ns:l 6%#f ffd`iDiFiCiAiEiB546kR5u5 59 88  `i_i]i`i\icibi^iaz45"5#]ol>%Z[`^_]\pppppppppppp(kc+5 54n(l v@lrX+JQ&0',+.(-)%/*{{{{a^d#d$+m Vj1 e[1t8O5 x7!71# :Wnm  54 ) rmF_pzz0v,Ymm544k,!M1vDw{m5Tm4uSloJ4,h/,i2m;$ 1+4>0=',<7"2:/9!86*(%.#)-;3&5q&qqqqqqqqqqqqrqqqqqqqqqrrqrqqqqqqqqqqrqqqqqqq7*m c*m4v&|wsm7;?>A<@=:``````````=========rurprrrvrxrtrsrqrwh5 5n#l mno{'ulWmk6ln45?mk 2'4Om= +7m"2% 5u`yul8m4m# %ltl|%o  U 26wv 9L 5a !5.9{# 5445|~riG)h)jk5x@y?rwjvv5=im/  $o$44t|24^ mm 555B 45W5"1  m25% 5  _17h2ti:b ^  m5y m/n!wkmjlQm$25 56mq8Jl*{k8L  we8 2%mr5a5,44  mx=mmpon3(z 7mm5+j*.yt-q\{s4S ~t{,!iipE}~?4&kipFz}D}~BS*)Cm5, ijqxwjR?O X Mmk%|(45,4lkpjpemnsr j5x4)_mkp5q5m|95 1|Xp{~ q@'*:45RċC/w`w,m  }/4m"5rm 8&-;;milQ44mm(:m3xu:m4xu;*14: 8xrzx im~3ZoSńW525Hla45/@`m## mm~(545Am4n*s&nv)+.J . K5,m|4C|5,&e5R4, `5ZvBk w?5B5<:,kWmW~kZh441'5x'F5P57mn/n !;;;;w;~;v;u;x;y;t;s;r;|;{;};z{lsn~o|pqyr}tmwvzxupppppp`_;; ; qsvutrp2p-p3p,p.p1p0p/qn{wyopvtxzrus q r o p s]^]]^ ^ ^^ ]^^^]]^^ ^^]^]]]^]]]^]]^ ____________:<8;9Ǿǽǿ     pAp@HIKJEMONLFPDG2f2gm2i5mlq75/'_<mƃ5 44m muhlGyms|44m(=<5?r lvnCu*5yzlFy|o+3?#%m mmr-oHu.xZnvw k4455~a{j05P#|m555m) 63HF`___`$`` __``!__=____e_'_U_q_!_L_|_^_`_H`____K__` _M_7__`_`"__d_r_T__u` _0__"_X__`__S`%__``___\__s`_l`__<`.`(_`0______5`'__~_Z_9__`+` _`-___`________`/_F___a_`_W_A__________O_E`*_`)___+__`,___v______z_8__I____i`_x_;__`_t__n_h_J___j___``_#`_}`_p_]___V_R_C______%_D____P___`_`_ _m____)__2___6__?_Y_``_w_`__._____&____o_`1__N__f_1_` _Q_{_`__b`&__,___>_(_4`_k__-`#_*_3____G_/_$_`_:_B__y_`_[__g___c_____@__` <ȵ &^ȶȢWVpȽ2_ț(Ȍ?ȼs1Ui$-fk;ȧ|vQ~B"ȠuOȤTQyo{CZ3>E!7}ȱZ%Tȿȫ, KȂȈȁȸȰxw6ȕ z=ȄJPȣRȳX4dȦȉOhȴ:Dmlȍn[ ȾȻȭ\Yb)VȏȯFȇȹ`A\ȅWȊ+ȓȝȃ]ȡ8ȩ#ceGXș *Ȑ^I_ȷȜN]ȺȀg[t@ȗP0ȨȒȟjMȘrȔȞL9'ȲȚȎUaȥȬ5SbHȪȆ`.YRSȑ/qȋȮa Ȗ```ifjkhg4t[ykx={mp&iw   5,45%4!{lfxm21w1xm),,3kO!5,455Wm| Qoo5?m856mmm5,4 r/5/5a5,400qlJ%8y}}sqnmkH{oyq4' stG-myoon5y Jm40cm l`r f fy mn/*l`z5y o_&3m )6T+ w =  @5i qU80}"(++-jjH5f3 j#fm4m654 jWk.x!fn:!g5%5<5 1W'4m5  $665U " !mk45 qv2"5,# (ixoj:z|)595P F)mm|*</m k#q45m7Iwjvctm:  oqkU5<tpRPw-5~Cm0T3 4]4m {4 1u7uYkoj!dMNabbbbab aaabb ab ababb aaaabaaaba``=t=u{{r<r= ====rrrrrrrrrr1 #X Ńm4[&%5?5[r65a5,4 e554+}m455o4+ p ?.p${fy{{ "T=ijl3l6nIu))9/=ppppppppppppppp1 >4mmmm7k: Tk51$k qn|47m5e!l.rk3m5k445/m - ~ Gm-n5*5445@5,45T"%m(  t kg!j5"5P4{sp ) 6mmtn03m  mgVlmn  .L4# S#$1mmK5t`l2s){)}4y9pmmms$jj l4/m s 5=mu5+kUn!m$6~ll*#ly 5%m-+%4````````T`W`V`R`U`SɂɄɃɅ=4=5=3=2,4-*+0/21.3rqpsqqqq5,zCm0m5M{$$yxH}?'kM5Z5tmow8[ 0mq~3z`mM2o?ok-5,5 4%(mk[m $+C <& >m ".05Mx440l%l m pM$r91P556 j n+]k;|g !.#044mw)V4 {k55J55 q4Xm8%nrn_j.,l95,)l59&)n5r =:"v}m!556m5m 55B5j4 m loqOk :< k! ! 2noD'5B *e 44  T~jF|qwPk 45elj L % 5TmVxx}~rM4(I5q5rmoq>vyiuKk8N mY#rmi041;3a3b%a(]5b(_ ,mmkj -m5m6\9+m, B!mSym{mj5Z56mo 5u|45r P&5 pH4X4mm%7{y}%, D`AF}Hn#2m5  m6mit.km5l!! #x:N|x;P|m85[xmmm::mz m$%5 m(+)mnhm4$w lS k Q44"mm%m66 6#6%88m5f5vRpnmp05A5km@w\rv}( QxO&_846>^95,4 nxBC44a5M5/Pl   v+ mU=5 !mmm '2m5Bl  lY~ '57 +{t  %)yupS|G{k'cm q^?^A^@;;|~{}]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]2VOx8^@0C}FMu'(Y!f=rmws5iW.tKnS?#L\/)P-;{E7B*U<,9A~vJ>4%DH|[ &NhTcjQ`oeG]1$y"_6aZz+3pIqgkbl:XRdppovruz|mqn}w{~pystlx\Z[mLJIKHMG6579n f *5,5 4R(9 m`2j5 53(K *Y m&|rtKxwuow4q.pŸƉaaa`a_ab("55  oj5| #^l#_mzBu!tom:s$&CdewXq|r48tum.nWu mmmmo5c  m9m5 m?mm^l,4/h !$f m235'$5R455\5'm74) _ L, mk55B9"L2Kr0m$>}5<t yjnggggggggggggggggggggggggggggggggggj{jujzjtjvj|jsjwjxjyCHLPD@JE?NGIMFOBAKDhD~DqDxDnDoDtDvDmDyDpDjDfD}DeD|D{DzDwDgDiDuDDlDrDcDdDkDs     ===     tPtMt\tStUtTtQt]tWtZt_t^tRtXtctYtKtOtLtNtVtatbt[t`fhfTfffjffWff>fQffffffOffufff_f#ffff(ffxfff4ffffffffffyf+fpf'ffffffMffflfoffffcfkffifff%fSffKfnffvff5ffff/ffftfff-fff]fAf9ffCffffffVfffsfZfff<f3ff@fff fffffffffBfbffffmf^fffffGfIffFfffaf;ff:fffPfff=fffHffffffYffdfff{f,ff[fJff.ffffzfeff|ffff1f0fLf2ff!ff)fgff~ffffffffffffNffXff\fff&fDf"f}ff?f7ffqfRf$fff8fwfff`fffrffffff*ffffffffffEfUf6srrrsrsrrssrrrrsrrrrrrsrrrrrrrrrrdddddddddddddddddddddddd}->DjUam4CH/[J8QLvF!(PZH^B`Z\sz)XyO ^ElR' ,GMn<Sf P]Ip5XKO]=r _7U[STTYq;QuMx\|L kdo0e$Yht"RVW6@&J ~+3c%w1.2bNI{A:VW?K9gi*N_#>Q>P>R>O>NikiKiPifiIiUihiNiOiWiYi{imipi[i}iTiwicizijiXidiyiLixiviaiGiSili^iJieiRi|iqibiuigiritini]i\i`iQiZioiViHiiisiMi_i~ #(!'%*" ) $+& ||-|||0|||<|S||||i|J|g||X||||L|v||A||B|1||`|5|||Z|||3|[|O|~|F||P|f|=|?|>||@||z|_|)|M|||o|||K|y|||h||||H|C|W|{||Y|/||*||G||2|Q|a||j||,|}|k|n|d|R|||^||:||q|\|t|e|||I|E|||||6||T|U|p|s|;|||w|D|b|.||8|||r|u|x|9||||V|m|+|]|||l|N|4||7||cZ;?=!eCMh1DGXR.+9EHN P),gW$4j<'BT0_[>#UASY"fVO&7]c: `J63%Q@K d -58*b/F(^a2liI  \Lkmmm m m9386:547 d E R K Y < \ ; A c ] ^ Z G T : f W = I 5 _ V J ` [ e > M L 7 b 4 8 a C ? F Q U B P 9 X @ O H S 6 D Nidieoooooooo_______________]]]]]]]]ƵƫƹƶƱƭƳƾƿƼƮƴƸƻƯƷƽưƬƺƲ;N;I;8;:;E;7;K;4;1;A;5;M;?;D;<;=;@;B;;;F;>;9;2;L;0;J;H;G;C;3;6z|xy~}{p=pEp:pAp@pCpBp>pDp<p;p9p?`_ y xp,p+SR____hbwVn~tKcNajUOPLp`XIdr[QHsRMWexv]TY^Slfo}k|_Jg{q\mziyZusqsrstss]]]]ǁǑǎLJǐnjǏǒǂǀNJDŽdžDžǃNjLjljǍ#=loo55m444s}-t0lPy9um)54 ml{j46r+5,j5.y$- 1=Hr3&smmmŖ/Pm, m#4#?J:KD,:k~yjno/  7 CD w -gn+n/6+lA0kn5= \ bĶ*5MBZ5-{{`m`i4# 2i# 2 x a5m5ij5nBd1d9d<d.d4d>dDd/d*d;d0d)dAd3d5d@d2dBd,d+d=d-dCd8d?d6d7d:=====3;2:987456anaiakafagahamaladaeaj{z ]45h5H+9` !.8mm_5A5Y6tbmp{(I{*K&4o5n397m5<5Hm 4}|n94bm'iq947mml 5a5,4 56m5 245g45<5Tm 10"mm( 5MSCīp^ y (mŭ8.ABmqcm~{W{P~Ehm5ojmn)su wW"45E5? l[mxs5A5Ym Æ5a5Bk|mh&k~\oEsusv9;%; ;;&;;;(;*;;';;#;!;;$;;/;;,;-;;;+;;.;);";;;;;]|]~]]{]}]]oNnnn' jrs5r|!vvkmeHDM<8[5,~"lau)vYj5G\/ + 45m{mmmp"p+k<m*)k5(5F  )&5'X:S':T45 85=5}}&=B. 1m  $  5a5y0o\n85%%2lSmoVb&3kZm$N ~~m vx}(seo+Emm.'mmUx,/{sp:lm(   # 9zsMsNKmo9#on |4Im w! #sl{| 56m4m}4dmùl,(v_j 4mmk 53mmt1wt=#nn5h*-p~w vml444mm#$4'H}m 1m5 8/5/mj C~lP)yaE a ? m++44Gŝ"xs:"moG  % fm   /$ W;;;N#U$pri=tPb9akBn1hV4<MR7+m;sQqS@e[XG]*C263cWJ!ldHKYT&Z,.DO>AE(-5'?\gI8o)Ljf%:0F_`/^" T 40li#;H~4m5~vm,#I$ 4"k9 5 ' S.4jmm7444.|+jy M45M$mnlKkpp-6 |m,m)*2]5 *'J4mml(m5oo2xm m ^ V o5 { U~f-n6|qhz5mmqmm5mmm4#l45c Qmmki)vlgk6,&l+ms5omInnmHmn\m,okmUmNoumgmo Po}+o75l~ Nmm!kks e544 n$:P5 5|5?.mk jumPRm455`mr s5 4v !4k 2=m6Q5r.Y7*m,&{,--7^:m 4455"j/4u^"[*7r5BS 2mmk45/kv0V0W5%H (4r wl5Tn jmmQ55W4 m    f - W8jYum 5j5 J m<=>:?;?CFDEGBA=@<;:>ggggggggggggq]w]u]y]t]v]x; ;; ;; jj}jj~jjgkjhi TVUSQR     p5p8p6p4p7hiljmk u t w vt)t*t(*,)'2/+-1.0(aaaaaaaaaaaaaa````======rTrVrXrWr[rYr]r\rUr`rZr^r_;<:ere|eoete}ezesepemeuewelevene{eyexeq{{{{{xybbbbb$ #!"aaaaaaaaaaaaaa a a aaa a aaaaaaaa``========/20(54),-61*%#$3'+&.DaDb     p=p?p>rrr`cb_^aQ_____f f ff f tdte||||||||||||||||||||||lmlmmmlmmlmpnqor]]ddddǻǼǷǹǶǸǵǺa;;;;;;ppppppppppppponm<;>=i@z{xw|y 0 / 2 1 3/-0.MONKJIL !pppp>H>I>G>J>K>L>F>M`+`,__________^w^t^u^x^s^v;}|~ppppopopppopqs8s7s5s:s9s6:CB;A<8=?97>6@iie^d]ac_b`HJIggggggggppp`[`Z`Y`X5y&zp{mj xo5 xmDu!\mnrosyzrx5$55W5"555 l 8,zysoy!z no/oS"K+kCmbp A5r4m mpCk k> 454 a4 5 'màT5Z77m(l75<wm54"M5,065 5<55x2[m| |tm*4w f nnaou7i(ks,l(.3"0,%)1$ '-+/56*4&#!2````````````````sssssssssssrr)r$r"r-r,r0r.r r*r!r(r&r'r+r1r/r#rrrr2r%`~`t```}`s`v``y``z`{``|`x``u```w=m=g=h=j=k=f=n=i=e=b=r=a=q=p=o=l=c=d {{{{{{{{m?t |}(tA|u rnonmkmXm4nm/moomo nn@o(  O[|ku8w|luj ,m a5l35XK&mmm|m L+ $1(944kl 8 h 6Ldm995rmdyryh552gj$.145f"k45,5 7wmvks5lm57y) |0(fm1mm5,|mmvn4$kO*7l {1=nk 3 $0}W456m55uĦ8yC*"oH"0.ynf}spxtm8xh0mpqi;m45Yml4~S(u5,wmmt#pnm5r1v` )445M44 Z D5M5"-7Ma/-cd! +555,m5J5EM 5Mf5Z7ohlrUtp[}ywR)mwTKlm+5k m4n?='^l`sUtm2585]5 m H 5  4m5,ruoXxF5Bm.]5Emj~o~-" p,3k!bmm6^ >+RmCumQR, 9o'#5w0mP epOX~I0)Hm˜)Km !:j!15re76B8A>;H:C@?<GF9=DE````````) q"_)5-.cv$+ nG;|9zk50b  = oSQ*(l&"M71W{`O\~f^gL3>6:+?Ri(aHT414x7'%JsB;6 EI$-Pu ,*C0r2[pZ/!tU<>&<dY#e=8F@K,N% /8hX}. yBAm!  9]A?#2 :w'jDV@3eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee```rorjrkrmrlrfrnrgrhri=X=U=V=W=R=S=T=Q}~|{`a```Z`\`[`]`^`_    qqqqqqrqt:t4t9t7t6t5t3t8EDCHGJIBFLK=============aaaaaaaaaaa&9mm5 5lm :H\5 Io 1$ 'pu,m'r4DF 53P!km55" ($m5RlVmm4-m b44 _1j _:%S?g?g=gEg:gIg>gAg6g5g8g7gJg9gHgDg@g4g<g0gGgFgBg3g2g;gCg1=RMU[XFDISZP\J@Y>;EVAGCK<N:?TOQLBH9W /5,'0+44ąu@m 44n)/Fjm" \m}oWw~{F5,+)   p D >  ^56r [5 u/~kn4qov0+0: /{aaa````===#w~+p?& :sO);,9,kXmm D$$4e**l,6k/# 554m, p //J%^55o#3%`?5B3l@5C #4k0l5HonoP3G5ilr7r88 e cv +j5ek~mk-k. mqrp&[)5y)m5 5a 1g #4((4)]5h52mm9m+mx c { pl3mr4<45G{nHm4')m5Zpm04@ÙF)m T :k,54UtvkSmvkT545,5qqqkXx:mmm"g/*2`'55Pt:m x ^m0jm0kom}}t|}v|}o5E4w54&6mGym5,C  m8m5/5u5 44jwjL55]45,}mjN{1A0lt~ J 3m4omn'?kjvj+4 515k!k4m444!B4 xm65emŪm,wrysm   3$^54mkD5}45E5(4tLkF)l: 5mm"D/"Euz{uy >/u{1wmlFm5,  q Qwp0q* 77 &l`-~c{+EGHD@AIPFJBCLNOKM?     rrrrr  9"^m=Fl^45Q445em8 qz #4l3zol_mmrmm5B5445?5Hm5Mkq'5,|S{]k+5%5<vw6nc5ru455 m@Al,44n~6\Zpt}gws^ cRQP+*pppppppp`.`/`-/D5y5524$7$mxy^f44Oa7,|:5|n{+ky~9skmmmz/{n m'\q'm'qmm0$  "0%m%m5Z5Tk$gnmm5m5hy5/nlt5-rm-R#0:5: o5,l]44IHJ< <<< < < << qqqdq{qmqqqvquqxqwqnqyqkqbqqtq~qoqjqgqqsqrq}qaqpqqqqqeqiqfq|qzqqcqhqqlqk_!&5m8  +p9)+q h l 5]40#%&5B m4 Cr#m6545+m.N!$5lsj*4m45?3ğm6m5/t|yNg#n'D15l6j UQl5m)m !į/3/7i74 45|4*v*w7zmirHzN  2qoJqtwyj5o",5k5L4%}Ytud 5, p5y5%5lm5 C"{Om45T45e%lp 6g{onrm [ n  j "r9{h56mZxw0 c   ^44tG !]l:mmm5Q4mKy@poLyApp 2) 5%kzskm4 4 555JUW*QnputU7Qm;it  :Ef45%!5$ns4'lqm4*hzg ydvhvtrlm -)m5x  5v55| +^ 1mm5wĒnjno.nrx!ls%83e5Dl*(45Z4+; '+<oF)kvfxjx{jm55P m9{ {BtmG)6445 564.15 5l5/ mmmm3Vkm.'Ikm45B5%mm4sxm4  # 4m%mm070/nB2{$lot?lm55m>~?m````2} l5.-5l5E5u-4|"yHoz lZmT5%39(Bf@Om88! T51mm#  3^3_  l06Ammmm46mW48tes2$4k6)0 m4$5?mE4 wm4 !5Bmm5y5~mlGm5#5$ 45no@k"qll%F : moQm.mno m|m@nonnn^nLnmoo mm *755]5( r m44-S|l}.POQNR``ssss  `o`p`q`n`ro>»547m z#d&H&+8+.1N4 ~~~{s56Eş9nAn4m~|U{q?qr?kpm5,4~m zkq_{nn*ssm4Ű}7/n,C6& ! m} nlpmstrqko|$q m5,mn1*kmo%'45 57*" !5`>on3 Gs4}mQpm%>5}k@'4'8zkq`8 5-7 #@$D9~#Ak(2!3k)> 4{m55/5459 &  1/2w10m33jVjWjXbfeac`_d^]DBDADDDCD@t-t.t/t0320/1ggg6mp S!Si.}!T1D445p5E}p2.3m  ';*u5*65  #"+9jwy| k45"5mm@m55e4/b"5 5 cm'5ymrb38k9unNn*)* F 7mN*%*l[++nynh1l *Ļ4 J H 556(mkToAm noonvmomum r44<#5m&&&4!:6 450 544 GO j~9h Z.]mxxnk 8$$ 1 $  Pm5"m6Ņmmm ?5<5T$#mmrmox~[y7|P x 8s4vmmk5%4m'  %4m'  =4qm7ownwoU0&nm X 5 $ \$FN skQš: 4m4m ?5,%d25B "m,k5m5 uoz,ım .mlm3545Z3(m( 45/9I0.4mj5l & 5%&0m5Cl/\,9k/ 44:m'(4575v5pNmm 7nxp|Cxum^y-vvvmni 15~404]m-!mrCm0k j3^^^^^^^^^^^^^^^^^^^^^&#+)*$%(';;;;;;;;;=4 .7 5kL5,5nnq9lk545 ,mm5%5<m 4m O5lxoua5M5Ex4- SnnymZ]lj44M(m40t mD0# O5%IR+n$]k . bw4|pJhnLuymm}rn;n2k8(7voEk944m)[m.> mVĴm565|t!'fooBot5Z  5B45Z5H4 em1> >">>>>>>>>!>>s4s0s2s1s3gihfjCGDEFmjnV yztX/mh%yr9m>x[k!qImu851S+     m}|oL%mmx%444^-(5Z5mq1pm3k59#9%v" 5j .j5&4&m89gggggggggggg102^^^^^^^]_]]]i]`]^]c]g]k]j]e]b]d]f]a]hhhhhhhhqnnD" !UWVST;; j k lizi{iwiyi}i|ixiviup#__________` ``!` m=.ml7t vxn)q4`m p7,! go|$m45|n} {*) i (m"~m"l,"5W55Tm4((( m8mmr-m:-:m]5?6 4mxuy"l T)8 h#soJnszns{ 3K&W5goQ6,5l6-hivu1+k8 m64mm 9# T o~k0p (5v))5,5Z45Tū!5B1smmnt~xp{p~4+nTn'- "6km9=A=9=?=B=8===C=@=H=6=;=N=L=F=K=<=I=J=P=>=:=G=M=O=D=7=E44rsym  $~2D 4 [ k4(^,:s |nlwvm|'mk&5457mV9l%kz}9rnE5Emo~rmmxc"s  y)7" m wVl54yHlciq}¼½m8w oV/3nnY4f,o"o`+.nk452mB m1:5 uN~m354r 9395omn2!`t6xm   .m*U1Q1R55y5e~~56vnmq#q"qq!q%qq q$mn}.k+454544 65r \ 2popm)lm,6os1-)"j575 @l,ksjw^E4_?SbAfR5KYW]>`TV|fz;nm8\%, l48 mm#'5%x0QZW3kl/}nv%Nk'x}ke5#<ngnn4-9*+l 5:  me&"yqNooqrm 3lm45?qj!A.k=:O$ mm5y44m~dmn!Vjk2Q!Yy565um&5 u~ls8nSoKod$:{m"% nv|y  o,&m'0''4 R7@m4547mdj=yw|-VJ:mpzk5g"8}~x}^5T22mgh j'5/45ZRmm 8~B[72P moonmnoon)m55r#i5ys44qnyl,"s002m}yl\o3nnnnn3ovoLnn!nnnnok"45]44}{  n555]k^8 km4yľl5,5 4|5>m.- ]44 _m4l#4%+0[p~X6(!#9SjY&6T!ml*l+cn@n#o!I33  mmvl/a!4 ,3) Q i4I4kwj:JkN&55!54$4 kJ48W4 : {5umm-* >4!ömmmGF}:m};:Il 5,o84bĖ15<54wr4j-Bl m\v|bog]n}Rm548o5,44k5M 0%5u5ooym(rk]6a5E4lkm.'qxb5Bj0m-lr4,!4n0jV5?Emll&4zm~pu$}"ts{s| r:m mh4 "m4l5+5 mmm4/5,m2g3  Vm8.*_5a5ym5BloD5T5lmmm  44 lhmPZ+~ q/mmm9 V V5%{n{;0+;% p)6Za'5~4moNj mmFm & ,n oI@kp7mè{znvM,vNnz jt}pysVymn5l8 n'o+4 ~kGm7&: m/lL ymn9'j}> \-8 mvm  qƔ4o[/;ll; o    mv} 5r$5 * Dm mm iiiiiiiiiiiiiiiiii>>>>QOFRJLMICDNBKPGHSAEddddddd87569:<;4g`gvgGgXg>g6gmg2gYgyg*gBgZgUgng;g@ghgJgigbgdg\g.gfgCgSg+gRg]g4gagtg[gKgxg-g?gFg)gpg_g,gegEgcgHg1gWgPgMg9gQgog5gug(gwgTgLg<ggg^gVg:g=gNgIgjgOgqgsg7gAg/g3g8glgrg'gkg0gDqdg_rsohlcaneibtmjup`fkv+,ssss&s(ss%ss*ss$s s'sss#ss"ss!s,s-sssss)s+ssg]g_g^komnpqljfjhjajejljmjcjojkjnjpjgjbjijjjd5813;076<:942D^D]( mm(4nkX5,5mkY+ x 7O 4890013Ymmv 9 jm |:V9 jQ}dkjo4mnGxm445u5?.#l1xm6m65 m HoOx;~$u mm1~5<44i5q9,m9%n mm *)q*nino$&k1rr~rrrrrrzryrrrrrr{rr|r}rrrr4 mwl Uktn5M q%syOl}j?| r| ry{X5,5(5?ƀm4  cl/mF  55um x w-pLd5BmomE~6  8_oam+k++5,5 ^B^D^C;;;qqpnqom z 4445<ml45e&X55?i645ar+m45emm!rJ.r {   ~1a m'54' ' m)~m J4Hk5,m 6 ,m mw{?hg&"Hw*y/|rr5y om5Y54/qqK47 5wkw [ X5BpYFlmm >  t25rq4mm*m+jwmllY4w& m(u+5nuj:jvghxm5mjm}Eo4(3&:lyim444649ml2CDqBu&Ujg" o5xwoomm55M!c*n(nXn"R m'!"4k>)4  7:m m5Tm|m(2 mnnn|0l>7moU7mKm o"@ %5ijA05=unm T)g54 j }%5525(=5  e.75T44lo1155r1lm"Ynflw236kfm(tx+mz1 54m.R4mmj$ u+$QgRh4&s5/)mm  d11|R&h44Fv7f7g5@444m :cm45Z5fOz*$445lm<zq_/t *|7wam6ul7wc5M4444  (4m45Z4n5uu>m?swjs+no*lUjs,njR5y5!)u' 6F f41iP[at!e1W&s8llHLL2b[aYS3/pn2*Zt oYyiSl+Gox<L&X R]gxdhLg9kX@G"CW6HT?j%AzUGq.Dlwuz/T(mV}^@PVUT?q5q x-%F4^9PKy x3q*&c#~2MYwus!06uE {C pt_  Il .};S OL~~M\oJ'%bHv4Ie;@wgknRQ]30XH-C<dj,8 K?&b)[r9:niHY>O=Uti<|zro-,5whdp&T7)B(>e+U*J;PVciVO3an 8;>uYoD'1p~f\M^ZJI+b"f!,R [.QOcg/4``WQg'7,p ,f\rv_>ZBb2M`2 m #/v NX0h N+ P7{<Z (`-(JBv?h"?})13$*/F^ *W":|ARA}z]yt<e IKrS~xK^_O:re{J5$8A!BSNsUF0cE_k$\Qs6T n9jEfBh9C.#j=)#R zZ]5=wEm>Dy( `m7v5jDI|6V]4:aQC=}Md0Ad%NG@cWK|$mG{1%a|-#Ns q+ D@ky!XE'".=87:k_F{\ [;$============zq^ ts /5"52({u:3m.   o  6n44m z 'm$m! ! pI;xp459ja{pml`jb{q\]W!,)^Q(y.4)y/55 5l5/mve  ZDm4z145r E q&mn44:-!45AM4  bl; R=7Wmmm:Lm 445x5A5 4m4$m nvu{~/km|/p|6xyw1zntvsw}xq)*n*p <tzm44ml " X8/2fB mDRj tx)dm  m]6Om9'5}('v9m>& p( %<lg% maa@x>~j&pU&7 0!)T,m v\  E!n4m|#q6m mO8w " 5,p$}e{y {d/44;m5 5_=88e nmw545 oo,80 V82m 4-Fj  Dl625a5B 1+45%5nrjd4444 "&ejp45 " El6C44444 8 )   q 59m{x}zj|z{{xhp+s6qkms8 ,4 5445r5<.!mmmE4N)m* mm5Zjvm 44m5g|65Z:(m5u5 4zim C  N(kd^X: %d(vuxv5 5lm}v*45y5%5l#$!- ]zjNz#g'#hPz44&Nm+6myq~x:5a..54441X <wq~mD4)mqis }wqis ~9+LYţwqis  5y5,4 $Wml'ijlTŲ T pmm54ofnL.I>lE29mmoJ)47 M9ktCsy#5!a"W4~55Bm5T5lm4m747P t @A  5/5,455 S  A  5E4 ( -#Fz45e 3'?58||;u T5T8g3le4m3nen`5Q V (mq^jur mm5E5m.4Gm.$3m4m4k@)5y5T,v" y -xpl55)s,:m,5m204 mmm '5nCSmk-0I#!mV45%}o<iB3lkd4 wmh.K8w"q`jmw pxlm343m5el1sR:m+z-m;}zlx$|mfm4~} Ta5T44,Z nqmm& _,wno:kx0n&/Mm45% BlA$m qmm4 -H45o5xm455 wum0}T%m'l' 84 8t5mmm 2mlZm|.p55785 5l -```=========d~ddUddgdXdQdd|dSdddddodtddmddMd}ddTdedjdOdYdnddPddidRddwdWd[drdVdydKddkdLd{dbdqd_d`dfdld^dsdadZddzddxdvdudpdJdNdhdd]dcddd\ddrrrrrrrrrrrrrrrKLJHIeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee|||||||||||||| | |||| | | ||||| ||||- Q T44  m{c02()\+wWmnx3jj`k:*U3BI29]m/ "P!-.Sm L ^ . s5556l)~H :=tmk 'k5em!mm|Tl=mƗYtk5r +: am Z  7 5a}qm*}m5< + f4mm405 56colVLG5Mv1zYyucm8j+7^ 07Mmjmma553m(} flk5,,#oenZ9zk4m3m35}5,)Emk mm5 7*m5 5m556j/!y2!5m'l :.:/ 'mllNm0mJttuln\&m2 pm 54 [(54pq;oo8Olm;m;5B4% 25B4@+mmim-%,0  E45]5T!U60mrY+#mjm5ot-nO(k1 546R452Kmv,5B5/v-PQ1C#4 6}r!4I97 5]7 )9'9m995r9A2$45:5'G÷Mm % >m o0nnoknKn4n%om,/!mk2k5Z4qE5l505Z o <5Zlngl"`! mƈ7{"mmm>  4_ ) o pnmlNlHmmNTvZl{} a Fk  ( /o 6*  _m}ujRo5%4mmj@45[45%vzmqor ^oR9joTijm4m~x#l01c#&j{4&p~o) )!5 5lmxfv `9vs^xgvm<4| # 9m'% jzyp4)m  & `9)2kY $ k mk!4zH{'tym5$'='>5,5 5T%855}5y5 45u ,k[}luyoWn%n2j$|mU 2#ty78j$laDoo=(u'%*m&~&434yv{<zo ziqo&P  : U+mq5O5y5Q545e44m { ?z5a5ys65y99m5 5#/$Xz|jBnm7mnz6l7pppqm,mm m/qX/ru%znmAr/wjz,}P5 5 t595P{~t u*./J5iw"X ntW m4{}j5 #,Dm m&o ` $@mk4 8w`s~j$mlmq{4 [k*5Z  o95k4 n.qm >r{mmml{&5f zVl\%9t}quv Vm/?m565 |s5l@4444p>s)5mm,x |R"(lC$;'lmm7 2 -\q mEm5h5256oĪw q*x4m mdimpUo#m|r5./WY.055,4m3lv5m) x56mm{&tyoxp~mZ   J5yKm Qm{ypm q57X5%4m45<45e, :U{,xnjT{Ck!1mkK4q7um6n1%l5|4445u5?45,454 "  5l5~$I5mS ė{-vJt w/}wxD.5M^lX5ymjjutm5%yi @44ymCl;6[Q0 e m~y{K 3V4(5rmmm+`m(}|{d0 4~Q6{m- -9P,).5,4mE mn m' (mmm3c,<mg}}Iy>444qk|xrnN1.mm4uw7nQm*J5444z455(mt w8}]zprw9|qZwmjmm3. p5m 9' ZttmnT55]m yY{iwQ mmm/5?5ÓV}25|2mmm x40j 0%5r4565M[%*mqkms9vrhm44Hm j5,55, k3mMs~k=s<s=N5q55 55B mm mmmm45Zs\)F+)GT57 54svR mmmZ5$ m$D)6 m5etPk5<onA_w3| 4mtEmm*>m yS5 54//m:'lOm0s*5,-Hm;- ƚ%ssHll}%m} > (>-+5k N 5&##m&`3\ pHpCpGpFpIpBpEpD[Z5s57\  4mn45a5,4 s/6jt   54p Q 41y)+4"d5?+kO<${l5m14K5yq}t~mä*mtDuyk] 5y [mm: $: ,v::m|;k2l5_m!5,ux4  'Ɗ Ƌ55]:mvo$j.m%m35 pw/m5T3E5,m;