FUEL )FUEL FLGlobalClassCluster ByteStringIdentityDictionary ByteSymbolFullBlockClosureFLHeaderUndefinedObjectContext IdentitySetFLGlobalCompiledBlockClusterFLDebuggerStackSerializer&serializeStackFromContext:toFileNamed:FLGlobalCompiledMethodClusterFLDebuggerStackSerializer&serializeStackFromContext:toFileNamed:$FLHookPrimitiveClusterFLHookPrimitiveClusterVM TimestampImageFLPositive8SmallIntegerClusterQFLHookPrimitiveClusterxImage: Pharo13.0.0PR [Build information: Pharo-13.0.0+PR.build.20.sha.46cb4cd96f08e1768aefaa62cad737fe1d05f25c (64 Bit)]VM: unix - x86_64 - linux-gnu - CoInterpreter VMMaker-tonel.1 uuid: 379efb58-f4d4-0d00-af05-10130bccb44d May 16 2024 StackToRegisterMappingCogit VMMaker-tonel.1 uuid: 379efb58-f4d4-0d00-af05-10130bccb44d May 16 2024 aeba90c - Commit: aeba90c - Date: 2024-05-16 15:35:50 +0200 31 May 2024 9:42:29.793701 amFLContextClustersenderpcstackpmethod closureOrNilreceiverFLVariableObjectCluster outerContext compiledBlocknumArgsreceiverFLFixedObjectClusterpreMaterializationActionsadditionalObjectspostMaterializationActionsFLDictionaryCollectionClusterFLSimpleCollectionClusterFLSubstitutionCluster      FLGlobalClassClusterUndefinedPackageTestMCDictionaryRepositoryTest!ReRemoveSharedVariableRefactoringRBSplitCascadeRefactoringRBRemoveParameterRefactoring"SpTextInputFieldPresenterStyleTestSpComponentListAdapterTest'SpTreeTableAdapterMultipleSelectionTestMicRawBlockTest"StHaltBreakpointInspectionItemTestStGIFFilterTestRSTickLocatorTestRSDraggableTestRSWrapLabelTestRSXMarkerDecorationCoGlobalVariableFetcherTest OCMethodScopeIRBytecodeGeneratorRGLayoutDefinitionTest RBPragmaNodeClyAbstractMethodsQueryTestClyDeprecatedMethodsQueryTestErrorHandlerSessionHandlerRegisteredClassAnnotationsTestCDWeakClassParserTestInstanceVariableSlotOCBytecodeToASTCacheTest*OCASTSingleBranchConditionalTranslatorTestObjectLayoutTestWeakMessageSendTestMethodDictionaryTestDAPackageRelationGraphTest FIFOQueueTest RenrakuTestRBSplitClassTransformationTestRBAddSubtreeTransformationTest'RBAbstractClassVariableParametrizedTest%RBFindAndReplaceSetUpParametrizedTestVariableBreakpointTestEFMethodExpressionTest SmallIntegerHistorySlotTestNSLogScaleTestSindarinDebugSessionTestZnStaticFileServerDelegateTestMorphicWindowManagerTest EpCommentTestDebugSessionContextsTestTFUFFIBasicTypeMarshallingTestExampleSlotWithStateTest TraitTest FFITypesTestTKTLocalProcessTaskRunnerTestPoint CharacterMCDirectoryRepositoryTestRBRenamePackageTransformation!ReRenameSharedVariableRefactoring(RBTemporaryToInstanceVariableRefactoringReRenameMethodRefactoringSpDropListAdapterTestMicRootBlockTestMicAnchorLinkerTest StObjectBreakpointInspectionTestStJPEGFilterTestStSpotterModelTestRSUMLClassBuilderTestRSHighlightableTestRSCollectionTestRSYMarkerDecoration!CoImplementedSelectorsFetcherTestOCVectorTempVariableRGMCTraitCompositionVisitorTest RBReturnNodeClyBrowserToolValidityTest RectangleClyOverriddenMethodsQueryTestBooleanVisibleClassAnnotationsTestCDExistingClassDefinitionTestOCClosureCompilerTestOCASTTimesRepeatTranslatorTestCollectVisitorTestOutOfMemoryTest'ClassDefinitionPrinterConfigurationTestNestedDictionaryTest DAPackageTest LIFOQueueTestReRuleManagerTest$ReBasicScenarioExceptionStrategyTest,RBTemporaryToInstanceVariableRefactoringTest!RBExtractMethodTransformationTest*RBAbstractInstanceVariableParametrizedTest!RBInlineAllMethodParametrizedTest WatchTestEFParseErrorExpressionTestInitializedClassVariableTestNSNiceLinearTicksGeneratorTestNSNumberInterpolatorSindarinDebuggerTestZnUrlShortnerDelegateTestFTAscendingSortingStateTest HaloMorphTest EpRevertTestErrorWasInUIProcessTestTFUFFICallbackTestPropertySlotTestTraitUsingTraitsWithSlotsTestShClassSlotChangeDetectorTest LibTTYTestCmUICommandTest SmallFloat64 MCScannerTest,SpDropListWithoutInitialSelectionAdapterTest)SpComponentListAdapterSingleSelectionTestMicSlideBlockTestStCritiqueBrowserPresenterTestStPNGFilterTest StSpotterTest RSPopupTestRSEasingInterpolatorTest*CoHierarchyImplementedSelectorsFetcherTestOCOptimizedBlockScopeRGMetaclassStrategyTest IRPrimitiveClyNotebookPageRecyclerTestSortedCollectionClyOverridingMethodsQueryTestStMethodNameEditorPresenterTestDoubleWordArrayCompositeAnnotationContextTest!CDExistingClassSideDefinitionTest Metaclass OCClosureTestOCASTToDoTranslatorTest RBCodeSnippetSelectVisitorTest#BlockClosureValueWithinDurationTest PragmaTestFluidClassDefinitionPrinterTestDATarjanAlgorithmTestWaitfreeQueueTestRenrakuExtensionsTestReSmokeExceptionStrategyTestRBTransformationsTest"RBMethodProtocolTransformationTest0RBAddClassVariableTransformationParametrizedTest+RBInlineMethodFromComponentParametrizedTestEFPragmaExpressionTestInitializedSlotTestRSBox NSNumberTestFTDescendingSortingStateTestLayoutFrameTestEpLostChangesDetectorTestIsContextPostMortemTestMCMczInstallerTest TFUFFIDerivedTypeMarshallingTest SlotBasicTestArgumentVariableTestTraitWithAliasTestShLayoutChangeDetectorTestTKTServiceMemoryLeakTestMCSerializationTest#RBAddVariableAccessorTransformation$RBAddTemporaryVariableTransformationRBCopyPackageRefactoringSpLabelAdapterTest SpListAdapterSingleSelectionTestMicUnorderedListBlockTestMicCitationBlockTest&StCritiquePackageSelectorPresenterTestStFileFilterTestRSSearchInCanvasInteractionTestRSPAnimationTest2CoRepeatedHierarchyImplementedSelectorsFetcherTestOCMethodSemanticScopeRGMetaclassTraitStrategyTestRBLiteralValueNodeClyTextEditorToolMorphTest ClyUnimplementedMethodsQueryTestSycMethodNameEditorTest"SycConvertTempToinstVarCommandTest!SycHierarchicalSendersCommandTestFloatSimpleAnnotationContextTest ExceptionClassUndefinedObjectOCCodeReparatorTest!OCASTSpecialLiteralTranslatorTestDeleteVisitorTestBlockClosureValueWithinTestProcessSpecificTest LegacyClassDefinitionPrinterTestBagTest ByteArrayTestReExceptionStrategyTest.ReRemoveUnusedTemporaryVariableRefactoringTestRBMoveClassTransformationTest%RBAddInstanceVariableParametrizedTestRBInlineMethodParametrizedTestEFReturnExpressionTestLazyClassVariableTestNSOrdinalScaleTestAndreasSystemProfilerTestFTUnsortedSortingStateTestMCPTest RecompileTestTFUFFIDerivedTypeSizeTestSlotEnvironmentTestDoItVariableTestTraitWithComplexSlotsTestShMetaclassChangeDetectorTestTKTWorkerMemoryLeakTest9RBAddVariableAccessorWithLazyInitializationTransformationRBRenamePackageRefactoring"RBExtractSetUpMethodAndOccurrences EFContextRFASTTranslatorSpMillerColumnAdapterTest!SpTableAdapterSingleSelectionTestMicFileResourceReferenceTestMicFootnoteBlockTestStFinderClassTest#StCritiqueRuleSelectorPresenterTestStNilFilterTestRSInspectorShapeTest"RSSelectionInCanvasInteractionTestCoInstanceVariableFetcherTestRGMetaclassTraitTestRBLiteralArrayNodeNavigationInteractionTestSycRefactoringPreviewTestDefaultExecutionEnvironmentSycInlineTempCommandTestNumberCDMetaclassWithTraitParserTestASTClassBuilderTest ProtoObjectFalseOCCompileWithFailureTestOCASTVariableTranslatorTestDateAndTimeDosEpochTestProcessTerminateBugTestOldClassDefinitionPrinterTestIdentityBagTestIntegerArrayTestReMethodSourceCleanerTestMetacelloReferenceTestCase2ReSemanticsOfCompositeExtractMethodRefactoringTest&RBMoveMethodToClassSideRefactoringTest)RBAddMethodTransformationParametrizedTest!RBInlineParameterParametrizedTestEFSequenceExpressionTest LazySlotTestNSPolylinearScaleTestMessageTallyTest FTColumnTest MorphTest RestartTest0TFUFFIDifferentCallingConventionFunctionCallTestSlotErrorsTestGlobalVariableTestTraitWithConflictsTest MOPTraitTestShSharedPoolChangeDetectorTestFFIFunctionParserTestTKTNewProcessTaskRunnerTestPackageMCSnapshotTestRBAddVariableTransformationRBAddParameterTransformation EFFormatterAthensAffineTransformSpNotebookAdapterTest SpTreeAdapterSingleSelectionTestMicHTTPResourceReferenceTestMicInputfileBlockTestStFinderExampleTestStCritiqueToolbarPresenterTestStBreadcrumbPresenterTest&RSSelectionPresentationInteractionTestRSTransformableTestRSParallelAnimationTestRSShapeBuilderTest&CoHierarchyInstanceVariableFetcherTestIRPushReceiver RGMethodTestChronologyConstants SuperVariableIntegerSycRefactoringStoreOnTestSycRenameArgOrTempCommandTestCDNormalMetaclassParserTestTrueOCCompiledMethodIntegrityTestOCSpecialSelectorTestBreadthFirstGuideTestNoUnusedVariablesLeftTestDateAndTimeEpochTestRecursionStopperTestCompiledBlockTestIVsAndClassVarNamesConflictTestDictionaryTestNativeArrayTest.ReSemanticsOfExtractSetUpMethodRefactoringTest3RBMoveTemporaryVariableDefinitionTransformationTest#RBMakeClassAbstractParametrizedTest!RBInlineTemporaryParametrizedTestRBBrowserEnvironmentTestEFTemporariesExpressionTestProcessLocalSlotTestRSBorderNSPowScaleTest GAngleTestSpaceTallyTestRubEditingAreaTestCircleMorphTest EpLogTest StepIntoTestTFUFFIFunctionCallTestSlotIntegrationTestLiteralVariableTestTraitWithMethodsInProtocolsTest#ShSharedVariablesChangeDetectorTestFFIFunctionResolutionTestTKTParameterizedServiceTestBenchmarkResultTestEDDebuggingAPITestMCStReaderTest,RBRemoveDirectAccessToVariableTransformationRBRemoveParameterTransformationRBExtractSetUpMethodRefactoringSpRadioButtonAdapterTest%SpTreeTableAdapterSingleSelectionTestMicInlineParserTestMicArgumentsSplitterTestStFinderPackageTestScopesManagerTestStResetWindowPresenterTestSindarinCommandsTestRSBoxPlotShapeTestRSSequentialAnimationTestCoMethodVariablesFetcherTest RGObjectTestWorkingSessionFractionCDFluidClassParserTestOSEnvironmentTestOCCompilerNotifyingTestPostorderGuideTestProperMethodCategorizationTestDateAndTimeLeapTestSharedPoolTestCompiledCodeTestIdentityDictionaryTestFloat32ArrayTestEquivalentTreeTest#RBProtectVariableTransformationTest2RBMergeInstanceVariableIntoAnotherParametrizedTestRBInsertClassParametrizedTestEFVariableExpressionTestWeakClassVariableTestNSSLnScaleTest NSPowPowScale GCircleTestRubEditingStateTestFTCellSelectionModeStrategyTestPolygonMorphTest StepOverTestSlotLayoutEqualityTestRelationSetTestTraitWithPackagesTestShSlotChangeDetectorTestFFIArchitectureTestFFICompilerPluginTKTPharoProcessProviderTestEDEmergencyDebuggerTestMCStWriterTestRBRemoveVariableTransformationRBRenameMethodTransformationSpSliderPresenterBackendTestMicMicrodownTextualBuilderTestMicColumnsBlockTestStFinderSelectorTest ScopesTestStOpenDirectoryPresenterTestRSClusterChartTestRSTransitionAnimationTestRSAdjacencyMatrixBuilderTestCoNarrowHistoryFetcherTestIRReturnReceiverCopiedLocalVariableOCASTSemanticAnalyzer RGPackageTestVTermOutputDriver IntegerArrayCDTraitParserTest#CDClassWithPoolDictionaryParserTestZnBase64EncoderTest"OCCompilerSyntaxErrorNotifyingTestPreorderGuideTestProperPackagesTestDateAndTimeUnixEpochTest ContextTestPluggableDictionaryTestFloat64ArrayTest+ReClassSideInitializeMethodProtocolRuleTestRBPushDownMethodRefactoringTest)RBProtectInstanceVariableParametrizedTest-RBMoveInstanceVariableToClassParametrizedTestRBAbstractRefactoringTest WeakSlotTest NSScaleTestGCoordinatesTest LRUCacheTestRubFindReplaceServiceTestFTRowSelectionModeStrategyTestMorphTreeMorphTestEpAnnouncementsTestStepThroughTest)TFUFFIBasicTypeMarshallingInCallbacksTestSlotLayoutExtensionTestRelationSlotTestTraitWithSlotsTestClassTraitTestShSuperclassChangeDetectorTestFFIAutoReleaseOptionCalloutTestTKTServiceManagerTest MCVersionTestRBRenameVariableTransformationRBInlineMethodTransformationRBExtractToTemporaryRefactoringSpToolbarAdapterTestSpListCommonPropertiestTest MicParserTestStOpenFilePresenterTestRSDensityPlotTestRSAttachPointTestRSLineSpineDecorationCoSequenceFetcherTestIRJumpIfRGPoolVariableTest RBCommentUndeclaredVariableReadClyFFIMethodGroupProviderTestExitWarningBagCDCompiledBlockClassParserTestSetChainedSortFunctionTestSystemDictionary ByteSymbolZnBufferedReadStreamTestOCContextTempMappingTestPathTestGZipReadStreamTestDateParsingTest#ProperlyImplementedSUnitClassesTest(DelayBasicSchedulerMicrosecondTickerTestSmallDictionaryTestLinkedListTest TestFailure&ReClassSideResetMethodProtocolRuleTest)RBRemoveAllMessageSendsTransformationTest%RBPullUpClassVariableParametrizedTestRBMoveMethodParametrizedTest!RBAddClassVariableRefactoringTest-RBTestAsDataForExtractSetupTransformationTestNSSymLogScaleTestNSBilinearScale TTLCacheTestRubScrolledTextMorphTestFTTableMorphTestMorphicEventHandlerTestEpDisabledIntegrationTestDebuggerTestCaseForRestartTest*TFUFFIDerivedTypeMarshallingInCallbackTestSlotMethodRecompilationTestSelfVariableTestTraitCompositionTestFFICallbackParametersTestTKTServiceTest RubTextEditorMCWorkingCopyForExtensionsTest0RBMergeInstanceVariableIntoAnotherTransformationRBFindAndReplaceTransformationSpApplicationWithLocaleTestSpTreePresenterExpandTestSpTableCommonPropertiestTest"MicPharoImageResourceReferenceTestStSaveFilePresenterTestRSHistogramPlotTest RSCameraTestCoSharedPoolVariableFetcherTestArgumentVariable RGSlotTest RBMethodNodeRBWarningNoticeClyFFIMethodsTestOrderedDictionaryFileCDCompiledMethodClassParserTestSortFunctionTestZnBufferedReadWriteStreamTest OCDoitTest IRBuilderTestWindowsResolverTestZipArchiveTestDosTimestampTestProtocolConventionsTest(DelayBasicSchedulerMillisecondTickerTest BehaviorTestSmallIdentityDictionaryTestOrderedDictionaryTestHashTesterTest$RBRemoveAssignmentTransformationTest(RBPullUpInstanceVariableParametrizedTest#RBMoveMethodToClassParametrizedTest$RBAddInstanceVariableRefactoringTestRSMarker NSLinearScaleGArcTestAbstractStoredSettingTestRubSelectionTestMouseClickStateTestDynamicMessageImplementorTestTFUFFIStructuresTestSlotMigrationTestSlotExampleMovieAndPersonTestTraitFileOutTestShCreateClassTestFFICallbackTestTKTSubclassServiceTestMCWorkingCopyManagementTest!RBMoveMethodToClassTransformationRBSplitClassRefactoring#RBFindAndReplaceSetUpTransformationSpMorphicBoxLayoutTestMicrodownSpecComponentTest MicRelativeResourceReferenceTestMicAnchorBlockTestFLDebuggerStackSerializerTestStNavigationSystemTestRSKernelDensityTest RSChannelTestCoFetcherWithNoResultsTestRuntimeSyntaxErrorRGAnnouncementsTestRGStampParserTestRBSequenceNodeUndeclaredVariableWriteCDDoubleByteClassParserTest WriteStreamIntervalThreeWayComparisonTestZnBufferedStreamByteTestOCDynamicASTCompilerPluginTestOCCompilerTest ZipCrcTestTimespanDoSpanAYearTestAdditionalMethodStateTest ObsoleteTest(DelayMutexSchedulerMicrosecondTickerTest BooleanTestSetTestOrderedIdentityDictionaryTest,ReInstanceSideBaselineMethodProtocolRuleTestBase64MimeConverterTest&RBRemoveClassPushStateToSubclassesTest'RBPushDownClassVariableParametrizedTest'RBMoveMethodToClassSideParametrizedTestRBAddMethodRefactoringTest NSLnScale GLineTestSettingBrowserTestRubSmalltalkEditorTestNullWorldRendererTestBMPReadWriterTestEpCodeChangeIntegrationTest TDebuggerTestSlotTestTraitMethodDescriptionTestShModifyClassTestFFICalloutAPITestTKTTaskTimeoutTestMCSnapshotResourceMCWorkingCopyTest%RBMoveMethodToClassSideTransformationRBInlineAllSendersRefactoringSpMorphicGridLayoutTestSpListSearchTestMicTextPresenterTestMicResourceReferenceTestMicCodeBlockTestStFileSystemResource RSKiviatTestRSCircleVennDiagramTestCoResultSetResettingTestIRPopRGTraitAliasTest IRSequenceOrderedIdentityDictionaryCDDoubleWordClassParserTest DictionaryZnBufferedWriteStreamTestOCEnvironmentScopeTestOCSourceCode2BytecodeTestZipExtensionTestTimespanDoTestAsciiCharsetTest ReleaseTest(DelayMutexSchedulerMillisecondTickerTest CharacterTestIdentitySetTestSharedQueueTestTestExecutionEnvironment*ReInstanceSideEqualsMethodProtocolRuleTest Base64TestRBRemoveClassRefactoringTest*RBPushDownInstanceVariableParametrizedTest(RBMoveVariableDefinitionParametrizedTestRBAddParameterParametrizedTestSimulateKeystrokesTestCommentTestCase NSLogScale GPointTestGlobalIdentifierMergerTestSettingsStonReaderTestRubTextEditorTestPaginatedMorphTreeMorphTestBitBltClipBugsTestEpTriggeringIntegrationTestSuperVariableTestTraitPureBehaviorTestShAnonymousClassInstallerTestFFICalloutMethodBuilderTestTKTWorkerPoolTestMCDataStreamTestRBMoveMethodTransformation,RBAbstractClassVariableReferencesRefactoringRBInlineMethodRefactoringRBDeprecateClassRefactoring$SpMorphicNumberInputFieldAdapterTest SpHorizontalBoxLayoutAdapterTestSpTableSearchTestMicrodownPresenterTestMicResourceSettingsTestMicCommentTestRTPatternMatcherTestRSQuantileTestRSColoredTreePaletteTestCoResultSetTest OCBlockScopeRGTraitCompositionTestRGEnvironmentBackendTest RBMessageNode DateAndTimeZnNewLineWriterStreamPharoCommandLineHandlerClassSessionHandlerSequenceableCollectionUndefinedClassTestCDEphemeronClassParserTestZnCRLFReadStreamTestOCIfNotNilTestZipWriteStreamTestYearMonthWeekTestCodeSimulationTestChangesBrowserTest,DelaySemaphoreSchedulerMicrosecondTickerTestClassDescriptionTestPluggableSetTest ArrayTest,ReInstanceSideFinalizeMethodProtocolRuleTestNetNameResolverTestRBRemoveClassTransformationTest%RBRemoveClassVariableParametrizedTestRBPullUpMethodParametrizedTest&RBAddTemporaryVariableParametrizedTestSimulateMouseTestGRayTestSettingsStonWriterTestRubTextFieldAreaTest SliderTestGIFReadWriterTestTemporaryVariableTest TraitTestCaseShClassInstallerTestFFICalloutTest TKTWorkerTestMCDependencySorterTestPackageAndClassesTestRBDeprecateMethodTransformation%RBAbstractInstanceVariableRefactoring&RBInlineMethodFromComponentRefactoringSpMorphicPanedLayoutTestSpVerticalBoxLayoutAdapterTestSpTreeTableSearchTestMicScriptBlockExtensionTestMicEnvironmentBlockTestStClassProcessorTestRSStatisticalMeasuresTestRSConnectionTestCoStatisticsTestRGTraitExclusionTestRGReadOnlyBackendTestDuration ScaledDecimalClassDescriptionPathCDImmediateClassParserTestSymbolZnCharacterEncoderTest&OCNewCompilerWithChangesFunctionalTest IRPrinterTestDirectoryEntryTestDateAndTimeTestInstructionClientTest,DelaySemaphoreSchedulerMillisecondTickerTest FalseTestHeapTestProcessMonitorTestService(ReInstanceSideHashMethodProtocolRuleTestNetworkIPv6StringTest0RBRemoveDirectAccessToVariableTransformationTest)RBRemoveInstanceVariable2ParametrizedTest RBPushDownMethodParametrizedTest&RBAddVariableAccessorsParametrizedTestCoverageCollectorTest GSegmentTest#GlobalIdentifierFuelPersistenceTestStoredSettingsMergerTestBitRegisterTestRubTextSegmentMorphTest ScrollbarTestImageReadWriterTestThisContextVariableTestTraitChangesTest!ShClassInstallerAnnouncementsTestFFICompilerPluginTestMCRepositoryAuthorizationTestPackageAndMethodsTestMCAncestryTest"RBExtractToTemporaryTransformationRBAddClassVariableRefactoringRBRemoveSenderRefactoringDebugPointObserverTestSpMorphicWindowAdapterTestSpGridLayoutAdapterTestMicStringExtensionTestMicFigureBlockTest'StRewriterExpressionFinderPresenterTestStFontChooserPresenterTestStHistoryProcessorTestStMetaInspectionTestRSViolinPlotShapeTest RSDSMTestCoFilterNarrowingComparisonTestIRJumpRGTraitStrategyTestRGReadOnlyImageBackendTest RBBlockNodeRBParserClyQueryBrowserStateTestZnCharacterWriteStreamCDNormalClassCategoryParserTestString ZnHTTPSTestZnCharacterStreamTest OCPerformTestIRTransformTestFileLocatorTestDateTestInstructionStreamTest DelayTest FloatTestWeakOrderedCollectionTest IntervalTest.ReInstanceSideInitializeMethodProtocolRuleTest QuotedPrintableMimeConverterTestRBRemoveMethodRefactoringTest RBRenameVariableParametrizedTestRBRealizeClassParametrizedTest5 CollectionasBagColorh:s:l: Magnitudemin:max:~ClassDescriptionisInstanceSidew KeyboardKeynamed: Dateyyyymmdd Collection|}{SequenceableCollectionreduce:}{String>߈Stringtrim.SequenceableCollectionoverlappingPairsWithIndexDo:SDatemonth.Pointabs. CollectionasStringOn:delimiter:last:Ł Collection withIndexDo:+SequenceableCollection allButFirstx+BagsizeAHDReport runPackages:}Number\\String substringszString asFourCodegBasicCommandLineHandlerhandleArgument:+qSequenceableCollection detectIndex: Collectionadd:withOccurrences: AsciiCharset toLowercase: Exceptionsignal:e Character isFinalQuotepPointxMColor h:s:v:alpha:N)SequenceableCollectionstreamContents:sbDateequals:; Collection ifNotEmpty:3STON toString:pOrderedCollection growAtFirstSequenceableCollection allButLastDo:8RunArraynewFrom:ҕNumber%9 SmallIntegereven Collection detectMin:&SequenceableCollection allButFirst: HDTestReportrunCase:>SpAbstractAdapterTesttestParametersyContexttallyInstructions: WideString asByteArrayaO Collection asByteArray StringincludesSubstring:+ CollectionselectEverySecondNumberrounded}WBooleannotL Collectionadd:L CharacterisDashPunctuationp Collection removeAll:NumberminutesSTONfromStreamWithComments:/SequenceableCollectionfindBinary:do:ifNone:SequenceableCollectionsixth2 CollectioncopyWithoutDuplicatesw BlockClosure cull:cull: QSequenceableCollectionatLast:ifAbsent:_Booleanand:L DictionarynewFromKeys:andValues:aCompiledMethod isExtensionz CollectionasArray SequenceableCollectionlast Collection removeAllNFalsexor:}"IntegerprintStringHexzSortedCollectionmedian Collection isNotEmptywPointisInsideRectangle:.Intervalstop!String>=True|SequenceableCollection atLast:put:True asInteger5 Collection detectMax:& CollectionasOrderedDictionaryzSequenceableCollection nextToLastSequenceableCollectionfindBinaryIndex:n RectanglecontainsPoint:Bag includes:m CollectioncopyWithoutAll:y#SequenceableCollectionfindBinary:ifNone:=;Integer slowFactorialSequenceableCollectionsorted:sT Collection sumNumbers)dTrueifTrue:}"DefaultExecutionEnvironment runTestsBy:LBooleanor:LStringasValidSelectorInteger factorial<1 Collection difference: Metaclass classSide 1Colorhex:uBooleanifFalse:ifTrue:LColor asColorrefO DateAndTimesecondFColor r:g:b:range:N)SequenceableCollectionsize.Point*cSequenceableCollectionidentityIndexOf:m|StringallRangesOfSubstring:pSequenceableCollectionpiecesCutWhere:3 CollectionassociationsDo:/IntegerhumanReadableSISizeString!Date monthIndexf ProtoObject ifNotNil:.Booleanxor:LBagcumulativeCounts SmallIntegerdecimalDigitLength/SequenceableCollectionninth2 CharacterisCurrencySymbolpStringformat:NOrderedCollectionaddAll:}{ Collection asDictionaryzPointmax: Metaclass instanceSide.SequenceableCollectionafter:ifAbsent:LString expandMacroszSequenceableCollection atAll:putAll:BooleanifFalse:L CollectionatRandom:weighting:o/ Collection includes:y# CharacterisDecimalDigitp Collectionselect:1Point+-OrderedCollection add:before:r CollectionasOrderedCollectionz Collectionmedian6StringcopyReplaceAll:with:ySet intersection:$SymbolasTestSelector>IntegernumberOfCombinationsTaken:> Collectiondetect:ifNone:=;SequenceableCollectionfirstbStringcopyReplaceAll:with:asTokens:h Collectionabs Collectionreduce:sTOrderedDictionaryat:at:ifAbsent:Objectjoin:/SObject->. SmallIntegerprintStringBase:[ CollectionsignSequenceableCollectionsecond2SequenceableCollectionfirst:xString<= Collection groupedBy:*FalseasBitNumber roundDownTo: HDTestReportreportTestCase:runBlock:/0StringisAllSeparatorssSequenceableCollectionmiddleNumber milliSecondsSequenceableCollectionallButFirstDo: SmallIntegerhighBit NumberstoreStringBase:pPoint isFloatPointTTestCommandLineHandleractivateEString asLowercaseSequenceableCollection swap:with:fSequenceableCollection pairsCollect:TrueasBit5PointminwmNumber**}{SequenceableCollectionat:incrementBy:wSequenceableCollectionasDigitsToPower:do: Collectiondo:separatedBy: CollectionincludesSubstringAnywhere: ByteArrayzipped! Collection inject:into: CollectionasSortedCollection:+String includesSubstring:caseSensitive:lColorh:s:v: Collectionnegated Collectionreject:thenCollect: CharacterisLetterpStringwithSeparatorsCompacted Charactertokenish! Collectionreject:y#SequenceableCollectioncollect:from:to:StringasHexSString capitalizedE BlockClosureensure:yIntegerdecimalDigitAt:m|Color asHexStringjBoolean==>3SequenceableCollectionargmaxkSymbol asAccessorKObjectsplit:indicesDo:]StringcopyReplaceTokens:with:ZDateddmmyyyyzSequenceableCollection lastIndexOf:startingAt:ifAbsent:d Collection emptyCheckClass classSide.SymbolkeywordsStrictõSequenceableCollectionpairsDo:ZStringcompare: IntegerstoreStringHexz Collectioncollect:1StringsqueezeOutNumberSequenceableCollection withIndexDo:TestCaserun:LTrueand:}"StringsurroundedBySingleQuotes' ProtoObjectifNotNil:ifNil:.BagsortedElementsRSUndefinedObjectifNotNil:ifNil:sStringstoreOn:&Fractionround:snBasicCommandLineHandleractivateSequenceableCollectionreverseWith:do:DatemmddyyyyzOrderedCollectiondo:SequenceableCollection do:without: TFTestCasetestParametersSequenceableCollection shuffledBy:sTSequenceableCollectionreject:^StringisAllAlphaNumericssOrderedCollectionremoveDuplicates Collectionselect:thenCollect:SequenceableCollection lastIndexOf:^String contractTo:%SequenceableCollection reduceRight:=SequenceableCollectionatLast:f Collection\\!Truexor:OrderedCollectionwithIndexSelect:SequenceableCollectionbind:.SequenceableCollectionisSortedSBagoccurrencesOf:/ Collection\}{SequenceableCollectionmergeSortFrom:to:by:String isAllDigits5 Collectioncount:uPointceilingxOrderedCollectionmakeRoomAtFirstSequenceableCollectioncollect:>OrderedCollectionasArray SCurrentExecutionEnvironment runTestCase: Collection includesAny:ArrayatWrap:2]SequenceableCollectionjoinUsing:last:!tSequenceableCollectionreplace:OrderedCollection growAtLasts CollectionanyOneY SmallIntegerprintOn:base:length:padded: CollectionasStringOn:delimiter: IntegerstoreStringBase:length:padded:kFTestExecutionEnvironment runTestCase:Objectassert:STON listClass SequenceableCollection from:to:do:4 Character isSeparator5 Collectiondetect:ifFound:ifNone: CollectionaverageIfEmpty:[SequenceableCollectionwithIndexSelect:N Collection anySatisfy:SequenceableCollectionselect:thenDo:rArrayedCollection with:withAll:` CharacterprintStringHex]TrueifFalse:ifTrue:s Collectiondetect:ifFound:WSTON fromString:Oh DictionarynewFrom:Numberround:.Falsenot SequenceableCollectionindexOf:&|SequenceableCollection readStreamDo:5StringescapeCharacter:vSequenceableCollection indexOfAnyOf:SStringcompare:with:collated:uOrderedCollectioncapacity$SetnewFrom:ۀSequenceableCollectionatAll:PointcloseTo:Symbol ascending.TestCaserunCaseManagedDNumber raisedTo:# Collection collect:into:rSSTON toJsonString:p CollectionselectEveryFirstOrderedCollectionadd:}{Pointmin: KeyboardKey named:ifNone: CharacterisConnectorPunctuationpOrderedCollectionreversed Collection asCommaString! Collection/>>}{SequenceableCollectionstreamContents:limitedTo:Z|PointsideOf:+ClassDescription isClassSide Boolean|L BlockClosure newProcessCurrentExecutionEnvironment activate:for:SequenceableCollection at:ifAbsent:_SequenceableCollectionwithIndexCollect:-STONfromStringWithComments:OhFLHookPrimitiveClusterFLPositive16SmallIntegerClustergZ, mq4yK'Sj@D p7cNzV(m0J'uG # 6O!fB@H3 F_J v9RPi,qCwb></F rNze(m?G^: fd}+ lWnaJva $Li;CZ6 Ib4y' :jF Yr] 'e7|?kV2^0 u#O{B Ya3_x; 9R .Z ,q> QjU-D]/ t7c|N*VmG#: CQ}Y+p3 W$xnJ &vR$i, XC6MyU'ltF"rN  e(A ?2 I! uQ dh+pBJa=;v.ZEqMd'l>FD]9 e 7|* =m0I \`#h:  B nY5a3x&RiE\d6 {>U1 D]/ t"  5NA mXd`2w:Q- @Y+Wp  _  1J &$= T\. o  s6{M)U'l "9eP|X*o2wI%u 8h  W  )B+5a1ML$xT Rk.sE!d@1]H tP |g* zoAI`<h:-YDpLc&Rk=iE \ 8 d6{>)  <U hl /Ht_"g9~A X 4`2w:%Q,Dp[c5 z=T0\. s!M@lW_1 v e~P,X*oI%<hS>B[- r5 zL(TkE!8dO{W)nvH$ 7P"g  ( 4`K#wS  j-rD L"Uc?=0\G sO{fn@ Ht_; g9~,XCKwbj< D [ 7 c 5z=(kG  Zs ^p!f8  }@W3_o v$PCZvb4`y<:S /[ - Yr 5  aL?kV ^0   \u 8}6O+W )Un1H $;gR~FLHookPrimitiveClusterFLNegative32SmallIntegerClusterFLHookPrimitiveCluster:7zPcL"_rH[1-@}S!)f<%b!4 Z0i?|R(exN$a ]3/lBh>{'d:#s\oEXkATFLPositive64SmallIntegerCluster ~ƀZz@ ї#oHv qCԥ ඳdT cEx] NrFLPositive8SmallIntegerClustertY>#|aF+؄iN3qV; y^C( ՁfK0݉nS8v[@% ~cH-چkP5sX="{`E*׃hM2ߋpU:x]B' ԀeJ/܈mR7uZ?$ }bG,مjO4rWtestTraitWithComplexSlotUsedInOtherSlotWithoutTraitComposition;testClassCommentToolIsNotValidWhenReferencingDifferentClassisCurrencySymboltestLazySlotPrint2testUntypedConstantIntegerArgumentHasUndefinedType saturation testDumpStack denominatorFileSystem-Disk-Tests testBasic03'testComputeDensityCurveDataOnlyOneValue)testTempNamedPutShouldReturnAssignedValuetestResolveability@testWorkerPoolDoesNotExceedPoolSizeWhenSchedulingTasksInParallel+testSearchForExactCaseSensitiveStringSucesssplit:indicesDo:testHeaderLevel6'testClassModificationOfTraitCompositionMorphic-Widgets-Extra,testLayoutWithChildAndOverlayHasBothElements(testMutateObjectInstVarUsingInstVarAtPut testSelect6testReplaceTokenWithCaretOnEndOfWordReplacesEntireWordtestIncludeSelectorOfMetaClasstestTimesRepeatExecutesBlocktestReadFromWithError%testMetaclassTraitImplicitEnvironmenttestIntegerPointerParameters'testParsingMPatternWithTwoDigitSucceedstestProtoObjectClass2testInjectingExceptionHandlerIntoNotRunningProcess#Calypso-SystemPlugins-SUnit-BrowsertestSizeUnsignedLongLongUnix64.testExampleTempNamedTempVectortestGoogleEncrypted(testBestNodeWithValidCascadeMidStatementtestSimpleColumnWithWidthtestLabelShapeHeight(testTooLargeAnIntegerInALiteralByteArray-testBlockParameterWhenTheLineWillNotBeTooLongtestallMethodsReadingSlot testReflexive&testFigureWithParameters_withoutQuotesHeuristicCompletion-ModeltestIsNotAbstracttestUpToAllTimeouttestEnabledAffectWidget testNoChangeInClassSlotsDetected includesKey:testRemoveFromProtocols/testFutureFallbackToHasFirstValueIfFirstSuccessBaselineOfUnifiedFFItestUndefinedVariable"testFailureExistsMethodInClassSidetestSinglePragmalastElm#testEnvironmentWithAnyNestedElementtestRejectAllThenDotestIntersectionBasictestUnsignedSumLongLongtestFillingWithTraitAndItsUserstestOneSpaceAroundBracketstestIndexOfBug1602testVariableNotDirectlyDefinedtestFindOcurrencesInClass1testLookingForStoreDiskLowercaseReturnsThisMethodtestSortUsingSortBlockOpalCompiler-TestsatLast:ifAbsent:(testComparisonOfFunctionsDefinedBySymboltestVisibleAreatestInstallFromStreamchartestWithAssignmenttestMathBlockWithParameters$testCompileWithProductionEnvironmenttestEditClassOrPackageScopeAddingClassAndCompletingFullPackagetest0FixtureIncludeTestselect:testAddClassSettingPackagetestPathConsumptiontestLocalHostNameFormtestCopyReplaceAllWithForSortedtestUnwindFromActiveProcesstestNameAccesstestUnaryNoExtraSpacesAfter2testAllReferencesTotestThreeRemoveLast testDequeuetestBreakOnWriteTo%testSubstringSearchNonExistingPackage-testUtf8EncodedStringShouldHaveNullTerminator%testLayoutWithSecondElementIsNotEmpty8testScrollDownToNonExistingIndexScrollsBottomToLastIndextestIndexOfMonthWithStrings testReadNodestestAsDateAndTimetestTAddtestBearingToPointtestBasedOnSingleBasistestSelectWordtestEnableDisabledHaltStPharoApplicationtestBasicCollectEmpty testBecome testAsHourstest4BitReversed'testBoxShouldBeInsideContainerRectangle mySelectortestNotifyTempBreakpointHittestSelectsFFIMethodrunnertestCallWithConstParameter"testKeyAtExistantValueReturnsOkKeytestBeIncludedMicrodown-RichTextPresenternextyeartestSizeSignedInt8exampleLiteralWideString testNewErrortestSetAndUnsetMovieDirectortestMethodCall2testScrollDownToPosteriorIndexScrollsBottomToIndextestSignedLongtestIsConfigurationNametestCreationByNamedCollections-Abstract%testDefinitionOfTraitedClassWithSlotstestDoItCompilation&testToolsToRemoveWhenManyToolsToRemovetestConcatenationWithEmpty%lastIndexOfAnyOf:startingAt:ifAbsent:findString:startingAt:testParseFontVariabledaystestNormalizedtestPushConsArraytestIdentityStruct%testTypedStringArgumentHasDefinedType newElementtestInvalidZLibCrctestMultiPackageMerge3!testPerformAddRemoveClassVariabletestCollectThenSelectLocal testCoercion0testMonitorAnnouncesUpdateWhenRedundantlyEnabledtestFailureModelBadNametestExampleSlotWithStatetestLiteralFloattestOpenFoldertestGcdtestRemoveClassSlotAndMigratetestNewSubclasstestwhenSelectionChangedDoBasicCommandLineHandlertestExpandedOnClassWithoutTag testReturn1testCompiledMethodLayout subtractDate:testNonExistantNametestSubstraction#testKeyCombinationOpensSearchWindowtestDeadContextSourceNode,testChangingAnAliasedMethodIsIncludedInClasstestMigrateClassVartestWriteStreamDotestMethodSourceNodeAtInitialPCtestDefaultWithNoValuetestwhenDocumentChangedDoCommander-Activators-TextViewNtestOneCanProceedWhenIntroducingClasseVariablesBeginingWithLowerCaseCharacters testMultiplytestZombieFirst;testCustomizationWhenChangeCollectionOfPreviewerShouldBeSettestTooLongLineWithArgument testWithAll testYearMonthDayHourMinuteSecond$testShouldAcceptIntegerWithoutMinMaxop aSubstring.testFixedLocatorRaisesErrorWithEmptyCollectionRing-Definitions-Core testDetectsorttestJumpOnBlockVariablestestUniqueIdentifierstestAvailableAutomaticallytestIsBellowRowleftSize0testFindThisMethodWithFullClassIsTheCorrectclass&testWindowLabelSetAfterPackageCreation#testKeyStrokeBackSpaceWithMaxLength testMetaclasstestAnimatedColorsOutIn4testSetUpToolIsNotValidWhenReferencingDifferentClasstestStructWithPointerAccesstestDrawingWayOutside4testTagsForMethodsCollection testExtensionsampletestBackwardCompatibility$testBlockWithEnclosedBlockSourceNodetestRealValueModificationKernel-Extended-TeststestPrimitiveRandomGeneration2 testLabeledtestEnvironmentWithNamespacetestInlineMethod1testIsRelativetestTopMostWindowIsNotShownsplitter shallowCopytestAllCallsOn5testFutureFirstCompleteOfSuccessIfSecondSuccessFasterIceberg-Plugin-MetacelloOpalCompiler-UIexpandMacrosWith:with:with:testSplitStringOnSubstring testBmp8Bit*testDefinitionHasCorrectStringWithoutSlots&testPackageOfMethodFromTraitsOverridentestServiceRunsAfterStartmergeSortFrom:to:by: testAssignmentOfClassNameBindingtest0FixtureCreationWithTesttestEvaluateAndDo$testClassUsingTraitsDoesNotHaveUserstestBoundaryContainsAny testFailureNotUnderstandSelectortestAPItestTruncateTotestExampleIfFalseIfTruedicttestCyclesWithtestCallbackAsFunctionspecInitializationStrategytestBigReceiverInexactNthRoot testFailureSuperclassIsMetaclassSystem-SupporttestTwoSpaceIndenttestExclamationMarktestDoesntContainPathtestWithoutClassSlotstestOuterBlockTemporaryVariabletestMoveDefinition testSideOf&testExtensionClassesWithCompiledMethodtestWatchVariableReadsInClass binaryBlocknextPut:test0FixtureOccurrencesTestoptionConstantBlockClosureisInitialQuote:'testTrueIfTrueIfFalseEvaluatesTrueBlocktestFailureMethodDoesNotExisttestTwoArgumentstestIsUppercase testRawdatatestConvertingToSemiAsyncQuerytestSplitJoinStringOnStringtestVisibleAreaWithScale2testVariableDebugPointNoRemoveAfterSubclassRemovedtestCodePointStreamstestUnsignedShorttestTitleLessonCreationtestAddExtensionDependencies'testComparisonOfTwoDifferentAnnotationsAtestInstanceSideInitializeMethodNeedsToBeInInitializationProtocol emptyCheck Commander2-UI testMidnighttestSelectsOverrideMethodtestRadio3StartsDeselected+testIncludeOnlyInstancesCreatedForGivenUsertestThreeSpacesBeforePeriod&testPerformRenameClassInstanceVariabletestSuperiorOrEqualtestOneGWordAllocation testAsTimeSpec2-Morphic-ExamplestestCommentOnMultipleLinestestUpToAllLimittestReadStreamDoifAbsentNottestCompileString7testClassHavingAnInstanceVariableUsersDifferenThanUsers#testClassWithSuperclassNameAsStringtestZeroRaisedToNegativePowertestReplaceVariableIntoAnothertestReadInContexttestInclusionForFloat$testClassDefFromLegacyStringHasSlotstestNextIntoCloseNonSignalingtestLocalModifyRemoteRemovetestWriteWeakSlotCompiled4testFailurePullUpWithSuperSendThatCannotBeCopiedDowntestCompileNumbertestPrimitiveNamed1.testSingleLevelListSplitWithMultipleEmptyLinestestInitialActivationtestStructureOfBoldSimpleTexttestSelectedTabsAreNotBuild)testUnmatchedLocalTempDeclarationInABlocktestRemoveAtNotPresent testBasenamerbClasstestUnmatchedBlockBracket testAsHour.testConfidenceIntervalMinIsLesserThanQuartile1testCreateScatterPlottestBuilderWithTagtestSpaceAfterCommentScriptingExtensions testIsMorph!testExampleSimpleBlockLocalNestedtestPatternCodetestIfFalseIfTruetestReverseLinksDotestAssignInstanceVariable"testFutureAndThenFailsIfFirstFails testBasic02compare:assert testHasBodytestTwoElementsContainstestCreateNilSubclasstestSearchPath2#testAddSharedVariableKeepSubclassestestAllSelectorsAboveUntil testTopStack,test0FixtureTConvertAsSetForMultiplinessTest+testLayoutChangeShouldAnnounceClassModifiedtestCoveragePercentForMock%testWarnDoesntPullUpReferencesInstVar testReadFromtestDecodeSimpleStringstestTailCompressedZerosToString2testKeepChangeWhenMethodAdditionWithAbsentBehavior Network-Mail"testAddParameterThatReferencesSelf(testCreateClassWithPropertySlotAddSecondtestSimpleDefinitionClassNodetestListTakesAssignedSpace testCritical lastIndexCtestPreconditionHasNoReferencesWithClassesWithReferencesBetweenThem,testRedefiningInstanceUsingBlockWithArgument<testBreakpointOnClassVarWrites whileFalse:testJumpOnEndOfSourcetestStylerRedLabel testCollect testYesterdaytestSelectsMethodWithWatchtestAddAfterLinktestNanoSecondsubSize$testCanCreateGitHubRepositoryFromUrltestEnableDisabledBreakpoint LGitLibrary%testReadFromDefaultOffsetNotSpecifiedObjecttestdefineTraittestSubclassesInEnvironmenttestRemoveClassRemoveTagIfEmptyNewTools-Sindarin-Commands&testClassTraitIfMetaclassAlreadyExiststestCallWithObjectParametertestUnpackagedPackagetestNestedStructure-testSingleLevelListWithStrangelyNumberedItems"testPackageIsUpdatedInInstanceSidetestOrEnvironmenttestBreakpointInitializationtestFirstTagWithDelimiterGtestRefersToLiteralsReturnsTrueWhenLiteralIsContainedInArrayOfLitteralstestSuccessors"testNoTraditionalBinaryPrecedence3 testNewLineBeforeAndAfterCascadetestAddingPackagetestNaNisLiteral-testLogLocatorNumberOfTicksIsOkStartingAtZerotestWithoutSyntaxHighlightmaxValue(testDoNotKeepBlockInMessageConfiguration*testLogLocatorDefaultSmallestPowerIsMinus3testFutureZipFailsIfSecondFails pieceBlocktestPrintStringNoOffsettestWorkerProcessDiesAfterStoptestUniqueNamestestFloatCenter#testAddAndAddInstVarNamedWithTrait2testExpressionSyntaxError MetacelloCommandLineHandler-CoretestRealizeClassFreeType-MorphictestFailureVariableNotDefinedtestIntersectionWithSelfNewTools-Scopes-Tests.testQuoteBlockDoesNotInterpretOtherBlockMarkup testSubtreestestAllDirectories2testConvertingWithNewBasisShouldKeepMetaLevelScopeyyyymmddtest32bitRoundingMode5testBasicNewMethodNeedsToBeInInstanceCreationProtocoltestTwoElementsRectangle,testAnnotatedBlockOnMultipleLinesParserLogictestPushConstantTwoBytecode argumentstestRawsDoesNotHandleWellCurlytestIsFixedLayoutRedShiftNSPerlinNoise2Roassal-Class-ExamplesnumArgs"testLinearLocatorNumberOfTicksIsOk7testFailureExtractMethodWhenGivenSourceIsNotInTheMethodNewTools-Spotter-Tests,testColumnNotHomogeneousPairedRowsAndColumnstestImplicitConversionFromClassindexOf:startingAt:ifAbsent:testSkipStepsMethodNodes testTomorrow%testCurrentLessonIsFirstOneAtCreation testEnsuretestMutateObjectClassce+testAnalogousCodeToTakesSelectorIntoAccount+testIdentityIncludesNonSpecificComportementtestAllReferencesToDo*testSelectorEnvironmentRemovesEmptyClassestestItalicsWithoutClosure testMcPackagetestGrowtestKeyUpFromMorphtestAnchorBlocktestSubclassArithmeticgtestSequenceIfNotEmptytestTicksOffsettestNoNewLinesAfterSignaturee1testSelectsOverriddenMethodtestSumUnsignedInt64 rcvrElementtestNextIntoClosenewtestFindThisMethodWithFullClasstestHome'testValueWithinTimingRepeatMillisecondsSystem-BenchmarkMorphic-Widgets-PolyTabs+testMoveClassInPackageWithExtensionsOnClasstestSignedLongLongcharactersExactlyMatching:Roassal-Global-TeststestSimulateRightClick!indexOfAscii:inString:startingAt:testTraitAliastestWhiskerLinesFormat value:value: testWithRB4testWithIndexCollecttestCollectThenSelectOnEmptytestTagtestOwningClasstestWhileTrueExecutesLeftBlocktestReadStreamDoifAbsenttestAddMovieDirectorInvalid Calypso-SystemTools-QueryBrowser=testDefinitionOfClassSideTraitWithSpecialSlotHasCorrectStringtestExampleTempNamedPutCopying2 Equals-TeststestHorizontalAttachPoint testAllNamedtestModelAbstractClassVariabletestBreakpointOnClassVarReads0testBestNodeWithValidPostionOnStatementPeriodEndtestIsChildOfPath)testReadIntoStartingAtCountFromStreamWidestestCommentWithoutImpacttestProperRemovalProtocolIsUsedtestAccessingTempsVectorInBlock-testMixingOrderedInsideUnorderedWithParagraphtestKeyAtIdentityValueIfAbsent testClassInstanceVariableRemoval&testSelectorsWithExplicitOriginNoTrait testMarshallingStringReturnValueisCasedLetter:testRemoveSelectedRule4testTwoRectanglesWithAnAdjascentCornerDoNotIntersecttestRaisedToErrorConditionstestNewEnvironmenttestByteArrayRange lastIndexOf:startingAt:ifAbsent:testBecomeIdentityHash8testCreateTwoUndefinedClassesOfSameNameShouldBeSameClasstestModifyIvarToHistory!testAddShadowSeveralTimesOnAShape,testSubscribeToUnexistentPropertyRaisesError testShuffledtestIntersectionsWithLine9testFutureSuccessCallbackExecutesInSameLocalProcessRunnertestNodeDistancesTo'testSelectorsInProtocolWithRealProtocol-testShouldWarnWhenRemovingClassWithReferences testMergingOverlappingRectangleshex: testResettestArithmetictestDefinitionWithoutInverse/testTraitMethodClassBindingShouldBeClassBindingtestAddOneElementtestFindOcurrencesInHierarchyiteratortestJoinArrayUsingArray2testAddingStatefulTraitToClassAddsInstanceVariabletestAddAfterLasttestDoesNotUnderstandAccessorstestUnsignedInt testFileOutSingleProtocolRemoval!testDoItRequestorReadRequestorVar!testFutureZipSuccessIfBothSuccessisPoint testBuildsDefaultResultByDefaulttestAnySastifytestUsingConstJustInSameMethodtestSourceNodeExecuted toJsonString:testWeekPrintOn Iceberg-TipUIisDigit!testWithWeirdValuesLineWithTicks2testKeywordOnMultipleLine10 testDateTime testDefaultstestJoinUsingLastOnArray-testNoNextInstanceCreationBeforeContextReturn(testEditClassOrPackageScopeRemovingClass&testExtractSetUpWorksWellInOtherMethodtestCustomWeighttestStepIntoQuickMethods:testClassWithUndefinedSuperclassNameHasUndefinedSuperclasstestEscapeCharacterInLinkName testSingleLevelList2WithNoIndent testYMarker!testNoTraditionalBinaryPrecedencetestPrintingItalic!test0FixtureDictionaryCopyingTesttestAllSharedPoolstestAddDuplicateItem1FileSystem-Tests-AttributesSessionAccessModeResolver testBytecodetestParseBogustestDoWhileFalsetestDefaultUpperWhisker1testCanRemoveUnreferencedClassWithFullEnvironment#testBetweenAndDoOverlappingScheduletestOldPeekBacktestExampleSimpleBlockEmptytestFaultyScripttestDependantPackages+testClassRepackagedNotFiredAtAClassAdditiontestRowSpanRowNotHomogeneoustestHasNonDefaultArguments testFloatstestPreconditionNotEmptyClass1testMoveToNodeKeepsStackWhenAimedNodeIsMethodNodetestJumpBackTotestWordLayoutxtestMethodRemovaltestIsNotRelativetestCornerDirections%testMergeWithFontRemovePredefinedFont testAsLocaltestAddAfterLast2testIdentityIndexOfKeyIfAbsenttestHaloIsDisabletestClockPrecisionDuration CodeExportisAlphaNumerictestSingleSlashSpec2-Adapters-Morphic-Tests testBehaviortestDetectEncodingtestPrintLimitedString testIsSorted testMessagetestEmptyBlockReturnsNiltestInitialCacheBuildtestUntypedTrueArgumentIsTruetestSimpleLookuptestIfNotEmptyifEmptytestBreakpointsForModeltestHasLabelTrue*testRemoveClassesWithReferencesBetweenThem testCycle04-testExtractMethodAtEndOfMethodThatNeedsReturn#testForcedRuleOnMethodWithGlobalBanLtestAddMethodInExtensionCategoryWithExactMatchAddMethodToTheExtendingPackage testStdout2testPackageOfNonExtensionMethodIsPackageOfTheClass testHashBlockMetacello-TestsMCCoretestDoesNotShowIconsSystem-Hashing-TeststestGetLowerLimittestForkAtHigherPriority#testDereferencedExternalObjectErrortestSumSignedInt64"testSearchTextChangeSelectedShapestestDoublePragmatestBenchForException test22addAlltestPrimGreaterOrEqual#testDynamicLiteralArrayReturnsArraytestWriteAndRead)testExampleTempNamedTempVectorInlinedLooptestTwoEventHandlersAreAttached!testContainsShapeWithInteractionstestRetryingInstVarModificationtestWithRB10WithErrortestAllButLastDotestStandardTraittestStepToNonLocalReturnnext:testExampleSimpleBlockLocal"testResultIsADTCoverageResultClasstestAddTwoParameters testPredicatebadAnnotations#testClassAdditionWithCommentChangedtestByteCannotExtendWord*testSupplySeveralAnswersToSeveralQuestionsMonticello-GUI-DifftestSelectWordMarkPointtestAllEntries testEqualstestEditClassOrPackageScopeRemovingClassAndBreakingFullPackagetestCompositionCopytestNotifyDebugPointRemoved$testFailureFindOcurrencesInHierarchytestLowerLimitsWithGeometrytestAcceptEntryLogsItsSize)testProtocolRemovalOfUnclassifiedProtocolp'testTraitDefinitionNodeIsTraitAliasNode*Calypso-SystemPlugins-Reflectivity-Queriestest2DCoordinatestestMarkerSize8testResolveConstantSelfShouldResolveToExternalObjectType testAddAfter#testHasSelectorSpecialSelectorIndextestSuperiorWithFloat'testNotVisibleMorphIsNotGettingAnExtenttestActivateReturnValuetestBuildingGroupstestPrimesEncodingtestModelAddClassVariabletestAddSlotAndMigratetestWithIndexDotestTextWithStyletestIncludesElementIsNotTheretestIsMatchingPassword#testEscapeCharacterInNestedLinkNametestGetShapeFromRectanglewithLineEndings:,testFlatStructureLayoutSysVAMD64PostProcess2DtestRemoveProtocolIfEmptyWithNonEmptyProtocolDoesNotAnnounceAnything&testSubstringSearchNonExistingSelectortestIsProbablyPrimeBaselineOfClassAnnotationtestInvalidRadix.testBlockParameterOnTheMethodLineWhenMultiline*testSelectingPageShouldAnnounceChangeEventCollections-AtomictestUsesPoolVarNamedtestReturnFormatValue,testDictionaryConcatenationWithoutCommonKeystestDraggingModifiesValuetestAddAlreadyThereDoesNotCountnumberOfWishedDecimaltestFractionAsFloattestSmartCharacterAfterEspace testHhmm24 testGetNewTab testLongCalloutDoesNotBlockImagetestPrecedencesCanBeCombined FileLocatortestSlowFactorialtestSetLastModificationtestNewLineBeforeFirstKeyword*testClassDefFromLegacyStringHasPackageName$testTraitWithComplexSlotInSuperclass*testSequenceReturnsTheSequenceOfAllResults=testRemoveClassUnregisterTheClassDefinedMethodsFromItsPackagetestExecutesConcreteQueryClass+testValueWithArgumentsWithOrderedCollectiontestExampleBlockExternalArgSystem-PlatformstestByteArrayWithinArraytestRedundantMethodAdditiontestRedundantClassAdditiontestHasSharedPoolstestReplaceInstrtestIsImmediateObjectdecimalDigitLengthtestBehaviorWithMethodTagstestCanUnderstandInSubclasstestObjectCentricBreakpointtestWeakSubclasstestallSuperclassesIncludingPtestWhenWeHaveTheRubTextFieldAreaInsideOtherMorphHasToHonorTheExtentAssignedToItGraphics-Primitiveseighth'testFillingWithObjectAndTwoProtoObjects'testNotEnvironmentWithClassEnvironmentstestDefinesSlotNamedtestRemoveProtocolAnnouncement2testExampleSuper testNewPerson ThreadedFFI^ nextToLasttestAsCommaStringOne5testEqualSignIsTrueForNonIdenticalButEqualCollectionstestStructureOfAnnotationBtestPackageCommentToolIsNotValidWhenNotAPackageOrClassGroupContexttestFactorialSearchtestPrintNameOn,testTypedConstantIntegerArgumentHasZeroAritytestNoExtraSpaceAroundBlock.testStartWithoutSelectionDoesNotTriggersChangeSortFunctions-Coredetect:%testAddLinePlotAndBoxPlotReturnsChartsender.testInitializationAllCheckBoxDictionarySetTruetestAtPutOutOfBoundstestDeactivatedCheckboxPresenterStartsDeactivatedCheckboxMorphtestEquivalentTreeWithMethodNodeWithDuplicateMethodExpectFoundpiece#testAsIdentitySetWithEqualsElements%testMakeClassAbstractWhenClassNotUsed!testClassNameWithInvalidCharacter&testMutateObjectInstVarUsingBasicAtPuttestEmptyBlockZeroArguments$testCreateAndUseStaticCompilerPlugintestPrimMultiplytestIndexOfIfAbsentDuplicateprintOn:showingDecimalPlaces:testNetworkPathWithParents"testConvertingWithExtraBasisObjectassociationsDo:testNewForClasstestFitInExtenttestFoldersOnlytestReplaceElementAppliesStyletestJumpOnSelf testHasBindingThatBeginsWithTemp$testExtensionMethodNotExactlyTheNameNewTools-Debugger-CommandsEtestRemoveTraitMethodOverridenByClassDoesRemoveMethodFromClassPackage testQuotienttestPresenterOpenAndCloseRoassal-Spec-Morphic RTree-Tests ColorPicker&testRebuildPresenterBeforeOpeningWorkstestHidePresenterHidesWidget5testGetShapesFromRectangleInCompositeWithChildOutsidetestUpdateDisplaytestNewTraitAliasperform: testWithRB7testIncludedPackagestestMetaclassWithTraitItestPerformChangesWhenChangesBiggerThanUndoSizeExpectCorrectChangesUndone'testTypedPointerVariableArgumentHasNametestSizeUnsignedInt64testLocalProcessTaskRunnerExceptionIsHandledByExceptionHandlertestIncludesAllNoneTheretestTimesRepeatWithTempInBlocktestFips180Example1testHasLiteralSuchThattestComputeVerticesSingleLinetestPullUpVariableTransformBaselineOfCommandertestRenameTemporarytestNoPeriodAtEndOfMethodetestMetaDataEatsOtherBlockstestAssignArgumentVariabletestNumberOfDigits&testWhileTrueExecutesLeftBlockWithTemptestMarshallingOOPIsSameObject&testAllGlobalBindingAreGlobalVariables asIdentitySettestName testTimeZonetestSerializeContextToFileNamedtest1BittestBuildCreateCompositeShapes+testPackageTagRemovalWithPackageTagAdditiontestMultipleChunks testAsIntegertestWhitespaceAtEndallSentMessages@testCancelCompletionInClassWithDynamicExtentDoesNotLogOtherClassaClass$Calypso-SystemPlugins-Critic-QueriestestTallyInstructionstestBasenameWithoutExtensiontestAddWithSymbolWorksself"testSingleLevelList2WithFormatting readWritetestRootPrintString testIsRoottestFailureBadMethodName%testExistingInstanceVariableAccessorstestHasContext:testParseFunctionArrayWithPointerReturnTypeHasFunctionNametestParentUpTotestOR+a1a1 testAddMany0testLinesOfCodeMultilineCommentWithoutWhitespace%testFailurePullUpWithInvalidSuperSendtest0FixturePrintTesttestCanPerform#testFutureFallbackToFailsIfBothFailtestSettingUpWindow newLastIndexSortedCollection$testOptimizedBlockWriteInNestedBlocksourceCode:in:withProtocol:testAsMicrosecondsBaselineOfTraits testFullNametestPeriodAtEndOfMethodtestEmptyMethodReturnsReceiver!NewTools-Scopes-Resources-B-Tests9testFailureRemoveClassWithBadNameRaisesRBRefactoringError:testUntypedConstantNegativeIntegerArgumentHasConstantValuetestMakeRelative testLabeled01testRemoveLasttestSelectsMethodWithHalt$testLogLocatorSmallestIndexIsCorrect testThreeCalypso-SystemQueries-TeststestDoubleClickFromMorph(testFillingWithClassAndItGrandSuperclasstestNoNewLinesAfterGluedCommenttestReferenceConfigPrintString testBounds5testRemoveNotEmptySuperclassPushDownInstanceVariablestestAllAtomicTypesCallbasenameWithoutExtension:$NewTools-RewriterTools-Backend-TeststestRemoveAfterClassRemovedx0testFlatCollectAsSet Renraku-TeststestFileOutCategoryMetacello-BasetestOneGBAllocationtestExternalSUnitDependenciesOrderedCollection$testSettingNodeIdentifierForRootNodetestUDPBroadcastErrorSystem-Utilities-Tests testZero1 testAnnotated0testPlaygroundJumpOnIfTrueIfFalseAfterCompletiontestNewWithSizetestBindingsWriteGlobals!findFirstInByteString:startingAt:1testRemoveElementAddedAfterOpenRemovesFromAdaptertestPointersToCycleSystem-BasicCommandLineHandlertestVariableSubclass testComputeVerticesMultipleLinespiecestestStoreSettingNodeTwice&testPrintPathOnDelimiterOnNetworkDrivetestUnaryFormatReceiver2%testRemoveElementReallyRemovesElementtestLinesOfCodeSimpleCaseSystem-Utilities0testTraitedClassSubclassHasEmptyTraitCompositiontestToDoOutsideTempNotInlinedtestRenameClassTransform joinUsing:testAllClassVarNames=testRefersToLiteralsReturnsTrueWhenLiteralIsInPragmaArguments testNumbertestSymbolicLinkTargetPathtestRemovePropertySlot2testStoreSettingNodes3testDTTestCoverageResultBuildTreeForUIContainsNodes testBlack8testIntoWorldCollapseOutOfWorld testCompileJobs$testMathBlockWithParametersWithBlankAtestFailureRaisesRBRefactoringErrorWhenRemovingNonEmptySuperclass2testPushDownMethodDriverWhenHappyPathExpectChangesfillFrom:with:testUpdatingSelectionsOnUpdatetestANDasValidSelectortestNewLineBeforeCascade2 testWatchVariablesWritesInObjecttestInlineLiteralArray#testBehaviorWithUnategorizedMethodstestModelRenameSequenceClasstestPerformAddRemoveClassMethod"testDoesContainReferenceFileSystem testAtWrapPuttestCanInstantiatetestContainsLocatortestSizeUnsignedInt16 testColor testTagOftestBinaryZippedtestIsEnabled2test0FixtureBeginsEndsWithTest testSimpletestIfExistsIfAbsentMonticelloRemoteRepositoriestestUnclosedBoldtestMorphInlinetestAddProtocolWithRealProtocoltestTypedStringArgumentIsStringSUnit-Visitor-TeststestIsCurrencySymbol$testIsExecutedFromConcreteScopeClass&testEditClassOrPackageScopeAddingClass FooBarBaztestUndeclareSlottestCopyEqualstestCopyForBehaviorDefinitiontestMustInclude03testCmdCtrlLeft6testCaretInTheMiddleOfSecondWordHasSecondWordUpToCaretCalypso-BrowsertestVariableClassWithTraitCreatedShouldntAnnounceClassModifiedtestArgumentsAreFormatedtestEndPeriodInsidetestExtractSetupExample5 ProtoObjecttestFloatParameterstestNewSecondstestClassDoesNotExist!Microdown-RichTextPresenter-TeststestHasBindingThatBeginsWithtestByteArrayToExternalAddressRefactoring-Critics-TeststestPushDownVariableTransform#testCreateClassWithTwoClassVariable~=testAssignSuperVariabletestNewTraitComposition(testThirtyTwoBitRegisterAdditionOverflowtestReadOnlyErrorsNewTools-SettingsBrowser-Tests from:to:do:testIsWeakLayouttestEnumIncludes testUnhandledErrorWhenNoHandlerstestAsAbsoluteConvertedtestPngDecodingColors87testRedundantBehaviorRepackagedChangeWithAbsentBehavior.testAddParameterThatReferencesInstanceVariable0testSelectPresenterWithoutScrollingDoesNotScrollSettings-GraphicstestNoNewLinesAfterCommenttestArgumentIsReadtestPullUpInAHighHierarchyClass#testCleanUnusedUnreferencedPackages%testAddAndRemoveMethodsInClassOrTraittestAreSortedByPriority(testImportAMethodWithSpacesInItsCategorytestLastwindowIsNiltestAssignTemporaryVariabletestMczSerializationtestMinusADateAndTime&testClassAdditionWithSuperclassChanged test0CopyTest'testNextNameForExtensionNegativeTesting$testPassingByParameterAStructInPharoLtestRemoveClassUnregisterTheClassExtensionMethodsFromTheCorrespondingPackageaSortedCollectiontestAnnotationIRtestUTF8EncoderAuto$testKeepBlockInMessageMutlilineSpacetestParseFailureanObject testMerge6testRank/testAccessingMethodArgFromOptimizedBlockContextSystem-Object Events-Tests test32BitTranslucentBlackIsBlacktestCommentStamptestAddArgumenttestUnclosedStrike testSmartQuoteSurroundsSelectiontestBecomeForwardHash PerformMessageCommandLineHandlerisFloattestBuildLayouttestTrait3AndTagtestPipeEscapetestAssignThisContextVariabletestTraceForDisabledHalttestTranscriptPrinting"testNoExtraSpaceArroundParenthesistestPackageOrganizer Spec2-DialogsOtestAddMethodInExtensionCategoryNotRespectingCaseAddMethodToTheExtendingPackage<=testParentResolutiontestFutureCollectFailsOnFailure testGoodPathRemovingNonEmptyLeaftestDoesntContainReferencePathtestOrdinalScaletestMemoizedLRUCachetestARectangleContainsItsOrigin'testAPIToAccessChildrenOfNestedElements$testRemoveAllTextPresenterDecoratorstestConditionBehavior%testTraitRemovalWithTraitAlreadyAddedcount:Debugging-CoretestAddMCPackageCreatesAPackagetestMicroSecondsanyOnetestClassSideWithTraitstestCustomFocusOrder:=testWithNullElementtestNextNameForExtension Morphic-TeststestArea testFromDos6testClassAdditionWithMetaclassInstanceVariablesChangedtestHomeGoesToStartOfLinetestStandardMetaclassMethodtestIfNotNilDo testANewLineCreatesANewParagraphTaskItAtestSimilarToAnnotationOfSameClassWhenBothDoNotDefinedWithContexttestResolvingConsistency;testFixedClassWithTraitCreatedShouldntAnnounceClassModifiedtestNegativeZeroSigntestCreateTextMorphtestModelAddMethodnamed:testCyclesWithAtLeast testRemoveAttestOneElementContainstestTrueIfTrueReturnsBlockValuetestKeywordFormatParameter8testComparisonOfSameQueriesWithDifferentRequestedContent#testIdentityIndexOfIAbsentDuplicatetestPrintShowingDecimalPlaces3testAllSelectorsRefactoring-Core-TeststestOverlaysAreAddedInOrdertestIsInitialQuoteprintStringHexOtestWhenFilesListSelectionChangedAndIsAJPGShouldpreviewContentPresenterIsNotNiltestIndexOfWithDuplicatestestAsNanoSeconds;testIteratorOnACollectionReturnsTheFirstValueAndSecondValueZinc-Resource-Meta-TeststestCreationByNamedParent#testRemovingTraitsUpdatesCategoriestestNonOrientedAngleWithtestExtensionSelectorsForClasstestSimpleTableWithMoreLongRow2testSelecting2ElementsUpdatesThePresenterCorrectly-testExtractClassFromMessageExpectGotExtractedtestMathBackslashtestAddBeforeAndRemovetestHasUnknownScopeByDefaulttestHighlightAllShapestestClassWithUnknownSlots testCentertestFlatStructureLayout2testCompositionFromArraytestErrorOrderscollect:thenReject:testExtraIndentInParentheses inject:into:GZipReadStream/testBeginningExpressionsOfASequenceGotExtracted7testRunCaseMethodInSUnitTestsNeedsToBeInRunningProtocol(testParsingDPatternWithIncorrectDayFails testClonetestSharedPoolOfVarNamed9testIsNotTerminatedWhenItIsJustStartedByEnteringMainBlock*testNoNewLineForBeginingOfATooLongArgumenttestFirstNElements+testNoNewLineForBeginingOfATooLongArgument29testFutureFailureCallbackExecutesInSameLocalProcessRunner&testDemoteToRPackageNamedKeepOrganizer*testRestoredBrowserInstanceWithActiveScopetestLabeled03HasModeltestGrowWhenNecessary1testResolveConstantIntegerShouldSetConstantLoadertestWhileModificationBefore testBitClear testHasSlot isKeywordtestSyntaxError#testObsoleteTraitIsRemovedFromUsersprintPathOn:delimiter: testAddAll*testParsingMPatternWithSingleDigitSucceedstestFork testCircletestReadSlotNamedHtestWorkerProcessInstancesAreCollectedAfterStartingAndStoppingWorkerPool isUppercase$testAddingSlotDoesNotRemoveExtensionisCurrencySymbol:Collections-StreamstestCreatingWindow&testCanCreateFiletreeRepositoryFromUrlendsWith:caseSensitive:STON-Extensions*testModelInlineMethodWithSameVariableNamestestSelectThenDo#testLazyClassVarReadReflectiveBlockorigin:corner:foundIdx running:of:"testNestedBlocksRemoteInBlockCase1testDefaultMetaclass!testToLongNewLine2WithSpaceBeforefifthtestPackageNamed!testIsOfflineTrueAndResourceFound&testLessonAtReturnsCorrespondingLessontestCannotReturn testCodeBlockWithNestedCodeBlocklastBytetestGoodPathVariableIsUnused>testMoveToNodeWhenNodeIsNonInlinedAndEmbeddedInNonInlinedBlocktestRemovingExtensionProtocol rejectBlock!testServiceExecutesStartUpOnStart testReadTemporaryVariablesMethod)testFalseIfTrueIfFalseEvaluatesFalseBlock+Calypso-SystemQueries-Tests-P1WithHierarchytestUpToEndCloseNonSignalingtestWikipediaExample1testExampleTempNamedCopying2testPrintStringSecond LibGit-Core;testRefersToLiteralsReturnsTrueWhenLiteralIsArrayOfLiterals'testParentResolutionWithRemoteReferencetestPullUpClassVariable-testNewLineBeforeStatementsWhenMultilineBlocktestMetaclassInstanceVariablestestDenormalizedPrintStringtestMethodArgument#testNoExtraSpaceArroundParenthesis2close>testCreateSubclassOfArbitraryExpressionReturningNilThrowsErrortestAddressesIntestMarkerMethodstestSpacesInsideParentheses groupByRuns:testSimpleClassVariablesCommander-Core-TeststestTestResultIsNotEmpty4testRenameProtocolAsWithExistingProtocolWithProtocol)testCommentBetweenTemporariesAndStatementAthens-Core-TeststestAddNewElementIncrementsSizetestAddInstVarNamedtestJoinArrayUsingObject)testWithTopDoesNotProduceInvalidRectangle+testRemoveNonexistentSelectorsFromProtocolstestMissingGZipCrc testUsersOftestClassTraitstestConvertingToInheritedScopetestCreateInstanceWithDataset EpMonitor newObjecttestGettingExistingClass h:s:l:alpha:dayCounttestIsClosePunctuationtest4 testMathBlock testPrintHalttestToLongNewLinetestSubtractDaystestIsBaselineName testTransformtestHashingPeppertestWeakClassVariableIsWeak3testMergingTwoStylesWithASameClassHasRightOnlyClass7testMandatoryEncodingWithSpecifiedEncodingShouldNotFail Text-Tests*testInlinedBlockArgumentIsArgumentVariabletestFileSystem$Calypso-SystemPlugins-Traits-Browser testUnzipTo testNotNilIfNotNilEvaluatesBlocktestScaleLinearRound(testAcceptTwoEntriesAtSameIndexLogsCounttestBreakOnceInContext raisedTo:testIncludesAssociationNewTools-Spotter-ExtensionsflatCollectAsSet:Tools-CodeNavigation-TeststestEmptyClassVariabletestBehaviorRepackagedChangeItestStringEncodingWithMandatoryEncodingWithSpecifiedEncodingShouldNotFail#testReRunResultIsDTTestRunnerResulttestClassDefinitionB)testNestedLayoutModifiesHeightOfTopLayout testAsPackagetestPrintShowingDecimalPlaces2testClickExecuteActiontestAsSortedCollectiontestBeColumnHomogeneous&testKeepBlockInMessageMutlilineNewLinetestIntegerAsFloattestKeywordOnMultipleLine6testSubClassWithTraitsAfterModificationOfParentSharedvariablestestLogBrowserOperation%testSelectManyIndexesKeepsAllSelectedtestScanAllSystemEnabled roundUpTo: testPragmas/Calypso-SystemPlugins-Deprecation-Queries-TeststestUnknownProcessesruns testBoldMultipleLinesWithNewLinedayName testReversed(testManifestNamesAccordingToPackageNamesDtestIsAffectedByChangeOfMethodOfTargetClassWhichOverridesAbstractOne"testNotBoundToEnvironmentByDefaulttestClassWithClassSideImpacttestRenameInstanceVariabletestStoredSettingspairsDo:testContinuationExample1testRenameClassFromTrait@testThatThereAreNoSelectorsRemainingThatAreSentButNotImplementedtestBuilderWithSlotstestSearchingString testBasicstestTComparableClassTraittestReadFromMillisecondtestFailureOverriden testUTF8Back"testTraitHaveUsersInstanceVariablew%testAdapterElementsAreInExplicitOrdertestByteArrayBase$testLogLocatorBaseIsCorrectlyChanged$testLineBetweenTemporariesAndCommentprivateMinComponent aBinaryBlock namedColortestRelativeToBranchtestPrintOnFormattestTerminateInTerminate testRunTarjantestSimultaneousModification*testDefaultCompletionEngineUsesGlobalClass*testParsingDDPatternWithIncorrectDaysFailstestIntegerDivisiontestExtendingPathtestIsRootDirectoryWindowsDriveJtestWhenPathTextInputPresenterAcceptShouldChangeFileListWithTheGoodContent testNewTraittestDebugSessiontestToDoWithTempInBlocktestSizeUnsignedInttestAssignmentOfSelftestMarshallingTrueReturnValue&testUntypedNilArgumentHasUndefinedTypetestisZipArchive6testAcceptTwoEntriesAtDifferentIndexLogsSeparateCountstestIndexesArrayWithCompositestestConvertingToAsyncQuerytestOldDefinitiontestUTF32EncoderExampleFromD99,testStepContextTakenConditionalJumpBytecodestestAssignmentValue testSameModel>testClassCreationToolIsNotValidWhenReferencingDifferentPackagetestSpeciesLooseSortBlocktestLocalHostAddress'testLeftWithoutResultsBroadensSelectiontestFailureIsDirectlyUsedDrTests-RottenGreenTestsFindertestEnumIdentstestEmptyQueryShowsResultsMCMethodDefinitiontestDefaultParsingSucceeds'testSubClassWithTraitsAfterModification testBinsStrattestByteCanExtendBytetestColumnSpanColumnHomogeneoustestComposingMondriantestTraitObsoletetestPrintOnWithParameterstestOrganizationDefinition>testIncludeInstancesFromAllAnnotatingMethodsOfAnyClassInSystemHtestReturnExtraSpacesInIndentWhenMultilneWithThreeSpacesAfterCaretSymbol&testMonitorAnnouncesUpdateWhenDisabledtestJoinArrayUsingChar-testModelExtractMethodWithTemporariesSelected0testSelectPresenterItemSetsSelectedIndexInWidgettestTheMetaclass testLineStartIsInitializedToZerotestConvertingToDoItVariable/testLastBcOffsetForNodeWhenMappedPcsAreNotEmptytestGlobalVariablesCollectionSpecific-Rules-Tests6testLinesOfCodeMultilineMethodCommentWithoutWhitespacetestIsOtherSymbolBaselineOfNumericScales-testFailurePullUpWithMethodThatCannotBePullUp test2DVector(testDefinitionOfTraitUsingTraitWithSlots(testDropListChangeShouldChangeTableItemstestCanRemoveReferencedClassnumberOfDigits testMethodRemovalWithMethodAddedMonticelloTonel-Core:testMultiplicationWithNonScaledDecimalDoesNotGainPrecisiontestAtAllPutAllGraphics-Display ObjectsSystem-SourcestestSelectSomeOther endsWith:testAPIFromBlocktestConstructedClassEnvironmenttestKeyDownFromMorphtest4BitDisplaytest08addAfter%testMetaclassInstanceVariableAddition=testEquivalentTreeWithMethodHasSuperSendInSuperClassExpectNiltestUnsignedInt32testClassWithClassSlotsRubric-Styling,testIndexesToSelectInMultipleSelectionFromTotestMajorMinorVersion testConditionBehaviorThisContext'testCaretInTheEndOfWordHasWordUpToCaretmaxValtestSizeSignedInt16testBreakpointOnArgument testRemoveAfterSuperclassRemovedeachfoo:-testSimpleTableWithFormattingWithSomeElements,testSetPackageOfClassAnnounceClassRepackagedtestOddCollectionSize!testFourBackQuotesOnMultipleLinesFuel-Core-Tests!testGetQuartilesOfEvenDatasetSize'testFailedAssertionContextInSenderChaintestSetOfFloattestRetrievesMethodQuerytestAllSlotNamesFortestMcWorkingCopy#testIteratorOnACollectionIsFiltered.testSubClassWithComplexTraitsAfterModification]testExtractSetUpWhenTemporaryReferencedOutsideOfSelectionExpectExtractedAndTurnedInstoInstVar,testValueWithinTimingNestedInnerMillisecondstestDefinitionOfNormalClass(testReplaceVariableIntoSupeclassVariable0testTempAssignmentAndReferenceExpectGotExtracted anIntegertestInCriticalWaittestHierarchyRoots testPrimBitOr#testBestNodeWithValidKeywordMessagetestJumpOnNoParameterBlocktestExecuteSortingOntestMaximizeWindowtestLocalSelectorstestIsSeparatortestStepOverLastNodeOfContexttestRenamePackageWithExtensions asWideString1testClassCreationToolIsValidWhenClassGroupContext"testTAddIfNotPresentWithNewElementtestStepSingleBytecode=testRenameProtocolAsAnExtensionOfThePackageContainingTheClasstestStepThroughInAMethodWithMNUstopvalue:"testRevertingAllRedefinedInstancestestIsModifierSymboltestSplitJoinOnSequence+testCannotCreateDictionaryRepositoryFromUrl testCopyingtestAtAtIfAbsentPuttestSplitBlockLinkIncompleteMorphic-Widgets-ListtestRestartContextAt$testSenderLookupsMethodInSenderChaintestBuildClassSlotsAPI"testExternalBasicToolsDependenciestestAtAtputEffectivelyPutAValuetestCallWithConstanttestAPIFromMessageSendReceiver$testLowerThanFirstBCOffsetAccessTesttestUnknownSlotstestFailureClassDoesNotExist,testSameSourceButDifferentMethodsAreConflicttestMessageArgumentstestAddSecondstestDegreeNumbertestHasVersiontestInexactRaisedTotestBehaviorCommentModifiedtestSingleLowercaseLettertestUnknownSlottestInitializeWidgetstestNameAndArguments testSanity testSixtyFourBitRegisterAdditiontestMilliSeconds testParagraph)testReturnExtraSpacesInIndentWhenMultilnetestFailureNonExistantSelectorSpec2-Examples testIsHiddentestUnaryNoExtraSpacesAftertestWritingOverflow testInclusiontestReadStreamNotFoundtestChildFiles&testClickActivatedCheckboxDectivatesIttestAssignmentpeekBytetestVersionsForMethodminSizetestChangingRootsUpdateWidget testReplacetestRenameVariableTransform)testChangingFromSingleToMultipleSelectiontestRedundantProtocolAdditiontestTraitIfClassAlreadyExists!testIteratorWithEmptyBlockIsAtEndtestTestClassesShouldBeSingular&testTutorialsReturnsAllButMockTutorial!testBlockWithParametersASTMappingtestTotalSecondstestSaveValuesSystem-OSEnvironments-TeststestStepIntoAssignment0testFailedCriticalSectionShouldUnblockWaitingOnetestCaseSensitiveMorphic-Widgets-FastTablecapacitytestHttpRecognizedtest0FixtureTConvertTesttestGetMedianOfEvenDatasetSizeresetTo:2testResolveConstantNULLShouldSetConstantNullLoadertestFirstSecondThird testSorting01testIntersectionsWithPolygontestCompiledBlockSourceNodetestErrorCodeNotFoundIndexedtestPragmaAlreadyExistsaDateisDashPunctuationtestNewVariableWordClasstestYearsurroundString:withCharacter:testIsCatchAll testFloor testSortUsingtestMethodTemp1testSharedSlotNodeArePolymorphicToRBVariableNodestestEmptyArraytestContentsOfDirectoryselectEveryFirst>testPushDownMethodDriverWhenAbstractClassExpectBreakingChangesbluetestNewProcessasSortFunctiontestRechainWithChainsAndNiltest0TSizeTest testSlotNamestestEmptyBlockTwoArgumentsdetectIndex:ifNone:testPharoVersionFileExists testAmazonAWStestFormatReceiverRoassal-Chart-Tests&testRecompilingDoesNotRemoveExtensions"testBreakDebugPointOnVariableWrite testHighBittestDaytestMicInputfilePathtestLocalDirectorytestSmokeVerticalTest-testIteratorWithSingleElementIsAtEndAfterNexttestBanLevelCandidatesForMethodRoassal-FlameGraphtestSingleLevelListtestSelectableIndexBefore*testMakeClassAbstractWhenClassIsReferenced#testCapacityFromAsOrderedCollection.testKeywordCommentsFormatCommentsWithStatement testWithPrecedenceIsNonAConflicttestImplementorsMatchingNewTools-CodeCritiques-TestsAthens-SVG-PathConvertertestInstanceVariableAddition asAccessortestFileNameForContexttestCallWithSelfParametertestWithtestSelectOnEmptyAI-Algorithms-Graph&testAddAndRemoveInstVarNamedWithTrait2testDefinitionOfTraitedClass testEquals2testModifyLabelCollections-Support*Calypso-SystemPlugins-ClassScripts-QueriestestIsOtherLetter0testTraitSourceIsPersistedWithRemovalOfMetalinkstestMinMaxValuesAreCorrect;testAtIfPresentIfAbsent%testClassWithUnknownSlotsWithMessagestestRemovePathIfAbsenttestSlideBlocIsParsed'NewTools-DocumentBrowser-GitHubResource testMergetestEmptyTraittestDeleteHistory&Calypso-SystemQueries-Tests-P5WithTagstestUntypedNullArgumentIsNULLtestSpecialSuperclasses5testExtractedCodeHasMoreThanOneExitPointExpectFailuretestDependencyOrder testGhostText testPragma Random-Core testEmptyCodeon:do:testMoveMethodFromExtensionToClassicProtocolAnnounceRepackaged testAverageXtestStepIntoDeadContexttestSelfEvaluatingred'testUntypedTrueArgumentHasUndefinedTypeItestCollectionWithSingleWithALotOfElementsReturnsTheRequestedInCollectiontestAnnotatedBlockTextElementstestRemoveInstanceVariabletestFormatMultilineMessage2testPrimitivePragmaNumberAtestWorkerPoolInstancesAreCollectedAfterStartingAndStoppingWorker!testServiceExecutesTearDownOnStoptestTagsCollectionSystem-AnnouncementstestSortingChainedtestSizeUnsignedShortNewTools-Debugger-ExtensionstestRemovePackage testDegreeSintestExactNthRoottestIsAListDash"testNotSelectsMethodWithoutCountertestReadOnlyFileNamedtestRemoveClassInTagtestReadFromManyDigitstestFloatTruncatedtestPropertiestestNumberOfMethods testBlack32subsettestPostorderSelecttestExternalObjecttestAddProtocolAnnouncementtestNonDuplicatesRemoveDuplicatesResetReturnsWithoutDuplicates nanoSecond detectMin: testAsMinutestestSixtyFourBitRegisterByteAttestSmartCharactersShouldClosetestContextMenuBaselineOfPharoBootstraptestSemaphoreNoTimeout'testLinesOfCodeEmptyLineWithTabInTheEndtestPragmaAddingPropertytestEnvironmentWithCodeBlock testRandomtestIsObservableSlot%testSubscribeToEventDoesNotRaiseEventTool-Finder-UItestMicInputfilePathError removeAll:testRemoveProtocol"testExampleMethodTempInNestedBlocktestToDoWithCalculatedArguments+testJPGPPreviewerCanBeUsedOnParameterString*testCaretInTheMiddleOfWordHasWordUpToCarettestSearchWithFunctiontestIsPrivateOtherCompression-Tests:testResolveInstanceVariableShouldSetInstanceVariableLoader testCounting startIndextestHumanReadablePrintStringtestPlotWithOneCollection testVariableEnvironmentClassVars!NewTools-Scopes-Resources-C-Tests$testHigherThanLastBCOffsetAccessTestisSequenceabletestIsExecutedFromSingleScopeselectortestKeyAtIndexIfAbsenttestPackageRename1testResolveConstantNilShouldSetConstantNullLoader"testNestedBlocksRemoteInBlockCase2testUUIDVersion1#testTimesRepeatWithTempOutsideBlock'Calypso-SystemPlugins-FFI-Queries-TeststestVariableCannotExtendByte&testSmartDoubleQuoteSurroundsSelectiontestWithRecursion7testFailurePullUpWhenSuperClassDoesNotDirectlyImplementtest16BitDisplaytestIsVariableLayouttestReActivatetestReadUpToEndtestProtectInstanceVariabletestThoroughWhichMethodsReferToTranscript-NonInteractive-TeststestNewProcessWithlastCut)test0FixtureAsStringCommaAndDelimiterTesttestArgumentAttestNewCommentelemtestHeaderAPIToSetTexttestBlockExplicitReturn&test0FixtureSequencedConcatenationTest testMonospacetestTraitRemovalWithTraitAddedtestInitialResultListIsEmpty substrings testBeforetestHeaderAPIToAccessTexttestFixingStateBeforeExecutioninitialIntegerOrNil,testPrecedencesAreGeneratedInClassDefinitionEpiceaBrowsers0testComparisonOfTwoAnnotationsWithDifferentClassEtestMethodsAddedInMetaclassPresentInSubclassesAfterChangingSuperclasstestHierarchyEnvironmenttestBuilderSuperclasstestCreateWeakClassWithAlltestReplaceWithSpacestestRangeEncoding testAtRandom9testCaseSensitiveFilterIsNarrowWhenTheInternalAreNarrowed2testPackageOfMethodFromTraitsChangedWithoutCompile&testClassReshapeShouldKeepClassBindingle,testInBlockArgumentInstanceVariableShadowing stopIndextestRotatedByAbouttestFlatCollecttestRemoveAllErrorNewTools-SpottertestSecondsAcrossTimeZones0testPackageExtensionsStartsWithProperPackageNametestUnregisterPackage"test0FixtureDictionaryRemovingTesttestActiveHomeBaselineOfManifest-testFutureFailureCallbackExecutesInSameWorkertestExpandedMetaclassWithTrait testSetFlagscaleBy:"testFloatArrayPluginPrimitiveAtPutOmStoreFactorytestForMilliseconds noneSatisfy:anItem testSymbols%testCopyingAPrecedenceKeepsPreferencesteptestEnumerationtestEcho*testTwoDebugPointsOnSameTargetBothActivatetestGrandchildOfReference testOneColumn Math-Operations-Extensions-TestsBaselineOfDrTests!testNoEquivalentSuperclassMethods'testTraitWithComplexSlotUsedInOtherSlot asFloatPointtestForceToPaddingStartWithtestTAddWithOccurrences$testWhileModificationAfterNotInlined&testExitingWordClosesCompletionContexttestExternalLinktestTooManyTemporariesnegative testNoTargettestCycleAlreadyFound testCodeBlock SUnit-TestsMorphic-Widgets-BasicsettestSelectorsWithExplicitOrigin5testEditClassScopeAddingClassAndCompletingFullPackagectestChangeInInputSelectorWithToMuchAccessorThanArgumentsShouldChangePreviewLabelFinalWithFailedTexttestLiteralCharactertestFormatEachStatement testAtAtPut!NewTools-Spotter-Processors-TestsKeymapping-KeyCombinationstestReshapeSuperSuperClasstestMessageTexttestDefinition testAtLastPut testScopeTotestVariableCannotExtendWordtestClassifyUnderUnclassifiedtestMethod3forMocktest8BittestRemoveFromMethodraisedToInteger:testErrorNonCorrectImagetestFutureExecutes testDividetestDefinitionOfTraittestLazySlotReadReflectiveBlock)testLogLocatorRaisesErrorWithNegativeData testTitle.testClassDefFromLegacyStringHasPackageNameNodetestCreationFromString36NotNilProcessorSchedulertestCompletionOnSingleLetter!testCopyReplaceAllWith1OccurrencetestEntryReferencestestImportFromReadStream2testBlockWithASuperSendHasCorrectNumberOfArgumentstestWriteStreamDoifPresent testInBoundstestDurationLessThanMaxTickssidetestDeptestSingleTrait(testClassDescriptionResolvablePropertiestestNoClassComment"testUsingMethodsFindsVariableUsers testThirtyTwoBitRegisterAddition-testIteratorOnACollectionReturnsTheCollection+testCommentOnMultipleLinesWithASingleMarkup testAsBittestMethodsContainNoHalttestServiceIsKilledAfterStoptestSubtractDatetestHasNonLocalReturntestMoveMethodToClassSidetestAllInstVarNames*testStoppedSchedulerExpiresRemainingDelays&testDebugSessionAsSindarinDebugSession+testValueWithinNonLocalReturnDoesNotTimeout testWithWith.testBlockWithFiveArgumentReturnsLastExpressionMorphic-Widgets-ColorPickertestDefinitionWithComplexSlot maxElement&testFirstVisibleRowIsInitiallyFirstRow(testPackageSelectionAfterPackageCreationtestBeRowHomogeneoustestTagsForClassesCollection$testMultiplyByArrayIdentityTransform)testParentResolutionWithAbsoluteReferencetestCustomLineBreakingtestChartestRemoveInteractionIfPresenttestProtocolEnvironment(testCreationForExplicitAnnotationContexttestMultDicAddSubtestResolvedNameOrNiltestStandardTraitWithExclusions pairsCollect:m6testUnhandledErrorWhenTwoHandlersPassOriginalException Roassal-Pie-testIsNotNecessaryToCleanAnAlreadyCleanMethodtestIfNotNil1ArgAsVarprintOn:format:testWithTemporariesSelected NewTools-Core;testSkipUpToNodeDoesNotLoopWhenAimedNodeIsBeforeCurrentNode.testRemovingMethodsThatOnlyReferenceThemselvestestExternalAttestNestedStructureWithArraytestFixObsoleteSharedPools$testPlaygroundWidenOnErroneousSourcetestsourceCodeTemplateFor>=!testOnceBreakpointDisableAfterHittestCollectAsWithParenthesis"testOpenAllOnNonExistantFontFamily hexStringtestAddBoxPlotsReturnsNewChart(testDefinedBehaviorsOfUnresolvedPackagestestMustInclude05%testIncludesIdentityBasicComportement UUIDGenerator$testHavingASlotAlreadyInTheHierarchytestPackageOfRemovedTraittestReceiverDoesNotExist"testUnmatchedExpressionParenthesisOtestRecategorizeClassWithMetaClassMethodsRegisterAllClassMethodsInTheNewPackage testPaddingtestOtherNewFrom)testSearchForRegexpStartWithCaseSensitive#testExternalSUnitKernelDependencies*test32BitFormBlackShouldStayBlackAfterSavetestSubCommandtestPrimitiveNamed2testDetectThreeChangestestParsingFromVersionString digitValue: intersection:testNestedInsanity%testParseAnonymousFunctionNoArgumentsorigintestBase64EncodedtestExtractDatasetFromValue+testBehaviorDefinitionModifiedForSuperclass>1testStartButtonHelpIsCurrentPluginStartButtonHelp Clap-TeststestPositionsCustomNotSortedtestCompileSource testMidPointtestGetShapesFromRectanglemin:!testGetQuartilesOfOddDatasetSize2/testReadIntoStartingAtCountFromStreamWithOffsetRing-OldChunkImporterrelativeToReference: SmallInteger)Calypso-SystemPlugins-DebugPoints-Browser?testRecategorizeClassUnregisterTheClassMethodsFromTheOldPackagetestMiddleButtonOpenHalostestIfNilIfNotNil1ArgAsVartestServerAcceptthisXtestSetWithNilItemsIsHealthy testMoveTo testNormalizetestParsePharoZipTimestamptestDoubleClickTimeoutFromMorph"testUrlWithoutMicrodownParameters2"testBindingsTableContainsMatchings testHasModel6testIsNotTerminatedWhenItIsInsideLastTerminationMethod BaselineOfQAtestPrintingRecursivetestCompositeTransform testNextLinenewFrom:testShortStacktestExampleTempNamedPutCopying3BaselineOfDebugPointserrorSizeMismatchtestDuptestSizeUnsignedIntEnum=testWordsAwareIteratorFiltersByASequenceOfCamelCaseMixingCasetestGoodPathTwoUnusedVariables.testCreateAndChangeWithCommentDoesAnnounceBothitestBordersColor&testAndWithLeftFalseShortcircuitsRight Spec2-Corefoo:bar:testBlocksShareOuterVariablestestStructureOfPlainText*testAddTreeWithSubDirectoriesShouldSucceed4testMethodCategorizedInSameExtensionDoesNotRepackageRing-Core-Tests testNextOrNiltestWithExtensionAddsExtension&testTraitUsingTraitsPreserveSourceCodexctestMutateByteStringyUsingAtPut nextIndexyourself?testPackageCommentToolIsNotValidWhenReferencingDifferentPackage testAtUpdate*testExtensionClassWithSpaceAndArgIsCreated combination slowFactorial%testDifferenceWithNonNullIntersectionFreeType)testMethodModificationWithProtocolChanged*testMethodClassBindingShouldBeClassBindingquotetestTransformingDeprecation digitAt:base:testAsSlotCollectioninstanceVariable:class: testBasicHeadtestPrintDoesNotUnderstandtestCanConsumeLine*testNotAffectedByChangeOfNotAbstractMethod testInverttestRemoveFromSystemtestThirtyTwoBitRegisterOr!testDuplicateClassPreserveMethodstestFileOutSingleClassRemovaltestExecutionCriticalSectiontestBoxPlotCreatedWithData8testCreateClassWithFullExpandedDefinitionKeepsTheMinimum%testAllInstanceVariablesDefiningClasstestDuplicatedInstanceVariableisSpaceSeparator)testOptimizedBlockWriteInNestedBlockCase4optionInlineIfNil#testLookingHistoryQueryShowsResultstestInclusion2&testLastThenFirstShouldGoToFirstLessonNewTools-PlaygroundtestAnnotationBindingtestRepeatedMerge"testSimpleDefinitionWithEmptySlots Reflectivity testSumUpTotestKeywordOnMultipleLine15testSequencedTimesRepeattestSelectorsInProtocolalternativeBlocktestObjectCentricASTAPI includesAny:testMedianForOddSizeCollectiontestExpandRectangletestExampleTempNamedTempVector2!testBecomeForwardCopyIdentityHash>testRedefinedTraitedClassSubclassHasEmptyClassTraitComposition OmDeferrerunzippedCalypso-NavigationModeltranslateToLowercasetestReferencesToAClassInBlock+testFailurePushDownMethodOnNonAbstractClasstestPropertyWithOddCollator testPostorder)testTabIndentIsNotAffectedByNumberOfSpacetestClassSlotstestFileOutSingleTraitAddition testPrimAtPuttest03addFirsttest2BitColorstestNotTooLongBlockBodytestGrandchildOfPathBaselineOfMicrodowntestNoErrorCatchtestCompressedZerosOnlytoBytes(testFinalizationRemovesEntryFromRegistryRoassal-Inspector-TestsRoassal-Inspector testAsFormtestNewLineAfterTemporariesColorPicker-Tests testResizing testBitShiftdarker#testGettingExistingClassNameBindingSUnit-UItestIncompatibleBehaviortestDoubleBarPlotRawData Fuel-Core2testSettingEnvValueDuringChangesValueInDuringBlock)testStandardMetaclassTraitWithSingleTrait,testRestartTestShouldPushNewValuesToTheStacktestLayoutWithOverlayIsNotEmpty test0FixtureDictionaryAddingTesttestOccurrencesOf(testHasNonDefaultValue_DefaultOverridden.testsingleRemoteTempVarWhileWithTempNotInlinedtestStepOverComputedReturntestRedundantMethodModificationtestAnchorIsAttachedToItsTargettestNewDebugSessiontestMeridianAbbreviationtestPerformChangeMethodRoassal-InteractionisInstanceSidetestWithTitleAndLabels#testExampleTwoBooleanSlotsRemoveOnetestAsColorrefPrimaryColorstestFailureNonExistingVariabletestEqualAbsoluteRelativePathtestNextVersionNumericFilenametestAtIfPresentIfAbsentPutpositiveNumberStringtestChangingHierarchy$testBreakDebugPointOnClassSideMethodtestEncodeSoftLinebreak$testMethodArgumentIsArgumentVariabletestScaleDomain testStepReset9testBuildPresentationWithFailureShouldReturnCodePresenter testPopTop7testSubstringFilterReturnsValidResultsWithTheSameFilterSTON-Text supporttestPackagesOfClasstestFormatMessageresetlastRun)testOptimizedBlockWriteInNestedBlockCase2 Zodiac-TeststestVariableByteSubclasstestErrorCatchtestParseEmptyText*testWordsAwareIteratorFiltersByASingleWordtestCopyUpToWithDuplicatetestInlineEmptyComponentMethodtestNodeCoverage2testIncreasedValueFromtestTemporaryVariablesBlockBaselineOfTonel!SystemCommands-SourceCodeCommandstestAllParameterstestHasMagicNumbertestMouseEnterDraggingFromMorph testLiteraltestCollectOnEmptytestComposeErrorTextFromtestConstruction Morphic-CoretestArgumentNames+testModelExtractMethodWithTemporaryAssignedtestAddTraitSettingPackageTagtestCreateVariableClassWithAlltestAddEmptyGrowstestBasicCommandlineHandlertestRevertOverrideMethodtestBmpWriteReadInMemory testSorting3testResolveConstantFalseShouldSetConstantZeroLoadertestBasicGetLarge$testResetingSelectionResetsSelectiontestAddNonExistentFileNewTools-InspectortestPointerCannotExtendBytetestSortDataSource testLayouts>testWorkerInstancesAreCollectedAfterStartingAndStoppingServiceEtestSelectWidgetIndexRaisesSelectionIndexChangeEventWithSelectedIndextestInvalidCompositiontestSizePointer'testStoreAndPopReceiverVariableBytecode,testSupplyAnswerUsingOnlySubstringOfQuestion#testNilIfNotNilDoesNotEvaluateBlocktestValidationTicks-testSplitOrderedCollectionOnOrderedCollection at:putNext: testSuchThattestAddVariableTransform,testEncodingOptionSetsStringEncodingStrategy,testScrollUpToPreviousIndexScrollsTopToIndextestLiteralEquality testSequence testWidth Files-Prompt%testSelectSeveralShapesWithShiftClicktestSelectionExecutesBlock,testTempNamedPutShouldFailGivenNameIsNotTemp+testItemsWithoutChildrenDoNotHaveExpandIcontestRelativePrintStringBaselineOfBaseLibrariestestUnixRandomGeneratorSeedtestPurePathIsRelativeFiletestCustomAlphabetFullSpectrum1testNewScopeFromASinglePackageAndSomeOfItsClasses testWithPopup testAsBagtestHeaderLevel1testClassifyUndertestTwoConsecutiveCloseGroup5testFutureSuccessCallbackIsCalledAfterValueIsDeployed+testWindowLabelIsUpdatedAfterPackageRemovaltestUUIDVersion4System-SourcesCondenser*testClassDefFromLegacyStringHasSharedSlotstestBigArrayWithExtraSpacestestFailurePullUpClassMethodPtestWhenClickAnAfterHistoryButtonIfThereAreHistoryShouldComeBackTheGoodDirectorytestMultiplication7testFutureSuccessCallbackExecutesInSameNewProcessRunnertestUninstallCounter;testNormalProcessWithArgsCompletionWithLeftEffectiveProcesstestIsLetterNumbertestRotateByAbouttestInt32AliasestestFixedLocatorDataIsOktestCheckingForEmptytestRemoveClassTransformSystem-OSEnvironmentstestIntersectionsWithArctestPushTempTemptestJumpOnSecondKeyword testsEndsWithDebugger-ModeltestMakePackagesDiffOnSameGraph0testCreateAndChangeWithoutCommentDoesNotAnnouncetest16BitReversedtestLoadTwoObjectstok2testExtractSetUpWhenInstVarSelectedExpectExtractedtestTooLongArgumenttestUnsignedLongLongBaselineOfOSWindow"testFindThisPackageAfterAddingText$testMinimumNegativeIntegerArithmetictestAllClassesImplementing+testDoesNotRecycleToolWhenNotValidInContextSystemCommands-VariableCommands#testFailureNewHierarchyExistingName testToCount2test06addAfter$RBClassWithoutSelfClassReferenceTestQtestAsFileLocatorOrReferenceReturnsAReferenceWhenStringDoesNotReferToAKnownOrigintestAllMethodsInHierarchygreen(testSixtyFourBitRegisterAdditionOverflowtestCompressedZerosOnlyToString GreenShifttestByteArrayLongtestRemoveKeystestBasicVennDiagramOpenSystem-SessionManager-TeststestEqualityClassSideMethodtestComparisonOfFunctions FileSystem%testStepTakenConditionalJumpBytecodes)testVennDiagramConvertsSmallSetInputToSettestReferencedClassestestSteppingSendsDirectSendtestAnnotationASTtestVisitHttpInput#testAsSortedCollectionWithSortBlocktestTokensInUnicodetestWithSyntaxHighlighttestComparisontestSwapAdjacentEndtestBuildLiteralHeuristic4testClassAddedToNewPackageShouldAnnouncePackageAddedkey-testNextNextShouldReturnSecondExpectedElement1testStepSendPopsArgumentsAndPushesResultBytecodestestResponsibilitySttestBanLevelCandidatesForClasstestAsSortedArraytestStepToReturnWithHalttestCommentWithStyle testFirsttestAddProtocolwritertestDigitSumOnNegativetestHasLiteraltestDoublePassOuter*testHashMethodNeedsToBeInComparingProtocoltestSpaceAroundPeriodtestPackageRenameWithClass,testRedundantMethodRemovalWithAbsentBehaviortestExpandPath$testRightClickShouldNotExecuteActiontestContainsPointInCompositetestSelectHandlersCodeLoader testAstScopetestValidGZipCrcSystem-Dependencies-Tests ByteArraytestNoExtraSpaceBetweenValue2 expandMacrostestValueWithExit#testRetainBlankLinesBeforeComments3 howManyMatch:testExtractMethodToSuperclass$testPackageOfMethodFromTraitsRemovedtestStandardClassWithVariables!testCompletionBeforeKeywordColumn testCenterEmptyBasedOnPointPointtestStepOverAssignment lastIndexOf:testShiftOneLeftThenRighttestExternalAtPut#testIsBoundToEnvironmentWhenScopeIstestInstallingWithAnEmptyTag*testChangingOtherPriorityAffectsSchedulingtestExclusionsCollectiontestTwoClassesWithExtensions)testResolveClassVariableShouldBeInt32Type Spec2-MorphictestRemovePageAttestNoExtraSpaceInside%testMonitorAnnouncesUpdateWhenEnabled!testSixtyFourBitRegisterInversion(testSearchForRegexpEndsWithCaseSensitive(testAtExistantKeyReturnsOkCompiledMethodxytokentestRenameArgumentscaleTo:Formatter-Settings asMutator monthIndex testModifyFor$testRemoveSenderIntoCascaded2Message testFileNametestPackageNamedIfAbsenttestWhileWithTempNotInlinedtestLayoutEqualsaa,testButtonUpClickShouldModifiedArgumentsListtestCountingAfterReset7testRemoveSecondElementAddedAfterOpenRemovesFromAdaptertestReplaceWithPatternCodetestCreationOfDefinitions noise:y:z:Collections-StacktestRemoveInternalDependencies testNonAscii!testPopupOnElementNotAddedToAView/testPragmaNoExtraSpaceBetweenMethodeAndArgumenttestPerformChangeClasstestUserLocalDirectoryboolean8AtOffset:(testRemoveFirstElementRemovesFromAdapternewDay:month:year:testSplitBlockAnnotationtestDoWithoutNoDuplicates testAngletestPrintOnDelimiterJtestTerminatingBlockedCriticalSectionShouldNotUnblockAnotherWaitingSectiontestMultiProcessWaitOnSameDelay#testFromNullReferenceDetectNotFoundtestDoItRequestorEvalErrortestPushNewArray)testResolveConstantFalseShouldBeInt32TypelatestDefinitionWithSlotsftestReplaceKeywordTokenFollowedByAssignmentWithCaretInTheEndOfWordWithFollowingWordsReplacesEntireWordasCommaStringAnd Roassal-SpecDoIt testSiblingstest10removeFirstManifest-Resources-TeststestEncompassingRectangletestNthRootTruncated3testIncludeCopiesForEachSubclassOfOriginDeclarationtestSplitArrayOnElementtestStoreOnWithNegativeIntegertestModelsSizetestMethodDefinition>testVerifyPreconditionWhenRemoveLocallyDefinedInstanceVariabletestReshapeClass testPackageOf"NewTools-SpTextPresenterDecorators testBasicSizetestLastBCOffsetTest testDeletetestWarnModelExistingSelectorIceberg-Plugin-PharotestWorkingDirPrintStringtestFlushOtherEndClosed%testCopyForBehaviorDefinitionPostCopy%testRetainBlankLinesBetweenStatementstestUnmatchedCommentQuote testSetUp atAll:putAll:/testTwoRecursiveCriticalsShouldNotWaitEachOther$testLayoutWithFirstElementIsNotEmptyJenkinsTools-CoretestZeroValuestestInlineBlockCollectionSD1 testToByDo/testTypeCharacterWithoutResultsNarrowsSelectionSystem-NumberPrintingtestCopyEmptyMethodtestPackageNamebbtestTemporaryToInstanceVariabletestKeyBindingsHermes-Extensions*testDemoteToRPackageNamedMultilevelPackage isLowercasetestMathshouldBeUnevaluated_testIsExecutedFromMultipleScope'testRenameProtocolAsAnnounceNewProtocol!testStandardMethodInExistingTrait testProtocols0testAccessingArgOfOuterBlockFromAnotherDeepBlock)testBehaviorDefinitionModifiedForCategoryaccum testMethodtestFirstWeekdayOfMonthYeartestPlaygroundWidenOnSelftestLayoutNotEqualsBaselineOfCalypsotestRenameClassVarInSharedPool testAddItem2&testRehashDoesNotTransformAssociationsthirdtestAssociationsDoVtestUndoOperationWhenTheUndoStackIsEmptyPreservesTheUndoStackAndTheRedoCollectionEmptyGraphics-FilestestArgumentAtIfPresenttestHasComment testIsAcute1testRemoveMessageArgumentCommandIsProperlyStoreOn testReversetestLinearLocatorDataIsOk*testAnnotatedBlockOnTwoLinesWithFormattingtest8BitDisplay General-RulestestHasPropertytestNewNamedMethodexampleLiteralBoxedFloat8testIsAffectedByChangeOfAbstractMethodWhichIsImplemented'testShouldKeepHeadReferenceAfterRefreshtestDataSending testFileOutMultipleMethodRemoval.testShouldFindDependencyWhenUnimplementedCalls4testCompletionWithNoElementsToFetchShouldNotHaveMoreoptionInlineNonetestHumanReadableByteSizeStringtestIndirectTraitSubclassing testHasBindingThatBeginsWithSlottestSizeUnsignedLongUnix"testTrueAndAnythingReturnsAnything testNegatedtestShouldAccept7testExplicitCompletionEngineIgnoresAbsenceOfGlobalClass*testRightClickShowsMenuWhenThereAreNoItemsAtestConfigureContextWithDoesNotUnderstandShouldMarkContextAsErrortestTempNamedPutItestMoveToNodeWhenFromNonInlinedEmbeddedBlockToNodeThatIsNotInHomeContexttestIdentityIndexOfasNumbertestModifyTraitComposition testNextShouldReturnFirstElement testEquals3testPassasMonthRoassal-Mondrian"testClassTraitIfTraitAlreadyExiststestSixtyFourBitRegisterXor!testCanCreateFtpRepositoryFromUrlzin)testChangePlaceholderTextUpdatesPresentertestShowFirstLessonOnGo testOneItemtestIsSurrogateOther$InitializePackagesCommandLineHandlertestAsStringOnDelimiterMoretestResolveTempPathFromTMPBaselineOfAIGraphAlgorithmstestMethodSelectortestExampleSuperReceivertestRedundantPackageTagAdditionwriteStreamDo:3testEqualityOfTraitDefinitionWithDifferentSlotTypestestAsNumberWithExtendedScaletestEnvironmentWrappertop#testOptimizedBlocksAndSameNameTempsnew:testIncludesName2testCreateDynamicCompilerPluginWithDefaultPrioritystdout`testChangeInInputSelectorWithFewAccessorThanArgumentsShouldChangePreviewLabelFinalWithFailedText4testPerformInSuperclassCanExecutelongMethodWithTempsatEnd'testLiteralsEvenTheOnesInTheInnerBlockstestMonospaceWrappedElementstestClassRemovaltestBreakpointOnTempWritesgroupsOf:atATimeDo:"testFileOutSingleClassModification-testUpdatingTheSameTraitDoesNotProduceChangesSTONCStyleCommentsSkipStreamtestBlockCannotReturntestRandomAccess testUpdateWhenLocalMethodRemovedBaselineOfSystemBenchmark'testMutateObjectLastInstVarWithManyVarsstring*testRemoveMethodAnnounceRemovalOnlyInTrait2testPNGPPreviewerCanBeUsedOnParameterFileReference'testSmartNeedExtraRemoveInForOppositeAttestComplexTraittestNestedNodes testNotSelectsMethodWithoutWatch@testBestNodeForTraitCompositionSelectionShouldBeTraitCompositiontestInstantiationtestAllSelectorsAbovetestDefaultFont%testNoNewLineBetweenVariableAndIfTruetestPackageTagRenametestCharacterSeparators$testFindOcurrencesWithArgInHierarchytestCreatedClassWithAllElementstestAll*testConfidencePercentageIsCorrectlyChangedtestBehaviorAdded+testSpeciesMethodNeedsToBeInPrivateProtocoltestLineAtCursorPosition5testFillingWithTraitsOfClassWhichIsMissingInGivenListtestCreateClassWithPropertySlot5testClassDefinitionToolIsNotValidWhenNotAClassContexttestClassWithClassTrait testBorder removeAll)Calypso-SystemPlugins-Flags-Queries-TestsexponenttestSearchPath3testNormalKernelClassestestCanUnderstandtestModifySelection testBalanced/testBlockWithThreeArgumentReturnsLastExpressionSystemCommands-PackageCommandstestShouldBePrintedAsLiteraltestSpaceBetweenVarAndCommenttestKeywordOnTheSameLine3(testSelectingPluginWillUpdateWindowTitletestAllDependentPackages*testTwoDifferentWordsStartingWithUpperCaseFtestRealActiveProcessFromProcesorShouldIgnoreInstalledEffectiveProcesstestCanBeEnumeratedForGivenUserStartupPreferencestestAlphaCompositing2BaselineOfThreadedFFItestFromTwoMethodstestToDoReturnsReceivertestIsAliasSelectorAthens-Cairo-Tests%testNotIncludeInstancesWithoutContext copyWith:testSelectLasttestPrintVariableBreakpointItem5testClassReshapeShouldKeepClassBindingForTraitMethodstestPrimitiveNamedErrorCode2testShowingLessonByIndextestFirstThursdaytestChangingRenamedSlottestResizeMakesCanvasResizetestNotInstantiable3testFailureCannotExtractTwoAssignmentsToTemporaries testMonospacesWithTwoBackslashes%testAtNonexistantKeyExecutesFailBlocktestGetStandardDeviationout&testStoreAndPopLiteralVariableBytecode,testMetaSuperclassShouldUseTheSuperclassName expressionmapClassunescapeCharacter:DtestAddUndoWhenTheUndoStackIsFullCorrectlyPutsTheChangeAtTheStackTop(testWhileFalseExecutesRightBlockWithTemptestHasCommand testMaxValtestAndEnvironment8testMoveMethodFromExtensionToExtensionAnnounceRepackaged Network-Tests testFormstestRaisedToIntegertestHasNOCaptiontestIndirectSequencetestWithTilteAndLabelstestAllInstances:testCalloutShouldHaveLegacyStringEncodingStrategyByDefaultSpec2-Transmission STON-Tests9testSelectItemSelectsTheGivenElementAndExpandsTheBranches testAddClasstestBlockArgumenttestPragmaTwoParamtestWithAxisLabeltestMoveClassToTagInNewPackagetest0FixtureTRemoveTesttestLinkWithParameterstestSumUnsignedInt Tool-FileList=testWorkerInstancesAreCollectedAfterStartingAndStoppingWorkerNetwork-KerneltestCanCreateBitBucketRepositoryFromUrlWithExplicitHostAndPort test32BitfromRgbTriplet:testCreationByUnresolved#testDontFormatCommentWithStatement2%testCopyForBehaviorDefinitionForClass constructorincludesSubstringAnywhere: isOctetStringeurotestAllowInclusionOfNils"testAllSelectedClassesAreTestCasestestFailureExistingPackage)testConvertingWithoutExistingBasisObjectsRefactoring-Changes-TeststestFromHexStringNewTools-Debugger-Fuel-TeststestMaxLengthIsSet>>testVmDirectorytestPrimMakePointtestAreasOutside2testPrimDoWith(testLogLocatorDataIsOkWithReversedDomain flattenOn:testUnifyClassTrait(testUpdateMethodAnnounceRecategorization'testRemoveProtocolOnNonExistingProtocol-testClassScopeExcludesClassCreatedAPosteriori!testCreateWithCommentDoesAnnounce testClassSide testLayout sortBlock:testCallCreateObjecttestInterruptedContext&testParseWindowsPathWithUnixDelimiters*testNextVersionAlphabeticVersionedFilenametestBoundingBoxOfSubmorphs(testWhenItOverridesSuperclassAnnotationstestCqsortWithByteArraytestEndsWithAnyOftestSuperiorToMinimumtestCanvasInspecttestWithoutPreTabs'testPresentersBlockReceivesAthensCanvas testStorelftestImportAMethodWithLangTagtestRawsWithMonospacetestMakeReslolvedtestLinesOfCodeMultilineComment testColumnstestResolveRelativeReference testAsYeartestMethodsAccessingSlottestUndoIfEmpty*testWithLeftDoesNotProduceInvalidRectangleCodeImport-Tests Commander-Activators-DragAndDrop@testInterruptedContextEqualsSuspendedContextOfInterruptedProcessbasicNew9testCanRemoveAReferencedClassNotHavingReferenceInTheModeltestZeroElementsameAs:testEscapeReEscapetestInitialButtonUpIsDisable!testResumableFallOffTheEndHandler3testResetFilterWithNoFilterSetShouldNotAlterResults testToCount3 splitOn:do:testBuildClassTraitsAPItestPrimesUpTo*testTrueIfFalseIfTrueReturnsTrueBlockValuetestFileOutSingleMethodAdditiontestFiveSpaceAroundBrackets!testRemoveFromSystemRemoveAllTagstestIsLeapYeartestSequentialAnimationCreationBtestStepIntoQuickMethodCallReturnedShouldPushReturnValueToTheStacktestHasProtocolWithRealProtocoltestEachSelectorReturnsALesson'testSmartCharacterWithEventAndSelection,testOneArgumentNotMatchingAnInstanceVariable!testClassInstanceVariableAdditionoriginalContentstestResolveAbsoluteReferencetestSumSignedShort&testPackageNamedWithoutMatchingPackage numericSuffixtestMinMaxValue2!testTraitAdditionWithTraitRemovedtestUTF8EncoderWide*Calypso-SystemPlugins-Traits-Queries-Tests nextPutAll:testMultiLogScaleScaletestSetBaseClasstestOrderedListDuringtestForceLazyRebuildtestOneLineMessage8testDictionaryConcatenationWithCommonKeysDifferentValues(testIncludesIdentitySpecificComportementGtestPeriodAtEndOfMethodWithMultipleElementArrayShouldNotHavePeriodAtEndpitestKeywordCommentstestMonospaceUnevaluatedtestBorderWidthNotHomogeneous$testSpecialLiteralsNotInLiteralFrame testReturnTop testAddItem1testUnaryNoExtraSpacesBetween2)testMergeWithPredefinedFontCanBeDecorated testIndicator testDuration(testDecoratingMethodWithExecutionCounter testNotEqualstestAsMultilineStringAST-CoretestChangeMovieDirectortestLinkCreatesInnerTexttestUUIDVersion3testLogLocatorDefaultBaseIs10testMultiPools.testArrayEvaluateWithBindingsWithUppercaseName,testCallbackInLoopUsingSubclassOfFFICallbacktestFullSpectrumtestNextInteger*Calypso-SystemPlugins-Critic-Queries-Tests!testFailureWhenMethodDoesNotExist testRaisedTotest1testChainBehaviorResetChain testMinustestCommentWithoutStyletestExampleIfIfNotNilReturnNil)testSupplyAnswerUsingRegexMatchOfQuestiontestIntersectionWithIncludedtestRenameClassVar testFloat)Calypso-SystemPlugins-SUnit-Queries-TeststestCreationByUnnamed testLinesOfCodeEmptyLineInTheEnd+testPackageTagAdditionWithPackageTagRemoval3testRemoveExtensionMethodRemoveMethodFromItsPackage*testSyntacticEqualsWithComplexCompositions testCannotRemoveUndefinedPackagetestNotifyBreakpointAddedtestClassWithoutImpactalpha%testRectanglesWithSameOriginIntersecttestPackageTagAddition#SystemCommands-MethodCommands-Tests Manifest-Core+testInitialPackagesAreInitialPluginPackages2testSupplyAnswerOfFillInTheBlankUsingDefaultAnswerPragmaCollector key:value:testRowIndexFrom,testIsEmptyForExplicitlyDefinedAbstractClassselect:thenCollect:.testWorkerProcessIsWorkingUntilAllTasksAreDoneMorphic-Widgets-Pluggable1testNotIncludeForbiddenClassesAsBrokenAnnotationstestAnnouncementtestFindLastNotInlastDelimString testTrait3testEnsureDirectorytestRightMethodRightProtocol+testInitializeCurrentPathTextInputShouldSettestPushThisContext4testUnhandledErrorWhenHandlerPassesOriginalException;testMoveToNodeKeepsSameStateAndPushesCorrectElementsOnStacktestSumUpToLimit0testSourceCode testSameRangetestColumnSpacingtestEntriesCounterrorNotFound:testBuildingFnSpectestInvalidPatterntestVariableDoesNotExisttestDoSeparatedBy(testChangingPriorityYieldsCurrentProcesstestExampleTwoSlotWithStateSystem-Sources-TestsdotestSumNumberstestAddTagsToAClass)testAddProtocolWithProtocolFromOtherClasstestAddPackagestestPrintPaddedWithTotestComplexSlotsClass"testHandleEventFromDragDoubleClicktestScanAllSystemDisabledBaselineOfFuzzyMatcher testSortOrdertestRemoveTrailingDottestIfNotNilIfNil0ArgtestRepresentsClassOfScope AsciiCharset!testConvertingWithNewBasisObjectstestServiceShouldHaveANametestEnsureASpace2 testScaleBy Ombu-TeststestStepTwoBytecodes%testContextSelectorForBuilderSelector0testLookingForStoreDiskWithSpaceReturnsDiskStore#testTruncatedToSizeSameAsCollectiontestPrimDividetestRemoveAllExtensionMethodsRemoveTheClassFromExtendedClassestestExtractOneArgNoMinustestFailureNonExistantNametestAddIncludesSizeReclaim-testNoNextInstanceCreationAfterMaxSearchDepthProfStef-TeststestBehaviorWithOneMethodwithoutPrefix:/System-Localization testPatchtestConvertFromFraction"testModelReplaceMethodWithLessArgstestRemoveSelectedCompositetestBasedOnEmptyBasis asCommaStringIceberg-LibgittestVariableCanExtendPointer testOrigin testBlue32-testAcceptEntryLogsItsSourceInSeparateEntries)testSelectingPluginWillUpdatePackagesListtestAsPackageIfAbsenttestTraitSequencetestDirectAnnouncement"testNewObjectCentricBreakpointItem"Tool-DependencyAnalyser-Tests-DatatestStopRecordingtestFutureFallbackToHasSecondValueIfFirstFailsAndSecondSuccesstallyInstructions:testBoundsBug1035 testPrint24testCopyAfterEmpty anotherIndextestRemoveElementFromEmpty dayOfMonthtestPathRelativeTotestOnceBehaviortestMissingBlockArgumentName+testDetectIfFoundIfNoneWhenSomethingIsFoundtestStepToNextCallInClasstestSizeSignedInt32BaselineOfGeometry1testFailureCannotExtractProperSubtreeFromIntervaltestLastFilesForExtension$testLiteralsDoesNotContainMethodNametestAllChildren!testIntersectionsWithVerticalLine%testEscapeAsLastCharacterDoesNotBreakhigh testNewMovieFloattestAllNamedInSortedByArgumentwithIndexCollect: testIncludes!testSubclassInstanceVariableNames*testTwoDifferentWordsStartingWithLowerCase allButFirst: Text-Editionfactor#testTraitUsersAfterMetaclassReshapetestLongMultipleArguments thisWritetestMaxtestThirtyTwoBitRegisterAndtestSumUnsignedInt16testLogtestRoot0testPrintOnBlockDefinedInMethodWithoutSourceCode testDivision%testBehaviorCommentChangeWithoutStamptestUnionWithSelftestPackageTagOfUnpackagedClass6testRemoveExtensionMethodDoesNotRemoveExtendingPackagetestLayoutWithChildIsNotEmptytestDefaultEnvironmentContent testWeeksFreeType-Graphics#testShiftClicktAccumulatesSelection%testSingleLevelListSplitWithEmptyLinetestCompletionAfterWord-testCanCreateLocatorFromStringWhenDirectChildtestFalseIfFalseEvaluatesBlocktestBuildMessageHeuristic"testRemoveProtocolWithRealProtocol&testRemovePropertySlotWithTwoInstances!SystemCommands-RefactoringSupport$testChangeWidgetTextUpdatesPresentertestSizeSignedChar9testWorkerProcessDiesAfterWorkerAndAllFuturesAreCollectedtestNumberOfSpaces%testFailureInlineTemporaryBadIntervaltestOpeningBrowserCursortestIdentityAdd escapingReadtestResolvingConsistencyUnknowntestRemoveTaggedClasses3testMethodsAccessingPoolVariablesDoNotFindPoolUsersNumericInterpolator-TeststestBuildReturnHeuristic=testFindThisMethodWithFullClassDoesNotIncludeOtherClassMethod)testTempNamedShouldFailGivenNameIsNotTemptestUsedTraits testAsWeektestBreakpointOnTempReadstestStorePopIntoVariable%testEnvironmentWithBrokenMotherNestedtestMutateVariableObject!testEmptyPresenterHasEmptyAdapterCalypso-NavigationModel-TeststestCull testLastIndexOfIfAbsentDuplicatetestExpandRoots&testProperAddingRemovingProtocolIsUsedsetRuns:setValues:aSymbol minimumLength compare:with:testIntersectionWithOverlappingtestIsSortedByAthens-ExamplestestToolsToKeepWhenOneContext testContexttestLargePrimesUpTo2testLargePrimesUpTotestNoNewLineAfterCascadetestInlineMethod2testBan1foo::diff:!testFileOutSingleProtocolAdditionnumberOfCombinationsTaken:testEscapeMonospace)testDontRetainBlankLinesBetweenStatements!testAddIntructionsBeforeFromLList testPowScale7Calypso-SystemPlugins-InheritanceAnalysis-Queries-TeststestBrowserEnvironmenttestTraitMethodPackage testInverted"testRenameMethodOnlyInSomePackages3testInstanceCreationMajorMinorSuffixBuildCommitHash,testBadPathRemovingNonEmptySubWithSubclassestestBuilderSharedVariablestestInstructionsSystem-Settings-CoretestIgnoredMethodWrongProtocol testBmp4BitisClosePunctuation: testIsNiltestTotestBeNonStrictTurnsOptionOfftestUTF8IllegalInputtestStylerRedTicktestFloatRounded"testBorderDoUpdatesInvalidateShapetestModelWithRawValuestestSizeSignedShortRing-Definitions-Core-TestsRoassal-Shapes-TeststestAddMovieDirectortestRowSpacingtestCopyReplaceFromToWithtestCompileInClass4testGlobalCounterReferenceAfterUninstallInstallationtestEnumerateShouldFetchleft!testThirtyTwoBitRegisterInversiontestTwoNewLinesAfterSignature(testOriginWithRequiredMethodInTraitChaintestValuesInBlock3testWorkerPoolWorkersAreStoppedAfterPoolsCollection$testShouldWarnWhenVariableReferencedmediantestDependenciesSize testSlotUsers#testSixtyFourBitRegisterAsByteArraytestSystemDebuggers testFirstLessonShouldBeDisplayedtestNewGlobalVariabletestNotifyInstVarBreakpointHitRunArraytestInstanceVariablesStringtestCustomTransformtestBulkReadingtestSecondsNanoSecondstestWorkingDirectoryParentpeektestSimpleIsNested testStoreTemptestAddFirstTwiceReplacesChildtestBoldAPIToAccessTextvalueWithArguments:%testComparisonWithAnotherKindOfResult testTempNamedtestExampleNewArrayreplaceFrom:to:with:startingAt:+testRemovingTraitsRemoveTraitedClassMethods:testMethodsThatHaveOnlyDifferentSelectorsShouldBeDifferent-testFailureBadIntervalAndVariableDoesNotExistpolynomialEval:testUnorderedList&testBestNodeWithValidSelectorMidSourcetestRawUnevaluatedEtestErrorWasInUIProcessIsTrueWhenDebugSessionWasCreatedByTheUIProcess testNotEmptytestDefinitionOfTraitWithSlots&testUnresolvedClassGroupRolePropertiesOtestChangeInInputSelectorWithNothingShouldChangePreviewLabelFinalWithFailedTexttestHasTemporariestestDoubleOuterPasslisttestFindJPGPreviewerNewTools-Compression-Utils+testCanGetFormOutOfBase64EncodedStringImagetestComparisonWithCopy testPointer testFalseAndAnythingReturnsFalsetestFromDetecttestRuleLoadsCorrectlytestPrint24withNanos#testWorkerPoolDoesNotExceedPoolSizetestDependencies6testSingleClickActivatesRowInSingleClickActivationModetestExtractNiltestPrintString_Emptyto:do:testUUIDVersion5testDefinitionHasCorrectStringtestBasicCoverage2testBlockWithInstanceVariableReturnsLastExpression-testTypedDoublePointerVariableArgumentHasTypeDtestInsettingLargerThanRectangleExtentShouldNotProduceNegativeExtent testIllegal test5kClassestestCommonAncestors testAddWatchtestUnsignedInt8testDeleteHistoryFromNode-testPullUpMethodWithCopyOverriddenMethodsDowntestChangingHelpAffectTheWidget testCeiling&testFallbackReplaceFromToWithForStringtestSumUnsignedInt32testOpeningDelimitertextk"testPassing4IntStructureInTheStacktestLoadMissingNodetestWithNullElementWithFixedtestDoItContextReadThisContextoptionInlineWhile testBasic2testTrueIfTrueReturnsBlockValueWithTempInsideBlocktestIsLetterModifier)testPerformAddRemoveClassInstanceVariable)testSuppressInformUsingStringMatchOptions0testHeuristicBuilderForTwoHeuristicBuildsWrapper%)testRemoveSecondElementRemovesFromAdaptertestRemoveShadowFromShapereadcopyReplaceTokens:with:testUnCategorizedMethodstestReplaceSetUptestBehaviorCommentChangetestWithDoError)testAddTreeWithContentInFileShouldSucceedtestClassesShadowtestwhichSelectorsWritetestOldBackOnPosition1testEqualsDictionarytestConflictingProtocolstestLinkAPIToAccessTexttestGmailEncryptedtestWithoutUndoRedoHistory6testKeepChangeWhenMethodModificationWithAbsentBehaviorSystem-History testBmp16BitSpec2-MicrodowntestForSecondsBtestUndoOperationAddsTheChangeToTheRedoCollectionInTheCorrectOrder$testSearchingVeDoesNotIncludeIcebergtestStSerialization testNameOfDaytestWithMockTutorialZinc-Character-Encoding-Tests6testComparisonOfTwoAnnotationsWithSameSelectorAndClasstestImportAClassCategory testRounding%testFamilyListCorrectAtInitializationSettings-SystemtestKeywordOnMultipleLinetestInstallMinimalMockClass DebugPointstestSortedElementstestRegisterSubRegisteraCollectionClasstestTimeZoneEquivalence2whotestDaysInMonth&testSingleLevelListWithNormalNumberingtest6*testInitialStatusIsInitialStatusPluginName%test0FixtureCopyPartOfForMultiplinesstestIsDashPunctuationtestUnclassifiedMethodGeneral-Rules-TestsKtestVariableByteClassWhenTraitCompositionChangedShouldAnnounceClassModified testNoShadowedVariablesInMethods testMinutes$testStoreShouldNotCloseBackingStreamtestSignatureOnMultipleLines testClass@testWordsAwareIteratorFiltersByASequenceOfCamelCaseWithUppercase%testPassing4DoubleStructureInTheStackCollections-Abstract-Traits$testUnregisterMCPackageKeepsRPackagetestSharedPoolNames isIntegertestDraggingOnNotDraggable,testModifyingClassKeepsOrganizationOfMethods testValueWithinTimingNestedOuter$testCleanUnusedUnreferencedBehaviors5testSettingNewEnvValueDuringRemovesItAfterDuringBlocktestExtensionClassestestCannotLoadGtestBuildSelectorStringWithPermuteMapAndNewArgumentsWhenAllNewArguments testWithRB8testRedundantMethodRemovaltestAddInheritanceDependencies%testMutateWideSymbolUsingPrivateAtPut1testIsNotNecessaryToCleanProperMethodWithFinalDot.testAsIdentitySetWithoutIdentityEqualsElementstestComputerUUIDdelta crossProduct: isSortedBy:testRegisteredPackagestestGroupedUndo2testLiteralArrayCollections-NativetestProtocolOfSelector,testChangingASharedPoolUpdatesCorrectlyUsersCursortestOneSpaceIndenttestCommentAfterMessages$testClassifyUnderAnnounceNewProtocol(testInBlockTempInstanceVariableShadowingtestBinaryOneArgumentPerLinetestMethodWithImpact brightness testAsArraytestAddClassTagWithEmptyNametestKeywordOnMultipleLine2testMigrateSlotWithInitialize testGreen162testUntypedConstantIntegerArgumentHasConstantValuetestKeyAtValue6Calypso-SystemPlugins-Traits-Queries-Tests-PWithTraitsCommander2-UI-Tests:testMethodCategorizedInSameClassicProtocolDoesNotRepackagetestClassVariablesCollection testSlideBloctestFailureExistingSelector-testOwnMethodsTakePrecedenceOverTraitsMethodstestLiteralString$testRemovedSelectorsWithLiteralArrayDrTests testPackagesadd:testSequenceOfFormats)testMarshallingStringReturnValueWithAliaswithSeparatorsCompactedtestWhenDisabledShouldNotLog testAddActors#testFailureNotUnderstandNewSelectorsideOf: testCloseTotestTerminateAnswersSelftestIsLineSeparatordltestMultiplyByArray*testNextManyAfterLimitShouldStopAfterLimit$testHasBindingThatBeginsWithClassVartestAlphaCompositingtestClassifyUnderWithProtocoltestPushConstantTrueBytecodetestExtractSetUp*testCompletionOpenOnUnderscore testRegister testLookingSubstringShowsResults2testMergingTwoStylesWithASameClassHasLeftOnlyClasstestEmptyHistorytestTraitNamedtestSetDensityCurveSteptestInheritsFromUnresolved testExiststestRelativeFromStringClassAnnotation-TeststestHumanReadableSISizeString$testNonResumableFallOffTheEndHandlertestAsStringOnDelimiterLastMoretestIncludesAny'testTruncatedToSizeResultHasCorrectSizetestSpaceBetweenTemporaries2 isFinalQuote:$testExtractLiteralExpectGotExtracted#testLinesOfCodeEmptyLineInTheMiddlejoinUsing:last:3testWithExtensionAddsExtensionNameContainsExtensiontestSettingDescriptiontestFinalizationWithOnForktestGettingRedefiningInstancetestAsStringWithCommas padLength4testArrayBindingsWithUppercaseNameDoOverwriteGlobalstestFindContextSuchThattestStepIntoDoIt2testHandlingSequenceOfBasicLinesProducesAParagraphtestSelectFiletestPushThisProcess$testCreateClassWithWeakClassVariabletestFailureInvalidClass testBitAttoday)testCloneMethodNeedsToBeInCopyingProtocoltestResolvePathtestCanUnzipFromStream testMailFrom&testDemoteToRPackageNamedWithExtension printStringtestWhileWithTemp Deprecated13testDeclareTempAndPaste:testUpdateNodesForVariableDebugPointAfterRecompilingMethod)testLegacyCalloutShouldSendStringArgumenttestConfidenceIntervalIsOkDrTests-TestsProfiling-Teststest0FixtureConcatenationTest>testIsAffectedByChangeOfSubclassMethodWhichOverridesSuperclasstestDisplayStackSize)testAcceptEntryLogsAverageTypedCharactersRoassal-Animation-TeststestDensityPlotDefaultValues testAsSecondstestNotSelectsNotOverrideMethod testSlots'testRemovingAnEmptyNonLeafClassReparentCollections-DoubleLinkedList1Calypso-SystemPlugins-InheritanceAnalysis-Browser"testExampleWhileWithTempNotInlinedtestRedotestReadWriteStreamNextNBug- testWithRBtestRootParenttestAccessorsColors%testAnnotationWithParametersWithBlanktestDateAndTimestestNewVariableBreakpointItemtestPrimitiveIndexed2Collections-SequenceabletestExpressionNoAssociation2 testHasNonDefaultValue_NoDefaulttestParseLineWithTwoCharacterstestUpTosum:4testImplicitEnvironmentContentForMetaclassDefinition>testClassDefinitionToolIsNotValidWhenReferencingDifferentClasstestPcsForNodetestPopupWithoutMouseLeavetestFutureExecutesConcurrentlytestCollectArgumentstestDefaultingClassWhenNoTag FFIBackendtestIndexOfDay#testAsUnixTimeIndependentOfTimezonetestIfNilIfNotNil"testConvertingToSomeHierarchyScopetestLinesOfCodeEmptyMethod#testFinalizationOfMultipleResources@testMoveToNodeInTheMiddleOfStatementSkipsTheBeginningOfStatementtestEphemeronClassIsEphemeronfirst:testGoOnMockTutorialtestStepToNextInstanceCreation/testConfidenceIntervalMaxIsGreaterThanQuartile3"test32BitOpaqueBlackIsTotallyBlack!testBlockCapturesVariableNotValuetestSearchBinary testReturnedAssociationsAreRighttestValidationWallClocktestGoodSimulationSpecific-RulestestRemoveMethod8testUndeclaredReparationWithSharedWasCrashingOnOldVM1001otestStatementNodeContainingtestRejectAllThenCollect"testBestNodeWithInvalidEmptySourceposition testComponent testNamingtest4Bit byteIndextestLocalVariable&testConvertingWithoutAbsentBasisObject flattenedtestFociLocationtestWriteStreamtestTwoLevelListtestBreakOnReadTo'testResolveConstantIntegerShouldBeInt32 testNewFromSystem-History-TeststestNestedCommentstestSmalltalkAsString testCopyEmptymetaLevelForHierarchyOf:'testOnceEvaluatesAfterConditionBehaviortestSetIsReadOnlyImmediateinBtestRenameClassUpdateClassExtensionSelectorsInTheExtendingPackagestestIsInternal*testAddSecondElementAfterOpenAddsToAdaptertestIsBytesLayout"testDynamicVariableRemovedAfterUsetestClassVariableInModel testInferiortestChainBehaviorPutChildtestRealizeAbstractClasstestWriteToFiletestHorizontalBartarget*testModificationTimeIsADateAndTimeInstancetestAllConnectedShapes testMultiple!testDTTestCoverageResultHas2Nodes testFutureAndThenExecutesInOrder#testAdd3BoxPlotsReturnsClusterCharttestRemoveParameterBaselineOfClassParsertestProtocolNameOfSelectortestTwotestSingleLevelMixedList#testSubClassAndAddComplexTraitAfter8testAcceptEntryIncrementsAverageEvenIfAtDifferentIndexes0testFutureFirstCompleteOfFailsIfFirstFailsFastertestCompletionAfterKeywordtestSiblingBlocksTempShadowing printPathOn:Rubric-SpecFindReplaceDialog-testConvertingToReducedScopeByExtraClassScopetestNoRemoteReadInBlocktestMultipleTimingstestExpressionNoAssociationextractBlock2InTemptestAmbiguousSelectortestVariableLayouttestCoordinatestestSimpleMerge?testCaseSensitiveFilterIsNotNarrowWhenTheInternalAreNotNarrowed5testChangingShapeDoesNotPutNilInMethodsLastLiteralKeytestTrueIfTrueEvaluateBlocktestSiblingOfPathtestAllButFirst*testReadIntoStartingAtCountFromStreamAtEndtallies+testModelInlineMethodWithSameVariableNames1 testResetingtestPresenterTextIsSetInWidget testSindarinSessionInstantiationtestSignedByteAtPutIntegerstestIndexesArraytestCanEscapeSpecialCharacterstestUnrefPointer1testRebuildPresenterDoNotLetReferencesInAnnouncertestNoNullCharactertestBreakOnAccesstestPrimNewWithstemAndNumericSuffixtestTraitExclusionscopyWithFirst:+testTraitSourceIsPersistedWithRecompilationtestPrimitiveNumberseventhtestWaitAndWaitTimeoutTogethertestUnionWithSeparatetestRemoveTestSlottestExampleBlockArgument+testFailureNonImmediateSubclassOfSuperclasstestAsClassRuleTransformationtestFromIntegertestIncludeClassWithExtensions newDictionarytestHasFilesTyped+testShouldUnzipAndOverwriteWithoutInforming with:collect:8testClassVariableDoesNotDuplicatesSubclassesOfSuperclasstestSelectThenDoOnEmpty named:ifNone:testWritesFieldtestReverseDoEmptytestAliasesCollectiontestComputeDensityCurveSteptestExampleSlotWithFluidAPI repeatedWrite testReferencetestHasZeroPriorityByDefault$testPassing4Int64StructureInTheStacktestSpaceBeforePeriodtestCounterRollover atAll:put:PitestCommentBetweenStatementstestMoveToNodeWhenNodeIsLiteralOrVariableThatHasNoAssociatedBytecodesMovesToNextNodeThatIsNotLiteralNorVariableThatHasAnAssociatedPCCommander-Activators-MousetestOrganizationPerInstance testIsRunning"testShouldAcceptFloatWithoutMinMaxhumanReadableByteSizeStringtestConvexHullOntestMillisecondsToGo+testInstanceVariableNamesMetaclassInterfacetestFromDateAndTime readStreamDo:testChangingSuperclassToOther,testResetFilterShouldRetrievePreviousResults testValueWithinTimingNestedInnerHtestBuildSelectorStringWithPermuteMapAndNewArgumentsWhenNewArgumentAdded testExpiringtestPrint24OnWithoutSeconds testRevertTotestUntypedNilArgumentIsNil passArraycentertestSort testFindFirst-testExtractClassFromAssignmentExpectExtractedtestErrorWhenDayIsAfterMonthEnd%testRedundantBehaviorRepackagedChangetestRemoveZeroarraytestFailureModelMetaclasstestPropertyValueAtPutcompare:with:collated:copytestSetIsReadOnlySuccessProxycurrent3testCannotChangeNumberOfIterationsWhenPasswordIsSet8testModelAbstractClassVariableOverridenMethodsInSubclasstestClassifyUnderWithNil_:"testCopyNonEmptyWithoutNotIncluded!testTallyShouldNotContainsAReturntestRevertingRedefinedInstancetestDefinedSelectorstestSizeSignedIntEnumtestAddInstVarNamedWithTrait2testWriteToContext)testReshapeClassPropagatesToDeepHierarchy9testPackageOfMethodFromTraitsOverridenModifiedKeepPackagetestPctestSelectableIndexAbovetestShouldAcceptNegativeFloattestOpenCanConsumeLinetestFullRegistrationtestSetIsReadOnlyFailuretestDeprecateClassTransform starting:testArrayEvaluateWithBindings testChangetestFailureExistingClassNameMultilingual-EncodingsMetacello-FileTreetestCopyWithAlltestNotifyBreakpointRemovedtestFillInTheBlanktestLabelShapeColortally?testFutureSuccessCallbackIsNotCalledIfFailureWasAlreadyDeployedtestClassRemoved/testSupplyAnswerUsingTraditionalMatchOfQuestiontestIfNotNilIfNil1Arg%testWriteInGivenContextShouldIgnoreIttestReferencedBehaviorsoffsetstartingAt:match:startingAt:!testWriteTemporaryVariablesMethod"testMoveDownInStackFromLastElement"testHasNonDefaultValue_AndSomeArgstest1BitDisplayColortestReplaceMethodOnlyInClasshextestNameOfMonthtestNoChangeOfLayoutDetectedtestMoveUpInStacktestFailureMetaclassFailuretestHourgcd:testIsEvaluatingtestLabeledOuterShapes02testPrintOnStream isByteStringtestSelectShapesFonts-Infrastructure-Tests testChangingLabelAffectTheWidgettestHasTemporaryVariablesBlockDebugger-Model-TeststestBuildDiffFortestNowhereToMove shuffleBy:testIsPrimitivepos#testSemanticAnalysisOnNonMethodNodeseentestPointerCanExtendVariable(testAllDependentPackagesFromSeenPackages$testFutureExecutesInNewProcessRunnerpossibleParenstestSmallIntegerLayouttestFirstAndLastLink testCleaningSUnit-Support-UITesting testMethodAttestMarshallingSize_ttestKeywordOnTheSameLine2"testMathBlockWithBackslashCommandsbadExpressionstestAddRemoveVariableBreakpointtestAnnotationWithParameterstestRenderingOfMyOwnCommentarcTan:!Refactoring-Transformations-TeststestSelectShapeWithShiftClickupTo: charactertestConstructionUsingWith testPrevious!testRealActiveProcessFromProcesortestwhenTextChangedDo testSendSupertestExpression CPUWatchertestToDoInsideTemp testSortBlocktestNewFromCollectiontestNoOrphanPackagetestComparisonWithItself'testComparisonOfFunctionsDefinedByBlocktestCreationUnifiedInstanceRoassal-ColorstestAssociationstestYearMonthDaytestPullUpAndCopyDowntestIncludeAssociationtestNewLinesAfterComment2testStepThroughtestPushArgumentVariable"testRemovePropertySlotWithInstance testBitXortestHasSlotNamedtestComputeBandwidthtestBadPathVariableIsusedtestAddingHaltToMethodtestNoPackagesOverrideDebugger-Oups-TestsisBytes"testNextManyShouldReturnCollection)testInstanceCreationMajorMinorSuffixBuildtestLongSingleArgument/testNewLineBeforeFirstKeywordDoesntAffectBinary#test0FixtureCopyWithReplacementTesttestJpegWriteReadUsingFilestestInspectionMetatestClassDefinitionA-testParsingAStyleIsNotAffectedByExistingClass+testSelectWhenSortedTransmitsCorrectElement.testResolveConstantNULLShouldBeVoidPointerType$testInitializedClassVariableCompiled&testGenerateBooleanArgumentNameForTrue*testStandardMethodInExistingMetaclassTraitvalues testIfExiststestUTF16EncoderBigEndiantestIsExternal testPharoCode4testInitializedClassVariableReflectiveBlockParameterAtestAddUndoAddsTheChangeToTheUndoStackAndEmptiesTheRedoCollection8testCancelCompletionInClassWithDynamicExtentLogsPerClasstestCommaAddsExtensiontestRemoveSharedPoolCollectionIsEmpty!testUndefinedPackageShouldBeEmpty(testPriorEntriesFromNullReferenceIsEmptytestPrintPathOnDelimitertestBuildBlockHeuristicBeacon-Core-Tests&testCreateTraitUsingAnotherSingleTraittestGenerateGettertestOptimizedBlockWriteInBlock testTabIndenttestBehaviorWithProtocolstestPointerCannotExtendWordtestOverriddenMethodoptionOptimiseSpecialSendstestMethod1forMocktestTargetedToolsWhenOneContext"testConstructedSelectorEnvironmenttestCartesianProductOfSizetestYScaleIsCorrect testPackageAttestCullCullCullCulltestMultiPartMixedcompareWith:collated:GtestVariableClassWhenTraitCompositionChangedShouldAnnounceClassModified(testReplaceElementBeforeOpenAppliesStyletestOrdinalScaleRangeBands(testMoveInstanceVariableToClassTransform0testIsTerminatingForcedTerminationWithoutRunningMonthtestSeriousBalance,testSetUpToolIsValidWhenReferencingSameClass3testExplicitRequirementWithSuperclassImplementationRefactoring-DataForTestingtestSimpleCommunicationtestSearchForPatternCode+testCallingFunctionWithW64CallingConvention testReadIntotestEmptyStream0Calypso-SystemQueries-Tests-P2WithSubclassFromP1testEnvironmentWithBody testFileNamedtestLayoutIntegritytestNthRootExactnesstestChevronIsWorkingOnClassSidetestReadFromBogustestByteArrayEmpty$testDefinitionOfNormalClassWithSlotstestMicrodownImport/testFailureExtractSetUpWhenIsNotFirstsSentencestestRemovePagetestSplitJoinStringOnChar&testPackageOfClassMethodIsClassPackagetestSelectorsForClasstestAsIntegerPointon:testSegmentFromPointsdoBlocktestInstVarNamedtestIsCashingResourcesFalse testOccurrencesOfForMultipliness$testAddRemoveBreakpointKeepTimeStamp#testNextVersionAlphanumericFilenametestComposeStackTest"Collections-DoubleLinkedList-Tests!testValidationSecondsNegativeTimeaSubCollection$testIsSuspendedWhenItIsNotStartedYettestCenterEmpty2testNotEnvironment;testWindowShouldBeSaveBeforeShutDownSaveAttributesButNoRoot testRotatedBytestBaselineOrConfigurationNameNumericInterpolatortestNoStepIntoQuickMethod"testRestartTestShouldKeepTestGreentestAdoptQuerytestGroupedUndo1,testReturnsInstancesFromAllAnnotatingMethods test32BitBlackColorTranformationtestwhenTextStylerChangedDo"testCopyReplaceFromToWithInsertionexLocale!testClassAdditionWithClassRemoved0testIntersectionTwoSimilarElementsInIntersectionselectEverySecondtestCompileInClassifiedtestSubClassAndAddTraitAfterat:put:testDelayWaitTimeoutTimedOut+testExplicitNotificationRaisesEventOnlyOncetestReadOnlyImmediateHeuristicCompletion-Morphicwhite Spec2-Tests)testSortDataSourceWithChainedSortFunctiontestWrappedElementOnBold1testChangeBorderWidthUpdatesEncompassingRectangle testRunTestsUpdatesUIWithResults RBScannertestAssignClassVariable9testMethodsOfTheClassShouldNotBeRepeatedInItsSuperclassestestDecodeMimeHeadertestInstallSimplePoint2testNotSymmetricWithStringtestChangingPcAssociatedToMethodOrSequenceNodeKeepsStackAsItIs$testProtocolRemovalWithProtocolAdded UnifiedFFIMonticello-ModeltestPrintPaddedWithtestSetIsReadOnlySuccesstestIdentityIndexOfDuplicatetestObsoleteClasses Roassal-Chart%testEnvironmentWithBrokenNestedScriptSpec2-Morphic-TeststestFailureBadNametestKeyStrokeFromMorphaddAll:testExtractAllKindstestCallWithPointer%testRawParametersWithNotStringAtValuetestRemoveAllPreservesCapacitytestCopyFromToWithForSortedtestAcceptEntryLogsItFiles testLanguagetestCompletionOnNoWord6testDoesNotApplyForMethodNodeInContextWithNoSuperclass difference:testBadKernelArgument testEmbeddedAnchorInTextAreDrawntestPushingValuesOnActivationNewTools-DebugPointsBrowsertestMethodWithMessageArgument$testDeprecatedAliasesOnExistingNamesindexOfAnyOf:ifAbsent: testDatabasebackendForTesttestOneRemoveFirstargmax testUpload$testOrWithLeftTrueShortcircuitsRighttestValidationSeconds testCreateAsaddLast:,testMiddleExpressionsOfASequenceGotExtracted!testHorizontalBlockFollowedByListsplitOn:indicesDo: badComments&testInlineComponentIntoCascadedMessagetestEmptyBlockOneArgumentOrderedDictionarytestStepToReturnWithException testDayOfYearexampleLiteralByteSymboltestUnmatchedBraceArrayz!testAddLabelledButtonAddTheButton6testParsingYYPatternWithWrongNumberOrDigitsShouldFailstestPreviousWord@testRenameClassUpdateMetaclassDefinedSelectorsInTheParentPackage(testMarshallingByteArrayAsStringArgumenttestFullPrintOntestExternalKernelDependenciesseconds:+-<>testWhileFalseExecutesLeftBlocktestNot"ReflectionMirrors-Primitives-Testsclass!testPackageNamedWithDifferentCasethis$testBetweenAndDoDisjointWithScheduletestIfCutDoWithCutAndUncuts extraArgumenttestSlotsAreNotDuplicatedtestStoreBooleanToStontestCompletionBeforeWordtestSumNumberItemsWithoutBlocktestDurationMoreThanMaxTicks,testRedefiningATraitAsAClassShouldRaiseError$testForcedRuleOnMethodWithPackageBantestIsDecimalDigit milliSecond7testEnvironmentWiathArgsWithCorrespondingClassIsCreatedtestRecompiledReturntestWhenEnabledShouldLog#testMultipleDocCommentsInOneCommenttestCopyAfterLasttestHeavyContention2hello%testOnForkErrorTakesLessThanOneSecondasStringtestDynamicDescriptiontestIconProvidertestFromSingleClass3testShouldWorldMorphBeAfterFontClassesInStartupList/testProtocolsForAllMethodsForClassWithoutTraits1testImplicitEnvironmentContentForMethodDefinitiontestDoItRequestorShadownextChar#renameTemporaryFrom:to:in:selector:Commander2-TestsweighttestTailCompressedZerosToBytestestAtIfAbsentPut'testFutureReturnsAssociatedFutureObject testCaption"testExternalMonticelloDependenciestestTempAssignmentAndReturnWithTempReferenceExpectGotExtractedoptionInlineRepeattestPrintFormattestVisitHttpImagestripSeparators0testPackageCommmentToolIsValidWhenPackageContexttestDottedMajorMinorPatchtestReadWriteWeakSlotReflectivetestPrimitiveRandomGeneration1testConflictMethodCreationasTestSelectorcloseTo:precision:testPrimLessOrEqualtestLoadNotFoundMicrodowntestLeftRotatedexampleNonSpecialLiteralInteger removeAt: testMerge2testRejectThenCollect-testSearchForExactCaseInsensitiveStringSucessNewTools-ScopesfromCharacter:ifNone:HeuristicCompletion-Tests testDelaykk3testExplicitRequirementInClassAlwaysTakesPrecedencetestIsAbstract classNamed:Keymapping-Tests instanceSide testModelPushDownOnMetaclassSide#testForcedRuleOnClassWithPackageBantestDisableHalttestWindowCreationAndDeletiontestGetMeanOfDatasetSizeOne1testClassDefFromLegacyStringHasSuperclassNameNode0testAddAtSamePositionTwiceSetsChildrenSingleTimetestRetrievesActiveScopetestFirstTagWithValueremove:ifAbsent:3testConvertingWithoutBasisObjectsWhenSomeIsNotExist testNoTimeout$Calypso-SystemPlugins-MethodDiffToolTool-ExternalBrowser-TestsallRangesOfSubstring:testUnusedAlternateProviderfalseAlternativeBlocktestComparisonWithSimilarResulttestCompileCharacterTool-ProcessBrowser*testSixtyFourBitRegisterLeftRotateBySimpletestStructWithArray asCamelCasetestNoon(testRemoveLocallyDefinedInstanceVariabletestModelWithCollectedDatatestOptionAtifAbsent testSkipWith uppercasetest04addBefore/testSmartQuoteSurroundsDoesNotEscapeDoubleQuotetestUpperPoint testTypedVariableArgumentHasType#testAllInstanceVariablesOwningClass+testTruncatedToSizeResultHasCorrectElements testAccessorInstanceVariableSlot testToCount4testExtentIsCorrecttestInferiorOrEqual!testSequenceOfMethodModifications testDotParenttestCollectiontestGifWriteReadInMemory5testPrecedencesAreGeneratedInClassDefinitionWithAliastestNotUsedArgument testBreakLinkanArgtestWindowsAbsolutePathNametestAddBeforeLink2testSpecialGestureOnOuterMorphPutsHaloInOuterMorph&test32BitTranslucentPixelValueKeepsRGBtestFlag dividend:)testAddParameterThatReferencesModelGlobalexampleLiteralLargeIntegertestOneSpaceInsideArraytestUTF32EncoderSimple"testMoveMethodIntoInstanceVariabletestHashBlockEqualityItestAsFileLocatorOrReferenceReturnsALocatorWhenStringRefersToAKnownOrigin testSizeSizeTtestDependenciesFromtestAddSameWatchSameNodeFreeType-Tests+testMissingPeriodSeparatorBetweenStatementstestWithEdges2!testStructureHasCorrectSize64bitstestPrivateReplaceFromTotestStructureOfAnchorReference-testIteratorOnACollectionReturnsTheFirstValue2testIsAffectedByChangeOfOwnMethodWhichIsOverriddentestMoveWithoutSelfReferencetestReentrantBlockkeywords>testStepThroughDoesTheSameThingAsStepOverWhenNoBlockIsInvolved testSortedtestFailureClassIsNotMeta testAsDatetestProtocolNamestestExecutionEnvironmentFlashback-Decompiler#testDataMatrixShouldHaveTheSameSizetestParseAsPointertestWhileWithArgtestAddSlotAnonymoustestDoItContextReadIvarSubclasstestBoldItalicAPIToAccessTexttestSintestBreadthFirst2testChangeDeactivatedAfterOpenCheckboxDectivatesIttestMaxLengthIsSetInWidget3testMethodsAccessingPoolVariablesFindsVariableUserstestsBeginsWithat:at: outputSet;testNewLineWhenSelectorAndBeginingOfParametersWillBeTooLongtestPathtestRadio2WidgetStartsSelected%testSixtyFourBitRegisterLeftRotateBy3testStandardClasstestJumpOnReturn testPropertytestEnsureDeleteTtestRemoveAllExtensionMethodsFromMetaAndInstanceSideUpdateOrganizerExtensionsMapping(testContextSelectorForNonBuilderSelectortestRelativePath&testChevronIsWorkingOnClassSideOnEmptytestShapeIsPushedFront isCharactertestTrue)Calypso-SystemQueries-Tests-PExtendedByP5testCreationFromBytes2 testAddTrait$testExampleAccessOuterFromCleanBlocktestIntersectionItself testCreate!testConstPlaceInTransformedMethod/testRemoveProtocolAnnouncementDuringCompilationBaselineOfSindarin,testLookingForStoreLowercaseReturnsDiskStoretestWhileModificationAftertestSizeUnsignedInt8notUnifiedFFI-TeststestSumSignedLongtestPackageTagRemovalnumberOfDigitsInBase:"testBetweenAndDoIncludedInScheduletestCreationFromBytes11testShowColumnHeadersInPresenterShowsThemInWidgettestZero!testEmbeddedOrderedWithFormattingtestSizestream%Calypso-SystemPlugins-FileOut-BrowsertestMorphicPopuptestBlockWithNonSharedDefaulttestLogLocatorSmallestIndexIsCorrectAfterChangingSmallestPowertestUnregistertestShallowCopyEmpty6testRemoveFirstElementAddedAfterOpenRemovesFromAdaptertestPackageOfUnpackagedClass5testFailureInlineMethodForSuperSendThatAlsoSendsSupertestEmbeddedUnorderedtestJulianDayNumbertestAddClassNoDuplicate testFactorytestImportAClassCommentatRandom:weighting:(test0FixtureCopyWithReplacementForSortedasFloattestTraitSourceasPathtestErrorWithErrorHandler$testStructureHasCorrectOffsets32bitstestParsingLogic testFileOutMultipleClassAdditiontestSizeInMemoryOfByteObjectstestDeleteAllHistory!testEnsureDeleteNonEmptyDirectorytestUnrestrictedSlottestLabeled04HasModel testReadsSlot testHour127testUncorrectJSONMetaDataProducesDictionaryWithContents0testPreferenceFilesNotCollideWithRealPreferencesaBooleanindexOf:startingAt:testMoveMethodIntoClassVariable testValuestestLastIndexOfIfAbsenttestPrimGreaterThan0testRenamePackageAlsoRenameAllExtensionProtocols3testNegatedFilterIsNarrowWhenTheInternalAreNarrowedtestFindAnyStringIn(testGettingSingleAnnotationUsingSelector)testGetRightLocatorWhenCreatingFromStringtestLatin2Encoder testSorting02testDebuggerTempAccess(testPrintString_AssignDefaultUsingEquals%testLiteralsDoesNotContainMethodClasstestIsAboutToInstantiateClassThreadedFFI-Graphics-ExtensionstestShuffleChangeOrder'testVisibilityWithBlockThatReturnsFalsetrimBoth.testFutureFlatCollectFailsOnFailingMapFunctiontestErrorNonExistingImage testEveryDo+testCreateTraitUsingAnotherTraitComposition testTargetedToolsWhenManyContexttestNotifyArgumentBreakpointHittestCreateVariableClassNamed#testDeleteAllWindowToRightOfAWindowtestSplitStringOnBlockbadSimpleExpressionsnewArray#testTerminationDuringNestedUnwindB2testHugeIntegerCloseToasOrderedCollectionCtestBestNodeWithInvalidMethodIncompleteMidSourceNearPreviousMessagetestUTF8ReadStreamBacktestMultiplyByNumbertestBasicSizeNotOverwritten,testExampleWhileModificationBeforeNotInlined isSeparator#testRemoveSenderIntoCascadedMessage2testPackageOfNonExtensionMethodIsPackageOfTheTraityear:month:day:BaselineOfWelcomeBrowser Dictionary0testLookingForDiskStoreWithSpaceReturnsDiskStore1testSplitBlockLinkWithParenthesesInsteadOfBrackettestclassVarNames#testConvertingWithNewRequiredResulttestSizeUnsignedChar-testFutureExecutesByDefaultInGlobalWorkerPooltestJustSendsSuperFailingtestHasLabelFalsetestDigitLength;testSettingAClassInAClassTraitCompositionShouldRaiseAnErrortestForTiltedStickyness&testOpenDefaultOnNonExistantFontFamily testCritiquesreversed\@aSequenceableCollectiontestCreateEphemeronClassWithAll testAtLeast=testMergeWithFontDoNotRemovePredefinedFontWhenNoFontIsDefinedtestSelectMethods factorial)testClassOrTraitNamedReturnsNilForGlobalselementRoassal-AnimationworldUnifiedFFI-Legacy"testCheckInputForInstallSubcommand caseSensitive testPrintOn2 testArithmeticAcrossDateBoundarytestUrlWithMicrodownParameters Network-MIMEtestFailureBadSelectortestWithHeighttestMoveToNodeRaisesErrorWhenNodeIsNotIdenticalToANodeInMethod"testStepToNextCallInClassWithErrortestFromNamesWithEmptyDatatestInt16AliasestestExampleSimpleBlockArgument1 testAtWrap2)testRemoveProtocolIfEmptyWithRealProtocol'testPerformAddRemoveMethodInteractively3testCompilerUsingCleanBlockClosureHasBlockAsLiteral testPopup:testUnselectAllInWidgetRaisesSelectionIndexChangeEventOncetestSizeSignedLongUnixtestKeepBlockInMessage)testFailureWhenTemporaryReadBeforeWritten testLeavestestsEndsWithEmptytestAnchorReference#testFailureModelAlreadyExistingName3testUnoptimisedValueSpecialSendsMessageCapturesSendtestModelPushDownVariabletestSymbolicLinkInMemorynextest0FixtureIterateTesttestParseAsBigArityPointer1testCreationByCommaWithMultipleCompatipleContexts*testGoodPathClassIsUnusedEmptyNoSubclasses3testNewStreamContentsReturnsCollectionOfCorrectSizetestTallySends testMerge83testNormalProcessCompletionWithLeftEffectiveProcessfooisEnclosingMark: testFailureModelExistingVariabletestNewWindowDefaults testWithDotestSkipAndBacktestUnionAccess~~testAllButFirstDoOSWindowDrivertestHorizontalLine testIfCutDoWithCutAndUncutsNoCut testColorFromGlobalIdentifierxa testObsolete"testProperConvertingProtocolIsUsedtestBaseAndExtensiontestHasMethodstestRevertToInContextKeymapping-Tools-SpecwithoutQuotingtestZeroRaisedToInteger,testSystemPackageIsAnsweredWithLoadedPackage(testClassAdditionWithClassAlreadyRemovedtestMultiLineMessage)testSearchingSettingsFindsTheCorrectEntry testCapacitytestDuplicateClassErrortestRemoveClassInstanceVariable"testClassModificationWithHierarchy-testDynamicVariableAccessFromDifferentProcesstestMathBlockOnMulitpleLinestestOne"testRemoveFirstNElementsNotPresenttest4BitColorstestCreateNormalClassSuperClasstestSharedClosureEnvironmentKtestCanRemoveUnreferencedClassUsingLimitedEnvironmentButReferencedElsewheretest14removeIfAbsent classSide,testFutureSelectSuccessOnSatisfyingConditionwithUnixLineEndings testInvalidSystemCommands-MethodCommandstestArgumentNamed,testUniqueClassInDefinedClassesUsingAddClass5testFromThreeMethodsWhenImplementorsCacheShouldBeUsedAI-Algorithms-Graph-ComponentstestAsLowercaseBasicAsciiRangetestStylerSpineRed'testAtIfAbsentWithGarbageCollectedValuetestParseTrailingSlash6testAnnouncementClassRemovedIsRaisedOnRemoveFromSystembetween:testMedianWithNumbers testPlusMinusLessThanGreaterThantestPrimitiveChangeClassToBaselineOfMisctestAnchorReferncetestSizeSignedLongWindows&testAccessingVariablesInOptimizedBlockFLHookPrimitiveClusterFLPositive32SmallIntegerCluster@Y"LO;!2\72+4n͝ $M"a:!BM=7 e ;S&K -+&"cT| /[71/F H/ .`? C3k*;!U-7 c6m?7Q^%n7Pw6 b@]= BAnuM4]E!:?%m2]%*H$DJ5DjW1H9$(EGރ9*!PHA U71111MA+&9go*F*`%`%ڥ} QCs;"/Vw(r3ABF>FLHookPrimitiveClusterQp?333333@??\(\7tJM7KƧ@N?陙@f |3!@ Q@lp@lVϪ .1?@Ul@aaao@ (\)?@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?ffffffFLPositive24SmallIntegerCluster oyi%B@pzFLHookPrimitiveCluster(FLNegative16SmallIntegerClusterFLHookPrimitiveCluster`"W:(FLHookPrimitiveCluster%.1le FLHookPrimitiveCluster'p1205Return the middle element, or as close as we can get. #'hello''2\Format the receiver by interpolating elements from collection, as in the following examples:b221Point instanceSide >>> PointE([:x :y :z | x + y + z] valueWithPossibleArgs: #( 13 12 15)) >>> 40 1130.013000 rxfrdthbr2a := a. [ :a [ :a. a := a2100*Note that key and value can be ANY object.2.4668517113662407Return a new sequenceable collection which contains the same elements as self but its elements are sorted in ascending order using the #'<=' operator. #( 1 #+ 294001120/(#(1 2 3 4) count: [ :each | each even ]) >>> 2-Tests-drange "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 min30 kkk XX kkk010DEvaluate aBlock for all elements between start and stop (inclusive).02811true ==> [false] >>> false2"('action' alike: 'actions') >>> 7.hello36c12DEasTestSelector "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: '')) asSymbol"Character tab isSeparator >>> true11asHex "'A' asHex >>> '16r41'" "'AA' asHex >>> '16r4116r41'" ^ self species new: self size * 4 streamContents: [ :stream | self do: [ :ch | stream nextPutAll: ch hex ]]ol000000Answer the set theoretic difference of two collections. Pay attention that the difference is not commutative, hence the order is important.2 ppp < <<<<<0r0Tests-unix-64-Roassal-Interaction-Tests-Test.xmlbook-result|W01-Welcome16357.12 001022230lastIndexOfAnyOf: 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 valuebad stop index16c18J('bar' asSortedCollection add: $c; yourself) asArray >>> {$a. $b. $c. $r}.136r1halt$a isCasedLetter >>> false(true xor: [false]) >>> true | Object | Object := 1. ^ Object56A variant of #streamContents: with a strict size limitEvaluate aBlock with each of the receiver's elements, in reverse order, along with the corresponding element, also in reverse order, from aSequencableCollection. TReturn the index starting at 1 of the argument in the receiver, zero if not present.(10 min: 20 max: 11) >>> 11322 12 XXXXXXXXX11foo: a x: a y: b [ :a :a :b | | a a b | a + a + b0.01Too many argumentsv( #('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'20e20$> isControlOther >>> false2e10(#(x y z) atLast: 2) >>> #y28^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.0g7.Tests-unix-64-Roassal-Animation-Tests-Test.xml7$' isInitialQuote >>> false0.5^ '' lastSpacePosition >>> 0 8('fred the bear' copyWithoutAll: 'aeiou ') >>> 'frdthbr'2'bar' asSortedCollection asArray >>> {$a. $b. $r}.0vector02B('abcdefgh' includesSubstring: 'DE' caseSensitive: false) >>> true,Refer to the comment in Collection|collect:.JReturn the green component of this color, a float in the range [0.0..1.0].00000BBB08888888888888880EEE09999999999999990HHH09(#(1 2 3) collect: [:each | each + 10]) >>> #(11 12 13) -1929hello;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: index+('hello!' noneSatisfy: #isLetter) >>> false2Tests-unix-64-Spec2-Morphic-Backend-Tests-Test.xml220(1 -> 'one') value >>> 'one'H(#(1 + 3 - 5) reduceRight: [ :a :op :b | a perform: op with: b ]) >>> -1#(-10 printStringBase: 10) >>> '-10'43.This symbol cannot be converted to an accessor'0002345' isAllDigits >>> truea000Unitialized variableUmedian "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 median030[ 127ifFalse: 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 value1$1 isDecimalDigit >>> truecollect: 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 ]]](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 ]bpharo3130ahexString "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: 168Tests-unix-64-Refactoring-Transformations-Tests-Test.xml3 appreciateelmerRepeatly value aBlock with a single copy of the receiver. Reorder the copy so that aBlock is presented all (self size factorial) possible permutations.d!#(1 2) asArray == #(1 2) >>> true20We2044That is false!d30111178 923200311=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 ] ]0 02LAdd a new object at the end of the collection, and returns the object itself1012false not >>> true1100Tests-unix-64-HeuristicCompletion-Tests-Test.xml3groupsOf: 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 ]]2!(100.1@200.9) floor >>> (100@200)10foo2kReturn the index'th element of me if possible. Return the first or last element if index is out of bounds.1({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}3Evaluate 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: 89Ten 421013A5330de10collect: 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: aBlock nil := nil pharo-project-(Color fromString: 'orange') >>> Color orangecAnswer the angle in radians. Implementation note: use sign in order to catch cases of negativeZero0.010vector0 9 % -4 >>> -32 ( 1 ]. 2 )!"a" ( "b" ( "c" 1 "d" ) "e" ) "f" 311112200445d322e'foo10' endsWithDigit >>> true3 00 ab ab ac deSEvaluates the argument with the write stream of the collection. Answers the result.01000000000200000((#(1 3) detect: #even ifNone: [0]) >>> 02U({10. 20} asOrderedCollection add: 20; yourself) >>> {10. 20. 20} asOrderedCollectionabc#foo keywordsStrict >>> #()middle "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 + 12221 ]5Answer the receiver with leading and trailing quotes.0128#() asByteArray >>> #[]192humanReadableByteSizeString "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: 21Optimized to go through the primitive if possible7 #( 0 1 r2 4 )6660vector042b10103foo*bazunion: 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 asArray<0000224455655597777855CCDDEDDDHFFFFGGDDICCBBBBBBAAAJ44333333+Tests-unix-64-EpiceaBrowsers-Tests-Test.xml10>Returns an array composed of the three color float components.1hRReturn all the elements in self that are not in aCollection. Alias of difference:6(#(1 2 3 4) asSet intersection: #() asSet) >>> Set new4(OrderedCollection new add: 42; yourself) size >>> 1rNonevaluating conjunction. Answer the opposite of the the argument, alternativeBlock; since the receiver is true. #(1 2 3) negated >>> #(-1 -2 -3)20310b5(Date year: 2018 month: 9 day: 28) weekdayIndex >>> 61-(#(1 2 3) beginsWith: #(1 2 3 4 5)) >>> false14second51atLast: 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']| tmp | tmp := 1. ^ tmpAAnswer whether the tail end of the receiver is the same as suffix"#(a b c d e f g h i) second >>> #b&(AsciiCharset toUppercase: $A) >>> $A.30 progress.log3VConvert to CamelCase, i.e, remove spaces, and convert starting lowercase to uppercase.31236(true ifFalse: [ 'This statement is false!' ]) >>> nil281XXXXaXXbXXXXcXXXXXXdXXXX2eMReturns the hex digit part of the integer when printed in hexadecimal format.Add returns the object itself30abc15/Answer how many elements the receiver contains.1:(10 to: 25 by: 5) asCommaStringAnd >>> '10, 15, 20 and 25'1intersection: 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 ] ]. ^ outputSet.*0vector0helSHIFT_L!(3.1479 truncateTo: 0.1) >>> 3.1###'71a::foo243110419 heLlo wOrLd3EMight be compiled inline for speed, see RBMessageNode>>#isInlineIfNilb15110.156s01 511111444410(({#x .#y. #z} atAllPut: #a) >>> #(a a a)asByteArray "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)]. ^ b2Answer whether the receiver contains any elements.,Tests-unix-64-Spec2-Code-Diff-Tests-Test.xmla510XX ^ n. n. ^ n5-110phuroth is is29 a stRI41111word before index5sum "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 ]. ^ sumc5N({10. 20} asOrderedCollection addAll: {20. 30. 30. 40.}) >>> {20. 30. 30. 40.}21+('Hello, World!' count: #isLowercase) >>> 82 rounded >>> 22AnewFrom: 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 contentse125540a0aisInitialQuote "Return whether the receiver is https://www.compart.com/en/unicode/category/Pi" "$' isInitialQuote >>> false" ^ self characterSet isInitialQuote: selfd10330n sssss n0XsssQAnswer a new collection with newElement added (as last element if sequenceable).{ ^ 1. 2. ^ 3 }1-1asSortedCollection: 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. ^ aSortedCollection1$'3,123' isAllAlphaNumerics >>> falsea|Answer the set theoretic intersection of two collections. Optimized version for Sets where no intermediate Set is necessaryfoo <> B 'TheRollingStones' normalizeCamelCase >>> 'The Rolling Stones' .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]90Pharo3$Optimized version based on primitive(#(11 22 33) atWrap: 3) >>> 3310 foo23bazoH('<1s> vs <1p>' expandMacrosWith: 'it''em') >>> 'it''em vs ''it''''em''' That is true!1*('salkjsdlkgfeesd' findString: 'sd') >>> 6200 3: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: selfatWrap: 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 + 11.00 GB1an integer greater than 1 as valid radix expected[ | a a | a := 10. a ]3%(3.1479 roundDownTo: 0.005) >>> 3.1451#+ keywordsStrict >>> #()28 'def' <= 'abc' >>> false22h12 That is true!+ foo:  0.1!(#(a b c d e) last: 2) >>> #(d e)10>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: #extensionPackageFFFFFFatRandom: 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'050121100 :BBBBB | bbbbb s n 0_Evaluating disjunction (OR) -- answer with the argument, aBoolean, since the receiver is false.0vector0 (#(a b c d e) indexOf: #c) >>> 3mobazo4aYmodulo. Remainder defined in terms of //. Answer a Number with the same sign as aNumber.#(10 20) size >>> 2iAnswer the lower right corner of the rectangle uniquely defined by the receiver and the argument, aPoint.51(#(11 22 33) atWrap: 2) >>> 22-111// 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) floor#>({ 2@6 . -4@3 . 10@ -3 } detectMax: [ :p | p x ]) >>> (10@ -3) 'hello* 00000111000222000334443555333666330000 translateBy: delta "Answer a Point translated by delta (an instance of Point)." "((100@200) translateBy: 5@10) >>> (105@210)" ^ (delta x + x) @ (delta y + y)b-2 0:B|||Xb0Morphic UI Process1-11202foo:502011.(#(a b c d e) indexOf: #c startingAt: 4) >>> 022/(nil ifNotNil: [:o | o +3 ] ifNil: [42]) >>> 421(#(3 1 4 2) sorted: [:a :b| a>=b]) >>> #(4 3 2 1)+(#(a b c d e f g h ) first: 3) >>> #(a b c)323010>({ 2@6 . -4@3 . 10@ -3 } detectMin: [ :p | p y ]) >>> (10@ -3)09Tests-unix-64-Collections-DoubleLinkedList-Tests-Test.xml1(2)6010RReturn the metaclass of the couple class/metaclass. Useful to avoid explicit test.10000222222888884AAaasBit "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 subclassResponsibilityi+Tests-unix-64-NewValueHolder-Tests-Test.xml:x "Answer the x coordinate." "(100@200) x >>> 100" ^ x| TTTTT | ttttt n. ^ ttttt612({'hel','lo'. 'world'} includes: 'hello') >>> true0vector0true asBit >>> 12-SmallInteger maxVal decimalDigitLength >>> 19def;Message sending and code execution - Runtime and Evaluation1003Class structural inspection - Class/Metaclass shift22222000011111172Tests-unix-64-System-Identification-Tests-Test.xmlThat is false!2.567>|s| s:=0. #(10 20 30) do: [:each | s := s + each]. s >>> 6016 0000000000(true or: [false]) >>> true3Returns whether the receiver contains the argument.#'abc' asWideString = 'abc' >>> truez-31242010 | a | | ab01102130(100@200) x >>> 100NcopyReplaceTokens: 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: true10 100000000.04-3foo*2qAnswer a Point that is the receiver's x and y floor. Answer the receiver if its coordinates are already integral.2({'hel','lo'. 'world'} includes: 'hello') >>> true[ e 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 ]) ] ] ];(#(1 2 3) union: #(4 5 6 2)) asSet >>> #(1 2 3 4 5 6) asSet200.85(#(1 2 3 4) reject: [:each | each = 3 ]) >>> #(1 2 4)IExecute the receiver with one or zero arguments depending on the receiver#name: asMutator >>> #name:120||#('a') asCommaString >>> 'a'6021a299string1101 16r4116r41 foo||bar||2310 r110.0isInsideRectangle: 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: self1, d20'abc' capitalized >>> 'Abc'0copyWithoutAll: 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]toverlappingPairsWithIndexDo: 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 ]4|odd " 0 odd >>> false" " 2 odd >>> false" "-2 odd >>> false" " 3 odd >>> true" "-3 odd >>> true" ^(self bitAnd: 1) = 10001111110004444443335002between: #(7 8)3118Return 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.042P(#(true true false true) inject: 0 into: [ :sum :each | sum + each asBit]) >>> 3)(1.2 arcTan: -1.5) >>> 2.4668517113662407014652450vector013:Tests-unix-64-NewTools-Debugger-Breakpoints-Tools-Test.xml*(#(1 2 3) reduce: [ :a :b | a + b ]) >>> 6c37FF0000x3oReturns a string representation of the receiver in base 16 in a way that executing it will return the receiver.2ATests-unix-64-Calypso-SystemPlugins-Traits-Queries-Tests-Test.xmldlongonewReturn the object stored in the second dictionary at secondKey. The second dictionary is accessed via the key firstKey.whatever1]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 ]]<<<<4(#(a b c d e) identityIndexOf: #c ifAbsent: 7) >>> 3%Answer the factorial of the receiver.*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::. :112Evaluate 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.b20TInterpret the receiver pattern (<1p>, <1s>, ...) with argument passed in anArray.5v (OrderedDictionary new at: #top at: #below1 put: 1; at: #top at: #below1 put: 2; at: #top at: #below1) >>> 2 test testePoint[1,/*comment*/2]1.01 ab ab ac deMCreates an array with anObject followed by elements contained in aCollection.1u u. 0 X X X XX X 0. X Xb3-(#(1 2 2 3 1 1 1) asBag includes: 1) >>> true#( #[ 0 1 2 ] )310(#(10 20 30) collect: [:e| e+1]) >>> #(11 21 31)03100/Negated value of all elements in the collectionBAnswer 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.e#(a b c) allButFirst >>> #(b c)1164/Tests-unix-64-Ring-ChunkImporter-Tests-Test.xml5Return a String with the STON serialization of object3-8abcd71twoabc1110(nil ifNil: [42] ifNotNil: [:o | o +3 ] ) >>> 42one-4255f({'1'. '1'. '2'. '1'. '1'} atRandom: (Random seed: -42) weighting: [ :each | each asInteger ]) >>> '1'XXXXXXX### XXn XX nnX1)(STON fromString: 'Point[1,2]') >>> (1@2)902230212091(-2.567 printShowingDecimalPlaces: 2) >>> '-2.57'1string3FAnswer 1 if the receiver is greater than 0, -1 if less than 0, else 0.X X X 6Tests-unix-64-Morphic-Widgets-FastTable-Tests-Test.xml "a" ^ "b" 5 "c" 402isLetter "Return whether the receiver is a letter." "$a isLetter >>> true" "$ isLetter >>> true" "$A isLetter >>> true" ^ self characterSet isLetter: selfD(#(2 3 4 4 5 6) copyWithoutDuplicates asSet) >>> #(2 3 4 5 6) asSet2XsXXXXoAnswer whether the receiver sorts before aString. The collation order is simple ascii (with case differences).40vector0914>> 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 ] ]. ^ true51!'ABA' asByteArray >>> #[65 66 65]b1iReturn the stop element of an interval. Pay attention this is not necessary the same as the last element.w(Character pageUp isControlOther >>> true2%Answer the factorial of the receiver.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 ]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 mapcan113110vector000vector0#(10 20 30) anyOne >>> 10Literal expectedMissing opener for closer: ]'('XaX' escapeCharacter: $X) >>> 'XXaXX'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:.0b4233,(Set newFrom: {1. 2. 3}) >>> #( 1 2 3) asSet0sign "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 ]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. 'abc' > 'def' >>> falseifTrue: 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 subclassResponsibility between: 60test test Network(#() sum: #abs) >>> 0112010vector0600JtallyInstructions: 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 sortedElements51'abc' \ 'cbe' >>> 'a'.10.12fred is number 1811311Ternary 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. between: 0 'def' < 'abc' >>> false-101012Point isClassSide >>> false, 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)$#( #':=' aa: #= #':=' #= cc: #'==' )1POr it can follow full superclass chain which will ends at Object and ProtoObject { 1 ]. 2 }0vector0400v(String streamContents: [:s| { 10. 'hello'. $x } printOn: s delimiter: ', ' last: ' & ']) >>> '10, ''hello'' & $x'3ABxybbytesCount "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]]. ^length5801 foo 2 :nnumericSuffix "'abc98' numericSuffix >>> 98" "'98abc' numericSuffix >>> 0" ^ self stemAndNumericSuffix last0.001NTests-unix-64-Calypso-SystemPlugins-InheritanceAnalysis-Queries-Tests-Test.xmljA variant of #streamContents: where the initial or even final size is given to optimize memory consumption-({10. 20} asOrderedCollection add: 30) >>> 302 953.67 MB0.91984359726295212111101100041024200000111103355554446 [ > 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) > 010#(Color red diff: Color red) >>> 0.03abc2_In the following example, the group `3->#(34)` is filtered out because there is not 2 elements.E'foo' asOrderedCollection = #($o $o $f) asOrderedCollection >>> falseB([#() emptyCheck] on: CollectionIsEmpty do: [ 'oops' ]) >>> 'oops'20MReturn a color with the given r, g, and b components in the range [0.0..1.0].1.0594630943592953105withIndexSelect: 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 ] ]. ^ newCollectionCWrite the STON serialization of object to the character writeStream{guarded "Return a positive nonzero extent." "(100@200) guarded >>> (100@200)" "(0@5) guarded >>> (1@5)" ^self max: 1@15Create 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.310p(String streamContents: [:s | #(1 2 3) do: [:each | s << each asString] separatedBy: [s << ', ']]) >>> '1, 2, 3'102013<<<<<160#(#(a b c d e) last: 3) >>> #(c d e)202foo | a | a := 1. ^ [ | a | a := 10. a ] value + a8Answer 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.foo < squeezeOutNumber "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: self2a5112111Evaluate 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.^ 5Nonevaluating conjunction. If the receiver is true, answer the value of the argument, alternativeBlock; otherwise answer false without evaluating the argument.1XXXXXXXXXXXXXXXX6 0 :B :B | b 0@Pairwise sum of two sequenceable collections of the same length.0 abcabcabc11116122allButFirstDo: 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)] XX n XXX n Xsi32002RUtility method to improve readability. Do not create the intermediate collection.65536-2 odd >>> false)(self >> #selector) isExtension >>> false12~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 selfde20)Optimized version of Collection>>#reject: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 do30111&(Color r: 1 g: 1 b: 1) >>> Color white1s1 s1-Tests-unix-64-UndefinedClasses-Tests-Test.xmlDE100green "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 / ComponentMax20:(#(a b c d e) indexOf: #c startingAt: 2 ifAbsent: 7) >>> 3 goodby: 2 my: 3w& aCollection "Alias for intersection:" "#(1 2 3 4) & #(1 2 4 6 7) >>> #(1 2 4)" ^ self intersection: aCollection31111200445555555766A88889311'ab' asArray >>> {$a. $b} :. a: foo12238(100@200) min >>> 1002#(#[1 2 0 4] booleanAt: 2) >>> true.>Tests-unix-64-SystemCommands-RefactoringSupport-Tests-Test.xml223Extract 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.%(-3.1479 roundDownTo: 0.01) >>> -3.1516[((Date year: 2018 month: 9 day: 28) previous: 'Sunday') printString >>> '23 September 2018'3121210beginsWith: 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]]. ^true1201833PnewFromKeys: 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 ]. ^ dict0vector03!('*baz' match: 'mobazo') >>>falsetaz4#( # ## #ab # 10 # #'.' 10 )C(NSPerlinNoise2 new noise: 3.14 y: 42 z: 7) >>> 0.136919958784000122)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. ) ] }%({1@ -4. -10@1} sum: #abs) >>> (11@5)-2 even >>> truesort "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]A10It is always a number or zero:2;({'hel','lo'. 'world'} identityIncludes: 'hello') >>> falsehello and: alternativeBlock "Nonevaluating conjunction -- answer with false since the receiver is false." "(false and: [true]) >>> false" "(false and: [Error signal]) >>> false" ^self`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: self('aa' compare: 'aa') >>> 26('salkjsdlkgfee' findString: 'ee'startingAt: 3) >>> 12c3Invalid input/output !1Evaluate pieceBlock with substrings of the receiver derived from cutting the receiver at points where binaryBlock answers true for adjacent elements.13(false or: [3]) >>> 3hello + 151That is false!indexOf: 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 value1,ppp | T | t n. ^ 0 :B | b 0 ssssss nn s t028 1 foo: ; baruminute "1 minute printString >>> '0:00:01:00'" "(1 hour + 1 minute) printString >>> '0:01:01:00'" ^ self minutes3/Tests-unix-64-Collections-Atomic-Tests-Test.xml1coolConvert 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.0ebPrint 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'21#( #( 0 1 r2 3 ) )I(Date year: 2018 month: 9 day: 28) month printString >>> 'September 2018'00000000000000 and a1110 appreciated212--stage-name=Tests-unix-642 abab ac de`(#('We' 'love' 'pharo!') withIndexSelect: [:value :index | value size - 1 <= index]) >>> #('We')(1923 truncateTo: 10) >>> 19202"0 :B :B :B | | T t T | t s t s t 0pppp AAAA ^ aaaa s nZReplace all occurrences of oldSubstring that are surrounded by non-alphanumeric characters110aSpecial case of exponent=012eEvaluate the elementBlock for all elements in the receiver, and evaluate the separatorBlock between.(#() writeStreamDo: [ :stream | stream nextPut: '4'; space; nextPutAll: '34'. stream contents ]) >>> {'4'. Character space. $3. $4}0(#(10 20) asSet copyWith: 20) >>> #(10 20) asSet7324^ . ^ 1xAnswer the integer represented by the leading digits of the receiver, or nil if the receiver does not begin with a digit:. :. :acaption10033013EMight be compiled inline for speed, see RBMessageNode>>#isInlineIfNilkEvaluate the block, unless I'm == nil (q.v.). If the receiver is not nil, pass it as argument to the block.17:Answer a Point translated by delta (an instance of Point).0;Answer a Point that is the product of the receiver and arg.10761.9283901234902349355We9 00002222221a161020bEPairwise quotient of two sequenceable collections of the same length.one270-1116Consider using any of printStringHex printStringBase: 16 printStringBase: 16 length: 8 padded: true storeStringHex storeStringBase: 16 storeStringBase: 16 length: 11 padded: trueJExecutes aBlock on each of the receiver's elements except for the last one:Answer whether anObject is one of the receiver's elements.3!(10 beBetween: 12 and: 20) >>> 123o (Dictionary new at: #top at: #below1 put: 1; at: #top at: #below1 put: 2; at: #top at: #below1) >>> 208asOpenInterval "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 - step3331zk cd zk ef zk(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.5Answer 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!!bar5('*foo#zort' match: 'afoo3zortthenfoo3zort') >>> true1&#(10 20 30) - #(0 1 2) >>> #(10 19 28)12016rC3411!""" 0 """ n """ . """ n """ 0 """$('foo*baz' match: 'foobaz') >>> truefalse & true >>> falseX(#(5 6 7 8) asOrderedCollection removeAllSuchThat: #even) >>> #(5 7) asOrderedCollection212`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 ]X([:c| c isSeparator] split: 'aa bb cc dd')>>> #('aa' 'bb' 'cc' 'dd') asOrderedCollectionYmakeRoomAtFirst "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 := newLastIndex!#(a b c d e f g h i) third >>> #c021333332X(#(1 2 3 4) select: [:each | each > 2 ] thenCollect: [:each | each + 10 ]) >>> #(13 14)7.5MasOrderedCollection "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: OrderedCollection1eighth "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: 8lo0Answer 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.13he'llo4011Point instanceSide >>> Point100a3123abc151.019a60"(#() allSatisfy: [false]) >>> truefReturn index of first element that satisfies aBlock. If no matching element is found, raise an error.x2 between: 0 and: 4?Print the receiver's path on aStream (without 'Path' prepended)-1.5 0DDD00000EEE04377733888399A0CCC0$(#() noneSatisfy: ['oops']) >>> true1234c(#(1.9283901234902349 2.302949083493849) closeTo: #(1.9283901234902348 2.302949083493899)) >>> trueA(#(xa xc xz xb xy) sorted: #last ascending) >>> #(xa xb xc xy xz)6 Pharoiscool200+Tests-unix-64-Roassal-Global-Tests-Test.xml12/({1. $a. $a. 3} as: RunArray) runs >>> #(1 2 1)def13Class structural inspection - Class/Metaclass shift10Xs)Tests-unix-64-Zinc-HTTP-Examples-Test.xmll17914,(#(a b c d e) indexOf: #x ifAbsent: 7) >>> 7removeAllSuchThat: 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]]561pharo40oneafromHexString: 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: alpha?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.117 between: f0vector01|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]. ^ true3 goodby: my: 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:3& aBoolean "Evaluating conjunction -- answer false since receiver is false." "false & true >>> false" "false & false >>> false" ^self030120/#( #':=' aa: #= #':=' #= bb: #'==' #cc: #'==' )1&#(1 2 3 4) & #(1 2 4 6 7) >>> #(1 2 4)101.(#(1 2 2 3 1 1 1) asBag includes: 5) >>> falsefalse := false-Here 123should % be 6 the name6 of the method 0000000020000033((#(10 20 10 30) occurrencesOf: 10) >>> 2Point isInstanceSide >>> true[:a b]232A9Maybe look at the related method Collection>>inject:into:$Returns a number between 0.0 and 1.0 W01-Welcome546888333A9992BDDD111E0000FFHHH400:(#(1 3) detect: #even ifFound: #negated ifNone: [0]) >>> 030|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 contentsxa27|:a|9C#(10 20 10) asOrderedCollection removeAll >>> OrderedCollection new27451(Tests-unix-64-ClassParser-Tests-Test.xmlweekday "Answer the name of the day of the week on which the receiver falls." "(Date year: 2018 month: 9 day: 28) weekday >>> #Friday" ^ self dayOfWeekName00 1 n n n 1 00 X X X{1]2} 004abc2 222222333333FTests-unix-64-Calypso-SystemPlugins-Deprecation-Queries-Tests-Test.xml7( #() asSet intersection: #(1 2 3 4) asSet) >>> Set new102(100@200) floor >>> (100@200)0.6670('LOL' detect: #isLowercase ifNone: [$X]) >>> $X03 #[ 1 ) 2 ]43('abc' alike: 'abc') >>> 7.100J('Ab cd ef Ab cd' allRangesOfSubstring: 'cd') >>> {(4 to: 5). (13 to: 14)}1000000141043 | TTTTTT | tttttt n. ^ tttttt4004( #(1 #(2 3) #(4 #(5))) flattened ) >>> #(1 2 3 4 5)50kIf the receiver is not nil, pass it as argument to the ifNotNilBlock block. else execute the nilBlock blockiXaXb600100203Answer whether the receiver is a letter or a digit.100n0X0n0(Array streamContents: [:stream | #(10 20 30 40) overlappingPairsWithIndexDo: [:first :second :index| stream nextPut: (first + second + index)]]) >>> #(31 52 73)42b!"a" { "b" 1 "c" . "d" 2 "e" } "f"23i(String streamContents: [:s| { 10. 'hello'. $x } printOn: s delimiter: ', ']) >>> '10, ''hello'', $x'241920>(#(a b a d a) lastIndexOf: #a startingAt: 1 ifAbsent: 7) >>> 128:= 1(Color fromHexString: 'FFFFFF')>>> (Color white) 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 size1000Z(#(1 2 3 3 4 1 2 3 5 4 6) splitOn: 4) >>> #(#(1 2 3 3) #(1 2 3 5) #(6))asOrderedCollection111make@foo*Tests-unix-64-Commander2-UI-Tests-Test.xml10abcdefghreject: 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 ] Pharo is cool22100Evaluate 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.28223\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 ](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)20!#(1 2 2 3 1 1 1) asBag sum >>> 11[ | 1234znak ::x43 ) :2 2r. 3nanoSeconds "2 nanoSeconds printString >>> '0:00:00:00.000000002'" "(1 milliSecond + 2 nanoSeconds) printString >>> '0:00:00:00.001000002'" ^ Duration nanoSeconds: self0011213111644445511700! foo: arg bar: arr ^ arg + arr . 0bfo193+ 141912~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>[ #( #( #( #[ ] #[ ] #'[' #']' ) ) ) "a" "b" "c" "d" "e" "f" ]4'he''llo' surroundedBySingleQuotes >>> '''he''llo'''1209Tests-unix-64-NewTools-SpTextPresenterDecorators-Test.xmlabc a := 10. ^ aa1107)({1 .2 .3 .4} at: 3 incrementBy: 2) >>> 52101Tests-unix-64-Collections-Abstract-Tests-Test.xml#name asMutator >>> #name:3(#(1 5 10) detectIndex: [ :each | each > 3 ]) >>> 2122&((100@200) min: (30@400)) >>> (30@200)0CodeError signal: 'false error'*(100@200) reciprocal >>> ((1/100)@(1/200))113-2Xnot "Negation--answer false since the receiver is true." "true not >>> false" ^false57513021between: #(5 6)1Answer 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.+((100@200) translateBy: 5@10) >>> (105@210)30103Class structural inspection - Class/Metaclass shift 322222256identityIndexOf: 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 valueLIf 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.$$dTIterate over all the pairs of the receiver and apply the binaryBlock to each pair. 190abcfredPerform 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.two001000224452200866667765536 bytesCount >>> 3022"worda := a. { [ :a }. a := a3100 Point[1,2]1qendsWith: 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 ] ]. ^true335120reversed "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, isDigit "Return whether the receiver is a digit." "$1 isDigit >>> true" "$0 isDigit >>> true" ^ self characterSet isDigit: self10*baz*surroundString: 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 contents1930((Color colorFrom: #blue)>>> (Color blue)nhue "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 ]. ^ h3333333a2000111213441511001 + 2 ]loveXXXs[ 12018+Tests-unix-64-NewTools-FontChooser-Test.xml1662820whoRReturns a string representation of the receiver as hexadecimal, prefixed with 16r.32foo: self ^ self + 1210.5$Tests-unix-64-Morphic-Tests-Test.xml402010X X a: :fooreverseWithIndexDo: 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]\ 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: aCollection20181|generator| generator := Generator onDo: [ :doBody | Integer primesUpTo: 10000000 do: doBody ]. (generator next: 5) asArray >>> #(2 3 5 7 11) n ssssXsss#Tests-unix-64-Traits-Tests-Test.xml% 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 \\ aNumber2#(:="A"aa:="B":=="C"cc:=="D")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.1321111#_ asMutator >>> #_:2203 (10.156s round: 2) >>> 10.160s3 12'{1. 2} asBag = {2. 1} asBag >>> trueAnswer the index of anElement within the receiver. If the receiver does not contain anElement, answer the result of evaluating the argument, exceptionBlock.50xz-1222.0collect: 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)]. ^ newCollection [ :a :b | 3-0.91002343#1r01QAnswer the next multiple of aNumber toward infinity that is nearest the receiver.1.5 rounded >>> 211&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) ) )O( #(1 2 3 4 5) asSet reduce: [ :a :b :c | a + b + c ] ) >>> (1 + 2 + 3 + 4 + 5)#$) isConnectorPunctuation >>> false . 'hello';([:x | x + 1] valueWithPossibleArgs: #( 13 12 15)) >>> 14 37200'('hello' difference: 'aeiou') >>> 'hll'0vector06100111nXn0,Tests-unix-64-Ring-Monticello-Tests-Test.xmlNonevaluating conjunction. If the receiver is true, answer the opposite of the the argument, alternativeBlock; otherwise answer the value of the alternativeBlock.1((STON reader acceptUnknownClasses: true; on: 'FooBarBaz { #foo : 100 }' readStream; next) at: STON classNameKey) >>> #FooBarBaz42#'a''b' isAllAlphaNumerics >>> falseb 10010024c"(3.1479 roundUpTo: 0.005) >>> 3.15[Answer the third element of the receiver. Raise an error if there are not enough elements.C(#(1 2 3 4 5) reject: #even thenCollect: [:x|x*10]) >>> #(10 30 50)301'A' asHex >>> '16r41'7Returns a color instance from HEX (6 element elements).MReturn whether the receiver is https://www.compart.com/en/unicode/category/Pf222221333444442Pharo0022300 Answer 1 since receiver is true.2110Return 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.`Answer a copy of the receiver that does not contain any elements equal to those in aCollection.3FcopyWithoutDuplicates "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 asArray[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 reversed4210d370.005isSeparator "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 ] ] ] ]210002| | . 16653S ([#() anyOne] on: SubscriptOutOfBounds do: [ :ex | 'whatever' ]) >>> 'whatever' 0317 [ :a :a | a ]Answer the index of the first substring within the receiver, starting at start. If the receiver does not contain substring, answer 0. ######X##### That is true! #(a b c d e f g h ) fifth >>> #e201]Answer the last n elements of the receiver. Raise an error if there are not enough elements.0vector0?('<1?success:is error>' expandMacrosWith: false) >>> 'is error'c300001100000220000033000004400000550000066000007700000880000099000000AAA000000BBB000000CCC000000DDD000000EEE000000FFF000000GGG0IIJJ20do210nXXnfalse & false >>> false0.52!(10 printStringBase: 10) >>> '10'23410[ :a | b1foo: + 0:B :B050.010000000250 Xuuuuu n1?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 asFloat&2 minutes printString >>> '0:00:02:00'(8 raisedTo: 2) >>> 64212n(Array streamContents: [:stream | #(1 2 3) allButFirstDo: [:each | stream nextPut: (each + 10)]]) >>> #(12 13)awordBefore: 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 ] #(aa:bb:cc#aa:bb:cc#cc==#== =#=)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 mapcanHello!highBit "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 highBitOfPositiveReceiver0((3 to: 9 by: 2) allSatisfy: #isPrime) >>> falseaXXb(1 decimalDigitAt: 2) >>> 0301142-10 *foo#zortbbook-result/W01-Welcome3(RuntimeSyntaxError signal: 'false error'$a isLetter >>> true2foo < bar: baz > 1e1book-result/W01-Welcome 0:B|| |b0world12nprintPathOn: 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 delimiter311-1 - 1abs-1 - 1max:-1c31 max: 206foo ^ [ :a | [ | a | a := 10. a ] value + a ] value: 13020010 'def' > 'def' >>> false0 'abc' < 'def' >>> true10c511Do a character-by-character comparison between the receiver and aString. Return the index of the final character that matched exactly.foo2.570Tests-unix-64-Collections-Streams-Tests-Test.xml%Tests-unix-64-Sindarin-Tests-Test.xml 0:00:00:02false | false >>> false(Array streamContents: [:stream | #(10 20 30) keysAndValuesDo: [:key :value | stream nextPut: (key * 2 + value)]]) >>> #(12 24 36)=Answer a copy of the receiver without any duplicated elements2 Xuuuuuu Xuu @Tests-unix-64-Calypso-SystemPlugins-Flags-Queries-Tests-Test.xml5anyOne "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 ]0vector0c1a100detect: 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 value$(#[1 2 0 4] booleanAt: 3) >>> false.1200allButFirst: 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 size0vector0'(#(10 20 30) includesAll: #()) >>> true1520isInstanceSide "Return true whether the receiver is a class (in a couple class/metaclass sense)." "Point isInstanceSide >>> true" "Point class isInstanceSide >>> false" ^ self isClassSide not Pharo is cool1677721512800002222222326685556-1rounded "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)) truncated130 hex >>> '16r1E'actions between: 2between: #(11 15) book-result02233120200055CCC6667DDD889EEEAAABBFFF0XifNil: 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 value3b255105010243.0a6pharoEdetect: 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" ]c_(#(11 22 33) asOrderedCollection atWrap: 6 put: 0; yourself) >>> #(11 22 0) asOrderedCollection$a isAlphaNumeric >>> true2nuun s nssn s ns nn0.02r x3Signal CollectionIsEmpty if the collection is empty3'2 between: ( 1 and: 4)' findSelector >>> #between:!'' expandMacros >>> String tab8(0@10 isInsideRectangle: (0@0 corner: 100@100)) >>> truehopSNote: By convention, brightness is abbreviated 'v' to to avoid confusion with blue.7209*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 subclassResponsibility10.01(false and: [true]) >>> falseA('abcDefgh' includesSubstring: 'De' caseSensitive: true) >>> true312findSelector "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]. ^ nil4226Returns the instance of myself having aString as name.2410!(#() collect: [:x | x+1]) >>> #()12004210071(KeyboardKey fromCharacter: $a) >>> KeyboardKey A12'(6 numberOfCombinationsTaken: 3) >>> 2057zz10loEvaluate aBlock with the elements of the receiver. If aBlock returns false for all elements return true. Otherwise return falseEvaluate 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.pReturns the keywords of the provided selector. If the receiver is not keyword-based, an empty array is returned.it'em2018xc true. := true1 'abc' = 'def' >>> false30if it is to be it is up to mec2i200-14abcc2 a530(nil)129decimalDigitAt: 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: 10NReturn the class of the couple class/metaclass. Useful to avoid explicit test.-OrderedCollection new asArray class >>> Array(1 max: 1000) >>> 100032ppp | T | t n. ^ 0 | T | t nn. t 0 sssss s tshuffledBy: 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: aRandom0 ^ n 0. n. ^ n242"'( 1 and: 4)' findSelector >>> nil3125('salkjsdlkgfee' findString: 'al'startingAt: 3) >>> 0416rA 00000001100 <= 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) <= 02[(String streamContents: [ :s | -10 printOn: s base: 10 length: 4 padded: true] ) >>> '-010'0.0S(#(2r101 2r11 2r1000) inject: 0 into: [ :acc :each | acc bitXor: each ]) >>> 2r1110529* 666 00777020888000III0F9HHH9999DDD9A EEE def50*Tests-unix-64-Roassal-Chart-Tests-Test.xmlcd10 3 odd >>> true-3 234Whoopie?(STON fromString: '#foo : 100') class >>> STON associationClass202[:a:b]>(#(1 2 3 4) joinUsing: ', ' last: ' and ') >>> '1, 2, 3 and 4'20cFSupport collection enumeration with a counter, even though not ordered]Returns whether the receiver is composed entirely of alphanumerics (i.e., letters or digits).d1101$} isControlOther >>> falseh13MAnswer the next multiple of aNumber toward zero that is nearest the receiver.65536 == (1 bitShift: 16)1u u. X X X. X X abdhelloabd'1.234' asInteger >>> 12221$A isLetter >>> true0.450(#(a b a d a) lastIndexOf: #a ifAbsent: 7) >>> 5c03XXXXXXXXXXXXXXXXXX salkjsdlkgfee 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. 330CisEmptyOrNil "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 isEmptyd0011200d(#(1 2 3 4 1 2 3 4 5 6 ) groupByRuns: [ :each | each = 4]) >>> #(#(1 2 3) #(4) #(1 2 3) #(4) #(5 6))30 00002222266650:B :X ; #( #[ 0 1 2 ]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)]5Split the argument using the receiver as a separator. hello world(gggggggggggggggggg sssssss '''''''''''''[ ^ 1. 2. ^ 3 ]10 Xuuuuu classSide "Return the metaclass of the couple class/metaclass. Useful to avoid explicit test." "Point classSide >>> Point class" "Point class classSide >>> Point class" ^ self subclassResponsibility501b8661#( 'a' 'b' 'c') asCommaStringAnd >>> 'a, b and c'C('bar' asSortedCollection: [:x :y| x>y ]) asArray >>> {$r. $b. $a}.a(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 'a5' foo < bar 2pharo!21010L writes the N-th argument using #printString, but without trancating it.or: alternativeBlock "Nonevaluating disjunction -- answer true since the receiver is true." "(true or: [Error signal]) >>> true" "(true or: [false]) >>> true" ^ selfpharo2.0foo1Phaafter: 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]hslSaturation "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)200Absolute value of all elements in the collection2e1000ifNotNil: 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" ^ self3KExecutes aBlock on each of the receiver's elements except for the first one0""""" '""" 0 """ | """ T """ T """ | """ 0 """ 10000000000002103D(STON fromString: '{ #foo : 1 , #bar : 2 }') class >>> STON mapClass0 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 ceiling443120.1 That is true!Xn. Xu. X n. X"""n1(#(3 9 1) sorted: [:a :b | a <= b ]) >>> #(1 3 9)We0vector0730(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))1Returns a new string with contents equals to aString surrounded by aCharacter. Escapes all occurrences of aCharacter within aString by doubling them.}onPreviousMonth "(Date year: 2018 month: 9 day: 28) onPreviousMonth printString >>> '28 August 2018'" ^ self addMonths: -14Tests-unix-64-Refactoring-Environment-Tests-Test.xml1001Adx13Class structural inspection - Class/Metaclass shift3(24 min: 20 max: 5) >>> 20#(2 6 7) average >>> 5  ; ;  test 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.11deftest te stringl(#(1 2 3 4 5) groupedBy: [ :v | v odd ]) asString >>> 'an OrderedDictionary(true->#(1 3 5) false->#(2 4))'40020181651013925[ :self | self + 1 ]10212EReturn the HSV saturation of this color, a value between 0.0 and 1.0.206(Date year: 2018 month: 9 day: 28) weekday >>> #Friday0000 r1201913 00000112221115553333411166777110GTests-unix-64-Calypso-SystemPlugins-Reflectivity-Queries-Tests-Test.xml#((Color white diff: Color black ) >>> 1.01'optimized version for single delimiters/{0@1. 2@3} * {10@20. 30@0} >>> {(0@20). (60@0)}z(SmallDictionary newFromKeys: #(#x #y) andValues: #(3 6)) >>> (SmallDictionary new at: #x put: 3; at: #y put: 6 ;yourself)=Tests-unix-64-Calypso-SystemTools-QueryBrowser-Tests-Test.xml-2310011.0joinUsing: 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)-240salkjsdlkgfeeal1EAnswer an instance of me containing the same elements as aCollection.30Answer 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.(1/3.0s round: 4) >>> 0.3333s4 must be exactly four characters11001 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.0vector0XXXXXXXXde22hReturn element at indexFromEnd from the last position. atLast: 1 ifAbsent: [] returns the last element014#[ 741%((0@0) sideOf: (100@100)) >>> #center1 sign;-888 00999000AAA030BBB000FFF0C0GGG000III00 JJJ55Answer 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).310ppp ^ 0 :B | 1 :B | b 1 ssssss nn s b 0 ssssss n7Tests-unix-64-NewTools-Sindarin-Commands-Tests-Test.xml2NConvert the receiver into a colorref, i.e, a number embedding r,g,b on 24 bits10abc:* 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: #*foo72Answer 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.1isDashPunctuation "Return whether the receiver is one of these characters: $-" "$- isDashPunctuation >>> true" "$_ isDashPunctuation >>> false" ^ self characterSet isDashPunctuation: self04def nnnnnuuuu1121->4(#(a b c d e) identityIndexOf: #x ifAbsent: 7) >>> 7VChroma is zero for black and white, which are the two cases of division by zero below.20hello!0021113Preduce: 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: aBlock5013foo:0 [ 1 ]. [ 2 ]22&' 89Ten ' initialIntegerOrNil >>> nil10420overlappingPairsCollect: 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)) ]. ^retvalabcd44+(#(a b c d e) indexOfAnyOf: #(x y c)) >>> 3B('Pharo is <1p>' expandMacrosWith: 'cool') >>> 'Pharo is ''cool'''041Pharo13Refer to the comment in Collection>>#reject:thenDo: ('foo*' match: 'foozo') >>> true1select: 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 ] ]humanReadableSISizeString "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 ]1330eParse and materialize the STON representation in the character readStream, skipping C-style comments;#+-<> asTestSelector >>> #testPlusMinusLessThanGreaterThan${1@ -2. -4@0} abs >>> {(1@2). (4@0)}0021 [ 1 }. 2 ]%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)DnextToLast "(#(1 2 3 4) nextToLast) >>> 3" ^self at: self size - 14select: 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) ]]]2 000000024 1 + 2 + 3x10037({#x .#y .#z} atLast: 2 put: #e; yourself) >>> #(x e z)twobe5 #(a b z d) sorted >>> #(a b d z)2018 first element0b35]((ByteArray with: 97 with: 0 with: 0 with: 0) asString sameAs: 'Abcd' asWideString) >>> false-3(Character space isControlOther >>> falseOptimized implementation540(Tests-unix-64-Roassal-UML-Tests-Test.xml301012WindexOf: 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: 00J(true ifTrue: [ 'This statement is true!' ]) >>> 'This statement is true!'2flatCollect: 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 species0001aa5('Ab cd ef Ab cd' allRangesOfSubstring: 'zz') >>> #()12100.0d1011001sAnswer whether the receiver sorts equally as aString. The collation order is simple ascii (with case differences).q(String streamContents: [:s | 'Pharo is cool' splitOn: Character space do: [:each | s << each ]])>>>'Pharoiscool'1005119F(#(1 2 3 4) collect: [:each | each + 10] from: 2 to: 3) >>> #(12 13) ,Tests-unix-64-ClassAnnotation-Tests-Test.xml 1one3Tests-unix-64-NewTools-Debugger-Fuel-Tests-Test.xml1b1dL(String streamContents: [ :s | 'Foo''Bar' storeOn: s ]) >>> '''Foo''''Bar'''815100R(OrderedCollection new add: 42; add: 41 before: 42; yourself) asArray >>> #(41 42)Ncollect: 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)) ]. ^ newCollectionAnswer 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.-1053n sss X110.8630removeDuplicates "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. ]. ]30| super | super := 1. ^ super1$ isLetter >>> true0vector0'Answer the last element of the receiver*(#(1 2 3 4 5) reject: #even) >>> #(1 3 5)00100031941116rDF(#(11 22 33) before: 22) >>> 11 and 1#+ keywords >>> #('+')20620vector02910000042hex "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 hex2322fromRgbTriplet: 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 last411g MockPackage-((10 to: 13) copyWithout: 11) >>> #(10 12 13)00(Color r: 0.5 g: 0.5 b: 1) hslSaturation >>> 1.0('abddf' indexOf: $k) >>> 0pharo400100helloa' ' isNotEmpty >>> true1{1@5. 10@ -4} min >>> (1@ -4)01'hello' surroundedBySingleQuotes >>> '''hello'''0vector09('pharo' beginsWith: 'Pha' caseSensitive: false) >>> trueho4102EPut anObject at every index specified by the elements of aCollection.ehllo1'Tests-unix-64-Roassal-Mondrian-Test.xmlaRoabc1871 ((100@200) < (330@400)) >>> true(#(10 20 30) \\ #(1 3 4.0) >>> #(0 2 2.0)hellocombinations "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 ] ] ]06asHexString "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)). ^ s abcdf abcedf5J (OrderedDictionary new at: #top at: #below1 ifAbsent: [ 1 ]) >>> 1 g203*(#(a b c d) after: #b ifAbsent: #z) >>> #cifEmpty: 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 ]4add: newObject before: oldObject "Add the argument, newObject, as an element of the receiver. Put it in the sequence just preceding oldObject. Answer newObject." "(OrderedCollection new add: 42; add: 41 before: 42; yourself) asArray >>> #(41 42)" ^ self insert: newObject before: (self find: oldObject)a.00777777DDD88EEE999999999FFFAAAGGGBBHHHCCCIII021elvis 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 value3isa+((1 to: 8) reject: #isPrime) >>> #(1 4 6 8)240.01.(#(a b c d e) indexOf: #c startingAt: 2) >>> 3abc7(0@0 isInsideRectangle: (0@0 corner: 100@100)) >>> true?(Context tallyInstructions: [3.14159 printString]) size >>> 12023.|a| a := #(1 2 3). a asNewArray == a >>> false 000000000000011213141117666855593-2-4$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)) next$((1 to:9 by:2) includes: 3) >>> true2a0vector0But use sum or sum: instead!23110&(#(1 2 3 4) intersection: #()) >>> #()61200a12zz107 XX 00 n n n 0 | TTT | ttt n . ^ ttt . ^ a,(3 ifNotNil: [:o | o +3 ] ifNil: [42]) >>> 6181cnsn s nssssn s nssssnnc9numberOfCombinationsTaken: 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 // denominator Not found0vector26asInteger "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 asSignedInteger>( #((3 4) (1 2)) flatCollect: [:each | each ] ) >>> #(3 4 1 2)That is false!01920 #(3 1 4 2) sorted >>> #(1 2 3 4)2-3042wReturn the object stored in the second dictionary at secondKey. The second dictionary is accessed via the key firstKey.253/0000CCC08888888888888889888888888888A8888880III411513101fromStringWithComments: string "Parse and materialize the STON representation in string, skipping C-style comments" "(STON fromStringWithComments: 'Point[1,/*comment*/2]') >>> (1@2)" ^ self fromStreamWithComments: string readStream41,Tests-unix-64-Kernel-Extended-Tests-Test.xml-010BReturns a copy of the string doubling all occurence of aCharacter.;;e1elmer is number 3z2100&(#(a b c d) at: 3 ifAbsent: #z) >>> #cNote: to be syntactically valid as an executable comment, there should be exactly one single triple > message send, and it should be the last statement.ifFalse: 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*[(#("a"("b"###("c"###["d"]#["e"]["f"]))))]0vector02(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))$$X$9Ymodulo. Remainder defined in terms of //. Answer a Number with the same sign as aNumber..Tests-unix-64-System-Installers-Tests-Test.xml1.0p X-10(false eqv: true) >>> false21de7 Five is {1}.5 1 sign; ; bare: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)000100053333442260055ABA4 || a3kkkkk XX kkkkk_(#(11 22 33) asOrderedCollection atWrap: 4 put: 0; yourself) >>> #(0 22 33) asOrderedCollection49(#(xa xc xz xb xy) isSortedBy: #last ascending) >>> false(Tests-unix-64-Compression-Tests-Test.xml Pharo is cool* 0 0 :BBB : BBB | | TTT TTT | bbb . 0 0 . ,"a" 1 "b" max: "c" 2 "d" + "e" 3 "f" abs "g"33b,000011211153333411668889888B8877777777DDCCCE$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 ] ]. ^true50!(-1929 truncateTo: 10) >>> -192042PhsvSaturation "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 ]'{1@2. 3@ -1} negated >>> {-1@ -2. -3@1}^Answer the first n elements of the receiver. Raise an error if there are not enough elements.24iNote: The original code used #skip:, but some streams do not support that, and we don't really need it.3(true and: [false]) >>> false######2](Color colorFrom: #(blue darker)) >>> (Color r: 0.0 g: 0.0 b: 0.9198435972629521 alpha: 1.0) 4Return all the combinations of elements of the receiver. Note that combinations does not include the empty element contrary to the mathematical definition of combinations.0:00:00:00.002410string2252"a := a. [ | a a | . := a ]. a := adef1.1. 1#( 20140m({64->$@} asDictionary fillFrom: 'AB' with: [:x|x asciiValue -> x]) >>> {64->$@. 65->$A. 66->$B} asDictionary 000111213141131.5 #( # ## )x3@. 5KasInteger "Answer 1 since receiver is true." "true asInteger >>> 1" ^ 1XnXnX1200.90.0#(1 5 10 -4) min >>> -4203DPairwise product of two sequenceable collections of the same length.3/(nil ifNotNil: [:o | o +3 ] ifNil: [42]) >>> 42 foobazzort1(-23.4567 printShowingDecimalPlaces: 0) >>> '-23'F('Hello' detect: #isLowercase ifFound: #uppercase ifNone: [$X]) >>> $E2024IMPLEMENTATION 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 correct0011110004444222230055666623cy(#(1 5 21 28 34) groupedBy: [:x| x // 10] having: [:v| v size = 2]) >>> {0->#(1 5). 2->#(21 28)} asOrderedDictionaryabcde1004(100@200) guarded >>> (100@200)2330-1/Tests-unix-64-Spec2-Code-Backend-Tests-Test.xml 1, 2, 3 and 41hAnswer the upper left corner of the rectangle uniquely defined by the receiver and the argument, aPoint.1J#(1 2 2 3 1 1 1) asBag cumulativeCounts >>> {57.1->1 . 85.7->2 . 100.0->3}$Optimized version based on primitiveEvaluate aBlock with each of the receiver's elements as the argument. Answer the first element for which aBlock evaluates to true.30Tests-unix-64-EnlumineurFormatter-Tests-Test.xml9(#(1 2 3) reduceLeft: [ :a :b | a - b ])>>> ((1 - 2) - 3)20.9198435972629521111001022304222true & false >>> false200.9242(true xor: [true]) >>> false32'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.0mobazc1.000010003343500T(true ifTrue: [ 'That is true!' ] ifFalse: [ 'That is false!' ]) >>> 'That is true!'$' tokenish >>> false16000111110004444433350000 X X2020 2110022223333370!#(a b c d e f g h i) sixth >>> #fprintStringHex "Returns the hex digit part of the integer when printed in hexadecimal format." "30 printStringHex >>> '1E'" "30 hex >>> '16r1E'" ^ self printStringBase: 163420!Tests-unix-64-Slot-Tests-Test.xml \Answer the second element of the receiver. Raise an error if there are not enough elements.111. "a" "b" "c" 2 "d"1129oops (#(a b c d e) indexOf: #x) >>> 0[ | zn((1 to: 12) groupByRuns: [ :each | (each \\ 3) = 0]) >>> #(#(1 2) #(3) #(4 5) #(6) #(7 8) #(9) #(10 11) #(12))>> false10071xy"(16rFF digitAt: 1 base: 16) >>> 154pairsCollect: 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) ]((2@2) + 200) >>> (202@202)a!foo: a ^ [ :a | a ] value: 10 + a[ 1 + 20kIf the receiver is not nil, pass it as argument to the ifNotNilBlock block. else execute the nilBlock block nnnnnnnuu'Tests-unix-64-Monticello-Tests-Test.xml1, 2, 3blue{ ^ 1 }. 2. ^ 30Find 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.10100.1, !n s a100coolV{'one' -> 1. 'two' ->2} asDictionary >>> (Dictionary with: 'one' -> 1 with: 'two' ->2)31U({10. 20} asOrderedCollection add: 30; yourself) >>> {10. 20. 30} asOrderedCollectionc0:B X01024Message expected0:00:00:01.001-41B(String streamContents: [:s| #() printElementsOn: s]) >>> '()'0c2Vsize "#(a b c d e) size >>> 5" "#(x y z) size >>> 3" ^ self subclassResponsibility21abcd #(a b c d e f g h ) first >>> #ax2System141aa12128^({ 1. 2. 3 } as: OrderedCollection) >>> (OrderedCollection new add: 1; add:2; add:3; yourself)qPrint elements on a stream separated with a delimiter String like: 'a, b, c' Uses #asString instead of #print:.! pppp AAA pppp AAA ^ aaa s aaa . '655555444444333322222111111000000000000X X X X16z2yAnswer the element after target. Raise an error if target is not in the receiver, or if there are no elements after it.2011NReturn the class of the couple class/metaclass. Useful to avoid explicit test.412#() size >>> 0121fghi[ :a | $h. $w.1 milliSecond printString >>> '0:00:00:00.001'001123456789AA0p(Array streamContents: ([:stream | #(1 2 3) do: [:each | stream nextPut: (each + 10)] without: 2])) >>> #(11 13)1-9cYAnswer true if the receiver contains the substring str exactly at index, false otherwise.d1 'h' 465505 nothing to doReturns a string representation of the receiver as hex, prefixed with 16r. DO NOT CHANGE THIS! The Cog VMMaker depends on this.60111003215=Return true if the receiver is sorted by the given criterion.3.1479042$) isClosePunctuation >>> true20cd30-42T#(2 3 4 'fred') asOrderedCollection reversed >>> #('fred' 4 3 2) asOrderedCollection0dtrue | true >>> true!Character cr isSeparator >>> true3312hello ( 1 and: 4)0a110-41.1.1 project-pharo2.30294908349384920032-(#(10 20 30) includesAny: #(50 40)) >>> falseathe0vector0425Print inside string quotes, doubling inbedded quotes.&(#(a b c d) at: 5 ifAbsent: #z) >>> #z3a-11asIdentitySet "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; yourselffoo < bar: 1 > oReturns a string representation of the receiver in base 16 in a way that executing it will return 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 '0 foo: bar: [ :a | b ]2722541Use a proper symbol literal9(#(a b c d e) indexOfAnyOf: #(x y c) startingAt: 2) >>> 30 100000000ZEvaluate aBlock with my elements taken two at a time, and return an Array with the resultsSame aspect ratio-16rA200002222222666555#( #( 0 1r2 3 ) ) XXXXXXXXXXX1154(OrderedCollection new growAtFirst; capacity) >>> 205>{ 1. 2. 3 } asSet >>> (Set new add: 1; add:2; add:3; yourself)20020hello4r: 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.0hello216r1E#( ( 0 1 2 ) )20:B|||b015302100000000000000000001636bind: 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: self1e1e1xa3>> 10.12" "(10.199999999 round: 2) >>>10.2" ^ self subclassResponsibilityC('hello' collect: #asciiValue as: Array) >>> #(104 101 108 108 111)Unreachable statement #hello#world1!('pharo' beginsWith: '') >>> true151111111110000000002222222222222}Collect and return the result of evaluating twoArgBlock with corresponding elements from this collection and otherCollection.20,'x isSymbol: 33' findSelector >>> #isSymbol:@(1000 * 1000 * 1000) humanReadableByteSizeString >>> '953.67 MB'155+Tests-unix-64-Debugger-Model-Tests-Test.xml53198Tests-unix-64-Microdown-RichTextPresenter-Tests-Test.xmlc3112011224 [ 1 ). 2 ]1b003222412d7201>> 6(0@5) guarded >>> (1@5)201023([ 12 ] cull: 13)>>> 12 1109(#(10 20 30 40 50) findLast: [ :each | each > 60 ]) >>> 00.980005{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 2111.010-isClosePunctuation "Return whether the receiver is one of these characters: )]}" "$a isClosePunctuation >>> false" "$( isClosePunctuation >>> false" "$) isClosePunctuation >>> true" "$] isClosePunctuation >>> true" "$} isClosePunctuation >>> true" ^ self characterSet isClosePunctuation: selfLOLsorted: 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: aSortBlockOrNilde3.1479ziggie10vector00vector0/((3 to: 8 by: 2) allSatisfy: #isPrime) >>> true1b17#(1 2 2 3 1 1 1) asBag asSet >>> #(1 2 2 3 1 1 1) asSet13,123eflatCollect: 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) ] ]1214keywords "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 2ppp Xu <1s> vs <1p>yaab2550 foo < + 1> a3%#(0 1 2) * #(10 20 30) >>> #(0 20 60)2xzAEvaluating conjunction -- answer aBoolean since receiver is true.4abcdefgh0n0Xn0?({1. 2. 3. 4. 5} shuffleBy: (Random seed: 42)) >>> #(1 2 5 4 3)2#Tests-unix-64-Kernel-Tests-Test.xml30Sort this array using aSortBlock. The block should take two arguments and return true if the first element should preceed the second one.100xy20a7lastIndexOf: 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: exceptionBlock,(#(10 20 30) includesAny: #(30 40)) >>> true1 #new isUnary >>> true41Character expectedEMight be compiled inline for speed, see RBMessageNode>>#isInlineIfNil2c2>> '0:00:01:02'6 """ ppp """ n """. """ ^ n """ 20For backwards compatibility mainly. Return the key that should correspond to some character. Handle normal ascii characters and special control keys only (enter, tab space...)312 factorial >>> 29groupedBy: 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) ]]. ^ groups3// 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: #//1cool330101-42/ "a" foo: "b" x "c" bar: "d" y "e" ^ "f" x "g" '"a" [ "b" | "c" x "d" y "e" | "f" ] "g"282XX X # X # X XAnswer a number that represents the number of complete seconds in the receiver's time part, after the number of complete minutes has been removed.400.05subtractDate: 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) days 0000111111102 Size of replacement doesnt match0xc6zwithSeparatorsCompacted "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 ] ] ] ](Array streamContents: [:stream | #(10 20 30) paddedWith: #(40 50) do: [:a :b | stream nextPut: {a. b} ]]) >>> #(#(10 40) #(20 50) #(30 nil)) EWriting '<' character: To write '<', prepend it with a percent sign. foo 1100initialIntegerOrNil "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)) asNumber0e1202C([0 isEmptyOrNil] on: MessageNotUnderstood do: ['oops']) >>> 'oops'2h(String streamContents: [:s| 'abcd' asStringOn: s delimiter: ', ' last: ' and ']) >>> 'a, b, c and d'&Character home isControlOther >>> truefoo: super ^ super + 1 (1 sign);bar101.00"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: block6010from: 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)]511615AaBbCcR(#(1 + 3 - 5) reduceLeft: [ :a :op :b | a perform: op with: b ]) >>> ((1 + 3) - 5)101ePerform 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.#Float pi radiansToDegrees >>> 180.00102('Five is {1}.' format: { 1 + 4}) >>> 'Five is 5.'101003302| a a | a := 10. ^ axor: 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 not/Return a copy with the first letter capitalized2c4XX XX # X # X X-10Name already defined3.1479/00111111111110004444444444422223005566666666666SAnswer a new instance where all occurrences of CRLF and LF are substituted with LF. salkjsdlkgfee631-23.4567|::a-0.981023121320KAnswer with a collection of cumulative percents covered by elements so far.This statement is true!@[ 16-2.5711 (true ifFalse: [ true ]) >>> nil181(10 to: 1) isEmpty >>> true'hWJust like do: except that the iteration index supplies the second argument to the block5e:3$A printStringHex >>> '41' 85.7SHIFT_L20m(Array streamContents: [:stream | #(1 2 3) allButLastDo: [:each | stream nextPut: (each + 10)]]) >>> #(11 12)-3202r101E({10. 20} collect: [:x|x+1] into: {'a'. 'b'. 'c'}) >>> {11. 21. 'c'.}{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;22(Tests-unix-64-BeautifulComments-Test.xmlpharoxz2000##"""####"""###"""#####"""03000002222222326555c00 ==> 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 ]%(AsciiCharset toUppercase: $!) >>> $!| a | [ a := 10 ]. ^ a-255MockPackage-Testsa0(nil ifNil: [42] ifNotNil: [:o | o +3 ] ) >>> 421sum: 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 ]do: 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)]610Ufoo ^ [ :a1 :a2 :a3 :a4 :a5 :a6 :a7 :a8 :a9 :a10 :a11 :a12 :a13 :a14 :a15 :a16 | a1 ]Z(String streamContents: [ :s | 10 printOn: s base: 10 length: 4 padded: true] ) >>> '0010'8-62([:x | x + 12] cull: 3)>>> 150-1#(a b c d e) size >>> 5*#( aa:bb: cc #'aa:bb:cc' #cc #'++' #'++' )ab4224(#(1 3) anySatisfy: [ :each | each even ]) >>> false-343 XX n XX# n X3210 [:a| ||a]1g6printElementsOn: 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: $)321"(10 printStringBase: 2) >>> '1010'XXaXX"2 ** (1/12) >>> 1.05946309435929531&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]. ^ valueArray #( 0 1r2 4 )400(Array streamContents: [:stream | #(1 2 3 4) reject: [:each | each = 3 ] thenDo: [:each | stream nextPut: each + 10]]) >>> #(11 12 14)28D'foo' asOrderedCollection = #($f $o $o) asOrderedCollection >>> true0.01yAnswer the value of alternativeBlock. Execution does not actually reach here because the expression is compiled in-line.3(#(1 2 3 4) select: [:each | each > 2 ]) >>> #(3 4)2keysAndValuesDo: 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)]0"('action' alike: 'caption') >>> 5.03.1479TheRollingStones(Answer the integer nearest the receiver.de20000 [ | b | ]milliSecond "1 milliSecond printString >>> '0:00:00:00.001'" "(1 second + 1 milliSecond) printString >>> '0:00:00:01.001'" ^ self milliSeconds0(#(a b a d e) lastIndexOf: #c ifAbsent: 7) >>> 70(((104 to: 120) detect: #isPrime) >>> 1079011pppp A pp A pp A X | t t t | t s t s tg7bsd20 one:1;two:2;'h'2>Tests-unix-64-Calypso-SystemPlugins-FFI-Queries-Tests-Test.xml1%'isSymbol' findSelector >>> #isSymbol0/(#(1 2 3) reduceLeft: [ :a :b | a - b ]) >>> -4164139en(Array streamContents: [:stream | #(1 2 3) with: #(4 5 6) do: [:a :b | stream nextPut: (a + b)]]) >>> #(5 7 9)4303316rDF(10 to: 5) asArray >>> #()!('*baz*' match: 'mozo') >>> false1710cE(RubTextEditor new surroundString: 'a' withCharacter: $') >>> '''a'''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 floor2 slowFactorial >>> 2155aBcd1004'1234' asFourCode >>> 825373492#('a') asCommaStringAnd >>> 'a'5Optimized version of Collection>>#reject:thenCollect:b3.15-3 odd >>> truewisControlOther "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: self(('salkjsdlkgfee' findString: 'al') >>> 252+Character backspace isControlOther >>> true30%(STON toString: 1@2) >>> 'Point[1,2]'4K(STON fromStreamWithComments: 'Point[1,/*comment*/2]' readStream) >>> (1@2)40Returns a string representation of the receiver as hex, prefixed with 16r. DO NOT CHANGE THIS! The Cog VMMaker depends on this.DReturn whether the receiver is one of these characters: $ and euro1Whitespace characters:replaceFrom: 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: 110{Answer whether the receiver sorts before or equal to aString. The collation order is simple ascii (with case differences).Q('fear is the little death that the.' charactersExactlyMatching: 'fear is') >>> 73101XAnswer the result of evaluating aBlock with all of the overlapping pairs of my elements.3\Return element at indexFromEnd from the last position. atLast: 1, returns the last element-4ajIf 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.1 X X X2101VAnswer 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)phab 1 sign ; bar2.0Put anObject in all indexes between startIndex and endIndex. Very fast. Faster than to:do: for more than 26 positions. Answer anObjectlast: n "Answer the last n elements of the receiver. Raise an error if there are not enough elements." "(#(a b c d e) last: 2) >>> #(d e)" "(#(a b c d e) last: 3) >>> #(c d e)" | size | size := self size. ^ self copyFrom: size - n + 1 to: size30 "z" foo "a" 1 "b". "c" ^ 2 "d" 00011121344151140listClass "Return the class of STON lists, Array, a system wide constant" "(STON fromString: '[1 , 2 , 3]') class >>> STON listClass" ^ Arrayd322 ** -1 >>> (1/2)(1/3 round: 2) >>> (33/100) .#(aa:bb:"A"cc"B"#aa:bb:cc"C"#cc"D"++"E"#++"F")105 2r-00101000#but use sum or inject:into: insteadadef33.1.In {1} you can escape { by prefixing it with \15xahello00.116rFFs:1 e:3 s:6 e:8 s:11 e:11 Return a String with the JSON serialization of object. Note that the object graph can only contain lists (Array) and maps (Dictionary)0#u u. 0 :B | X b b XX b 0. X X1u uu 22Answer whether the receiver contains any elements.1010 hexString >>> '16rA' foo*baz*zorthellogPrint 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.1d>> true" "true & false >>> false" "false & true >>> false" "false & false >>> false" self subclassResponsibilitywsecond "1 second printString >>> '0:00:00:01'" "(1 minute + 1 second) printString >>> '0:00:01:01'" ^ self secondswAnswer a copy of the receiver containing all but the last n elements. Raise an error if there are not enough elements.,(#(1 2 3) noneSatisfy: [:x|x odd]) >>> false!(10 beBetween: 20 and: 12) >>> 12pharo3sifoo-2.567 00211zabc1 ; 100116rAcollect: 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 ]]]410#hello. #worldxbf410121l({10. 20} asOrderedCollection add: 30 withOccurrences: 2; yourself) >>> {10. 20. 30. 30} asOrderedCollection0$(#(10 20 30) includes: 21) >>> falseaa^ u#() isEmptyOrNil >>> true 1 foo: . ^ 2233 first element3111120044444666666A888892G({#a. #b. #c. #d. #e} from: 3 to: 4 put: #x; yourself) >>> #(a b x x e)5y0 a: foo=Move the element at oneIndex to anotherIndex, and vice-versa.103:(#(a b c d e f) difference: #(a b z k))>>> #(#c #d #e #f)331923230(Tests-unix-64-System-Time-Tests-Test.xml101 2 even >>> truefredzk1366min "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]33Answer the element at my position index. If I do not contain an element at index, answer the result of evaluating the argument, exceptionBlock.=(#(1 3 5 7 11 15 23) findBinary: [ :arg | 11 - arg ]) >>> 11 G(#(1 2 3 4 5) reduce: [ :a :b :c | a + b + c ]) >>> (1 + 2 + 3 + 4 + 5)indexOfSubCollection: 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 valueincludesSubstring: 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) > 0dEvaluate 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.0vector0110(('ab ab ac de' howManyMatch: 'ab') >>> 2$' isAlphaNumeric >>> falseGraphical User Interface:('pharo' endsWith: 'phuro' caseSensitive: false) >>> false413(Color red asColorref) >>> 255200-6elmer120[:(Array streamContents: [:s | #(1 'fred' 2 'charlie' 3 'elmer') pairsDo: [:a :b | s nextPut: b; nextPut: a]]) >>> #('fred' 1 'charlie' 2 'elmer' 3)24Otherwise use logarithms128 0:00:01:02Include all the elements of aCollection as the receiver's elements. Answer aCollection. Actually, any object responding to #do: can be used as argument.aC('aeiou' findFirstInByteString: 'hello world' startingAt: 3) >>> 5.7361.4 rounded >>> 10Tests-unix-64-System-Dependencies-Tests-Test.xmlWReturn true if all my elements are close to the elements of same index of the parameter11b42compare: 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: falseAnswer the index of the first occurrence of anElement within the receiver. If the receiver does not contain anElement, answer 0.bcopyEmpty "Return a new empty collection based on the species" "{1@2} copyEmpty >>> #()" "'hello' copyEmpty >>> ''" "(1 to: 10) copyEmpty >>> #()" ^ self species new3abc9843(42 digitAt: 2 base: 10) >>> 40121-Tests-unix-64-System-Benchmark-Tests-Test.xml2002indexOfAnyOf: 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: exceptionBlock#( #( 0 1 r2 3 ) "com"1"ment"-2(But use collect: or collect:as: instead!20010'|' or variable expected%(false and: [Error signal]) >>> false1242r00101000 lowBit >>> 4a. :foo0({3. 9. 1} sort: [:a :b | a <= b ]) >>> #(1 3 9)ABAc2storeStringBase: 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]30aeioukAnswer my element at index anInteger. at: is used by a knowledgeable client to access an existing element.-5action[Answer the ninth element of the receiver. Raise an error if there are not enough elements. 4MPrint elements on a stream separated with a delimiter String like: 'a, b, c'1a := @42123130yXXsuuu1002abcuNote that there is no way to get the first element that works for all kinds of Collections. Must test every one.2!#(a b c d e f g h i) ninth >>> #i2 00000000200000a1000.04B'234znak ::x43 '') _ : 2' asValidSelector >>> #'v234znak:x43:v2'aa230dd!(10 storeStringBase: 10) >>> '10'013420.13691995878400012ifFalse: 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" ^nil11nAnswer whether the receiver sorts after aString. The collation order is simple ascii (with case differences).10^Return whether the receiver is ... one of these https://www.compart.com/en/unicode/category/Me#[ 1 2830,foo | a | a := 1. ^ [ :a | a ] value: 10 + a-42010vector2foo < 40vector0bthis string will be trimmed10023331`asDate "(Date year: 2018 month: 9 day: 28) asDate printString >>> '28 September 2018'" ^ self1 foo;2*(-0.5 arcTan: -0.5) >>> -2.356194490192345| aBoolean "Evaluating disjunction (OR) -- answer with the argument, aBoolean, since the receiver is false." "false | true >>> true" "false | false >>> false" ^aBoolean1 { 1 ). 2 }11<(10 storeStringBase: 16 length: 6 padded: true) >>> '16r00A'0JTake the minimum between self and maxValue, then the maximum with minValue4V{'two' ->2. 'one' -> 1} asDictionary >>> (Dictionary with: 'one' -> 1 with: 'two' ->2)004460oops3Y({#a. #b. #z. #d. #i. #l} mergeSortFrom: 3 to: 5 by: [ :a :b | a<=b ]) >>> #(a b d i z l)107C(#(10 15 22 789) collect: [:x | x//10] as: Set) >>> #(1 2 78) asSet19reverseWith: 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)]00106size "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]. ^ tallyjAnswer an array of non-empty substrings from the receiver separated by one or more whitespace characters.3.1417a'btruncateTo: 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) * aNumber5Search 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.12foo23bazb5BAD boy!71'A' asByteArray >>> #[65](Array streamContents: [:stream | #(10 20 30) paddedWith: #(40 50 60) do: [:first :second | stream nextPut: (first + second)]]) >>> #(50 70 90) 4(STON fromStream: 'Point[1,2]' readStream) >>> (1@2)d7Answer a Point scaled by factor (an instance of Point).018n. n uuuuuu p(Dictionary newFromKeys: #(#x #y) andValues: #(3 6)) >>> (Dictionary new at: #x put: 3; at: #y put: 6 ;yourself)[ :a | ax isSymbol: 33-11M|s|s:=0. #(4 2 1) withIndexDo: [:e :i| s:=s + (e * (10 ** (i-1)))]. s >>> 124431213333super := super'hello''1~(OrderedDictionary newFromKeys: #(#x #y) andValues: #(3 6)) >>> (OrderedDictionary new at: #x put: 3; at: #y put: 6 ;yourself)D(RPackage named: 'MockPackage-Tests-Package') isTestPackage >>> true7X Xfirst5afoodezortorfoo3zort12112121 511111444442Print 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/96101[ :a | | a b | ]2Foo'Barcharlie710t({10. 20} asOrderedCollection addAll: {20. 30. 30. 40.}; yourself) >>> {10. 20. 20. 30. 30. 40.} asOrderedCollectionJResults are not defined for base smaller than 2 and non-integer arguments.OCreate 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.21.(#(1 2 3 4) intersection: #(3 4 5)) >>> #(3 4)30e6('pharo' beginsWith: '' caseSensitive: false) >>> true!(3.1479 roundDownTo: 0.1) >>> 3.1c -234.567002c10 pppp Xppp 304216'a' asByteArray >>> #[97]gloopsb34'' expandMacros >>> OSPlatform current lineEnding15-42((#(a b c d e) identityIndexOf: #x) >>> 0instanceSide "Return the class of the couple class/metaclass. Useful to avoid explicit test." "Point instanceSide >>> Point" "Point class instanceSide >>> Point" ^ self subclassResponsibility-19810sum "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 - sample130'(1 to: 10) asOpenInterval >>> (2 to: 9)11000 'h' false | false >>> false64(#(a b z k) difference: #(a b c d e f)) >>> #(#z #k)104 Hello--world-(true xor: [false]) >>> trueendsWithAColon "Answer whether the final character of the receiver is a colon" "'displayStringOn:' endsWithAColon >>> true" "'displayStringOn:foo' endsWithAColon >>> false" ^ self notEmpty and: [ self last == $: ]0.03beBetween: 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 ]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.2018-30wimpy('action' alike: 'name') >>> 0.QmonthIndex "(Date year: 2018 month: 9 day: 28) monthIndex >>> 9" ^ super month41334ifFalse: 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 value32(String streamContents: [ :str| ((FileSystem workingDirectory / 'book-result' / 'W01-Welcome') relativeToReference: FileSystem workingDirectory) printPathOn: str delimiter: $|]) >>> 'book-result|W01-Welcome';(Date year: 2018 month: 9 day: 28) mmddyyyy >>> '9/28/2018'1eCAnswer a number that is the minimum of the x and y of the receiver.[1)2]2r-00101000 lowBit >>> 41Eformat: 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 ] ] ] ]1052512ac10bar:That is false!2546333877729111A0000BBfoo < bar: 1 + 1 > 402%('pharo' endsWith: 'phuro') >>> false0vector07 That is true!P((Date year: 2018 month: 9 day: 28) addDays: 3) printString >>> '1 October 2018'oops20 That is true!0.5004887585532747;100000000000000000400a10.260+001"""1"""#"""#"""#"""#"""#"""#"""#"""#"""0last "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)10foo < bar: 1 1 > 'a' asInteger >>> nil . :asanil isEmptyOrNil >>> true112indexOf: 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: 0!(2 ifNotNil: [ :o | o + 3]) >>> 5131.00 GBde05'1' asInteger >>> 1:(100000000 printShowingDecimalPlaces: 1) >>> '100000000.0'-Tests-unix-64-ThreadedFFI-UFFI-Tests-Test.xml, 4detectIndex: 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 ]ZThe following example creates an association whose key is number 1 and value string 'one'.XX n3>(#(e b a d e) lastIndexOf: #a startingAt: 4 ifAbsent: 7) >>> 30.0Answer 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.110(1 hour + 1 minute) printString >>> '0:01:01:00'30000222222266866555 '' expandMacros >>> String cr28 December 2018#() asCommaString >>> ''match: 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: 100#n07ppp 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 ^ aadetect: 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: exceptionBlockdef1pppp AAAAAA ^ aaaaaa s n 0 even >>> true1210100634-3.140'284313Unexpected block parameter#hello10000211=Return the class of STON lists, Array, a system wide constant3934(Array streamContents: ([:stream | #(1 2 3) do: [:each | stream nextPut: (each + 10)] separatedBy: [ stream nextPut: 0 ]])) >>> #(11 0 12 0 13)23 #(10 20) emptyCheck >>> #(10 20)7Tests-unix-64-DrTests-TestCoverage-Tests-Mocks-Test.xml5({10. 20} asSet add: 20; yourself) >>> {10. 20} asSet10;Tests-unix-64-SystemCommands-MessageCommands-Tests-Test.xml=If the receiver is not nil, pass it as argument to the block.2002g(STON toJsonString: { { #foo->1 } asDictionary. { #bar->2 } asDictionary }) >>> '[{"foo":1},{"bar":2}]'#() isNotEmpty >>> falseR(#(10 20 30) adaptToCollection: #(0 1 2) andSend: #@) >>> {(0@10). (1@20). (2@30)}whoG(#( (2 -3) (4 -5) #(-6)) flatCollect: [ :e | e abs ]) >>> #(2 3 4 5 6)Unmatched ' in string literal.'hellov420hello$A isAlphaNumeric >>> true5&Character newPage isSeparator >>> trueaeiou(Array streamContents: [:stream | #(10 20 30) reverseWithIndexDo: [:each :index | stream nextPut: each + index]]) >>> #(33 22 11)2 ']' expected includes:5.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 ] ] 'abc' <= 'def' >>> true1.0qcollect: 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$) isControlOther >>> false30041.015xb322222220000111111<1?success:error>indexOf: 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: start3255instanceSide "Return the class of the couple class/metaclass. Useful to avoid explicit test." "Point instanceSide >>> Point" "Point class instanceSide >>> Point" ^ selfXXXXXXXXXsAnswer the index of the last occurrence of anElement within the receiver. If the receiver does not contain anElement, answer 0.vReturn 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.zz Pharo is cool65'0abc' startsWithDigit >>> trueb0'' asLowercase >>> ''-32 a, b and ce10 storeStringHex >>> '16rA'NB: this implementation only works for Array, since WriteStreams only work for Arrays and Strings. (!) Overridden in OrderedCollection and SortedCollection.16100#((2@2) - (100@200)) >>> (-98@ -198)10(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))7825410[1][2]20 #[ 1 256 2 ]a0.0710000010000200003055555555555556676869666CBBBDAAAEReturns 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.| self | self := 1. ^ self2{Round the decimal part of the receiver to be limited to the number of wished decimal. Only leave a fixed amount of decimal."#(a b c d e f g h ) eighth >>> #h#(1 2 3) anyOne >>> 10vector0S( #(3 4 1 2) flatCollect: [:each | { each. each*10 } ] ) >>> #(3 30 4 40 1 10 2 20)3#name: asAccessor >>> #name47420vector0212}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.(Color hex: 0.2) >>> '33' -513645724jnewFromKeys: 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 ]. ^ dict11F(#(1.9283 2.3029) closeTo: #(1.9284 2.3028) precision: 0.001) >>> true0aNumber cannot be negative('pharo' endsWith: '') >>> truecharlie abd 36a#(1 -3 5 1) argmax >>> 3*2222111111111335563311111111117799A7700BBC#(1 2 4) sum >>> 74103print: 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: positiveNumberString)#message asTestSelector >>> #testMessage930:= 2215101-('foo*baz*zort' match: 'foobazort') >>> false423Point classSide >>> Point class0n0X'foo: a ^ [ | a | a := 10. a ] value + a0vector010 000102203001the37({#a. #b. #c. #d. #e} swap: 5 with: 1) >>> #(e b c d a)46CAnswer the name of the day of the week on which the receiver falls.2removeAllFoundIn: 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: []]. ^ aCollection001144 Snick asFile Files Snick's Snick110x\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 ]''foo' asCommaStringAnd >>> 'f, o and o'9130 00111111000444444222230055666666Point instanceSide >>> Pointhello foo||bar||2uAnswer a copy of the receiver containing all but the first element. Raise an error if there are not enough elements.10:00:00:01.00212 true := true16b2051/Answer how many elements the receiver contains. ppp < < n< CAnswer a number that is the maximum of the x and y of the receiver.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:.Evaluate aBlock with the elements of the receiver. If aBlock returns true for any element return true. Otherwise return false.-Tests-unix-64-VariablesLibrary-Tests-Test.xmlXX#X#X2100n#n#n017Answer a Point that is the sum of the receiver and arg.530*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: selfdDetails: 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.#(^1)permutationsDo: 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: aBlockereject: 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 ]]3d1212('abddf bcdef' indexOf: $a startingAt: 100 ) >>> 01612004350vector0expandMacros "'' expandMacros >>> String tab" "'' expandMacros >>> String cr" "'' expandMacros >>> OSPlatform current lineEnding" ^self expandMacrosWithArguments: #()polynomialEval: 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 ]. ^ sum1c2two#$} isConnectorPunctuation >>> false1!'' expandMacros >>> String tab?Optimized version of SequenceableCollection>>#withIndexSelect: [:a :b]%(AsciiCharset toLowercase: $!) >>> $!217'Tests-unix-64-UnifiedFFI-Tests-Test.xmlrgbTriplet "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)2004,((1 to: 10) select: #isPrime) >>> #(2 3 5 7)(('hello' intersection: 'world') >>> 'ol'=(KeyboardKey named: 'SHIFT_L') >>> (KeyboardKey value: 65505)charlie:oopsindexOfAnyOf: 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]b1 sign; 1300460077900AEEEClet us make seperate stringsstring2 + 1. - a. - 1. - 1 "A"_select elements from the receiver that the block evaluates true with the element and its index.10x000002244454448889888B8877777777DDCCCE4433333333F5 565555554444 #foo : 100733join: 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: aSequenceableCollectionProtoObject superclass >>> nil13200P({10. 20} asSet addAll: {20. 30. 30. 40.}; yourself) >>> {10. 20. 30. 40.} asSet411k0vector0"('abcd' contractTo: 10) >>> 'abcd'150-1D(RunArray newFrom: {1. $a. $a. 3}) >>> ({1. $a. $a. 3} as: RunArray)10((#(10 20 30) includesAny: #()) >>> falsesize "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]. ^ tally0653Grepeat: 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 ] ] Five is 5.true not >>> false1000000223-140100101d}Answer the value of trueAlternativeBlock. Execution does not actually reach here because the expression is compiled in-line.fred100 -9 \\ 4 >>> 31003a(('hello' allSatisfy: #isLetter) >>> true10-0.9//0.4 >>> -3Hello!6GEmit overlapping pairs of my elements into aBlock, along with an index.de#('pharo' endsWith: 'aRo') >>> falseoflatCollectAsSet: 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: Set-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)]1312511def:21)Tests-unix-64-Network-Mail-Tests-Test.xml+ 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: #+119<({ 2@6 . -4@3 . 10@ -3 } detectMin: [ :p | p x ]) >>> (-4@3)+(#(2 4 6) noneSatisfy: [:x|x odd]) >>> true30is error0.03-21153uNote that there is no way to get the first element that works for all kinds of Collections. Must test every one.1-3oopsXXXXXXXXXXXXXX[ ] 48reduce: 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: aBlock565!('abc' repeat: 3) >>> 'abcabcabc'125R(OrderedCollection new add: 41; add: 42 after: 41; yourself) asArray >>> #(41 42)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 ]. ^ acc/Answer a set with the elements of the receiver.3.1415i0>('Pharo is really super cool' contractTo: 10) >>> 'Phar...ool'xor: alternativeBlock "Answer the value of the alternativeBlock since the receiver is false." "(false xor: [true]) >>> true" "(false xor: [false]) >>> false" ^ alternativeBlock value2115(false ifTrue: [ 'This statement is true!' ]) >>> nil4pppp A XXXXXXX. ^ a^Append the elements of the argument, aSequenceableCollection, separating them by the receiver.::a15h403Store 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.(1929 truncateTo: 10) >>> 19202111100 0203996(#('We' 'love' 'pharo!') asOrderedCollection withIndexSelect: [:value :index | value size - 1 <= index]) >>> (OrderedCollection with: 'We')3203foo < bar ; baz. > 20{ 1 + 2'('pharo' beginsWith: 'phuro') >>> falseUor: 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 subclassResponsibilitydisplayStringOn:foo5 slowFactorial >>> 120'hello'a : foo1ebSReturns whether the receiver is a separator i.e., a space, tab, lf, cr, and newPage10vector0-(#(10 20) ifNotEmpty: [:x| x average]) >>> 15115((0@0 corner: 100@100) containsPoint: 50@50) >>> true55-55#>> isUnary >>> false'%' expandMacros >>> ''1.02orange23(1 to: 10 by: 2) last >>> 92PThe receiver is assumed to represent radians. Answer the conversion to degrees.:2B(Character space join: #('Pharo' 'is' 'cool')) >>> 'Pharo is cool'DAnswer with a collection of elements with counts, sorted by element.141234<<<<>> false" "$A isCasedLetter >>> false" ^ self characterSet isCasedLetter: selfThat is false!"'foo' asNewArray >>> 'foo' asArray this string will be trimmed 15100330112word before index91includesAll: 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]]. ^ true4000011EAnswer the value of the alternativeBlock since the receiver is false.102.20.5ais5"(#(1 -2 4) sumNumbers: #abs) >>> 7302a5'Return whether the receiver is a digit.%OrderedCollection new capacity >>> 10((#(1 2) detect: #even ifNone: [0]) >>> 2helnsdetectIndex: 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 value1000000000000002002'' isNotEmpty >>> falsedo232454B({ 1. 2. 3 } as: Set) >>> (Set new add: 1; add:2; add:3; yourself)(((100@200) max: (330@400)) >>> (330@400)93200*baz-2 reciprocal >>> (-1/2)--junit-xml-output1(#(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')@ foo: I({#a. #b. #c. #d. #e} replaceFrom: 3 to: 4 with: #(x y)) >>> #(a b x y e)2018AReturn the hue of this color, an angle in the range [0.0..360.0].20182 hello 234znak ::x43 ') _ : 2108210hop11d 0:00:00:0110rindexOfAnyOf: 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]312SprintStringHex "$A printStringHex >>> '41'" ^ self asInteger printStringBase: 16 10.1999999991005(#(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)'41Tests-unix-64-DrTests-TestCoverage-Tests-Test.xml330 9/28/2018includes: 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: anObject61removeAll: 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]. ^ aCollectionzInclude newObject as one of the receiver's elements. Answer newObject. ArrayedCollections cannot respond to this message.fillFrom: 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) ]'(#(1 2 3 4 5) beginsWith: #()) >>> truefghi"[ :a :a :b | | a a b | a + a + b ]foo1"(true or: [Error signal]) >>> true3yAnswer 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.4#( #( ) #'.' #':' #';' #'[' #']' #'{' #'}' #'^' #a )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.#between:and: isUnary >>> false4blast "Answer the last element of the receiver" "#(a b c d e) last >>> #e" ^ self at: self size28e124(10 to: 25 by: 5) asCommaString >>> '10, 15, 20, 25' *foo*zort 100000000[:a|||a]32002230 'abc' < 'abc' >>> false3foo: a x: a y: b [ :a :a :b | | a a b | a + a + b ]10001023(true and: [ true ]) >>> true47;(#(1 2) detect: #even ifFound: #negated ifNone: [0]) >>> -2tofoo "z" "a" 1. "b" "c" ^ 2 "d"70)Optimized version of Collection>>#select:* "a" | "b" x "c" | "d" x "e" := "f" 5 "g" 1021#( 1 two #( 3 ) )asByteArray "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]. ^ arraya | 'for the style (aa max:bb) with no space-4splitOn: 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: aBlock3Refer to the comment in Collection>>#select:thenDo:2345.88true & false >>> false0.0(2 raisedTo: 8) >>> 256xha789104Tests-unix-64-Zinc-Character-Encoding-Tests-Test.xml72Return whether the receiver is one of these characters: backspace, delete, escape, arrowUp, arrowLeft, arrowDown, arrowRight, pageUp, pageDown, end, home, nbsp, insert!((100@200) < (330@100)) >>> falsea231| T | 0 ^ t 0. t nn31#'wimpy' initialIntegerOrNil >>> nil9al6ppp < <<<<>> #('string1' 'string2' 'string3').00000011103344445555555555544466666666644442201#(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))reciprocal "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 / self2531/0777000000888030999000000III0A0JJJ0CCGGGCD0HHH03Tests-unix-64-Spec2-Adapters-Morphic-Tests-Test.xml705Answer 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.hello100.0ab001LReturn a color for HTML color spec: #FFCCAA or white/black passed as string.40oops3240997r('File asFile Files File''s File' copyReplaceTokens: 'File' with: 'Snick') >>> 'Snick asFile Files Snick''s Snick'152:y "Answer the y coordinate." "(100@200) y >>> 200" ^ y;({ 2@6 . -4@3 . 10@ -3 } detectMax: [ :p | p y ]) >>> (2@6)2: Perform a time zone independent comparison of the dates, i.e. only compare day, month and year. To compare with time zones, use #=76This statement is true!'('''''' unescapeCharacter: $') >>> ''''1pharo0vector0A clear ...summarywReturn the object stored in the second dictionary at secondKey. The second dictionary is accessed via the key firstKey.5 fred the bear 00001111210asColorref "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)-('hello!' noneSatisfy: #isUppercase) >>> true0 Xs X!'234' initialIntegerOrNil >>> 234Answer the x coordinate.!000001033555655585544444444AA999B' ' asLowercase >>> ' 'c1.03012Pay 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.98Return 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.('ab' compare: 'aa') >>> 3N(false ifFalse: [ 'This statement is false!' ]) >>> 'This statement is false!'>> '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 ] ]c010 0: B : B010{} isEmpty >>> true1d20?(#(1 2 3 4 5) select: #even thenCollect: #negated) >>> #(-2 -4) XXXX""XXX""X9320a10replace: 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)) ]36(1@2.2) isFloatPoint >>> falsedo20foooEnumerate all elements in the receiver. Execute aBlock for those elements that are not equal to the given item343333O( #(1 2 3) flatCollectAsSet: [:each | { each. each+1 } ] ) >>> #(1 2 3 4) asSet257(#(a b c d e) indexOfAnyOf: #(x y z) ifAbsent: 7) >>> 7K(#('one' 'two' 'three' 'four') atAll: #(3 2 4)) >>> #('three' 'two' 'four')8diff: 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 / ComponentMaxdef2IParse and materialize the STON representation in the character readStream}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.1140lselect: 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 ] ]. ^ newCollection )n uuuuuuu n uuu 0420vector0 333330444444zort1(1 to:10 by:2) size >>> 55200world20(String streamContents: [:s| {'one'->1. 'two'->2} asOrderedDictionary associationsDo: [:a| s << a key << ':' << a value asString << ';']]) >>> 'one:1;two:2;'103f12This 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.milliSeconds "2 milliSeconds printString >>> '0:00:00:00.002'" "(1 second + 2 milliSeconds) printString >>> '0:00:00:01.002'" ^ Duration milliSeconds: selfReturn 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.342sasMutator "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: $:) asSymbol110003#(x y z) size >>> 3'hello' copyEmpty >>> ''01.021S(Date year: 2018 month: 9 day: 28) onPreviousMonth printString >>> '28 August 2018'220 a digit between 0 and 1 expected nil. := nil2021 foobazort03.14159DAnswer a Set whose elements are the unique elements of the receiver.'2' initialIntegerOrNil >>> 22one-10416rC3423 over index: 7(true xor: [true]) >>> false742(10 min: 20 max: 5) >>> 10c2bB(Character space join: #('Pharo' 'is' 'cool')) >>> 'Pharo is cool'valueWithPossibleArgs: 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]])]4422(100@200) max >>> 200311112004445484400B9999ABoccurrencesOf: 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]]. ^tally###'hello''world1002231141155600S#[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]1P(Date year: 2018 month: 9 day: 28) onNextMonth printString >>> '28 October 2018'61asValidSelector "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: [ #() ]) )asSymbol4wcadd: 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 ]. ^ newObject13a1: 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 ^ a1 0001112131415-3n uuuuuuu Xuu bceaW EW7{10@20. 30@0} / {1@3. 4.0@1} >>> {(10@(20/3)). (7.5@0)}180.00vector011623 [:a||||a]24.06c0.00| 1pharoYCreate a dictionary from the keys and values arguments which should have the same length.101 ; fooone[:a ::b]isEmpty "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 = 05<( #(1 2 3) asSet reduce: [ :a :b | a + b ] ) >>> (1 + 2 + 3)VifNotNil: 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 value202@Answer whether the receiver's first character represents a digitV('Hello, world!' collect: [:e | e isLetter ifTrue: e ifFalse: $-]) >>> 'Hello--world-'01abc22Return 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.*0222FFF9999AAAAAAABBBBBBBBCCCCCCDAAAEA9220@ foo: 5&('Hello!' detect: #isLowercase) >>> $e111322-19810.6747409422235526Not valid for negative integerse0{0@1. 2@3} + {10@20. 30@0} >>> {(10@21). (32@3)}W(false ifTrue: [ 'That is true!' ] ifFalse: [ 'That is false!' ]) >>> 'That is false!'231 test testwhatever6{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) = requiredStartc1"pppp AAAAAAAAAAA ^ aaaaaaaaaaa s n|| a1te 0 :B |X b X X01Oascending "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 asSortFunctionpharo33( E(#(a b c d e) indexOfAnyOf: #(x y c) startingAt: 2 ifAbsent: 7) >>> 3:({1. 2. 3. 4} replace: [:each | each + 1 ]) >>> #(2 3 4 5)01reject: 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) ]]]209(50@50 isInsideRectangle: (0@0 corner: 100@100)) >>> trueX 1((#(a b c d e) identityIndexOf: #c) >>> 31912 Phar...ool13245Optimized version of Collection>>#select:thenCollect:Consider using any of printStringHex printStringBase: 16 printStringBase: 16 length: 8 padded: true storeStringHex storeStringBase: 16 storeStringBase: 16 length: 11 padded: true| 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 subclassResponsibility15rremove: 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]320 ('*baz' match: 'mobaz') >>> true@ foo(#(11 22 33) before: 33) >>> 22114-1 between: 321,Tests-unix-64-System-Settings-Tests-Test.xmlabcFor backwards compatibility mainly. Return the key that should correspond to some character. Handle normal ascii characters and special control keys only (enter, tab space...)33(#(2 4) allSatisfy: [ :each | each even ]) >>> true((40@40 scaleTo: 400@400) >>> (10.0@10.0)instanceSide "Return the class of the couple class/metaclass. Useful to avoid explicit test." "Point instanceSide >>> Point" "Point class instanceSide >>> Point" ^ self soleInstance3256:. :a0vector22r00101000 highBit >>> 6>($/ split: '/foo/bar')>>>#('' 'foo' 'bar') asOrderedCollection2z0vector0[ :aaa :bbb | | ccc ddd | aaa ]33100vector0100.153?({1. 2. 3. 4. 5} shuffleBy: (Random seed: 42)) >>> #(1 2 5 4 3)world3.0s '' expandMacros >>> String lf-0.530<{10@20. (1/2)@0.5} reciprocal >>> {((1/10)@(1/20)). (2@2.0)}(#(1 3 5 7 11 15 23) findBinary: [ :arg | 25 - arg ] do: [ :found | found ] ifNone: [ :a :b | 'between: ',{a. b} printString ]) >>> 'between: #(23 nil)'-1007 0010002234('*foo*zort' match: 'afoodezortorfoo3zort') >>> true% foo: arg ^ arg min: arg + 2 ; abs . 0(-0.98 printShowingDecimalPlaces: 2) >>> '-0.98'1frasCommaStringAnd "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 ']:(false xor: [false]) >>> falseReturn 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.b3%1 second printString >>> '0:00:00:01'5502bar104Answer 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.3.1479hel032401215afoo3zortthenfoo3zort1 n ssss;XsssaeWJust like do: except that the iteration index supplies the second argument to the block{ ^ 1 }2#(#(1 2 3) polynomialEval: 2) >>> 171 substrings "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: CSSeparators1471|a:iList elements betwen () and separated by spaces. Is used by printOn: and other related printing methods.101100y1+^2includes: 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]10 ppp <<<<>> #(2 4) " ^ self selectEvery: [ :i | i \\ 2 = 0 ]1210 isUnary "Answer whether the receiver is an unary message selector." "#new isUnary >>> true" "#>> isUnary >>> false" "#between:and: isUnary >>> false" ^ self precedence = 1"$_ isConnectorPunctuation >>> truefoo:24 ppp <<<<< X 10211variable expected in assigment2 001002230 0:B| | |u0142(1 to: 10) isEmpty >>> falseabc13cAnswer whether the receiver begins with the given prefix string. The comparison is case-sensitive.2This statement is false!1 foo. 210,(#(11 22 33) before: 44 ifAbsent: 55) >>> 553n s n X0?(Color r: 0.5 g: 0.5 b: 1) hsvSaturation >>> 0.4995112414467253 frd th bar11510lfromCharacter: 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 ]230s:1 e:5 s:7 e:8 s:10 e:13 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: 30.51Answer 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.xfindString: substring startingAt: start "Answer the index of the first substring within the receiver, starting at start. If the receiver does not contain substring, answer 0." "('salkjsdlkgfee' findString: 'ee'startingAt: 3) >>> 12" "('salkjsdlkgfee' findString: 'al'startingAt: 3) >>> 0" "('salkjsdlkgfeeal' findString: 'al' startingAt: 1) >>> 2" ^self findString: substring startingAt: start caseSensitive: trueEvaluate 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:.101foo: Object ^ Object + 111122Return a new empty collection based on the species109(Character space asString, 'a') isAllSeparators >>> false00002224Put anObject at every one of the receiver's indices.d0worldSunday13 [ :a | a ] 22220000111110.160s31.928390123490234830XnX nX4aM(Date year: 2018 month: 9 day: 28) asDate printString >>> '28 September 2018':(#(a b c d e) indexOf: #c startingAt: 4 ifAbsent: 7) >>> 72027 September 2018'Tests-unix-64-CodeImport-Tests-Test.xml3E(#(a b c d e) indexOfAnyOf: #(x y c) startingAt: 4 ifAbsent: 7) >>> 7101* 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: #*-3.14793xb[ | | RReturn the metaclass of the couple class/metaclass. Useful to avoid explicit test.uEvaluating disjunction (OR). Evaluate the argument. Then answer true if either the receiver or the argument is true.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).3T{ 1->2. 3->4 } asDictionary >>> (Dictionary new at: 1 put: 2; at: 3 put:4; yourself) true >>> truetoString: 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 ]112160.005-12 222222222 ;Tests-unix-64-System-BasicCommandLineHandler-Tests-Test.xml20vector0341at: 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) + value$' isFinalQuote >>> false0.53 [: a : b]G('ab cd ab ef ab' copyReplaceAll: 'ab' with: 'zk') >>> 'zk cd zk ef zk'420b31'Tests-unix-64-Commander2-Tests-Test.xml10400164c81000r1#foo keywords >>> #('foo')111152101 XXX1.fromString: string "Parse and materialize the STON representation in string" "(STON fromString: 'Point[1,2]') >>> (1@2)" ^ self fromStream: string readStream26421'foo1' endsWithDigit >>> trueprintPathOn: 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]100X [ | a b | 7('pharo' endsWith: 'aRo' caseSensitive: false) >>> true That is true!Ab cd ef Ab cd?('hello world!' anySatisfy: [ :each | each isLetter ]) >>> true2200-3.1479*bazGcontractTo: 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: '...';'test test ' withSeparatorsCompacted >>> 'test test '11000-10 hex >>> '-16rA'210$({} averageIfEmpty: [0@0]) >>> (0@0)eqv: 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 == aBoolean1|Integer quotient defined by division with truncation toward negative infinity. \\ answers the remainder from this division.3b111331102251 ' hello '10isFinalQuote "Return whether the receiver is https://www.compart.com/en/unicode/category/Pf" "$' isFinalQuote >>> false" ^ self characterSet isFinalQuote: self1510classNameKey "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" ^ #className231(10.12345 round: 2) >>> 10.12AB('abcdefgh' includesSubstring: 'de' caseSensitive: false) >>> true12400202Negation--answer false since the receiver is true.lAnswer the character position of the final space or other separator character in the receiver, and 0 if none233Missing opener for closer: ))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:1storeStringBase: 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 ] 0:01:01:00$Point class isInstanceSide >>> false($b > $c) asBit>>> 0930vector0aeiou ?(#(a b c d e) indexOfSubCollection: #(c d) startingAt: 4) >>> 020u u. 0 :B X 0. u u#(1 5 10 -4) max >>> 10+first method faster from 27 accesses and on| T | 0 t nn 0. ^ t15 1.0%#(10 20 30) \ (0 to: 15) >>> #(20 30)108 16r40000000addMonths: 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: day) translateTo: self offsetIMPLEMENTATION 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)22004-02-29T13:33:00+02:00seventh "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: 7Unknown character3103.123dasSortFunction "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: self4({#hello. #world} identityIncludes: #hello) >>> true16Answer the receiver with leading and trailing aString.b20('aa' compare: 'ab') >>> 103de15-3.1479-5over 230"(1 to: 5 by: 3) asArray >>> {1. 4}0> #running:of: for more information." "(#(1 1 2 2 3 3) runningMin: 3) >>> {1 . 1 . 2 . 2}" ^ self running: [ :subset | subset min ] of: aSubsetSize34/ """ pppp """ A """ pppp """ A """ ^ """ a """ c({10. 20} asOrderedCollection addIfNotPresent: 30; yourself) >>> ({10. 20. 30} asOrderedCollection)41nnnuua2Answer 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.00120swap: 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?Answer true if the receiver starts with the argument collection320u(#(10 20 30) inject: OrderedCollection new into: [ :a :e | a add: (e + 1). a ]) >>> #(11 21 31) asOrderedCollection1 #(foo bar)ee2abauflattened "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 ]#{ 2. 1+1 } asIdentitySet size >>> 1f1mobazo2201nEvaluate aBlock with each of the receiver's elements as the argument. Collect the resulting values into self.3.1479 0:01:02:000vector0123.145z2100 Pharo is <1s>11,Tests-unix-64-PharoDocComment-Tests-Test.xmlb3101/2 reciprocal >>> 22551foo: arg bar: arr ^ arg + arr!""" 0 """ n """ """ n """ 0 """41 'def' >= 'abc' >>> true1000addIfNotPresent: 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 ]. ^ anObject&(Color white asColorref) >>> 16777215(1 -> 'one') key >>> 11005LOL<&Tests-unix-64-Microdown-Tests-Test.xml12(#(11 22 33) asOrderedCollection atWrap: 5) >>> 222abs "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 abs72('fred the bear' copyWithout: $e) >>> 'frd th bar'110T(true ifTrue: [ 'That is true!' ] ifFalse: [ 'That is false!' ]) >>> 'That is true!'two1E| |  00111000444222230005566600 !((2@2) * (100@200)) >>> (200@400) HELLOWORLD16Sunday=1, ... , Saturday=711U(true ifFalse: [ 'That is false!' ] ifTrue: [ 'That is true!' ]) >>> 'That is true!'101001difference: 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 asArray n ssss XnN(false ifFalse: [ 'This statement is false!' ]) >>> 'This statement is false!'b300000100002000030555655755855599A9B9C999FEEEGDDDH557(RPackage named: 'MockPackage') isTestPackage >>> false 2221333444d(#(1 1 1 10 10 10 100 100 100) groupsOf: 3 atATimeCollect: [ :x :y :z | x + y + z]) >>> #(3 30 300) #[ 1 } 2 ][ &('foo*baz' match: 'foo23baz') >>> true230#( 1 #']' 2 #'}' 3 ) 82537349212201.9283O|s| (#(1 3) detect: [ :each | each even ] ifFound: [ :e | s:=e*10 ]). s >>> nil3222214231}>>> 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 -> anObject15#(10 20 30) | (0 to: 15 by: 5) >>> #(0 15 5 30 20 10)true asInteger >>> 145111 slowFactorial >>> 1W(String streamContents: [:s| 'abcd' asStringOn: s delimiter: '->']) >>> 'a->b->c->d'54463337228111900AA97findBinaryIndex: 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: exceptionBlock+ 12020/(#(1 2 2 3 1 1 1) asBag occurrencesOf: 1) >>> 4writeStreamDo: 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 writeStream | a | ^ a2c!(111/100 round: 2) >>> (111/100) ''fred the bear' lastSpacePosition >>> 9200100#Tests-unix-64-Random-Tests-Test.xml2018between: #(0 1)te1H(('asa' , String cr , 'asa') withUnixLineEndings at: 4) >>> Character lf5la)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 *- 1 + 1 -- 1 + 1 - -11mReturn true if the receiver is sorted by the given criterion. Optimization for isSortedBy: [:a :b | a <= b].320]('a000' asWideString sameAs: (ByteArray with: 97 with: 0 with: 0 with: 0) asString) >>> false#(3.1479 truncateTo: 0.01) >>> 3.1483yfindFirst: 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]]. ^ 0110126"Character space tokenish >>> false Pharo is cool/Answer an Association between self and anObject#(1 2 3) isSorted >>> true19stop "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?('hello world!' anySatisfy: [ :each | each isDigit ]) >>> false138M(Character space asString, Character space asString) isAllSeparators >>> truezRReturn the metaclass of the couple class/metaclass. Useful to avoid explicit test.510 hello world63 ^ 1. 2. ^ 3&(AsciiCharset toLowercase: $A) >>> $a. 000100334350025162018|Try to find a number somewhere in this string, as explained in Number>readFrom: this method returns the first number found?(#(1 2 3) with: #(4 5 6) collect: [:a :b | a + b]) >>> #(5 7 9)000102Wargmax "#(1 -3 5 1) argmax >>> 3" "#(1 1 1 1) argmax >>> 1" ^ self indexOf: self max10vector0\|a|a:= Array new: 3. #(10 20 30) withIndexDo: [:e :i| a at: 4-i put: e+1]. a >>> #(31 21 11)003.(#(40 41 42) asOrderedCollection at: 2) >>> 41Answer with the value of trueAlternativeBlock. Execution does not actually reach here because the expression is compiled in-line.true ==> [true] >>> true422z2xAnswer a copy of the receiver containing all but the first n elements. Raise an error if there are not enough elements.1!'elvis ' lastSpacePosition >>> 70003[ ^ 1 ]00/Tests-unix-64-Shift-ClassBuilder-Tests-Test.xmlS((Date year: 2018 month: 9 day: 28) addMonths: 3) printString>>> '28 December 2018'^^1#Tests-unix-64-TaskIt-Tests-Test.xmlyyyymmdd "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) ]330Zjoin: 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]]e13<(RPackage named: 'MockPackage-Tests') isTestPackage >>> true10g6ab*abc430.0*#('a' 'b' 'c') asCommaString >>> 'a, b, c'144('pharo' endsWith: '' caseSensitive: false) >>> true0b31 1 foo; . 2second "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 'Number': 5/ 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: #/ ('Hello' includes: $h) >>> false000003XX XX n XX# n X XfindBinary: 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 ]21 250112(#(1 5 10) findFirst: [ :each | each > 15 ]) >>> 0(100@200) ceiling >>> (100@200)216a :foo13Class structural inspection - Class/Metaclass shift-1[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 - 110vector023.5698d4{1 . 2 . 3 . 4 . 5} asSortedCollection median >>> 31MAnswer a String made up from the receiver whose characters are all lowercase.eKReturns the reciprocal of self. In case self is 0 the / signals ZeroDividecool2c13d,(#(a b c d e) indexOf: #c ifAbsent: 7) >>> 3=Answer whether the final character of the receiver is a colon24,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:e:10010,Tests-unix-64-FileSystem-Core-Tests-Test.xmls:1 e:5 s:7 e:8 s:10 e:13 even " 0 even >>> true" " 2 even >>> true" "-2 even >>> true" " 3 even >>> false" "-3 even >>> false" ^(self bitAnd: 1) = 01abc10S(#(1 2 3 4) overlappingPairsCollect: [:first :second| first + second]) >>> #(3 5 7)-10\Answer the eighth element of the receiver. Raise an error if there are not enough elements.~Answer the value of falseAlternativeBlock. Execution does not actually reach here because the expression is compiled in-line.[ | b ]from: 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 ]. ^anObjectxz10!pppp A ^ 0 :B | b 0 ssssss nn s adef31 X0### ###0102compare: 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: order0200Color red green >>> 0.03LadaptToCollection: rcvr andSend: selector "If 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." "(#(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]z4.0b130AA3220n(#(first (second third) ((allSentMessages ('Elvis' includes:)))) includesSubstringAnywhere: 'lvi') >>> truestring302010vector01%((1 to:9 by:2) includes: 4) >>> false?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.foo Xuuuuuu n uuu 222333Esum works with objects that understands + and - messages, like Points1022fghi 'abcd' asFourCode >>> -51364572432g'Here 123should % be 6 the name6 of the method' asCamelCase >>> 'Here123should%Be6TheName6OfTheMethod'('In \{1\} you can escape \{ by prefixing it with \\' format: {'strings'}) >>> 'In {1} you can escape { by prefixing it with \' foo*baz1101 2r00101000occurrencesOf: 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 ]20$Tests-unix-64-Network-Tests-Test.xml '11abc' startsWithDigit >>> true212printOn: 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 ], aCollection "Concatenate the receiver with the argument." "#(1 2 3) , #(4 5 6) >>> #(1 2 3 4 5 6)" ^self copy addAll: aCollection; yourselfKPairwise integer modulo of two sequenceable collections of the same length.0In {1} you can escape \{ by prefixing it with \\VAnswer a copy of the receiver that does not contain any elements equal to oldElement.e'' asArray >>> #()0#( #[ 0 1000 2 ] )*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: blockWithArg43 3 even >>> falseAnswer 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.replaceAll: 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]]11 boy!b,(#(11 22 33) before: 22 ifAbsent: 55) >>> 1123.572(Color colorFrom: #(0.0 0.0 1.0)) >>> (Color blue)-1.5#(10 20 30) sum >>> 60Helloa36' test test' withSeparatorsCompacted >>> ' test test'R(#(1 2 3) collect: [:each | each + 10 ] thenSelect: [:each | each even]) >>> #(12)abd4 0:00:01:01410#(1 1 1 1) argmax >>> 11000addDays: dayCount "((Date year: 2018 month: 9 day: 28) addDays: 3) printString >>> '1 October 2018'" ^ (self asDateAndTime + (dayCount days)) asDateMake 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 = 111030'hello'isOctetString "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" ^ true21023.145 f, o and ofoo:bar:410vector02 short enough42cabc test 945 foo < bar: 522230That is false!-16rAf"0001111111111100044444444444333500[(#(1 3 5 7 11 15 23) findBinary: [ :arg | 24 - arg ] ifNone: ['Not found']) >>> 'Not found' 'def' >= 'def' >>> true42a100103Tests-unix-64-NewTools-CodeCritiques-Tests-Test.xml.('word before index' wordBefore: 4) >>> 'word'$: tokenish >>> trueissorted "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 sorted2b2001010011 test test 450cpharoDocCommentNodes "Return a collection of pharo comment nodes: expressions following the pattern" "true >>> true" ^ self comments flatCollect: [:each | each pharoDocCommentNodes]2XXX15Return 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).aabddf11(1 to: 10 by: 2) stop >>> 101/ HHH E1III111111AAA17CBBBCCCOOOCCCCCCMMMCJ NNN 9422r1000yisAllAlphaNumerics "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]]. ^ true156allPairsDo: 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 ] ]xc6Tests-unix-64-Transcript-NonInteractive-Tests-Test.xml2rx1$$ isCurrencySymbol >>> truetwofd=(KeyboardKey named: 'SHIFT_L') >>> (KeyboardKey value: 65505)4.0 [ :a : | ][:a :]10MockPackage-tests392$'foo' asByteArray >>> #[102 111 111]bad start index010y$a isClosePunctuation >>> false5{{}} isEmpty >>> false*Tests-unix-64-SortFunctions-Tests-Test.xml0 :BBBBBB | bbbbbb s n 0fourth "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: 4Answer 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.114world8reject: 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 ]]]10#-9870.0((200@200 scaleTo: 400@400) >>> (2.0@2.0)#(100.1@200.9) ceiling >>> (101@201)22019291 0n ssss0Xsss14310003Perform 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.W(false ifFalse: [ 'That is false!' ] ifTrue: [ 'That is true!' ]) >>> 'That is false!'0000010000002044511pReturn true if all my elements are close to the elements of same index of the parameter with a certain precision065##(a b c d e f g h i) seventh >>> #g200.#(10 20 30) / #(1 3 4.0) >>> {10. (20/3). 7.5}2#(5 -3.7 0) sign >>> #(1 -1 0)1(#(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))00000105333344226670('abcdf abcedf' indexOf: $a startingAt: 4) >>> 71 10r89abcdAppend the elements of the receiver separating them with the joiner argument and handle the last elment separation using the last argument.301zAnswer whether the receiver sorts after or equal to aString. The collation order is simple ascii (with case differences).2put: 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: object3ifFalse: 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 value1400vector0$41010Return 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.fifth "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: 5555 106660077708 AAA-3.141one1hellolowBit " 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)2(#(1 1 2 2 3 3) runningMin: 3) >>> {1 . 1 . 2 . 2}>Answer a Point that is the difference of the receiver and arg.'('hello world' occurrencesOf: 10) >>> 022| | . :a225""" n """. """ n """10100642-2c3212 hexString >>> '16rC' | | . a: 0vector4 (10 printStringBase: 16) >>> 'A' 1 + . ^ 29294710 #( #( 0 1 2 )04191%('hello' includesAny: 'hop') >>> true1607Return a color from its RGB components (0 - 1.0 floats)\Answer the fourth element of the receiver. Raise an error if there are not enough elements.3174(false and: [true]) >>> falsePcount: 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 ] ]. ^ sumdef!(2 ifNotNil: [ :o | o + 3]) >>> 5-Optimized version of Collection>>#thenReject: 32768 == (1 bitShift: 15)856n"""uuuu uuuuu uuu uuuu"""uuuuu"""uuuuuuuuuuu"""[ :a | | a b ]42060#( #( 0 1 2 ) )Alias of Collection>>reducesort: 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: aSortBlock10120;({#x .#y .#z} atAll: #(1 3) put: #e; yourself) >>> #(e y e)atAll: 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))]. ^ newCollection1920220:(#(10 20 30) inject: 0 into: [:s :each| s + each ]) >>> 60Since 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.210XX XX n XXXX n X XB('pharo' endsWith: 'project-pharo' caseSensitive: false) >>> false bytestring31M(RubTextEditor new surroundString: 'a''b' withCharacter: $') >>> '''a''''b'''This statement is true!2(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 '304 hello: 2100000000000003234true & true >>> truebarabcd2111qjoin: 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]](#(1 2 3 4) nextToLast) >>> 3abc0.530[ a: ]25Optimized version of Collection>>#collect:thenSelect:%OrderedCollection new capacity >>> 10 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 ]255e-8split: 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 size'{1. 2} asSet = {2. 1} asSet >>> true30102(100@200) y >>> 2005Return the index of the argument in the receiver, only elements after the start of the element are considered zero if not present.4th is is2 9 a stRI4410[(String streamContents: [ :s | -10 printOn: s base: 10 length: 4 padded: true] ) >>> '-010'4[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 ]. ^ dictbasenameWithoutExtension: 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 ]d10:00:00:00.0000000022422This statement is false!0256172c@(STON fromStringWithComments: 'Point[1,/*comment*/2]') >>> (1@2)9109101420sInclude anObject as one of the receiver's elements, but only if there is no such element already. Anwser anObject.656Collection size and block argument count do not match.3-3"'78 92' initialIntegerOrNil >>> 78(Tests-unix-64-Zinc-Zodiac-Tests-Test.xml That is true!8(-234.567 printShowingDecimalPlaces: 5) >>> '-234.56700'2asSortedCollection "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: SortedCollection\(Array new: 3 streamContents: [ :out | 3 timesRepeat: [ out nextPut: 42 ] ]) >>> #(42 42 42)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]]]. ^ false280vector01333I 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.8Return the sum (+) of the elements held in the receiver.110u s 11 Not found0bar3$A isCasedLetter >>> false3.147900vector01145BSort this collection into ascending order using the '<=' operator.2550+('aBc' asWideString sameAs: 'abc') >>> true1 'Foo''Bar'0.060dn ssss;17000111213333141100reciprocal "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 ]foo < bar ; baz > 30foo < bar: [ 1 ] > 6 slowFactorial >>> 7202d1Emit overlapping pairs of my elements into aBlock4(3.1479 roundUpTo: 0.1) >>> 3.22"Guard for know cases (0,1,2,error)103to101xb130.004J((RBScanner on: 'Pharo (, { exist ]' readStream) next; next) value >>> $(2151 'def' > 'abc' >>> true2.020-10.51cand: 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 subclassResponsibility#foo: keywords >>> #('foo:')X n s n20 :B | X b X X?(#(a b c d e) indexOfSubCollection: #(c d) startingAt: 2) >>> 3e1 | | . - 1This statement is false!19i (String streamContents: [:s | #('hello' 'the' 'world') do: [:each | s << each]]) >>> 'hellotheworld'1c(String streamContents: [:s | #(10 20 30) do: [:each | s << each asString] without: 20]) >>> '1030'28 hello world0032000Return 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  Xuuuuuu Xuu n 1100000441+De100a000AAnswer a Point with coordinates that are the reciprocals of mine.1*('hello!' allSatisfy: #isLetter) >>> false(1)2G(OrderedCollection new add: 42; add: 43; yourself) asArray >>> #(42 43)minutes "2 minutes printString >>> '0:00:02:00'" "(1 hour + 2 minutes) printString >>> '0:01:02:00'" ^ Duration minutes: selfabcpharo!03276810Ynot "Negation -- answer true since the receiver is false." "false not >>> true" ^true36'2 between: 0 and: 4' findSelector >>> #'between:and:'5/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. ^ newCollection7%('abc' escapeCharacter: $X) >>> 'abc'10)('abab ac de' howManyMatch: 'abab') >>> 42!Character lf isSeparator >>> true/ "a" 1 "b" max: "c" 2 "d" ; "e" min: "f" 3 "g" 3^ @12100##() asDictionary >>> Dictionary new24 1 sign;;bar19816r41(42 decimalDigitAt: 1) >>> 2201y41 decimalDigitLength >>> 1511102({1. $a. $a. 3} as: RunArray) values >>> #(1 $a 3) | | . a: | 1#(1 2 3 4) selectEverySecond asArray >>> #(2 4) 260-(3 ifNil: [42] ifNotNil: [:o | o +3 ]) >>> 6a'b50:Xsu0(Array streamContents: [:stream | #(10 20) paddedWith: #(40 50 60) do: [:a :b | stream nextPut: {a. b} ]]) >>> #(#(10 40) #(20 50) #(nil 60))223| T t | t nn. ^ t111ppp X LRemove 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* """ | """ T """ | """ t """ """ n """ 3LOL4split: 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 ]. ^ result"00010020030004454647444A999B888C000123456789ABCDEFabcdef3'{1. 2} asSet = {1. 2. 2} asSet >>> true$(200@200 scaleBy: 2@3) >>> (400@600)1$} isClosePunctuation >>> true101.41073201pReturn a String representation of this number in base b with a minimum length and padded by 0 if zeroFlag is set4#. 1$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: aBlock~Answer the value of falseAlternativeBlock. Execution does not actually reach here because the expression is compiled in-line.110!"a" [ "b" 1 "c" . "d" 2 "e" ] "f"20pLike asArray: but return a copy if self is already an Array. This ensures that the result is always a new Array 'ziggie' lastSpacePosition >>> 05(false ifTrue: [ 'This statement is true!' ]) >>> nil173414214(#(1 2 3) reduce: [ :a :b | a + b ]) >>> (1 + 2 + 3)abcdf#(#(a b c d) allButLast: 3) >>> #(a)241\\ 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)3201371pharo0-216abc 002[Print the receiver's path on aStream (without 'Path' prepended) using the default delimiter211015Sort 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.<(1000 * 1000 * 1000) humanReadableSISizeString >>> '1.00 GB'47Parse and materialize the STON representation in stringa1210foo ^ [ :a | [ :a | a ] value: 10 + a ] value: 1c14113341100500667100TAdd new empty slots to the end of array, while keeping the empty slots at the front.0indexOfSubCollection: 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]001234506102100e332&('aXb' escapeCharacter: $X) >>> 'aXXb'A({1@2. 6@3. 2@ -1.} select: [:e| e x > e y]) >>> {(6@3). (2@ -1)}1.21-#foo:bar: keywordsStrict >>> #('foo:' 'bar:')isAllDigits "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]. ^ true 0000000000000charlie is number 219Print the receiver in standard French format dd/mm/yyyy.0.5||322 [:a| | |b]30K(#(a b c d e) indexOfSubCollection: #(c d) startingAt: 2 ifAbsent: 7) >>> 3200100C(DateAndTime fromString: '2004-02-29T13:33:00+02:00') minute >>> 3301k(Array streamContents: [:stream | #(1 2 3) reverseDo: [:each | stream nextPut: each + 10]]) >>> #(13 12 11)02100####################038Trim separators from both sides of the receiving string.PConverts a method selector into a test selector in form of #testOriginalSelectorUnknown annotation2In \{1\} you can escape \{ by prefixing it with \\1((#(x y z) atLast: 4 ifAbsent: #a) >>> #awithIndexSelect: 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 ] ] ]3x1'('hello world' occurrencesOf: $l) >>> 34132() x isSymbol5AAnswer how many of the receiver's elements are equal to anObject.lvi4b215d-3001022033304550670880dod2%(false and: [Error signal]) >>> false37ifTrue: 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 value7-4,(3 ifNotNil: [:o | o +3 ] ifNil: [42]) >>> 62 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 ] ]113(Date year: 2018 month: 9 day: 28) monthIndex >>> 9>([:x :y | x + y] valueWithPossibleArgs: #( 13 12 15)) >>> 25 -3-4110000-22MockPackage-Tests-Packageabc1X X3d23g402Answer a number that represents the number of complete minutes in the receiver' time part, after the number of complete hours has been removed.1001a1a1 ||X u-4;(Date year: 2018 month: 9 day: 28) ddmmyyyy >>> '28/9/2018')((4 to: 9) anySatisfy: #isPrime) >>> true^ <c11 aa bb cc dd0.012splitOn: 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: aBlock1'('hello' union: 'world') >>> 'whlorde' 15Variable or expression expectedi(#(10 20 10 30 10) asOrderedCollection removeAll: #(10 10 20); yourself) >>> #(30 10) asOrderedCollection10]Answer the seventh element of the receiver. Raise an error if there are not enough elements.(2 raisedTo: -1) >>> (1/2)304'' expandMacros >>> OSPlatform current lineEnding.foo "a" "b" "c" "d" "e" "f" "g" 2an OrderedDictionary(true->#(1 3 5) false->#(2 4))d(((100@201) closeTo: (100@200)) >>> false10d.(Color h: 0 s: 1 v: 1 alpha: 1) >>> Color red 10016r00A200130'({1. 2. 3} as: Set) >>> #( 1 2 3) asSet!a := a. { [ :a | a := a }. a := a"fear is the little death that the. 00######################### ###04133Returns whether the receiver contains the argument.p( #(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))helloasByteArray "Convert to a ByteArray with the ascii values of the string." "'a' asByteArray >>> #[97]" "'A' asByteArray >>> #[65]" "'ABA' asByteArray >>> #[65 66 65]" self subclassResponsibilityEnd of statement expected10 00100222301*'displayStringOn:' endsWithAColon >>> true350storeStringHex "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: 1632add: 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(false xor: [false]) >>> false1cFile asFile Files File's File22.02111029(#(a b c d e) indexOfAnyOf: #(x y c) startingAt: 4) >>> 0"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. 12r330131+Tests-unix-64-Tool-Profilers-Tests-Test.xml150'a'174('abcdefgh' includesSubstring: 'de' at: 1) >>> false3e:0d7300vector012(('Hello!' detectMin: #asciiValue) >>> $!0That is false! Point[1,2]85Cascade message expected1(Array streamContents: [:stream | #(1 2 3 4) overlappingPairsDo: [:first :second| stream nextPut: (first + second)]]) >>> #(3 5 7)1(#(10 20 30) collect: [:e | e+1]) >>> #(11 21 31) ')' expected1002230aReturn a accessor (getter) message from a setter message. Return self if it is already a getter.0 #[ 1 -1 2 ]ppp < <<<< n>>#('foo' 'bar' '2') asOrderedCollectionAnswer 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.0011000442222300665557:('<1?success:error>' expandMacrosWith: true) >>> 'success'First N characters1Hello'pppp A ^ 0 | T | t nn. t 0 sssss s a4 001022350223244544ppppXpppe4sAnswer whether the receiver includes, anywhere in its nested structure, a string that has testString as a substringa[ :Object | Object + 1 ]#( 1 ). #( 2 )de42%Point class classSide >>> Point class!(13 beBetween: 12 and: 20) >>> 13310, 15, 20 and 25104readStreamDo: 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 readStream1100010runningMax: 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: aSubsetSizeu >> 24a2+1. -a. - 1. -"A"104includesAny: 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]]. ^ false11-0.98Pharo (, { exist ]findBinaryIndex: 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: low81321#() asCommaStringAnd >>> ''51000OReturn all the elements that appear in self or in aCollection. Alias of union:b2.3029490834938994220.98162004-02-29T13:33:12+02:00 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 ]ce5e123311mcloseTo: 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 ] ]. ^ truepaddedWith: 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: [])]2/Tests-unix-64-Metacello-TestsReference-Test.xml-('Hello, World!' reject: #isLetter) >>> ', !'b3Tests-unix-64-NewTools-RewriterTools-Tests-Test.xml11100AReturn the class of STON maps, Dictionary, a system wide constant1 between:and:#'hello3MReturn whether the receiver is https://www.compart.com/en/unicode/category/Pi1[ : | 10XXXXXXXXXXXXXXXXXXXXXXXXXX02(23.5698 printShowingDecimalPlaces: 2) >>> '23.57'K(#(1 2 3) asOrderedCollection collect: [ :v | 10 ]) asArray >>> #(10 10 10)10 hex >>> '16rA'3 4 + 3 >>> 7151009 W01-Welcomeone*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]003331JRunning max. See the comment of self >> #running:of: for more information.230between: #(23 nil)125 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 sizeoops#(1]2}3)02(#(11 22 33) asOrderedCollection atWrap: 2) >>> 224=Answer a Bag whose elements are the elements of the receiver.X u0Tests-unix-64-NautilusRefactoring-Tests-Test.xml1000 Pharo is coolisNotEmpty "Answer whether the receiver contains any elements." "#() isNotEmpty >>> false" "#(()) isNotEmpty >>> true" "'' isNotEmpty >>> false" "' ' isNotEmpty >>> true" ^ self isEmpty not#(1)#(2)1true | true >>> true14:Tests-unix-64-SystemCommands-MethodCommands-Tests-Test.xmlsorted: 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: aSortBlockOrNil12-Tests10b,'th is is2 9 a stRI4' squeezeOutNumber >>> 2525(1 digitAt: 2 base: 10) >>> 0601(1923 roundUpTo: 10) >>> 1930nXsss32000111213141100eAnswer the next multiple of aNumber toward negative infinity that is nearest the receiver. Examples:8((0@0 corner: 100@100) containsPoint: 100@100) >>> falseC(DateAndTime fromString: '2004-02-29T13:33:12+02:00') second >>> 1203c1121$0 isDecimalDigit >>> true1055isFloatPoint "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 ]#+ asTestSelector >>> #testPlus goodby: 2 my: 11 TestFailure Assertion failed BlockClosureValueWithinDurationTest(TestAsserter)>>assert:description:resumable: BlockClosureValueWithinDurationTest(TestAsserter)>>assert:description: BlockClosureValueWithinDurationTest(Object)>>assert: BlockClosureValueWithinDurationTest>>testValueWithinTimingNestedInner BlockClosureValueWithinDurationTest(TestCase)>>performTest 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).14161Evaluate 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.$A hex >>> '16r41'20526Remove the copies of elements, but keep the same orderhex "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: 16122444 + 2000213+#(("A")"B"."C":"D";"E"["F"]"G"{"H"}"I"^"J")tAnswer a copy of the receiver containing all but the last element. Raise an error if there are not enough elements.*Tests-unix-64-Spec2-Backend-Tests-Test.xmlhello7#(#(10 20 30) includes: 20) >>> true2p(#(65 66 67) flatCollect: [:each | { each asCharacter. each asCharacter asLowercase } ] as: String) >>> 'AaBbCc'e20 001111111122222222233344555067702021X'let us make seperate strings' substrings >>> #('let' 'us' 'make' 'seperate' 'strings')7(#(a b c d e) indexOfAnyOf: #(x y c) ifAbsent: 7) >>> 31X#####-210h100>(Color r: 31 g: 0 b: 0 range: 31) >>> (Color r: 1.0 g: 0 b: 0)Pharo is 'cool'abc!(3.1479 roundUpTo: 0.01) >>> 3.15200 hello world!3abcfouroEnumerate all elements in the receiver. Execute aBlock for those elements that are not equal to the given item+Tests-unix-64-Refactoring-UI-Tests-Test.xmla4 [ :a :b | ]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-""" 0 """ : """ B """ : """ B """ | """ 0 """"('*baz*' match: 'mobazo') >>> true'a' asByteArray >>> #[97]01!#(a b c d e f g h ) fourth >>> #d6Collection size and block argument count do not match.112hellotrue & true >>> true14| 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: aCollectionUReturn whether the receiver is composed entirely of digits and has at least one digit132110000000000000[Answer the fifth element of the receiver. Raise an error if there are not enough elements.6%OrderedCollection new capacity >>> 10-10101a0fred100&#(1 2 3) , #(4 5 6) >>> #(1 2 3 4 5 6)208cumulativeCounts "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]x10000112131411001'he'llo'includesSubstring: 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 ] ]isAlphaNumeric "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 ]elvis #[ 1 ]. #[ 2 ] -9 % 4 >>> 32 self := self3-460\\ 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: #\\aAnswer whether the receiver ends with the given prefix string. The comparison is case-sensitive.1 goodby: 2 my: 02 #(8 5 3 9) sorted >>> #(3 5 8 9)112.30291GPairwise difference of two sequenceable collections of the same length.y;(100@100 isInsideRectangle: (0@0 corner: 100@100))>>> false1(KeyboardKey fromCharacter: $a) >>> KeyboardKey A3(10@10 corner: 100@100) >>> (10@10 corner: 100@100)10-1 'def' = 'abc' >>> false10.12345311112004444466676655B9999Ap Xsss 110240$(nil ifNotNil: [:o | o +3 ]) >>> nilhello!130x22010e0CAnswer whether all the elements of aCollection are in the receiver.001020005333344006670X''''''23-43;(1 second + 1 milliSecond) printString >>> '0:00:00:01.001'd@(#(1 3 5 7 11 15 23) findBinaryIndex: [ :arg | 11 - arg ]) >>> 51hello!6noneSatisfy: 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]]. ^ trueBEvaluate 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 ])groupByRuns: 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 speciesThat is false!-43.14220strings1#() asBag = Bag new >>> trueFile3f10b(#(w x y z) atPin: 2) >>> #xL('Hello, World!' select: #isLetter thenCollect: #uppercase) >>> 'HELLOWORLD'1 goodby: my: 3nnn.n4after: 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]42123{1. 2} asByteArray >>> #[1 2]2(#(1 1 2 2 3 3) runningMax: 3) >>> {2 . 2 . 3 . 3}0 factorial >>> 1*Return collection printed as 'a, b and c' ~(DateAndTime fromString: '2019-08-17T13:33:00+02:00') asDate printString >>> (Date newDay: 17 month: 8 year: 2019) printString0 ^ n. n. ^ n 0[ :a | a := 10. a ], 4E([:x :y :z | x + y + z] valueWithPossibleArgs: #( 13 12 15)) >>> 40 210world60000224455655597777855BBBCBBBEBBAAAAAAAAGGFFFH44333333It is always a number or zero:112true | false >>> true8-bit integer expectedaafalse | true >>> true1(1.3@2.2) isFloatPoint >>> true1412N3ya:foo1The Rolling Stones16rFF(#(1 3 5 7 11 15 23) findBinaryIndex: [ :arg | 25 - arg ] ifNone: [ :a :b | 'over index: ', a printString ]) >>> 'over index: 7' pppp abcg0Evaluate twoArgBlock with corresponding elements from this collection and otherCollection. Missing elements from either will be passed as nil.1010M(#( (2 -3) #((4 -5)) #(-6)) flatCollect: [ :e | e abs ]) >>> #(2 3 #(4 5) 6)b1#[ ^ 1 ]a251xAnswer the last element of the receiver. Pay attention, last is not equivalent to stop in certain situations. See below.90.01 book-resultXXXX X n X1;10Point[1,/*comment*/2]10a10UserEAnswer an instance of me containing the same elements as aCollection.hWe are sorry but this method is unclear and will probably be removed. This method only returning false.21scaleBy: factorPoint "Answer a Point scaled by factor (an instance of Point)." "(200@200 scaleBy: 2@3) >>> (400@600)" ^(factorPoint x * x) @ (factorPoint y * y)671302/Tests-unix-64-Reflectivity-Tools-Tests-Test.xmlmozo6WReturns a symbol that is a valid selector by removing any space or forbidden characters071join: 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: aSequenceableCollectionSgrowAtFirst "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 := newLastIndex1 factorial >>> 11fromCharacter: 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 ]3160.021-1920This statement is true! #(#"A"##"B")21#(1 2 4) sumNumbers >>> 7100inde0Ab cd ef Ab cdEvaluate 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 #writeStream11100asSet "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: self00001142u Helloetrue asBit >>> 11'' ''h'' ' withoutQuoting >>> ' ''h'' '1 + 2 }0a(false or: [true]) >>> true1061100'Concatenate two Strings or Collections.02671Z(#(1 2 3 4) reject: [:each | each = 3 ] thenCollect: [:each | each + 10 ]) >>> #(11 12 14)334120twolastSpacePosition "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]]. ^ 0h21110400Answer the number of days between self and aDate3-3 even >>> falselongonest longone string4333326-1| a | [ ^ a ]. a := 1002 | tmp | tmp := 1 . ^ tmp . us3234yiReturn a new sequenceable collection which contains the same elements as self but its elements are sorted5(#(1 3 5 7 11 15 23) findBinaryIndex: [ :arg | 25 - arg ] ifNone: [ :a :b | 'between: ',{a. b} printString ]) >>> 'between: #(7 8)' /({'hello'. 'world'} includes: 'hello') >>> true65G(#(a b a d a) lastIndexOfAnyOf: #(a b) startingAt: 1 ifAbsent: 7) >>> 1This statement is false!2[ :super | super + 1 ]0atAll: 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]. ^ anObject1$_ isDashPunctuation >>> false24tAnswer a new collection like the receiver which contains all elements of the receiver at the indices of indexArray. Hello, World!3Class structural inspection - Class/Metaclass shiftreverseDo: 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)]X((Date year: 2018 month: 9 day: 28) subtractDays: 1) printString >>> '27 September 2018'3fghi 100000000002I(#('do' 'la' 'si' 'do' 'la') copyWithoutDuplicates) >>> #('la' 'do' 'si')14(#(x y z) atLast: 1) >>> #zReturns a copy of the receiver with each sequence of whitespace (separator) characters replaced by a single space character21.016611$' isSeparator >>> falseabcdefgh6ppp ^ 0 :B | 1 | T | t nn. t 1 sssss s b 0 ssssss n%Character end isControlOther >>> truexy'Refer to the comment in Collection|do:.2217raisedTo: 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"0Tests-unix-64-Refactoring-Changes-Tests-Test.xml5'(#(1 2 3 4 5) select: #even) >>> #(2 4)141?Note: Feel free to improve the code to detect the last element.30| a b40 """"""""" 3400112210 foo ctoJsonString: 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 ]4d2{10@20. 30@0} - {0@1. 2@3} >>> {(10@19). (28@ -3)}30510:00:00:00.001Jequals: 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 ] ]-3.72551 8253074413.14| | u310bar 0001020300>('Pharo is <1s>' expandMacrosWith: 'cool') >>> 'Pharo is cool'vweekdayIndex "Sunday=1, ... , Saturday=7" "(Date year: 2018 month: 9 day: 28) weekdayIndex >>> 6" ^ self dayOfWeek3201[ :a a20:00:00:00.001000001 X | t t t | t s t s t00023452 hellotheworld1Pharo is really super cool1(#(3 9 1) sorted: [:a :b | a >= b ]) >>> #(9 3 1) a->b->c->dc5110000000abc1127Take 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.c10000000000000000x13143(#(10 20) asSet copyWith: 30) >>> #(10 20 30) asSetw021e(#('abc' 'de' 'fghi') sorted: (#size collatedBy: [:e|e bitAnd: 1]) , #size) >>> #( 'de' 'fghi' 'abc')1.928411-(3 ifNil: [42] ifNotNil: [:o | o +3 ]) >>> 61aX({ 1->2. 3->4 } as: Dictionary) >>> (Dictionary new at: 1 put: 2; at: 3 put:4; yourself)1.52013(#(1 3 5 7 11 15 23) findBinary: [ :arg | 25 - arg ] ifNone: [ :a :b | 'between: ',{a. b} printString ]) >>> 'between: #(23 nil)'240.0classSide "Return the metaclass of the couple class/metaclass. Useful to avoid explicit test." "Point classSide >>> Point class" "Point class classSide >>> Point class" ^ self class103.0foo*baz(| x "a" "b" "c" | "d" x := 5 "e" "f" "g"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.1(#(1 2 3) isSortedBy: [:a :b | a <= b ]) >>> true3303010,Tests-unix-64-NewTools-Scopes-Tests-Test.xml112028(Color r: 0.5 g: 0.5 b: 1) green >>> 0.500488758553274748610 a: . :elmerH' this string will be trimmed ' trim >>> 'this string will be trimmed'19Treat 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 8 ** 2 >>> 640.5-25whlorde42221 >= 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) >= 00111 Point class isClassSide >>> truep(#(10 20) asOrderedCollection fillFrom: 'ABC' with: [:x|x asciiValue]) >>> #(10 20 65 66 67) asOrderedCollection0n ssss n;Return whether the receiver is one of these characters: _1510@Add newObject anInteger times to the receiver. Answer newObject.11 X Xsss X $Tests-unix-64-DrTests-Tests-Test.xml317e11M= 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) = 0421330120Tools ppp < <<<<<(1024 * 1024 * 1024) humanReadableSISizeString >>> '1.07 GB'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.79previous: 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: daysreduceRight: 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 last%Tests-unix-64-ProfStef-Tests-Test.xml33Same as ifTrue:ifFalse:. "unfinished(true or: [false]) >>> true-198named: aString "Returns the instance of myself having aString as name." "(KeyboardKey named: 'SHIFT_L') >>> (KeyboardKey value: 65505)" ^ KeyNameTable at: aString210.04110cbe3false. := false122"Point class instanceSide >>> PointcanySatisfy: 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 ] ]. ^ false3?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) ] ]. ^ newCollection-' test ' withSeparatorsCompacted >>> ' test 'K(Color fromString: '#FFCCAA')>>> (Color r: 1.0 g: 0.8 b: 0.667 alpha: 1.0) 16rDF3 foofoofoo /Tests-unix-64-Collections-Native-Tests-Test.xmlExtract 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.(#(w x y z) atPin: 4) >>> #zadd: 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) + 1963a::5+ 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: #+f22120vector0-912 hex >>> '16rC'1.0WWWWW-4do: 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)]](Character space isAlphaNumeric >>> false0016nnnnnnnn6000022444544499AABAAAECCCCDDAAF99888888777G4433333333HMissing opener for closer: }11100vector0130$1 isAlphaNumeric >>> true420 slowFactorial >>> 113[ :a bfindBinary: 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 ]) ]98abc26A man, a plan, a canal, panama1'AA' asHex >>> '16r4116r41'{ #foo : 1 , #bar : 2 }!EccentricityThreshhold recipricalwithUnixLineEndings "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 lf Hello, world!0:B :XX0*#(1 2 3 4) unzip second asArray >>> #(2 4)[ | a b00 11 n n n 1 0 0002s:20This statement is false!3)([:x :y | x + y] cull: 3 cull: 2) >>> 5 069BBB888877777777666666555555544444444DDD00000000000EEEa000Abcd112231100400556 . 513100231033+Tests-unix-64-System-Support-Tests-Test.xml2 0#foo:: asMutator >>> #'foo::'14az20021a13(false or: [3]) >>> 3 Not foundone #( #[ 0 1 2 )26 between: e10An 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.Rwith: 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. ^newArrayasLowercase "Answer a String made up from the receiver whose characters are all lowercase." "'PhaRo' asLowercase >>> 'pharo'" "'' asLowercase >>> ''" "' ' asLowercase >>> ' '" ^ self copy asString translateToLowercase2#( #( 0 1r2 3 )aeiou33 goodby: my: 39ATry to match aColorHex with known named colors, case insensitive.reciprocal "Answer a Point with coordinates that are the reciprocals of mine." "(100@200) reciprocal >>> ((1/100)@(1/200))" ^ x reciprocal @ y reciprocal3bpwnp(Array streamContents: [:stream | #(10 20 30 40) from: 2 to: 3 do: [:each | stream nextPut: each]]) >>> #(20 30),""" n """ ssss """ n """ s """ n """ sss """ao (Dictionary new at: #top at: #below1 put: 1; at: #top at: #below1 put: 2; at: #top at: #below1) >>> 21*320:a Assignment to read-only variable13 1E(1 milliSecond + 1 nanoSecond) printString >>> '0:00:00:00.001000001'1223averageIfEmpty: 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 average419(42 digitAt: 1 base: 10) >>> 204121023457>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]41923 [1 , 2 , 3]0011200300445001125emptyCheck "Signal CollectionIsEmpty if the collection is empty" "#(10 20) emptyCheck >>> #(10 20)" "([#() emptyCheck] on: CollectionIsEmpty do: [ 'oops' ]) >>> 'oops'" self isEmpty ifTrue: [self errorEmptyCollection]Five is {five}./#( aa:bb:cc #'aa:bb:cc' #cc #'==' #'==' #= #= )22d(String streamContents: [:s | 10 print: '10' on: s prefix: 'zz' length: 4 padded: true] ) >>> 'zz10'second "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: 2hello021>> 00vector4{Evaluate aBlock with each of aCollections's elements as the argument. Collect the resulting values into self. Answer self.[ :a :b 002-(Date today equals: Date yesterday) >>> false151Remove 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.18541Negative numbers can't be raised to float powers.2&(#(a b c d) allButFirst: 2) >>> #(c d)$(#(10) averageIfEmpty: [ 0 ]) >>> 10200Tests-unix-64-Kernel-Tests-WithCompiler-Test.xml1050XReturn the middle element, or as close as we can get. The collection must not be empty.1XsX60.04)Tests-unix-64-OpalCompiler-Tests-Test.xmlhello5028 September 20182!777 00888000999000AAA000BBB00 CCC2436216pharo12 ** 8 >>> 256154n sss1201% pppp AAA ^ aaa ssss aaa s n ; sss . cfoo2020130(false or: [true]) >>> trueNonevaluating disjunction. If the receiver is false, answer the value of the argument, alternativeBlock; otherwise answer true without evaluating the argument.+(self >> #traitSource) isExtension >>> trueSpecial case of exponent=1101210931 nanoSecond printString >>> '0:00:00:00.000000001'$} isControlOther >>> false0vector0#'hello''world0Not valid for negative integerss:1 + +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 ]E(OrderedCollection new add: 42; yourself) class >>> OrderedCollection2:<#(1 2 2 3 1 1 1) asBag sortedElements >>> {1->4. 2->2. 3->1}a := a. [ :a [ :a ]. a := a0000000 1 foo: ^2 0000000000003000102004Tests-unix-64-Tool-DependencyAnalyser-Tests-Test.xml2d3.Tests-unix-64-EmergencyDebugger-Tests-Test.xml10000e2300.0051CroundUpTo: 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 * aNumber%(-3.1479 truncateTo: 0.01) >>> -3.14Return a String based on concatenation of positiveNumberString with prefix then padded by 0 is zeroFlag is set for a minimum length.is & 913(OrderedCollection new growAtLast; capacity) >>> 203010Add 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 found0(#(1 3 5 7 11 15 23) findBinaryIndex: [ :arg | 12 - arg ] do: [ :found | found ] ifNone: [ :a :b | 'between: ', {a. b} printString ]) >>> 'between: #(5 6)'423256'a := a. [ :a | | a a | . := a ]. a := a20b(String streamContents: [:s | 10 timesRepeat: [s nextPutAll: 'foo']] limitedTo: 9) >>> 'foofoofoo'.'displayStringOn:foo' endsWithAColon >>> false05I(#(1 5 10) detectIndex: [ :each | each > 3 ] ifNone: ['Not found']) >>> 2false & true >>> false$('pharo' beginsWith: 'pha') >>> true9Answer the set theoretic intersection of two collections.foo*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]di(#(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: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: secondKey30(Return whether the receiver is a letter.2corner: 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: aPoint:return myself or a copy shortened by ellipsis to smallSize10({10@20. 30@0} collect: [:e | e x]) >>> #(10 30)11 Five is 5.214abclet6Answer true if the receiver is equivalent to aBoolean.z3,(#(10 20 30) includesAll: #(30 20)) >>> true729895R((OrderedCollection new add: 42; yourself) add: 43; yourself) asArray >>> #(42 43)208200c5{5@0. -3@8. 0@ -1.} sign >>> {(1@0). (-1@1). (0@ -1)}radiansToDegrees "The receiver is assumed to represent radians. Answer the conversion to degrees." "Float pi radiansToDegrees >>> 180.0" ^self asFloat radiansToDegrees1 Answer 1 since receiver is true.S#[ 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]41 max: 2 + 3 abs66d| TTTT | tttt n. ^ ttttd1min: 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: minValue'A' asByteArray >>> #[65].Results are not defined non-integer arguments.'Return a new IdentitySet based on self.1(1 hour + 2 minutes) printString >>> '0:01:02:00'2yAnswer the value of alternativeBlock. Execution does not actually reach here because the expression is compiled in-line.+('hello' sorted: [:a :b| a>=b]) >>> 'ollhe'27#[ ]1020320 :BBBB | bbbb s n 03((0@0 corner: 100@100) containsPoint: 0@0) >>> true01ppp < <<<<>> 11({1. 2} asBag = {1. 2. 2} asBag >>> falserunningAverage: 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: aSubsetSize2136086Returns the instance of myself having aString as name.2JisConnectorPunctuation "Return whether the receiver is one of these characters: _" "$_ isConnectorPunctuation >>> true" "$( isConnectorPunctuation >>> false" "$) isConnectorPunctuation >>> false" "$> isConnectorPunctuation >>> false" "$} isConnectorPunctuation >>> false" ^ self characterSet isConnectorPunctuation: self{1 . 2 . 4 . 5} median >>> 3105foo:30320zRound the decimal part of the receiver to be limited to the number of wished decimal. Only leave a fixed amount of decimal20:a foo4 slowFactorial >>> 2411!foo: x bar: y "d" "e" ^ x "f" "g"256h/('pharo' beginsWith: 'pharo-project') >>> false22P(String streamContents: [ :out | STON put: 1@2 onStream: out ]) >>> 'Point[1,2]'1P(#(1 2 3) flatCollect: [:each | { each. each+1 } ] as: Set) >>> #(1 2 3 4) asSetyGiven a collection returns in one pass two collections containing each odd and even elements in respective subcollections1abcW(false ifTrue: [ 'That is true!' ] ifFalse: [ 'That is false!' ]) >>> 'That is false!'?Answer whether the receiver begins with the given prefix stringc0-> 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: anObjectI('hello' collect: #asciiValue into: Set new) >>> #(104 101 108 111) asSetUndeclared variable0001020384030tcollect: 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]. ^ resultor even Collections1 pharo-project"fear is the little death that the.000000withIndexCollect: 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)]. ^ result260-220 000102220300;'234znak ::x43 ) :2' asValidSelector >>> #v234znak:x43:v2 <1p>: <2p>1000000000000000000hello00000111110335555544466 16r800000000{} asSet = Set new >>> true[1}2]' ' size >>> 2d100.012it'em vs 'it''em' 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 ]d- 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: #-0BEnumerate the receiver with all the keys (aka indices) and values.sortedElements "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; yourself-3025Z(String streamContents: [ :s | 10 printOn: s base: 10 length: 4 padded: true] ) >>> '0010'W(false ifFalse: [ 'That is false!' ] ifTrue: [ 'That is true!' ]) >>> 'That is false!'2xy1097groupedBy: 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: aSelectionBlock9' hello ' surroundedBySingleQuotes >>> ''' hello '''111Look at Collection>>reduce: for a related method.$Tests-unix-64-Renraku-Tests-Test.xml2018'2345' isAllDigits >>> truehelloa 10r89 abcd10,Answer the current capacity of the receiver.a XXXXXX3XXnX311'((100@200) closeTo: (100@200)) >>> true5wasArray "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: firstIndex1toUppercase: 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 asInteger+('abc' sameAs: 'aBc' asWideString) >>> true0G(#(1 + 3 - 5) reduceLeft: [ :a :op :b | a perform: op with: b ]) >>> -1501printShowingDecimalPlaces: 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]30K'A man, a plan, a canal, panama' asCamelCase >>> 'AMan,APlan,ACanal,Panama'a1cc3.1(0 to: 10 by: 2) last >>> 10aXX XX n XX# n X1 max: 2; "e"min: 3b10Evaluate aBlock with each of the receiver's elements as the argument. Collect the resulting values into aCollection. Answer aCollection.1101 e42 fred the bear5sReturn the index of my first element for which aBlock evaluates as true. If no matching element is found, return 0fghi1000 Pharo is <1p>2Abc150.2Numberabc$(nil ifNotNil: [:o | o +3 ]) >>> nil 111110000e1y_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]]. ^ 02001010disByteString "Answer whether the receiver is a ByteString" "'abc' isByteString >>> true" ^ true1882G(#('abc' 'de' 'fghi') sorted: #size ascending) >>> #('de' 'abc' 'fghi')22| a b | 12Hello.#at:putNext: asTestSelector >>> #testAtPutNext+Tests-unix-64-System-History-Tests-Test.xml2asDigitsToPower: 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: aBlock2asBag "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: self122220(Character euro isCurrencySymbol >>> trueE((Date year: 2018 month: 9 day: 28) subtractDate: '2018-09-27') >>> 1foo: arg ^ arg + 15abcseperate2removeAll "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]100aBc Xuuuuuu n uuu n-41coola := a. [ :a | a ]. a := a | | . :a | alAnswer 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.13y!'x isSymbol' findSelector >>> nil42[{"foo":1},{"bar":2}]5 factorial >>> 120202rReturn the index of my last element for which aBlock evaluates as true. If no matching element is found, return 09$0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ3325102410c31111 goodby: my: 1.234 09kIf the receiver is not nil, pass it as argument to the ifNotNilBlock block. else execute the nilBlock blocks321-4%[ "a""b""g" | x "c" "d" y "e" | "f" ]00 00 n n n 0 071$(#(a b c d) allButFirst: 3) >>> #(d)16rA676666666865555O(#(1 2 3) asOrderedCollection collect: [ :v | v * 10 ]) asArray >>> #(10 20 30)5-9200410vector0pairsDo: 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) ]a*((30/3)@(2/2)) asFloatPoint >>> (10.0@1.0)3darkerUnused variable (10 'hello'))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.$' isEnclosingMark >>> false#[ 1 2 ]57((0@0 corner: 100@100) containsPoint: 100@50) >>> falseseconds "2 seconds printString >>> '0:00:00:02'" "(1 minute + 2 seconds) printString >>> '0:00:01:02'" ^ Duration seconds: self01,Tests-unix-64-NewTools-Finder-Tests-Test.xmlEReturn the HSL saturation of this color, a value between 0.0 and 1.0.lo((#(x y z) atLast: 1 ifAbsent: #a) >>> #z10me203.147900102dAssuming the receiver contains GZIP compressed data, return a ByteArray with the decompressed data.17ifTrue: 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 valuebetween: #(nil 1)3(#(1 3 5 7 11 15 23) findBinary: [ :arg | 11 - arg ] do: [ :found | found ] ifNone: [ :a :b | 'between: ', {a. b} printString ]) >>> 112#Tests-unix-64-Rubric-Tests-Test.xml30.5104ifTrue: 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" ^nil3-44Evaluate 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. That is true!.Tests-unix-64-Roassal-Inspector-Tests-Test.xml11'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. ^scanner0.0 X ollhe19;Message sending and code execution - Runtime and Evaluation000001 ab ab ac deReturn 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.22250::3-6OAnswer a Point whose x and y are the absolute values of the receiver's x and y.31abc30newFrom: 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]. ^ newDictionary1031100rcull: 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]213(111111111111111111000000000222222222222210Since 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.3fromStream: 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) nexthFormat the date in ISO 8601 standard like '2002-10-22' The result is of fixed size 10 characters long..string1asSet "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 asSet1-1"A" - 1abs-1"B" - 1max:-1"C" | T | X tfalse ==> [true] >>> true2, awith: 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))]. ^ result11(Answer the first element of the receiveraaRo10000rx0010022050521 This should not happene$0 isDigit >>> true0Tests-unix-64-System-Finalization-Tests-Test.xmlZat: 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]'1111' asFourCode >>> 825307441"Point class instanceSide >>> Point289103 factorial >>> 6oops6foo ^ [ | a | a := 1. [ :a | a ] value: 10 + a ] value'1 true false nil self super thisContext(1@2) isFloatPoint >>> falseisSortedBy: 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]. ^ true31710^Xn#'3110097002222311a1f, o, obar:false asBit >>> 011(1 to: 10 by: 2) last >>> 91d0(Color h: 0 s: 1 v: 1) >>> (Color r: 1 g: 0 b:0)'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: value43e002220 Pharo is cool21116r41not "Negation. Answer true if the receiver is false, answer false if the receiver is true." "true not >>> false" "false not >>> true" self subclassResponsibility1(Array streamContents: [:stream | #(1 2 3 4) select: [:each | each > 2 ] thenDo: [:each | stream nextPut: each + 10]]) >>> #(13 14)new: 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 ]"Point class instanceSide >>> Point7"'3.1415' initialIntegerOrNil >>> 3h(#(2 2 3 3 4 1 2 3 3 5) splitOn: [:each | each > 3])>>> #(#(2 2 3 3) #(1 2 3 3) #()) asOrderedCollectionJRunning min. See the comment of self >> #running:of: for more information.zRound the decimal part of the receiver to be limited to the number of wished decimal. Only leave a fixed amount of decimalXXXXXXPReturn true whether the receiver is a class (in a couple class/metaclass sense).942 u nn. ^ uppp X X1max: 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)1915(10 to:1) size >>> 0DNonevaluating disjunction -- answer true since the receiver is true.** exponent " A shortcut method for raisedTo: " "2 ** 8 >>> 256" "8 ** 2 >>> 64" "2 ** (1/12) >>> 1.0594630943592953" "2 ** -1 >>> (1/2)" ^ self raisedTo: exponent13Color red hue >>> 0.020-21bat: 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 value23#(-10 printStringBase: 10) >>> '-10'02Answer the set theoretic union of two collections.01'1abc' startsWithDigit >>> trueK(#(a b c d e) indexOfSubCollection: #(c d) startingAt: 4 ifAbsent: 7) >>> 72019-08-17T13:33:00+02:00C('aeiou' findFirstInByteString: 'hello world' startingAt: 1) >>> 2.30(( 1 > 2) eqv: false) >>> true/foo "a" < "b" bar: "c" 1 "d" z: "e" 2 "f" > "g"11111a1H#(2 4 6 8) , #(who do we appreciate) >>> #(2 4 6 8 who do we appreciate)cOptimized implementationZEvaluate twoArgBlock with corresponding elements from this collection and otherCollection.16ppp ^ 0 | T | t n. 1 :B | b 1 ssssss nn s t 0 sssssN|s| (#(1 2) detect: [ :each | each even ] ifFound: [ :e | s:=e*10 ]). s >>> 2010, 15, 20, 25 salkjsdlkgfeed#(-3.1479 roundUpTo: 0.01) >>> -3.14^Append the elements of the argument, aSequenceableCollection, separating them by the receiver.1396 factorial >>> 72010108copyWithout: 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]2200109O('<1p>: <2p>' expandMacrosWith: 'Number' with: 5 with: nil) >>> '''Number'': 5'221abs "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]roundDownTo: 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 * aNumber0012303U(ByteArray with: 97 with: 0 with: 0 with: 0) asString ~= 'a000' asWideString >>> true3[Store the elements of valueArray into the slots of this collection selected by indexArray.4 XXXXXXXXXXXX115IMPLEMENTATION 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)whateverb4e10#Tests-unix-64-ReleaseTests-Test.xml a: 0c224HasCommaString "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: ', ' ]0T(#(10 20) asSet fillFrom: 'ABC' with: [:x|x asciiValue]) >>> #(10 20 65 66 67) asSet1.2nnnnXnn {1 . 2 . 5 . 5} median >>> (7/2)0fNReturn the class of the couple class/metaclass. Useful to avoid explicit test.Point classSide >>> Point class0vector0 $ 12r89ab cd?Evaluating conjunction -- answer false since receiver is false.strings2131uu321-1allButFirst "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: 1021b23211yh: 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.01asAccessor "Return a accessor (getter) message from a setter message. Return self if it is already a getter." "#name asAccessor >>> #name" "#name: asAccessor >>> #name" (((self count: [ :char | char = $: ]) > 1) or: [ self isEmpty or: [ self isBinary ]]) ifTrue: [ self error: 'This symbol cannot be converted to an accessor' ]. self endsWithAColon ifFalse:[ ^ self ]. ^ (self withoutSuffix: ':') asSymbol520'98abc' numericSuffix >>> 0u XXXXX3.150201''80.01 [ :a || a b ] #[ 1 1.0 2 ]U(true ifFalse: [ 'That is false!' ] ifTrue: [ 'That is true!' ]) >>> 'That is true!'charactersExactlyMatching: 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]]. ^ countReturn 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.r(#(1 1 1 10 10 10 100 100 100) groupsOf: 3 atATimeCollect: [ :x | x ]) >>> #(#(1 1 1) #(10 10 10) #(100 100 100))LAnswer whether any element of aCollection is one of the receiver's elements.1000000000000000)See `unescapeCharacter:` for the opposite1201-('pharo' endsWith: 'project-pharo') >>> false141@foo:560&(OrderedCollection new add: 42) >>> 42&#(0 1 2) + #(10 20 30) >>> #(10 21 32)2553%Answer 0 since the receiver is false.?({#a. #b. #a. #d. #a} replaceAll: #a with: #e) >>> #(e b e d e)growAtLast "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 := newArraypcloseTo: 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 ]242575?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.0vector00.0972onewhatever43`('test te string' copyReplaceAll: 'te' with: 'longone' asTokens: true) >>> 'test longone string'313"[ :thisContext | thisContext + 1 ]8/foo/bar2we2022RCount the number of characters in a substring that matches up in self and aString.'abc98' numericSuffix >>> 981%Tests-unix-64-Graphics-Tests-Test.xml0I#(7 42 7 42 9) asOrderedCollection removeDuplicates asArray >>> #(7 42 9)5index out of rangePoint classSide >>> Point class112findString: 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: 113002Add the argument, newObject, as an element of the receiver. Put it in the sequence just preceding oldObject. Answer newObject.(^1)1pharo + foo: - 330 X (#() sumNumbers: #abs) >>> 0Do nothing on purpose<(1 second + 2 milliSeconds) printString >>> '0:00:00:01.002'findBinaryIndex: 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 ]2&ProtoObject class superclass >>> Class1 hello worldwithIndexDo: 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)]1Accumulate a running value associated with evaluating the argument, binaryBlock, with the current value of the argument, thisValue, and the receiver as block arguments.2D('pharo' beginsWith: 'pharo-project' caseSensitive: false) >>> false ('foo*' match: 'bozo') >>> false4.0('abcdf' indexOf: $a) >>> 127307Remove 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.1 ( 1 }. 2 )tFold the result of the receiver from right to left into aBlock. The argument aBlock must take two or more arguments.9Answer whether the receiver is an unary message selector.UwithoutQuoting "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 ]3&(AsciiCharset toLowercase: $a) >>> $a.211. pppp AAA ^ 0 1 2 3 aaa 3 2 s 2 3 n 3 2 1 0 . "(true or: [Error signal]) >>> true2132(#(11 22 33) asOrderedCollection atWrap: 4) >>> 11action0hll239%Point class classSide >>> Point class3isCurrencySymbol "Return whether the receiver is one of these characters: $ and euro" "$$ isCurrencySymbol >>> true" "Character euro isCurrencySymbol >>> true" "$} isControlOther >>> false" ^ self characterSet isCurrencySymbol: selfa2~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 ] ]$('hello' includesAll: 'ho') >>> true1eSeptember 2018displayStringOn:,444 10555000000AAA076BBB666HHH6ECIIICCCC JJJKNonevaluating conjunction -- answer with false since the receiver is false.salkjsdlkgfeesd&2 seconds printString >>> '0:00:00:02'h7u(Array streamContents: [:stream | #(1 2 3) reverseWith: #(4 5 6) do: [:a :b | stream nextPut: (a + b)]]) >>> #(9 7 5)100411abc43^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.10101010FEvaluating disjunction (OR) -- answer true since the receiver is true.xc8((OrderedCollection new add: 34; yourself) at: 1) >>> 340"a" #( "b" 1 "c" two "d" ( "e" 3 "f" ) "g" ) "h"zmax "Answer a number that is the maximum of the x and y of the receiver." "(100@200) max >>> 200" ^ self x max: self y`({10. 20} asOrderedCollection addIfNotPresent: 20; yourself) >>> ({10. 20.} asOrderedCollection)W('a000' asWideString ~= (ByteArray with: 97 with: 0 with: 0 with: 0) asString) >>> true\(#(1 2 3 3 4 1 2 3 3 5 6) splitOn: #(3 3)) >>> #(#(1 2) #(4 1 2) #(5 6)) asOrderedCollection28('salkjsdlkgfeeal' findString: 'al' startingAt: 1) >>> 201#'abc' = 'abc' asWideString >>> trueminute "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 \\ 60< 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]foo < bar: { 1 } > XX n # n30DDD 000EEE090FFF0AAA0GGG0BBBBBBCBBBBBB0JJJ00 KKKebThis statement is true!127.5isClassSide "Return true whether the receiver is a metaclass (in a couple class/metaclass sense)." "Point isClassSide >>> false" "Point class isClassSide >>> true" ^self == self classSideisSymbolX uXXXX011200one11${ tokenish >>> false((1 == 1) eqv: true) >>> true3010439 \\ -4 >>> -3YCreate a dictionary from the keys and values arguments which should have the same length.o1/('hello' surroundedBy: 'abd') >>> 'abdhelloabd'yc113b2.3028!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) ]0vector0'hello' anyOne >>> $h2331010(true and: [ false ]) >>> false1#(a b c) asOrderedCollection asArray >>> #(a b c)5 0001002000400 [ | | . 122(1 to:10) size >>> 10 2| 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) foo*baz*zort230(1 sign: 2) ; bar"also unfinished""EMight be compiled inline for speed, see RBMessageNode>>#isInlineIfNilsubtractDays: dayCount "((Date year: 2018 month: 9 day: 28) subtractDays: 1) printString >>> '27 September 2018'" ^ (self asDateAndTime - (dayCount days)) asDate3a := a. [ :a a ]. a := a: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: $'333 (Color h: 0 s: 1 l: 0.5) >>> (Color r: 1 g: 0 b:0)1000365Special case for fraction power(1]2)xaReturn 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.b12011 -9//4 >>> -3-3xbefore: 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]d#(3 5 7 7) average >>> (11/2) * ( [ :aaa : bbb | | ccc ddd | aaa . ] ) . classSide "Return the metaclass of the couple class/metaclass. Useful to avoid explicit test." "Point classSide >>> Point class" "Point class classSide >>> Point class" ^ self Point[1,2]3111120044667685999A4400DBBBBC23.00 That is true!hello4Tests-unix-64-SUnit-Support-UITesting-Tests-Test.xml20i12003asNewArray "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 asArray21>> 40U(#(1 2 3) collect: [:each | each + 10 ] thenReject: [:each | each even]) >>> #(11 13)Calculate the average of a collection, return a CollectionIsEmpty exception if the collection is empty. Look averageIfEmpty: aBlock1 + 2 )310;(#(1 2 3) reduceRight: [ :a :b | a - b ]) >>> (1 - (2 - 3))20:00:00:00.0010000020660<(1000 * 1000 * 1000) humanReadableSISizeString >>> '1.00 GB'X X 03'abc' isByteString >>> true10&('hello' includesAll: 'hop') >>> false40+Character arrowDown isControlOther >>> true[ ^ 1 ]. 2. ^ 310allButLast "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: 12167Foo:Answer whether anObject is one of the receiver's elements.XX sss8Tests-unix-64-NewTools-Spotter-Processors-Tests-Test.xml('Hello' includes: $l) >>> true511findLast: 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;Tests-unix-64-SystemCommands-PackageCommands-Tests-Test.xml033wRunning average (a.k.a. moving average, rolling average). See the comment of self >> #running:of: for more information.zzzz-234.567| a ||a book-resulte'''''23.4567b 1111111003Class structural inspection - Class/Metaclass shiftWreturns the difference between the max and min element, their positions notwithstandingAnswer 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(#(1 3 5 7 11 15 23) findBinaryIndex: [ :arg | 25 - arg ] do: [ :found | found ] ifNone: [ :a :b | 'between: ',{a. b} printString ]) >>> 'between: #(7 8)' ^(#(1 2 3 4 4 1 2 3 5 6 ) groupByRuns: [ :each | each = 4]) >>> #(#(1 2 3) #(4 4) #(1 2 3 5 6))3(#(1 2) anySatisfy: [ :each | each even ]) >>> trueover hello22({3@5. 7@ -4} averageIfEmpty: [0@0]) >>> (5@(1/2))3-12C('aeiou' findFirstInByteString: 'hello world' startingAt: 9) >>> 0.+Tests-unix-64-System-Hashing-Tests-Test.xml1000 and 1(1)(2)-3.15e1;#(1 2 3) asOrderedCollection makeRoomAtFirst capacity >>> 6'|' or parameter expectedd0 16r800000002$Character space isSeparator >>> true21113 00001111109Answers a Dictionary based on collection of Associations.0E('XXaXbXXcXXXdXX' escapeCharacter: $X) >>> 'XXXXaXXbXXXXcXXXXXXdXXXX'-10c0This method adds such decision to concrete kind of local scope which allows to use scopes to restrict visibility of class hierarchy23pppp A pp A pp A 0 :B :B :B | | T t T | t s t s t 01 . #( foo bar )"(10 printStringBase: 2) >>> '1010'(Tests-unix-64-DebugPoints-Tests-Test.xml000022222226676655523da({'1'. '2'. '3'. '4'} atRandom: (Random seed: -42) weighting: [ :each | each asInteger ]) >>> '4']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 subclassResponsibility121223311231100000001 [ :a ::b | ]289400010401 100000000-4110asCamelCase "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]]16!(12 beBetween: 12 and: 20) >>> 12161ninth "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: 92>(1024 * 1024 * 1024) humanReadableByteSizeString >>> '1.00 GB'/| thisContext | thisContext := 1. ^ thisContext"result will cover the range [-1,1] a, b, c and dabcd0vector0-3400 ||Xu u16 0 odd >>> false1four<(Date year: 2018 month: 9 day: 28) yyyymmdd >>> '2018-09-28'H(#('abc' 'de' 'fghi') sorted: #size descending) >>> #('fghi' 'abc' 'de')fghi25320vector042104330 ^ n n ^ n 03n s n30 printStringHex >>> '1E'This statement is true!RExecute the receiver with the correct number of arguments taken from the argument.hello"""d3. foo: arg ^ ( ( ( ( arg ) ) + ( ( 1 ) ) ) ) . decimalDigitLength "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]]]]]] is number 42380101pEvaluating conjunction. Evaluate the argument. Then answer true if both the receiver and the argument are true.51000003312isDecimalDigit "Return whether the receiver is a digit." "$1 isDecimalDigit >>> true" "$0 isDecimalDigit >>> true" ^ self characterSet isDecimalDigit: self2foobaz6201JReturn the class of STON associations, Association, a system wide constant11.3'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]]10108401(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))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 asSortFunction400100.51,('s' charactersExactlyMatching: 'abc') >>> 0(false xor: [true]) >>> true1&[ :x "a""b""c""d" :y "e""f" | "g""h" ]42#(1 2 3 0) isSorted >>> false200+Convert an OrderedCollection into an Array.:Answer whether anObject is one of the receiver's elements. 12r89abcda-10ppp < <<<< n>> #(1 3) " ^ self selectEvery: [ :i | (i+1 \\ 2) = 0 ]4>> 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' 1 hello: foo: hello world!1s:1 e:5 s:7 e:8 s:10 e:13 =([{} median] on: CollectionIsEmpty do: [ 'oops' ]) >>> 'oops'(1 sign: 2);bar#('''' unescapeCharacter: $') >>> ''0Remove each element of aCollection from the receiver. If successful for each, answer aCollection. Otherwise create an error notification. ArrayedCollections cannot respond to this message.1 ||| adef hello worldObject := Object#(3.1479 roundDownTo: 0.01) >>> 3.14 0000000002fold: 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: binaryBlock41 000102330400/(2.567 printShowingDecimalPlaces: 2) >>> '2.57'601((4 to: 50 by: 2) anySatisfy: #isPrime) >>> falseXXaXbXXcXXXdXXppp < <<<>> 2$] isClosePunctuation >>> true108nnf-010piecesCutWhere: 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)1d2888 000999060AAA070BBB00 CCC5Tests-unix-64-Collections-Sequenceable-Tests-Test.xml2-(23 printShowingDecimalPlaces: 2) >>> '23.00'30IIf 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.1y19({10. 20} asOrderedCollection addIfNotPresent: 30) >>> 3011J(true ifTrue: [ 'This statement is true!' ]) >>> 'This statement is true!'2334 2 odd >>> false*({1 .2 .3 .4} at: 2 incrementBy: 2) >>> 43d130%Tests-unix-64-Geometry-Tests-Test.xml2$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:"(100 beBetween: 12 and: 20) >>> 202307$( isClosePunctuation >>> false }2yThis 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.e1011107"('pharo' endsWith: 'aro') >>> true2cfoozo'((100@200) max: (30@400)) >>> (100@400)add: 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: newObject31114 '' expandMacros >>> String crcopyWith: 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; yourself*baz*5up1 '>' expected15CasBit "Answer 1 since receiver is true." "true asBit >>> 1" ^ 11031005Split 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.100vector0 Point[1,2]Answer the y coordinate.f('test te string' copyReplaceAll: 'te' with: 'longone' asTokens: false) >>> 'longonest longone string'X That is false!pharoFileLocator temp / ('{1}.ston' format: { Time millisecondClockValue }) in: [ :file | file writeStreamDo: [ :out | STON put: 1@2 onStream: out ]. file readStreamDo: [ :in | STON fromStream: in ] ]0nXn0!DDD 00EEE0548884449994A0CCC00 FFFsAnswer a Point that is the receiver's x and y ceiling. Answer the receiver if its coordinates are already integral.40000000000000000Perform 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.l(#(1 3 5 7 11 15 23) findBinary: [ :arg | 24 - arg ] ifNone: [:a :b | 'over ', a printString]) >>> 'over 23'2332{ 1. 2 }TThis 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 9 % 4 >>> 1ABC013""" 00 """ n """ n """ 0 """b0011##########0a || unzipped "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) upToEnda0-10min: 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)203210049({10. 20} asSet add: 30; yourself) >>> {10. 20. 30} asSet4.0oops2pharo1711001097314That is false!411Uintersection: 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) asArrayIMPLEMENTATION 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 correct41zRound the decimal part of the receiver to be limited to the number of wished decimal. Only leave a fixed amount of decimalaprintOn: 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]]0ze1includesSubstring: substring "Returns whether the receiver contains the argument." "('abcdefgh' includesSubstring: 'de') >>> true" ^ substring isEmpty or: [ (self findString: substring startingAt: 1) > 0 ]dPerform 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.pharoca := a. [ :a | [ :a | a := a145366_Return the integer present in the receiver, or nil. In case of float, returns the integer part.10.121| aBoolean "Evaluating disjunction (OR) -- answer true since the receiver is true." "true | true >>> true" "true | false >>> true" ^selfphuro3shuffleBy: 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) ]1@(#(10 20 30) inject: 0 into: [ :sum :each | sum + each ]) >>> 60@52@(1000 * 1000 * 1000) humanReadableByteSizeString >>> '953.67 MB'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]]]. ^ aString2100205Dconvert myself to an Integer representing 1 for true and 0 for falseAAnswer whether the receiver's final character represents a digit.197109([#() sum] on: CollectionIsEmpty do: ['oops']) >>> 'oops'2 reciprocal >>> (1/2)( 1. 2 )2asa5.(10 to: 1 by: -1) asOpenInterval >>> (9 to: 2)strings-6/ """ n """ ssss """ n """ ; """ ssss """ n """ (#() select: [true]) >>> #()65thisContext := thisContext42az!Return a positive nonzero extent.2 [ :a | | a ]1. 2EidentityIncludes: 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]]. ^false1)(1.2 arcTan: 1.5) >>> 0.67474094222355260vector0 foo < + > 2S(#(1 + 3 - 5) reduceRight: [ :a :op :b | a perform: op with: b ]) >>> (1 + (3 - 5))0124(#(1 2) allSatisfy: [ :each | each even ]) >>> false13yabc100.01100042@({1@3. 2@1. 3@6. 4@8} detect: [ :each | each x even ]) >>> (2@1)X 1009foo: 1*kkkk sssssss 0 ^ n 0 ssssssss 0 ^ n 0. ^ npppp X100[ | ]2abc'Color red rgbTriplet >>> #(1.0 0.0 0.0)2('234Whoopie' initialIntegerOrNil >>> 234345 22221333444451s1s1X(String streamContents: [:s| {10. 'hello'} printElementsOn: s]) >>> '(10 ''hello'')' #( #'^' 1 )3D('LOL' detect: #isLowercase ifFound: #uppercase ifNone: [$X]) >>> $X#. 1 r04-3501 a1a1fooABC2000011111122233221020e5ababfalse ==> [false] >>> true11?Answer whether the receiver is above and to the left of aPoint.(1 to: 10) copyEmpty >>> #()1-612Faster 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 October 201812.('heLlo wOrLd' select: #isUppercase) >>> 'LOL'bX#(a b c d e) last >>> #e2If 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.u u. X X X. X X1131.01B({#x .#y .#z} atAll: #(1 3) putAll: #(a e); yourself) >>> #(a y e)Special case of self = 0pReturn a String representation of this number in base b with a minimum length and padded by 0 if zeroFlag is set4d0{3} median >>> 3'Return collection printed as 'a, b, c' 101231542Tests-unix-64-Collections-Unordered-Tests-Test.xml| T |Xt20'a''b'1421.00 GB)Color black rgbTriplet >>> #(0.0 0.0 0.0)000001111110335555554446XXXu222310, 'hello', $x(1923 roundDownTo: 10) >>> 1920threec30(100 @ -200) abs >>> (100@200):(#(2 3 4 5 5 6 2) copyWithoutAll: (4 to: 10)) >>> #(2 3 2)10@foo:40302 between: eis| 11a113315 '}' expected4*Return the maximum value of the collection042102461c0 204'2N' initialIntegerOrNil >>> 23third(#(w x y z) atPin: 8) >>> #z19231a22222 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.151wat: 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 m(#(10 20 10 10) asOrderedCollection removeAllFoundIn: #(10 20 30); yourself) >>> #(10 10) asOrderedCollection$Here123should%Be6TheName6OfTheMethod0vector0 XX XX n n n X<(RPackage named: 'MockPackage-tests') isTestPackage >>> true16rA82404eggggggg sssssss '''''''''''''1003311>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: Dictionary00222a"{3@5. 7@ -4} average >>> (5@(1/2))#FFCCAA ###'hello''1(false xor: [true]) >>> true#(a b c d) middle >>> #c1u XXXXzmin "Answer a number that is the minimum of the x and y of the receiver." "(100@200) min >>> 100" ^ self x min: self y10kIf the receiver is not nil, pass it as argument to the ifNotNilBlock block. else execute the nilBlock block7131 (#(1 -4 -10 1) sum: #abs) >>> 1670a:+Tests-unix-64-System-Caching-Tests-Test.xml#[1]#[2]!CCC 00DDD040777000888090BBB00 EEE42<('*' join: #('WWWWW' 'W EW' 'zzzz')) >>> 'WWWWW*W EW*zzzz' "nothing" bB#(1 2 3) asOrderedCollection removeDuplicates asArray >>> #(1 2 3)def12041Answer the index of the first occurrence of anElement after start within the receiver. If the receiver does not contain anElement, answer 0.@({10. 20} asOrderedCollection add: 30 withOccurrences: 2) >>> 30, 78002232414Wede=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]]0 Not found 100000000000+Answer whether the receiver is a ByteStringtest te string11;foo1*-1 + 1--1 + 1- -1234foo315(nil)93r12345foo12In strings you can escape { by prefixing it with \23(Color colorFrom: #(1.0 1.0 1.0)) >>> (Color white)capitalized "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. ^ cap211'n uuuu uuuuu uuu uuuu uuuuu uuuuuuuuuuu161atLast: 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: obj2051000b11- 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: #-0342,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: $' 20 X20YCreate a dictionary from the keys and values arguments which should have the same length.XXsX442100vector0n X10.4995112414467253*true ifTrue: [ ^ 1 ] ifFalse: [ ^ 2 ]. ^ 3401indexOf: 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: exceptionBlock0:00:00:00.00000000115000020000112111533334116699AABAAAECCCCDDAAF99888888777Gdeabc01.0EisAllSeparators "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 ] ]. ^truec61kCreate a scanner stream of program tokens on the argument. Users can then use stream API to consume tokens.cbe25ae200001K('Five is {five}.' format: (Dictionary with: #five -> 5)) >>> 'Five is 5.'103db@{'one' -> 1. 'two' ->2} asOrderedDictionary keys first >>> 'one'30%#[1 2] asByteArray == #[1 2] >>> true1598200000-3addAll: aCollection "Add each element of aCollection at my end. Answer aCollection." "(OrderedCollection new addAll: #(41 42); yourself) asArray >>> #(41 42)" ^ self addAllLast: aCollections:#(()) isNotEmpty >>> true&(#() intersection: #(1 2 3 4)) >>> #()1e1 e1abc22eEvaluate the elementBlock for all elements in the receiver, and evaluate the separatorBlock between.tunescapeCharacter: 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 contentsisTestPackage "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 ]151224291102a20011332653FileLocator temp / ('{1}.ston' format: { Time millisecondClockValue }) in: [ :file | file writeStreamDo: [ :out | STON put: 1@2 onStream: out ]. file readStreamDo: [ :in | STON fromStream: in ] ]1^Append the elements of the argument, aSequenceableCollection, separating them by the receiver.2d17'('ab ab ac de' howManyMatch: 'a') >>> 12 That is true!true | false >>> true21003one'hello' sorted >>> 'ehllo'hello.#mySelector asTestSelector >>> #testMySelector0 :B | XXXXXXX. b 019 (50 to: 10 by: -5) anyOne >>> 5018351r: 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; yourself502Evaluate aBlock with the elements of the receiver. If aBlock returns false for any element return false. Otherwise return true.320ab cd ab ef ab2gReturns whether the receiver is composed entirely of separators i.e., a space, tab, lf, cr, and newPagee1'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: 1101121542030s: 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| | a2'''h''' withoutQuoting >>> 'h' Not found10Warning signal: 'false error'9Answers a Dictionary based on collection of Associations.Color red hslSaturation >>> 1.00g2r0foo "a" < "b" bar "c" > "d" < "e" baz "f" > "g" T(#(1 5 10) detectIndex: [ :each | each > 15 ] ifNone: ['Not found']) >>> 'Not found'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." "(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 abd hello abd 400F(1 milliSecond + 2 nanoSeconds) printString >>> '0:00:00:00.001000002'| TT | tt n. tt s n4c2xb3215400a1 13/2 milliSeconds printString >>> '0:00:00:00.002'allSentMessagesMPairwise integer quotient of two sequenceable collections of the same length.1Cround: 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)nsXn200011110004444333500n sss;XdyAnswer the number of digits printed out in base 10. Note that this only works for positive SmallIntegers up to 64-bits.7HExecute the receiver with one or two arguments depending on the receiver11040"" nX/ppp """ < """ <<<< """ n """ << """ n """ < """d11VNegation. Answer true if the receiver is false, answer false if the receiver is true.4Negation -- answer true since the receiver is false.42n u n1d' ' isEmpty >>> false'FFF 00GGG044999464AAA4B0DDD000EEE00 HHH (10 printStringBase: 16) >>> 'A'2r111030010320mapClass "Return the class of STON maps, Dictionary, a system wide constant" "(STON fromString: '{ #foo : 1 , #bar : 2 }') class >>> STON mapClass" ^ Dictionary1#(# ## #ab #10 #. 10)616& aBoolean "Evaluating conjunction -- answer aBoolean since receiver is true." "true & true >>> true" "true & false >>> false" ^aBoolean03-d(Array streamContents: [ :out | out nextPut: 1; nextPutAll: #(2 3 4); nextPut: 5 ]) >>> #(1 2 3 4 5)*0011"""2"""3333"""1111"""111"""1#"""#32100310200((FileSystem workingDirectory / 'book-result' / 'W01-Welcome') relativeToReference: FileSystem workingDirectory) pathString >>> 'book-result/W01-Welcome'10$Do the special case of integer power001122234456667788889901x3100vector0 fghi113335yAnswer my value constrained to the interval [minValue ; maxValue] I take care of the situation where minValue > maxValue1.25A(#(#do #la #si #do #la) copyWithoutDuplicates) >>> #(#la #do #si)-4/| TTTTTTTTTTT | ttttttttttt n. ^ ttttttttttt?((1 to: 10) collect: [:i| i gcd: 6]) >>> #(1 2 3 2 1 6 1 2 3 2)655055a := | T | ^ t$'3.123' isAllAlphaNumerics >>> falsed1328 October 2018211^Answer whether the receiver is a valid token-character -- letter, digit, underscore, or colon.b1'#foo:bar: keywords >>> #('foo:' 'bar:')304!000000111000000222044666555777330 [ :a | 1 ]01{ 65digitAt: 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) \\ base11109((1 to: 10 by: 2) sorted: [:a :b| a>=b]) >>> #(9 7 5 3 1)1a406Return number that represents digit at given position.IasBit "Answer 0 since the receiver is false." "false asBit >>> 0" ^ 0two(Character delete isControlOther >>> true813311112004455555766A88889U000022333443355336633773388339933AA33BB33CC33DDD33EEE33FFF33GGG33HHH33III33JJJ333LL33%Tests-unix-64-Coverage-Tests-Test.xml 555 0066601 777 10.0/foo/gloops.taz[:a 1]128 August 20181151.020({3. 9. 1} sort: [:a :b | a >= b ]) >>> #(9 3 1)421(10.12345 round: 2) >>> 10.12 10vector02aselect: 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) ] ]. ^ selectedItems52bifNil: 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: selfbetween: #(7 8)000000000000000000 2018-09-28>Nonevaluating disjunction -- answer value of alternativeBlock.2213Replace all occurrences of oldObject with newObject Hello, World!allButLast: 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 - nd11Tests-unix-64-Refactoring-DataForTesting-Test.xmlc 'hello''world1010:Helper to tranform any `do:`-like method into a generator.', 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: otherCollection#(1 -2 -4 0) abs >>> #(1 2 4 0)0028Message pattern expectedColor red hsvSaturation >>> 1.02018744.025inject: 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]. ^nextValue74#$( isConnectorPunctuation >>> false02222222210203011indexOfAnyOf: 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 value1aa4 factorial >>> 24$(#() anySatisfy: [ true ]) >>> false23('abcdefgh' includesSubstring: 'de' at: 4) >>> true0ElvisXanyOne "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 first6(#(1 2 3 4 5) reduce: [ :a :b :c | a + b + c ]) >>> 15%000000111033BBB5555558887779AAAAAA220-310false & false >>> false1abc0asArray "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 ]. ^ newArray3oReturn index of first element that satisfies aBlock. If no matching element is found, evaluate exceptionBlock.1001. Test package ends with suffix -Tests. Suffix is case sensitive. 2. Or test package contains '-Tests-' in middle. Some examples: -(#(10 20 30) includesAll: #(30 40)) >>> false3612-21&A clear but rather long-winded summary5'2345.88' isAllDigits >>> falseworldAssertion failedT(Dictionary newFrom: {1->#a. 2->#b. 3->#c}) >>> ({1->#a. 2->#b. 3->#c} asDictionary)31231021Tests-unix-64-NewTools-FileBrowser-Tests-Test.xmland: alternativeBlock "Nonevaluating conjunction -- answer the value of alternativeBlock since the receiver is true." "(true and: [ false ]) >>> false" "(true and: [ true ]) >>> true" ^ alternativeBlock value*Answer the middle element of the receiver.0aro$((1/3)@(2/2)) isFloatPoint >>> false10237Answer the previous date whose weekday name is dayName.7a := a. [ :a | [ :a | ]. a := a00ppp """ < """ <<< """ < """ < """ <<< """ < """ 1;Tests-unix-64-NewTools-RewriterTools-Backend-Tests-Test.xml|- 1...0vector0100 between: 22222222222000011111111111;Convert to a ByteArray with the ascii values of the string.11*Return the minimum value of the collection#('' ifEmpty: ['(nil)']) >>> '(nil)'x115 between: ,'th is is29 a stRI4' squeezeOutNumber >>> 29Flattens a collection of collections (no matter how many levels of collections exist). Strings are considered atoms and, as such, won't be flattenedcmonth "(Date year: 2018 month: 9 day: 28) month printString >>> 'September 2018'" ^ self asMonth foo | tmp | tmp := 1 . ^ tmp . 2010'abc' startsWithDigit >>> falseXsuuu2Tests-unix-64-System-OSEnvironments-Tests-Test.xmlz2#((())) size >>> 1la09312833Repeatedly 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.1'abc' isOctetString >>> true31{1}{2} 9 \\ 4 >>> 12(#(1 2 3) isSortedBy: [:a :b | a >= b ]) >>> false1 [ : | a: b ]11320071510, 'hello' & $xa2.222aeiou20&'a3123abc' isAllAlphaNumerics >>> true10130 ^ n 0 . #hello2dG((2989 storeStringBase: 16) copyFrom: 4 to: 6) , ' boy!' >>> 'BAD boy!'[Answer the sixth element of the receiver. Raise an error if there are not enough elements.+#(1 2 3) asOrderedCollection capacity >>> 33Sbefore: 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]abc0a0vector0M('fear is the little death that the.' charactersExactlyMatching: 'the') >>> 040rBuild 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) after: #x ifAbsent: #z) >>> #z1Z{ 1. 2. 3 } asOrderedCollection >>> (OrderedCollection new add: 1; add:2; add:3; yourself).(#(40 41 42) asOrderedCollection at: 3) >>> 42 0:00:02:00pppp X 51210asFourCode "'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 ]. ^ result23e!(#() averageIfEmpty: [ 0 ]) >>> 0pppp A pppp A ^ a0cdJust like reverseWith:do: except that the iteration index supplies the second argument to the block.12+Concatenate the receiver with the argument.WWWWW*W EW*zzzzI(#(1 2 3) bind: [ :first :second :third | first + second + third ]) >>> 661"A"true"B"false"C"nil"D"self"E"super"F"thisContext"G"52axa20184032010)([:x | x + 1] cull: 13 cull: 12) >>> 14 test13Return 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: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 ]]. ^ count"'3123' isAllAlphaNumerics >>> true2isEnclosingMark "Return whether the receiver is ... one of these https://www.compart.com/en/unicode/category/Me" "$' isEnclosingMark >>> false" ^ self characterSet isEnclosingMark: self X n100015 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.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: aBlockfB('abcDefgh' includesSubstring: 'DE' caseSensitive: true) >>> false({1. 2} asBag = {1. 2. 3} asBag >>> false1#( #( ) #'.' #':' #';' #'[' #']' #'{' #'}' #'^' )love1toLowercase: 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 asIntegerAnswer 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.41x2-Tests-unix-64-Collections-Weak-Tests-Test.xml#(a b c d e) middle >>> #c1a4max "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 ]{1@2} copyEmpty >>> #() { 1 }. { 2 }5('hello' surroundedBy: ' abd ') >>> ' abd hello abd '403Invalid input/output !c2 between: ( 1 and: 4)2r11a, b, cppp <<<<< XX XX X< 5%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 = $: ] ] ]-128220vector0%{1@50. 10@ -10. 5@5} range >>> (9@60)3do: 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]01-1:92552##331 Tests-unix-643333EMight be compiled inline for speed, see RBMessageNode>>#isInlineIfNil42551s 2r001010008Return a String representation of this number in base b.9(#(10 20 30 40 50) findLast: [ :each | each > 10 ]) >>> 511WReturn a string containing the path elements of the receiver, without the 'Path *' part2pppp AAAAA ^ aaaaa s n$h$wfalse not >>> true0^Nonevaluating conjunction -- answer the value of alternativeBlock since the receiver is true.Alias for intersection:XX n n1 surroundedBySingleQuotes "Answer the receiver with leading and trailing quotes." "'hello' surroundedBySingleQuotes >>> '''hello'''" "'he''llo' surroundedBySingleQuotes >>> '''he''llo'''" "' hello ' surroundedBySingleQuotes >>> ''' hello '''" ^ self surroundedBy: ($' asString)71Unexpected token21111101c8Tests-unix-64-MetacelloCommandLineHandler-Tests-Test.xmlab>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)10311:a:foo1ifTrue: 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.(#(2 3 4 5 5 6) copyWithout: 5) >>> #(2 3 4 6)MReturn a collection of pharo comment nodes: expressions following the pattern311001b1213z10.12345,#((1 5 1) (2 3 3) (4 7 2)) sum >>> #(7 15 6)2(String streamContents: [ :str| ((FileSystem workingDirectory / 'book-result' / 'W01-Welcome') relativeToReference: FileSystem workingDirectory) printPathOn: str]) >>> 'book-result/W01-Welcome'1133endsWithDigit "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]#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 foo:;bargAnswer true whether the receiver is inside the argument (following Rectangle>>#containsPoint: semanticsu u. X X . X X0(42 decimalDigitAt: 2) >>> 4xAnswer 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.1 abs60.0301Like 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.a51Return the reciever full of reciprocated elements1Answer 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.7iAnswer the index of anElement within the receiver. If the receiver does not contain anElement, answer 0.3abcabcDefgh2G('/foo/gloops.taz' asPath basenameWithoutExtension: 'taz') >>> 'gloops'1260(10.199999999 round: 2) >>>10.2_Return true if both of my x and y coordinates are represented by float values, otherwise false10 fred the bearThe 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.  2r3 0:00:01:00203.1479foo | tmp | tmp := 1. ^ tmp11 {1 . 2 . 3 . 4 . 5} median >>> 3211 abddf bcdef3-10 hexString >>> '-16rA'40tFold the result of the receiver from left to right into aBlock. The argument aBlock must take two or more arguments.ddmmyyyy "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)0334pdetectMax: 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."]. ^ maxElement253%1 minute printString >>> '0:00:01:00'2 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]0220'('Hello' detectMax: #asciiValue) >>> $o01111001133 ppp < < X hscaleTo: 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 ]-820&Answer the receiver raised to aNumber.31yexpandMacrosWith: anObject "('Pharo is <1s>' expandMacrosWith: 'cool') >>> 'Pharo is cool'" "('Pharo is <1p>' expandMacrosWith: 'cool') >>> 'Pharo is ''cool'''" ^self expandMacrosWithArguments: (Array with: anObject)11130101001 - 1 - 1 abs - 1 - 1 max: -1325%Point class classSide >>> Point class '' size >>> 011Answer 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.110akeywordsStrict "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#311112004445444778796AAAB4400ECCCCD1AMan,APlan,ACanal,Panamaat: 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: index3abcdefgh00.1containsPoint: 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]z1100042-('abcdefgh' includesSubstring: 'de') >>> true1000001002315731(#(1 5 10) findFirst: [ :each | each > 3 ]) >>> 2Evaluate 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 mapcan12(('foo*baz' match: 'foo23bazo') >>> false#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 ; yourself10 00000000000%(#(a b c d) allButLast: 2) >>> #(a b)202 foo: arg ^ arg min: arg + 2; abs)(#() ifNotEmpty: [:x| x average]) >>> #():(100@90 isInsideRectangle: (0@0 corner: 100@100))>>> false0#(1 2 3 4) selectEveryFirst asArray >>> #(1 3) 2{1@5. 2@3. 4@7} sum >>> (7@15),highBit is not defined for negative integersd110>Return number that represents digit at given decimal position./Tests-unix-64-NewTools-Inspector-Tests-Test.xml+#(1 11 0.5) reciprocal >>> {1 . 1/11 . 2.0}first: 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: n1150.5it010.050,Tests-unix-64-Calypso-Browser-Tests-Test.xml32FooBarBaz { #foo : 100 }200[ "a""b""f" 1. "c" "d" 2 "e" ]100Variable name expected0c^Append the elements of the argument, aSequenceableCollection, separating them by the receiver.'Return whether the receiver is a digit.103XXXXu9 0:B| ||b02150R('A clear but rather long-winded summary' contractTo: 18) >>> 'A clear ...summary'104-1 XX n X n XThis implementation is recursive and very canonical. This implementation is intended for demo purposes, but for better performance another version 'factorial' is provided.a"#foo: keywordsStrict >>> #('foo:')d+(0 printShowingDecimalPlaces: 2) >>> '0.00'x0vector0330EMight be compiled inline for speed, see RBMessageNode>>#isInlineIfNilc(((100@200) min: (330@400)) >>> (100@200)SParse and materialize the STON representation in string, skipping C-style comments1.0594630943592953#$> isConnectorPunctuation >>> false100abc8531028131between: #(23 nil)S ([#() anyOne] on: SubscriptOutOfBounds do: [ :ex | 'whatever' ]) >>> 'whatever' 0 9//4 >>> 2phuro1#Tests-unix-64-Epicea-Tests-Test.xml8B(#(1 1 2 2 3 3) runningAverage: 2) >>> {1 . (3/2) . 2 . (5/2) . 3}b29(STON fromString: '[1 , 2 , 3]') class >>> STON listClass 000100020-Tests-unix-64-Kernel-CodeModel-Tests-Test.xmlgroupsOf: 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 ] ]1.07 GBif2053#(:=aa:=:==bb:==#cc:==) | a2#( 1 51 10 ) range >>> 50nanoSecond "1 nanoSecond printString >>> '0:00:00:00.000000001'" "(1 milliSecond + 1 nanoSecond) printString >>> '0:00:00:00.001000001'" ^ self nanoSeconds2#(10 20 30) sum >>> 60associationClass "Return the class of STON associations, Association, a system wide constant" "(STON fromString: '#foo : 100') class >>> STON associationClass" ^ Associationafoo: a a := 10. ^ a 0000000000001atWrap: 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 + 1110.3333s411#name asAccessor >>> #nameD(OrderedCollection new addAll: (1 to: 15); yourself) capacity >>> 20Answer 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 | T t | t nn. t 021we100+(2 raisedTo: (1/12)) >>> 1.05946309435929531(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: zeroFlag(1. 2)2111300(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 'streamContents: 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 contents922820(Array with: 1 withAll: #(2 3 4)) >>> #(1 2 3 4)1. := 2_(#(11 22 33) asOrderedCollection atWrap: 2 put: 0; yourself) >>> #(11 0 33) asOrderedCollection10a2318111pdetect: 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 ]L(10 to: 25 by: 5) asOrderedCollection >>> #(10 15 20 25) asOrderedCollection9closeTo: 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 defaultComparisonPrecisionxz42 nanoSeconds printString >>> '0:00:00:00.000000002'10/'between:and:' findSelector >>> #'between:and:'131 + 20vector0Example of usages:bozo"a" #[ "b" 1 "c" 2 "d" ] "e"1 project-pharo222 100000000045pharo 'abc' >= 'def' >>> false #[ 1 a 2 ]abcDefgh41142<('pharo' beginsWith: 'phuro' caseSensitive: false) >>> false('foo' match: 'Foo') >>> true0.0foo X X X(#() ifEmpty: [0]) >>> 0sixth "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: 6 334443555311[ | | ]0!'ABA' asByteArray >>> #[65 66 65]('In {1} you can escape \{ by prefixing it with \\' format: {'strings'}) >>> 'In strings you can escape { by prefixing it with \' 1Unexpected negative weight111PhaRo1'PhaRo' asLowercase >>> 'pharo'false | true >>> true3G(OrderedCollection new addAll: #(41 42); yourself) asArray >>> #(41 42)10452 3r12. 3452503Class structural inspection - Class/Metaclass shift0(true and: [true]) >>> truetwo((2@2) - 200) >>> (-198@ -198)e-2.356194490192345bdfirst "Answer the first element of the receiver" "#(a b c d e f g h ) first >>> #a" ^ self at: 1-"a" [ "b" : "c" x "d" : "e" y "f" | "g" ] "h"action"0 :BBBBBBBBBBB | bbbbbbbbbbb s n 0QfindBinary: 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: exceptionBlock19()GReturn a ByteArray containing a GZIP compressed version of the receiveraarcTan: 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 ]]]]Hello10abc1xc13|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]]"!(10 printStringBase: 10) >>> '10'&Tests-unix-64-Ring-Core-Tests-Test.xml7@(#(1 2 3 4) asSet intersection: #(3 4 5) asSet) >>> #(3 4) asSet6d(1}2)2b3S(#(10 20 30) withIndexCollect: [:each :index | each + (index * 2)]) >>> #(12 24 36)'abc' | 'cbe' >>> 'bcea'a10010922r. 3102GifNotEmpty: 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 ]addAll: 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 ]. ^ aCollectionfoo101"0000011111111111033555555555554446named: aString ifNone: aBlock "Returns the instance of myself having aString as name." "(KeyboardKey named: 'SHIFT_L') >>> (KeyboardKey value: 65505)" ^ KeyNameTable at: aString ifAbsent: aBlock0033333\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: col08(#(xa xb xc xy xz) isSortedBy: #last ascending) >>> true1 ( . ^ 1 )11((2@2) * 200) >>> (400@400)[6213333$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 + 23 slowFactorial >>> 691AAnswer how many of the receiver's elements are equal to anObject.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."]. ^ minElement241#(().:;[]{}^#a)36xEvaluate aBlock with each of the receiver's elements as the argument. Answer the number of elements that answered true.1###10la0|a:|test longone string04021010 highBit >>> 003{1)2}#(10 storeStringBase: 16) >>> '16rA'2100vector01130longone30 'abc' = 'abc' >>> truey001111100044444222230055666664Answer 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.10asDate "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: self1 (#(1 2) ifEmpty: [0]) >>> #(1 2)2$(#(a b a d a) lastIndexOf: #a) >>> 521bb%abcdefghfred1 2018-09-27:::a0vector03galike: 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 + bonusa4 ppp | TTT | ttt n . ^ ttt . 10,(#(1 2 3 4 5) beginsWith: #(1 2 3)) >>> trueExample of usages:foo10foo2114y1"100000000 decimalDigitLength >>> 9cannot resolve fourcode'('ab ab ac de' howManyMatch: 'z') >>> 01Uppp ^ 0 :BB :BB :BB :BB :BB :BB :BB :BB :BB :BBB :BBB :BBB :BBB :BBB :BBB :BBB | bb 05029allButLastDo: 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)],foo "a" "b" "c" "d" "e" "f" "g" aXb1bcSet the element at indexFromEnd from the last position. atLast: 1 put: obj, sets the last elementfoo'10' asInteger >>> 101 over index: colorFrom: 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 ]. ^ parm255TAdd new empty slots to the front of array, while keeping the empty slots at the end.;Convert to a ByteArray with the ascii values of the string.10true not >>> false161:=2"foo: thisContext ^ thisContext + 1313101bJust like with:collect: except that the iteration index supplies the second argument to the block.2.00######"""##"""#########"""###"""##"""###"""0 {8. 5. 3. 9} sort >>> #(3 5 8 9)34'See `escapeCharacter:` for the opposite250G({#xa. #xc. #xz. #xb. #xy} sort: #last ascending) >>> #(xa xb xc xy xz)1.25 reciprocal >>> 0.8631 Hello, World!! A shortcut method for raisedTo: kSubclasses 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 hierarchy15cb1-21{ }0""" 00 """ n """ ### """ 1 """ n """ 1 """ 0 """'-1' asInteger >>> -1410-1.5 rounded >>> -25oasStringOn: 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])]${#a. #b. #z. #d} sort >>> #(a b d z)('*' match: 'zort') >>> true 100000000phuro1!((2@2) + (100@200)) >>> (102@202)10Return 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)a'' isEmpty >>> trueal0abcdo16"#(a b c d) allButLast >>> #(a b c)1{1@5. 10@ -4} max >>> (10@5)u u. X 0 :B 0. X X 0000222222200000000 | | . :. :a225: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 subclassResponsibility 'abc' <= 'abc' >>> true 003555446660-0.512018120.01 aaround: 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) asFloatassociationsDo: 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: aBlock11OrderedCollection new class >>> OrderedCollectionor: alternativeBlock "Nonevaluating disjunction -- answer value of alternativeBlock." "(false or: [true]) >>> true" "(false or: [3]) >>> 3" ^alternativeBlock value(#(a b c d) after: #b) >>> #c one:1;two:2;11023 September 2018>> $e1663100000000000002-(#(1 2 3 4 5) beginsWith: #(0 1 2)) >>> false3ZReturn an hexadecimal two-digits string between 00 and FF for a float between 0.0 and 1.02020000002!#(1 2 2 3 1 1 1) asBag size >>> 71(0.98 printShowingDecimalPlaces: 5) >>> '0.98000'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@|s| s:=0. #(11 22 33) select: #odd thenDo: [:x|s:=s+x]. s >>> 44fghi"'foo10foo' endsWithDigit >>> false31.0 XX n XX n X19/('word before index' wordBefore: 16) >>> 'inde'201allRangesOfSubstring: 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]]]421-(10 to: 1 by: -2) sorted >>> (2 to: 10 by: 2)2040First N/2 ... last N/21!""" 0 """ 1 """ n """ 1 """ 0 """1923#( 1 + 2#() sumNumbers >>> 041{10@20. 30@0} // {1@3. 4.0@1} >>> {(10@6). (7@0)} [:a|| |a]z-410001000226444455220077821Literal constant expectedEvaluate aBlock with each of the receiver's elements as the argument. Collect the resulting values into an instance of aClass. Answer the resulting collection.100102422&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]110.03n uuuuuuu Xuu n03asOrderedDictionary "Answers a Dictionary based on collection of Associations." "{'one' -> 1. 'two' ->2} asOrderedDictionary keys first >>> 'one'" ^ self as: OrderedDictionary&(AsciiCharset toUppercase: $a) >>> $A.4197(#(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)'sumNumbers "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 ]20>Add each element of aCollection at my end. Answer aCollection.3$1 isDigit >>> true(String streamContents: [:s| {'one'->1. 'two'->2} associationsDo: [:a| s << a key << ':' << a value asString << ';']]) >>> 'one:1;two:2;'1((10 to: 20) detectMax: [ :p | p gcd: 6 ]) >>> 12abc/(23.4567 printShowingDecimalPlaces: 0) >>> '23'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 subclassResponsibility230621'#(10 20 30) // #(1 3 4.0) >>> #(10 6 7)({1. 2} asSet = {1. 2. 3} asSet >>> false7e%Tests-unix-64-OSWindow-Tests-Test.xmlfear is|Answer whether aPoint is within the receiver. Pay attention the self origin is considered less than but the corner is strictb191 That is true!$(Color red asHexString) >>> 'FF0000'W(#(10 20 10) asOrderedCollection remove: 10; yourself) >>> #(20 10) asOrderedCollection2103three45333333TReturn true whether the receiver is a metaclass (in a couple class/metaclass sense).0This 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.name512<1?success:is error>4a := a. { [ :a | }. a := aAnswer 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. 001000224 between: W01-Welcome0vector013321(#(1 3 5 7 11 15 23) findBinaryIndex: [ :arg | 11 - arg ] do: [ :found | found ] ifNone: [ :a :b | 'between: ', {a. b} printString ]) >>> 5G(#('abc' 'de' 'fghi') sorted: #size ascending) >>> #('de' 'abc' 'fghi')1( 1 + 2axb3.2collect: 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))]. ^ newCollection1816rDFe1Durstenfeld's version of the Fisher-Yates shuffle 28/9/2018c3043%(3.1479 truncateTo: 0.005) >>> 3.1452{10@20. 30@0} \\ {1@3. 4.0@1} >>> {(0@2). (2.0@0)}002010`(Color colorFrom: Color blue darker)>>> ((Color r: 0.0 g: 0.0 b: 0.9198435972629521 alpha: 1.0))330!'foo' asCommaString >>> 'f, o, o'30!Tests-unix-64-SUnit-Core-Test.xmlitde7:Returns the basename without specified extension (if any) 2432768 bytesCount >>> 2d31.0OReturn a string representing the receiver in HEX (i.e., 6 elements in 16 basis)0successy2010014ha360.0-('foo*baz*zort' match: 'foobazzort') >>> true"a" 1 "b". "c" 2 "d"41101trim "Trim separators from both sides of the receiving string." "' this string will be trimmed ' trim >>> 'this string will be trimmed'" ^ self trimBoth~(Array streamContents: [:stream| #(11 22 13) withIndexDo: [ :each :i | stream nextPut: (each * each + i)]]) >>> #(122 486 172)abcb((Color r: 0.5 g: 0.5 b: 1) hue >>> 240.0unzip "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 }1101capacity "Answer the current capacity of the receiver." "OrderedCollection new capacity >>> 10" "(OrderedCollection new addAll: (1 to: 15); yourself) capacity >>> 20" ^ array size2 953.67 MB1581 """""n""""""0$(#(a b a d e) lastIndexOf: #a) >>> 3203*#(1 2 3 4) unzip first asArray >>> #(1 3)*Primitive does not fail properly right now,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 ]]]C(#(3 4 5) readStreamDo: [ :stream | stream contents ]) >>> #(3 4 5)a := a. [ | a a := a ]. a := a32 """ ^ """ n """ 2(1 minute + 1 second) printString >>> '0:00:01:01''00000103366778777B9999AA77C66555555444D5+00BBBBBLLLCMMMDNNNEOOOFPPPGQQQHRRRISSSJTTT0002003-1(Array streamContents: [:stream | #(10 20 30 40 50) groupsOf: 2 atATimeDo: [:first :second | stream nextPut: (first + second)]]) >>> #(30 70)63111612.0jasStringOn: 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 ]300Snick10006iAnswer a copy of the receiver in which all occurrences of oldSubstring have been replaced by newSubstringe5-2001318810ynewFromArray: 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) ]. ^ newCollection1|:a1Unmatched " in comment.1;12415111111110000000002222222222222foo: a bar: a ^ anuuuu hello: < 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) < 0h(OrderedCollection new add: 41; add: 42 after: 41; add: 43 after: 41; yourself) asArray >>> #(41 43 42)1245$- isDashPunctuation >>> truey3uonNextMonth "(Date year: 2018 month: 9 day: 28) onNextMonth printString >>> '28 October 2018'" ^ self addMonths: 1410FLNegative8SmallIntegerCluster  *(bFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster v testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster @ testSelector expectedFailstestingEnvironmentFLFixedObjectCluster5 testSelector expectedFails environment groupProvider builtGroupsFLFixedObjectCluster&7 testSelector expectedFailsparametersToUse presenterspecInitializationStrategywindowbackendForTestFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster( testSelector expectedFailsresolverFLFixedObjectCluster  testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClass constructor extraArgumentFLFixedObjectCluster testSelector expectedFailstestingEnvironmentsnapshotFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterR testSelector expectedFailsparametersToUse presenterspecInitializationStrategywindowbackendForTestFLFixedObjectCluster` testSelector expectedFails filesystemguidevisitedFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLFixedObjectClusteri testSelector expectedFailscontextsessionprocessFLFixedObjectCluster testSelector expectedFailstestingEnvironmenttestEnvironmentFLFixedObjectCluster/ testSelector expectedFailsFLFixedObjectCluster> testSelector expectedFailsareapositioneventFLFixedObjectClusteru testSelector expectedFailsFLFixedObjectCluster6 testSelector expectedFailsparametersToUse presenterspecInitializationStrategywindowbackendForTestFLFixedObjectCluster argumentsFLFixedObjectClusterT testSelector expectedFails replacePanelFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLFixedObjectCluster testSelector expectedFailssegmentFLFixedObjectClusterT testSelector expectedFailsFLFixedObjectClusterS testSelector expectedFailsFLFixedObjectClusterx testSelector expectedFailsrootfileSystemModelfileSystemPresenterfilterFLFixedObjectCluster testSelector expectedFails slotDisplayFLFixedObjectClusterB testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClass announcementcollectedAnnouncementsFLFixedObjectCluster testSelector expectedFails commandLineFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelclassFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterj testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster? testSelector expectedFailsFLFixedObjectClustert testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster testSelector expectedFailsparametersToUseFLFixedObjectCluster  testSelector expectedFails inspectorFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterR testSelector expectedFailstestingEnvironmentFLFixedObjectClusterE testSelector expectedFails environment groupProvider builtGroupsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsatPragmaanotherAtPragmayetAnotherAtPragma atPutPragmaFLFixedObjectCluster testSelector expectedFailsparametersToUseconfigurationSelectorformatterClass contextClassFLFixedObjectCluster testSelector expectedFails historyListFLFixedObjectCluster Q testSelector expectedFailslabel1morph1label2morph2panelFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster+ testSelector expectedFailsFLFixedObjectCluster,% testSelector expectedFailsdpnodecontextdp2cls testClass testSubclassFLFixedObjectClusterh testSelector expectedFailsmonitor classFactory logBuilder inputEntry inputEntriesFLFixedObjectClustera testSelector expectedFailsFLFixedObjectCluster testSelector expectedFails newBuilder originClass usedTrait superClassFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterj testSelector expectedFailsparametersToUse ffiLibraryoldExceptionHandlerFLFixedObjectCluster> testSelector expectedFailsmutexforkedProcessesFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectCluster4 testSelector expectedFailsaClassFLFixedObjectCluster' testSelector expectedFailsparametersToUseinstancemethodglobalsencoder optimizationextractBlockInTempFLFixedObjectCluster sourceNode bytecodeIndexsequenceFLFixedObjectCluster testSelector expectedFailsclassDefinitionFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterQ testSelector expectedFailsFLFixedObjectClustername owningClass definingClassindexFLFixedObjectClusterR testSelector expectedFailsbuilderFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterG testSelector expectedFailscompletionClasssystemNavigationfetcherexpectedElementsFLFixedObjectCluster$D testSelector expectedFails environmentqueryresult resultItemsfoundSelectorsinstalledCountersFLFixedObjectCluster~ testSelector expectedFailsbrowserFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectCluster9 testSelector expectedFails drTestsUIpluginsplugin1plugin2FLFixedObjectCluster testSelector expectedFails breakpointclspreviousBreakpointsobserveroldSystemAnnouncerFLFixedObjectCluster  testSelector expectedFailsclassDefinitionFLFixedObjectClusterg testSelector expectedFails outerMorph innerMorphFLFixedObjectClusteri testSelector expectedFailstestingEnvironmentfullempty collectResultemptyButAllocatedWith20 elementNotIncollectionOfFloatcollectionIncludednonEmpty1elementwithoutEqualElementscollection5ElementscollectionWith3ElementscollectionOfNonIdenticalfloatCollectionFLFixedObjectCluster ' testSelector expectedFailsFLFixedObjectCluster testSelector expectedFails testClass compileTargetFLFixedObjectCluster= testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectClusterG= testSelector expectedFailstestingEnvironment aDurationFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster* testSelector expectedFailsparsersubjectFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectCluster!& testSelector expectedFailsFLFixedObjectClusterCfilehandleforWrite semaphoresemaphoreIndex peekBufferFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterQ testSelector expectedFails emptySlotsFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsticksFLFixedObjectClustert testSelector expectedFailsparsersubjectFLFixedObjectClusterS testSelector expectedFailspackageAaPDPackageDependencyWrapperFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClass constructorFLFixedObjectCluster_ testSelector expectedFailstextmorphexpectedErrorsexpectedErrorPositionsfailureFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectCluster  testSelector expectedFails presenterpresenterModelFLFixedObjectClusterf testSelector expectedFailsstateFLFixedObjectClusterh testSelector expectedFailstestingEnvironmentFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster( testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsaStringFLFixedObjectCluster) testSelector expectedFailsFLFixedObjectClusterp< testSelector expectedFails filesystemFLFixedObjectClusterqparent properties parenthesesvariable assignmentvalueFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClass constructorFLFixedObjectCluster% testSelector expectedFailsFLFixedObjectCluster8 testSelector expectedFailstestingEnvironment repository directoryFLFixedObjectClusterstateseedFLFixedObjectClusterJ testSelector expectedFailsedsessiondebugAPImockDisplayAPIcurrentDebuggingAPIFLFixedObjectCluster` testSelector expectedFails environment queryResultquerycursoritemsFLFixedObjectClusterP testSelector expectedFailstestingEnvironmentFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFails filesystemFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLFixedObjectCluster testSelector expectedFailscommandToBeDecorated decoratorFLFixedObjectCluster testSelector expectedFailstestingEnvironmenttestEnvironmentFLFixedObjectCluster ^ testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster(P testSelector expectedFailsparametersToUse presenterspecInitializationStrategywindowbackendForTestFLFixedObjectCluster` testSelector expectedFailsrewriteBasicEditorFLFixedObjectCluster  testSelector expectedFailsarcFLFixedObjectCluster^name priorityListsFLFixedObjectClusterG testSelector expectedFailsFLFixedObjectClusters testSelector expectedFailsdocCommentNodeFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLFixedObjectCluster  testSelector expectedFails architectureFLFixedObjectCluster O testSelector expectedFailsFLFixedObjectCluster w testSelector expectedFailscacheFLFixedObjectCluster  testSelector expectedFails identifier preferencesFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUse presenterspecInitializationStrategywindowbackendForTestFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster h testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailstestingEnvironmentnonEmpty5ElementsNoDuplicateempty elementNotInelementTwiceIncollectionWithEqualElementsnonEmpty1Element"collectionWithSameAtEndAndBegining collectionWith1TimeSubcollection collectionWith2TimeSubcollectioncollectionNotIncludednonEmptySubcollectionelementInNonEmptyreplacementCollectionSameSizesortedCollectionFLFixedObjectCluster  testSelector expectedFailsrootfileSystemModelfileSystemPresenterdialogwindowFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterg testSelector expectedFailsticker schedulersuspendedDelaysHeapFLFixedObjectCluster testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster testSelector expectedFailsparametersToUseFLPointClusterFLFixedObjectClusterO testSelector expectedFailsparametersToUse presenterspecInitializationStrategywindowbackendForTestFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster domainrange interpolate uninterpolateclampinputoutputFLFixedObjectCluster F testSelector expectedFailsmonitor classFactory logBuilderaClassFLFixedObjectClusterm testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUseconfigurationSelectorformatterClass contextClassFLFixedObjectCluster  testSelector expectedFailstestingEnvironmenthashFLFixedObjectClusterN testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailstreeFLFixedObjectClusterksource isScripting isParseFaultyisFaultyisFaultyMinusUndeclarednoticesvaluehasValue formattedCode skippedTestsraisemessageNotUnderstoodnumberOfCritiquesgroupdefault nodePositions styledPatternFLFixedObjectClusterFLFixedObjectCluster testSelector expectedFailstestingEnvironment clientStream serverStreamFLFixedObjectCluster testSelector expectedFailsparametersToUseconfigurationSelectorformatterClass contextClassFLFixedObjectCluster e testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectClusterN testSelector expectedFailsresultleftrightFLFixedObjectCluster; testSelector expectedFailsparametersToUseinstancemethodglobalsencoder optimizationFLFixedObjectCluster testSelector expectedFailsclassDefinitionFLFixedObjectCluster testSelector expectedFailstext candidatescontext processorstreamFLFixedObjectClusterE testSelector expectedFailsFLFixedObjectCluster~ testSelector expectedFailsFLFixedObjectClusterS testSelector expectedFailsfilterableListFLFixedObjectCluster_ testSelector expectedFails environment groupProvider builtGroupsFLFixedObjectCluster testSelector expectedFailssystemSettingsmemorypreferencesFileFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailscompletionClasssystemNavigationfetcherexpectedElementsFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster( testSelector expectedFailsparametersToUseinstancemethodglobalsencoder optimizationextractBlockInTempFLFixedObjectCluster testSelector expectedFailsclassDefinitionFLFixedObjectCluster& testSelector expectedFails prototypesFLFixedObjectCluster testSelector expectedFailstestingEnvironment emptyDict nonEmptyDictnonEmpty5ElementsNoDuplicates indexArray valueArraynonEmpty1ElementcollectionNotIncludedcollectionIncludedassociationNotIn valueNotInkeyNotIndictionaryNotIncludeddictionaryWithDuplicateValuesduplicateValuenonEmptyWithStringFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterd testSelector expectedFails aTimespan aDurationaDateFLFixedObjectCluster% testSelector expectedFailscompletionClasssystemNavigationfetcherFLFixedObjectClusterU testSelector expectedFailsparsersubjectFLFixedObjectCluster  testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectCluster: testSelector expectedFailsFLFixedObjectCluster sourceNode bytecodeIndexsequencenameFLFixedObjectCluster}tests resourcesname announcerrandomGeneratorFLFixedObjectClusterD testSelector expectedFailsFLFixedObjectCluster} testSelector expectedFailst1t2t3t4t5t6t8t9t10t11c1c2c3c4c5c6c7c8c9c10c11t12FLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster~ testSelector expectedFails testClass compileTargetFLFixedObjectClusterl testSelector expectedFailstestingEnvironment emptyDict nonEmptyDictnonEmpty5ElementsNoDuplicates indexArray valueArraynonEmpty1ElementcollectionNotIncludedcollectionIncludedassociationNotIn valueNotInkeyNotIndictionaryNotIncludeddictionaryWithDuplicateValuesduplicateValuenonEmptyWithStringFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster8 testSelector expectedFailsparsersubjectFLFixedObjectClusterM testSelector expectedFailsFLFixedObjectClustern testSelector expectedFailsanalyzerFLFixedObjectCluster  testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectCluster testSelector expectedFails collectionFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster% testSelector expectedFailsstrategyFLFixedObjectCluster g testSelector expectedFailsFLFixedObjectCluster Z testSelector expectedFailsFLFixedObjectClustere testSelector expectedFailsFLFixedObjectClusterT testSelector expectedFailsFLFixedObjectClusterc testSelector expectedFailsFLFixedObjectClusterB4parent properties parenthesesmessages semicolonsFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClass constructorFLFixedObjectCluster9 testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailstestingEnvironmentpatchFLFixedObjectCluster]name environmentFLFixedObjectClusterl testSelector expectedFailsfunctionFLFixedObjectClusterk testSelector expectedFailstestingEnvironmentFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster* testSelector expectedFailsparametersToUse presenterspecInitializationStrategywindowbackendForTestFLFixedObjectClusterL testSelector expectedFailssourcedestFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLFixedObjectCluster testSelector expectedFailstestingEnvironmentpackage2package1 mcPackage1 mcPackage2 classToRemoveFLFixedObjectCluster* testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLContextClustersenderpcstackpmethod closureOrNilreceiverFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClustersourcenodecachedExpressionNodeFLFixedObjectCluster"] testSelector expectedFailsparametersToUse presenterspecInitializationStrategywindowbackendForTestFLFixedObjectCluster testSelector expectedFailspatternMatcherFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLFixedObjectCluster< testSelector expectedFailsangleFLFixedObjectCluster s testSelector expectedFailscontextsessionprocessFLFixedObjectCluster% testSelector expectedFailstestingEnvironmenttestEnvironmentFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster8 testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster=C testSelector expectedFailssource selectioncurrentCompletionFLFixedObjectClusterj testSelector expectedFailsFLFixedObjectCluster testSelector expectedFails mockPackageFLFixedObjectCluster| testSelector expectedFailsFLFixedObjectCluster BFLFixedObjectCluster  testSelector expectedFails preferences persistencecheckerFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUse presenterspecInitializationStrategywindowbackendForTestFLFixedObjectCluster} primitiveNumspecFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLFixedObjectCluster testSelector expectedFails rectangleFLFixedObjectCluster testSelector expectedFailsempty withItemsfiredFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailscollectionWith5ElementsFLFixedObjectClustertermcap outStreamcurrentBackground currentColorlightblinkFLFixedObjectCluster testSelector expectedFailsrootfileSystemModelfileSystemPresenterfilterFLFixedObjectCluster testSelector expectedFailsbFLFixedObjectCluster" testSelector expectedFailsaCompiledMethod aReceiveraMethodContextaSenderinstVarForTestLookupSymbolnonActiveBlockContext anArgumentFLFixedObjectClusterf testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster1 testSelector expectedFailsparametersToUseFLFixedObjectClusterS testSelector expectedFails presenterwindowFLFixedObjectCluster)| testSelector expectedFailstestingEnvironmentnonEmptyelementExistsTwiceempty collectResultnonEmpty1ElementcollectionOfFloataccessCollection elementNoteInoldSubcollectionwithoutEqualElementscollectionOfFloatWithDuplicatecollectionIncludedcollectionNotIncludedcollectionWithoutNilduplicateFloatnonEmpty5ElementscollectionWith4ElementscollectionOfString"stringCollectionSameEndAndBeginingFLFixedObjectCluster testSelector expectedFails decoratorFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsbuilderFLFixedObjectClusteri testSelector expectedFailsforkvalueFLFixedObjectCluster testSelector expectedFailsparametersToUseFLFixedObjectCluster testSelector expectedFailsmanagerFLFixedObjectCluster testSelector expectedFails generatorFLFixedObjectCluster abFLFixedObjectCluster, testSelector expectedFails environmentqueryresult resultItemsfoundSelectorsFLFixedObjectCluster4A testSelector expectedFailsparametersToUserunnerFLFixedObjectCluster( testSelector expectedFailsparametersToUseconfigurationSelectorformatterClass contextClassFLFixedObjectCluster testSelector expectedFailssycRefactoringPreviewFLFixedObjectCluster testSelector expectedFailscanvasFLFixedObjectCluster\ testSelector expectedFailsmockuiWaitingSemaphoreFLFixedObjectCluster1nameescapingindexscopeusageFLFixedObjectCluster; testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailstext candidatescontext processorstreamFLFixedObjectCluster testSelector expectedFailsclassDefinitionFLFixedObjectCluster,f testSelector expectedFailstestingEnvironmentFLFixedObjectCluster testSelector expectedFails newBuilder originClass usedTrait superClassFLFixedObjectClusterB testSelector expectedFailssettingBrowserFLFixedObjectCluster.h testSelector expectedFailstestingEnvironment classNametestEnvironmentFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectClusterK testSelector expectedFailsparametersToUseinstancemethodglobalsencoder optimizationextractBlockInTempextractBlock2InTempFLFixedObjectCluster testSelector expectedFailsclassDefinitionFLFixedObjectCluster @ testSelector expectedFailstestingEnvironmentFLFixedObjectClusterF xScaleyScalechartstyler masterShape markerColorgetRelevantValueBlocklines formatStringFLFixedObjectCluster testSelector expectedFailstestingEnvironmentemptynonEmpty collectResultemptyButAllocatedWith20collectionWithElement collectionIncollectionNotIncollectionOfString elementNotIncollectionWithCharacters#otherCollectionWithoutEqualElementscollectionWithoutNilMoreThan5FLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster.' testSelector expectedFailsobj1obj2wpobj3obj4observer testClass testSubclassFLFixedObjectCluster testSelector expectedFailscanvasshapesFLFixedObjectCluster? testSelector expectedFails aDateAndTime aDuration aTimeZonelocalTimeZoneToRestoreFLFixedObjectClusterY testSelector expectedFailscompletionClasssystemNavigationfetcherexpectedElementsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectCluster commandLinesessionstdoutstderrFLFixedObjectCluster:b testSelector expectedFailstestingEnvironmentinstVarFLFixedObjectClusterr testSelector expectedFailsmorphFLFixedObjectCluster testSelector expectedFailst1t2t3t4t5t6t8t9t10t11c1c2c3c4c5c6c7c8c9c10c11t12FLFixedObjectCluster3 testSelector expectedFailsFLFixedObjectCluster testSelector expectedFails testClass compileTargetFLFixedObjectCluster3{ testSelector expectedFailsweakSetWith3ElementsemptyFLFixedObjectCluster testSelector expectedFailsplotxyFLFixedObjectCluster>g testSelector expectedFailstestingEnvironmenttimespan aTimespananOverlappingTimespananIncludedTimespanaDisjointTimespanaDayaWeekdec31jan01jan08localTimeZoneToRestoreFLFixedObjectCluster R testSelector expectedFailsparsersubjectFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectCluster, testSelector expectedFailsparametersToUse presenterspecInitializationStrategywindowbackendForTestFLFixedObjectCluster3J testSelector expectedFailsFLFixedObjectClusterZ{ outerScopetempVars copiedVars tempVectorid tempVectorVarnode isInlinedLoopFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster| testSelector expectedFailsFLFixedObjectCluster testSelector expectedFails testPackage testClass testMethod testClass2oldRulesSettingsFLFixedObjectCluster$ testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster* testSelector expectedFailsfactorybuilderFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClass constructorFLFixedObjectClusterTd testSelector expectedFailstestObjectPointFLFixedObjectCluster testSelector expectedFailstestingEnvironmentexpecteddiffFLFixedObjectCluster  testSelector expectedFailstestingEnvironment conflictsFLFixedObjectClustera testSelector expectedFailsFLFixedObjectClusterq testSelector expectedFailstablestrategyFLFixedObjectClusterz testSelector expectedFailstestingEnvironmentFLFixedObjectCluster2 testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster#k testSelector expectedFails environmentqueryresult resultItemsfoundSelectorsFLFixedObjectCluster*t testSelector expectedFailsparametersToUse presenterspecInitializationStrategywindowbackendForTestFLFixedObjectClusterQ testSelector expectedFailsFLFixedObjectClusterf testSelector expectedFailsresolveroriginalUserLocalDirFLFixedObjectClusterAparent properties parenthesesvaluekeywordPositionsFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClass constructorindexFLFixedObjectClusterFLFixedObjectClusterK testSelector expectedFailstestingEnvironmentFLFixedObjectCluster testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster? testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUse presenterspecInitializationStrategywindowbackendForTestFLFixedObjectCluster testSelector expectedFails filesystemguidevisitedFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLFixedObjectCluster testSelector expectedFailscontextsessionprocessFLFixedObjectCluster testSelector expectedFailstestingEnvironmenttestEnvironmenta1b1a2b2xPackageyPackagezPackageFLFixedObjectCluster` testSelector expectedFailsFLFixedObjectClusterp testSelector expectedFailsFLFixedObjectClustery testSelector expectedFailsclassnumberOfAnnouncementsFLFixedObjectCluster shapeoffset offsetRatioFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusters testSelector expectedFailsparametersToUse presenterspecInitializationStrategywindowbackendForTestFLFixedObjectCluster testSelector expectedFailsscopeSelectorPresenterFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLFixedObjectClusterI testSelector expectedFailsfinalizationRegistryfinalizationCountfinalizerThatCounts waitSemaphorefinalizedObjectfinalizerThatRaisesError finalizerfailedFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsrootfileSystemModelfileSystemPresenterfilterFLFixedObjectCluster testSelector expectedFails environment groupProvider builtGroupsFLFixedObjectCluster  testSelector expectedFails slotDisplayFLFixedObjectCluster testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassFLFixedObjectCluster# testSelector expectedFailsFLGlobalClassVariableCluster +"2F+("+!+%q.|FLFixedObjectCluster testSelector expectedFailsparametersToUse presenterspecInitializationStrategywindowbackendForTestlayoutFLFixedObjectCluster+\sequence orderNumbermethodFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelclassFLFixedObjectCluster cstartstopFLFixedObjectClusterM* testSelector expectedFailstestingEnvironmentexample1 literalArrayselfEvaluatingArray nonSEArray1 nonSEarray2example2empty collectResultwithoutEqualElementswithEqualElementswithCharactersunsortedCollection sortedInAscendingOrderCollectioncollectionNotIncludedremovedCollectionelementInForCopyelementNotInForCopy firstIndex secondIndexreplacementCollection indexArray valueArraynonEmptyMoreThan1ElementsubCollectionNotInreplacementCollectionSameSizeoldSubCollectionnonEmpty1ElementcollectionOfCollection"collectionOfFloatWithEqualElementscollectionWithoutNilduplicateElementcollection5ElementscollectionWith4Elements collectionOfCollectionsOfStringscollectionOfCollectionsOfIntssimpleCollection%stringCollectionWithSameBeginingAnEndcollectionOfFloatrecursiveArrayFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectClusterx testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster testSelector expectedFailsparametersToUseserviceFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster?tallyarrayFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterdomainrange interpolate uninterpolatelinearexponentpowppowbFLFixedObjectCluster testSelector expectedFails environment groupProvider builtGroupsFLFixedObjectCluster testSelector expectedFailsparametersToUseconfigurationSelectorformatterClass contextClassFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterE testSelector expectedFailsparametersToUseshapeCollectionshapeCollectionClasscanvasFLFixedObjectCluster> testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFails presenteradapterFLFixedObjectClusterZ sourceNode bytecodeIndexsequenceFLFixedObjectCluster messageTexttagsignaler signalContexthandlerContext outerContextFLFixedObjectClusterb testSelector expectedFailslgFLFixedObjectCluster testSelector expectedFailsmonitor classFactory logBuilderdetectorFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFails newBuilder originClass usedTrait superClassFLFixedObjectCluster  testSelector expectedFailsparametersToUse ffiLibraryFLFixedObjectCluster/w testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectClusterr testSelector expectedFailsFLFixedObjectCluster@e testSelector expectedFailsparametersToUseinstancemethodglobalsencoder optimizationextractBlockInTempFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster*P testSelector expectedFailsfileNameFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsbuilderFLFixedObjectCluster$ testSelector expectedFails environmentqueryresult resultItemsfoundSelectorsinstalledWatchpointsFLFixedObjectClusterD testSelector expectedFailsFLFixedObjectCluster = testSelector expectedFails classFactoryFLFixedObjectClusterz testSelector expectedFailscompletionClasssystemNavigationfetcherexpectedElementsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster& testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectCluster testSelector expectedFailstoolFLFixedObjectCluster testSelector expectedFailsparserFLFixedObjectCluster  testSelector expectedFailspreviousBreakpointsclsoldSystemAnnouncerFLFixedObjectCluster ' testSelector expectedFailsclassDefinitionFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailstestingEnvironmentfullempty collectResultemptyButAllocatedWith20 elementNotIncollectionOfFloatcollectionIncludednonEmpty1elementwithoutEqualElementscollection5ElementscollectionWith3ElementscollectionOfNonIdenticalFLFixedObjectCluster testSelector expectedFails testClass compileTargetFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterv testSelector expectedFailstestingEnvironmentmonthFLFixedObjectCluster0 testSelector expectedFailsFLFixedObjectCluster_ testSelector expectedFailsparsersubjectFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectClusterd testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectClusterO testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFails emptySlotsFLFixedObjectCluster@ testSelector expectedFailsFLFixedObjectClusterC testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparsersubjectFLFixedObjectCluster  testSelector expectedFailsoldRelationGraphnewRelationGraphpackageRelationGraphDiffpackageApackageBFLFixedObjectCluster testSelector expectedFailsrulesSelectorPresenterrules rulesByGroupFLFixedObjectCluster% testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClass constructorFLFixedObjectCluster testSelector expectedFailstextmorphexpectedErrorsexpectedErrorPositionsfailureFLFixedObjectCluster testSelector expectedFailsstateFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectCluster[ testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFails slotClassFLFixedObjectCluster^ testSelector expectedFailsFLFixedObjectCluster\parent properties parenthesesleftright statementsperiodsFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClass constructorFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectClusterc testSelector expectedFailstestingEnvironmentgenFLFixedObjectClusterq testSelector expectedFailstestingEnvironmentFLFixedObjectCluster& testSelector expectedFails environmentscoperesultFLFixedObjectCluster${ testSelector expectedFailsedsessiondebugAPImockDisplayAPIcurrentDebuggingAPIFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectClusterN testSelector expectedFailsFLFixedObjectCluster. testSelector expectedFailsparametersToUse presenterspecInitializationStrategywindowbackendForTestFLFixedObjectCluster testSelector expectedFails filesystemFLFixedObjectCluster$ testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLFixedObjectCluster testSelector expectedFailscommandFLFixedObjectCluster testSelector expectedFailstestingEnvironmenttestEnvironmenta1t1t2xPackageyPackagezPackageFLFixedObjectClusterd testSelector expectedFailscontextsessionprocessFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster9 testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster  testSelector expectedFailsinstVarForTestFLFixedObjectCluster:widthstylepaintFLFixedObjectCluster& testSelector expectedFailsparametersToUse presenterspecInitializationStrategywindowbackendForTestFLFixedObjectCluster testSelector expectedFails ruleLoaderFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLFixedObjectClusterA testSelector expectedFailslineFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUse presenterspecInitializationStrategywindowbackendForTestFLFixedObjectCluster# testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsnextLinknlistlink1link2link3link4nonEmpty otherListlinkcollectionWithoutNilnonEmpty1ElementcollectionWithoutEqualElements elementNotIn elementIncollection5Elements collectResultunsortedCollectionsortedCollectionFLFixedObjectClusternameFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsrootfileSystemModelfileSystemPresenterdialogwindowFLFixedObjectCluster$ testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster testSelector expectedFailsticker schedulersuspendedDelaysHeapFLFixedObjectCluster  testSelector expectedFailsparametersToUseFLFixedObjectCluster testSelector expectedFailsinspectionClass presenterFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster@domainrange interpolate uninterpolatelinearFLFixedObjectCluster{ testSelector expectedFailsmonitor classFactory logBuilderFLFixedObjectCluster testSelector expectedFailstestingEnvironmentstreamFLFixedObjectCluster  testSelector expectedFailsparametersToUseconfigurationSelectorformatterClass contextClassFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster M testSelector expectedFailstestingEnvironmenthashFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClustergnameescapingindexscopeusage originalVarFLFixedObjectCluster " testSelector expectedFailsparametersToUsescaleFLFixedObjectCluster(c testSelector expectedFailsmonitor classFactory logBuilder inputEntry inputEntriesFLFixedObjectCluster-startstopstepFLFixedObjectCluster 8 testSelector expectedFailsparametersToUseconfigurationSelectorformatterClass contextClassFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusteru testSelector expectedFailsparametersToUseinstancemethodglobalsencoder optimizationFLFixedObjectCluster testSelector expectedFailsclassDefinitionFLFixedObjectCluster testSelector expectedFailstext candidatescontext processorstream backWindow1 backWindow2 topMostWindowFLFixedObjectCluster z testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsnewClass superClasssubClass newClass2 superClass2FLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFails environment groupProvider builtGroupsinstalledCounterFLFixedObjectCluster testSelector expectedFailscanvasshape interactionFLFixedObjectCluster> testSelector expectedFailscompletionClasssystemNavigationfetcherexpectedElementsFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectCluster< testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUseinstancemethodglobalsencoder optimizationFLFixedObjectCluster sourceNode bytecodeIndexsequenceFLFixedObjectCluster P testSelector expectedFailsclassDefinitionFLFixedObjectCluster testSelector expectedFailstestingEnvironment emptyDict nonEmptyDictnonEmpty5ElementsNoDuplicates indexArray valueArraynonEmpty1ElementcollectionNotIncludedcollectionIncludedassociationNotIn valueNotInkeyNotIndictionaryNotIncludeddictionaryWithDuplicateValuesduplicateValuenonEmptyWithStringFLFixedObjectCluster, collectionposition readLimit writeLimitFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster# testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsrestoredStartDayrestoredTimeZoneFLFixedObjectClusterY testSelector expectedFailscompletionClasssystemNavigation completion mockFilterFLFixedObjectCluster testSelector expectedFailsparsersubjectFLFixedObjectCluster  testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectClustert testSelector expectedFailsFLFixedObjectClustery testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailst1t2t3t4t5t6t8t9t10t11c1c2c3c4c5c6c7c8c9c10c11t12FLFixedObjectCluster[ testSelector expectedFailsFLFixedObjectCluster testSelector expectedFails testClass compileTargetFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster v testSelector expectedFailsparsersubjectFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster commandLinesessionstdoutstderrFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectCluster testSelector expectedFailspackageApackageBpackageCpackageDpackageEaPackageCycleDetectioncycleAcycleBcycleCFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterO testSelector expectedFailsFLFixedObjectCluster testSelector expectedFails presenterpresenterModelFLFixedObjectClusterb testSelector expectedFailsstrategyFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster testSelector expectedFails environment groupProvider builtGroupsFLFixedObjectCluster  testSelector expectedFailssubjectofflineSettingisCachingRessourcesSettingFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClass constructorFLFixedObjectClusters testSelector expectedFailsivarForTestingFLFixedObjectCluster0 testSelector expectedFailstestingEnvironmentFLFixedObjectCluster testSelector expectedFails environment queryResultquerycursoritemsFLFixedObjectCluster% testSelector expectedFailstestingEnvironmentFLFixedObjectClusterZ testSelector expectedFailsFLFixedObjectCluster* testSelector expectedFailsparametersToUse presenterspecInitializationStrategywindowbackendForTestFLFixedObjectCluster^parent properties parenthesesstartstopvalue sourceTextFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster N testSelector expectedFailstestingEnvironment workingCopyrepositoryGroupversions versions2FLFixedObjectClustera testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLVariableObjectCluster outerContext compiledBlocknumArgsreceiverFLFixedObjectCluster& testSelector expectedFailsFLFixedObjectCluster collectionposition readLimit writeLimitstreamcrlfprevious lineEndingFLFixedObjectClusterF sourceNode expressionFLFixedObjectCluster. testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLFixedObjectCluster o testSelector expectedFailscircleFLFixedObjectCluster testSelector expectedFailscontextsessionprocessFLFixedObjectCluster/ testSelector expectedFailstestingEnvironmenttestEnvironmentFLFixedObjectCluster  testSelector expectedFailscallbackFLFixedObjectClusterr testSelector expectedFailsFLFixedObjectClusterx testSelector expectedFailseditorstringFLFixedObjectCluster testSelector expectedFailscshapesfFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUse presenterspecInitializationStrategywindowbackendForTestFLFixedObjectClusteru testSelector expectedFailssubjectFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLFixedObjectCluster; testSelector expectedFailstriangleFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsrootfileSystemModelfileSystemPresenter windowPathUIFLFixedObjectCluster testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster testSelector expectedFailsticker schedulersuspendedDelaysHeapFLFixedObjectCluster5 testSelector expectedFailsparametersToUseFLFixedObjectCluster$ testSelector expectedFailsparametersToUse presenterspecInitializationStrategywindowbackendForTestlayoutFLFixedObjectCluster testSelector expectedFails presenterwindowFLFixedObjectClusternexponentFLFixedObjectCluster testSelector expectedFailsmonitor classFactory logBuilderFLFixedObjectCluster$ nextLinksuspendedContextprioritymyListnameenveffectiveProcess terminatinglevel errorHandlerFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsmFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsmanagerFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster~ testSelector expectedFailsFLFixedObjectCluster` testSelector expectedFailsparametersToUseconfigurationSelectorformatterClass contextClassFLFixedObjectClusterX testSelector expectedFailscanvasFLFixedObjectCluster% testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsthemeDecoratorFLFixedObjectCluster7 testSelector expectedFailstestingEnvironmentuniversalEnvironmentFLFixedObjectClusterh sourceNode bytecodeIndexsequencesizeconsFLFixedObjectClusterm testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailstext candidatescontext processorstream firstValue secondValueFLFixedObjectCluster+ testSelector expectedFailsclassDefinitionFLFixedObjectCluster testSelector expectedFailsbrowserFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterw testSelector expectedFailsreaderFLFixedObjectCluster$ testSelector expectedFailsparametersToUse ffiLibraryFLFixedObjectClusterI testSelector expectedFailstestingEnvironmentxyclassFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectCluster testSelector expectedFailsparametersToUseinstancemethodglobalsencoder optimizationextractBlockInTempFLFixedObjectClusterR outerScope targetClassFLFixedObjectCluster  testSelector expectedFailsclassDefinitionFLFixedObjectClusterB testSelector expectedFailsbackendForTestFLFixedObjectCluster} testSelector expectedFailstestingEnvironmentFLFixedObjectCluster testSelector expectedFailstestingEnvironmentemptynonEmpty collectResultemptyButAllocatedWith20collectionWithElement collectionIncollectionNotIncollectionOfString elementNotIncollectionWithCharacters#otherCollectionWithoutEqualElementscollectionWithoutNilMoreThan5equalNotIdenticalElement elementToCopy'identityBagNonEmptyNoDuplicate5ElementsFLFixedObjectCluster _ testSelector expectedFailsFLFixedObjectClusterW testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailscompletionClasssystemNavigationfetcherexpectedElementsFLFixedObjectCluster6 testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectClusterg sourceNode bytecodeIndexsequence associationFLFixedObjectClusterexecutionEnvironment isEnabled testFailuresshouldSuspendBackgroundFailuresshouldFailTestLeavingProcessesshouldTerminateProcessesFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailst1t2t3t4t5t6t8t9t10t11c1c2c3c4c5c6c7c8c9c10c11t12FLFixedObjectClusterj testSelector expectedFailsFLFixedObjectCluster testSelector expectedFails testClass compileTargetFLFixedObjectCluster testSelector expectedFailstestingEnvironment emptyDict nonEmptyDictnonEmpty5ElementsNoDuplicates indexArray valueArraynonEmpty1ElementcollectionNotIncludedcollectionIncludedassociationNotIn valueNotInkeyNotIndictionaryNotIncludeddictionaryWithDuplicateValuesduplicateValuenonEmptyWithStringkeysdictFLFixedObjectCluster testSelector expectedFailsplotxyFLFixedObjectCluster testSelector expectedFailstestingEnvironmentweekrestoredStartDayFLFixedObjectCluster testSelector expectedFailsparsersubjectFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster" testSelector expectedFails testPackage testClass testMethod testClass2FLFixedObjectClustera testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsparserFLFixedObjectCluster testSelector expectedFails filesystemFLFixedObjectClusterparent properties parenthesesreceiverselectorkeywordsPositions argumentssuperOfFLFixedObjectCluster5 testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClass constructor testClassNameFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectClusterH testSelector expectedFailstestingEnvironmentFLFixedObjectCluster testSelector expectedFailstablestrategyFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectClusteri testSelector expectedFailsFLFixedObjectCluster& testSelector expectedFailsparametersToUse presenterspecInitializationStrategywindowbackendForTestFLFixedObjectCluster testSelector expectedFailsresolverFLFixedObjectCluster  testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClass constructorindexFLFixedObjectCluster | testSelector expectedFailstestingEnvironmentstreamwriterFLFixedObjectCluster  testSelector expectedFailspointFLFixedObjectCluster| testSelector expectedFailsprofmockViewFLFixedObjectCluster!invertedFLFixedObjectCluster testSelector expectedFailsparametersToUse presenterspecInitializationStrategywindowbackendForTestFLFixedObjectClusterL testSelector expectedFailsFLFixedObjectCluster4 testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLFixedObjectCluster numerator denominatorscaleFLFixedObjectCluster testSelector expectedFailscontextsessionprocessFLFixedObjectClusterG testSelector expectedFailstestingEnvironmenttestEnvironmentFLFixedObjectCluster- testSelector expectedFailsintType int32TypevoidTypecharType uint32TypectxresolverFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsclassnumberOfAnnouncementsFLFixedObjectClusterv testSelector expectedFailsexistingstoredmergerFLFixedObjectCluster testSelector expectedFailsparametersToUse presenterspecInitializationStrategywindowbackendForTestFLFixedObjectCluster testSelector expectedFails searchPanelFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLFixedObjectClusterL testSelector expectedFailsellipseFLFixedObjectCluster ! testSelector expectedFailscountFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterA testSelector expectedFailsrootfileSystemModelfileSystemPresenterfilterFLFixedObjectCluster# testSelector expectedFails environmentqueryresult resultItemsfoundSelectorsFLFixedObjectCluster  testSelector expectedFails slotDisplayFLFixedObjectCluster` testSelector expectedFailspasswordManagerFLFixedObjectCluster testSelector expectedFailsparametersToUse presenterspecInitializationStrategywindowbackendForTestlayoutFLFixedObjectCluster3 testSelector expectedFailsparametersToUsetestingEnvironmentmodelclassFLFixedObjectCluster testSelector expectedFailstestingEnvironmentcollectionWithElementotherCollectionnonEmptyempty elementNotIn collectResultexpectedElementByDetect speciesClasselementTwiceIndoWithoutNumberelementexpectedSizeAfterRejectcollectionNotIncluded!nonEmpty5ElementsWithoutDuplicatesameAtEndAndBeginingnonEmpty1Element indexArray subCollectionduplicateElementcollectionWithDuplicateElementcollectionWith4ElementsstringCollectionFLFixedObjectCluster  testSelector expectedFails presenterFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster/ testSelector expectedFailsFLFixedObjectCluster/ testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassclassFLFixedObjectCluster testSelector expectedFailsparametersToUseserviceFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailslistenerSocket clientSocket serverSocketFLFixedObjectClusterKdomainrange interpolate uninterpolateconstantlinearFLFixedObjectCluster# testSelector expectedFails environmentqueryresult resultItemsfoundSelectorsFLFixedObjectCluster  testSelector expectedFailsparametersToUseconfigurationSelectorformatterClass contextClassFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectClustery testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsinstanceFLFixedObjectCluster#[ dictionary orderedKeysFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFails newBuilder originClass usedTrait superClassFLWordObjectCluster!Y#'!Y'"!Y" $!!#( (  ! Y ) )#. !| Y | Y := 1. Y + 1#'Y'Y#( #(  ! Y ) ) #(  ! Y )`#!'!Y'#Y#(!Y)FLFixedObjectCluster testSelector expectedFailsparametersToUse ffiLibraryFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterN} sourceNode bytecodeIndexsequenceselectorsuperOfFLFixedObjectCluster" testSelector expectedFailsclassDefinitionFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster4 testSelector expectedFailsemptyRectangle rectangle1FLFixedObjectCluster$ testSelector expectedFails nonEmptyDictFLFixedObjectCluster testSelector expectedFailsbuilderFLFixedObjectCluster{ testSelector expectedFailsFLFixedObjectClusterx testSelector expectedFailscanvasshapesFLFixedObjectCluster? testSelector expectedFails aDateAndTime aDuration aTimeZonelocalTimeZoneToRestoreFLFixedObjectCluster testSelector expectedFailscompletionClasssystemNavigationfetcherexpectedElementsFLFixedObjectCluster testSelector expectedFailsparserFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster^ testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectCluster  testSelector expectedFailscountercounter2nodenode2FLFixedObjectCluster outerScopetempVars copiedVars tempVectorid tempVectorVarnodeFLFixedObjectCluster,] testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterI testSelector expectedFailsFLFixedObjectCluster . testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailstestingEnvironment firstEvent aSchedulerestoredTimeZoneFLFixedObjectClusterf testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparsersubjectFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectCluster testSelector expectedFailscompilerFLFixedObjectCluster testSelector expectedFailswindowFLFixedObjectCluster  testSelector expectedFails emptySlotsFLFixedObjectCluster~ testSelector expectedFailsFLFixedObjectCluster testSelector expectedFails testPackage testClass testMethod testClass2FLFixedObjectCluster testSelector expectedFails filesystememptyFilesystemFLFixedObjectCluster  testSelector expectedFailspackageCollectionAbstractpackageCollectionsSequenceable packageKernelpackageRegexCorepackageStringsaPackageRelationGraphpackagePackageDependenciespackageApackageBpackageCpackageDpackageMorphicBasepackageTextCoreFLFixedObjectClusterparent propertiescontentsstartstopFLFixedObjectCluster ] testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClass constructorFLFixedObjectCluster testSelector expectedFailscritiqueToolbarFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectClusterW testSelector expectedFailstestingEnvironment workingCopyFLFixedObjectCluster testSelector expectedFailsstateFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectCluster& testSelector expectedFailsparametersToUse presenterspecInitializationStrategywindowbackendForTestFLFixedObjectCluster/ testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClass constructor extraArgumentFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailstestingEnvironmentFLFixedObjectCluster" testSelector expectedFailsparametersToUse presenterspecInitializationStrategywindowbackendForTestFLFixedObjectCluster\ testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLFixedObjectCluster testSelector expectedFailscontextsessionprocessFLFixedObjectClusterV testSelector expectedFailstestingEnvironmenttestEnvironmentFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterl testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUse presenterspecInitializationStrategywindowbackendForTestFLFixedObjectCluster testSelector expectedFails rulesHelperFLFixedObjectClusteru testSelector expectedFailspointFLFixedObjectClustercurrentSession categories guiCategory toolsCategorynetworkCategorysystemCategory userCategoryFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsrootfileSystemModelfileSystemPresenterfilterFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster@ testSelector expectedFails breakpoint1 breakpoint2instance inspection breakpoint3 breakpoint4FLFixedObjectClusterz testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUse presenterspecInitializationStrategywindowbackendForTestFLFixedObjectCluster[ testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLFixedObjectClusterU testSelector expectedFailsFLFixedObjectClusterC testSelector expectedFailsnonIdentityOrderedAssociationsidentityOrderedAssociationsFLFixedObjectCluster4 testSelector expectedFailsFLFixedObjectCluster " testSelector expectedFailsrootfileSystemModelfileSystemPresenterdialogFLFixedObjectClusterX testSelector expectedFails vennDiagramFLFixedObjectCluster testSelector expectedFailsticker schedulersuspendedDelaysHeapFLFixedObjectCluster  testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectClusterH testSelector expectedFailsparametersToUseserviceFLFixedObjectCluster testSelector expectedFailsparametersToUse presenterwindowbackendForTestFLFixedObjectCluster testSelector expectedFailscoderFLFixedObjectClustertdomainrange interpolate uninterpolatelinearbasepositiveFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectCluster8 testSelector expectedFailsparametersToUseconfigurationSelectorformatterClass contextClassFLFixedObjectCluster  testSelector expectedFailstestingEnvironmenthashFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster= testSelector expectedFailsFLFixedObjectCluster testSelector expectedFails environment groupProvider builtGroupsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster_ testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsmonitor classFactory logBuilder inputEntry inputEntriesFLFixedObjectClusterk testSelector expectedFailsparametersToUseconfigurationSelectorformatterClass contextClassFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster? testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUseinstancemethodglobalsencoder optimizationFLFixedObjectCluster7 testSelector expectedFailsclassDefinitionFLFixedObjectCluster testSelector expectedFailstext candidatescontext processorstreamFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsnewClass superClasssubClass newClass2 superClass2numberOfAnnouncementsnewTraitFLFixedObjectCluster testSelector expectedFailspluginpackage testToReRunconf reRunconftestCaseFLFixedObjectCluster testSelector expectedFails environment groupProvider builtGroupsinstalledWatchpointFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster< testSelector expectedFailsFLFixedObjectCluster| testSelector expectedFailscompletionClasssystemNavigationfetcherexpectedElementsFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectCluster testSelector expectedFailsparametersToUseinstancemethodglobalsencoder optimizationFLFixedObjectCluster sourceNode bytecodeIndexsequence destination successorboolean otherwiseFLFixedObjectCluster testSelector expectedFailsclassDefinitionFLFixedObjectCluster testSelector expectedFailsmanagerwindowFLFixedObjectCluster testSelector expectedFailstestingEnvironment emptyDict nonEmptyDictnonEmpty5ElementsNoDuplicates indexArray valueArraynonEmpty1ElementcollectionNotIncludedcollectionIncludedassociationNotIn valueNotInkeyNotIndictionaryNotIncludeddictionaryWithDuplicateValuesduplicateValuenonEmptyWithStringFLFixedObjectCluster testSelector expectedFailstallyFLFixedObjectClusterW testSelector expectedFailsFLFixedObjectCluster: testSelector expectedFailstestingEnvironmentFLFixedObjectCluster  testSelector expectedFailscompletionClasssystemNavigation completionFLFixedObjectCluster testSelector expectedFailsparsersubjectFLFixedObjectCluster> testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectCluster* testSelector expectedFailsFLFixedObjectCluster sourceNode bytecodeIndexsequenceindexFLFixedObjectCluster  testSelector expectedFailsaSliderwindowFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster; testSelector expectedFailschartFLFixedObjectCluster  testSelector expectedFailsparsersubjectFLFixedObjectCluster testSelector expectedFailsaPDPackageCyclepackageApackageBpackageCFLFixedObjectCluster H testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFails presenterpresenterModelpreviousLogSettingFLFixedObjectCluster testSelector expectedFailsstrategyFLFixedObjectCluster) testSelector expectedFailstestingEnvironmentFLFixedObjectCluster announcer propertiespaintpathborderparentisFixedencompassingRectanglemodelisDirty entryIndex baseRectanglematrixconnectedLinesshouldUpdateLines cornerRadiusFLFixedObjectCluster33 testSelector expectedFailsFLFixedObjectCluster# testSelector expectedFails environmentqueryresult resultItemsfoundSelectorsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectClusterparent properties parenthesesnamevariablestartFLFixedObjectCluster= testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClass constructorFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFails environment queryResultquerycursoritemsFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectCluster" testSelector expectedFailsFLFixedObjectCluster, testSelector expectedFailsparametersToUse presenterspecInitializationStrategywindowbackendForTestFLFixedObjectClusterparent properties parenthesesstartstop isByteArraycontents openerSizeFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster( testSelector expectedFailsparametersToUse presenterspecInitializationStrategywindowbackendForTestFLFixedObjectCluster testSelector expectedFailsexpressionFinderFLFixedObjectCluster< testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLFixedObjectCluster  testSelector expectedFails coordinatesFLFixedObjectCluster testSelector expectedFails testedValueFLFixedObjectClusterk testSelector expectedFailstestingEnvironmenttestEnvironmentFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailscacheFLFixedObjectCluster  testSelector expectedFails identifier preferencesoldPreferencesFLFixedObjectCluster7 testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsparametersToUse presenterspecInitializationStrategywindowbackendForTestFLFixedObjectCluster9 testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLFixedObjectClustery testSelector expectedFailsvectorFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster2 testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsemptybFLFixedObjectCluster testSelector expectedFailsticker schedulersuspendedDelaysHeapFLFixedObjectCluster2 testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectClusternanossecondsFLFixedObjectCluster$ testSelector expectedFailsparametersToUse presenterspecInitializationStrategywindowbackendForTestlayoutFLFixedObjectCluster; testSelector expectedFailsmessageFLFixedObjectCluster testSelector expectedFailsmonitor classFactory logBuilderFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectClusterJ testSelector expectedFailsFLFixedObjectClusterY testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFails classFactory impactFilterFLFixedObjectCluster testSelector expectedFailsparametersToUseconfigurationSelectorformatterClass contextClassFLFixedObjectCluster testSelector expectedFailscanvasFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster^ testSelector expectedFailsclassDefinitionFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster- testSelector expectedFailstext candidatescontext processorstreamFLFixedObjectCluster  testSelector expectedFailspluginpackagepluginConfigurationFLFixedObjectCluster  testSelector expectedFailsresultbuilderFLFixedObjectCluster testSelector expectedFailswriter fileStream fileReferenceFLFixedObjectCluster  testSelector expectedFailsparametersToUse ffiLibraryFLFixedObjectClusterX testSelector expectedFailscanvasFLFixedObjectCluster testSelector expectedFailscompletionClasssystemNavigationfetcherexpectedElementsFLFixedObjectCluster6 testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectCluster testSelector expectedFailsparametersToUseinstancemethodglobalsencoder optimizationextractBlockInTempFLFixedObjectClusterG testSelector expectedFailsclassDefinitionFLFixedObjectClusterw testSelector expectedFailsbackendForTestspotterFLFixedObjectCluster$ testSelector expectedFailstestingEnvironmentFLFixedObjectCluster1 testSelector expectedFailstestingEnvironment emptyDict nonEmptyDictnonEmpty5ElementsNoDuplicates indexArray valueArraynonEmpty1ElementcollectionNotIncludedcollectionIncludedassociationNotIn valueNotInkeyNotIndictionaryNotIncludeddictionaryWithDuplicateValuesduplicateValuenonEmptyWithStringFLFixedObjectClusterZ testSelector expectedFailscurrentStrategyFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailscompletionClasssystemNavigationfetcherexpectedElementsFLFixedObjectClusterj testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  sourceNode bytecodeIndexsequencenameFLFixedObjectCluster testSelector expectedFailsmorphFLFixedObjectCluster testSelector expectedFailst1t2t3t4t5t6t8t9t10t11c1c2c3c4c5c6c7c8c9c10c11t12cacbtatbtctdFLFixedObjectCluster testSelector expectedFails testClass compileTargetFLFixedObjectCluster testSelector expectedFailstestingEnvironment emptyDict nonEmptyDictnonEmpty5ElementsNoDuplicates indexArray valueArraynonEmpty1ElementcollectionNotIncludedcollectionIncludedassociationNotIn valueNotInkeyNotIndictionaryNotIncludeddictionaryWithDuplicateValuesduplicateValuenonEmptyWithStringkeysdictFLFixedObjectClusterW testSelector expectedFailsxyplotFLFixedObjectCluster  testSelector expectedFailstestingEnvironmentFLFixedObjectCluster testSelector expectedFailsparsersubjectFLFixedObjectCluster parent propertiesselectorkeywordsPositions argumentsleftrightpragmaFLFixedObjectCluster5 testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectCluster testSelector expectedFailscachecompiledMethodFLWordObjectClusterÝSeleflecte/zlugi;meplK:wigurSXFixe\Vlustu t6btor pMFail9buiQ 4ixedRustet tek or er3ailsJ9PfiletpileR 2FLF۞ctClx h2lectiZtedF1\amet9 ffi"YFLFi$Aw tątor  pejFail\edForltter8}Objeu;rstSe%xpecM`,otes{~6ronm aexedOݴćsterub> teso%r exCils~Znvir[mptyAEmptOTnEmp3ntsNmtes ay v}Dyno!leme}Gݝctio[ CudedshionI9asso#ڣotInojtInt!dicUp otInSictiq I8hDupluesd\teVa+mptyngFSjectSߓ,SeleSecte\Durreh!gyFm&fjectﭹ$eCSelewDecte[%LFixS"T Clus MS ctoreddFai|7edOb&Rterotest exp-lscnCla4bmNavGHfetcBctedFLFixedObjectClusterF testSelector expectedFailsFLFixedObjectCluster#name environmentFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster^ announcer propertiespaintpathborderparentisFixedencompassingRectanglemodelisDirty entryIndex attachPointfromtomarkers startPointendPointFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterY testSelector expectedFails testPackageFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFails fileToZipzipsubdirzipFilefsFLFixedObjectCluster! testSelector expectedFailsFLFixedObjectClusteri testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClass constructorFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectClustercacheFLFixedObjectCluster testSelector expectedFailstableuiWaitingSemaphoreFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectCluster4 testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClass constructorindexFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailstestingEnvironmentversionvisitedFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster0 testSelector expectedFailstestingEnvironment classFactoryFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster h testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLFixedObjectCluster testSelector expectedFailscontextsessionprocessFLFixedObjectCluster testSelector expectedFailstestingEnvironmenttestEnvironmentFLFixedObjectClusterG testSelector expectedFailsintType int32TypevoidTypecharType uint32TypestackFLFixedObjectClustero testSelector expectedFailscommandFLFixedObjectCluster* testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsmorphFLFixedObjectCluster testSelector expectedFailsclassnumberOfAnnouncementsFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectClusterI testSelector expectedFailsFLFixedObjectCluster"= testSelector expectedFailsparametersToUse presenterspecInitializationStrategywindowbackendForTestFLFixedObjectCluster3 testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLFixedObjectCluster testSelector expectedFailspolygonFLFixedObjectCluster testSelector expectedFails architectureFLFixedObjectClusterX testSelector expectedFailsFLFixedObjectClusterv testSelector expectedFailsrootfileSystemModelfileSystemPresenterfilterFLFixedObjectCluster/ testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster, testSelector expectedFailsparametersToUseFLFixedObjectCluster  testSelector expectedFailstestingEnvironmentFLFixedObjectCluster& testSelector expectedFailsparametersToUse presenterspecInitializationStrategywindowbackendForTestlayoutFLFixedObjectClusterg testSelector expectedFailsFLFixedObjectCluster   testSelector expectedFailstestingEnvironmentemptynonEmptyone elementIn elementNotInsubCollectionNotIncollectionOfFloatanotherCollectionnonEmpty1Element subCollectioncollectionWithSubCollectionsubCollectionInNonEmptycollectionWithoutNil collectResultcollectionOfLargeIntegerscollectionWith5ElementsFLFixedObjectClusterr testSelector expectedFailsFLFixedObjectClustere testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassinstanceFLFixedObjectClusterL testSelector expectedFailsparametersToUseFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster2 testSelector expectedFailsFLRectangleClusterFLFixedObjectCluster(M testSelector expectedFails environmentqueryresult resultItemsfoundSelectorsFLFixedObjectCluster] testSelector expectedFailsparametersToUseconfigurationSelectorformatterClass contextClassFLFixedObjectCluster. testSelector expectedFailsforkvalueFLFixedObjectCluster testSelector expectedFailsmethodNameEditorFLFixedObjectCluster  testSelector expectedFailsparametersToUsecanvasanimationClassFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsclassDefinitionFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterF testSelector expectedFails newBuilder originClass usedTrait superClassFLFixedObjectCluster testSelector expectedFailsparametersToUse ffiLibraryFLFixedObjectCluster# testSelector expectedFailsunicodeGeneratorFLFixedObjectClusterH testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectCluster testSelector expectedFailsparametersToUseinstancemethodglobalsencoder optimizationextractBlockInTempextractBlock2InTempFLFixedObjectClusteri outerScopetempVars copiedVars tempVectorid tempVectorVarnodeFLFixedObjectClustera testSelector expectedFailsclassDefinitionFLFixedObjectCluster  testSelector expectedFailstestingEnvironmentFLFixedObjectClusterV testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsbuilderFLFixedObjectCluster testSelector expectedFailstestingEnvironment emptyDict nonEmptyDictnonEmpty5ElementsNoDuplicates indexArray valueArraynonEmpty1ElementcollectionNotIncludedcollectionIncludedassociationNotIn valueNotInkeyNotIndictionaryNotIncludeddictionaryWithDuplicateValuesduplicateValuenonEmptyWithStringFLFixedObjectCluster  testSelector expectedFailsshapesconsearchcanvasFLFixedObjectCluster@- testSelector expectedFails aDateAndTime aDuration aTimeZonelocalTimeZoneToRestoreFLFixedObjectCluster testSelector expectedFailscompletionClasssystemNavigationfetcherexpectedElementsFLFixedObjectCluster messageTextnodeFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectCluster testSelector expectedFailsparserFLFixedObjectCluster\ testSelector expectedFailsFLFixedObjectCluster" testSelector expectedFailstestingEnvironmentFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster V testSelector expectedFailsvisitorobjectdebuggerFLFixedObjectCluster  testSelector expectedFailsmorphFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster: testSelector expectedFails testClass compileTargetFLFixedObjectCluster d testSelector expectedFailsparametersToUse decorationFLFixedObjectCluster  testSelector expectedFailstestingEnvironment aStopwatchaDelayFLFixedObjectClustera testSelector expectedFailsparametersToUsesnippetFLFixedObjectCluster testSelector expectedFailsparsersubject splitterClasslinkFLFixedObjectClusterG testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClustersxshxxshysyyFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFails testPackage testClass testMethod testClass2FLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsbaseUrlofflineSettingFLFixedObjectClusterW testSelector expectedFailsaPackageaSecondPackagepackageApackageBpackageCFLFixedObjectClusterR parent propertiesscopeselectorkeywordsPositionsbodysource argumentspragmas replacementsnodeReplacementscompilationContext bcToASTCacheFLFixedObjectCluster  testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClass constructorFLFixedObjectClusterU testSelector expectedFails resetWindowFLFixedObjectCluster+rgb cachedDepthcachedBitPatternalphaFLFixedObjectCluster  testSelector expectedFailstestingEnvironmentFLFixedObjectCluster  testSelector expectedFailsivarForTestingFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailscolumnFLFixedObjectClusterL  testSelector expectedFailstestingEnvironmentFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterE testSelector expectedFailsFLFixedObjectCluster& testSelector expectedFailsparametersToUse presenterspecInitializationStrategywindowbackendForTestFLFixedObjectCluster& testSelector expectedFailsparserFLFixedObjectCluster testSelector expectedFailsresolverFLFixedObjectCluster parent propertiesscopeselectorkeywordsPositionsbodysource argumentspragmas replacementsnodeReplacementscompilationContext bcToASTCacheFLFixedObjectCluster F testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClass constructor extraArgumentFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster+ testSelector expectedFails filesystemguidevisitedFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLFixedObjectCluster - testSelector expectedFails firstCommand subCommand1group subGroup1 subGroup2FLFixedObjectCluster0 testSelector expectedFailscontextsessionprocessdebuggedThisContextFLFixedObjectCluster  testSelector expectedFailstestingEnvironmenttestEnvironmentnumberOfAnnouncementsFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLByteObjectClusterj#(np#(n#(n@> #(n > FLFixedObjectClusterD testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUse presenterspecInitializationStrategywindowbackendForTestFLFixedObjectCluster testSelector expectedFailsoccurrencesBrowserPresenterFLFixedObjectClusterE testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLFixedObjectCluster  testSelector expectedFailsrayFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterU testSelector expectedFails slotDisplayFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterC9 testSelector expectedFailsnonIdentityOrderedAssociationsidentityOrderedAssociationsFLFixedObjectClustern testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectClusterC testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectClusterz testSelector expectedFailsparametersToUseFLFixedObjectClusterc testSelector expectedFailsbackendForTest application presenterFLFixedObjectCluster sourceNode startSequencenumArgs propertiestempMappragmasadditionalLiteralscompiledMethodcompilationContext irPrimitiveFLFixedObjectClusterD testSelector expectedFailssmtpsocketFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectCluster  testSelector expectedFails environment groupProvider builtGroupsFLFixedObjectCluster{ testSelector expectedFailsFLFixedObjectClusterv testSelector expectedFailsparametersToUseconfigurationSelectorformatterClass contextClassFLFixedObjectClusterT testSelector expectedFailsoldValueFLFixedObjectCluster testSelector expectedFails historyListsavedFLFixedObjectCluster  testSelector expectedFailsinstancebackendFLFixedObjectCluster}nameescapingindexscopeusageFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsdpnodeobserverFLFixedObjectCluster/ testSelector expectedFailsmonitor classFactory logBuilder inputEntry inputEntriesFLFixedObjectCluster, testSelector expectedFailsFLFixedObjectClusterm testSelector expectedFails newBuilder originClass usedTrait superClassFLFixedObjectCluster T testSelector expectedFailsFLFixedObjectCluster$1 testSelector expectedFailsparametersToUse ffiLibraryFLFixedObjectCluster  testSelector expectedFails operationsFLFixedObjectClusternfilehandleforWrite semaphoresemaphoreIndexFLFixedObjectClusterq testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLByteObjectCluster#NJFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster! testSelector expectedFailsparametersToUseinstancemethodglobalsencoder optimizationliteralExampleexpectedLiteralValueFLFixedObjectCluster sourceNode bytecodeIndexsequenceliteralFLFixedObjectClustero testSelector expectedFailsclassDefinitionFLFixedObjectClusterV testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsdrTestFLFixedObjectCluster'  testSelector expectedFails environmentqueryresult resultItemsfoundSelectorsinstalledBreakpointsFLFixedObjectClusterz testSelector expectedFailscanvascameraFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailscompletionClasssystemNavigationfetcherexpectedElementsFLFixedObjectCluster? testSelector expectedFailsFLFixedObjectClusterK testSelector expectedFailsbrowsertoolcontextFLFixedObjectCluster[ testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectCluster* testSelector expectedFailsparametersToUseinstancemethodglobalsencoder optimizationoptimisationsActivereplacedMethodsFLFixedObjectCluster . testSelector expectedFailsmanagerFLFixedObjectCluster xScaleyScalechartstyler masterShapeboxaxisXaxisY formatStringFLFixedObjectCluster8 testSelector expectedFailstestingEnvironmentfullempty collectResultemptyButAllocatedWith20 elementNotIncollectionOfFloatcollectionIncludednonEmpty1elementwithoutEqualElementscollection5ElementscollectionWith3ElementscollectionOfNonIdenticalFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster6 testSelector expectedFailstestingEnvironmentaTimejanuary23rd2004 june2nd1973FLFixedObjectCluster testSelector expectedFailscompletionClasssystemNavigation statisticsFLFixedObjectCluster testSelector expectedFailsparsersubject splitterClassFLFixedObjectClusterp testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectCluster selector arguments lookupClassmethodFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsaSliderwindowFLFixedObjectCluster testSelector expectedFails environment definitionFLFixedObjectCluster1 testSelector expectedFailsFLFixedObjectClustery testSelector expectedFailsFLFixedObjectCluster> testSelector expectedFailsparsersubjectFLFixedObjectCluster  testSelector expectedFailsaPackageDependencyanInternalPackageDependencypackageApackageBFLFixedObjectClusteru testSelector expectedFailscritiqueBrowserrulesFLFixedObjectClusterZ testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectClusterE suitestream suitePosition suiteTime suiteFailures suiteErrorsnodeName stageNameprogressFileNameprogressStreamshouldSerializeErrorFLFixedObjectCluster) testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterS testSelector expectedFails presenterpresenterModelFLFixedObjectCluster7 testSelector expectedFailstestingEnvironmentFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterl testSelector expectedFailsFLFixedObjectCluster streamencoderFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster& testSelector expectedFailslocatorFLFixedObjectCluster o testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClass constructorFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailstestingEnvironment repositorydictFLFixedObjectCluster  testSelector expectedFails environment queryResultquerycursoritemsFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectCluster.P testSelector expectedFailsparametersToUse presenterspecInitializationStrategywindowbackendForTestFLFixedObjectClusterS testSelector expectedFails filesystemFLFixedObjectClusterY testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLFixedObjectCluster testSelector expectedFailssessionprocesscontextFLFixedObjectCluster testSelector expectedFailstestingEnvironmenttestEnvironmentFLFixedObjectCluster testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster(  testSelector expectedFailsparametersToUse presenterspecInitializationStrategywindowbackendForTestFLFixedObjectCluster, testSelector expectedFailsmatchToolPresenterFLFixedObjectCluster n testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLFixedObjectCluster  testSelector expectedFailsinstVarFLFixedObjectCluster testSelector expectedFailstestingEnvironmenttestEnvironmentFLFixedObjectClusterK testSelector expectedFails senderCtxuffiCtx lastUffiCtxFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterU testSelector expectedFails previewerFLFixedObjectCluster testSelector expectedFailseditortextAreaFLFixedObjectCluster2 testSelector expectedFailsaBlockcontextOfaBlockFLFixedObjectCluster : testSelector expectedFailscachehaltController testObjecttrace oldTracer breakpointFLFixedObjectCluster  testSelector expectedFails identifier preferencesFLFixedObjectClusteru testSelector expectedFailsFLFixedObjectClusterO testSelector expectedFailsparametersToUse presenterspecInitializationStrategywindowbackendForTestFLFixedObjectClusterw testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectClusterX testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterf testSelector expectedFailstestingEnvironmentnonEmpty5ElementsNoDuplicateempty elementNotInelementTwiceIncollectionWithEqualElementsnonEmpty1Element"collectionWithSameAtEndAndBegining collectionWith1TimeSubcollection collectionWith2TimeSubcollectioncollectionNotIncludednonEmptySubcollectionelementInNonEmptyreplacementCollectionSameSizesortedCollectionFLFixedObjectCluster* testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsrootfileSystemModelfileSystemPresenterdialogwindowFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterk testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster6 testSelector expectedFailsticker schedulersuspendedDelaysHeapFLFixedObjectCluster testSelector expectedFailsparametersToUseFLFixedObjectCluster testSelector expectedFailsparametersToUse presenterspecInitializationStrategywindowbackendForTestlayout classFactoryFLFixedObjectClusterioptions environmentproductionEnvironment parserClasssemanticAnalyzerClassastTranslatorClassbytecodeGeneratorClass encoderClassastTransformPluginsastParseTransformPluginsrequestorScopeClassbindingscompiledMethodClass semanticScopeFLFixedObjectClusterm testSelector expectedFailsFLFixedObjectCluster domainrange interpolate uninterpolateiuFLFixedObjectCluster / testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsreg1reg2resultFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster)t testSelector expectedFailstestingEnvironmentchangesworkingEnvironment changeFactoryFLFixedObjectCluster testSelector expectedFailsmonitor classFactory logBuilder chunkExporter chunkImporterFLFixedObjectCluster testSelector expectedFailsparametersToUseconfigurationSelectorformatterClass contextClassFLFixedObjectCluster4 testSelector expectedFailsamStateFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsclassDefinitionFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterkeysvaluessizeFLFixedObjectClusterb testSelector expectedFailstext candidatescontext processorstreamFLFixedObjectClusterJ testSelector expectedFailsresultbuilderFLFixedObjectCluster testSelector expectedFails presenterFLWeakVariableObjectClusterSFLFixedObjectCluster testSelector expectedFailsmergerFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUse ffiLibraryFLFixedObjectCluster testSelector expectedFailscompletionClasssystemNavigationfetcherexpectedElementsFLFixedObjectCluster s testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLVariableObjectCluster4                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       I                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               FLFixedObjectCluster8R testSelector expectedFailsparametersToUseinstancemethodglobalsencoder optimizationextractBlockInTempFLFixedObjectCluster   sourceNode bytecodeIndexsequenceFLFixedObjectCluster testSelector expectedFailsclassDefinitionFLFixedObjectCluster testSelector expectedFails prototypesFLFixedObjectClustere testSelector expectedFailstestingEnvironment emptyDict nonEmptyDictnonEmpty5ElementsNoDuplicates indexArray valueArraynonEmpty1ElementcollectionNotIncludedcollectionIncludedassociationNotIn valueNotInkeyNotIndictionaryNotIncludeddictionaryWithDuplicateValuesduplicateValuenonEmptyWithStringFLFixedObjectCluster testSelector expectedFailscurrentStrategy brokenRuleFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster3 testSelector expectedFails aTimespan aDurationaDateFLFixedObjectCluster testSelector expectedFailscompletionClasssystemNavigationfetcherexpectedElementsFLFixedObjectCluster  testSelector expectedFailsparsersubjectFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster outerScopetargetReceiverFLFixedObjectCluster testSelector expectedFailsmorphhandeventFLFixedObjectCluster textColortextFonttextSize tickColor spineColorFLFixedObjectClusterI testSelector expectedFailst1t2t3t4t5t6t8t9t10t11c1c2c3c4c5c6c7c8c9c10c11t12FLFixedObjectCluster  testSelector expectedFailsFLFixedObjectClusterC testSelector expectedFails testClass compileTargetFLFixedObjectCluster. testSelector expectedFailstestingEnvironment emptyDict nonEmptyDictnonEmpty5ElementsNoDuplicates indexArray valueArraynonEmpty1ElementcollectionNotIncludedcollectionIncludedassociationNotIn valueNotInkeyNotIndictionaryNotIncludeddictionaryWithDuplicateValuesduplicateValuenonEmptyWithStringFLFixedObjectCluster testSelector expectedFailsplotyFLFixedObjectCluster testSelector expectedFailsparsersubjectFLFixedObjectCluster testSelector expectedFailsc1c2FLFixedObjectCluster~Jparent propertiesvaluestartFLFixedObjectClusterr testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectCluster0 testSelector expectedFailscheckerFLFixedObjectClusterQ testSelector expectedFailscurrentCompilerFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster ! testSelector expectedFailsFLFixedObjectCluster) testSelector expectedFailsFLFixedObjectCluster- testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster 2 testSelector expectedFailsFLFixedObjectCluster` parent properties parenthesesleftrightcolons argumentsbarbodyscope bcToASTCacheFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClass constructorFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectCluster- testSelector expectedFailstestingEnvironmentFLFixedObjectCluster*s testSelector expectedFailsparametersToUse presenterspecInitializationStrategywindowbackendForTestFLWordObjectClusterTFLFixedObjectClusterq testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectCluster testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster testSelector expectedFailsplayerFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster&( testSelector expectedFailsparametersToUse presenterspecInitializationStrategywindowbackendForTestFLFixedObjectCluster5registeredClassNameFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLFixedObjectCluster6name environmentFLFixedObjectClusterA testSelector expectedFailscontextsessionprocessFLFixedObjectCluster  testSelector expectedFailstestingEnvironmenttestEnvironmentFLFixedObjectClusterx testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFails environmentbrowsernavigationStateFLFixedObjectCluster testSelector expectedFailseditorFLFixedObjectClusterH testSelector expectedFailsivarForTestingFLFixedObjectCluster), testSelector expectedFailsclassFLFixedObjectClusterm testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFails preferences persistencecheckerFLFixedObjectCluster testSelector expectedFailsmodel environmentFLFixedObjectClusterr testSelector expectedFailsparametersToUse presenterspecInitializationStrategywindowbackendForTestFLFixedObjectClusterp testSelector expectedFailsparametersToUsetestingEnvironmentmodelFLFixedObjectCluster testSelector expectedFailsmatrixFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterD testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsrootfileSystemModelfileSystemPresenterfilterFLWordObjectClusterzm.2 N!/ N=_)[EQbD 9 !sA #SHQap$#Z'%>/I  "  .H  '#.7AL)w3!' 00  B =>5  t ) /g-9  u Q    L*+)  /3(;M`GOY`DEKR&e y`R31-& S01Z#y-^%N.F&TS   1 x~ H)$14 ObZ"RsB0S/5zKItQ,: . 0c!,xO D&     1(I6= KS@%&$(&)#5;= Dg- F+7GV/e  }P 1=l`5$%+' 9 .{rg4   [ 2PLPcq= (9.  "1,!$#XPx %tz6W MT"l ]g x _z=4  LN'<?! /34w 1 JhJQ11c  &+0K W % _ DL 7+&$9 ym1;Q! 1~^-r ?c3.].9 ; 4,n  % D!/%] #.18?UdF#bB$+  ^ tj?%  ? .i0Pfo@5 &  ~] A.#Y++ $at> . H'  -$ 0) &eQaJlc %#(-l}f4^0,R4 v3-8!!L))8Hu<510 C  &>im QV(\w%1- ='5E oT'Ex [( -p5t$O5$ &@" O#!;"~  :" <a!5W\;?#w jH{% ;#/1%%( PS)b `_Rb? 9 &.u$T"*A4(z *3 v p%'$@7  07[  &V$ ,z3'""j%&I0  : 6& .47~1t )d<  S\$>Xni =,2RrP*W", *6nO`!M ($< :-` m# +7t5kp&.Q;V -&S b37C.(4< +/A b $;j5 2=*>Z;X_"> 8 `59 E$%/ gG*z4N0!EK   KS\%j w>S ; R # C )5[.;T-7 ,~%# .A\ B.x$  m   AcjZ 71Jgs  .TZ9HVb 6G [1)Hy *'  + +W$C /c.#}.<::@ $-r kZ0p|7 @!47X E;   %-;#G() '& &!P cN%C^_n+6Iv !?*sV"$(8? 6G $nl Uku.-#n|)$%T 7O j}  !.# rD ,{#=& . ,n.) Z$+G-8, [:@.6$ C#?T (/{o V,1O=)P",O$ 1 XG ! `o$> ~8 61U:5H!:ydO)CQ'-'8~!A);.A,aJJZfP-|1&eY  %(!0<K ?E .j  +3ngloY:OC  U4A^ /`YV"H 1*4HR 1?`Z&   -!Nt  4'8,C63B29h7 s .J / 2oA [! !(%U D=2# b'\$"%Of$/D $  (C  .E:x- 5u'5E@0&{UWfKQ#.7A4 ,$ <&z2 %~Sb D y   " q 4".*3S ^MIm`  ]U z# 3b[}K]8-@X+O&% :  8 } /3<V  7o*+</Z V,2 { ;DP3 $)/G|gaT_# -W8IG'0  "l"5>1 &_=J!)0'\,@5d   )1 c :>173|0XB?V(t _*9% ,L " /w 0f]gJ0( BD8>^dk%.$-5= +o&* /8  /I&#%3H y=K#1 Nl 2) $ /Lk:6B9>Xf=?C} n*`vKWxq0065k 3 uU*0>3 o,-4!%. GFW]b@&q*<=3!5G? RB!,'    i+; y Y 4<*' ) d !-  3  ,Z*$'JgB2  j+-  %:@#7 CQij)( E&   "<P $T#'/3x 0X /H 6.M  9c*(   s% e D."%-4% &, dI !<7N  /;$`0>m :JX !$&d 2:@&   86M,+L9J7) &8d=b'( H>s,X G <(* C"B Z$v78  gn F. 3C3 d*  .lFM%"7"**GR x= 3 i o =K1-j$n)Q"    2#Hs k  7% b #Ef _m%1%QqER`9A".4AK' %rez)&00n 33i5$v q be9!Zc$=x>-(6N:;1T_h%( "?R6Y&= +e}q1# [nm| yVp 91 S/(P('=B +Gr(E5s rSK!<,8 0$[s,\I+3rv$P#8behG." 0> 4 4=IF S!E< >"kyN> / "e/-:0 *l6&)7pU5 )4-pCI-m%PD(E 6*8B,[ %=_GVlFL/ Cz!<])_;R0?}^:T[=tYC " . *Km4=IHJlu.( [ 53r(  '<$j9k5E,&^}& .5: j?  .+|)b-:u\2! ) 4ACP1!N4@snJa_'-&/ 3  {M\>$3"YRX-Ze  ] $D f2/ ;R $A $Y   =844  qB=   ! a   0;1  1%G$9D J   &"!(d, -@   "W %m"/G6 m 09 E6 D&] ,6 :5@   *4  )  ?hpDd f`/Hl,8%%4b &0J2 8<!=M($$JU,;HVb  A,",D UC;RFv%.MV   %GG#P &y M%" !*v|1$,;.7w+1%,y0n+t", SU!$"%BU-x",Xny!}"+r 652!Z*$q :#uA1&g@p4<  %4*\ * 0E>T5 +@/%%\!>\0%( ^!""2VI\bg3 v4?54"F|x\i#8F7N3$ ,D#R:$ !J #cn&2  6M5:4*v5Al(o?%( $j r0& >ENV>TdEn',BH $ 88V +=.=-oc'@>i 0j 6 ='H6?3+V- "FD1 pK!*qM.=+o/=-  3kzn&F#le -#*F ),.K_}- G b%./?v9k.JK5O2C|DREVP P?+.A(R57;`9')zN8  eo1 ,[l7:&;A ~&/4&!1BA +    $&  _+- &i"+LHO-W "BW H3W <!)#<,,~o=j,!,r! )ew O(,&Zq0u5NV >>0N  3,'z# 36  F=79Z#O-N&l  Qu$ :|! Q%; E-) ,]0 B5L  *.uCDE.&sj#o )5/[k/ %(!-"'$! oT ; Rd  ;DN6M T 4  tr[**:mLB/EkD-  )07@K- IxB 4G Z$*1 (e3MH:!# ) dF2<%^#  B/'2>eZ (E4:{&4G"@AO6hc&R41* *2@<SQ&ME@L AYR1q/-"l ,/.,<zc-  s  X68J$y  *+)  &u ,):/[ p-p~G+%`"  $%'k") * "wl ' )8f h{ P )Y-Pb#  }$*-3JX5!^0- [ "w` g*3:H&W6 k c > @ #.:(+7<!1 j7 l >  4Yo&f#4|,( Yt k$/8B =I3^q#$Z $ ,\ .  6G_m^(m:F*2@&CJbhTb"697-i4O&,. % {o{8(&-/Z$?7<3 ;M#z) ,;1L7 <691aMaA9Y+ S#  F(Yox2Fwd!(F$; 9P]k'r d3zYG'v.a*) RS , )=Z#$a@ 5I (.5<R6 #Z}8$)X.K"e $1(](*':32"#FAV4?O)\z2Ppb%CM&BZU, % \o?  `T%. / Mfl< C ,"L"E .1s*"=X0&  M}(M @NW  \D &Ka !)?K%6<;KYw (ZMwN MYz)2:B#3NO$*d(/~-k ;D+cw3 PI # m<,:d^'D!.j $7|- #3 -b'/(!/ &=Y A2!BY+e #Vzq>c{7s .  J-Y`$<335",.- !-GUe%2$  &4?Sk: l6"  % ( v <t#3A)(>+  H.`/ !J,&4$/8B C@+Y ,OND  *):I   ;OL%v{$L6w[CR%Ui= fA? w(?`@$4G;v7 W ? W z %8' # 2,$ Y` " 2/,CL &$M#*G^&js5m0'56k #1 .*  *(b %  h* ;2 ";~?H |%ITHU"(8") $ 8$s $OjfKyi1,%2%"R%jyB4.2M &"   ?    ,#C8-2> @:FLFixedObjectCluster( testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster d testSelector expectedFailsvarFLFixedObjectClusteri testSelector expectedFailsparametersToUseFLFixedObjectCluster' testSelector expectedFailsparametersToUse presenterspecInitializationStrategywindowbackendForTestlayoutFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster @ testSelector expectedFailslog logBuilderFLFixedObjectClusterhB testSelector expectedFailstestingEnvironmentemptynonEmpty collectResultemptyButAllocatedWith20otherCollectionindexCollectioncollectionWithElementcollectionOfFloat elementNotIn indexArraywithoutEqualElementsduplicateElementcollectionWithDuplicateElementcollection5ElementscollectionWith4ElementscollectionOfCollectionsOfInts collectionOfCollectionsOfStringswithCharacterssimpleCollectioncollectionOfStringcollectionWithSameBeginingEndFLFixedObjectClustera testSelector expectedFails decoratoradapterwidgetFLFixedObjectCluster testSelector expectedFailsmorphFLFixedObjectCluster testSelector expectedFailscanvasboxesFLFixedObjectClusterS+ testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsparametersToUseFLFixedObjectClustero testSelector expectedFailsFLFixedObjectCluster' testSelector expectedFails environmentqueryresult resultItemsfoundSelectorsFLFixedObjectClusterS testSelector expectedFailsparametersToUseconfigurationSelectorformatterClass contextClassFLFixedObjectClusterc testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsmethodNameEditorFLFixedObjectCluster& testSelector expectedFailsFLFixedObjectCluster] dictionary orderedKeysFLFixedObjectCluster  sourceNode bytecodeIndexsequence destination successorFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsclassDefinitionFLFixedObjectClusterktestCasemaxTimeForTest testCompletedservicesFLFixedObjectCluster5 testSelector expectedFailstestingEnvironment classFactoryFLFixedObjectClusterw testSelector expectedFails newBuilder originClass usedTrait superClassFLFixedObjectCluster+ testSelector expectedFailsmockObjFLWordObjectCluster!YYFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterB testSelector expectedFailsparametersToUse ffiLibraryFLFixedObjectCluster* testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailscompletionClasssystemNavigationFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectCluster testSelector expectedFailsparametersToUseinstancemethodglobalsencoder optimizationextractBlockInTempextractBlock2InTempFLFixedObjectCluster,Hnameescapingindexscopeusage vectorNameFLFixedObjectClusterCUselectorvaluableFLFixedObjectClusterjarray firstIndex lastIndex sortBlockFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectCluster xScaleyScalechartstyler masterShape markerColorgetRelevantValueBlocklines formatStringFLFixedObjectCluster testSelector expectedFailsclassDefinitionFLFixedObjectClusterW testSelector expectedFailsFLFixedObjectCluster[managerdeferredStartupActions propertiesFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailscanvasshapesFLFixedObjectCluster+b testSelector expectedFails aDateAndTime aDuration aTimeZoneFLFixedObjectCluster testSelector expectedFailscompletionClasssystemNavigationfetcherexpectedElementsFLFixedObjectClusterR testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectCluster1 testSelector expectedFailstestingEnvironment errorMessage errorLocation errorSourcetext interactiveFLFixedObjectCluster ? testSelector expectedFailsmorphFLFixedObjectCluster2A testSelector expectedFailsweakSetWith3ElementsemptyFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterl testSelector expectedFails testClass compileTargetFLFixedObjectCluster7) testSelector expectedFailstestingEnvironmenttimeaTimelocalTimeZoneToRestoreFLFixedObjectCluster7 testSelector expectedFails controllereditorFLFixedObjectCluster testSelector expectedFailsparsersubjectFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClassFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterC testSelector expectedFailsFLFixedObjectCluster I testSelector expectedFailsFLFixedObjectClusterV testSelector expectedFails testPackage testClass testMethod testClass2FLFixedObjectCluster testSelector expectedFailsclientserverFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster?Q testSelector expectedFailsFLFixedObjectCluster testSelector expectedFails tarjanPackagepackageApackageBpackageCpackageDpackageEpackageFpackageGpackageHanArrayFLFixedObjectCluster )parent propertiesleftBarrightBar statementsperiods temporariesFLFixedObjectCluster testSelector expectedFailsparametersToUsetestingEnvironmentmodelrbClass constructorFLFixedObjectCluster, testSelector expectedFails debugSessionsindarinSessionFLFixedObjectCluster0 testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailstestingEnvironmentstreamexpecteddiffFLSimpleCollectionClusterm    FLDictionaryCollectionClusterj.FLDictionaryCollectionCluster#x_    FLSimpleCollectionCluster]# 1  /    4.$t. 4wFr   J  6 l/ $ ,  B m U?   b+   rnY$#9    3HI   d  W%" $7Ag )1     _"F1eeZ3FLSubstitutionClusterN5 z9w9! h}2v0iA-O#!_,%0]|- 81ä ݮU$?*l U00&c(x3_4#e 6 &.051d}0!&=G/y3 I)1-0I!,J+6ŷ9>"Q;w5]);{* ( %"Gb0Č %":F 0Ebǐ ( b|bbI 6b6yb*x  8b_]b" 6I + 6  b_' *b-bkb7 0b90 ) E *xG%b*5bk *F 7?b9=}b"b ~k>'379P29P7Ff*@Ff7u9P*@m9P2Ffx9P. 9PxFf7Ff. Ff';b7kD4O!*$0/@G4\ 7. "0>p>p6>p!>p6Gi >p_ؗ";>p0!-^_>p>p'Jx+q8Pe0 S5}9G4{3%PŜ!L8Q''ZJ3k 9k*^^/<A^1<01<<5%)^5%0<6<>:^^2s^<1b<0J^0^/&;<_9(<n^A%f<_^/&x^m<2<>&<x^6^"9a#d+@ǎ)$K%U3(-d&6,t$ Y-X8w/dx0>?iM31#/H ')0&$253i&6,m: "3,-9+&mҤ/!N8 ]&%)҃|e$W)I+%II13M75i~8[#"bΣ%/Q'm,*<6N8 (]70>/|67%)\*K(8,#L?'6!1/%[3 [?'7 {)%4+W$o8+cD*/J@g(%bp$ 1ױ3+0/K%424,.lt4 #7pث3/(#6W, 4@+=!405Pږ.xK5 `&9@%9T90+X$>*H&D"y3-9 54')$&7.?3hdK5N,#):E5+C-FH':, +")y\8Z*n~G$+T+3_I0=|ܾ6: +8TC)"BT(<C#*1/1"G:(6Q {? ,I &~  .D3FH.\S512L@+9e6uþ%0M*R(i5vI'"7߭*L+99JK-T* /x$91(<(A7&)6A)@-20]Fq1?,[+@*9"l 9)41& `4(\#G$%$@-,+ q- );2AH4kQ#<0X*^+D'F!&t6@-ba)k+!~0Ϋ'/$ 4W[HЦt):B.*D, 'M&1d0F/ s%g4P8I&'!J%G8*F 98- ) `2r{6[9)E"qܖ:6 W)@\ \8|6/(υ%8"3"L-o&#x>-#-77,- QvQv--7LgQ-^(+Q7474=Q+Q+-{-^{,Q&޷$F%IQ4 -,r52@>Bo'ϴo-/=o @o' _ S_-/,__X#SW 6X7=XhOVJV+0Vm 9XMV*WZ <W?VKLW$3U8V PX  @W;VDX  2V^B#kP:4ΙX3&BI# wsh%F573{, .MD4m-/5#*f$%%1 4"o w.49 6o#%./+ YL9N%~-E6V6##L#9-%%-2c#73%pe)0q156={0nǢ$3at-8\)T#̠8--Mr 6$*mpi*I'~<06fB3HZՉ('1G=.0 E 1!2U8 wͧ+>L8c&Jb21^F'i F%+T&b'-5,V!8B2&FS'iEm'8r%y8SQ4#L6J7MN3 f.!#54d M,֧ .Y*F">6E-00XL7Ɣ%f }(=3 : 5C'H67)1$G((A+"5"mv[&y#V8'a;7IAGK.32*Z+rs X0:|4md&3{#C4(J$0(:3_0 &&t!(#%39,4,=1G"g58j &3N "<|% $g!I9O0J+D%d1+&1?:m)}#ó2n#&>;!*NAMz 03BzmҦ!=(m(#(7r1,;7OMr0.Q95>O+A>#/\!&,>4}4Z3 5(,C995^ o,>3w%1{+ֽ'-Yl2#h!M kl<7$!҅/%.˗1[&`g#5n$0V*#!0%>e,$X_/?Sy+ԃ$3_0IK# ƶ8̦ߛ0{7֡ "!- 2% 4.I)L35PK#d6@0n/M9$ qH8,:.+ i'L #ĊӸ4..6:yH&C+1+;0q33qHn2oL$N99%:9!%/ 'n!Y5{  Y48y"&c&{-9\er+-&@5N.S3_960{Y@,;3&""*"dJ1%J7(v"+ ",.)084 -.)u7./#f)0+90F/q9165!2%/Hl#D*|4/I60!((&15!73&5:760c+iҨ5O8I9+5"a>IL'.M:'չp0-u)5egp0p9uOp%H"zp!p2*p%H5vp5e u">3J:37pd2x>pdȁp$$N4ތ. *f7^" 2.ޮT9#i.,$F Pj؟2  L8-Xi9/U7+$A+3P*)?mwa86>Fi'~Ցz`| ;!| ;!2`"14UF~o,  %<6/*:#'>+ $+Ț+/fשd#/A[29I+$6'=%_3 c!K"r8K +a(C*2e_A'*6xtqH&ۘ!44\@)+S&-!%Q5C#i% %'B1JcDJ͇&19/}C-:+&l5!C8pN&,80A3t#O))- qI#F5 !H+=;B'GEA9H{.#I&:67)'#-=#0!:EE`%x6A,4E#2]ǽ"%!i'y8r 'G!S֙8+/:,+3_)lF0+  ,nN /J'u" / 5~EbJ#4j7f_.9+6IU!2821+1u2]2&${u*,3:52Y<,-.RJr1m6x D3&g&K61-AMh7&Ԑ(p.1y#=&3I2c0)Y(!20 &m R99$0$.' m}FG1Ɠ$x%l EP0- )w.X / K}M25*f6G\C<B(#&7},2&yr(Ld-I xS zID j-L!  I W G+JJGF' 7Q ,w}V[ ) K zL P9rIcJ>D,!Xy ɒ ZT4 [N# = wX JP K u=vQA 4 sL 9TiHu YG LN'+P <IT{G Y(  cR> U\ Rv QbL Gf ƮUwF+ rEY * E OF \UL  0F cU c>HR0 ժR2 խI `S%TWK )Qu ~EQM Q M& N; U xTE: _WR |tY8 cL Y" *MQ MT uM T GJ }GbGt +G% 7 P |TO f(Q  S R| Y   S `Y ?LO O &J Q= .Tw [cW` cU aK %KW P QP T$Ga)rX P%YXm vKF rFS @LEYVg [Wz  M cP Wp wL xL Z f$U PRtY4.Pf  R ER mÔK{7Q U >I n(F iM MI S,Q F}ٟFO+ ZutZ -T2AAW&S6 +gVL8 3N2pI6 kwR? *LL  aQ McE  N TI lU R V Wg GX cHNdH[ 3 0O  LM *MZ }W/H* $aL  KN ӓLdcQ YKk vxO [Kt X 9VC VFS#U KG PyQ FyQC H 4JJH G IH IW T5Ws  W  xTZ P HHR G)F`M =CQQ ? H I  u2V WnG C E V -O ?nYQg  9E 4ISSH[Sj _L OFOQh Y} iF; ^EH5 9fG \rOYR E )E )aS [ES Ku EկJ q'Pr 2>WY /RQ E O I ` PJL v dH 2F V [=XqPU`N KiX$ PG #QcEL)V +Y@ ̤lQ T~ L oLN Hy Q_ V qF= L< |S }vEE|V4 uo_WK] u kT3 #L ; KP^X,M thvZ3 4GKzI Q hW4OY2M {JJ`'XUF_gaR jR \/EL k[cQ H Y ?F CF UE AM hYJ pVn [WV !M mճIE arJ -ȢZ: XHTk vI)OS  FcIFwO C(WFtV] | =? #EG Jo M] PF2H, PGIU;U /N=W iQ, A Q =Z'IK FJP ?V/ U  L aLI Gg lH4 G UXbxPR LG <HܙW AW KBO gHX S eO YU  y~ROsHhqX (T=Nc VOEM T K YFy 1_}L W0  W }R cXlqGk WH L*Y *H Z UFVC(Q ?E G IFRn h )F |Y  FML 3Iv TU  iN nK  Oi G$sQA~RŝYc ^(HR IR*  <J} `g\K oIrnX VGuU lL _EK> P_E M  YkbJJ 7Y ůUS RW cJ 8HP w RT \KpTV K#UwFNO/XX FH *cULJP 9wRVm Zq J4Xa OUY ʆIzhW ]KfHr  a(YM NX Xp7J JWFF YG|  |T nW3 "W uL>:UNhTLn   7mH hK tOK. Bh&{&. C{ {(,Oz8'9 !74$ 3j<2,.7[J))1+æ2H$J;9/Q.F5&nyOx*$5&Q;)>2p9s0-(x$}*("La''G d:Vc:@c:c:c:c:Mc:Cc:Oc:c:Kc:dc:cc:d :lc:kc:Ld:<c:d&:wd.:d:c:\c:?c:d):c:d/:yc:gd :zc:c:d!:xc:d,:c:d:Yc:c:d:d#:d:]c:d:d:ic:Bc:jc:ec:^c:c:_d:d:oc:Nd:c:d-:d(:c:c:c:c:td:d+:d:nc:Zc:`c:d:c;c:Tc:Qc:c:Ad:=c:d:c:d:d:c:c:hc:Gd:c:Dc:d:c:Jd:d :{c:d :c:c:>c:Fd:~c;c:uc:fd:Id:c:c:qc:Sc:d0:c:[d:Hc:c:sd$:c:c:Xc:c:d*:Ud :c:vd':bc:Ec:|c:c:Rc:d:d :d:d":pd%:c:}c:Pc:ryj9ڑ~D:76*qŴ-&-2Y/(w!vR+A .C!(O`!w* f'C120tԏ n2b0-rʄ4 0;X Z066C3c0x*2%R(91q0 #sL Lq,;!-S+6/53_#4%"8"4-D/49qv$$Y?>5$($,ws^K)9DUo<*X'C4?-+ 0Y7Ca53q 9|+c5U6לvX+6 Y+mm@6 4$&.qtr)7\+t/r]. &pm0(8[I3.a6b1#z$ 29-8+(#h'[W< S 1%6%I *c6Y'  /r ɶ *# '7 /:W\ (f9 _ 7&; 0 (  /: J ) B*%6^ 0I_?S 7L  6 )8 !z08#jՙ% 35/d(>-Xr*Y%_-i$ Cn 6,0k%UE!Q>%T^BUyȤG10 F5ENQoEK*`U{8 '3 vJc ϕ)"&9r('+)0_C'E$CIo͸1P0cm0߱MOKUhZ'h\̀W eޞ %;g;$ P gn(1I+>Uk@\mdCx1%0!Ed@8\ cIs3,HLM719.=;wL$4ވ(;Ӊ/L_n(f],$EMKb/29> vFl.9OA PL+M-w*D6/dPcX&'<=1>^~(mLiƤ~Ma)_ .@b!aDU9dp'7O>6`nϸűu9I)mÖ"ZtBzID9NGbq(!(F)8B*< ?Q\HgcA:{]DtK B&Q4v F'.'n`L&x{;.hlq &;7J[, > Ӂ/ձ5V]Sa1F6C&agsg ag5Z2{]26 !(oɣ7G(ώl-  C!&I-42sln>@y6`aɌ XK'K0o|"} {7%" ]q рHB͢W *ht9}X!q)j*5*#LG6Dn .6A:*1@_x M1/ZTGq %:<͟Ju)GI=$LIuP %m  w~X$nV(-Gw.3IaOƟIJ=7I N<Y ` u*Iq:J!$0)@^\ <~%(,FlZ(z2k2JB+H AKJ<>~,#J,v%8'!=j\v $B4$Q#d6&6A?6b)H{}7< d94L/./'2H?*@.*dj V9Y`KM%U!¤p pL7"( *8=s,y1Jz?K1& &vm _IxEՠ>M 4ׂGV&9"^4v H+|[-9n> [P~K 2~ 309V&B% -:+nYHb$#o\*G*5#63Y B 3ˢ4zD@E&I6ʰ FLx>?!W' 3H 8H"Yhp>m?4x_5A_K%m7tPRr}C7* DU| K_LfAVkk rByt^G579^L=8hK[+t/orbŀ@B%5&sD)]8_VIFU:$D.[bgj.fUDȔl!xf%~b1exy+|@i@̸60WLC)m$k;.AV%/*]GECsqAAŎL4FD0F_7x5u}3. &tK `t|=#P)%)+L&?S\w")Hv,/X@E@"$4-HN$ImE'BD)3BeYW9- J. A s3u<<.Gd!4),= X< a3J |Kr6|T[E/3xQE9E->zA|W)20D&8gJ4'j[,uTX uM>VtR#$ƒ>;̂2U{9 0W283ef)>&PhЀ"_Ӕ7k8*3'YJH9^ o3},", Q%( m/+ dy6dri KC9tڙ$78;C#SR@FJ~ cq7>Z!pl#co ؽB:4C;` <$HM|D!i-):H@~reQ1Bk; 3!KTs9Xb֋6=;,&9>qs| IEdClNW7&o12@Y,&$R$VPeSo0Y7;lG )5:f)xg IԠbo!*Q-T. \lLBq^`N?SKgV ,N*Q]H =cԀ1)R9BJ\#CJdBpp^.Wu66A%V5 bJHBͮj*bBKEO l@"RS:+BT;</c0t"H7],-Kg\)]E QϿ? FS: C|.xi|]bD1d L1 1_1>3~Pw$iLC0nf|0JE;E-Mj'#(?eN ג(21"z17Z 8"?`(9392MS-c2o/DH"sb Tp1$|6r~vB0%kG8mkh:;{N]25*C>2p{?'/:d[,G?C L[ sɖYHu=Y~h",0T'X NxIkRPz+bCb|o#Hg:AR*3 Z(j ! j"װqŕH%jZU[L1}ߣy7ўR(y/ ,'.ׇ3cVG*/& M_'!W&~50T ̊9': D!L ms)^9[f%cj 2GI<, )>+Kz9hBw5K861- 6Holٌ +rTM45/1ٶ0!?"?_6?0IF|)?U?_?6*  Q?k?" )M5WP26Xr9DĬ!$# 9$1sŨ&C!jwjW!b6/'9#%-72928>5',1h$33J %>!q9!M >% D4f/0"S<80V+"T493w2]?K!&'i7r4}"S.1(i=!` #\8W="Wl~-F@-P 28*MJ"b)7a*NV.3,&,&"I5a΃)a7+*,q&XQ# Ҭ9O@ݠaKi+ft#+0%(5(*~/2;C 4'9 +G'H: !>q*}/BT9P+E5X5>5(/.!499#I;3NC!=2nH|9;:w& ޹.M'L( 0>@BA  ))( @9',1P 3[!-[,>O 96<a8Z #4(2O1E3S,41r"2?H@)  0M#ug&71B#95_<>5Z"0# $,2 b .3"~i-&(+O,^~!<D78I3'C 5 BB44BB44BB44;4( 4 ɿ4ry45-<4H4^4_H6H(THrH4EHHPH5-7H -H_4A4LAH6C49VD:9fg3C6:9ok.%:9nmQ:9liS:9hj+/9 $j0 3HK5I0%_7(*sq.r***6ǥ'/!975Aql72r$%0: RJH1F ;BT;ZI;(  (;2Cۗ;L;;C%;*);'Ļ;F;*;*#;,;%v;/۰;;+;;7V0C"'?5ovN3_ 4W2/9' k C@*9#.$0 Gt 8., .#&k3!.}6)2bF70*BF'W['[&d.Ki]GAr;!:9:9:9Ar&rX;Bo4 ;!:9;!:94 ruUY@;!;!;!;!%X\ ruL\CPg;!:9:9:9W`(`ruWCF4;!:9:9:9;!F4s\JDA;!:9:9:9 y;!@^sL]>:9;!;!;!;!>rdK"QY1;!:9;!;!I~LrIhKHn;!;!;!;!PO?rT]T(;!:9;!;!T(rDV]>H_:9:9:9:9<.;!H_rDi? XD;!:9:9:9b;!_r?Z;!:98Q=:9;!;!;!Jrd=$["];!;!;!;!;!]sZE<;!:9:9:9<ru<<;;!;!;!;!0;rU;;!;!(@d;!:9;!:97@d*r<XT;!:9:9:9;!Tr@KbA;!:9:9:9;!DsMPyPL:9:9;!;!LrAEISW@;!;!;!;!HCEsM([sT;!:9:9:9d;!TrD<NZ:9;!;!;!Zrd`yO~Bk;!;!;!;!aBksDDY!;!;!;!;!DHsOL:9;!mI;!;!;!;!EsM([s[;!;!;!;!0[rK|H<:9;!;!;!<rd`SR;!:9:9:9y;!Rr=P<Xf:9:9:9:9#N.;!XfrT/XAT:9;!;!;!ATrdZ^[;!:9;!;![rI>_ ;!;!;!;!GI_ ruUTU=:9;!;!;!=rd^%WdW;!;!;!;!WsRRZ@S#;!;!;!;!ֳS#s;c[M}:9:9:9:9;!M}r\BIW@:9:9:9:9 ;!@r>g?+J:9;!;!;!@rd@SOv;!;!;!;!G sA?F;!;!;!;!-FruWo\&;!;!I:9:9:9:9.;!IrbcRF;!:9:9:9;!MsMX_<;!:9:9:9?;!<rV*Z_7;!;!;!;!ӂ>sSH>b;!;!;!;!ѝbrB&BrP#;!;!;!;!Aru_Pb;!;!;!;!/\bsC!Q_[K;!;!;!;!0[Ks<\Au:9;!;!;!AurdEKV;!;!;!;!Vru?JZ%;!;!;!;!Z%s`CMh?;!;!;!;!Wsb@Tz;!;!;!;!GDrasLP;!;!;!;!,PrCKAZF:9:9;!;!~Fr]a\;!;!;!;!# XsU?[:9;!;!;!;![rdOD[^b;!;!;!;!YQesEICZ;!:9:9:9B;!ZrF]`%;!:9:9:9Fk;!?r]R$?;!;!;!;!?F>Hs=N[sM<;!;!;!;!vPs@oI4;!;!;!;!(4 ruXJ(K:9;!;!;!I/rdH\&`;!;!;!;!Hrs=N[s_;!:9:9:9n;!_ruU['De;!:9:9:9h;!VsMYV ^;!;!;!;!&^ruRGO;!;!;!;!OsQ;PQ;!:9:9:9;!_sM[t?z`B;!;!;!;!&[sJ<Mb;!;!;!;! Gr\]J;!;!;!;!*JsC!Q_P-;!;!;!;!;!P,sCBi[ ;!;!;!;!]YrW<Zg;!;!;!;![sOFZ:9:9:9:9;!WrUKYL;!;!;!;!A1sMSHFI:9:9:9:9;!WsMKNK;!:9:9 A;!:9:9:9b;!_rIDD;!;!;!;!Msb&Z/\;!:9:9:9>(ruEONOR;!;!;!;!ӷJ^rJ[BF;!:9;!;!.>FrWoN@r;!:9:9:9@r rENG;!;!6T;!;!;!;!^Ts`CMhKk;!:9:9:9;!KkrZQ?*Y:9;!;!;!)YrdZVB:9;!;!;!G};!Brd?OUz4;!:9:9:94;!4ruX"ZQ4;!:9:9:94ru\vB:9:9:9:9.;!>r\BA:9:9:9:9S.;!ArUT;!;!Y`;!;!;!;!!`r[Wf?;!;!;!;!EsZEM;!;!;!;!BruEO_][;!:9;!:9JU3sUUK;!;!;!;!.>KruWo\&\;!;!;!;!"LrLS]4 ;!:9:9:9;!4 ruR]lL;!:9;!:9U3sWV_M;!;!;!;!̝? r<@N;!:9:9:9NrM]N;!:9:9:9;!NrE<F;!;!;!;!V<7s[F`a;!:9:9:9|;!WsM[.[F]:9;!;!;!lErdBhMEP;!;!;!;!PsXK`;!:9:9:9)';!KqrEA[R;!;!;!;!0RrZV>ZY;!;!;!;!G>WrZLsNF;!;!;!;! aosSYF;!:9:9:9K;!FrSQGj:9:9:9:9;!K'FsM?F8a;!;!;!;! D\sUZJ;!;!;!;!H%s?Ya;!:9:9:9;!Ms;nAy<;!:9:9:9;!=cךsMVcaI;!;!;!;!IrClICP:9;!;!;!UrdH\&=Z;!;!;!;!E!=ZsU[oK;!:9:9:9h;!U?sMB0QA;!:9:9:9;!ArJUa\O;!;!;!;!KErC>TM;!;!;!;!DTMrVTVI-:9;!;!;!MWI-rdFZH;!;!;!;!:HruanBQ?:9;!;!;!)Q?rdILV]w;!:9:9:9]w$ ruA0]E;!;!;!;!Es_=O:9;!;!;!8;!ErdanR\;!;!;!;!\ru_E4;!:9:9:9~;!4 ruO`;<;!;!;!;!#[rZG_OF2:9:9:9:9.;!F2r;!;!;!;!U^sHyQ@;!;!;!;!A4@sMWo\&X:9;!;!;!DXrdCC\Z;!;!;!;!CZsMOP\;!;!;!;!rSsR@%E:9;!;!;!1;!Erd=?HV;!;!;!;!VsUTUU;!;!;!;!ULsapVZ@V:9;!;!;!;!@VrdQmDJE;!;!;!;!Gs@A;<;!:9:9:9w;!<r@O`:4;!;!;!;!4ruWo\&;y;!:9:9:9:j;!;yrJ@D7;!;!;!;!BrUTUS;!:9;!;!SrMXV;!;!;!;! c^]rZSal`;!;!;!;!AY}s\9D>;!;!;!;!Ԣ>sDG^E;!:9:9:9;!ErUB];!:9:9:9]sM;]PE;!;!;!;!6PEruWo\&T;!;!;!;!WsX`vO:9;!;!;!j;!Ordam;fAv;!:9:9:9W ruYK3OP;!;!;!;!<H%s`\<,;!;!;!;!<,s<\Z8;!:9:9:9%;!Z8rQB];!;!;!;!]sML[oY;!:9:9:9E;!KsMYaQ@2;!;!;!;!4E@2rO<];!;!;!;!<>rR?=B;!;!;!;!$Bs<<J;!;!;!;!^Ar\[`;!:9:9:9Z`sMCSJI;!:9:9:9Ss@"AUa;!;!;!;!;BsW'YI:9;!;!;!4IrdARZN;!;!;!;!=JsA\;M;!:9:9:9Ss`LZ;!:9:9:9:;!LrU=DdI;!:9:9:9i;!IrDVO;!:9:9:9OrA^P;!:9:9:9;!PsS`UE;!;!;!;!?s@OE\Y;!;!;!;!\YruWo\&E;!:9:9:9]ruEONO;,;!;!;!;!$;,ru[;U;!;!;!;!UsL\~K;!;!;!;!6QruK TU];!;!;!;!]r] TQ;!;!;!;!'KDSrHM/W;!;!;!;!FWraLH;!:9;!;!@Hr=8J?;!;!;!;!*?r`/AR;!;!;!;!`ruZPSJ;!;!;!;!rRsR@%K:9:9:9:9KrZNZ~D;!;!;!;!6Ds<<I;!;!;!;!IsW6>H;!;!;!;!8HsAX@AR;!;!;!;!ɥARsAXSET;!;!;!;!@TrPa;!;!2`.:9:9;!;!`.rPdJGt;!:9:9:9;!FrCa9U;!;!;!;!ֳHsaRXV;!;!;!;!HsGkW}K;!;!;!;!:@KsSGQ"?;!;!;!;!A=?r?YfS?;!:9:9:9*7P;!NsRJ*a2;!;!;!;!*$`Kr[<AJ`;!;!;!;!?hQsE\;v;!:9:9:9;;!;vruanUQ;!:9;!;!QrCvRg?;!;!;!;!UrAD^F:9:9:9:9FrdKJ#Yc;!;!;!;! YcrQrUhR;!;!;!;!يRsIa^;!;!;!;!^sK:Fb:9:9:9:9;!brPV^Xn;!;!;!;!XnruUTUPr;!;!;!;!PrruWo\&]f:9:9:9:9a!sM;^_\;!:9:9:9;!\rI[_!;!;!;!;!JE?sADEX);!;!;!;!H=sK TUL;!;!;!;!@LsU[oJ;!:9:9:9JsO;Q|;!;!;!;![s\DIN:9;!;!;!;!NrdUV<\Z;!:9:9:9ax5ruYK3H;!:9:9:9;!=cbsML1bUO";!;!;!;!+?7r=Xm\;!:9:9:9N!rNAJ;!;!;!;!Ls@oPT;!:9:9:9;!DrAFV;!;!;!;!ZVrVQq[;!;!;!;!ODrT!EQ:9:9:9:9.;!QrJbCa;!;!;!;!arZCU=J;!;!;!;!+.=Jsb XEC;!:9:9:9;!Cr`=*>S;!;!;!;!MdsNCV;!:9:9:9|;!Vs\Jb^;!;!;!;! DrZZ=M3;!:9:9:9;!M3rBe^;!:93< ;!;!;!;!LTrN;MFi:9:9:9:9 ;!FirW;_ [:9;!;!;!;![rdX"TCM:9:9:9:9;!_rU^7Vq_T;!:9:9:9;!_TrCVnSp;!;!;!;!ISprHFO]`;!:9:9:9]`rb\G;!;!;!;!E!S#sU[o>;!;!;!;!,>r?W4;!;!;!;!4ruWo\&<:9;!;!;!4V<rdMF L,;!;!;!;!IL,s<\F;!:9:9:9FraN!K};!:9:9:9;!MsDEQ;!:9:9:9;!W~ sMP[\;!:9:9:9\sMMTT>;!;!;!;!݀Gs\^x[;!;!;!;!`&sGRcL;!;!;!;!̝[sR=Z;!;!;!;!$Zru[;@ ;!;!;!;!+@ sU_<{;!;!;!;!@sXr=a;!;!;!;!?9sSYOH;!;!;!;!J[sF\^;!:9:9:9Xg)rUPZ;!;!;!;!<s\9DT:9;!;!;! z;!TrdFTMR[;!;!;!;!`|sbfD=;!;!;!;![sHkA`u:9;!;!;!:6;!`urd\^P;!;!;!;!HsDQab;!;!;!;!BOPs@oP4;!;!;!;!&4ruSFM@:;!:9;!;!LrSG=;:9;!;!;!;rZIGI;!;!;!;!9Iru;cXP;!;!;!;!aPsDDU;!;!;!;!2UfsM_ES;!;!;!;!XSr<"L-N;!;!;!;!+NsU_b ;!;!;!;!b rZ>\*U;!;!;!;!ARsaY@);!:9:9:9;![~sM\N|D:9:9:9:9.;!DrKOz\;!;!;!;!r`ruDX[;!;!;!;!f[sCGU;!;!;!;!UMs\E,4;!;!;!;!#4ruK TUS;!;!;!;!SruVIZ;!:9:9:9XruZTD@K;!;!;!;!YsS`va3:9:9:9:9 ;!a3r`L@P:9:9:9:9%;!N{rU]E*V;!;!;!;!wVrSGEE>;!;!;!;!E>sVLS;!:9:9:9;!^rbeI*X:9:9:9:9Rz#sMD+]Fj;!;!;!;!4GerJdPOI#;!;!;!;!-BjrWo\&Y;!;!;!;!Y sM^B^YH;!:9:9:9;!YHrO`@;!;!;!;!/q@s`CMhJ3;!:9:9:9/;!\ rNSIQBp;!:9:9:9?BprLwT'=;!:9:9:9;!=sS`WaO;!:9:9:9;!aOsO;Ig:9;!;!;!^rdbSA9;!:9:9:9n;!A9rY>;g;!;!;!;!=truYTUI;!;!;!;!C'sY;F_m:9;!;!;!@Mrd=MNH;!;!;!;!VrZ_G4;!:9:9:9 ;!4ruU@Lu;!;!;!;!E6Luru[w>`];!:9:9:9%;!`]rA0ZL;!;!;!;!E";!ZsXSU4;!:9:9:9~;!4ru;cDxS;!;!;!;!,SrVF^\W;!;!;!;!NsML[o@;!;!;!;!f@s=?X@;!;!;!;!b rZ]BQH5;!:9;!;!6iH5r]RHf:9;!;!;!;!HfrdTX[:9;!;!;!);![rdZu_Y";!;!;!;!Y"sW6>=;!:9:9:9h;!>]sM]baXR;!;!;!;!;9ruEO_FJ;!:9:9:9WsM]B^s:9:9:9:9;!_qrUBaB;!:9:9:9;!Br]VAc;!:9:9:9;!V2rSRR4;!;!;!;!R4sUMV;!;!;!;!Gr@NE;!:9:9:9;!PsS?H\;!;!;!;!ֳH\sO_&[;!:9;!;!L[r^gS%M;!:9:9:9;!=cruMLHC;!;!;!;!'KJZr_,Q8Em;!:9:9:9;!DruRTD;!;!;!;!DsEQ_`k;!;!;!;!+`ksU_MB;!;!;!;!PrV]~0],5 %M,M'1d,fP ;,H.0 w1jHl6F3_d"]R7B52GN/N"xaNn NTN:N.NorN%N5MN!N'E2N0dNgB]NN#UGON&V'"71/Hg;%NK0&"sD~.<{0C--$046uO6)5*JK1[449;V# 7}2G/7J9&,|'Z1h-/Z'=Z ؊Z|Z4G#&#kiX^5J:+ O%FM3{!sJ.4mIMi6GB2-!+Y5CT-+>/-&o?6#g@8(7p%cV%Q.׎I0C6(zf0f*].0r+7+$E 6)M+K4&!/#- z4.5 [ B1>E'39/WE$G+! U/ VIgA2%<+I AFͣ8&J1^r?5r5ա)57 +]Fȱ{F 87'j <787'jە7VFCMO"X'jc87"G<"V77<"\7,7)O'j\F#F(F\,\,S" {,H87Fh7{,6,<,=OF4p<'jC,8{7\":yO'jSO'j {'j&""N&87#C.14(4m&-.~&*sX&:ԙ5;e%Fu#k%MD3{1 /˘^(,0% E+x(V!%*n2$C03_6U"8vGF(W-5fDV(&X݌5?#Emܓ3g&$35w4}^L0uR +#-51?5>?(c %P#$3)c)+ E5 T[-2D5%o4r ;a7r$9O_>$!&*-e,::&%-[t,Z+%2ZƉgmw6Ȯ#%)B 6Zn)( 18z&`1 ( H#+^/ DD#ERJ7%%=%>-1L4F!q.?! 2" * !?]5P*z,p!M!eς"8|+B'3*N8W/4K Hi/>(AW+D  "(~.L,h'_"K1-f?1r$ a,;0"8N+q OGR̄$?0fBI!*8[1#6j;qD5a0L-q,Z69{A()Q*#u8$28hc+?,$B+j/>93N#.ͅ9,Mp3~Ѯ1 .' @H8۬S+%m5F&F(\91%M69?D#1t'چ1E+!.1{-57W)#!4c0{_[0c.63}795. I+lu65=)+&1~5^cJe4!9 ` -}.L'DfB>2z /3 6$f6bpZjo=/EƸ'̧֣.hs4M "ߏ,)K5,964"5'2"#B6F',95^,)8'TK$kHp!<+3B13[%%VC2*?I($$00;hO%G0hG "iG)ih*#vWj I<.j710j,cjCj4 iyj.ԟA9i2-j)%u1iGJi3jٵ0ici%"jqjATJj" /%i&v#Wj',j63]8jl291it6(Wi' !ii,.#i Ҳ/j>|~j0&j8xrj*AWj%J 4Hivj~$j2ЂLi,{-[j/&'5xi ~!6j2iԾc*UiO7jj@f.Kj;giG(;j?C%i)|i'Ui!'j5[)j-+#Wj| 7j1#^Ejsi%2j ~'i+"L'jE"j(239iPi]A+ iB-j+161i` j1oj8c*jC!j#\  j 4 ii+iy[(2iS! j: 7j 1j q 9Ci׏jg#ji%)Li iz])iDՅ&Ni "j&e0giihi 'Mj[Si<i'$j=%p $yi "Ri!,~jћ&j͕/i w99i "iυ*0j Rj':*4iЍ5*iQ5i*Qj 3j<'ͦ0Aj3YFj 4j:jzj9$i?*i ](0ij9<j4^ j!wj5Gi7"i8jBF+zi?!i%&/jj-tj$+j i*j,1GjD0X7ci,+i9Mjh3%i)7+{,I)-?7i1L.#B!+AB )&+ S'kF'7-9%M)B#[@(!4C$1I,: /36' Qd-8=)3T"Q9'J(x &*pL! 46!݋!,#_8t}D.$d&6D+c('64l0q&U+1h5+80' 1# 8')C/J!>1rDJg0riBh.a; 5?&%+YMG8W^1* 2W,4"/6+M=?&1""$7r96v9)D(J>^%5#Ǥ(7%><$ 5>I7;F5aE3!,_D &`v+%00;[  #% %  $$%$+<28N(m w H"mĺ#^G5՘,h(~& RL-7 (#%5P$3M43_2,D+?ă1*5U$Ӓ ̡3N."8 2+b-  % D*(k4!q2&#<]2&X# !<.*n47-+9 ,Z}6[ 04KB#s}69C$e!M65fQ)5B|1EN!2@2J/#99S3u1?܅;&0-qȿ+D= r$ڢ. (35*!(?!!&/:U(w*N(r8j( <m,)K-Ea6U[gu,;u#+=B=_*88[/ 32(W,:':.+fٸ8-@8"'9{%, 3~2+?Jt21rD=an*|@( Љ9O 4}9,/114F'D184~91X,t/'H9Sc)d)H?&1L(3:`&8GAG,!1Gs4]G.GsGs1WDGspGs-;mGs2GsEGs.*CGs+#,=')+Ԯ#F"u%17 2iBD6Gp{,a5F{5DaH+ 3?ĭE";'%7{++fF#G'9 6S8.%-3Q.D99cD#W5p 7<2*[^FD&+!!1K,3z#HHSj)3pX+5?/a(Ev.τ7#w%:7S#  "  #̀["EVCyv܇Rqԓגհ&>?f|`mO2} p0BwK`A0{G c8* I~' yʝi -u( c B !\B%_!no  W0"y Vk MFX> V Pa?&?i˗i \/Vur 44H3DW) WJpr Iti@MjGv&T'{[ן Q v Bg"i2 R&1!sepV#=q57!. lq7!. JS2,&"1' 8NF13&0? 0t3"7!Z-ke65G3_K4, 'X#.g(H7"376ӑw757"ӑ_,ӑ*xӑ(ӑk?ӑ76C 7cW7"87o767*8Vӑo<ӑ7ӑۤӑ6`ӑ%"zӑӑ_(O79ӑ70P7*ی7*x87k 7 Qӑ0#ӑ87%"78aӑ 7ӑڲ797c+/ӑ!ӑ"ӑ'J*T29,h..&$$ -h4,BM{,BMt ,BMz,BMz,BMu,BMx3,BM{,BMu,BMwi,BMvHB,BMv,BMy+,BMs,BMx,BM{,BMx=,BMw  CE,BMx],BMx,BMz,BMt_,BM{d,BMwA,BMxu,BMu,BMxPHB,BMsHB,BMz,BMz,BMu,BMu,BMy,BMt:,BMs,BMy HB,BMx,BMx,BMyI,BMz,BMu,BMx,BMy3yp %,BMx,BMt,BMx,BMy,BMy,BMt,BMt,BMto,BMup,BMu,BMt,BMt,BMy,BMu,BMy,BMx7,BMt,BMz,BMt,BMz,BMy,BMu,BMw,BMz,BMs,BMwyHB,BMv,BMz,BMuE,BM{,BMz",BMw,BMw,BMw,BMwJ,BMx,BMz,BMwP,BMu],BMtw,BM{,BMy,BMv,BMyBbIJB,BMu8,BMy,BMt,BMv,BMt,BMw,BMt,BM{,BMy ,BM{>,BMuU,BM{l,BMw,BMz,BMz,BMu,BMy ,BMy,BMw,BMy,BMs~F$-r,BMu4,BMu=,BMwC,BMw,BMu,BMwHBO,BMx,BMt,BMz,BMwHB,BMu,BMy,BMt,BMz,BMz,BMwT,BMt,BMv,BMy7,BMw,BMw,BMw,BMs,BMw(,BMv,BMz,BMs,BMwj,BMuS,BMx,BM{,BM{<,BMz,BMt;,BMv,BMwK,BMu,BMx,BMx,BMw,BMui,BM{j,BM{HBP,BM{,BMy,BMx,BMt,BMu,BM{q,BM{8,BMx,BMu,BMwf,BMz}HB,BMzHB,BMy,BMu,BMu,BMt,BM{,BMt,BMyn,BMu;,BMw,BMz,BMu,BM{O,BMuZ,BM{,BMt,BMs,BMvHB,BMwS,BMu%,BM{Z,BMu,BMy,BMt,BMy,BMt,BMs,BMx>,BMt4,BMy',BMx,BMx[,BMx,BMv,BMw1,BMw),BMt,BMy,BMu,BMyX,BMwe,BMxM,BMs}26R~8,BMt,BM{5,BMz:,BMy,BMx,BMz,BMx,BMs,BMz,BMy}x ,BMwd,BMz|,BMtq,BMt,BM{],BMt,BM{E,BMs,BMw,BMx,BMyS,BMy,BMw,BMu3,BMw,BMx,BMx,BMy,BMy,BMxX,BMz,BMt,BMzHB,BMs,BMw&,BMws,BMz,BMzyzFsf,BMx,BM{R,BMt,BMs,BMs,BMw,BMs,BMx8,BMx}QB0D,BMz,BMu~f!f~,BMz,BMz,BMw6,BMs,BMv,BM{;,BMz,BMx,BMy,BMue,BMu,BMw,BMw,BMz,,BMz,BMt(,BMt|cca,BMy,BMta,BMtg,BMz],BMzW,BMz@yB1F,BMwB,BM{X,BMts,BMx,BMw,BMzz,BMw,BMy.,BMzH,BMy,BMth,BMsxFeR~eR:9,BMz,BMz,BMx,BMx,,BMy,BMwE,BMs,BMyx,BMw,BMx,BMz$,BMx,BMz,BMt,BMu,BMw',BMt,BMt,BM{,BMy,BMz,BMu',BMz,BMz,BMu<,BM{0,BMyd,BMt,BMz,BMxg,BMy,BMt,BMy,BMx,BMx ,BMz,BMx,BMt,BMz,BMu^HB,BMw,BM{1,BMu/,BM{+,BMx(HB,BMy},BMz,BMx,BM{\,BMt,BMy,BMx,BMy,BMw<HBR,BMyi,BMtS,BMxO,BMzP,BMz,BMy{fFeR,BMw?,BMv,BMy HB7,BMz\,BMy%,BMz,BMu,BMxi,BMt,BMy,BMzqyB eR,BMxHB,BMy,BM{$,BMs,BMt,BMz z, ~eR,BMt,BMs,BM{H,BM{,BMx,BMwk,BMv,BM{i,BMt,BM{t,BMz>,BMzM,BMx,BMxHB,BMs,BMz,BMx*,BMw,BMt,BM{,BMs,BMuY,BM{4,BMx,BMwp,BMtu,BMyzBO},BMs,BMs,BMu,BM{,BMu!,BMuq,BMxtHBO,BM{,BMs,BMw,BMx,BMx,BMx,BMu,BMy,BM{|SBb,BMx,BMu~,BMy6,BMyp,BM{o,BMxQ(yR,BMwW,BMzh,BMxI,BMv,BMy,BMx,BMv,BMz),BMz,BMw,BMu#,BMx,BMuM,BM{b,BMuHB7,BMy,BMz,BMx,BMt}H$-R,BMy,BMw,BMyk,BM{x~J!f,BMtA,BMu,BMu7,BMw=,BMx,BMy=HBHB,BMwh,BMt,BMz,BMyHBt,BMuV,BMuo,BMu,BMw,BMz,BMt,BMtZ,BMy`,BMu,BMs,BMx_,BMw,BMx,BMv,BMu,BMt ,BMz,BMz.,BMw,BMt,BMw#,BM{L,BMw,BMz0,BM{,BMu,BMt,BMwHB ,BMt,BMy,BMy ,BMx5,BMw,BMw5,BMw,BMw,BMz,BMtb,BMx,BMzB,BMu,BMw,BMy,BM{,BMxq,BM{s,BMy,BM{}yR@XX,BMte,BMxZ,BMx,BMyf,BMs|@ ~eRB P,BMy,BMx,BMyBZyFeR,BMu9,BM{,BMtHHB,BMt*HB,BM{,BMu ,BMy,BMtI,BMs,BMs,BMx,BMw},BMt,BMt,BMwN,BMu-,BMyQ,BMy,BMy,BMv,BMy,BM{v,BMs,BMx,BMz,BMyHB=,BMw0,BMs,BMw,BM{,BMy>,BM{:,BMv,BMt,BMt,BM{?{0$-O,BMu@,BMu,BMw!,BMt+,BMwR,BMtN,BMs,BMt,BMz,BMz,BMy&,BMt\,BMw/,BMxF,BMy,BMzR,BMv,BMt,BMuf,BMs,BMv,BMx,BMu|,BMv,BM{M,BMt[,BMt>,BMu,BMu,BMw,BMs,BM{,BMz,BMyA,BMy,BMy,BMs,BMxYHBP,BMz,BM{^,BMy,BMw],BMw,BMz,BMz,BMy,BMw-,BMtd,BMx,BMwm,BMxymf~f,BMw%,BMz,BMs,BM{,BMz,BM{%,BMwx,BMt,BMz%}<yRE,BMw,BM{2,BMs,BMu,BMw`|{^L,BMz,BMx,BMx,BMs,BMs,BMyZHB,BMu,BM{u,BMs,BMy ,BMy^,BMt,BMut,BMw,BM{V,BMw,BMw>,BMz,BMv,BMt`,BMz,BMt0,BMw,BM{,BM{,BM{,BMwc,BMs,BMv,BMt,BMuC,BMy,BMyw,BMz,BMu ,BMz,BMt ,BM{,BMy,BMx,BMt&,BMtO,BMs,BMtz,BMx,BMz,BMs,BMt,BMw,x#B}HBOz%6Rb;,BMu>,BMz,BMx,BMtB;eR,BMw,BMv,BMz,BM{h,BMx,BM{,BMtB,BMu\,BMs,BMzo,BMu,BM{,BMy,BMs,BMy5,BMy,BMy,BMv,BMtHB ,BMs,BMyj,BMt,BMt@,BMwg,BMwV,BMz,BMz,BMs,BMt,BMti,BMy$,BMvHB,BMzHB,BMw,BMxJ,BMu,BMz,BMy,BMw,BM{,BMy,BMtm,BMt)HB,BMx,BMu,BMw,BMzF,BMx'eR_:,BM{,BM{,BMv,BMx,BMt|,BMx`,BMx,BMy,BMu2,BM{B,BMzN,BMw,BMv,BMuQ,BMyR,BMz,BMxN,BMtE,BMu ,BMy,BM{ ,BMw,BMxp,BMzHBt,BMuX,BMy,BMz,BMwO,BMt],BM{,BMw,BMy,BMwL,BM{p,BMt,BMy,BMz,BMs,BMt,BMw,BM{,BMt,BM{,BMw,BMy,BMs,BMy,BMwn,BMt,BMw,BMv,BM{_,BMuW,BMz{,BMz_,BMt,BMu,BMxE,BMt,BM{=,BMzJ,BMx,BMu,BMuO,BMz,BMy,BMtn,BMy,BMx,BMs,BMzE,BMt,BMt7,BMxHBHB,BMw,BMs,BM{,BMy1,BMw,BMy,BMz,BMt,BMt$,BMv,BMu0,BMu,BMw;HBP~6E ,BMu,BMxm,BMt,BM{HBr,BMz,BMw,BMzb,BMu,BMv,BMt<,BMy,BMx,BM{`,BMv,BMxz 1FeRby{$-ߞ,BMs,BMu`{2fbFeR,BMx,BMs,BMt,BMuI,BMw,BMx:,BMw,BMz,BMt,BMs,BMyz_}^yR,BMs,BMtQ,BMu,,BMu,BMs,BMyy#B95,BM{m,BMwHB ,BMv,BMu,BMx0,BM{f,BM{z,BMz,BMu6,BMzA,BMw,BMx,BMx,BMwGHB,BM{,BMt,BMtt,BMv,BMx,BMx{F}c,BMz<,BMs,BMt,BMx{,BMyHB,BMs,BMz,BMw,BMzt,BMy!,BMvHB,BMw ,BMuw,BMw,BMx,BMt,BMxh,BMs,BMz} ^LHB6,BM{P,BM{,BMv,BMyHB,BMu[,BMt1,BMtp,BMw,BMx,BMy,BMs,BMt,BMt",BMzU,BMy9,BMxj,BMu,BMy,BMuP,BM{T,BMy,BMu,BMz,BMx,BMv,BMx,BMy,BMu,BMz+,BMw,BMx4,BMz,BMx1,BMt,BMt,BMyu,BMw2,BMu,BMy,BM{,BMx,BMu,BMz,BMy,BMx#,BMz,BMtD,BMt5,BMv,BMs,BMy,BMy,BMy3,BMy,,BMz9,BMw,BM{A,BMv,BM{{,BMuD,BMu,BMwo,BMw^,BMxr,BM{,BMt,BMwtHB,BMzs,BMuc,BMzVHBR,BMtY,BMt,BMtR,BMuJ~7LFuF,BM{,,BMz,BMy@,BMw,BM{ ,BMt,BMz,BMy,BMzr,BMw,BMz,BMt~hWeR:9^L:9^L,BMz,BMt,BM{,BMy,BMt,BMyF,BMw:,BMy,BMw,BMw,BMx ,BMz,BMz[HB,BMzHB,BMw,BMu,BMz2,BMu,BM{6,BMus,BMz!,BMx,BMz ,BMv,BMyO,BMy,BMz,BMy,BMv,BMx,BM{-,BMwI,BMw,BMu",BMy,BM{,BMs,BMx,BMw*,BMtU,BMw8,BMw,BMxA,BMu,BMy,BM{,BM{,BMxv,BMy,BMy,BM{D~DyR ..,BMt HBs,BMz,BMx,BM{ ,BMt,BMs,BMu,BMy,BMs,BM{e,BMz,BMxz,BMx,BM{,BMwX,BMt,BMz,BMyg,BM{,BMuv,BMyz@EFby,BMw,BMz,BMu,BMw,BMt/,BMy,BMun,BMx",BMv,BMt,BMw,BMx,BMw7,BMw,BMu+,BMz,BMs,BMy,BMt,BMw,BMv,BMt,BMy,BMv,BMy,BMz,BMw,BMu ,BMw,BMv,BMv,BMs,BM{,BM{,BMz,BMu(,BMx,BMtV,BMx,BMw,BMt,BMtxr},BMw,BMu,BMu,BMz,BMyJ,BMw{,BMtP,BMw,BMyh,BMw,BMz,BMt#,BMw,BMu,BM{W,BMx,BMw,BMx},BMy0,BMt,BMu,BMxUhWeR:9^L:9^LHBO,BMzK,BMty{? `,BMw,BMy_,BMz,BMz,BMt,BMt,BMy,BMw[,BMtK,BMx+,BMxa,BMy,BMv,BMy,BMv,BMzk,BMxc,BMzi,BMu,BMz,BMt,BMx ,BMz,BMwH,BMs,BMx,BMy,BMtHB,BM{,BMt,BMw,BrAHB6,BMzySB~,BM{,BMu,BM{.}  CE&u;(,BMs,BMy\,BMz,BMz,BM{F{%EFE~,BMs,BMx,BMs,BMw,BMu),BMs,BMxy,BMu,BMum,BMt,BMz y~eR,BMwU,BMu,BMy,BMv,BMw,BMxw,BM{,BMx!|D^L,BMv,BMs,BMy,BMt,BMw",BMx,BMyoHB,BMs,BMv,BM{,BM{N,BM{*,BMy,BMx,BMy[,BM{},BMs,BMx,BMz@,BMx,BMw ,BMv,BMx,BMv,BMw.,BMu*,BMx),BMw,BMy?,BMt,BMt,BMzL,BMs,BMs,BMx,BM{HB,BM{,BMw,BMx6,BMxl,BMzc,BMw,BMy(,BMw,BMs,BMt,BMt,BMxd,BMt},BMw ,BMx,BMym,BMzHB,BMx,BMy:,BM{,BMt,BMuh,E&yO  &`,BM{,BMt,BMwD,BMx,BMwz,BMs,BMxR,BMx~,BMv,BMz,BM{,BMwHB],BMu,BMzl,BMt,BM{,BMy{yBeR,BMu,BMw,BMu,BMt,BrA,BMt,BMyq,BMxy!eR,BMyHB,BMt,BMy<,BMyK,BMyE,BM{a,BMu,BMx,BM{,BMz,BMu{,BMx,BMz,BMu,BMy,BMt,BMy-,BMv,BMv,BMz,BMzY,BM{3,BMw ,BM{c,BMt,BMy,BMwM,BMy,BMy,BM{,BMza,BMuHB,BMu,BMz,BM{,BMt?,BMw,BMx,BMt,BMv,BMszD^L,BMt3,BM{",BMyy,BMx,BMu,BMz4,BMs,BM{,BMs,BMt,BMz(,BMw~,BMs,BMs,BMv,BMt',BMw,BMx ,BMw,BMu,BMw,BMx,BMx,BMzp,BMw,BM{,BMu ,BMtf,BMt,BMu,BMx,BMt,BM{G,BMz,BMyl,BMyb,BM{B,BMw,BMtl,BMs,BMs,BMxK,BMxe,BMw,BMt ,BMu,BMu,BMtM,BMz=,BMs,BMx,BMv,BMtX,BMx,BMyHB,BMz1,BMy,BM{n,BMu,BMw,BMz~,BMy,BMzTHBsHB,BMz,BMt,BMx,BMy,BMv,BMw9,BMy,BMxS,BMyP,BMyY,BMys,BMy,BMt,BMxC,BMyz,BMyL,BMt6,BMx,BMyU,BMx@,BMuy,BM{~,BMz6,BMud,BMs,BMt,BMyv,BMw}6_Eu,BMtHB,BMt,BMye,BMu,BMx,BMz,BMw,BMy,BMxHB,BMxzA~eR,BMzf| o_},BM{,BMx/,BMt,BMwl,BMy,BMt,BMuA,BMs,BMy,BMw,BM{ ,BMv,BMv,BMz',BM{k,BMx%,BMzG,BMu:,BM{,BMu,BMy,BMux,BMv,BMx,BMt,BMxT,BMz ,BMy,BMx\,BMw@,BMz?yR,BMuG,BMxV,BMyT,BMx.,BMw,BMx ,BMzO,BMxL,BMy,BMw,BMw+,BMwb,BMy,BM{,BM{#,BMs,BMw,BMw,BM{/,BMx&,BMu,BMu?,BMx,BMzC,BMz,BMu|nBhF,BMww,BMuR,BMz#,BMx,BMz,BMz ,BMt,BMw,BMtj,BMtv,BMuHB,BMyH,BMzv,BMw,BMy",BMu,BM{,BMu,BMs,BMw,BMx{7eR_:,BM{{U$5,BMt,BMy,BM{,BMt,BMx,BMx?B~F,BMz,BM{Q,BMw ,BMs,BMx,BMs,BMtG,BMt ,BMz,BM{r,BMu,BMy,BMw,BM{,BMx,BMy,BMz,BMyC,BMxn,BMsHB',BM{,BMw,BMx,BMu,BMs,BMt,BMz,BMu_,BMt,BMyM,BMtx,BMx9,BMxG,BMz ,BMy8,BMx,BMu,BM{,BMx;,BMy,BMtF,BM{w,BMz,BM{g,BMw,BMub,BMyHB,BMz,BMt,BMw,BMt,BMy,BMw,BMw,BMs,BM{,BMx$,BMzd,BMwu,BMs,BMy{,BMt,BMu},BMw,BMt,BM{,BMt,BMzHB,BMz,BM{',BMu,BMz7,BMxB,BMw,BMu,BMy*,BMz3,BM{HBs,BMtCHB',BMwHB,BMt,BMy,BMsHB,BMtc,BMw,BMv,BMx,BM{,BM{HB,BM{Y,BMytHB=,BMy,BM{,BMuT,BMx,BMt,BMu,BMy,BMy,BMx,BMx,BMxW,BMua,BMy~,BMyV,BMs,BMz5,BMtk,BM{,BMw,BMz,BMv,BMzu,BMt,BMyc,BMs,BM{,BMx,BMuz,BMx,BMy,BMz,BMs,BM{ ,BM{}~eR,BM{({leR:9,BMz-HB,BMya,BMx,BMu,BMt,BMwq,BMy;yzBfFHB,BMx,BMwF,BMw,BMs,BMt,BMt,BMzQ,BMs,BMu,BMw,BMt2,BMz^,BMw,BMu,BMt,BMw,BM{7,BM{I,BM{|,BMw,BMx,BMwa,BMt,BMs,BMs,BMw ,BM{S,BMy,BMw,BMu,BMt.,BMv,BMx,BMu,BMx-,BMw,BMyyeeRF,BMx|,BMxHB,BMz`,BMy,BM{,BMu,BMt=,BM{,BMz,BMvHBsHB(,BMuHB,BMu,BMt,BMuj,BMze,BMy#,BM{U,BMw,BMw|,BMz,BMs,BMz,BMy,BMt-,BMz,BMzm},BMx,BMwv,BMu,BMx?,BMz,BMug,BMu1,BMtJ,BMt,BMs,BMw$,BMyGz%!~f,BMuNyD@B~F,BMx2,BMy,BMt,BMv,BM{,BMv,BMx,BMwY,BMw\,BMuL,BM{@,BMw,BMu,BMw,BM{,BMw_,BMu,BMzZ,BMtr,BMz8,BM{,BMz,BMyHB,BMuH,BMxD,BMzI,BM{,BMt,BMyr,BMy,BMt,BMwQ,BMx,BMu,BMur,BMw}`E&,BMs,BMs,BMu,BMw,BMw4,BMv,BMw,BMxf,BMzn,BMt,BMt,BMv,BMuz-B@eR,BMt,BMx,BMx,BMw,BM{9,BMt^,BM{,BM{,BMzyeR:9^L,BMy,BMz,BMt,HB,BM{&,BMz,BMv,BMx,BMu,BMz&,BMz*,BMsHB(,BMz,BMy,BMyN,BMzD,BMx,BMu,BMt,BMy,BMz,BMx<,BMwZ,BM{,BMu,BMz,BMy,BMs,BMt%,BMv,BMx ,BM{,BMz*eR:9^LHBr,BMy,BMzX,BMuB,BMzm,BMtW,BM{y,BMt9,BMy,BMx,BMw,BMu ,BMw,BMy/,BM{,BMx,BMu.,BMs,BMuzBpeR,BMw,BMu5,BMw,BMx,BMy2,BM{,BM{J,BMs,BMy],BMu,BMt!,BMz,BMy,BMt{,BMs,BMw,BMs,BMxs,BM{ ,BMuF,BMs,BMu,BMt,BMz,BMv,BMt,BMw3,BMu,BMzHB,BMwr,BMu$,BMzw,BMzHB],BMul,BMy4,BMy,BMx^,BMxk,BMx,BMv,BMv,BMw,BMuk,BMxx,BMy|,BM{[,BMy,BMw,BMx,BMz,BMv,BMx,BMu,BM{,BMuu,BMxb,BMz;,BMw,BMt8,BMy,BMzHBP,BMyD,BMx~yR100,BMyW,BMu,BMy,BM{,BMz,BMz,BMx,BMw,BMw,BMy,BMw,BMx,BMv,BMuK,BMt,BMx,BMu&HB ,BMx,BMx,BMx,BM{K,BMu,BM{),BMu,BMs,BMt,BMu,BMt,BMx,BMxo,BMzx,BMw,BMw,BMxH,BMz,BM{,BMt,BMy),BMz,BMz,BMw,BMs,BMtL,BMzS,BMtT,BMw,BMt,BMt,BMt,BM{!,BMu,BMz/,BMzj,BMt,BM{C,BMzg,BMv,BMz,BMx.M/U'C) ye@6y@HzZwxZ?{_"wNXayG;{P{xFw?rx\wGJvwS{`><vW{wEsxQXyHwa'zDxFaxMMf^z`b@wYy1[Jy^x:JRU{WL4yP=xjayVyI{>z#BVvJx_v=}{v\ LvRfxd?y|N\x WAy>=xJ3yH<~wPBJwQCzqTxwY{F{KA8y`)z]Vx?jxFwM@,{?|{?d{Sc{CyUx#^:zAwA`yHxRVxSZqxR=zgW'zHxV?xQv]3xH_{NxSbyWjz JKzMxT&y`y6Cy=x <wQRvPI0whZ1wiUxJxL N{"=zCGwYGwAOvP3x?]^w<Is*xGO{aYzZb{VB<x;y,L y-HDyNHK{yVXwbPxPwRwEzCnx.VRxZwb2zJ^$wSY'z|SLexLfvXw]gx)Q{:X|xYEy;JxUAvCzDTw>RzA7{J wqHtw\yUyMyaA~{\W{]MjxG+xvZxza^zbYy<zh>zY|{TyC8xSyUUqwaIrwbAB{Cn{[zU{mxYnxTwPUQxB}z_{HAVyBx0T zPHx{tBWytF[{E{Ciw^y(S(w,Ax+Ox/>Zx[axTqzWny Hox$VyH4wLxDvb$xWbzmNh{FyyAyU_9w@{;tyY3/xK0xE~v@z`xGycW%mwjC\MwHawH"zX_0xa!y4Lw Hz4@{X>Gy9FcwazWz\v=wC;zCYx?`yYW 3yA5kxyZzXyLyQWx|K{Qj{&Q4yMvHSz2M Tz3a)z?{vYw;RNwQz<wB:{\Kx^Bw _tw?p3zMy+[R_zW]x5L`zTxb*yKIIzS_:Jz;yOTywT3y}aRw^w{z_x-Qb{J\'|zIP_x1Mx2YY{m?fxcT`{Iq0w_x[yzwT"xUz;w6wR{BAq{hNyA=`y<2wJ3w_yk]@z[{9IwN_x%YWz?Dzz>zC_6xa~wGz W{-]wGD6z;H{1WvNwAGLz:VxL?8y?'wY zBxPOy]Y&Fzf@/{XwYsmzH|y0XIz/Wyz5CAw`wLiB{K${K1szU4z.>AT{z>zC@xBz-wR}xUQx ^0x PcowRGw2]6zL]pv=RwTNzUOYy=@yyU%x\/ y!AyNwQ{M]y?\<yGEXwP{x^VWxU^{ D_v`Ly]wPzGSoy>HPw[ zl?v>l]yNLCzXw;x{0PJxOMwAfzBxS(zXwBf:{^Aya;x}Jx~?({;y3@J{SUxE.vLPSv<O{Ec1vMwdLkzF~lz[d{TN xZ c{|]Nw\I{xiJyX{BW{Gv`_waz>z`8zAgwY`zzC3{L{AwF+z [n{DR{ECKyDYl{kZvU9zM_HuyrSxVv_w^x&_wKP{WyiFg7{2]byUwZC{AwBx<#ydXxJzA]yNxMyKzIOwFHzKmy\5SwK8XwYyw?JxJ9x=ONxn`zanxwA{==!y=Ov;vLtxNAwQ2zPx]y.{uB7zsGr({ WgyWWiy^$w.Qx,H-{iAKe{lUy[z`w\AUw)S=wazjCiwyTjwz[;zT~{Ty8DzZZDx"aZyT&y_KvwfA{>{%A{=wMzNw?Z#xxILJ|x;~{wMmyUIzx_dw;x6?z>fzY_xg\&{~GGayNizF6Az^|w3[Zza:!w5Y8w;wZkwE]z@n[{xWyz\LxQy'bWvZ"xG{n`yjW!%x`G{ [xF{Tjw=BvZ(wK;zE<y=/w%`z?z=|vZ24y];zOr$zkZXzYwpIxN{'BDz G*zYi{/S4y?xZB*zIzjyW^XFyOCwBLwgNx{TyY{G{K vYy2V4z1Y4Pz> w:VySSwIOz[Lz\`jpz^w^YTw`Ry=xFz<1zXz{=?wPg{`zK]@x\zbW#x=-zC{GOcwJT}v^Cw<ylEy^2zLyx@mVx`J{;P&y`Ux(RzBQzCJzUv^uwNZ7wO`D,yaw}LHyO IyDav;wMzbG zBxQwJ_wIvP]wnJwM{YvYgyJ:Ez `wuR"zOxay7R w"w^xVzyBYw_FxV"vDmKzpQypS+d{?A^1w+Fx*Wwz;SvSznPyh;WWvL5wGvzXwzK*wG0y\ZYk{VQ_wsC2z_qwI.xL z;fxJDxE@z8_hwDH{[>2yZK0FxzbZz@wYgz<]x`^xOy]wD[x<BSZxLvEzXA xlOxv^Jw ?rwO2z&={PCQwyL=bFzT?}x9Fx?wV[@z>0yxUwJGwVwXw1\\{LE_yJDw^zQPnzb(ymR+zrIy#a/y>x]xYtgw-ak>w_Q"wYxYEbJw^Bw~Y{G*lw$RMz<P{ePVxGyY{]wwI|w`[PxDwH`cy^MwkNwlHwLKBz Q:zI{VxN2xHa_z]IxrSZyRw ;y`+bz*FvPawLvGx HPwSky=gzEXhzRC[vP%w^z[[yq{a yI;x@{ BzC}{<WPwO7AyWhxUQhLx<{K9za^{_Iey[\>yMtybRevVRsy`w\Fw`({yNv_xE<xGy E wQ2xY-yY#yIwB+;vYwLzy~WxsJmawJxI5yO!y=z+P{RV zWNwZN`rwCFxfV$y{@'yO{F^pwbJax\<zxbRAy_{[$y"Q{gRwNzHQRsyNtyNw{Opy;{3O:x!Q{hzb]?{6?@{7QwyQ#{[HwIP:M{dOxDLx^kx@&({GzZ4#w@FxHnv=zNy[yEy{_y/Gy[F{JE;yE9zTzY"yV>xSy;zwY?xDwyK{>oxVpxO-5yF{QvBwSiyDpw^xxVC{4KzVZ{aT|x_MwLF xXJyNevDHw|O-wD xD#xPy:>yXXAxQCBwF*{WQya{)Fh{*]kw;2zKsyRHyYza@yw_EzTBZxIJ[xI<z=lx7OlxWi`yQD>jxhN!{Nw<<z!L:wIMv;3[zG:x@JHzO=YXzDy>x NxxF'y@Yvxa's{oPt{p] u{qA=yCxaCztG{ B{ab{IyM5 xSHw(V{=`Yiw*R0ySbvQ@WwC9xIz9\y>&uxTF={T$xxU*zX %z7?{Lr{M )zX^zN {UHx]{}OyTX4{X`wcH{Uoz%Qz,V EvO,w6Z wLz=1<w[EBG{^y[xB7x`rv{@y$Uy\oxTyG}{IT8yIJ{[x[u{_z@s{AP8%xU fwQ({8<{Zw\dy<JByXz>Ai8y`Y ziJxz=]{EvVwvLwJ{+I{,KSz]TzS1z6VxKR v[Vx<webbyafzeRJzS.{_y EOz[= {SwYPxJxBx@LxA^wM\y%Mw/Asw0A zFCxYyF@Qy@p\x@3{R{W7{5HxT+lyTJxL*z=X{bHx?wtIxy{aV@z;~yCwCy=a[z@>vRqzGaxRqyf\xOv?yGvzE(yXEw'Ce{cOxQ^\vK<]vH&zE z]h{(\rzXhxUew=H$9wIwEGIy\$YxN`7yZ{ [ {P:y < z`y.U1vGA>x> y>KxD^:|wU9KxmMPyWv'y?yIwVwRkx[ {ZvDvIwDpxWEyMG zHxK?zQ5z[6zRt7zM{Izz"^MwC8{OXx_G?yynMw=+{[,{^/-{aizy<x^rz>xKFyCa/vFhvF#w[yKiyDy>qzK xT#?x'>zAQ}{fXvSo(xF\woP*zoC{NyRy^wxKmwXyQUxGsw#]y@z;MNwmL"{Mx;U{SA z0Vty5R xBKkxPew>CzZDv<[;z^Wp/zJiy;w Lm3{!U.]yG2wZ^y>sTzBQzV@ix>>wC1{ayL,vN8y)awEsz'@_bvDDdzN<"wW^{w`?ysRzuZzv\{P+xVw[8z@{CQQvD.wJJzK*&xAyoG y[1yGzXzDzE9{A5&pAA6yj0+j9  AظAj6Aj0A6^EFjA06ؖA06jJAj&Sj&S A;pj;A2AAj0;A9uj5&ʃj&2j_7j6^KOA2j9 jj_JALL t+c6U9Da/cDh0% !5IH5]#&*0$!5#$ `y7k8]3b1s 7l!W4K8.6%J9'$-{&< 2]4u*$Jca68H//GeG:) - 31K* #t+22('#!&1k9J9Ei-"]78X1/'.4*%-'69&E5<="i3B)c).8nB@-*M$eɵe6K7~ `+ru $LU.JП%2 ">AˋD),x:8{&t߄>*S0?7"_ )T5:F;8* Bm<!IX(M~..|4z.0>/EFs,+-9ع6 ',D.W7sl8tAIf*4O%W5D6BE50G(&B+7L F-YI=p'1A85Y! ܰ7/ #8J2C u:(T7E)~ =AuKP"$8'n.Y(j)Q%.V /") +01&0m96!4TQJJ4TrJJ0"gJ0s262J_J_BBBBBBBBBBBBBBBBBBB+>9D.z&"8l0ZEiM8$ c%1?9* ;.d1' B3D u+\ `Jm,1ٳ4GO/&>e!1#H#(_ 47e6'/Y"k!4*1t>AJ"+ZiO508$({)ldXBB:9:9dYBB:9:9dZBB:9:9dWBB:9:95nY;Gۻ 'uƪ+y#(0 ) &E4K3C% #  _6<"*۽1 #H*%5#,*0Du)-5lV`&*/w$5M'5},9h(' 6607-'y./lU"d2:$7-. L6v-6k$A*/.@M&K%_V.o5|9@`-} %K%B22p*-aK #.05E +K.$b(p2G 1n4q% &,@A,7 1(u2FE&7-W$$8c 2!+s#=έ[ h( !ϝ$3M|8Wι6=$*4:#m#$!L%36z5(5P6%#:[=be3+\A!^9G/*b,ES3_!=m"%Ǐ+s{4+Ѡ6V#!պ-/+/>28+7Pi*<1#6!(3*^$"/3N 0q*n/c*}'5/-'^8σ n>2^1r}91l+DD)rq["+3F u!&X%>M#!&6 "S&  -[59 3+p?*N3wEE8hiD&GS |2] K9, {3 /!%LR9Н ܃0&760Թ(C#&*5(),Z"O1?@4+f19_M4b:  D,3#!=o#C=F3"+-&`Bi&Hlm+I 357,9&Q'39'Ȃ#%"+|5 '7r &|;.I&,( !q/54+)7*$:2+-/9O#3({ 9P*&9})Fh2P&J;<9}(W2M85w$'@'7k'D9.6"3%X;nT9S4(X(87H% 8m+: v';2;#E! #F'+?O#% s00N@/0 ",:-fDg01,/ny/i1" U.(92nôO!t,^73I5>2J<w ma7*~7h 7STU 4}6y*2C4f B !/6.A-75aR(1Cg8j0<r,;ˊ_u5_+!"@0((R %.7 r.>A"ϲ35@;s]9H&X"c7,?+8S308ۢ+)_ ܼgM?@<.5,'<2D;:;::;:;4ί+88EG +>.{,* u74A,~"6! -8rE-'+'&4w6CQ9V##,&P&28#- 83/`%9.˼N`2$*'m0|2\(:7((/;l( %C/5Ew0(6Z)k9c(JGM'(+2r)kF V(ڊ(8iT(=V(&>o(G79u(0|P5E($l07d(2r=(9H&>75(07i/;(:7079 ;(: (6b(8%$n($l(( %(9(%$T%Y->YcsY,`/Y8%YUY0Yd Y+YYhY6Y1'Y3YOY0 YY6%(Y2Y7=*Y-Y&YY.)Y,G z /Bx_ 85Z(p*Xy8"."c)5:9n3l:9o\2[0=o 9U:9j2?9:9n41:9mL:9i):9k2?:9lN230=o^^:9o:9if)j:9l12?%n:9nDH:9n,:9iaI:9i0=i@20=kH,:9mg2?[:9o":9lD:969:9nH2?W:9n3:9j\2?9U:9m2?":9h:9k2?5Q:9lI:9lPq:9m#3:9m2?6:9oa :9n50=j,7:9lN):9m,:9o,Y:9i:9o:9o20=o3:9m2?B:9k7n:9lN6:9oN:9o3:9n>I:9nk0=j^V:97i2?:9(2?%^:9j32?:9m2? :9i2?:9l:9if>:9n.:9i2?2:9n=2:9j[#:9nD8:9j\):96 ":9n):9i0=m/0=j:9iI2?)[:92?:9nD3:9mh2?:9m:9nC6-:9m:9k2?.:9l]:9ly5Q:9lQ):956-:9i1:9j2?z:9i#P:9i4F:92?2c0=i0:9o2?:9l ":9%i4):9k2?:9k5Q:9i";:9ifVC:9/<:9I2?):9j0:9m]2?:9n4:92?h:9o/":9j32?3:92?:9o:9l12?20=o\:9i2?6-:9n7:9m]5*0=iE:9lN:9n\:9m2?t0=kX:9l :9l9:9ifV:9lN:9j[4:9iO :9nw7:9lN.:9n2?-:95/:9o2?O:9nyL0:9n8:9n43:9n-2?/:9i2?I:9l:9n=2?0=kH-:9l12?M:9i":9l0=m(R:9lN3:9n"0=n1:9k6-0=h-v0=6(G0=n|0:9nC2?:9p )q:9m):9h6-:9ne:9nD":9lQ":9m,W:9nH2?7:95:9l12?6-0=o:9h2?6:9iS2?7:95:9i65:9o;:9l40=n& :9lN6-:9n(0=i1%:9lN:9if5Q:9m?:9nC2?DB:9kH, :9lN:9o2?V:9o2?t0=oa:9mg2?^:9m2?0=l !t:9kW6-:9iS60=o":9ijA:9n1:9lN:9o,:9ifB:9m`:962?90=m:9m2[0=m-J:9nH":9mg2?b:9j":9i|:96':9ia2?He:9700=jA:9n2?#:9k2?$p:9m]2?#v:9o;(:9i:9o1:9m2?$:9m :9lN:9j[:9if,:95,:9i2?6:9mt0=lm:9i2?(:9n5:9i]:9iS:9n0:9i3:9lN*V:9lN>:9o3:9oJ5Q:964I:96':9m):9k6Y:9oL:9m+:9nD:9i4i:9I2?,:9mAA:9l0:9m2?):9lJ:9mE#P:9n_:9jI:9m V0=n6-0=mi):9nD:9m:9m]2?Z:9k75:9lN0=k+:9m]>+:9i !:9i2?6:9m;9-0fBjB)#V8$/3-&t-<3&3{5sX/4D.@:ޙ#k%FFM"!3;Y#R4m242.V5&4B0.3e/4-6k1 bLK f&( *@x#A%L2"3#;89yI"$6_|$7s4Ä9H#72!J0ź2I'X)mC'-6/ ^C@.<U5 96duEG",* T6 }pN%-%{3$0'; 7\/Cu0#]3s$&2= @7) q' :*k)E`2t"<92-0!}J3_y@7 -DX=("ZDFAz3Az7!#Az}-/Jb(DJb(J*C-$-#$'m 3 "&ck&c-4u-C''mk.W-1&c', $>PC%-/Ü: ]&c-/0#%Ag ܡ'm}-/-/m(}(kgC(|%L%Ak-/.&c$NA'&c ($kͥk-/N'm(Mm-/#u ImLM-/o%A &D}(8'(3 %N-8.%A(u ' Jb-%k<kߒJbkG8mW&cDp$(-/*%'v%k$%'u-/dC C-/ %A-~- 'm@W'm(Bu'(R&ck('m  }z%-QJbkKC u'-l-Æ-ym($%A-/}C'%Amkz$(F'm ;1Jb-/J's}-/հk%A<Jb$ m'm-/2$ż *$ 5 -duK^mu-~Z%'$#Jb&c J%'+CPJb'Am'mk,u(<'[%Ak׳}-}M4{#kGs,.&&Ȳ'AB~4j3{4m5%FҺXKt#:$' " l/݂0 .L%1/$C.ϳ(V3_X-"TdXut- 1$)@#2m>7n/J28c8 ,0o9,^i5<+f~BF%+4  ,2S#E=y,:51ė9+V$21ǡ5>7*n< ,Z;_F:(10(035!#;Y7r DK3 &Xķ5PZ1?Ϝ9,">4}% [#1r+^4E A3C"+DR1e;̞Jܟ4  n2) %;$ **Ni'%>E3w%3C( //n(:9O-ɐ2n .YJE5az% a). 7#>#*Y"0p6'/6'>!M8#&m->02lb!e#%53N܂7Ƚ,; -g&,5"3_:R+&`6!=g!q(H8,$3,]10+c#;@U!&$"<+?2rD:)# p  g+Ѕ7k ά! YF#f'&|]&l#]/'0?7/UaM4,)!L {#bF[PEw2#)'0)o *!1(\>_4z4 8)LsUM3$(O s(#3-.56lXַ180GaM9F7 >!c0Y*8U"NW-=&/&0u 1+ -(.63*"\312 8i/2$x61 55/H (0F*&" 4p6,.*1) ,;"d,9{8<[+%F1^F/28  z&J>M| "NEvEEcac)"  ;U4I`//>f$16H,  3D 5u9_/36 S'}[*=.L=998",9l`68. 'K*'(J0'_m!2$4!%y!9 E85I '{)FJ71b6!(ML7V+[/T K5;&*"&b ._8+%%Q/P/(.A4/:VO1l?'D3a=4!A\I% +"+10qȘ.-  28F#-.Ę'+KB;"A5" q%(b"f1?ܢ% 9$0)D14ɔ Z+?&.! [5a :4}9#01gS5;+D6,5g(@XE&%,8 t9 h( "$Q!9Q0x8m+# ,:-K  Z$*"0G7e4,v$0v=L Jj(T(</'$%$F8}/H682,/.55/.-30F"\6Z")<6.3_507:m1 *3& 0U)_6-V,*0&+0u/H&0 3}3*,;521s ,["I '`cK!&1?^.M9&6h D"B.!1!"B,1,6Г0&%Ӄ)Fe0L6$08?%0&S_.'N.0+d)=""_:$d&-4)B&S 4!9 4*9 0+&w'N3c*|:7*)D7x0 6!KG w*"߂ji=K,3@!^53y$'\7h8KE9T5z(@,s+/7-'x,IK7a7Q -Gh2.$+-& ,-+'S&?"1˂ 6k=(.+3Y*:9mgX:9i*N(%[3:9m.>Y:96&X:9l)y!)Z[;!)6hZ;!k`263P[:95x$4(.a[V:9k&~$^+X;!+0&\y:9y!+K0Y:9m! +M0Y:952h"Z:9,X%Y:95x"1\2:9n(1Y:9i.<,"[7;!m" 0"|Z^:9nB*R)Q&QX:9631H%YB;!lz)+&(\\;!kj'&([Z:9o,U PsZ:9'2&)Yw:9s"-j\:9oG0.ZS:9)kY:96T/\:9-.LZ|:9/U%Y0:9^\:9o"("Z:9k*-$Z:9m"K+\o:9.C u4%X;!6F*+,s\6;!5<#Z:9#+$"YR:90 zZ:9i$!([!:9kV/Y:952'X:9#Yz:9$a!.\:950MY:9m4)-nZ;!kR#M[:9k0-[:9!#+(Y:9"GhY:96Y:9j\'3"%Y:9s(H%Pd%Z:9n .1,ZX:9ijm&\D:9n"))Z:93`[F:9jk3c[G:969,/L2R%X:9n1.dZ:9m$(v[=:9i%'*\:9m2Y;!n +\;!oAx![,;!7i/2h[;!2 [:9l  *ZM:9.S.[:97i1"N\;!i)K#O\;!l$ G&X:9k*&0  MX:9) %ZA:9%d%Z:9k2--[J:9Q1h Y:9.'[A:9mF.%[i:9u$X:9n(k'!Z%\:9h]Y:9h.)d1!X:9m d@hZ:9 ^"I.Z:95,A$E[:9o/3X:9o%%*Z%:9n,|2 \H:95'11\:9g'0Z;!V'-\:9 ,.,\w:95D#9 X;!%2t$d%Z:94%n X;!i70#[:9j\a))Zp;!kH'))hZq:9.*/%Ze:9k_.'h\h:9m#[:9*0\:9lgh&d\i:95wc,!E[;!mHl%Y:9oJW#Z):9O/1SK\L:9/1T\M:96\:9o-.Z:9n'Q%\:9j[/YX:9$Yo:9i|r %\:9&sKZ:9h#/<\:92bcX:93&^%\:9nj&X;!k"&*Z:96 .@\/:953+|Z0;!i+)6YK:9ka3\(:9'}2\+:9&'%z*/qY:9jA/%|*1Y:9mg$1%ZN;!i%&gYg:97G11_'l [:9j11a'm[;!l1&G2h\{;!+%Zh:9o*bhY:92 &\:9O:,2%Y:9n<,5Y:9m'V>Y:9iS-[X;!oT \f:953*$Y:9e , %Y:9j%&1X:90k YE:9(E!/k%Z;!m!%Z:97R,&%\:9n0 _h\:9j/![;!o'YZ{:9i,H#![:9jY*]\?:9+#Z}:9n3.4"[;!6t'3zZ:9n|+eB|%\A:95'`-.Z:91W%0%Ya:96 "3[:9m" [;!mf?0+\j:9(3Y+"w[f:9ij^-MY:9k/$3X:9l f,[":9m]-RJ\:9n(\:9k()F+X:9h!$f3<\ :9(J,Y:9 :/[T:9l-&\:953%Zs:9j3+FZF;!7Q)T[:9n!-e0&\:9oJd+sZg:9(KX:95'+%Y-:9ig+$h[;;!k< &+Z9;!ib.%Zb:902" [?:9h!X;!/3'1KZ2;!+(m'\ :9m],2(h\);!7G02-0j[(:9j-z2Yv;!3 %[:9ohZ[;!50}2_X:96)q8[N;!q%{/(K\z:96&3M!\:9613 X:9mg((%Zw;!m,&x#[;!5#&%Zk;!+'+3lhX:9p $/",K\9:9 #0Y:96r%X:96W1(Y^:96%.(/X:9[;!j!()([:9ov(X:9iOY :93 $2\:9l1x[:992.,Z:9k*'%RY:9ia'/([\;!o" Y:9k,00y[Q:9k$@ %Yk;!o2ZJ:9o1'+dZ:9-/"h\@:95O&lZ :9nD$L\:9 2[C:9k*G%W$Z :9k$V%%[:9kBow[D:90LyhZ=;!m$) Z;! Zf:9mx!L2?X:9i1Fng[::9'*KZ:96g#Z;!n4(%YU;!@+Z:9k%j[:9o=+q"\%:97  *-%Y{:9i"1Z :9ij3K.7[;!mu0S[:9n,$s %X:9#D3$pZ:9k!.+Yu:9i6)2\;!nI h,\:9iq, U. \:96,) $GZ;!nf|\:9mS'K%4Z;!n'-m1UY:9ne*!A\;!m] Z;!6#(,zZ+:9m/*[:9j!-Lx[^:9m*i*!X:9k73e$[W:9~X:9i,b3,KZO;!5P3,MZP:9i~8+'0Z$:9k/Z:9m] Y;!3B\;!I,  ,Zx:9j[,W%Z;!i +"[ :9+#~%\u:9n)A!2Zm:96TQ%Y\:9i1!E\4:92\:9o )[:9m%N\5;!6"$KX:9%*]hZ:9m1c%k[ :9n-g*(\:9&%0v[:9o/%&ZR:9n(- "Yy:9Mr2%Y :9l([:9lQ%#3\;!7V-(%\:9@Z1A.Z:9(b#Y:9l' .O!"X:9&[:9i 2;Z:9-F!CY:9o0.g[:9m!23Y`;!i%"c\B:9jR\:9j^(/^-XY:9ka %Z`;!n%H" \:9i&!6 YJ;!"1Z:95y(p0[$:91"!hYt:9nH$1Y:9j3vz%Y;!m/>[;!2( JZ:9$-/Z\:9n00%tX:9l00&wX:9kN/Z:9&XY:9nLq \;!,},{TZ:9m"+[5:93vX\ ;!k#'f YM:95#[$HZ3:9.$Z:9m"*#3hY:9k2 \:9o/Y}:9(hZ:9g."4Yp:9l1%1jB[P;!h!x'!\:9i)2@H[\>;!n+.&" Y;!m(Y:96\:95&Y+%ZC:9l/Z:9i12%Z_:9n-$U!Y:9i)3Y:96#?."Y:9o)00YZ;!7!qYD:9l-'ZZ:920V%[:9h1.\U:9h22YY:9m#[:9n2K$%Z:96M.(V\:9C(/K\:9l%-+Y4:9m33D0Z:9++%Z>:9m ); \q:9j?%39Z7;!o2!j0[:9'(%7[e:95}%p)aX:9k*[\:95z($$w%\`;!m'[:9#(hY:9T $ CZ:9k^2e&Y;!6*/T-*c[c:9l1S<1Z\:9o!/[:9m];-X:90cZK:9!-*O\:9jr#[:9j. )h\:9o/,&6x\F:9n-+0[~;!'H-X:98S.qY,:9o\&!).Yf:9ib Y:9nC1g*[p:9Y*(X%Y:9n+'-1X:95?Z:9m " Y:9"6hYN:9nL"(;X:9ib%&Y:9S'*hYC:9o%Hx\:9jv/ym0[[:9q%+Y>:96#T&Y:903Zy:9%i"%\:9n=!1\ZH;!o\ [:96O[&2%Z:9<2!%Y:9j/&#0n[:969$__Zz:9(K%[:9m? ;"\:97d"Y;!i~,)"Y:9 !zY_:9n-W)B%2%[ ;!(l)[:96(:.I$%X:9O.(.[:9Z$(Y:9k!&N[`:9nu -ZY:9h0Z:9m(3|*[0:93!K[:96*6-3>Ys:9m,4[;!9$1"<%Z:9i$1"AZ:9koY:9i+)_&Y:9k%#ZD;!i/ Y:96$xY;!6.91%\7;!m.."--Y&:96^0O [:9p #!Z:9=-1Y:9l0D.$+7[&;!52)(X:9k)lZ:9/)Y[:9d%[;!k/h\:9h{*$[:9ju[:9k(7&2,Zv;!m.Y:9.:, Z:9o&?(|Z:9lQ($[;!1M"BXX:9i11(3Y':9jr$X:9o=1}Z":9l1Z#;!mh/(X;!o[:9l-r[:9o![;!h+O'KZB:9iw"Z:9mg*#X:9k(qY1:9 3\:95x,,-S.Y:9jAt),LZ:9ny(Z:9nB0X:9nCK*x%\;!n(M,.yY:9$2@Z:9 'N\_:9+Y$%X:96''m%Y:979#Y:9o}&#/w\:9m?0o$1%[R:9m])-%[L;!l4'g`AY3;!jZ;!6o-&[{:96_&*X:9m h/)X:9j^)$bX:9u%0tq\:9n -[:9I-Z:9/!%5[:9/!%7%[:911((%X:9lg,[:9k#![1:9#lj1Xh[g:9h'Z:9j*}()\:9o# #11 [:9ifJ3e X:95)/ [):9n!.2UZ;!i2|+\:9',/Z:960-(ZL:9lJX:9j0/Yc:96h-iX%[M:93f&g[:9j$.PYh:9.%+82\:98'p+[I:97g34[>;!i?%#,Zl:9o&v%[6:9o#/\X:9@2$9$[:9n=)%Y;!l.ZX:9)"7ZQ:9p  *KY<:9nC)|%]Y;!o&)&+=[:9k(10%Y:9i$Z:910],[:9l&2\|:9m#,&cY:9if'$,)\:9k%Z:9$5,[_Z:95.3hZ:9h"d%X:9i#.Z;!3S%Z:9nHA-&8 \:;!k3)Y:960[y;!n0[z:92^%X:9m#! [;!m. Z;!mh\;!0,+%\^:9,)+%%[:9n/YF:9m!Y:9\:9nD#,+[:9%(*)'Y:9jk%(,))Y:97i}"#0 Y:9J"x& [:9mc11*Y;:9*$7\:97:M)~%_K[:9n$8*X;!5.$*Y:9m,*!vZt;!n*j.B\p:9093KZ :97c%0* \:9&QZ:9S0/*.Y:9^3wYY%:9p ,,[:9&?3%[2:9!% 'SZ:90R,9#%Y:9if'"?2k%\&:96'"@2m\':9j3DahZ*:91(F.YL:9o-1,C\W:9ij$R%[*:9l&{-3)Y:9mc%)' Z:9o/'$$%\:9i-w\;!51=.5/%Y:9nH$$Z:9l1 1[:9o?$Yd;!%[:9= b%Y:9 Y:9if()#Yi:9h[s;!kW& Z:9(*$ H%[j:90Cy%>T\3:9j/((Z:9j%T+%\[:9i/f'X:97f<[:96Jf*Z;!X \:9d,1%X;!7R-f'9Z:96#aX;!iI#3g[;!l$Y":9l-,[:9!*0\:91[:9n'n%).D[/;!o\ ![:9(s+,h\":9i! /%Z&:96 3 ,3\:9j[)f1#+X:9o*",+2\;!j331k![:9o/2Y?;!-'h\:9lv$3Z:9,&B$I8Il*1-ns43I&2z%45B /;0h*Dhe20& 3$D8DW(ݎ'3!/ 5V-"[2F)0q7HT*/90-]# Ɗ*r46[X""eF#H(?%{~*AX3g'a+_9P8#MB8hk*Mq*.6BA) 5:#>ڈ'E(-M(-H'[('$(1=S!,7#3+u-Rʞ,,43;9c&\'93}IC5>_s !>560[,ˉahFoYR?7q2d7)t(P(`3# 9.w)r>5 +5G~3eT2w./R.+.!n.,"I"&GJ0Y _GoJi&F& E3 o!Ah&a-{+(6(% (-1)!]$S2H6 /#86&H3*G9Z6Vh4wi.6Z,X*W8b=<D/ Br)bL2,$ 'o 2x.dGk.27 \.+&$(V-+XWI4VG,4& Y-,,0 9-"$tbDiE8lkq%d9\3_26&cV6!&/d@3$ *ID:!.$': c-8L4.(x2$96i1!!5# ;3x9K8r-:6,t2ʡ"N&'U, '28)&'i  % 8E# ,3QQP#8?*7ҊB.!c#4L{6{D &0a{*{k{6 &*x{9 &*x< &6 &_8 &7 &o{0-{0- &#U &={ &*4 &3 &" &%"q &(ʬ &{*#5 &({_ {k{0N &k &9{4{6K{%"{# &*!{ &7%{"{6 &6{6,!)2+(3)/!%9*%*.*J**!(1d@6*87ZDs'ĴY  ]h'T48d _1!-V6/1Z47])% `*s*  9G s,J*' 6,k x/^+&X0Ҫ4Ҭ*13B|7-3[9)/_'  erc-Vr6zЋR/_! $D+*J"t21xn +;  6r%58-.&*,a_ -!y s"t*2 *zr3Rn6D rCMc O3*N #H b*E@.&.&*"-1 '8f ]$ # "&| 8,y&3K?~-m҂ 4"t&w( .&ϖ',>7 6 }kr=$M. 1,)Q )*pS +68*`LD!y(*6  :-m@*D* 0}- R7($z'*ȤhT*i!V }O $(3r%~%-> *8* 3P4>.  3 ] C6"t *;) l' e*+ $a UE6X5 2 U"Vԫ])P/_a+'/__$c ,"K 4[26*)$<*o b/_VQ^5 .A2`  .(!   )  e, **z*= 6.Z**mi 2'&ԁ*z  6BK /)!oIa 8.&.Y3RQb5F1Q'U*7-l*م,k_$نx9| !0* I1Q ;!y=9#M*#6H*H51d&B1)C6*+<* *);+-,)*y "8[6\x**3/_t9!yS 4'UL*/ *6H#[J*OLJ711 9i*/@*A]~06.&+*/ "t<*8}9V~sذ 6j}_^6 1Qd7-E9Q>##'&A 5"t9F@I *:30L*q @0* * u*(7r/810=*2  7`"t&M+4' - u  K )  D3jY6n S3Q!F*A# *:6 .gH9Y1 '*3"׺ D#S6F!h,L 9|]*P ()8K <  oYF)?/WW*McM.OPC  &*1d*,  TQ?::T*:>0:?Q*0 )2g** .-o)4>?*k*B**ÉP*Ï.>c'@##O*IW'3 * (**?15A);i3<*"1Q#}v!yE+;J'd'=2& v*$j,*P*S6V `V*d+(1Q*317'?H"tYX.& .{3>6  3R\99CX 6 H):$ *u*/W Y-P*UM*~Y4Z4'?;>1 f]+(.3W6,*2V4'DTH 1QW)h.l%n2 \5${)530$'30 17"t! .m}1Q%$FBB m1r6nG&9W(8u*8x^ ?:2**8?5"t(L\ 6*3R ,.i!8)9 n3#8޼*-X *1@*1A &* 1   he*  *~ {$u31*1 .=1*4>$96  C-/_ /_%W6iI-f [)4V*be*+%C*l,E%I'7$j6l "tWZ69Y"kw Y 7-u &_&{ 5*~S*=X "tԭ 1d  -A30l6 3!)Q* *ƚ E*ƞ 0K[ * b=*r`Y=) 0ײ8"׶*3*# 3*4+*, !$c3I ?6l$m*̋ >"t*68# !w%+**6w1Q*# .L *ayT"t ,*ҌQ"t*Ҕ*sQ4'd1B (*I+;L +*'p*9L]f*Kg*L cq )r *3ܸ"t  6(i1q*:-}*r:m)Mp7r(DN3 ( H" ~*\*?3*I/_w:nb1Q9. V*!%ֆc##֊'.^F@u9 W 9|&HEhrE*Ϥ4'D %6= /!%*| )ɺ6!}k6F1aF2"t 3R6 6\ "'&n).*"t03`)c6! K7-w)ϭ )'o8"tz't2}*9V"t*)*!y J *,9N *b 8<G H Q*V`1d=*]>'A1*)ը*-{*-})3?0`l]V{+"*@#"O6Mz6D Z*Q1*b(, ,1  -6  c*)%e$y 1S*xTh}9QP-8R*).&O2*?(1d&-Z bK.&8*K 6? *qrVQr*X.*m $M@?qe$*n`"tm E1d..& ,+6’";–*d1/_"W*e g6|& u30c1ڧ1K1*'1^3 `*% v 28E!yI I588^* /_.U6*%0*$a7Q^*_J% OJq6< N6O*l"#ԎY<**=}6= * '\5=4  3"t3)*t=![ )x*ycZC ",pp /, )Dž !yljJCNaS1Q`bD$`*c1d?*A`6*`*;"t 17#5 67<.&CI91.& TX*aa6* 4u 1dv5)N+iz*<!y~ʃ"':/C*'***u*<*2 rd`,k5F *  36 W3a 0a.f+ͩ  =C(1* e4P$ML M*#**Ƨ k*T83R6o !-%e37* %6# #=.&>*A*6($1HUO8$3sN"tu9.*j*g3O;P5k.M5V$* *Xo)iY 1);oWpEZ *c*A/3A1 ]1ArIj8m0Jx* j . N8 P3 % "t/1AL(G# 4' 6) D#ŭ1ů*64+4,(4 ?*4h"ta)F%* N+(# kQ1&%* 230L1F $a -*'VU(BERV(#*<*w#5~*?(0yk,y*yyB-ћQ3R̯s8 -.w*@U* .&"t k)T12V153׀ *ׁr3[/_'&" 9-m3*G G.J **x, P*K6ʦ *9e\'ݖ $9jc*ݗ80һ9ҽ<4' $M "too$' 39  =*:R*LiTD'm*Lj $4**-+.2p*"tկj9Gk** _*2s)>{*  6->$. 7" 8$$?5F%6 *Q+i6 r'2E 045'&_*34DU 3#_v"7-w65c:9Qw"&n*}bz!G *"ta )'9"(6K`/_ғ * F*/_ 3 sm3 yy*0 Z*,(,J*>6> [1**m(QoC$q"tՇ*nU6 1 + 61H*H&* !3 *)4> 6 *228D)*6W}1 *(*I"tJwD,k*6%6()%'8K/_PH*Jy#c&C7  T2 U$. M e 3+C3+DP(+E>.R+FS/+G53a'& *+ o*4)>(,iFNqޢ l3!1Qh8*v.i"tjW8 <*J"*V"t"Y61C~-CfaQ6%7W)H0vYF*"% *6*7KY*y 7L9|%1"tѧ  L""9*6)*a7ʱ.3Rʲ:*$*_73a*+5=H-*F)0/t*0CcBo*Bp _'TJX' 1Q6X|*$Ba(w*du !y*v*l9*! !9Yח)"t +)5654a٦v$.$*6TaV r,6|"*rz*H*;*O6PI*S*Nc.ں +3'&u(Md!'/36 /O݉1d*  i30GIt**`,!F1*/d5kp6S! $4 * j' *)z0"ti33<*/= a*5 r#81dg%  1G; 866,-*/4.&U)30af$.$g6n @ *exM * dQ, :8A$)$FN +*q '1Q e"t]ӧ~*'u.{v.|. 4>5km)m 'c*<  N',P **# ; )4+6j3j)"]~'$.$F"t$*DKٱ2g t:x'61'i8K*9 /*"t7 /_ {*v |1wJ:hLL'3* *P*6@F$g'n m K*,cS6  $3A)h+`ύz1d164[%]*f363 3fE -*Eu3L.&(c/_ 1  2 )a* Z& O.MF$ :,K#@/_ K* .m('B,9sb*9t*Kyz5k1W-[*6` (4'd3cw.[8AU-K* 6 -ycer2ª±c-<rx2.& *2Bm!Y T$X#j\")* z |*2 9J3E6E/_j)/@*%Ar"1| 5'}8|,ps!&M*+`N"#"1dkt-0-&*y-9SވC,67-vX)} #*5FRD*G*2g% |*1YK#= */.'&"2%C ("4Z;~ 4*  { &7` d*~#5f"%o *N/*87h+`mG*͑7 *7 W)! S%Z *u"t l.j5r7)**:9|"tW< 9!.Ӛ1+QB }*= h0kBI31J*9 +`    '1Q  #Hh 1Q{ 98*s&$h666 :,!>p*I ].&I[4"I 30a iV& j)]S A)Ҽ .*n* "*k*-*/ i/_Bj)NX6Q -m?o1 ^YB e 7+`6ž.&0=t)*6Rt- [+*i94>"*3 m"t#j6ާgdP8K s#P B~Mu;k"t'6ѹ x$M \*| .- Y3x:1v;w 1Q|1 J(X4>חb.&ךQZUF*, "ta:#.8?/_0[F 615F6*=~D  g "ty5 nݷ%GB *f$Fh* n*'.oU1dr A"!D3  GD < L5*4':U1 W*A6BEB|HCIu2g3 1Q' 1dt1- r!Y '6^<3R"t @)?3)hug i23W֯O4'@( *646!*!63"l }V_ϴ8<϶3rM.&!"s*ܺ2QFV"X)B9Y)~33RA'&+ ] )K|#6Q](Q'' *9!9 K*M L9 M*P"t\*?1?L*4 $$  1- 3a-LQ4*3"|G4'#) D 43D"d ؛1v+;M۱ *Oϒ+1)z^K6&1R"8NzV9|&$M& 6J*-) ' *8!8:K*.*\1K,37`&b`2 "xz*zp*q674':*<m5jr0 , .,c8 > r*,*N C*18"to&1@#Cf5G*Uv) /)2K a* @- A6!F*Lq*ȓ=( B* *T 6U6*7']*)^*/?|*w *?)*e%/%7m |3:5F*"tv*U*Q  WV1TlXDZP* 5* P*+*,6+)'<  Ԓ*C>$#;5 32"tס)ټ X"1i8R"7 z*,"t*+1d$)  Q%nM6s-,!w C66*H,~2~_e*I]$*I_?"t) 1Q  "*Q͚ .&͝z-,.C 6r(l.&  h*W)Ӧ3 ,!e'&)6*)a u*;6;p*)I*J6K I/_e* 3#@cy/3+T*&M3 W.&|G/#O#6F!"tH  Jd"t$e&$** )̴6̷ ,̻ 77-eC;Ni1߳]*Z 3-yO* i$k R, ݰ/ݱ.& `'//p*/060q/_8"t;* ַ '6/_ 8)6A36h'͔+`(D -*M!14*Ge */x- ]*5dy%$,a5h*t kaЧo C 6.&* $y"!L.Z9]B&F"t )`c*ta/ 2&'"`Ma)1zOc.<A). ) y9|n6m* %K .&.C 1AW* * )5+Y,* "?"P$9/_9u6P!y2e*' 2 J$- 6//_0') ,8;*145 *-UG*-W")1 U) V4'D/_ X)Y1du3w/_W*4'-@)@Veu6*̒!4 H1$370`v* r3S|3 t*E%#*$6/-S0Z69!21*!3A4=  .@*)00#uWe!96\j&g6(D9/9u R'= 3RGZ+iH!< "*9?Kc&c7h2FX-yY3Z'W.M1>Q(M*s'*,I680/_"t* I6 Oby z: cDD6c64*"H*zDl #DJ6GA ؟)7   *^ 9F :!&3305/_&( 5F 9Y %? n*r*,u" X) 1*+[t*+\e3qcv9=Nr*=z j 1^* V3u & 8KE6,8-N>->0 )) [Q _k1+E*1-.C`*Cc ';26*~* m5)<*V ,hV/6CS(εZ   4' ";1$ *64'6  !P9Yn*4*W lT*7o B%6IA6I$I.ePz3RW**  *S 6  #W*^62* y1d v #Bd!~h*, (hv {1Ƅ+|x/_/*N1d6&t-Ha3xGr* #r)26 kQ$4'H9"PI6l,$7]3 EO6P6 '"n+` "t ** 2 6;08%*g6&b*c,B@)M/_ͻo7]26P*RU 1V ~""`*5B*5  ~*l*2'VJX1Tmk ,j <)z*G*G* ( $.j*' 6(Q"0-M? *J/_m*oK(B o:#;aJ' s*tMP8tc k*.%.*@ 1( a4'$%n"tw =İ q&dh! w6g!C*e*g1(F$.# 3- w66 9$.<*u  *Qr3087"1}96 G,oX' m) T%ЏL*OaKcLk*)*y1 c4'?{|,n& K.&-* '!7U ^*",y/_Y   . y**0H3#/_* W)3a1d Y9F3c *EQu6 ?*!9Yl\*m0 #cF * J>*Bp"Z"t%.-] ea4'0*8 "tE*KAOZm*I<,>p!Fϙ-s1Q3K)!"&"t܆7 .o<' -~6*}-m i}?Qr0* j3  D) L*Â2_*1.3j4'4.؀ȥm4>g %*a6$2!:%\%ArV 6=J3;nEoFb%'*(3*-*۴3'ε*8 8'(*J 0Qe7-&^; 1d# 68W1+X*+02* <6 *!),_d!"&3dU* m* *"t')1-yOE)KR*MQPE*Q* 8M"t,V(a  *ڋ62&/M(*DJ)*x  a} $  !$3R9Y%3p }4 +*8'-y"\*% :* ۀ6  *a ?*f5h=8?!=   . "t5!+*k*~.]*O*a*.7*Z1*w-H%,% #)9Y*46$G)$ 5F r6 * 66UjO]2%q*sR!+`8#1l1QWZ/_.w), |6** 87ny,4>OK@V6"Kn#3 *'I)1vr8 "t͟ Q(f* n*0e8* *B,0^C#3R*B$ *C/_aAK!# br*#61*6 1a 6l+` 1"tځQy6~ *I32guO &r ao(;4;|*`(+*23*r3*6A@! g98q1X\o) x.֝9* ~mah / .91Q:e 3W" c&)"9 F"&45 [2gT*F# zX33R/"d- B*G_p ) "t 6( )h*%*L 6.&8"t  y$(*'x6MF 1)6. .&  ̡  rV8 s{|  ;&. ~2^6>10x#zO.%*65FnN*y*R#'3  6 e *O  v 0'!ʎ; M^$< P!) D*5x*'* *  E\*-t*Кw u 4>U%36$  *" .7-~1 ]b)43?!n6)5Q0ةN*Z!E13}*&8 r{Fk$M 6 \?*҅ y*!}$ _! b{ϢD$,QbDe9ˣ*!.&a d6 .7-&a*++i uDq)*YyQEWb _8g.I,?*19S-**6!D"t؅b؆**ȷ*ۃ9.  U 90%%v"t 8%.G)* ۵ *μ.&j66=Z *T=[!3**;e M/_"tb1  H$j$M[)R R&*4 ).G61C2y3K)$F*  63ڛ7*H*#$ * s"tў6D$+ xʦJ9Y ,*-;#]g*RN>3% 2&) 7- 1QԆ,V139YY08 14>  $MP4n4m69` *h+;׋*y85 9ّ!x  *z*$*)66crH p/ $3 54'*a &9 1)*;r.0*$?@*c)~X_Q4 UTXS9FZ *SyʀC0 **/M* 8/N1d6/P8. Ah!)*Z 6[ ** 9|-*" %Q#7 *2B4?#o o-E"s(t02,w1*>*G)n'G,VA**)#6R20T=5'G6 /_кл^'M'2*1(g8(}: d$M*=+(j*] rM' 2gM**() Y* !*@w*ib<68;.Y*A 1A%d*s"tf*|*!* ' *Ty1d Qx Wy$Y*"F:,b^*"y65t9$a r8V1*O a/?E J9$.(6?  "tU $  &?&Z nc?6@0 *98̤ 8N6X *6)0*.-EN1g*j 0#%S(BT."t  %h'&7[*5y U9F ?aK  r_{6nc.p2.&*>,h*)F/2i 7"t!->&$4'G” j-#r:#?E *`"t* n S/_"P3U2* * -*2*2 g,\/_ "t"6J$7-6M!PI06M* "t,l0*818QrR$Ms*JV9J+y*|*= "t0V<**?*o*>Y=7-1Q<*m1"t1 711G"*C3" *1Q)Lj<kk(D.%Qm*1w8"Q -D!C}6~6n$ 1Qm/7j*7*;"V=>1d?%)l1%Wz*{6|}*}) #*3* u1<<0 +6 ~ӊuV\|'&)--3F/_ W*( X  Y  ["J*  3&>j-#M9| ;1/X1d11dY1Q&.&l,!*#"tu!< HT7Gq)V)̗&)z.t!+ 1*H6-g6%2 !6HE- 6=A-m6,a1/F)Z*{c6*ҝ*Ҟ6z3Rʫ3R4 Xz6/ !3:/ #6QDc*Ŭh1P*Ű"t'0)|"th*Bf|+`h-p{%6"" 1 Gx*y$h :\#q1-2! ,6L j/_*( ,"&:.&7:D0'*Mc:'ETFv*y  ,)R;'Tb'&-'1.)@ C, h"t5*z2׆ p%d!Ax*  $_#c"-y#D# -mF3 )7-B4>$9Yى 5FG1s*$; 'G3"\!Yn4>*I"u "t:'&'3U1yq VQ{ \5.-Ziܽd% -*(p$Ю 6/_'`*0*1-38 L4 ~  *"9 b  **@L.|) ~&.#b-0r3$/#2g4*j1k*mF?a3^4ang)1d*&{E*9A.&9 19  A#v!yKd*Cϵ t>*  Q"t%L LV8(** 1d3N]/?U*T'X-> Md3e1)"**J~64) 2+` i* /* 3Þ*I9FQ 0*1T >3RؓV34QEZ13S69Q F6&/1dJx 9|&r(~)DMa4 P* l ^E&nN*H*FM3ROQ Grg*+(1dr)%J*)'3)a1#*16n ]o3R"^*r6>6ڴ 9*F-9| v*h"t 6P3% 1dI;4*I! ;4DF'l*7)fg 4> $[j"t  ' W;+ 7Nt J1d?*A  >6+2g._ $!* = *|)0$0B*B*"t! 8B?*t9 %3 .n8K5*0Tq*0qS6C*`*6}l8^4' kڼ1gyy1 "tI h**1d~#<%6 h*<&9Q ! 4 ',m1d2 ho*8 ', 3)kp#> `2MCa1DY,:,5 1Q *7*;**6l)0~450f*7*B- * ^'_*3t4Qi!W)Y.&5Gx9u3*f (,*#ZQ# &$##^625tO"t$:;$ 9G5"t*) |ߔV *;=*ߙ&(''*M ) K'2**# .&& &~; %=!A9 b  A; 6 /_;U!)! 3 'R+[]D/_y*"anr4*؃o64"&F w*F /_$ ?*y6oc1d~7-+4 a"6E5Op**\X46) { %˴ }˵ *y;:b (>*:g?*:i\#CLyt'L#1-Z7 j)X%4"[ ',(/_!-1 J"t;~* J)Ѩ"6ѫ1Q @B *@C 12 F*m \- sM߼i4>%j'}! H&*. *.*@+*@ *C!*!jbej Q3630#k'31d  V0 b'&##* /_))'@ 'C7ݥ{s9cݫ34 Z$c'?|'&B p6+~*1y)z% 3Luy  ~?U-*s V6]1Fb*w6-l.&?3j3Z "t  1)h8Q#(h/_1)8*3.*3E**ܩj-8dQ"tw+;;)J sbO1iZ9* M L.Kx;Hz*1}.w*X*D*)M9]&*06"1wjD . * / mՑS* d1b2*1*1$R*"$D,4 nw*2*2x62y*2z2['q*D8@D,**g)g)zf)%lgE%n *%qi)%u)7>1۪67SR~9V 3i 6 *68o < U"YW$0& Y*J4'  e&M+R) v3W4> f 6+*. ˌ'& G-*06@3CP)/hpPsg*M.&D*2'Ψ*r*u*y.*$jں#9ڻ*6 !/_e$Mg;(lk7-m!Y%K26:}d.&*mV5o* 7 8+; &*M'&ԗ @5 *Bu3{* *3 gas5F0t*z060g#2 .E*V.י x38H'K**]D*^6z6S X*H$6H$Q< ڿ* -Z;2&<0Tn.ʉf0L5-rX1d P$0 *%* 9Q-*)9'&:*ł6ŃR4>>6*- ) ~B61d*" (] -;ct.*Gy A"t"t ; 7- =*(N e&3 :!3Jr527 t9.b!*X*)MrY3W)>4'Ga ]' q%3 # 5F6. 0TB-c@yF*|c/-Z 83*Ě , /!F H-AC68Z,AE n^ )_*!g1X '&R8#1dr1y `SL*"k 2g^a4'3*#*'C9>9])z& &*H.&Vo6(>*:u 'J m*1#S W*-3-)?6?p*?+i3__@9Yc*A9Y 9Au*I!rR13LS3M*3N -Eq_"tu"tS*d,_{0k ! *31dW'XB*9%.bi3RN"t A@ &76+ B-,k0*_2g'I9z*9|c "t 6ix.5F!8 ZC6-7-.?eF6} )~*o 9^ ND' 0*(!O*2*% *8*')%"t1;*q3  V . H1"/_^8Λ}(D3 JUD"t  4*{ 3?|*T3j*kjll'1d! Bc,D!+`~'t6 >0A'0-C1/-*<-* Ao g)1 i61*v Q4>y )1dy0.* .C:#\8Q;'(*H i%rj6I\F9|R*0"ta!*\$*T)/I5T*6*019Y Ө)=r#;** !q1x i*L*B1*E 6B* /*&/:*x"t#1#!y#Y4 Hs[HtW6$ -C .&zf0ڙ!"ڜ5+i f*1d̵ *$xVr$y-6)P9*;* 1d Gw]0&C6)o,;r;N-0 3Wj09Y G H/f*~*< 7-4n(*<G7-`Q:)   h3RE9QH= !@^0o oK7-0LD&),vG'5!ys S)'V8:*1qa*# )4>5 r~"^1 =Cs**;%*_, M@1dM !M A*1kg)w*i]54!y;B.'' 1N*N* * /( *.*. mA*pC*A  *A#'  ["tRL6)]1 ]*W*-/z=*") Q1TF x3R  U*I/_ ).&GR.n =*Xr]@1*3 @ t C*3R G! Hc `*@8Q*(N#!+`%''nV6@ 6@ 253W,q64r"t*sD**..  0@,* z31A\87ux6!8N*E 1C7 2gW<*W/Xa[ ]4!1&!i!i8~ *y*Oz *~ N'' 1h1% 6K !yK), *$3'qQrZ Mz*9 f3|*9 #g'#"tN* 'v *,! *,V-q Ms5<Q ," * *4>_0 1.o7-* 2 *y~U* 5 "t8KC$E~"t*& r8ZBce-J%9Ye0 E1E*7*t$? * *G*/.8H(>K801 $.bhR/?ύ1Q9d5>.*4'F-Y*p8 ,  \*).E[* 1 ? 3'W)115F*C 4 4'C &"1  k/W  2SI+`"6MD!6D  *' /_-yM6%'v,oyd/_Qb*Ȝ*%."Y "t )?67ne3_'If);BѶk D H&1d.&%C369u - S))k*%( EԢf6 */_Q3RP"t s$L* -0*r*Q*,פ6E/_*C|82E L>*$5,ǹ z//' l9) 6*a6HM*N1*7#vo c6 M** 6)"}4)).&'+8 4'5t @$jG 64$/_q!'U5&a)*  ]$ "6("t*;88_aM y*) &#1*.I* ~ '&"[1@eE33Q$+iLA6 *_G*aX X5)NZ7.-yOu*Av*AqQ. [w֚8.*׬i0*a8*AY'kVCf*. r*3'X22);&*Kv*"t_0 !5/&948V?)L0*L")    c)~ $*\9G% B)z& 6p2fN$cD<(}.@1Q K 4>"tߟ8 * 8E1 E2D*(6, &!W*M   #wz?(d&Ce*,6) *r&sg06&x)8<*86&ZrJ+(*7- 'S' 2MH*9FN*K`r&{6i0s_  K"&6m6*,b  e- 3R.1d>*l % l6m*k  7U $%# y*}|2?*@ b`4'- *?+#3R;*FTGd}&1' w6&2gc*rDK*:6I>G8 ;6 U* QI1 Sa9Y;  X !DJ'l*46M9r**%)2U/_e.* 49r9**L3`)Y#&. '67cm4''Q e*9| 9u1d1}8'&z5a>67:X !;2R#˝c1$ z3Ckn":*e* tBW66{*10"u9F:tκ*1J3 .&66/ y  e9  Y^,p*7/j*)*<*)z 6a u2g"y(D q ;ou 1Qr3w0 ,Q8u'6w* )m!o68Ԩ 4*0f8.Zu /_-!*80*C* 26B*W,H))!׭w*(6*1Qd )$? i2%%"t6p)1t";)1)*6 ! j0* ݕ**>u|(0*M87'*Q!u H; a*G6@D;j*. (76  5Ľ ['& v6o3 /"t 1QT "t4J"t5# #4*Fv 6 ! 01"*"t *ʔ='4.$1 ~k69l9n' )cY.  Ж:'& D*: Ua]$M"t W*!**I4 \*9~3 . M6~1Q?303/u!*i  F* )3lL*3na3q6. *0**$/_nz |3R*| 6܀.&F"}K y& O)&Q4'TK89.0cK)9 **KK9҆3R҇ * U*X*YptK(|&1L)LI`Q)z܍;=>,**|Dr+|;*1>1Q -l *: y|BÈ]D&d*7-QȻ)YE=*o>D| 8@*))[ |w*6 S%V6f$ &a#)/0      *)G %4')+#*\ !=*=1de^* *57- Pq*^ a,i5w*Դ`,la.,m0!/ r6 iN,*(6‹*CN"Ε9Y(  23ژ'"( * 83$ a7;1)z )} #%d%3Qn3U/!S*? !*4 /"t3*m6k; *309  V3 *0 *f */_PX '4 3 ^rg* t*7*"7 *1?rCyC|7-l f3Ei36d*6f,F HED E *3R025ڰ1d45$_cI.ozr1d~ ` +.&U6 E*4!8D* ED *"4"4>$*)0*0mOE =15~*G)G,W061d)'̏YKM9*&ӝ7-Ӡ4>1a3;3*2_9J XU"t:*ҕ*A![A#6A'o*u)*yE*O_1di*1+; T"t[)"H_*"J6fId$fG*^4'pV e3R" 3 $359#$[7&ЏV)˜/_R'ކ#L*/f$**V9/_'|.&ц7*.'& Z*i4>+ *L8 *.X6 4>5-OSք:.!P*!U' 7. 0.435 d64*F$f49'**w*x('.y )9XRY *HIL Ҵ*G a 1g(+J66' /_* $225!}*45-*Ф )]`-&* ,*@ C6-W($*2 1vp* 'T)h*!J%! @*)(p x1Qq *0Wi ܈W-܌)JH%b**"-y1}+* ).6   ,  U**˨,l I*2'&(. qF"t OP y*,k+*>#r/!l6  *X6 *n *1T:1*1 x4'|6DI,"`!)s* 7-"#3" 9+;->4aN)2@)IL9YB1^3RQ03R%a1d+:6*=g0bW* .q6}{8Բ*GH9FN3  *P%++1=k* )&*f*Ի *?0-1i6m 3R .&%.(H**b*-*.*7>&%% * #%F1 0I  3* /*&!0*,N! - !CʭA1S*i9 ' U- z!m6o +R** !=A3= .&3~!F9){ D,\ **Bd )< S(D9'*0 l0!vV*"t*r%}U"t| m*HIY@B& *:*"k6u$H b33 r M.&@)qZ3 #O B")< c6e8 2,!' w 1$f}'@' #5   a *eT)/$?*| % $"' q!y4|0;)z*K`*.&5*.о*(* ft ) ' 'b3*s*%C!E e*d \%MC} D"t\b* E&ӥ a)8661 +.&* # 14>F*J*a)62 10t% )@ Wjn .*"Sq'"T 3R]G#7`P6 3|b4'6r9/)L-/6I,)]*[_H* *V"&k"t'? >#L s'E\!*HcA("1-* *y  ; * c9Fâ). 0 _6Z*^/_S Tv V3!7 q7- *  c':*;.6 f-3/3F8EWQ!['&ϋ0VyW !`~a RU*8*K'&1!,r,yX*h99QW63RZ (K8"t t*  .p*Q(1E*=.Fb$MDt! * z{9F'¦*-.,g *n 0ij*pk6qj)g*3G$$Q .";*6  rpc( 6  2gN&32'62(*2> %*2Xb1Z!b ]6! !5-$6+J0*W*7*Z)zۚ6!ۛD30۝6~1Ή^r*id1 **!*!6$#=6=0F1d O y*  n{*r {% 1*E%FH_6&h{.$)2as *9/_ * " 2%ZV 8 G*b  !C9Y<B&f*3R1$%b)&!%e*I3I3%2j'5kmbh9Y z*,0TN<L,  |6:#09+H *s*g K.1h1Q3O$57-](!,*0|r3/_| !} !s%)E- (/+1Qp )$M*Ʊ9|*1 1*a(1*"N+*#E #'& vH^g)$ `*a&_5Jڍ!Du)*$Ja3)*;"t*;*:a**I*2*] [7N 6Ұ*Ҳ:Ҵ w6%Wʵ1!3o65 2gN)A"t!8w O*؀6E*07M8 *؅ ( *wo"Q C~/*" 6)5LA15MH*5R =*"G3%*" R/_ -˯ !*K58.~W _*&YB"tgZp092$1U0 >s ;*E *Mm ~0M*)^"th)"t'' . *l3@ 6oOH632iA /_f5'6"t#%&$"W.&#*$ 7}FE/l03"1ݣ $fe.&5! aa^ *s^*'&: F/_>Lr*S s6"' t*'  a!%7*({G.-'f-MC3R|6MQM!) 0V.&) ̅ߍ* *)1Qq.}+`9*!6ēg cE 29$$.Q<:m1!o-!s'!1ܫ.-ys&D=>*9+d*Q*S 1Kk C#c~Dҝ[I 1Ͼe"t33C)z06110E#(&q63!d1)5 E3- 5kc2u2v*2*Z ." 1yؗBit,''6 h! x )E6"ty"! "t 6U:Jh*^\+` 0* chrP&*',i,/+ &\(.&>5)1X*m4',!y$/_)0 RU 6)b $  f20 u*vy(z}]nr2;9Q"L o[%*Ȉy*C *h1d </_*q#eE* X6+Sb +V*+e*=00wy T3 ^W'*J3 2g-+0 .C(E! g** *y "t>I[/_ 5F!-86d +5Fn8.#/?j}!|s61*!1<5*<7?68ʊ *pV*#X*&*s `N  n'DE&#*2* 1Q3<<c'~U$#! )$0:*0/@b*'&9Yr  !\_ @8K2#6<* :qu1QIR1d6?*Hg 6 I4'd/_O)*)4'ߧ%ߨ('*cS4>Tj1d)-f) i* j*9YNA1 0, ,Z\2 e8<ݭ j*3ҿ  6[*2~43} #1 wDֳ4>, &I@/_V)z!:W 1 ͋* 1 9QG*9YV!*)s4v*}5\4*>102n3:r*ަ4'ު3"t16p)T 1Q zR-m(*6MwA*3Ӄ.uCA$*ѻ2R T6@O88-%a8IA0e,oh o1+`:63)% FE t#v*4 }*"!0#"?*F *F |ʾ O& e4'l*)'p9Q2#5vA"tE9F: '*}/j *L-4'"K10r*:58{$Q"t -O9*u6.6j Q(ߓ'0֪ -#62*ֱ3RO$MP*E  *lK"tmN,8  6rE *3!<&ܹ66*%y3K4.2i&{3339Y - 1 3RO@*8N$$.Pt9*,B*>xp/_˹TbHR2?*6a*j1*3,*+*?{*?2*;]$0*"tR'1 "CCD4g1M*D5) Z3 08*Y4>*A1$ hc.&۶{*7b%6.)*,H!5\1T /_+Z*[2.|0)zQ1*K6L*S#J6)21Q)6^$8/_* *u)mwg%h*+98? *P. W0* #).-1"[( v6<1  Y.&87p&,1 "t 9"hL3α-Z31]I";&h 9o $5Gg,G Ѱw*ѱ1X**vb:#46<7d7- E3L1c*+#L )\83_ ~*S.) g1 o (* n6 )D1B08K 6l ct1*G !*368*ٿH6P6H1~R*I*B*e6i *$+' }t7h\v/jT* t* 6@% ;w* ')*I 8/*Dݐg'&*i @*k A*l Y*1d= # 5Jm 0p3)2u?i1da6,S=r>33RQo*/_ =66A/_DI$C* *66RV L-mX4'ǰQDZY8dz)q*Ǵ %*j $Mt oar *6W *$ .a*4"#cѕ)Y*/fͱ X <7 Y67[)Is'&Zu x)!*R-*O;.*.*Qb*U ;* <+iz7]311Q7U)<0*a1dd_ 6 {^= qp-)6=B*! *w }1Qq_0*e*Bh6B.) \\)_3 S*'&98Jbd"#-6L 3R6(tQ$*HJMH}JS3'*6.&I1QfR!m 4e]6s1)*Q.*;o0lV#r*5S3Rfb1Qi L 6) Y"t-E10v6* 4'g.&j  *1ء*0TQ"uaB-Q3R! 9 z30;8,6Ƈ*G%nG*$zItvг89'9,!,'a6H:6zw13Y/1dha;H 6l11Q 6-*;  *Gw+*S("t8K( )BQ * 6.*v  !  ֘) p6 q[  )A3*)3R  8 Z6{* prŖy*"1}1Q4*U3F )z33TH6[:/J>[:#Wb 30o6 ) ):1 eD)f. J6( b-U*Zp)11*&l-m t+B%+ Ә+0+*1" +Qٖ-G/'.ɽ U "U6ջ !U$d XU!B C 0uURU6eU"Ex _0U_ 0ݐ 'JP[ F3.$ 4YK/u Lk (3 ņ0?,,]='+E+)(9lZ)SHJ"/.DBBDBBDBB*,/#[ 4 L L>p L0 LA̲ L2( L/&G*_.0 L\ L0A L66 L5%5% L_= Ls L2>ɇ/&N LA7F)W)f.9D+9 E7(˫$X=1|17fAZ,5}A21c/)zĮ(i/|6Q7,*]7]L927#,4"/ga+% Q(48 %%p,e30eei   _De e,)  S :e e6 3U t/ te ev &e* 6'{e_# 7etGeS+Le!%|| |J| o%|.|a |?|%||ͳ|G|מ|| 6|$|!|||||| ||uh||%|||7||&|y|b|%|]|_|%||0|Ѫ%|M||" 5(7A ?kB3|(73*( .\*F@1w_6:/b'gR6 :\W4@!2_:;;:;;::8/Д#'ȯ3N [!.B$3&, |M)a 'r+@*,;K''*~I*b2]+H(4ā3 *945ah3+\=+x1MCm,q& !*(E:))/׉4:(?8@~ %20M78m)"T#%y:m6z ..&X!o  D&`/U0NI-1r}*$o0"a V &2^w6   4f2P*}83C 5(<#D*N)7ga({' ?) % 8b, 9 / e9-|J"F#Q!0,5?z( ,9}$ceE/P:283'%U "EL%XY2n5(;7'^ I(+9=2;HJw"6#$90?*nP: !qK#ڟ1,*0V=7r8k~!Y9E+pK_-)-&CB!?5!M& -$Y)4.t{ċS+?'+`.BU5>_" :g<+f؉ޡ6,Z8W֢3w{6351I%7!=69O%r"L( %<\+Z7*$*2"8.il""rk.ڇg#7*Ӻ%>0/[.3I."S %Fg,S! /#9P 5@2N!=764.FnED#;,^1o*26$#\I;p)1̔!(62@73#K56є3Jݍ- 0, %%85(10I96&/4( &!g,+ !&D'405P-<,:`7N4:yk8[EvS"&G9# 5+;BO@1?~1F +-ؕ9A(@4'4}i#47gId.o+D BVB$B!uBHB-.B#;bq65)B2R82R$2R19CN2R*2R/2R18ָ2R\2R2R*k_2R%2R%`?2R)/E2R 2R{2R'|2R!2R82R0\2R!'4y5x(@r5 7 1/1:_$L&0,q`% $02C_2H,0$LCh_%@_7$_+ 6 _0C_%,_(ۉ_(y`_ǖ_7ɾ,:]1i7О%AL<B&U;=)52Lc#t*].2y%%&Aj!J 0@Ee 3  ?^LeRyw{!D<8! 6#IJ&%33(M#)p.E5}-@6:T@<:(-G G1S7G@G=:(4XAG8::(.:(If:("G& G,jG3<:(G&C:(1S:(3YG.)G8:GH7:( :(,jO:(l:(< :(lG4X:( G"S:(2:(2GIGFpI2e{8"/73 HE+@/)9>3&M1.$:9!F}9,  N c'%,^'dzF/E-p3%"%M$ #+(-;3|8 ;3<f#oc$aHN254x[1ZLJ 9xv(Xx #jx(X[]xxx.5^ Q3U&?0^@gQD'$r A&?mgd*0g '$r2$r'Q8U{0^36$rg 33D'3e0ۋ6&? u' 0^PQ'3ۣ&?ld`Q?0^3g$r0Cg0H6 gQ76d'$r860'&?v6&?[Qdg&?߃d6$r.0^B$r!3 (0^ 56H  &?'d0200^dڰQ%g0#d&0^w 6?R *BVW7_/ (#$CS#a")%\B(jG־*+c-g2&I7-"K3r)? :E$# ,v}$# , 1C!$.1K(/614&/:I*Am48~ ULv. 5T)0#2!{y?'i,/L"^.‘*Lf'M8r 2NQ0 &5(  #H>S!# -$t8E, %+4 &(]'@ GyU8%Β~'2667/$90#"-=<8y5 1S6l96775T%e7y'$P+1^#Fk&J8*8%= +$2%W#4ҥ<0;<61'#ROw^n$ޘ7!,G/ -i-_Q)57 7 -1V8C  4'=&0 ,[/#$85X'36n@#])@=?43{X#/:Bs"&4mΏ&9:9T7.Շ)~P'8^?)b v3! %><^1M *qi9e(җ7rj(E5a4>0!=D 3z%ޕџ%V#J}"+"{;+=(&`j!qV%(,:lB *ng;7B{+Db'8K12O ȗ$37#M5Pg,:28 M1K!2n%1gJ9c3N0g'C|.'0H,#:=m!^ tw9F @38,;3w*X$+"h`.38+.I4}*#&XVҸ+ݯKq%*(3_;_;K +?4r'M% >yK3![Pd,,.94>QC"nH}*N0.7(LmAY+160q+1z#"7,\e0,6.93_/'25J'7[~G%?&12'õ9>$17\A?#cn˙# Xߝ"} n 7N n2 22"D2"5(6q*J|0(.=I69^=$2KX ?#q'c77M+ '>  , ׍/9I+/: 7=**s1".-! +A1j\K,*)~-((Z0!,2*w0:(+1R&19 5Oo(=0.1NcF& 9e!-hF1A*2r#8^'=F-3(N"r+I%Z(4D!'b"q'.-Tf*"WD.+ .2(OԂZ9,7!(1o(8E+2k. (8>(. %L{(2k(7!D-u4(-uH_1#N867L)TR-M|05})<EM+=%x<I6J)5K&M-5 &H.3'#I#),8!92]"1A(@4z&")~);8 38 L/6I! )B00z2d@3_D)m݃"),w?=-)Gy6fc2<"=ڝ0Eb<0( #B9A&6 4'N*=5-%~i4+!A^,&0 T  mT gzxӘ Y?,7֢.7i޷ˡ~9q͖yqh1]74  Ig97.q& ;7^ه)ԯaQw!0- Cp {HJدCyB )'@ ʮ/q.6qT^p]GNM%U  =3[ 5!E g!i7"'Kz PhgHn_6 q&,LAeq̚'P> =z n s1]'T%7! .`=Jʿ!A -hz" %wJgqrq{T?V cx`%ӿg":#pۈ5֍7 B  l%\83g]?5,w #P {C S[c "FI<G$Z qj8  hϮ^G- S"'<c!G_5E4<c VSa&`ϱ^ e{ռLcexGzΪ fq!g<n!wq Sw\ th7\  ezrѡo\BL_%i]&!  GqU YR ? ~v J0Tgy$!!r&g&  .'gbf/"O^0 (g#D )DqZ_T^('>qr5^ډST  (^Gs?1t?l/?,"w7^a7"Ha']wfI\MqE7k\Jsy hT^5MJlBJ zt"0 QwԞ!c^xmT^[^g] V%doS%gܶ ^ѽI\$6ʡe{nGqM y+SܗBwK!oxq )%"&NO &??T^qzb4%5.  0(Q0˪#-M8+),  4.NX3_+DT!#d0<8, "&%9+ JC!Rg1 :wI1)x)A3E,A!0#+R(e7bHRhc(t2"7i1(/4DI2(0`,/.?0F9D)]-#5/F2 7v.,v#G+Pʚ)M8g7vN1F-38d)i/ , !n&9v.i 3K(C*214$gGa))$5;028z\9x 6wG!#% 2+44 )."(PV"2KJkL3_(Y,;:'"D    0t 1,U,IIF/'v0 u1Ds!/)"YDe`*^K8{0!* #MaG0_a!a60a- 0a/@a*(a!a&C-a6sa_ ^a`a&C]6c%.4/4qCa6ca-@an#,aaDa60!Aa.a.a!%.>Ca6a#)YDm9DiMAoȠײ p0YAc(o-$4?=/9m3sڒ3-=`B:*%8CH2-,}h$ġ%;*M+J-#͆'-#3#<w /++(|+t"n2=.&'@=n,7w uuu#)&*ԥ_%#6"#7i#;f### #'#0#W*#(* g#0[#W#_D%65Gۖ/:#/:)#'(#6C7^#%6#5 J!d#j*/(!J!/oF $ SS/d&D%UB*7AGxi -X X6,O09- .X5+<2)0v-  ,$ &++Y1|,.7.-ԁ'p3?-<l3T6'3ɨB,B,_B,{B,-+pB,0_ 6B,0׌B,+B/o7/@+M$3@2;!85>z( 84Ֆ,0?,:#5|3I"Q5( .)aZ3J4171tHg .',% S-Q$B"@y2^`v/"2*# %>A'е1r@$M$7N9PS%!&-@.%wmD!0!#*}_";A`$0 \9}|/(:.2n !+7rD-&X(!q | J4f()&BCm+*n!,^769O&z*2c`9$ + (;5ւ'9  B+?%;42#[ ( n  /'.H0#o5; 5,0>:"@9c0G+ә6zH`_W8;1 ѯ+:b/ <,;6/>+g02&+DT~G8EO60I9e[B#DK*b5#/>Ր)6 :+2'92({8o  I51?4<_%X 6,q4#&:5-u4:(%'pO_"F#8W +Z>)7#JqB9 !ٝ+-(ir)6'>8#+28171=0VI&,:2(84./2]g3-(YK' 6D}4Ȏ.iH nHn!-S5M{5aDݺ7'&G3D>&8[*~/2 %!' 3N99,/n2 %j4}+Y/:<]L<]<]<]V<]<]=(V]<]<]B4<]Q<]F?<]<]<]<]D<]B<]a<]SN<]<]C<]?J'_D<]<]^S`<]<]<]<]<]W<]<]')<]@B<]<]<]><]<]^O<]C==:N<]<]<NtUYR<]=CcX]V<]ZTEA<]^a<]<]K`S<]<]<]<]<]<]D4<]<]M@S<]<]P;@;<]G<]<]<]@HO <]<]<];<]eB<]<]IrZA<]<]<]<]=<]<]<]I><]b,K_>@_E?<]<]Zc<]G<]XDH<]?A<]<]<]<]^y<]AW[S]=<]<]UEF@l<];W<]<]HP"OlM[C<]<]<]JZ<]<]Th<]<]VT<]<]C~<]<]<]X<]_/<]N;Ui<]JN<]E<]U<]<]<]KSD<]<]@b<]^DbXRA<]<]X<]<]<]<]\<]<]Iv`<]<]\:=<]<]<]OO#;C<]UZG<]D<]<]M<]'B"b%B#8[>] )4B3q! 39 00 X. B+,$ 45_0:3S:_?#Y2O&3"27#4|41#u) х( 1  N/9%"63T-KD24JL-,5.;J:%pN/$pgmDq& "{3_M)RA"'0)7MN##W#J#/<#-k#/#6&#(4#,#p##=>Cz&h1"Dt0<9',73_D|710=60D:9:L0:97 0=302"0=50I:9b4q0=0+(G0=n|;:9 0=60# 0=50n5Q0=6$0~#5Q0=50~_:95D:9m0=m/0(G0=6DB:9^e0=j0~I:9mq0=l<05Q0=6:0~bQ0=50d"0=lg0]6-0=60=60 (0=l0}(0=0=0}a :9nF(0= V0=510=iC0/5Q0=60"0=70F>:9^0=60/p0=60}-#60=50~^5Q0=6z0}~-0=_0N0=i 0f5Q0=0|q0=lZ0}"0=h0I:96-0=50=l 0~q0=50~GM:9/p0=0}-5Q0=5r0AA:9 5Q0=70}~0=kH 0=50C0=7M0~0=5w02,0=50~]:9i5Q0=6p0"[:98Pq:95C6Y0=7b0~c(0=i1I:9lBq0=5|0q0=7c0[:985Q0=7?090=0E5*0=490=n0E0=50o0=60q0=o0RM:9i_:96e0=7d090=N080=70(>:97:Q0=I0d0=6J0PL:97C q0=j%0Oq0= 0+(:0=50q0=6"0Q0=0d V0=W:96J<0=6y0~J:9D(b0=k%0,0=5w0}q0=n00=60~90=7=q0=l0+]:9lyr>:9Q0=0P,0=n0 5Q0=50q0=500=i@5##0=0}q0=6040=n0=jh-0=0~0=k0~Et0=5;:97i90=60E0=50 V0=a :96F5Q0=60~t0=k[:98I:93BI:96O :9O:9nyB:9kP(b0=600=n00=l02w0=n0~>+:9i [:958(0=5x[:985Q0=50}O :96g-v0=$AA:955Q0=605Q0=60|0=0q0=6e0}W5Q0=70t0=o0=6og6-0=oe0=0e0=nw05Q0=7-0S40=5q0=7>0~ V0=n320=kx0~"0=n0=j00=k0}Qq0=60}i0=63Vq0=i@0,R0=o0Tq0=h05Q0=600=gZ:95Q0=7 00=7k0=70e0=50L0:9nq0=m00~0=50}Q0=m0k5Q0=780}8J:9A:9n(:0=iX0+0=o0}e0=6F0~e0=mi040=0=m/g5Q0=50~O :9nwq0=n0~5Q0=70}0=60~5Q0=60Z:969q0=0[:9d8,0=m0>5Q0="0~He:9/p0=$0}-2[0=50=60~q0=mE0(b0=60Q0=0d0=60~/p0=7V0}-q0=7Q0~(b0=60$0=D:96 DB:9-[:980= 0}q0=50+q0=50;0=50b0=l 0=0?0=j0P80=l0}nI:9l0=n0M230=7Y-##0=lg0}B:97pq0=7 0~320=6t0~[:980=6!0}q0=kG0~-0=0N0=6=0,0=o 0~,R0=50Te0=0~5Q0=720}0=0}(G0=gB:96SP5Q0=7<0q0=mo0'5Q0=6600=6?0Z:9k7q0=h0_:9j40=q0=l00=5020=60=50}3+.0=l 00=50}Q5Q0=60~0=6a0t(:0=7C0jVC:96I:9B>I:9nkU10=6\0/,0=60~##0=70}0=50?0=0P5Q0=0|0=^5Q0=0~"0=70]*0=6T0~Iq0=50}{0=m0W0=60~z-v0=7V6-0=7c60=o6-0=h(b0=kG0$5Q0=7a0O80=60}n0=60t5Q0=M0|*i0=i0i(0=5z0}90=o0EX:97)[:9o8>:95^2[0=m0= 065Q0=7D00=k0}[0=50~6-0=5Q0=60}0=50~EVC:9I:95wB320=f0~l0=i00=k+[:985*0=6*5Q0=7;05Q0=60}0=n0P#60=j$0~^w0=k0N:9oSI:964B:9m`Pq:9m#C0=6r0~ 0=h0C,0=0~"0=m0DB:9W:9<5Q0=600=l 0cL:9m q0=j$0}{ 0=n0n5Q0=50~#70=6)0~Xq0=m0}##0=70}q0=m-0}q0=kX00=l 05Q0=6[0A:95q0=6020=5N?0=60P>:9o0=h05Q0=60e0=Y09b:9)0=60#0=6,0=l0}10=605Q0=5t0,0=6o0}q0=505Q0=5~0}6-0=q0=o0~)Y:9iK0=65L:9i*5Q0=60}q0=-0q0=E0}He:970(:0=m0j0=7)0q0=jA00q0=D05Q0=6j0~+.0=^00=6v0~EO :9,0=kx09Q0= 0dD:95:q0=n0~0=6o0q0=x0}^:97d.>:9n^[:9x8q0=500=502[0=5&(0=l<0oD:96:5Q0=6-0}8-v0=6Q0=o0de0=6g0q0=0,0=60~3*i0=50i,0=6J0 [:9 8-0=0N0=60b[:985Q0=60}J:96 0=60~Y:97PK+.0=j0\^:9o.D:9:0=60q0=n0q0=6 00=0=6Y0=50~c5Q0=6x0,0=50>(:0=(00=50Fb:96Fq0=500=V!|0=k0U"0=o0}!AA:9I:9i4N:95S5Q0=505Q0=0~Z:9V0=6g0}*0=l0~IO:96DB:9kHq0=6&0q0=o0D:9e:5Q0=6i0~5Q0=60+.0=60q0=60~L0:960=55Q0=50q0=~05Q0=50} V0=q0=630}N5Q0=601M:970=50}R20=o\0=j0}R(0=50o0=60W0=l0}He:9q5Q0=01q0=h0~Gq0=0Bq0=n0;>:9D:9:q0=50O;:9DB:97R20=-6q0=o 0Q0=0dq0=70Bt0=65Q0=60~+.0=0\5Q0=60~]:9570=n0~X0=6d0=5hq0=50}q0=60q0=6d00(0= 0o+0=7%0}2c0=izq0=n30}Ww0=k0~,0=h00=60c50=6G[:9E80=600=5Q0=q0|+.0=50\5Q0=6|0He:96;:90=790k0=n0}3q0=50}"l0=7w05Q0=0~L:95*W:9<^:9Y.50=jG0=605Q0=500=0}Rq0=60'0=7 0M5Q0=0|,0=j>0~0=nA0}I:95Q0=7\0}L:9$*M:9b:9-v0=,0=0~0=j^VDB:9w0=50q0=l0q0=6x0q0=j^0}Nq0=0}{0=l06,0=m/0}5Q0=6Y0~]:97 r5Q0=60~0=50~z>I:97[Uq0=505*0=i,0=30}0=lp0~5Q0=700|5Q0=6'00=730 -0=i0~5Q0=7U0~b,0=k0~3^:9C.J:90=7i06q0=60RW:9n<,0=6t095Q0=7u05Q0=60}~t0=6X:96w0=60~,q0=6 0~)[:9I8AA:9e0=o09X:9l 0=50}[q0=n00=0o5Q0=6,015Q0=500=06;:9l0=50D:9:J:9mE0=m^0~>+:960=7R"0=620=^60=7]0t0=lm20=610=kO0-0=n0N20=oN80=6)0(6-0=mi0=6 20=7R60=6F0=0=600=60F0=N0~0=7i0}0=nw0}q0=n|00=mi0o0=^0q0=i0B5Q0=60}5Q0=6Z0S!|0=60U,0=0 -0=50~q0=n0}i0=j0=0=nS0~"0=6W0}!70=70~X20=kH6q0=600=jA5Q0=6]0OAA:9l0=-"0=0]90=mq0=7b0}2[0=o &2c0=7Pz0=0}0=60f5Q0=70(b0=lp0w0=60~0=m20=-0=5y0N(0=5v0=0PI:96&230=o^-5Q0=60~b:9j40=F*7 $*%Y$%%$ c$W$1(V{I3M0&z2a%0&]=6"Bz4W(f33*q*9C"# ) [$4ˁh"54+9/Z4t= >)Ǡ* /*, xy x@ j  . Qy -7X$ q /gp7 $ R  ;^JSp- g  s 0 Z gT^h ! Np J  v 2 Uy6   z p  O S6 n  JTT ^@G c `#   $69gRz Rpg7^ *  V   2 @ Jpg,p-$^  - ]  v^p   x D@Rzr  ?  H !J 7^ z C Q U z  @6n7 $  u J@  Xv  ' y  ,    R  2 @ l  k6 J@   W%H ^   @  n ! gS2o5 G<S ! WQ7 V  _  #U   ? w]^q 96 P" 8 V 0 P    C7^ lJ7@#   !  ^#$   u n #     _   ] QJ-^J"  < S #]nW e6$ (x E  p 4 i ^ kJq JS%7h  Q ~g^  Tfz R aJ6 ) > U]! w - @ ? b@@  H?yy   \g(i{ ]  "f7 q 0]%DK z, T2  ~6Rn  V 7f ,Q f P  c  3  x?TG6g^f  a  "  2  >  ^3 2 )],x h  D  ( ^$#^\Vp L y +  I 7 B- h $R    ^ q G k U +1C$   W S e.m S = zx@6^g  e$ Wfz w WJ 9 fJ#G  =#mU o  ! , T 4q J qD  @  L%$u-S -S Q"J - N"$uDf,  -6J6J@^5  c 9 O o s 0 f o 7@J^ggp  2  6  N 0  e  J I /7@ u  8 ~^ } k \ =^q$ x] >  # G u +qpq w +?7  % , P   e[(  ?  J  9 & ufF[ S  0 87 J 7$ )gy gzq@ ] _ D$pJ  @     y v  x {6 ,@ 0 W  , !7z7@  z J q $c&  \  ^ J  R 1$"6 uyy  EI ( S 0 S  g N K & F #  \ o@@e"nzQxS^  q D7-mN, r 66 W  6p @  * c U -$,Jp ?p @?6y? m 2]I -$p  ? o.@y<  ] V   [  qJJ 0   V$+ E @ zSR7P#c w / 7   u 9  pJ S   M  JS @ >>J ^J   v   v G--gg \p({-z p [ 9 I^J] i$S ,#)I -X M 57 b E N i  o T; i 2   D S, x ' J 2  q H@ C^,@J% v + l  G Sq A ~ n7$676y, % ^ w ^  go (` 4 Z7r,JS^| v "@J  v .  F $Jqo g O #J  # 8    ; ]h6i{ Q T u$ $?  gpp@$Tz  5 zO  p@ U  %" - p  .P ' Q  f, J^7W  l $5 -J@ w    = g^$T , E? H .$p pI^^ -$ y %#  ~   hH?HY HҫH'_H1uHA H%0H;HH$aH64QHnHHJF16##5ŪC" #H %h29 7(c l6e( -4|HAHݻœݻ"EݻsD%F.l3{5#k"4.:gMX>4m*Y#& BjZ3%71]([6%y* ?,?5Y &)HP&!0\$>(J8$5=1 3:7$<F%*m;Z $Ĺ7z42SC( &%jr ܄8  16'd'I>/D<!Ї@FEJk)5746@0&L#kw݁. F+52&J8 ֍%#1^2.)...(+bx$׋7"77*N77U5W.U,9  $%4mv3{<ș&9/X%:LsH.M4#%'G"e=5ar /MX6!8j'4}#%֎)KY 28. 6UG)8"W*Nm.K/)S(~H#pa79++1*2DHm3ݹ+!?,8Q*n(K4K5>3 #$3*?9\E!&&&`X;&z(*M!ً#Hg/#+D;(i:Bm@)1,h!nO, 9{78W0$+69'wfR( A!Mr™8[})5i"#3NL9CN!u'^?۠!q1r:+*3~/5_+3_A8$n a1E%H*,:3ü$&"9O4*!#9,߶"8p(_7rK-q*(#Lt%0G7s 0350++1?+2),;3&X&yw%0B-:7Ϩ Dբ2 #+2q?/ 046(3459^[?GZ?S#DD &"2H%(^% :M'!,9L 3 $7( !ʷ$  H1 C '#$c4%>.$ BS&%8  5fA+?!5PK=w1%r-  B09,ZSs B .T./>32 #*1+/'z/0%3 v#&;q2,NH2='{ "fE48-.B1k M1*/H,1 !$(7vOcE9ֿ&1+'L$+H)#$+ɏ5=g2 AK[578&?$h(U7-(΀U=&7t&{yե *c/P]$9.L.$:lA+B"8*L)C<)X4Z ֑3/&*(z+h-?6#8~*7ZO.χ!4 P#%9 (?f'+D+1?Q0q0&9Y8Lc V'&18{Kۭ7Rc`c6,&;i&;.(&;u&̿,45m"  *! n(=#L͵J9i V{(,G)41;Ej!!614f&zR%:-J$HX'mD'e#8D9V#G4L5`ޢ513.%O!3fP?eo5w$//9T~/83vzD,:k# #3!.6B?}9+]q.]BPLp:9QT[r9+AC\  %a :9;!\!WB\--BB< -%h4\^U%S T-Hi]7.bZ\^^D\!Gu%q>[mA]C5a QqJ4&]A] f:FK=QjppG3 %Uj `T%5^PhL5P]Ab} Ti%h4[L];?[X B Q Q P\\VNBT-:9b[]%%L\N~[  A\2 ;\4TMD;! D:A rJ:9\2 d d[AY  R"]?wqT;![%%U^,  %^ [pGJe\B  KKzbE|[  M{z" a\@`\^`]##^]q>\?? T0W+ ]g,[[O#;JJ=:R \-  V!;X\'KK%KK:>1\=hh;\Cp4S]9$<T7;!-^,TMm] %Uh:9]#h[j.bSp?CqhWTv%[ehP\]TE[ID{ 9SSB?g u uPo(hOp*hX/]huuBTb[%MZ@:9\B_l[ ) H HK@ Sa^,7>]#KL= K4B\6.$Y\NS?L\%Hi ;!QH^9+< d cJ\hq=m=[KK9+[{;]KKhDk\U9+XdZ\<..GJ TWWE;;z=pS;!+ V Vb\f?  hI[O?EQ? ] QqT;!Q73RT[]`\2?\hEV ] 4:95^\Z^R[GH;!OO\+h BLL \hC[ ^:9_O%5%>L\2 W$.b\\qhAV^K$}P!\>B[KK9+]n , U -EPEJ[KP]!OXYJ ^(5aa"KKVU@@[:9\2 J JRT S`A\KK%I\!Go$<h_ 2G} ' d^c]kk%< )qqV=0@Pf0PI\2 < <A\2 %C^qT;q]qqhWja1+[>1\KAhDY9;!  + `:\\%h>]KZ :_^yyUh-\ ZiEr[?hA3^  L\Q\2 y y aB\0K[FuAx[{qqW.4zJqq%_\2 $ $[`^:TSv WRhB`@;TXvppF]M [GB[}KK5Gy[DKK9+^  KE_[G^KK%T PSF6FUBI` \ \O[  P\F%yTbJ KA] XZ\a @p ;=<3Q0J)Y\2 =]L?\TbN>K'BT,F]Q W  \XY[%%a  BB m'$]7z4RaG^%%Z^bT]J\ -pEHIQk\2 g g^ TTUW,tW;!\2 E<Sy?TZ\!BE\@5<=[zG]%=\}}^#Z  .W4WL l lBGmLGc S^QQS JY^4<N?ES]YY`'2 <`:9KU @ Klh  A\;N\a]ggKK</gbFV'hVI %%BA ^AY p;b\ uuI\ Q]RaaLy44XG]I@$g4Q\SSTB:9!K>TTh\]SSArK:D6ALK[q$Z\Vt F[f??3O]S%@ KVi` D- %5 !`\N\Q:X(]KK%R.q:9K[i hhK\2  w ?bQ )%%YyyBS:9a^<h bRS|.]  Hl]  PzM77hMB^]UTRT?g [y%%5C7I%@,q[\2 B BDy[^^[A%%D\hE^/#_H-M9[ee?[?#agVBq # DCKE\<<V' i]?;! 9TNq jI:9]!B T7;!]`nSFG[i G4N; WCwpS[Z'%h4T\  [$:9h _\2 \i\4T  nBWBG ].H|-]%GWJ:Q5]|6pT[.D h\rU zb<K@[`qP$g>$;!\2 XKVgJB:zFzY]KK%G{>;![CKN?;!  Q]RBEhhI;w$D TT%>;!sg  } }BR]!G\qZ5[  LqE[h,JW;! Aw]vKK3^z] HX xTFv[|oQKI$:9%N]gp`i+n:DI%bYJD$; :9hY f f_\  =#:9 N^T@&\K?\2 G^!  %YFA[Q44%;7 A]ZUo ZSz:U\.T:S%%M\  %?eBK[h.`=u 6  D[TK\C]'*c\2  [ {H |  ?F\2 ; ;U].?.[I],VW  Ok;sz8h ;!byx GFhhB=^^NGBS&ME>c$$N\dt_.bE]]Q:[TS$F S=q]^4_>@]%D?S$\ Ff[@@Hh@:9_hQ:92 @peH^.EF?\2  %@ ;!K[ ggB^3\[2^\g:;\Nh7b=]VUh;!\2 & &E"^VL\BSt=[hKJ @5a A5W66%^  M MP%GE  %QhHL]1RQ 7:9$[[~9+D\hooA, ? _8]y%%Ut9+^g!W` K[] a\ / BFrG&4Sy%A$<\;!%H##B`\hZ^N[@-<;%;[KK%], hhak bE\^  %K\QGd> _'T7 B]]S][h_%>  RT]BWM^ B=]" l l^'gJ>6EP BYwwK` o$FEggNk]j5R\H4$a6/77TEHTTBQ%qq%E[RKK%H3h:9 \hRn-TM\FH/ >.3^PK?\"5^5hPW P %;!\@bW4ihH'6bH`\E\ ]\LY\f#C^-KK9+H(%<5] SS\M-ZKz:;7\]#BU]BbVY Tfg}  B ffE ^(!_U-pL*iij:9?y[5`44N  K;!\.3S^GN[mBa\[\2 ( (hH[VCN[h.A]QN$[  %CZ KGUix BP[C*\KK%;kgF y>[55 bv P$-UUJpN"[@@S/W":9]  B! p c;@]<|:.QdP$-P6](h.=dH/;$Yy % I?YA\X!K? ]Sg@[hhW[z$KaSSX OiB; t%V ;I\;!h>x\II^B@[x9+E  Q\RS<6]hhK,^0%T^F5O@KE77%]]a<m; BQA`@\>KK%?c;E+|w%%_ HK{%h4[W55B>R[oNpW\E myU];  %B`0U[QK %G"  v sV^!q.L\.QbRd]![@ PR\RggWqPSS%_x I ?[%\ p;![bZ`7 \2 S S`[PF9:f:9l..MKE2 :9^,q._X e eU]Fq$V^;Mo2 *h;!V 8 y;!<:9EDtFgJ;]]" D \KCIW]Tt];gJacU BM\fy9+ ^G>BX\=>>D\hWK^kKnA[uhVM]W.^io   ]]XT2 J[caL^F  TK[|Ip@p;Gf ? ?^1~H c,,%C;]A??%J  T TI2 0 6 \g$}Y 3ZqF)r%>m L LN6]a#TYp G GG[A66 \l@^Y[$AjmSXnn%o A\66Z]\hG..@8K\JJF[K@@Y^4J\>  =[5b> F`-[7\_  \2  %YhL BD]K%Ru[?~[K X'%_  BQo]n Zsxgg%Rp3`]X.Hs  D\66%N$UDp:9J-N]Z^<[%Yqq%[|\!J1VT>=   H>U =x[WLzzY]33D 6  sW0\2 OgOBYP aEp:9F;![jY]%%5^Vj\2 Pl^DH [  9 j` ?\S!<\2  %=] P^TO[  \L  _\2 ? ?;KKUV  L@@X] hhZr] K!SSB^~;!W KE]6zbZ 7,;!^N  Kh Qz[hha[%K~]4$g:U]jCP'\2 M M\.Q+V Z gJE![hhO[V:$Bg=V%SAqbI ?:D:I]Xo;fbB%F :%V<8<]^@s \2 [[>hKmE\q.[97$Z 8 8B<." W WB;]R"I![KK%X^C%A)\x5Ww]^KK%Q]?7?]`hAjJJhV[@KK9+\HVPh b^F]  C[%`$c 8BhT[Dzz%NKI5>\2 0 0H q:KZrF^0]: EX3 BS | <\2 [D[n!F6P/\.EdS^b1Z [ :IahC#W@864R\oG?M\KKO\2 UIZ?Xg:9|//]|KTE  8\x]N oR;!^$]S,%HS zU?#;!BV#^(]%^N]my] ^V;]@\,TL[KK9+P\Vz^K6Uz^:A\2 { {T^.?\z!@R]Ga ;$FyWD]-V%5 :9]A4@A[x!Oc[{h AY[E$1 | + U} ^4T}Q,^4S$`[{.Ou( :AW[hCaKZ?fT  X ) )a]]AKb\R%QT:DpR S$g@QN_7z]j%<%HJEH\Ic[J$@|Y$$_@]%E#a\Boo%L`?XB7\f= BF[KKJ8VK \[RYNc]Y[K5F\.CXC :9\KK5]v\9b=^4A ZR$$a\)KV P`  BD4^V]d:aZZN\2 l lKH]\vL t]aaBW>T \a[f`\  @ CV-I]%_ %_YLeyN"BW;T hO7$]\]y^c?^-b%N\2  %Y[7Y u  Pg9+\fp\aT^6MO]}; a]  %X:Z\UhhFh V(d;H[KK9+_K\  Y  BM\V%Q\2 H]>EP7^^,P[SF ^F\<bRg6pb:X c]4]A]P]KK9+[T]7C]@; =S[$\fp:9[KhF[RhB.5%B\9ssDdE;!]O  BfI># ^ ^C cp0=^2$$b+]p]\%@F @EZ]=s,OA\3Nn\Mc TM,h:9%%%\pgC1\BX]T7\F%B BE[%O 3]^:955G^?hQg;!@>%< \V BZ[y9J  w bG!ppY@ 4]8[@ P2]TT@f[zzZ /VO `TF%K4<\  IJJM[?^^ V]ABG]}9+L[N.$R]\2 a^7?B]A KB I-E WR ?:9\2  ] %<DgFkZ}[JQ]%` qb]--BF ;7z4J ^?  _W^3%Udm/O+>Bc`)[Xv9U[ bAQBJ\x!Zt$gL]ABSJ^9+\Y@J=`b] [ $J\2 x x%Y:T] a/%D]@:E]  %UE -`Z\Xy.]& ^\VWz8^!V\  hN]%; J- O Oa/:9[hQI\JSZgQWbhI SC[KKQ--<]TN]k??[ =+^\V[WKBU,^  >^KC(;!w._BSPw;!  N \ :Wz $= p:9]%<]J##a\hhJ}%%BHN:G>[%;n@`qq%G&;![2q\, %;KbS]Y[yhhY V" H&\KK_%DgH %G\KB\]_\2 ^-=U\.baa)XqbLMX JBR[\  F1]  hb[9+K]B>k\+%%UG @-/xZ ]7 bZ@$;! KVc77O+J;@BN ' ZE& ['EK?(zz]H\ZZhC Q4[A[KK9+E[W%Vp$$Rh;! h bElW%%M;h;!9FJ-;!4_>=$? %=I"BB[oQi# g gS]KK9+L^ a`;![^Q^9+g:9\J Q__?\qqT*^;TB]i  ]Wn &   %EP r%bC\;VDHK>?@B@[KKh^[M  << <3 ^:9[]\D%^G[,,hO$]hh[-~S ^=T\] \ ;!DI[UfLKSF>5h X XWY]6Xl:Zqq%F6?`;![hh?V\%%E\QF BJ ^@=y[77E G P{D[Z66\e ; ggBA]B= .b]\T\T5\]Q \,7^Z[!HRL]!C Z64Rt   gbJvJ[FFB]OT:9[w  Dh[q9+> ^@;! .F4A]%Z_;!@A]BO :9| L LUk^T%>N(h >c BaU\!ooEJEXl NI[[Ld2qT AYBV,N\2  ^O[V%$H^ aud%#[V}\ TT]V[NW%@g;!V9%%B\hJc?J\2 B[JJ9+JB";!k@* BH^F]~9+A+7:9,U\2 ;]Q[.oZ=;![XhhE[6 hxx%R]bhWYxc=7 :9^=qp?[! \_P`npPp^4pQ #TD Kc?]XTTp;![f Y[b??5T\ . .BZ6 vh;!66%LISPgbUSy7B:I"\M  Z PGON\%Zmgg@[KMzN h;E^SS_4%O|]T%Di)IID%@hRzzTL>]KjBJ[F^^Sy= \7>BO f v vM]  <*^0?M]8Io##L?h a\^bB\2 U UU[n$M\%%L([pS[_]%X[--BG\2 K  )A[ITT^]qa. +%@+\2 . .?[hK`!B7EE Efh W v;![77$pVTJ:I_^?KD?:\2 =,\4$4[\2h_Z^?Jza\XN & ] ]Badh9 BSdd\&\D9-7:9 _[Xs\\a\2FL%%]D]ccL5^@;!%<\=G\V?g? bP[w!`F[}5F]c!T  ]=\7-_>Ng$p ;!\2 i i%L\HKK3D]KKA`!\gZ^:9^E>(h >e\yy%Ydif:FPhS\XP[[B_]IP\2 3 3X\4qO;!]%b4\+h b^8^KHJn^UK]6hhh=\gg!J7\O\KKhB[[< 9S4Npy`yyK]   B]MQ\oR@^ Mv^ FFPP 1 ;E $gU^-BF b= =e ]Iaf:9\2 O8^S7a\S5<@3S) J:9X\#TP  \+ p _  9 9_*  -K t tB=)SU ZK@:9KFxBP5yRRhS{^( I\  %Q'[[Xz[mBKQKT\2 } }EW  H<yyW2\wT]%S ^: BJQ\?0-I^EhM\5az </ BL\^q.Ii;Ry2q PPhW]OXqBLX  C7 ;!\._~\=k>TbSi^ :9[D!Zz]:S]e6XsABCKBwf?>\gRM\$;L\2 ~ ~_[Hh]iZ&&?xK^Z'[a[K?t SS%bg-p[Q[NK\mRq\[IKK%@   ?[7L]`Py\2 ` Q M\2 =  ..BF]7D[x%%5F<@:9]  M T:9]J ; BS K:^7ISr\2 ZaQ 0 0BHZV g >:9\h<BS2 @$;![@ @Zb).MLB_\XSuA  _.T6^?.$@\hh`\C!E[l6>]$W.G]b\  \\Gi?:XJTKsSP& o;!]KD,qT ^#SM B@qUS  J]II%F@]Q` D 0 `]BQw;!yyUl\: _i :9X$ 3 n;! ZXV^1.$Pi\`* \T7;!\KKh]t PKKZ<[%;[s;-^] F(i M)pp>`]|S$H.B?[pK( ^9+ h;>^NR !K^%W@f:3qq%? x;UU\!< J G !=W9 j;!Ep]G??S]{ D8 :9|z$pJ ' +_B\^KKh\[h.> 7$Jeg>* ??YC[  %@gJ;UL UwggBMiK /opZ.q:UR\Ip]]o$RPT7;!^:Yu%O\yy`pE]%>(\g:9]6Jf[BUZ^KK9+SfwpJ\=zzFdK=]p@p:9 U UE-``BBK.;!ggBC[zz?#[g\JgJG\R ^B>;\a}`^\2 \ \P]77S^@7<2hI P Pbl\T_[c=#\e,ZY[5Et[%%Nb5;!\5@eqqBG\Ib %M>[!;J$+X_]KC de]) l  BZ+y E -,:9{EnTTTJ]._I[GMA=$h WzzV9ggW6^]%%%CPhV1y:9@xg;![  @[Q) L LP$"S=g>>h\[y77$p=']A@=lCYM\2 %\].yyI0H[qb-[qqCL=\ [v%%<:M\ISS H^Vb[hM\[kz&.C\7pY[C.$Cdb;! B\Q]FK;G]JJ S\Wh<4Cy%h<+-;\2 9 9^H FYUN<qT;!^%%M\2 ~ ~@]F  :9[$_ '$\2 AdQ$\=%%T]fKK3_D\2 x x%IyyCOB;NPqq%G]KK%`\2 I[%T\2  ?_ zzbo\ ]*@BYS\  X]=QVqW8Cq\YJ]\!R|\77$pJ~^L9JgK^ ]  %F;  BM]ApB/].;]%%?] <8[O\#].X[hha[ X[oTd%M'\ VKE\2 Y[ZaL%D*g9+ g gBOHd-ZW i| N/=]KK9+O`j;ETiBQ*j?HmhhR$ [ssBQ[J B[^DI R9[\2 C#.C]..aj[eb<"]]Z;]A%IdX;!\ \ Tbn^J77%a^VH[YJC S @I$hJ[sB$S9\^^ NX@ 0 :9UVz:9%_4@]H}]\M[``Rp[?= f:9H^5?/;! B[gM[ Um\R^XO]  TB>EChhBO']ss%GEIxg)^4COEe]N A>\2 \[KVKR:>]J `>,K:9\]0/ O4H[y9+OBqqWIRTN^$PASEA\2T^6YMfCLo%N/\g]pRVu\2 DN > ;  <B\!V  z E'J[\DYgA;!hh\S\2 I]5\]SSh@x6;!Lg!MgKy  KX.3]'*hh<g:9 O[N[x9S~ [ [BQ%V}z:9 7Z> $D'[hh[^<%%]|\X]Mg$>\2 . .D :a[$;! :9]7D\hB\bJ\??EMA `66%a b7O\hQla * *Gi ?>m;#U;AY5hBJ%TIJ<[ L1qT;![T6pFO O>G\DffG[.$U^8K<^SKK9+IqS>]66BV]Fi:ataM\  YJ\2 n n%_ RhQ\RS]JU[a!T7Mb%>]S$X Y6:\$HsSAl[%U%%YlhL6 (Y2u BP^ UT^ p\hhRKM %P],o^OB9%O=\ <G% ?$gSO  O%?:R].T/:]oTJDK[aJ?L^3## A\p>II%K J~K.;![`KK9+Qpp%<B \p!]\JJ9+F0[fIWy\2 T[ S ^K?$$R\W\;MGKh4#\|  V_ 8   D0>X1pp][9+P MTUU;! JV0]zL|\Y\Lg K M\Im +[Pp$Q>^xIY;^;D\2 D DB ]zzZ \B,,%??\2.=/aS^OSS%NVHU^4-D0]:Eo!\2 P Pa>KS`L; >v B;4B^\S$a$:9 rPG(:9[ S)EKU :9,;Dh= \@j,oS ]I]""$p@]KK%] =:U=]N$?= ;5 \0[K^uz:Cv7Fc .9+-M^HBCB]<|L;1\2  aR]:PH B;!S67,\"`S:9aD]iKK9+_.WBS  SR:9\M=]IIBt00SB]>[u^E ; M"]?bh BXeqqK[O9f;!  L{ $G]q%` &5:I[  b^:  D ; ;BN@<p:9]\\B`2%?4Dc\^:^wgJG\3Nl$G\2 %Cf@Eh:S@I0$:YhV.[]\[HnF]K^Wl u;!\R$KN%WVZz:9 K;!^$yUnnB_yID>[BSKK_c]V5?5 ^^ ?]G  OM@.Ak[)p?.L =h:9iBFa\2  %Y^8  h>|^p7P^S  =]BY  CR]nH\gREOx]TRT!\2 `GSSK>[h:9\KbWL%?%%_ ED J _\2 M\[q.>_^XQ[![,\}zA]%R} J]%%a0[}$RC]hhPW Js=I;! 8 \^H.;![|,Wq\-XxV " :9^ KYJ:9T D AC9+%I]] >]U!k bF]Rj$NJ..@]i n nh>P#e\<) c cP]E[ bx\7V,:9f%]([KW.9+  = =A  O :J]o.. YqqBF]KKhV_]]d@y x N,Gu\2  H]L]C6bPF oo[S ff Vf^8B'^S5N^ `]\qUd]BCNqEg%[\2 @\0  h]UC%%BYWp:9^"--aYggIy]Y-Z]%J|\5XA Rp[a%%5G[%DuP\]]:a]KUU ;!JPhK[g;)yB]i5<\S_qT @5TTB^\,KKhI\2 O.W\FIIA  :9\^^=ohh;]]FKR[Z\2 X XU7\*ZR)]OZ$.P?Bya]TAU :9a<]@z$^4K[eD5[.Ba %_^@f ^/]q;8]Il\2 | |Y.^]7Qg T![IU\2 \\7G;!WWE%[i  %?vL$ X +]%Q/z8O[AppE]KK%@uQ:9  BB?>%%Y[]OJ\2 H\s.V#]qQ:Ss6:;l 2y;: = =]DU( wP\2 % %a TTPj FzzbD% `V%SS]Z]#L8%A[\>F< -K$)T7 LH[<A~]B\\%P0\pKK9+EZF>m\".M:;]%%\^h\ B]c\X u\T[c]u:9\2 K K]LfKb4]ha]KK%=@0a8JOq^T1 @ QTz``;!z BVfVa\L ]]5  O\$_j\%%5E{66:9U2\ | |A!u Sw5\ 22hGBK$}K;\ %BSS\dWL :9\\N^^uRk]z:O6W. 9 :9]A--B_}~ > > N\2 p phYD \2][n7H9%D >'7}?bHV[I  _j.3\$ChWWB?U]aW5 W+=9\-G[$$P wggBU[:*BG]wEK\8p4^@\/%N%]Q@$\Ryh W]^,]]W]xzZE;! zV( a[%P\fT\2 6 6I\2 M$3%pCbz>T[Wr\ `u%Xj 1@@BL %Ip[` ROBR];\2 >[Q u]\hhh[[yQJ[I%L>qq;=]BCh^.<B\^;i H HB=5\ J Ja\2 ) )%H^MX X@""[Y^]]B_?\r>fTb;!]Q%Xh;![H ?`TT\[!Z\ua?^^]q.L %)7Hg77F P]GGBLaLtJ S4C0]I9m; '$\? (@A<"7C[w5D|KZ\ U-I^JJ\2 4 4NsS^nSzF7^QpVvK^)\2 a a>]Eb]V;!^*^:OhP\XqT W\??%Eq  )^\^D[  Ofc 0_B[KbC^[KA2]};\?W[--5_^H,JtYhJXwy$X0^&t[b66 < K]hhT[,RW[Y$JZLdG/C1dK;ZR 4p_]R:M^'%X ZOhhL)[5B]N;]00hBY74_<=[@  JYi 9 9EZK@[KK9+H[%%5G B M bCg? \5"G\2 / /Q[%X  BI;!^>E4]" ]\tzX2\2 D D=F\;7N]E`3S4\Q\\2 QS:9hN  :9ffBb7 Y[bPh^\%%MK& R Q 'O\ ]NAZf g.N:B\2 @ @`[=+gZ3dPbz-\JJBR %a6yFSbM:9Bbsf) &6:B]^@`KSj[%%E\G9T$;!]HE\"!]-7<Z[ZyyC^7-/ %5R1MWU ;#H\2 P\2 u uJL %\,_)[5I&pJJV\c"`+ Q`;!A >n[ ?U@@<)GEMs*y$N\X JJCDffRI  ; I] MMJ$O W77Qi\%O&\>%%=-F} :RJ  b@gJ'$ Nr\$hC[<p;![h%^.bGZ%h:9qqEW ubQ]jKK9+A:?^^l`=\2  KC%I[hQU\f]![RS44LU!^a { ,4[g  g >:9 EK9%@sSC\^7^PH4%%Jh H\h_oGR yg5 ^:X = oC]?1 I}\l Ky%PDBXII]\2 [ [X ab_\2 Vq:9\yy=T4G8[%%hFt .KK\h.@t!CC=\ L\hJ-%D]z%[?\JJYkZ `4~;wy$A]7^^%M\& F[B\J]8KKVS.C{]T\2 T T;V|;!]!P)~4J\??%B ga]L [USSU sfb ShH[oQQJh >^FKK9+X]<-R]=f\\@TW.D[Lq /KK:@W 3.q:P%a A ?Mk[]^,KKhS[--%U]\\5C]SIbEDAI]%X:]U7JF66BAQ%XS#M%C[cH@.\>M[hK:T[;FqH+V[  _A\<qqM TW^HIp<[II%b]BG\QQ %%R KpOI lV74B(q?5S%>J:9 %>]^hB2-Ni]`.$?o l l?^LG ^:9\X?qR2hVF%DnU\O_s5mm@\2 ! !b]-3\j%= EMg4O,ZO%KV6^:9j;!]9 F#[BQ6:9\Vw4E ]KSz]%%> BC l.S0H BN9V[ :9\(``%< >7[KW<%Gp\S[g  J%PSxC> MQBX\2 ^ ^R[EYfg;RbL|RZ*u^@;!vJoUha&tK:9]-_[@TYh%KK%I7H\_^,I?#;![ITg\ EV1 " :9k KEJl\,VlSO5]KK9+F^   H@:9\q.U0h  ME'P(2m\R]j  =[bbOjI\SS%M\2 %X[xC]BR\2 A/e]]B"hhQ\,q.<[  N5KK$.> gJ;!^ ?? U#>\ C ,gTJ;.TWT:9\RR = J:LW WXH\2   @!f.J??IV]15Q!$;!I:9\ %D]rKa\ ^^MqM yTA]j ;M^ B ,TT\Kza#^9 PX[B> S"\W[}  A}%ID\2.A]KK%O[%L0[v%S58\2 GqR:Cra^^BT   >[@lzW]BY  A;!<[!.z8\?K[dqqCGR[q%%5D  o oX G6TD;X :B,;!]rEE [;u ] ]BalC[=.Z3^K   ^D]PxE\KK9+=] JO^;L^!V ]Z%J[  [$$hE[o=op=)\66H ]@:L]c  @(^KL] 2qT @ 4x= @[S]kI<N&]l]:aN\jKKP^U^M  M aD[uW]flYL].hhJ!]&t? rVl|Z[ ?\KE^99+b!*THj?M2 :9\KK%H^#"q_w :9]hhTKQ;!T7^.a%Gb R #G)wpI@Yh;!y PW0p:9 %U\pEY\%K zV%_\2 W..X[@@hJ xZUr :M^/?I\C|1z;!] KKET[KLr@KLJ-N`W/I=E!h- k kT#%;QY 4 4ASHg^T![EBJ\  B; Q5])hM\`dd`O1d\Eb9\  W= T%U\2 Y,^=TR\_  <[KK%P[5h:9;!%%Z\ :9 ^9+ f fX]\%O^BE]]%[w.\ 7zEWciT[5M 55AMgZ]qq>Y;! H]  ? &6\2 C]JJ9+Yw0^P.$K+\"  P#S6;![ihE[d]d YssK]  \[d%%5U\A  ]66%_ \H9BW1 ;!` BY+N; l@;!/0\hK):9\ [N;! E C=]FhFFhhBX=\2 ? h \shhZ;!\2 Yw]JJ3U:X\:%I,` U6Y(]K\2 V V]+Jw]9+A[fTD^"ppKN %?<]k<KM p)yc?\MSBHu[D5XI  >@:9\2 X\0A]^E6]`KC-\[VS[ <]%%QT]=`"[Z >%>[Ihbd[R  a$JW\2 [&BWWpNW[$$Rx]hQ. ?p;!]hh_F : :a Gz]KKhR6] .J]>S<}\u_a?YB]|-M A @B _G \IICA MIB4<]u)X z77V x v4Y_k\QD.mbWBD^GK:_=i\O%Lu@Wh:9UX'?` @; h;!]ThDWv l TVh[F%J\aD: Pr77E^[KK3[ @$;! h;!&z^;!\zJ)L; BC&qT av[_p>)-4z^;!^z+CL KOk\2%S*\4  XW MfE[3[iBP GjU[dhh@R7^L]IL}JJ;xO3OpG ) 4@yC  3:9 ]!BUH RSX\q\55Hw]$G# \hEg l2\]n?<_B[ \hJ]  K zWzSM-yTO ?);\\KK%`[BZe;BhAO]KK9+A W-^;!WBJ/[j22N]hha$\yy=eU]0^ C\2 V?;!V ;!:9V.agWa].Lp\K[& %I]66^]!<"U\<3q:9]BX\$`<[M!G7y-}g;!]^^ K BNB]%Y | |BV`\yy%V+z;! 7z4M@KKaGh\^^%SF<)]M6X{6;!Uq:9kLV Z ^=#[  O OZQ[Sg]^N\  H6^AgC%\2 ^ ^Y&  ,?YhL ]yy`[B`[%XB%][ _o\\PKO[q9T N\2 EZQh / /BD&\JbN\!=z]wV ;e[)]HQ\2 = =H\<%%RW m ;!^ M\$H5^9+;G 4 4Y|\Ju z7V)\TT]![I>^JTw;!]@W ]c5<c,,%DC[lJJ!X~\zJ9\2 %;\G7@:=vgZ\O>^,@[pp%] ?> m m>4 e;!\>hO C%I\2 >^]>JJ3_Vw]KK%=[>> W<k4Rq'$fD,J-;!ppB_hDR\--D[Y c9+\2 Yp<EhXV~i >[a.. EdB^%O^B * *`zY.bCq\IrSlV !;!TC^<KbW\  F/].$}AN B? j^; Bkq7EvbL^[}5`NgAgX$ Y> wKm^^%]qq:9 hT 66VzOV E :9]TR Wl\-:Y> cM^2gpW)/?H]7qqX9s;! 9JJB^^\n`H@\o  Zp\@wO\|$`M]hBa\  \ AbH\]C,?I<[hJ=g^Q%Fl G G<:]^B S S%W]KKV]RR>^^Bb2F.O{h;!F Z ZU]Nu[,R]%U7zK' B BT\V=&W ;!X O[ahhJ]5Kl%\gg%GX H)V W[JJEB]%TGa^'Y]ZSP~ $Fr-;!\6hX5]M@P.y:9[vI K>3\!,,%> BJ zzU]KRV ] ;!X @ P\z5]g-O\2 ) )_ 66MU^- ; KC R<KS\;EH=Ri .&EaJ~=J5P[hK&zg:9]JJ3G]]Q|pS;!\2 ? ?]A99@ RU^Jz:P+]  %TBTl\2 C:]K ;[.$H$]o9+D]:LM]KKN} ,KKw[NhN\E]@@hW ; ; \D@:9]<9 +KK A TC yL/\2 %^\Y^]ttWfAe.5\qp_z[5]\p5I\.$VxS;!\ppK G[<hSV Me\\KK5=%[?W-"D[BX6[qq \h/;!0.bE.N OaC?c =3:9 4>"]%%V\] ;b?[TTCJyQ[o7z4RuBOqT;!\z  b]AG^EII%T<\900F h ^ x x^[J WR_ g  BBH[KK9+R C.q4F!*;!= h^Ic>>hbywpa]B_=kK:MP  T]>\J)\2 M\UX]--BGF ;!^<..BQ1\MKK%L<]pL [.XR*^]ABIQ>o[M^   V_R0F%^?6]pbRK^\%=oD  BD!\k<[[[\2 ByW:\2 s s`] +\\  Gd@6;zI^hhEB?DPgJ;!.bGw\2  X\YP]VU%Zb ]KK%A\%_6 ( (Ba\2 { {I]RhhhI[]pp%Z&@8y$I;!l %ZI] %%]]TTh[\a  K\T ] ]`XA6pD vqqBR~ ~ @\~;/\2 N[nVF D"\\\KKEKo-Sb#[D \C :9\hF TThbN*  qU.<&\-KKhE\%QK^C  G\$BV] IT:9]-EqT KI]?qN; KYb 66%[^:9;M\%@ gP\IaYT]N$TGyb=U  a#Wq 3;!^Eb[<KK%TJ@:9)]q.Lh \>J4D\2 H t qVszb]Z\E ~Q}h:9 .b=XKEp:C\I^\ By f BZ75[A%H:RhHAM m%;#%>[iJKq:9%` l  \RR>]<JD3]=##MhKKBPh;!Ya `mVJ\KK9+M^T\G 2gQ 4\ 555%R\z?qqF]a]hhLD[~!KS\hRHTw7Qf \%U']S}DUM:9z O OR\W w H:9SC[hhhJ@@F;!\~5L\KK%`p^:9\2 TW[C\H A]i!?!]QTT?- %%[0>>JM\66%aC\zqMD:9( ZdF<M$gZ STY] h;!]q.? x]]%QOciB\`%X-]z^EUCqT >]~G\ZFG Sh67=[a9+\j%] ^&]u;! RiKvTTE;VxxU[=K@\2 ^ ]zzhFR^$7UO\SS]_;![=h.S @{ :9[!;\2 O_^fS]V ~]F]%A^mMK:DxpR^KBB )$$B@Q[Q??hJN >hppR]%[X X\.$[MHEA]EI;! [] bX (5TeS +-p:N$M+\,  %I %EkxT:9z V VKYI^!H\KK9+Rh;!]ATTB[6Jp>]^ bFH BW%G(  R)UeH;!]`g]-L~$%<]  W\_g :E[ffb](KR % C;_p %<^\2  %TY$EAhhRmBg b_h$P\JJ5W_ ?h < z:`t^ bU[  %[f\2 M:JWA.T]JJ9+U# WQ%hD e:Hh;!]c5HG %B qqW\p?[ ] ;!Gh;!\2 ;\m\\yyI%WKPPx_Xq=7E9ppK`y[%\2;^aA8A  COy]HQ-V L :9%X3n H!]i V%%B?[$H+m+\ L ]DZ+#Hz+j L}%%AP\%]\TTW D$gV]]%Z\2 <"gM r r[4\+' Z@@hZ[KJ]!P)(KX]yNe @)yD)[K`c??V\; x)u + +A?[F=! }yyI;!aK]nI<Z]5R]%%O t;!]G5[[KK%WDDP  {+K`?P E X 9 :9]vvBG]}qqCOB=6T@&\#q.P  b?\!\\hU^KK%P^.U\2  \--U  97QXqUDTThG oXHA]D$$] .W M MY^9%%5Xu y:ZAp $Ye yJ-;!Wqq%M%OBFW;!@Z\5G[\ <$4_\2 V+@bRG a"OC\ W `>\F>2]T@  c cbggX-zH@:9 ^^W[q.[]VB]@^:9 ZKY^1K^t\oLhS;![Q Kd4:Nm[ih^[uTMibaM]*KKOQz  9:Fl[E--O]a$HVg ~ U:9"%^^LooT]5=j qM:9g:9\JJNd O. D DFB^ !Ea%%U _?u^ !R;![9YYTI B] @ w wB_`\@ ABR!U ] ]QsW$$K %[]@7^\-->JUB[W[M5Ex%C]>\1U+ BXQ\KK%] ^9+NJ]2]hhVYS^hh%RD  U  p ;Z H%H:OXggBHQT7 R UBG%P[hhXqA\2 Y\d9BV@~1= ]KKhUT% 3 ; aw]|pDT]ABPZ;!B5Yx ^^  @\JXnQ'$[qqqC[(]ppB;$[ ChU`{\::;MhVB<]*%Zh w wU2HR\F+\%K ] K $l`3\^UJ hh_^KM|lgMJ[  %Uj]%%G %;j%%D7KKM[LQT77V8[GRR%MEh?\-->/\T\ TH @-ABC+ q@=$;!(\KK]\;F <;&Tx[%A%   Y0E;! ;!qT H4;!^F S[%O\JJ9+D[eb bXz Z\|3a.bRQ|H,^7g :@z?]@\ q\ _o$^*C]hV~l `HB_]v  E[BB\q :K%[]Ih "KKL#:9]%_z:9:g^(  Ao"qqCpU$$TfbF([<QcZU[%R% ;! pS;!D ]  >bS;Y\%S;![uV%h=\'Z]aN[ xD7$[lI8^ SSM! K:9]  >   [hhF\2 " "h`#\,`V ;!KU2 } }][?#I9]]B^bFc;ihhLq[  =KxAn%[^BD 4HjJ:9\).$[BH OD\2b`%KGB[hA"J;! _]]vVbV <]ABTL`\2 SR :9]BG\9%Z KER]hhI^@;!?]UEj ]qqS  HE[gKK=S6@IIRF]1oNw[  hX\C[5V R%L[,R^>G\2 S SO^#7aC%KKV\hZMhKN ? O]:9\2 _6\%FD 0F]Cj\;JJ9+`\II]X]O_ CzW3ppNE\2 a aHf%DgRR%LTTZ\  LE? 5SS%M]BOoD-:9 %XN]OKK%R\Y9h M /BQ[P<.=2N ;:G < ]VhNCL\xKK5^t^Hu \ \< ffh>.\2M]JV\<%KnTg$ g9+[IbT H +[]  _]$,,`;^FFhN\W1: > ;ZdB% ]]M:CK:9\hWO0$:9E ]h` s D ; <]U ,$B^""Hgzz%YpS;!\2 q q%Z\j  `F[n 7Ee;!\2 g g_\KKB@\G- kECg 3 3>8^  FbD<^0#$}`\$QQT.9+]}hhXo Y YDU>r,@[`!] OKC\ag]V-bp :9]mHS:9\J>>WxTQ &^:9^JJ]A^^BH^F!\3;Nh]",J{ Fu\2  a[n[7?zz bj KEY^D@  D9q]]R,aM\2 } }%]']RRH:KG :9]ep.J[oxD Q3 O:9hh%_ TU[ = LG z:9]J]h: ^jy];! Qy _  a]..JwhhLk#bW~y:9? o nq`[q$Y[%VN7z:_Q$]X\2K'\[\%^]^  D]$$B%%^uO ET!\,Z-hNDg:9YKN+5;!^>`6B;I_\RS;z^*;!/yS]ohh< -;!]33BS@0Up##E;!#$Pg-:9\p  R:LbJ;![LKE\%hWc /Obff%Fby=\2 J]>V_R[yqqC^ J:9%hR7b~ h;!nqT;!\SS?Z q;!gqU^^BV7]=W P\?NNB>\yy9+L[?\7zQt$B<@P :Tu?T7;!\dW*uS:%Nv]$ ah]@@Y7zEQn K[Z%Wt  B[77Qd\KK%B[e  I qq%] ;![JJD[Hb'%%%Wg S=]((@}<^;@:9  [+JB^KKKB=LRXw;!\2 ( (]^IUxdX- ~TTQS S:K&@*BL\^^P]Uq.P[gTT<\2 C^ ]]%]9iB^[T-`hYU\ F|\%L QV\2 L LB[ns7a[:\B\qDO\2 ' 'XL]KK9+B[SHh]}%%5F$A]   VJa^@T) B_h  KRh p?%K%%B 4Xp]%_7:9[.LR:9@3\">]%Zt $M [OfE\2 H~[Qv]VE]Q MMhA  DENHV U UR#\KK%N:]e>]KQM] M1 _%_SQY?\@VR.cV]M[T DT;[d9BKz:9`d\~* ^:L\/  Z?kzP\  P\2 \]C9+\@:9 F O \2 s s%\\2 L3^hTP]" v vMZ \2] D DO 4kh;!xqL2Tz=U] < zJV2IIY7 F; _8 M_:$:9=:b= TF]h: ?.._\\K=^[!_?:9_-\,, O*\ D1]ABJzY%^BTw65F [B`C]W::%G]X%JK =_]TII%O]W]GJSm[u\\%]]WVbOs]XffZD[- ]T\ K.;!)NN]ky` :9h] !;!@T9AQ\2 , ,_Z ( (=o^^%<\%%bE B1^JD[~hhK[SSH Q Q _[fVZ [b!b3]KK%aa SB_P\@  EQT.yISHFFh]z;!KS[xhhSK.;!{ Q QLv^Gh .Q# G/g4:9?h:F\'  @[66P{\2 C CZff%U^hh=W ? ?K^""Q]?oooB[;![L\hhb BI[Epp E.h M]CST]P\$O W^AbS\X&IbOSVS:9 @@L\h`[{KKIKC [bQZQW / :9]yy I([>R/ c'$  BAc[hQ[U%B]\2 1 1;mTY 1 Uc  E;QX] ?IFU<JJP\>a].%%BV-X.##B\k &]:=_[eeH;! #:9..L^MKK%X*[TTR 'jJ!<e D D_r#hSW$;]hCT:Rl\2 R RC^T;s q\2=\F;!y];!H:9]^QNlB@q ?OK;!^.qHB^7:9[FI%V[y.. JY T TKN[5M0]TTO0SEN ^ 4 \[%Q[..I6]M{%L^+6$E @7 :;oh;!-C5 _KO%%BE\2 H\S  ?o ES]:1[gg%Ik;!X :9^%Mg^ee%Th T]K^:9TNcRR]FT=^K  ]r "\2 %Lab/]\W:BX\TTY LS ;!Q E7@BT$;! ^4`pp Bx\hh=]N%XY ]i \h B@ \5B|44wSqy . <]+\C w AS l lBI)[oHOA KKhIvKQ]M$U   BzzB=!TCf[h.^+0hP91  X.V i;![KK%A4[BR[BP1\3z:9],= ;#L]z<\2 O\4.G]6 KY\KK9+VVp\@9]$4P N !^E[X\hCm\  BJ,H\2 X4]$$9+B[cG.q?DI  V$ @ @b{\iE7$TKW^]#+Caf]JJ9+G/[B[34zz%<>Woo\f`ZDa[ O1h@c[5_J[>>J.N ]w%QTaE ) )Jhh%CH7Q[EO\hh`GAn[X4Wf2IH@ "^"%QI]TE@ S]'IIT^U99Y nZFx\%[{[~%%5A-:9^B SQIN ' 'bBW]&$\qG\\a]C=\%--F^:;@\2? G!\]]h@Vq BI:[W6pzzSZWVA\ffD S<]Yp>]..Hh%%ET@=p[cR BN pS;!EK6 @D\2 _f\HVJ 4HH^R  H7[>   E:;N'[++ J ^>JDIoXeQ h  < ~]]V6?=\5C\qqCU]\b}zCeuT?1]]q[zCo5bt%X[J+]..WfqT KG[aRK[}!R@3]4IJ@k%Pf$K][ F[U\n%%=[KRRET= W]h.YX[@@S^%%5?Q K;!\T7_0OWVz:9h @<k@[]_EKBF._b[hJ ^ %LC]" %M<\U)]J-p4O t#Q6 y:9\2X#[++%]B}hhBW [^^4[J-C T:9]S$H<#SPQxF['7 At[.$Mr]?KGF%%BA6Tb< wQ`;IzT{]qq=T]S^(KK9+BA[  `UJ$Uv@8;!\2 \ \Bu\4KKS$C^S.` ^;!]" G GYY C BWu\Fh<[KW  EVVUB<^\y^h.T1qgI^-5RPV9yb:@:9[  bI2EH  U T![>IH@ [YBMo%J`]xy?jnE 5P ,KbB8[%%JA | !`]GKK9+D]--\ W^:9\9+^]TH]6K\P}m:9Ve z ;! ;! K L%XX]KthH\2  h;z a aBI D BA KEJP\Ng<0]X]#^\2 : :>vv]7[7`[kTyq:9asN@B@^qqC?G]~hhG='$]BTbH. K\= [@> T :V[KX ,  \e[vgga\KD\< [}\<Z^@;!z; _4Tm5 BF `S^!KKhW\.. G$]  ?\2 `I]]K%[K7z4;>]5]jhhON\Tb]PC a a;[  EF  J%$!cOR\2 %K.#;!\.SBoo%@kT,[Tp@I  R|  bLJYW B_#]j!A*]:YzT.)o:HU^hh\8] 3V l h'\2 E3^=TTBU`F4A\`oQ\U6]}.. b;A- B hES.YT]W%<FF{^7J/[--N[ ]KU^%B[hPuqH/]H F` @q[[?\c>$Y[WW W ;![iKK;  'FV%@.^+SOVyyh`hXTbRO $J\ S SB`\2 ? ]"  Ml^@V*`e$_V[zgg5B~]KKF 5[]<<%C##%F]E?\@\a ( (`0=  %JX} Q~~=]+>] B?K]J-% V[]]M4]  TPb@v, q ?TSH:9\2NY\%Ie;!5( O=W Y -:9gC]0a4h\2 P^Ra]TM]%E[KKhW]hh%W ]3$XT@ *pllO}yI<%SU\qNz]LO`]SS\]p@x]zzR[77%J.TZ{KL^-!Bd$ SKQYEI)Y]%GTKk< Z^4G](.Y t@:9Y  MPfpp%_]KK<\2 ` `> 4=\sKLR[b9+U3J-;!\?s]$oo%Ezh BX y];! BRRR%E^$q_CCL[?w:F[..]qT;!zzCo7Z]  Y M MQ\SKK9+aJ2:9\2 + +S8] U^7X [;,^EV KEL7 \ W._^!^  M7=;y;!\{<[ H bYzzz%DvH1 v vBO/]1]g  %IKE-;A\qKK%E\!QBlP~S4H?WSS%X$\]I` 66OT=>6y:? ]bA $9+$A ]hpB %_ &I:@3.P|[AyyC(BB*$F\u%M ? ?ZgJ;!C]>j ;4S-\\Ug[BWA-`gKS\h]+]  F^0EFKA$t@W Ub< hhBY] h:9\V<4T%P\2 e eK!["qLbJD##%MGBYHhhY :\z}\ J]%>6h, Ba zgJ;T ]  Bzz<V o C;!qT;!\F64I[ ~%%a KW[c[[%U @8 $P .3]@@5Pe;!H \]W}}h?]X##Pt[g/ 3:AL\ F[kB>\WKK%>\2? ?wC[YUXtD ( (>Y0KD t Q ';!G{ \ \ZJ\B^VOW:_E]X82\KVpbDB?]$W[B\O^yK s x v4\9+W]4SVe$ KEG M U UBPZ]Q$II\2 L_ s6=RUh_]z:\-]_ QKPRRF[d.. \U G_h< #%%%Uu]5Q Z;!S?:9JSP]  M7} q?&a_f n n\]~qqCT!%A{_ Dz4F_ ; Zh]KKhDX[qqD.SK|1 ] ]^mzz%T :_U\QA < ,bPuhW \-@g]eSzU-[ORzzL\[fbS~;![uv$$a@@BFm\^bF[oSi[z3E/N\2 %]xyF\ PE+ } M7$p[@!EQ2BO;l$$B\4 B<\2 @]q  %Nn@@hb\zKK5K-Q]^} 5`i^qI:[ \cRB\go%F"%%Te]%_``BAfMgJQueA$;LY-@@B\\2 Q\%@Ufh @5] %Y J  ?\{Z.\X K4N\2 X XYS S ^  h =H]o!Cs^V\2   F7^ PXbxxRK.;%bz66BO]  ';![hPv A$B@0^]*  DF[7$&  Fo[HQ\7\!WG` %Z1]66%F[q.X<]KK%O% Y1`oC ]^QWU\` 47a4.:95=df ?S<]TB_@:I'~DP  [[d!Q7  @..> N+) D'Oi B]6%%%Jkh ABZ{ B[ha]AB=\?M6\K:N=^A]  ]LJbQ;!X4`>6$gE^[.Usp4X0..BG^N0).q4Y]VK\ ! a\u%%^]TT^{+6:9[X3OsNo4C\KhO\SqRBZ0"Ti X XB T7SURbbhz;!\2 a\47z4?;^  :E]RBZH3C FL>\D[77_e$`[q.. Qc])77`'SSBI\^^K]%?)]:9[wKK9+Zz :U: BTF44NE P[TJ\ Kx I2%M^B e e\ zb=D]M\5Fh;!OpS;!N%a;$:9 =^B  Wg:9]WLO q:9G[00Ym/:<%>[SY/%ISZ[juu%Z]9+E y.Wh%h4S\/KKT  KEP^bb\@V ]KUW]66^J.?{SS%ThQ]>VSBh;!--> b ba,H[%L gC]t5Wi  H\2  I]5AJ:9B?Gyh PM\Mn]  aK[#<R{ | sf'$lSTSS;_J>^h: GCgo>s^`hK]_B%`P[QQ[Z%@]tJJ5< gg%@[ppO:X\ KEKW[D~..LDC]DgS^  OG U@$;!egg Sfz\.`H _\2T]??PW #;! a ]?\2 e e@X7%%O\2 %;Y[K;0\+KKhZC-z=  a;z\2 ]sW T^^BG ]F.T?q |I,;! k%S^@[hpZTbC@:9[##hJq@]<~\rTT%]I[  _ H H?[%U8BU GP\2Jk7:9[CSC/[o%A+yyPb  O OBT].R[K;*\$:J w$$B[JF^\x  F]y%_<  ]ee3=C]]Ag$O2h-@a\#7Z\]Z._( Y YVg W]hhZ]hhN ( (O c cBEC  CEEp i[]h22BO ;![I%D/Wd ;!We BO--G]f Ng^gFK%\^$gNxOH#gX[.. R\.bK\|KKEWLz;!\2 9 9UF  e eQ\hhZsg;!VC\%%5^\C9+Q\^lJ L]ZSRY\RV@[!RZ EM\AHoMHN^R~\ %X?V y;![&&B\]K`R# L%[ | |Vp:9 :9\kYGV]6pK\2 I ILO\E_%G]4-p:IFqT;!d5 ^#>.V]CM bE;!\2 ^z V\yyY[h>>-]<^OF06TS`yyh@\  H];KKR1 $PK `$N[\1<q`\##%\,I% TauIv  D[x77$pB@-^h  Yz\TQ #DM^%YJ)8S; `)E]S%@ ;Q)\2%>~^,C\  >[ HY\?  BV  >Lf ]TfT@.3,X\ffh]C 4R8 hIa% BGVzF R5,0\5TNoKQKK%^C[K]+zA_XP]KK%a5\KK[^[\KK%Z jMP1]K))EH\V4@^  Bv\Z)\@h]5\u 4J:9[yTE :] ha:9f H[EBL\-%F>-9+KT` $E\]k >]l  %[2\2 e e%>c  K\]66%Se -:9<2>--%YAz BHc YQ/K7hW]ABCX]~.. `] BZn\fIN]t5NP4 KEZM$ 7K5pbM\$$B_3]R ]" L)\AWnhS ]]Q^NKK%<4 ^QRPtDT4\TW +[RIt\P\.. O]h.HW.%:U5&T7 ShG4bZ]hh%Q]f0Jp $%*RK[MKK9+B ..M.@S\TTa[X< ]M* XeKB6:=h_a\2 W WY 8?[@W$yy%R%;!VK ;!7 X%Vy=ih:M ]ZI\$bR>KbX].=M^G%%Y ]O[qhhJ]B_=^@;!7P.@=6Jn  WTT%?K%b| 7 X%J6\%<y E\2 i ihA B BI VM B__Oz;V\   I]ASG\(_$Dc%U h:9hQ&[kZj\V]hXU]}!] QP]%YD%%V;]!X^:9]~9W#qF\`!!>  l\W  ^WpO\$$!=]#.$B]U  %A7qqM. ]zOi:D[g%F\ `h\;!] ZPC%%<J-L^*Eb a\2 Vd+C0I N[q%^[YL  U]q%WS\)h]]BC4]T??=g\g:D@@<$\1ZI3^^Z\eg,TS:9jKE[!L B_Ob^[5T:9 $3\[SX :9cg5\.`S\2 I RA(@V]zhL  + /\h\bM?S.;[KYqp0R\[h?m]CH B[ ()\%^>? @[  %`\pV3[5<ci@ B<e4$$V\ Tj o?iKKC%%%ADBC\E=\2 b b%?I^J9m? ^S S]]4b;[A--F]  Z..Q]f  @ r E T;j]YSqC$]qqLV? 3 n;! >?^.. W]~%%5Ei~^LW X T7]?^=hO^ 5]$ 9FC>?^[UT[@5D  \Xu >TS zN\%V^9hhO<]qG]bKF'z^@-]h.D]%FG&.`l[KKh=[  M:]H;\  V^\LS7$V[=4^S!VW]IC*Z H]5I]h%ZJ 1@g ^GK\_KK%R\<.O \\DRrZP[q!]1[]a]L^7z4[h > :9]?O\E:GS@\5]^*%D]]EaE]P;O8J 2R-SQPT^z?"`H$[H[eKK%E[\OO%? ; G\hM\h.`6;bp^$I?J\S$J]4B  HzHQ @CII%RY\KK9+Vr\mhQ\hK.BGW x:[]CNa]B$i? G[qR]]q.Cu]H]%%JF ##hA]  \(c  [ U+ :9t< C CB^[LhI BPm%$F]!;\KAF F >]]T+C\D#a%%_' F FB\N[z--0aG W\?P\2 EV,\LZ^88TeII^"]] +C^%h[\  R%Ld\"KK9+W#]B^v;! Z 9U$ER\gS^9O TqMT~+]"K[[$G']V^l\KK%Q]TAI\B<.qG^: R%J>=JS]G,77=h\hh\%  m mPN]Q[ $Ny\2 N\H  ES7J])K] G&EE@ o o%_]r G]II%_ D:AB;C^O\  \]S::[zo> b8 `\FRR L7.@^E]UKKhS[gX\)l xUJ]HpTTR9=[JJZ]H8\U%%5O[A??H2II%Aza@KP%CtB5\2  _g5q:W]Q[%%WX[NdH  Lh;! [e$]6 RVaY%bkp;G4].E`X 77%I^UH66F[#,XBg@\%V\BT@K\2 Nl ;! V Y%=[KZ[)p\\.  >d]"\fTX9DFX+>>!%R.&$ 3A{!!*#6V K'x1(3XOݙ$9*p-N,++}-މ9~&I2!+2*R2{ y^|Bs~guG B]yzzry|w |w}{tfty xz{:|_wo}Au)~{nxxzyNyz&xzx|xA~WzG9t}t~sug[t{Bt}:z~u~{t^yBxMzBOzz{y|w}tsz\u}u{tz|u(ztI{|yR{FeR}*t}{B~zdxusy6y'zx{B|z y2xwyvzVu{-s|s~BjuHwxwzB}!u}t~tz{{y}b{}y/zKx{%y{y~uyu'|3y}tyr{zy u;zs||z}Wx~+t6yxtyjwszBy{wc|xz}sUx.y|'t1}urtyxzz|pz~ w9{xx}tz>zG{|{Ts{0 }|t#~{xksy{qzt|fzss{yZ{z}t~]v=uyy.{Iv|u}y~zs|Xz9~ v~{'xxPyGz:zz%}x{~Rv1wq{:z| z<}y-~tyt;yx}1z~xKxywy<w)|y}kw.~Axt!xu]yy{/w,}t~wz{|?w~wy0tzszz{s|z2xs{BFeRzOwh{(tO|x"~xauAyWxzyz{jzF}xa~{gxh{y%uZyx{x|yF}\{~/uyx{yxyyo{RzDyk|{3xyu~BFzte{b{<z|-t} tyvzjzy|uz}Px!zxtycxXz:{b|t~pw{sMs|xxwyw{YB}t~zw}uywfyzzu@}Gz B(xx{s}H~}x~cx\x{lys|B|w{}ycxHzsxzyKxz!xzu}}wywBzez.{?u\|y|x~BFyxzu-_xo~t ~ tXz{~It syz,{3u>|v}x~uqw|Sxxwjy{1{yw}&wH~x$wy5t4~;yeycwx{}lu*{{z|wxy7yx zu9}zkxkzy*Bzu|x }^{*xt}w8z;xz{et)}s~x;zt{wBuTzyhsz?x{t~vs*ukyz$|#v}{"yy{w}Lv~x~vtxyz5z{{`}xDw"y4xzzsy {Rz|w}B~yCizyy{y|axr}Du~uzu~Bsz&xu{Br|{~Zuxtzi{L{Es|B]tz{v3F|Ty}=s{xxu{t$|u"~Oy.xyyz]s}ux{}tl|PtDy8x[zw-~<u{Jxx{w|t}x~yHLxzt*|=u~txmx3zz>zyA{tn|Bu.yux8yu<}y}wt|xy"zzu|{u}YB yylzy{tVuyzzy|*x~xtuyyzy&{wn{xyyby{x~lx Jwa%xkyszxw{Wy$}w~u|%Byx|guc~y~BySt~`xT>wwrzmu|v|u}wM~uyG{wO|[v}>x~y~z7zw|x4ByzWzdz{;{h| s}z~{}x?yvzw}~y{|Uyzs~z}oy?~Ezf yxyyu|B~uOtxzyB|Az}$x }{G~{z wzy{t7|{6vyyu{*tz{uc{Cy{BFbyzy{m{}v}xxit y't|y~2udypt~{uxw{cy|0y9}wy{0}tBy{yz {{_}Rv~%yst%z<B7{u`|s}{~rwbPyxsz|zB{\w|z}s~yMowzwR|jtY~zyNyYx{y {x|t @z^{Nt|tP~yz{{wL|^u}?szz#y|w~Vx%yBF7wzfw{Azo|tV~zzy}9z~u~tx~t_y@yXzuq}ss~Lt{w;yz~srzzu {zv|Fw2}ybznxsvz{4xxwy~szTuV{u6}t~uGx~Bxluyt}`x}B]~z:t8xByzzvyynys|zt~~)yz xxu(B~}wz~xw,y|zy}t}x~xGyzqzt~y{}Ssy_xz8x{vz=y~iyTE{7yyzvw5}{~syuyv{s|dwt~z~~B'xt:yPwdz*{o~[y;zQxy yzzzjw{Gy^xyw<zz|Wy,~ szyEtzwzt{u0|{}v{~Q{ 0t{ yta{9v|v}.w~suxw{zx|yO}jv~?w"xu|x|vMvxsyz}x~yy.uzx{y|wxwzNB{w}t~z#_yxzytzP|7u}tK~{wxy{zv{{=|y~-yUxzmxu{uC}x~Xw2vyt{yuzxF|s{ }Nxw{Y{sKtxy |xh~tuLntTyy%{t~zTyUtz.zh{v|y}w ~az yyznt~{uNawy {|\{{~w|eByIx{u|tU}|zcu{={}zY~xyuy{\~tGzt|Nx#}5{.~w~u}xy>yz{zz|v~G{&{ xyyw}{az_wpwyw{xzN|Dt}zvxqv}/BAz s{BtxuE{,z|x}w~wfBsEzxvyyzyB{ov|9x}wy)v|wuazBPxxzzJw={"z|u~FB}~}x[x|6uuxt}w~xDwtytzv|xwyx xto|y}wDQw)w{^u~tx{yBytztN|muJ}Ju~t~tcuy[yz3v{ t|z}B~hxVBu!ul{Pwg|uw}zagy)zv{{p|`w^}Bsz'u~{t|u~Xu:txtytszhw#{C{|xzv|Ss};{F~tM~t{xwAz{z{%{z}ux~MuA,Byt|x|w}x~xuyV{Kyx(|Hy}+B}wzwpzy{w{xwJzWw{.tktIwxw{rx`|;x~wz{t|z[}csz5{zLy={&x~ww^z`=BPyz|4uPy!wy{Hzv{t}Xyo uykz{v{w|{}xRzxq|(tpzZyB|qy@x<yay{w>|x~jx.Hw$x^xzywEzww{Ut|w}w~wltLyB7z{?{txy yQz|{B{w}xd~^xBzl{{Jt|zt~{ry {{z|Yw~x~uz x}yw~Sv2y;yz]zav|{}v{wvX{)zx{u |KuxzEy=tzx{{}mx)~BB zxtwyue}y<mze{v{|@x4}"z~suxn{y1yzz{zE}ez@wxwyyxzzPt{v|v}y~zBuyxg{kx'Jy}y}w~wuy&{ywk~0{~t9zE{x{y|uvYyyw'|.t"}s~{yt~$yYyz;u{zNw zztb{Zz}v~u_uyuzw!zyWsz0v}ym~dw@?t2zwzpB ~xx2dzy yyxO{wByLszw`{@s~zyxytzyQ{xp|Qt5}7sx}z{w|{-~JwlxI{4z|v|y}{Tx}vyu/}'sz uYzz}gw u5xz"y|zzSBt{z|u+huz{}u zuy2tu {u,|t/zQz~~zC\xxw{fB}z}v~y{yzg|yz~(xCz@t{{{uI|s}xSt.+xxxu=z~w|$y}yyqt{y~xyB!~y]u3z6w{ wyxztx5}u~xn{jw|b{}Eum~wxy{s|{}tx{yw{Fy5|s|t~su1yxzs~ z=( B~eRzwxxsz^x_|w}y~{wzyBzs{~xN},{ty9x}ix~=x!uzsxzzXz{x|w~zvyxB!f~sy,u%zzMzy|z}dx~5yvxys~uR?x|5{T}w[}x ~tFwQy#u{xE~,xzXxt{z|t~y{/xw{aw|+y} BO~uz8uz/~F}zt\{t~"xS{z~mzO&x|x}uw\yuyz\{{xByT{]z-wW{{u{zb}t}u$yzH~yy BPytS{t]~B{BPyz{<x|{}<BF~zt{y}3{~xetzuzw%%s t{yw|{~{o{UPx|Bx1wxpwiz tzw]{x}fx~8txv{+x{x0~z dzD{zx{n{}y}zpwy(syvz{Mzyxx7zHu{ z|wxBOytzxZ{dtm|1xj}z(uHytzzR{uW|wzr}Ty~&yvxtyet{t0|u~sy0xptyxi|kt~szDxzyZyS}z{EAwyzzqt{Ot@ye{yzPzy>}@wvz${zz}w8svzgt{Bu}{c~w yui{z|Rv{9x{dyAwezxty|wIxB+z-xu8yt({5x~wssxxzy{{uQ|Gu})yxty+}hv{xwzUuo}yqyz{qt|} zi~zzs}ay[~4tswysw{${{uBeR}u;yxuzyf}t}t'tzuf}Vw"~*yL tBryiw&{x:|zTv-{[xwCz{{_z|&u[~z uzz{y~vzxty`x{w}{F{I{Sz|z}t?~B'vyy xsz+xQ{s|y~\ux<szywzkz0{Hy|w|w~t tyBRzy~ xxuyF{5zx{u|s}wBuFytgz`x|szxxzyz{tE}0B6~sxxx=y;w1zyzwm~@y#yxwPyx|t}BNuKxw(zB{uu2|>z+}t~wsy/yzBzxY{x|u~6wsxzyvx{B |un}{`{|8z}x+}u~z{zJ|t}[v~.x@tWynxzCw{y{s|yg{sBeR|,s}{zytys{v|tt}O{ytu{t`~oyLs(vxyyyx{Xv}x{@{{|hzV}Ft~BsyV{Ez/xIB{t<|{D~byxuUythzow|yJ}ybwzw0{{~z1~uyJzzs{xm|w8~U{k6wFtxv{>tB| x{}{3~xzwN{w|Oz~wx|xzs|x}qt~Hx/'{{0B}|tt}uRB }ylxrBy4x>zz|z!~:ty{zzRy{{f|w7}u~tjgB(FzyxzBFeR|:v}v}{y{izt>}]{Ny~w{tQ|w}{7xby{zx|2u}y_}szIx{C{z_{{ygB{{{s~u{#Ruxu4yx|!{P}x}}t3zs}Ky~wxxy\wz4z){ utCtxw{QwV|yh}u~zvhzyzzt{t}Cxy~z3uxu}HB~eRz(y6{x{{|y}s~Y{:tw3xwyx{Dy|w~x\uy{jyyzy{uX~zyCst,{t~Ns-yasxy{6t|u }zvt-Wu{}z|I{txvxy7x{s x}rzLy{;{zA|ylujKw{sx|<yy+wSzztkxxzytszMB>yDxyyzzs{huyzx|}t|wX/wyxz{s{`y|)w} xU}z4~y8trs{!yByy}Mw~!ywZ|{ }uh~kwIx{Vti~xwY|"{mzSy{8{w~wyRtq{u~_tx{>{KB |y!w$yyizB=|Z{AxByHy~{}zx6~Tz'sxtzbu~y|uYu|Lzzs~B~DB~eR{y1|z}nw~Cx$zx{zYt|wG}yK~y"ny#xvyu^}#txou}  `z{^{t|uz{)s|tbt=xwTyy}x~ubur{u|w:~1z6xWzGtA{yw~D B~|y}v~zx&4uxu|/zUy|vyB=sydz~qw+O{Sxyz{x{[B|s}x~tyz}zt+|iBR}IwU~B~yyxyIyXwz1y{y~ez?z{Myjzw{y|]uD~y~y*{&yMzz"u} BeR}~y(zy{X}w ~{QZsywzy}8y\wy?uzu!~Ky){( wz[y`|z}zzct UxxuSy{+|Eyu}(xxf|xwy}w6|z}t~tvxwztH{px}xc}tfzw{z|z}_yzx*yVyrs{#t xB]B9wyy{gx}zxup{{{w|{e~ww}y0~x9w_yz{s|o{,xxy^wz7u#{ {V}y:#yyx,zuw}zytyw?{z|ct~tCz*z)yp|xvu|z|ttJyyzx{y|Vy3zs{v|y~Pw{8w|x|v}txzx{<yy}zs|Jx}-t~s~wuvy:vztuztd|v~>zy]yzyt{ty}uy-{Zzxzs|B{xu{'t&{{m|y}zlxt}BAyyd{iwiB|6y}wy${O{t|~{}Zs yuBxy{t|zWx-1zz{} zK}syuy{$zw/{w|rw~#yPxyz9uM{v~nxL'vxuzyz|t}{W~s~txx{u{Ls|z~w`zx~xBzxsz{2|w*}{xl5x| t|z~tywK{{ |My}4u~txx{x]|y}ptxvzZtZ/u{1BO|t|y}yEQu&xsyB}|Ct}%zw4y3sz {zw|us~9Bzuuxz|w}u~tevxt}yyt~y~BFxjzzt[{uO|w~3syxtyqszIu7{!u {s|z}z~|u?5{}BeRxxyt{z{}Ut~'tyfz{w{x}t~t{z}u{]xJ| B6}ww|ltR~Bxxuz2x.M/UqQu]\l{F>.U;;g:}>>:(:^9=9=;s=7=U9E=';>>: ;o;*:9,<9=O8;=:>=S=@?,W:~; >:t:p8fs<:98->t=,?-;;2=9Z9`?9v:q?c*?:EH9m<>l= ?8:;8&>~=;;>S9 X8p>(<;> ==R8G:4:c? <^ :; 9 9=r=k=K9w=!8t =B,=C-;c<{<) =9 :*:98IW:v9d<j9=J:>:<:';9E;"H>@<:a?>f~>:<!:;;A;8t:)><4=9|?A9:9T;g;Dr>>{9a^>>u#88>8D:>:9?.9;L>z?}b99;?+e;9Z;=;>E9kJ<N; z88<:<;858>>A<>xn>mx;=978Sd<< 9=I=m4;:R;=,x>#'8v(=Q9<<!>>E9 "':<(:,>J8Z>b8:d:e9>B:@::2L9x9T;;;;=q8U8>W::=9P8L< <@{>'o990;=0<M=?j=;;=?;?#>90B>:5<:9C;!<8:88>K9P???; =>>y==2? M9*=7a<_8>:8:z?;>:?8081995?#?:>78B8C= ?>S;;>\9=k???*N;La>Re:{f=g>;n?f9::<q<Q>8a<8;-?8868?1;;?ui;=l9&&=/?b=|J=*59;N9b=So<r; =&:9M;)=:$<;4+8;K9>> m<08$:8|8m)8F:8\"<.-:r=]:X<%9;$?2:|9;4;_D;`E<9_:r8}9=>;z<:>::g?9::\89(<8=>/;>p:>4u="=:;29=d?x9z;A>p= 9>}=/@??[8D<; V8Zh9W<9.f>; :><<<$<?IG8:K<_?9];|;x"*=;D;G::#<^=9;`<=<?$8+T9<92[>Y8:>D;8 8W:_>y:+? 8~;P99=s;|=A<]v;;8=;;>N><X? d=P> <>Q<:4>j9H:fo>`:>B<</>8d=@;9?:8!<?S:Q=F;?<I;<=HM9vY=Tc;v><>0X:s= t:=></=> :x:y=4:<3l>9:Cf;;<w99>^99F;hl?:; >=!<%>9P8X:-b:Hk88i8<}<6> ??<#9?7=9>KI?p?YO?Nw9:6?7=?<B=C=D=9o<>5:2;u8:;8>l99::I< >s>9t>8d><:8)=::;`><U: ?y<<=<)?_>)9?|9e;f=R_>==l>%;m9;FA=#>Q>R9W8`[<;89:%;[<u>j= ::0=9;CJ?t>;;<=W<h=9Q<R<e<e8<'>X9`&8$;>:8xT?`?vE:9;;h>88";b<=.)9=>;pB8?:88\><998P;2;;t<o<+u?|:6?=9=*=18>b;=c97z;~=z{?>.9=E9N:S:t9A9=\ 882}??}<;V9'99>;>?kr?Tx=8;94<@9F;7>:8~<:f=<` 8>+>9[9<\;89?p:9,;>?X>V=:9F9jG9h:=a;<m?<>N=^89d>ed=9]?e=jZ?g;.;?-?9={9<9h9i<>9=p?o<K:??48>:q>T#<?<>>|:!]=q=k=X:.? :B8(? ?:m>A?h$?R9L;8==?H<<M9]S9C=9Oy>=_;+9;?K:S%8<?v?`>28k;>>%:5869j:s;u;;j??j?94<8?69>9W9!t:Lj>1=D=n+?n>3>69@;J;K;L:L:J_<8&<?=IO=];;;=;=y:P;k89V==? ?{>{>:9$B9m><Y8p;Y.;9s;=?3;988O<<O<r;q;9B?=$,=f0;a98H=4Y>Nn8h:a9(<=< >;];:<88^??=@;C>k9\<<{:?]>/:87<>:AQ8jg91h>&84x9/9=:N3<,':> I=9???=8 89;1><\=ZZ;w[>+;Z;\9p 9-<?B9= I<+= ==9+U;V:<Q>8U8>Gx>9:i8;H?:,?G9=a?5;e=L <0:9/[=tl>>-;1;1%:$9p:9;#=(;?L=\=c99f<>>=1;f;B><:v;==`?Hz:<>9P;>h:8:?%<8K?z:~=8aw:`;8?<=:Z;;J=8[9==?Vs?Wu??Y?L=e>!?>;9UC>D9.><]:<n?=6Go,w |Q7d ,=m9D+>41-XB9*$ `4%o#:Ϊ0X3e2tn5v8aB17W2B) B*I(C1 0L( g7 F)D*_ɉF3#?x;&r'?Bg%2(-o9 c>9)-s6nM2K&%.F+0)Hs+$(9bL?n$nb.2$@*_*7G*6;D*6?ͦ*0D_D4DD6?TD7D *$@ZDҩD6**4ʋ**0*D/.$9\2q$=T032C"M$ 4e9*ϐ%,c W' "H:$0"2>17I) I"2#u=2O 5_41&%03S#4(1?#g y K^22   r 0$r_1 &7 Ax%  6{ 2y5Mt6{W* /% t$e 5M '0* 9a 6KAa 0G  1k 6 1,0 %A,%_[&(j&+?72!z+s} 8i4q2{=$$&% E0) 3Il4t7 -W +,@13,F%b G&h$2p=:9*v!H*09..w $7b6"7(S6N0rr2*Ls5:)",06T,gH8`7 Sa8;է0ѳ&&!B$/'2w-0,.jF O?\%a ^7k #lq+o*?b-a&0x&/sP^ٕCK,(G3=3=83X(*-5z*E&+7VQ&1/,688 #5}3 ¸3i#6J)*#-6'"3>/3.9o]''#J4bJ0he{"H9<=3&r*%;!9l1y0$1gB[4mҚ#kM&:4DXY5Mj%F':3{=#4@s.(/2M/)M,00s3#/+)Q8%]Ç(!r S3<S0k+n^S*hS+n8-L0SןS-S);\5I*S6S `I:)8BS0S+:p6S+S#S#I,S05#.S -&ES#""*S3+=)s1e8/+&).0CE5+3Y%vB-Sb"|ݜ0<4L*s&ק|-(d`!A ^;d'++1x5#?H"0,-Ki"Ja77F6;8I3YF.:x!R*4zqU6PI4)+ދZD5)6"Y #.$$<=1'r&J&f42:µ#.3_"*15#%75g'g,dgPg"# g3mg`x1#?2)`5+19"`1``7`v?595979ʙ1j1`7)919-9)4Y`9 G?77-_)$$)Nb6+N(NNjN$$66N+6(66#$j$N66(6+q($7-7#(NN77N#N7\(7676bb$76+$6j#+)(77b$#$#76#67N+)($L776b+$6N#6#67$66-#76(#(##67())+)6)(#%F:X<&4mM&#es5r.!43{@:M4#k$I . 0(3_g"6#ӄ^R0<J`J'-$›Ln&0"5 .909HGS%0ΘN66 +'(a.@Ao8lɪ,P΂s)J&&GK?0/(2]5'$6E&'.38.&J,1^k G52DnFJ" vx8+2%&\0: BP7\0:*\ 5\(M\CBP(ABP uBPMEO~;!~o;!:9;! -nKO-P_t.E_'q_-6p%#3Ma9#+B99(&b4(;2#y)4w-,/0) ),# T88aYO7Q!X E0K8c=+.r%8*l(%R*!e-7S?7f0q+Pl+10Fr(~48%4K]1#+ -E!KŽ*aD8[1Dq<+C4: 1693  >2#15"8M# %!h09p# 0>1r'6 E4E'?+ kr2J28= OA3,h*$?(K8+ +a,B8!,:޸^!c9,7 /H?)*N#-$F!&+Dmڕ!,5fm8!M%9{7m=c-q13D/0;z-R35-(nE.3~Lo=*"C*n 5P5a"8W(7" !',7ri%>-E 5(% ?5>W,;p+ʼn2G)\G5T#A6U Ոw69O:/1T%3_, De$3/[<6[9&=(Cv(8 B#%:-1E H,s$;Y3N(< D\!(,.@4})-&X/_1w&%FB5>%K 1?0GV&#i!#$g:!qF9,Z6'p+?e·m0.Sa/(+3( j!~$,L$J"?"*1_#+$tق9 &`]#(+54`5%'!i 8mօ$G<&/C$D0x?:- *L 4y7/v 01#!,\ 0091'3_"/9] E!?5r9 '1 ET&1q(6~c bT36lS+C;I;{;*1s*1%. Q&x". *&x/*9'7;/'mh'eso 7[Od r ViU -kKYk  JJx0ۢIWyd wh2ޓGD$nLUz  gԨv!/: r?MY}opl8t Vb/wrnNgl_7\`%Pke 2ɡvY x,Gw7\lYR1kn.fxgJn<u\ enWpNibi%T#vPOrm [GaP jn' 2etר^(aΟTivMhm%zxyk8 e#[[aB%<7lW!Kp#W"MhB&\kJA/ϸy{K2T w(X b$1cM{c/ @t (RwHm `A0rtm7 `f4N<Sn"yRJ{T{!ߑ\aC jO/Fp&-wOl+prSFZlf/wc8ERli\g{t hv_t`z]h׈ȆrrWN7l׊NiwR/bf#Xwn ÆZk#$+h>G,`ZTjoI[_bpI$~wSiw8c |ڌweN nRj`cF.jgH6OzhBeaJ/sNڧpZwui"FYgnvr̩iwM)?\@r !XdSZiGZoҾcdm'scQ`'U|'qNn__yk Tjxp{)i!K evTmywdyr )S`$DEtup_ifs "_^nVfC)Lv"hIbt )ch[el/uPSQ^A"6_K"k v]#{ "w poka-س eVE3mRe5xK rzf .o J%pd~l rШ&b sYtzJpSud${`jKYB_" :xf9ydB%R6r% wxTq:v[u&ޜeohVo G8]]gb |ԝ]HvAHv= kOwOKkHmNEUu{4#GrBzEAe(0Ew;!ܮhos]Aur Vxa3H>e!Xl 4LlxNZ.La[ !uךc&uk$Rx Kb.w({R6ю)p5.S4rZxy XFUp֟NEx: $+g!HZZ?dM _Fsu׾nM g<$]oD#f[mcsaV%Yd/GpVaV(v<a`t'm @i}g Pvv/ >4bxv/]f  :tH9l BnWhir o:V.PnTN Fq6\i;LHxLi<PvLi=GcVNaAf@Lx ;d_٠llZ)tCq9-qiPfa?XPh" W^Ul#x݄݃i6 h bWvnY[Sk1 F^ !1Pg(igop@x)j9K{>@&οuCMzuuvLwnT u?eV?od[\k#+_EA `pom&[fyW uxs{ ʄVs`MSuY*De!EYwMg[X_`vuCE3|n KPf"pQxWJRu[`Wr4.0n`q!Sn9NVvVt*wgj\,j, e,kl>OXwh>H|Od \mVzQNilFks`WlhV&wpupwi4Li"Q^#QgVZ-zhsRJ[oT 8fuw   Effx hu]`2soHUn%Y^ja (hSr% cX 8z ^lJ,^k HLtqfV@a"v$JVq&9W6S;qhIqgPCPm 57j |GzkLAEzX1l} Ӌs;n=&Ow(лiJW{ z\iVv u3r ]`hiX` TYv0GDt1 fp9 nRooRi"rI_<U OqJN~pX~x Lz9AQyZq?<{nArowp KMy2WSr` F(c6r oYSa\P~k!)`i%Y(LtUs'%^4ZE^cd<%J/t7'yi_Y`ka[Py9r)qUo*Q o#BV^UMy Umٖa3 X`( zl4ISw@;ֆe&sJy\ q_Gfh͑Q_o+HgbIxbTdcS wJq5! 5VlR]n^ Dlbݭ^W\pi)U=qzy a۞fZX_ yGs*qhV?o-{0WV^J~h4 ^Wrw i_jk Wxoׯ/[vuQװNH=_Dklf*ZlN$y\Mv0Etv6iyeVfe0ooc$H.+a̐o̒Yi$K[uhbP)B`?~uoy]R}o, K}yNg n]s oE x ; mݪ=n&-Up\vKk_t#:j  "iqXGg,Y]d 0Get*G3Mw !ݒ.kZAvt %/mf RjYrWZb=]Px9Th{U9]iS]lTx%hLd~Py_q!uYUei*v=y"[dk&%WfcvI^^V[V Oq hEVc4Xn_4l+ITtai\slp RZvairfu y5Ep'֎k${i,Xa'p$Tbz$VZ [f&OwVZ)k_ cPK/x~x3nE xOj-Pu#[k R2#j'} Gm'~P^r*<]gNcVNn seKRkP\7#d3lzgSpLt?h  Ĕz].;y@8lր ` $fU b@#:g&xM( lAݽYnBݾ[tX :Yamox{`rh T pOc!<kXyXKa{ Z_d!yA!mg^XM%Xy}wI}m/AfFvtV@Qo.xGwFxy {eVbVbW[thyG+L$r_}^<&aMVe 2^3K hL\ZtvZ \mdUN%aqnIqartst7,Md#= teizO`u]o.Yhm]։RweZGpdO OJem  ' ,c,\K@z.Y{e! i Z`UjXs3zAywgf#VUV/_#Y;4g"_plK5Yl-w[c#'k!lyc`4 [;ei`܍4yvܑc]d=@d` RlY,g2kV;,{ y[f6waw a S}Wy:EKP`<r=vguzhMNdq@!f[CSkLycQS_A z`Mf}V -_Wb0 !bu1R,[yhKR-\r<Tpt,\_wp#lSO"w+;њ^Cթ{z$Xcn$Ax?GUTdQ.zQIVg vOu$IEbh8R|q0 KfKd/Zi`zTh#So{؏|\txyؑw .ma2=_-exzF3'w kAN|{ρ.'<cu|hw?k%j%V-Z=_OU<gTfF\E<qe VrFHusHaGvDJhMK`̹jtrɂxDK hyK F0kg Qs T^mUIR[&qyG>ae{S[Lff.j V$myޜ>tk VYv YhVm+Կ,Ej.kmE/I2mn NzzU6 Iw= d\a Yrt_1iOXWlbzRbCUuvd9h9 s# mN[ cln&q2M_کO|gqsgkKaAh`d Hc2jj z_Lrz_L`[_6ٙ^W ` jlriiE3v Y2y!L nI b_X`"DpLNhyu)`\\\gGnJGxKJx!S-h`yXy8]Xu7o $kGTicz<` | TJeBԍi hwYb\jKF^qDWMeC^2wky!]A!d $KimדpQretc AurU)r1WZ{2<\[mVLx""gwpc ڮn^8bJ\f4 Fb`6s;tjPi* bjHBy/oA`E.=z5VN6!rڵ^5pqVXv[_klk[sWw*ԣK6lsJ*+1gA֝w yq\WGnrc*] t| gf]>y*jQ Hqjl#PirhJ%V_<9ߝK"vB]`B ^Ϣ:v`dH{ s31e%OZDne4jn LrGUO`bSzBZ&rhk<igy>b}^>oKIPdeKurR{|  M7nwPexQWtvs#'X&J[zPZ#_N5Hthj~"͗IeпrGh^sv6%0jgz>bw'n!oAQb rmpșb_M{vEs_Vt߅LbP gi;5 aEn6sTL`5 ,`'}Iu6U_k}MFzxt9t:7vgӢTBu; eFquriohTqs10!.K&k,Z2Q%Cw] x /j1Go5Vz*} /FuUbHSrqsw4yS p^_whL j$V``ahLat$]vdnXsqUHur7vFa0Xd DVi|m  }{h{ dBw_xHf^5w ð`Z*w{Ow^R#d8$(pHruvss$TZl^MQa٪U^?t_vl'4Ig$m]klb,5B uHWhbC$_X<I9k$`Ky YEcs$g  jfД9N x1O`Ugmz^($Wtmޑ t:WheYae2fޔ   Ss0r\xiy!QtVnM'l}QuRwwS\w{{i/d:V0VW:lk{hw"%uVįrA&p XF-o`jՖKmbmh}(aF\2_: ]  nqr@;Mf Kz a{8ot@?z] ]Kjz4pXsn[t4^xjfwPIwdII`g$M iEs l e b\SRan W `P" jwAwr Yos C(^oZ)dGw` $YDe89eHLk> zA"MbfRdzwX[ iCUr~9bFrx_'~jjI{ o IsdٌZ &dhD'7i&d\snFe\ObAhQ{?'P n'C`h KϞM;h0eWRry M q`V2&yeeqFwx%Om>OpUBJx> 7'd+WݳBvWHMx{zܿ 16\^o  !Fjs8Bb]i%h ۸ 3nխ(eK-uLiqKsm-W-=fbq<ca VW~z{"-dbL9[+`#-s%J֥]Oh]yiRT,pb|qT2oEh_Q`xW$:@zVZ^p0[u,PtzlhQ;qbWy T`*H`/ESass d1 2U`#c3+dϦv;Zkϭ y8iYJp ] eW0xPSs7lzTnTja ]VOhl8meQ'ha d  Hr9!JAxAqK_A=vEhSv _? 0 b>v|Ps Q6q]>`G.fG&tqV/dm?{.1\|lu ѮNaGa|nnuS8m,&d``S5H\ bi>V~tFetjlNuiqdշ 3]lu7Le`D# OphF,"&x"xFb"MrP2|_PfEedbj XdPbE FMw$^H]\S^ؒ93w 7*X5kIVH'{(bL5l;0]ra8<!q0eX{WsZiR~ e1oTn P a!R xITeo 4v_oft6cB`XiZ|ly+P]vFhNJqzk> ]yˆcGt%Ipua <oFruVFx% @mmEcCE8vAx^w1rtRd 7FYc^`m#kΠ~L`n5W;Gb (ݵCcYtq9nn$_VtI%a=vQ&dB?'ksUzW Fd\9v3Tl% Yiw 6Īn |#8fihI?lfi^9pl#je.k{=KFq~Ub)hC1w.iHtBCj,Axb;&Z[uW7w02XUVo\svz]^gJ%v i4WO^r 2yU$rVugYXrL<]?t' Sh  2S$xvn *agX c^>smhJTzSieIt"sf@I,w|6XOH8y|6xvHg8bM|m<MVp)\]tQg&[>_XQe*N)s6ԅxs$ klfLJ;e FECm&E Nbo ?s);aJkr|A4fe{Z+x$6ܓr8v zCz`Ww n;юe"3cInGVPwz!_e4vcxeOdLCmj/Oq +Q{?Lsd#3 ]Oe? P^X,Qa Dpm4G hmVEF=fB 3hN%e [u s(|L%e\xTy3M#4ldqE" nW7rmVxuIwF_Fy:Z doV pvvwE@{khR!kvi[F\p' a? aT {]WCN`8a^iWp.v-̀Yv z<@WHt#Auah:hrĎ!F[@hTVnF#u}q֮WuyHq!WTuF;c!R{cZlFgFGR{Mѓm;w,O<ekQx?JNuWoOb.[PypP{{| ˮigPNu~? ]RphJ,l hke-6CjL u]}lGW_ Gb.U4 eLQ?#vLh?Sd `h{"g(.#RͫlfPmo:a[{OhhW `-OWxu- I8okVNaofHNmO@ujê h~B^ìwC_í NwD`cï \4yiFjPiogXe%[>$\'dyV{Qt`0 gU^B (EtLk h[`̳ )0Kj:M+f_wowrbWtEp,̸5e:=  ks >EHeGHplVGeOnve3@Tpii~ _]wj bXc,d_>{p>ɀIu3s92yE[Tq3yE"[cp[VN t]WWj n&kV^KE{&d=V whSduԹe SCmCXoysCRuN 02G-k"td)Hlm^ tҕuo`ۇS{Xs TLqoexx,JkxP*IXk$1Pk.s 7W,uP Ji_N_rs noM²Nj-8hQqz?V5siIJ`sbܺbcLf\}ibwu#Yf)UIsUhNl ֨f -Rxgm&:Wb~eQo9BzAz~WvN~xt2 Mc {W9vB@hm$Z^!oma-`m~w aQvz| u%uJ8gPl (qFW3Sxq*zYne&K W݇Cej2l HYovv 6T `0n+VTtb#SMyN 7K(i)eNZvwgJ"aԉ\b3,<juw bxZ5_~ [K_ Ud: w%`:hE+^d1]q,nCrca"1 q,=;np E`kN[nͼe 1Np-M=x ǛU_ {M?h-ǟRHyc1[f1>]hoEP4o'V.ZAf]" Eb" jX qޓ0k{nj zj$|~i=^<>8KckEljT^`7C nj2lK@g\/\t~ IGu1g  xSro͐9d7S6c$ YOy a+5 y'[vF iA3݁rFgN/s.e|n]()rVbe v8{c<xBF%h%(w}tKQ^QiR \^h˄!y@+jt Kgke7d O [w}ڬr)eCOcjeS~p fx>WO0j7;'j; )s ?qyy@Hvjw18Ip t&D]iIaruNjwmVIOzG" kJ̲>k d%r\i!re ]`yYj@Gclp 6<;U2r6=h/tYVlNhTq +U Xf$XZf( NVrrq,-r$l`f ߤWbqt Rb6i.YewsIf>ZO6y*Vgn;E$`hMzmP MBxNKnZOLeR7t  pwV d&8[_xa *QIzb.DSe/#jVl?:NIoda] r@pE!u]VcaSDy,hMa؎{]nq,lE k7G5uuP*xGMk\_3v %mwРYnoO<a5 xY<rC9֯LMB_{  {q*!b-hJY@yb#Ww7a>wpw~ V/gm'SWCzyxVAPme]!{D9FUoS9U#m6Ӂ@p\%xWtVNzf<?Ne0Ѵ9_rc]vEW_]%$m2Usgݏ`-gl@a._@Wic֑_eA "εs`rA MdMpcWR> q I^8LvPoi[" G,hAGkvGmF $pF'+n+ePi F N_hٔU {z \\5s  mp^PvS!o*O(Ck Grw%zVhzQvHYoM^L EpS td{T$qreLUJ9q GLfsVK:`  U~w 8@u *yJt : \a2x(V<Z_UTm lAc tmb[a/mmNn3ۜyQe 9rJg^g$kd% 'szX] HgLysgߙWl bq֫8}p.b] aQ3RurOh/ riĞPDwEIa/c Αa" pr53Ko-9fө;cqJ#]d fLt~cFWd[@Xqq%{g qb]f1Vs&&uucOq*>qKVnҞmj%1#Ja}S ,׽q sk*R:ZmzThNZ9_)}H'hOI!hG t4k0N_Yhyu r_vm\GzmͿTm Wc{L ywzYɵ^v [`ed_M+g~XJ2_lPRulevFqR`vM UX/glsh{2 | s;D ByiP?sBc_il/^Cbm!vo۲w.b>Vi_ibG$QsXXW_' dlnKs}SUixSf ~ulvJ inbl#,Xi *Ӕkj @7H8lǓ2` XL+w5$cđiYaw "e,(WV2at /Xf" (s~vhPbpn?SWwe e \fl hipgWgIg? eGw,QhWVi1g 9s],pF\_8+x>gE=^; zKVNJ ym8hP3<i h~qC{RySe9E9GyENYe*Dz^I1g JCxd lpI Ug_wJ"tqvm *_ y g d4nh0U9s%$V\j7c oG7dWMufVQj;/Wz%\GqkN^ѯb y<XQya]Q9o%8Q"@dZax Sj/8DdURl%@aW76y%_ )Ot(woif|xeVXS wMiElg7b 1Rhj]c4-v Sy`\kXxO[~"hދD g:Wcj ]h\T {HXb[4f2 kԓ5NS_k(q[NWcyK:tYeCH (c4iWm^d7KK}eO%o"e 9Tf@nٹj]z1dk^r1gnqWZ,g)xxq\8iPleu,YD`mlLKcX"c|{gщ$oݖz4k l5` n ;l9~Ps4h1V>MiO͞LeoJ9qk?oQ-rqU]xyʒV_nBdwXCoXPxVU+sU,i < kb%Hm1d  oWw7V:oql[}LjO!HuE$pөOvN"SPxoi:A"*OmT`T0:cF[q d;gWFb1hgIfdV8N Bse*"W_Oy &r2P^t qP_b_Yy z5 khMUG^Njcښ9yHbc pkc߰ipS_f "Y/dJ vwaY0{frK"mfK%x< up))-OyZ}{^;fzSwfM pBXJt :zt wUpw v}hq ]' $dGf?O[-`]^sjS9b`nFf9th 'abA:Y{hAZ [i:aRWV^F͏Zgtb2bJZ{d't' ^on$(0Sk^!\hwGuz4Iu+TKCdhHnzN5 t'HDk5E]v\zitX^_%  G`per(Hr^lc"a<ްˤFrPkMx@_޳ ~[d~##K%@a6tkm)ݺp  Ozh%I(q J/qX0{( Fx3)sVX#hE A3d jUSQonXvcf vlU^ q wcMZvw VUp];MSuI΅JiWJJfvPg85_YgqBmRMnRWL+^UGnAdq!TXz8'lYsSץRKqg# HKo hh+2djFW@{\0OtB hPHbV7hX 3ag8;]si  GUf^T 1Iytnh4{ E6x4| qb4[ =[Is~ZuF0:b1;fr .#q< K2p$ "w $U;`TsTh}j#9J_v!F"riu9mk[n) Z6_FZ7u/ /pLPq1Wdw*FMeD rW5 xnp8?tNghFSMc(tw or[r} U[q IwvT]9 l7v9jW2y\Nl_zH`:T|_/ &5jߜ;.}mU +yֹFV j!Խf;3R y0[xk ana^Fdm3iW>wl.Lg#p Y?gMUywgh=sPgV*vB_ WFo0qg[~*xp>u?JqhJJhh Xob]yph^VxTV7^mP =n ^t_e,b9_">oPm9:J<g`gKTaiG&ojѪdiXS 3i7,UTI`3q o`>pV;pNOfk|[[8q V urGLMf1]s&H;m|{rtg JMo՗ w"W<FQHf!}d7 |c&^Dbbu ^ EhQ$zT{b'Y?yD "qn=)Zat$5 t` WbVKw m u} HI^2 MxPvz irF Ss= O,daL i^ :~bBiUvpI{m(TfUo LaR*ZeoTNWdNQu~͔l<0J0bQwX[ x6 \o.{bGSln Gb8]:qliVpDo,ow X^kWc'w= UHm iTH.:zc.t k]d xw+]! fbc uE{%+GnhJttkxRa, M`dE#pny<pb*$3gkZ sJ` qv\#u" zUeUUVH_\uu*dR oI/ywzo$<OsLNV)hoT;iQ*v(7`:Uy)8i#yZdk2b6Mgz`tEp}S]s^j>LWg3}Dtl%.)fS _UVFtTPfhF>wR Axi@eIyuBcHWkxAam\nHNm!-m<".t<`N%x:c:bKKaV6XzZ  @h=DY#kq_f?o![rmVKw j'dۦ s_N^yGh!J^Kk k7j9CmG NyBVnG Ed#+Pn#CGEzv6 ˯fbL3hi Lgodi&TBc fitku?]aU6@Y*-^64t}]uv7DKRfX[cii; L>c Uv8 QQnUUh(WZGfb'UpXeYb5jQgi(2ozLhUsb\Nvx 2[=oNK guhqO`4hLH_\:Ir#izc ʟ˭go)`"d- fi 4%^O/8x{) a#^r-]`mMxkD3F_5o s 2fj)aTenocR &avB:eAosHx ihv$Cp_r[hLK fUO}`shJb)NqlDq +EoC"\s$NYlMWjA$PeTy``е[xXn"]k<#LhIawrVc#GpjRgjQTm)!Hu5Ozl,%| vjm)4%i  I@(n Gf$-uaH S]lX).I U__T)4x{qjyj Bo=8g'^rH'ߔ],hqTlZJaWCumYuzp"P|iH.V8y`yVP5v!Mze Km5prVO8lKhHcwiph|ξhhOr+ ^SMhYgbKwT  T*Jyp#t+^kyhֺhO.h8Rz!]vq;ck4;j=/ %Wj{yK_PIRrc./GTp_h?Gl *[WQr"}sGm eGVdQo Qy6CtR\w)W]o wr9}i' c]8me 9Us1*PVu2 t]#qHע\b9ܭ Un| CQqd MffhZSm (RVqY=Eq} Odψe=ayT-fOPhjWO3b_Fg0RaHZjd +/b VXjb m_ bT&a:Dj6CG]z .T1gJq }"Ke5@dHoڏo<W9p<p Tj?_B ttc˪\GvyeyV/iuu=bZbxkn>hNWqr]g8rw4e3u{xFbWXXgJaz\\r GKUXmDXVH%_EZzqCCuz+LHw8hIe%Y8p  k'\<x']ZL dY /x^@cDTKv\Gp܀E:k'Ppc7wea; :iFpi8ؽ\dSyxVoah_hMfEij`fh @r pC-dWWij 6nBVVRAYnS ԏZlZgq WU<nf~"yP-`6(DU$fLOgqPa% -pnܡxKFdAdKh7#&KpE43/^#'w pxu@]}mwc|VDb a:[lC2zTPF6juA`nv́fwj ,]7gC1zk0 {h&pL|w{lδ y_p8m_+JUYnNFv5kՠ:m70L}`VŽto=;U` _xa8YKd6MNuJ7Ç[qERi' EwsԩE.x Ie$>=zl=`^IovfhNs+iOci€MWj#S^UC^wwO8VSs ˬwcB@fI [A8:y ^icMrx{o|Guqg.mtH [q( TQHs WJ e\?J p߲\rf/OQ^^OJJmJKkW#lIsVLYt BK2x* k\VGbR a3Z!f p +]oznS5FOjͺPAw F\tz ^hr!%Pty%+]P^uJ Eunۅn]Q l$ML`FisVo_ ^X-sg|H)o ds_ps QH-x9$=tQ JdqD L^Fc*G.:n+EcTIGr&YEu eVHTp!}]fjGfkkM{͞ "Az"WAP\lwh yw Xzmه?Etj"yagJbef+xGjD^gjV&Uc c[c^\ih|)oOi,HgQn*RyW+oբFGwcX( jy aq4 &L{ihtER po5Qj_BQnFw;)h`Ko e)o1lUpIz? a @ew1ySuw$QL&)RXadKye4  .K_n jgCr@xh9bvZEoUjE^\m! 4mh um+Nn0c pdtUfr"Ao?bzIn<dxa(#SΣމVc=v6.r^rF]2u) dJ#hVrVXz1lVUt3;^| "_HImK{Lbv t"xB j~ e`)ˑJQhuYVz+"{+ܵg,iyh  kcXD dI2 iPUS"e~L sAQAcM 0Lfj~eA``qs- tTм{ /=Ra^1P_g  cq`V֞'1stOi@ntJ,VHu.Oid /YykUM*lYddcXBszaf a]a.7pepOJktύvŤV\1u;|X^}y{SVhLl* t M\nz}O7 a gb]zsE=k51>Tr{6$ULx&N0zІv5{;#pЋ6 ~RJv xh ΄^k˓mI zbN'g/'2cN(b'3SJKg'7  jw\KlI~ `8޽SoXUs [G_P^Ai e[p cw8z'zJk^erx|hdLs_ \shxM 9{@%SIb{ zrWYj3 ~=KboߪMqY@t.UP*Ce.fe@WRYudarfQjh5LCkEzEvɣmJ;eJ#`/EByj1/WwGoo= LqhWUm#o 9[YejZw>DsVka{ZgM,y NltV.x{x7t!Ppx S_LG1_~ 5t]<^Khٜ\>{}cw fdv=HmKMT1cEie(NoZ HibFwe yxz aiVMq fj'La'cWmLOFNgGT n:Ƥb`  Ggm?uPr BrbWKJwu `ladc?9Ybs?:)OqkT2g#P 7v'LJ{EuG&q1 ~0mF~n mc ,X#lUdf^{gp}S'^Y@L{Q"O&NLf=O<ltS s[gt#o[Jo)_QV_g=uQWa_Ri I@w0V|i)ad^W _s`! .Oy&:+i= lBeWi#\ӝhӞhjP8t9Io]Z Wj& Xz֡۠eo0 S0jr\KGX gcL\o& (aVIh&{]=qHk  BPr5Yclgy NgA69m>'q :Q$g>t{aehJjuwOCt?RcreFy{ifhͨ*^D&Lta~WHffx}Ei< ]Fm9VKk`3Bg-Gfumwh)?xt5WK3niIM@r)w7 w5yI[y^=^ tdYi0xUGwzU'tpVx<ޝ^j\c q8Iynv dsRf =F s\s۷WXsO >VqmRf(pYοRGP{Wu8\y2&ɲd]Dh_oikKdHo3ku+HfvFC^eTTp#"IwKVPl f_Գ ^Go+Z^C2pXnpUE9n,CMr-gU*}qgXGEueD"OzRQlVkRdO(aRw`Wĕ%v}5\Ę'd_ g{s.MNdVaR^j$hTs7Z#"^gF$xcK77ik lW8PFvќP%{s\j!a8ho>XFLz(yv.&fR= t` Vw < o X JvS`0KsI{ ehZl z  dfj<y#0V _j] `XUte*lf]ivVYaz0[ce+5!TTk$6r}~[Dk{:ubZpq#ZRa%WTbahiR3z`HDhwHZ2NiEګNFl*!gUpX?fXt^bSesj\g\?hh3Nuq*ԉVg#3jV q~L$xq1<{t`XkC! iNXQDi.X;X8gVZjpWVK ^XiFP4^c th+lfğ_0T@^BOusEeeP`Tbw_4mR`7QcfVrS?fiWcqr \37rσN:8uS ~M_H@ $-x#N ڳ^#w ;vcc>qYRV^kYG=Rhx5eN!k[ #ҜԙNfh $FF{'Sp^3hrU5*q&I q ViQEmKaxL%7!r!SyQX ry  V;`[R9k*٣z+(uHw[eNFsm`KтIbP!Kg} !XwmUۙOf& hmhe@ X3F<p []uwVr.XJ1dFbd{~jn|n(pR3h lzSXgbS[gRWO=Wj ^Ydef8 *Նw_A"xdZA$~`@A&XO^awL\v3 ^!hF !gF.VYp"Elj2 Jex St%"E Mچ f'9uStI&Ea$[{nOoZ4wfQڠ;cZ+u  xJz,{w[b&iExu`+ 6^bbmK"X.X=Um   a(2{!Ya`( H&lq_ H'c:K,z:M+G` ?iS;w9[uw h Jb-yqy-1 "\x ezhQT&t T{Tp5JCw̢YGuDIL'5w+<,ps >(p цk rVobcEٿ]+vGdlYyQG`fVMwpzNsfHr8sWhO{{kTmO4G,n ]Tyu=<g"Z@eT!q :h]EeeΖgK&Ηx Eg`r |L9`G8j\r^b-fr&l5&lck[tjzIm 3cZ_R{I &`'"UkbW)zzVxF1koGg W?`\p[ 9%m_ Fd@Lېg- (tj-%HԔje1 j`ndf!^ lզRpf+է QcaM [diWEj7xziD[t"r[<_t"] fijWxTu 9u*V/u^2a*W_#)l-SV1wg[@djRw_% >l7{1oqJ&hoo!^WoMa"CZ;}k)Z<~s*WWw2zh'+;zWpHx$ o,VLb'V`c_x]6>`cVbsV7Ku@&<K1pCMd M`TgONuPOw>J'wtm=vQIQqP^!rYf /]ow%vj "k2 +rocljj(,)^fsLRdw>X <I0uT>ZrFve>\N[nyh HyN/z!Xf-^k #RCy" r`*e f]XqZGba\HY|j_G4uw_P`zOQamQSdsNņbwOZ`BWP.v _ \^f3$ceBJ*j6V2t+qu70`x Ieji`Nu_ mOzB+PT?q]LjuQw3,\j{v(vx U_y(_VTZrE ^;zVf|`^+w,`r3-v2eTTAv*XNsJLdoݙ[2ojY/o~i1R]zki\_mgWKiiUW+G9v-hiE! xE :Wt)cf$hRylX8EpdlhWGrUNj^48ul)M Ki z <uO<t<mx biS{6$qDT>"` !"g4vaMhRbU̜2 d6lޤ4>v|W6ttߎ%>PLz%1.{uUYsnh/wnlHj_*\wx0h`MpyRRcj+& xW.wi]Wxbd=sy*o W Qu Qv3a Nw7J4ljXpm9a' i)ـItKww[a*]Av[ 1ި;t_KzVxfDx } `Kt Ͼ`!Mmp1=f "JZn[u^[2z Gb<a\ntT\r2v`[# hJ\%vmD^t;VYk. ~s33$])ia{Mb8XkFVcO9dhd  [Ry}bBh^~  C{nd KXvmR_egWZlhHaYr> wև 5,cy֋xGjgU R{rn/[PAq-WJ0r!^4og z2kh~b"LvhE3`U3^MA=m0! PƁOe ho3ʥGv|T ohQsI4xg&$=Hdeij Q[p`]|k|R YSyoQvk_7'IzLh_ovwPa ڞs(skbгRb'a On.m \eSe`3y 6h:OkZ$v UzMaSiC{c߃WjmhFv߅ wqz jFo UxMdrH/eĆF>a \cJ3HzWHfS*y{3j_cCizP`mKm<PeJ`V g,% 6hsIDxm a_4dw6irF<u*z-$i$YyprslYzqiGd z K^VQahnSg  N?Z*g6PCxRҖ|xB ʞz BaϺu:YtRI{jv>Uj=YkƲc"QvS N8dg{=Mk WN_r?w`k+QMpbM o; a&<XjyR~eiոg? 3ZC{h-mByQu%OSUhh6Jh`  "p)%@pGkT h_'!iK xt-öwX  jBs\W2 xesWA^n/[ mx  rK lWH/x'h"^uΨp3EXbU6N]mn QWeM$cInc}5UdTJ8whPzdK skP5re͟l $ mevX;e sfyij]ch^QtŧrzĹmˁQmbTiPLo "hWQpiV qmqrQ'gL) }jN RYvDd\)faYJga8 h 2`+ f  Imf¥fTTv-iCeE]bIjHTr2y^ yKhsxp mhR uST3j<bLzy ڵT\dDU}5p>Zhjӧq=mhnzMd}Ma?N[hcWiI;CpCPAwI7IOm\h KmovQT MsVUcѨ2o9]`f8j<_ag9_V]enCXp{%=i%OEbh Pj*w o[loΈW_ivf[h3yuvI=%V!I*{pNsEavGNsWqW87w>hX=zUE4tsELlwcL^.Nqm?V0k,p +tS2EcE]JbhlHks~LIj0MlsW`Hq VfJ Ds)Km_$WgzO AyS{٥g1Tf Ks?wЂ{E+Wgǒ@mZ}a\( c]UPozHr[w% nwf>WOfx*iI"Gd#Jdr*mSK\n(]Shn.~2IcwoZ-k(2t<*zTs Q{}w3p Y_~zixgzjhNrVHJpKVQwU@Rsr)Qwe8pIGwwc2Zvvh}H\f#iV| n`(!X_3JVe`#tVfmbiV o#EcD]go\xeByl0} ]c lSfgeg)NfdvtzƮ )Pt|VGmuY7OG{s y0G ~y)$ZogJzD: kyiPj?HQKdH\kol$WJsoutNOyHSXj9 Qw4)hWW^_;; ) aw[qudae'M3fN/~w%Z*x;Oa; Wu3jNddq\WK|Sw fUX&nvq&hhPp@sv(mU+t b^&M~{MX'^ :dvQOx@iRH1n~ZfRsKr#k/}e!7k n9AlNqqA\&%^ i &rXAEfxNjaŸvJ+tP7+^F y`hX uQ4n%)RNA`;ٰ^*yi L"u4"Rdd9Vr=mV1 I_FpP{Ea7slG GwoК8q ^x2)yޛ \ehI&y=]xl"o!Eb'GVQy3Vf;\oov*Q_Mo/z u6jr@J! Ib̶vSmwG<*v?x\Kbt\LcvzYep#hQyUw߻}&cB9iRi,bEvXTNi;>A<z@  +=u75Kil iٛa#b jٜtZcitNFi!m;q"3 [Mm{xh_W  tR sDWjx#^xZcPtc`TY`h"WC zB+nEiNuaWa$h9p"PqOe([s4lPQ\ut)i`UmINUYWdssFnIFhNGu8 .v# n]>pE%32g[awhy-ݢE}l KiEEx5]lWacj Ox:0u(wwfS]yYa BuK pz{v#Mw-9 gp n Pl1 h<% Ds8Ftq`nOx^rk^Ri lx x eVK,xWf? skj\ok&JGt\V^VehTo_xx@E5fwHHlV`i2E|o֞ Ni?ʀOcT}jqxd7U%yUl lZJik'G/@qiARyjt:HiyqK X\fEZ}S j*VFh}i־icOKLm\Mw iܥbE oUܪWfKg{=4k&I6x^V2kJ وTg+wchKlQ7{ ~ZF!sI M:tX-_Hҙ[Kmw tRt`DMVi }N&bpPea˵\EdE q\9 z 8Tm'byik`u6Jx?MgVYxv^,VuM m'hSLqh * JtaN^zw_lSiQJ}stcGsBL^}hPz[wv1#es2t5mu`t R]pWs ; FZ^{yWEA{An2w-^Sq|s"TJqiEu%i Xg@%pZKinۧEOmlUWUyVEwConfd 9J{w^"hzVHtS]lFHJb&єu!q$hPNk >v2hw[arf\J{.@]6w<$cgxyLzI2̕6o I!x$n*VqCO"x4"~EmemF&G_&=UFEl~Pnh>kNmeZaN`%b1a1x-1 yCV=L[$r7 [H`a-n@ t %%h  pMbzswھ wxSr&!Gz6 t"rd?HlPWTNvXx_iWHzo Mw swB EqXB 'pLXT_4i$`Rr*s320xVwwfNb~U1t5 CHgt{< wLexZhuehIdbVsIuinlJpReqqzyUXrV_\\h< \=6jnw ] lkԙXW_G@wem x Gphy0>dszg`QI9_  Fm`YexM!mxnwTxxfGWQ,pk]uL!}΁(gV`h=h:ogfk[gtxk6ٱ4$b [tezzbkP}u &hcVrwl =dWhbXA*xV5Li+H{#)lo0)nsn!Xkg 'kJungxnv`#{NpfO|FL@d%+c!5Ta} ҥo( !dݎT y.rp]MluhPV^mLwZ\Dssp3 R \u"P6f $/ x˲H@Hk`!sMOhXu^KtZMgw ӈBwX[Fhr/ WUy x Jc+%TDQv4*h@X1G-tͲ Pa fiS|t[KثM7{Fʹ?QddLyGgF^$u"]Ge_QTaWEk^vwF_&h5 ~Jv6zb  h7c)SnV, `8GG^E]v ]jm\ض~gP q. )!^,0kx axj[G{ae GgtVVk:0 vM-1 _M.]5fb^.ti0tΞYsMs!\]voRn0'+\)p'|ӽ`5G__7uh1Dj8.hfLr|_j \u. MQ cBEv@5hy j"!+uV1tpKd-wvP Q aWnNo "~lqğB hnʻcvw WuAiW&zPYky`v Ys%zՍ]u vU?lCf, (sx7wjYNi`-RfHԇϐqBX#{9CXWdWpO_%J*dP=Xm  ^?zxXpR`iGTBBm?=6Ǵ%u27rMp\suʑs^/xJ6t2URwV8I4z_ihjY v,q`ˇRtx/hVCGkHg`KXeZзEe̹zl!̼ PYTyo]7ykR܁Wqv E\6u^EaK`Chs GXyD ecjEnt^cg5ydI:Oc^WRu.ioPWRo/VGe#~fwusyFL4gcga M.f!Ek >SFrSGeTc-h[S<tb ly u\zVY_ ZXGj&bUrzRHKhXo&KϷ\2h*&]_{hŎiXz9m5 UolHvY\/ih|M|xj>mN Ra+zՂ}wŤPgGu݌/mu^Pe|vkkll!vmwE^ ڱct\J#e8\d5oTj Ta)+hE* c<ȑћr WGo ghIr #W+dH)q2Ja`8 (|b2YqMG,{BaaVv9b jpۧA @o2ۨ ^V-^;WR8`,۬M!'k8(i8M")d;~WVRby}ONaXV :xcJlJt[an= e1{&Gҗ\l ؈k]!;k8JLeNMSk4_c ;K9{jUGQj4X9Hu~ @"PnG<Yilv~ltxpBi Gj qC~r":.KqkzUW`OTq{qmuk1ipq,PInzCWq#V%a9D6`XkU{nbbiXgYW1\tHpniDiV7dV.hJJ{cP܎e I` m%n]WNM_ciWf*c~76\_yWU`'HwvR%J?v ġRun yFkSclT5r^K6f u$ʻY Fr,dZc3 \no W]jha+U& |z|p+F/qgq rPt*  5K^S8hIx{@hkp0dQg<?u|/Vaxwl"%tDNs&wN0hGW QIy  WtirOlu ?~{oAXax&fNyK|w0yi kݛ[<u)PnGv6W`FnF_y^i= ]YgDz߯FVoW|RqTns5Xuwf SxOod:Lbs FvWEGy#^yOZ/4tJXK6fh20wrEHHSv:i2ykvN~^*{#fOPh'5qAxEm<4Owm<s_=W?KDl{3Dy+)s WaF3c[Òt-kmwQ i iV$V tG ~gw`s, l0H Pb/6ohMwQJa* alIAQ,d*8RRo'{&yP^ Y1t@ [TcM ]U^^M_ ^k'MSg<U:hi 8S,o5#fuUX1No }~'y/$y_)xh~Vkdk)E&7t/$%d|(rG.u(*:oJ(bj )d4  Mtp[ tr60[Caݑ>hfpܜ_an_Nb# a^ PXe`Djs\g ]ps]tVdOphc/s <QiפtAeXJab jXMR!tAh=GW{uvMFyj  Pnge YqOho v >PgzŋE+p6%Edx:GdCAlVjXNUqdeS lPtYw'Duޒ v ^bݽ4nb!q| 'NhG]N~a'WCg0]ryOOEq$h1!y7 ˔xjPGG^Ja]m}jW x1>or/fwv~u(i6G[GrZG~q- xiVzRpl Er"i̓Cf> xEv@ JN7u3~BK{ߞxKs2y%x% uSfoQ<_Fs-Dr DvObtME>O ^oO _khhP[pQ!-tU`fq.aI/VlpT#iut;s9c't;z'NgD.je9=x S0p+mIeq%`lz}gdGiY&!]KAnhuPy %h(K[s9(O_]l*)vn 9iXag^fzb_\ZqHkq{[moA+QfMi_o~x GnoFZI>gR%i>5XKL_Foch;+Y-\p#]`_Hq:6h9U_{/;7v-AI+efUp  `+Wf^ Yse^Bm J>d! Lv( gL2WjqR#Is \cXsaUFz{]0y^6_oxSwwЉ(wWyRH'y&ḇ;ic+[h`wYs^dc_ub'J:tha_!F%s^ Ood?t7azWFJOqg {&WG ri# XBm;i&nDVh&%Yi W phZ,RqWY`l/{,{2x`z miaj˒]` ˓thGSshj vStfi/qI޲q= hPih8[a1 !mW> Gj`wH\z/ 7Id35ZR`vZTeiYv;yˀe#\R&i sJs[orobfTmiF\lNY^VfK3j2v"JpDw Va$p(?rx\Sw+bsv%)s` g`d^%+MTo\7r3OJd%inLlrkX`CѹioQzuaa&>]k5Oex;Hwq:JQWlF\^d<wa%k`Ys5<t L(d$ہk\!ڑeUkD]V}RQ{1aWr$|:w}NbnݿErNjT2kVBZQpJc{J^t X% v0 0HiC Jw XbL bѩz!w<t)ÿmrxwLzjUnK"Bo*i{tf9vrDzob$6G_I(MsnH< wF~|g"$n*`H4gsiX'WsblE wNgWQi~zєZFfd #hEb-zn nvͪVR1ap .Q2l9ؕ`R3w="]G`w*`Xt;XcEo:g*ϱi&tEvr8Gu'ϡyL\zzdFHsxnhzJNx/fXhg N!^*%,{;IhTa`IozG"x0 h^0WUka;MJBzr5Nclv0 ŋoH  |Q#Az~SqoNi!hNat[vI^Hf;gUxSz~w##PJ^ [q6Pw mǶ+kǸ,nQf:ڢO4`9$RqlaS v)- ]b:)pz  *mT pMI^rv͞sf'W"t,wdhfxtmԪSy64kuB lbke"Vfsrf   z 0oL0 ye#PqVֿ>n[GIu aE&\fwUrm pa1ȉppkuprLDxzGiv +cc eBJjQlߏ`:إ":y&e-F Kk޳\u?Xtd#IBwd{W>V 2py5n mRyNlisFhg"B_\ж"W m 2g ]e ,wTwv޻i2^~ _kL#t -y6K_*hsN> kZ-t2(Z5e(cu'Yq:{}juE{_z K~bs =*pVXk~GSm+w(xJ$mBw wi(pqR'-zbEEkYS`2fVfJ2_zWuU!EzcwH pFo@ 6T~npb_9r,# @^\ AMOb#EV|crΜC^-MDpVQaXNneta4oysHN[yq]vK^thi9{-w b܅hmPz|jJb'@^9^8eViN3kU4dMOwrODxUOiQQjWxptCIgu-nwF 0K u<V=lZ?}QO`liSaO 5aWihDYyXpvS"s>t{0lF>iEp;wMrI7shV+hnOV,a RbU*;c!V8ttHdX\NP{ZGj \qEb}@J%^ ƧpE\`iRoeOnϿE,w&bDj[gyf&+kP4NPd(5H Wi ԇXhz"a` ^ RLb: KMe+-vm'ROih-Mi9CMTvcZd&WR_4& >ZdMnLm v\VDXR'nD gw  w{o :bkcbKY]l{ Ll>AW _ ig3oa*y8JWo;U E hv&z[Mm}rX#)MlEh$h^&R_CWRw8FPwx Xslf= 7m{N9"_]*_P &e#h O a EsWR^GHJ&v B_#:|y\lhDƣxu_LmR`XEwg_<ݡx%Wedx cf[wh rRwynhh$cI brrXh;IAe8h+~rTbx [u8l Idj%cL J>`2win|Iid '5mhIct Z2mUH:_ "W}gVye\wYaxVr f>lQ h HfV].r  im3zx IPcw޹X!{޺UL{fx _Vba1:_`tA\HwcdMgjgk {r;SJf}coiwG"zmFܥ^Dys SW_n&4 S o/I f<'%aDV vUQ t}t+T9{c~r`VhyvxI$dw$s"m3jZu[j(W}ri {Sޔ qU_,^u{ZqjXnaѿ1WfiK3K7qMMi_ui jkPHOucS_xr0v0ey\s(pVisx mR Gh\ mgr'(eouH3_ Rm ,bn]oLxnT6`X>Mi{t-s8sGi9Hv< _ y ej Tny ښwZWMQkv0d Es Ѿ^ Q`ܛ˸yrLohzWC`tEa:jP[o/ZH:sk~xHZrzקn(JqsbM0Sxpp)G\5u,htHE ն\.c$5lJӹz`tb[XsgeJ3Hi_LRHlA%&$QrvK[m "De$W|hlY5g $Fo U_z;ei%N}_EWSH,b]<RRel.e&_X+p`Yh@ LP^ ]bx _O;oY/Vo MdSe  hj zk)zlnWYeX![!upF?d6D<n`-5r Ttq]uzdi7sc! ;'mX+UiEk i(U6+kr2=zFw)ݩ aWd!g8 4'oZwzoYnqIOz_G'`&Ge LhGwTmAb4yP"k ZqWK*x"'Y[e `EY2%ew-R?h"pNElh'I{xt0dRu jHa@ 6[Ice`ac7$!i#М"6e.wd+ls{vLoLi_L K`n}fVysWPIs`I5cg45sba7ajGNXTl{Cq:J=_wUirsMvO%k&r i*Wu @ 3nm KTyj a)q2oշMafn]bYjϠVWildWcQ m,|Fe Gn!]_b K..Lw\COji I_LEpuHf#nj$\Wa' N:noT/=dQLk;҉ V_a-y^j K^ Mu Ng Pc aWrA{EzuN9iKriKBJi=!qdd,wS ajt@Ou-~GhO|Rt~ n?l՝ Kma?XE[f9Yj o8Yee 6y D}hh`  )d  ElvqsHrRuOh\~rlJBnihBRN`F  c{KFD@l u؃ll@uMztD^` ۀT?euzJqπIsiQHnr@K lwpIrFFc qT5K}r8bZf0~Nz,pW@]kGdhOT_Vt"dj)[lTL5eLL:jvLGttX7RU]ea FxQ^ QuO'D_O)Fi`FXf?z\w xkmsfYm!{oFq PA`p\V{J_/ ly.l>k‡%_3'Rbp1Vs"YnDaX dfjOCiaP7iUcΖUsFcpAc< ZMel\_1Et~V}*x$Gp%Vp_@8kL2V+i@ArQښ5i{DRSh$y -,pR17w_$wvi f$wg#U j$XwPU uhovv8vt.xz:yjDR<z`GKHu!U]wFyh7pa?^[%p gpYx\u0^$#n  M6qۍ`%R$`-q&w YOxi0Rf=o_TMVTdt+hF?g{Ԅ?,/jXkGu| g !dJDz9n-U*itLxwgg{w]a a Y{_q*Qatibok{ِIvٓL,wh95 $kwOnd&W w4ze@]UvnO-~quQ e5MWa|R~iwHH&uJdfl6hiV(%r{WYa^}p@Wwr.u`mZVpwiUm$R{UVGrSlW L_m%Zkl_%[dEMj h no\Zg_Hվknf5vlx3zj nf 4jnT YW`Fc9<sx Im~!\cmlY<fTncXD>h .kB Sz)DڪgV,wWw%2GWnj `sr5.w_q6!x\he` $WNtWPs{SQwd͡ 9iL=}vQqjEYFj3VfkpV qtM{`i~ZwjƗ ֌,jƘK*qy=iE4tHQi .e^;y~}deo^5OjmX,VRbXLl$Lp(tqOXHfK#u#W#aI mJq25io6Z s/<.s< pHN{3{m Eh  nh! $Mc`'h\PxdoMP`c  N\mT\ R'x[.`GcSfXo6kqYh jϽl69vFe NAiwl{n1gڤp4ULb/q'Rjhdґ2TizOu3vnVjKn)  n\Ub^Y9w4`./Eswv'hGUl> lO0*'l3V#d]kvVtjkqpWfbH`l{igHjI"*h.c<fTwz=n69 pU Oj 3 kl[ VPxoJ!e XޙTBz :LVon wMfgPBN`FF#=_ w N` D ]Vry'f7E\xPk:( ^^ U/wY4f`MPSss:FrwZynjf vj#3w 9YzV3Nr^J |hl{  ac0z`~.wd U+v Xxqfgp mX6rRkotcv˒r0Ex.`.ry.RiLETq@ba Vx+ dbA MyEJhx'VVs#m2kfw8]t8!ͥgf6c@e]]jj BHo[hy%yJ3wb#Jnn,W ^m%Uzs&JemلU=o3<PdvVTWrK U>xsEWQNjoҳ7&eiTTcE^v)f\.l i_RpqaWEdWRqmWXe7xc_\gww< {)SxC=Sx &a`sVMZz[ժ\ hjwmwh hLo'گnz+#jMHP_HNvq>Mn fNv hڈd[߁VJs#WO{/o#T9^,\rftYNd%(W%J[${]-y+W&uq2[>`igHʫjc?f73xcqT[g' #{dz oFvA#ZiCKfD ˺se[w:zRPf5k Njhq &>Pqg&@xlf<atarOgJWB-vt$j\jh.? X>z+\-m]jI^[1gp9iN_`WvkҐeEj G?qg{x_>W JMzJx*Lfu Z=x]xd)MRd+c\ IfLcb_S,0X=n\;l_YdY+fՁx[۪j H! e8bؒpM^XrYLxQ`x/o!l@Xi ɿSa; VdFcc1md&no)5>b "Mxa1gh qDxvkD $zKHmL3Hk؋MPj,؍W"Ji"eYQ~ _8%Vsb4;a_ P96b%RZ$b6yWCcx#7ט\/k.LsE_-Ȗ_J۽l\N^ ..^s۾ yr^]b[h~x5^|+ݴ1axNvL wLGvxVr`:͓uu"Зh+],a&Ǯ>i\Qn`T`iB'hXgSlc+CLB7eVWbaf}nmi8UumVAvdpW jCsF`De) @mhN,aoJ_ikwiLtk v%Lra"U& z:x2C[qg BR)kb4FeBv m mzګb HcYqvnti9lypwfTf {j.d7?c$ VJy$% يua Z? x 3V5VgZr i ]kFh9uL=qghi{W(&_k FiMuPVwHFAs6MMlv8X?Fr]goUrxԏ rE2<mGx4oH ՏbsqJWRm!28lL]~ty Pxf McZbsc_בY4h6vcdWW"fLr  rz)9v3 ssvMomG\` )H"k@7(p=^={Sd1I2f|_5wVLYh|׏sExFmsl`Hj?IL]n 1 >޵qW\`nh7Il\ U^ rsVybnp;|",n'J.x' Kb)uJelt yo(pm\;pg- p7Xmf ocwSi3RkjaʿEt Fsp<]l"iʅy[yxj` xrCdAtn~z#i\{4JhRz2keI_w@[iD,0yBm\kki<uyE0:bV8rI*lHs-NQm5n1Цd mT4a /y$<6uJJ$_ vO 1;K2KsQw2e0[SiJcc?s6Tfj+Nd -c\hSfX z_[vV'aSBW(Hj0  %WEwB [PZk HըxjzS }pS J.ia kAKRxf Qa)FRz d+v  ڃob'Q x|VpyFM^׈vTuWcU aW Phu^$X t cQxp d XjW^n< Gkcrk.i3EeP/ciNbm`@{O Vd4vpm {*z7za_p{ { ix}WKJ|m9HL{ ٵRf.9dUmqE.qrX:mYbs%Jn{# :bTwrFdCr~l F<UbVlrO\"mEuӳ?0`94F$yS1l(O@m$VXl]:K?w $YkhBU!rWoR}hRt Q7f39 ! YBGfo_W@L3v4fN^TgO`kTp/PZ` y :Y#pLhVtwLimT]a w]_%J_F^Wd cXeVc3El>I*h fGaCEGi}k TR1c-UJbY^ ]cm VKa4_W {KNwVZylF wq&TddvXSBakbSJat?&ox9gMp;'լ_WVI e#'grb(` mw\ rD 5;X3ub]hsVVm _Vf Ts(m ;`{oN-`JZAynv F{"9imK_>'{lq \QM{[ Sx{qѝ\pDi;GcQ HK/d` ItMLkh" P&sf y JfDGtcMriLTg} blWY 9wKm_ b^A?L\-yKdFf%qck,rJM6.^DT$dw]|b 1i1( Z{<B RlJrKzn q32^(`pzu2{x.hiJ"je;! )vTNr-^ he(ww%^f7rnr]~>tmJ.i%l=?f ek/'iGg1΋gw/O}?i_J(XhQub_Ok )<rb *Qd2_ tk+vӵsbW=yothL.rKjytwvBȏhX_=iފDw,0hrI=h5m ruPWtSqg%/ 5ЙdWOmt PZ{$iSIupX` HajCs_7aIsgGwXLi2yEvlV aV_ iF !WWu1>!MgxNakfe"Yvw?:hRm"X^tV/ p LhcY#j$NUpmP kP_2E_y73&HgWjd0cUWOo &a0 Rf6haivFuM> ?r?6dUKQoI X~cvReiO2Ov{Tu5UP|`9Pf]xV  =SaGT4Jlj'WMvp?  Eq:͜wQ(bH~OTbf ɖi?^Eo]d  9s~E Ur:J?zbFQiC`jPgD^ `v Spbb4_Ƴ"FgClcDKqbdPcCB<[ww &uGE[d Vx m-`LN!_vi2tcw<z^w݀fPYr'y>Q"]?jr r IvyK0z "c |XvEdvrߗ ʜeuߘ JtQyT'6Rg*[ h#͕Fxeb [qp_Xrbi*o QfshSxLvp;;}!ai+ Sk*\d^ Rqҵ\sY| y < @xV{ m="-cQ$Fv>=WEWo gV` wniVj{AQ HhPr` p-Z[mqr؄WdTsz\~UHkWzRd)xi8`OqGhBNp˰MIc @d5 fG]jH`$[Ud:Q/p(:o f:] ntA$cCiF =nMmpQ]n hYeRt2 jF)_3NdNbEa4 Fo Tx{usf݋]j] \cNDTpJ@gQ&hTQ^OxJh@LvhLnVhTMvp֌1^a ܴz/e6 8x!Pm!QXq"C{AVFzAdJkmyj`aO2ds4k A"f] _}*W:Hlk[wdL;|aV` q+َkOs4O_' Vw `XRlx] UhV6_O|k-wEeVZ0nwLzq1adEg de=!%k  2NF`2s[t@FOi zC:L2vH`b!y"w!!fz& Yi qtOHE@mQ :HGBi <p)\egޱ[ḟVO?mIzXdV_  ]^fxIe RwIh{ whpsx+Zl' vm1-\0gvev _nv? #[{Pc  !Fg7:ađWQol;UM z:VMsmSPv1ϳVdyGhbD Ritg Zpju@Il-et\SKx B#v4%VJz+ y[4)WU0ms#^& uxWnxFHWWzlq d\P4i?&.`^&\ unҘP^SҚ;cԘwoGs׳MtK rNy1Kn9Vu96(ygL" Dm`:VSjh 'aZ0m Oj{7Nζe?xypd'ȟUcRKr%`ޫ^zwr w .uH)С?l- :sV JyKaHz\]{VYwhfbL f ;iVJ$weٚS:q]F@r ʸj[g9se  C}LbV+mpa7 dW _PNr(htR(e/J_XT^`pYlGHp4QrW*UdonSti/UzP&xO_&yhRz2X4U:guYqX5Qhvwo!nhSiT*^n eӱ\k9WVh (tQ6;su x=W~i. 0lu huѵ-[^Q nzZmtcH_9 6ulV3n2H#w}2Rxz´LN7rrD'I{HlӮ|1jjw1L`H"cF{wx"df dH$d ]m_ڽhEc Ebuo"`D{VjTpldbjTf p2q'%VR+&c%·KhO%"L nIwpt]tz0x ECuh-itj'ln*X(s53<o)7׆{*Vcq)8]f% aVvlq`9Tug%f1wY=gWq_fwv Qs dV\\^JFi4+ kuVH5pzZ[m@tc?=Ut`=ط}g=(m()uXWFlg%Pb?_vMd,Ez3nԌLwCYSb2H~4c\Ub*Y3b5hH4b;D[5ejEeuVv1[Jz&n+J\!coX4ME#e=Hi^qqvRzow{q/jǞaRk *RolhMap=)h||*sKY*k Vm^pBdn ?WzX)Rmie[,7y( :qX0s<тGR`'7uqJcrJhoewL ]Їx b5r|aPS]ZUysTwdg|<9iEvg[ bȰc {B{m*SYcpB 4z<>tvwT]wl Sx/XEHzWvN]z!aU ^&'LJ-gi!uhCι_eNOf4k>  <Yi,!<XDw0OE>/wP"w Yer_Q!*4mFdEJJnA#7^gB_FfiXe  yu+Pjx ;0m ?W[N[cL[iaGMqn*@xhPkCkHf3_dt  HXh Ӏ1cuKk0bAZs)ycߢFT<zgߥVWVoz;RGLq'Hy.k@xeSp'h<Fb0JscלCh[emwHe-d  Mnli X lkze> [o r*Qa m ZsQhGll1lo Rd  -m-E;i/!y!GbAKpc'TXk0HceXefqbs\tiYefؒ5cT`.Z~rOٺ I5f"Hr]!yJ- Qv5VQfQ%A`\6kd$mFWLys wС*Z,ar W<pqVmP1b_V<j.<ڀ^( ch nwL<8qjTOe0WrqZh2_r kKmej> p=\HrB cS]j'C_.;9IbGReUtyPinr.2 1n SU/kkf{I_VKzqwWmxjs iuU8l18Tf p@X`{i VSbN.jwk@wp!kaدb8iQ[bf nXyR NInKi74a*ަrF\N,v?Zc24rĽ}shpG6b (Ҹ}4sM 'Uw]_KH2l)Y|b ww`x `YAozoeCohQ| xk \%j!"klx:! KKxw_n2\8tc.\,pn pSDb qifigW b?cR kAC`ހG!l չXh8o-NzjF*dC\<oUcHne!k=# ỷq[tD̋R`o/wWvmDdh mB2\Du3aXd2ev y+v^M(lm: Oc-<URFtb#p!+P_uVU"z4t=3wg{+#llqh#mnu XsҸh |OrVI__UkQcmJhRC+f=efc!Xo%X  wp0btuZy&Y1$ox.j}4ݎj 2WB{]^94EXp} ~gxrRsUVMdw_WYguqwjL^=s{~ BGSBuL_X-_``^AV?yXhJr" sy5]O*mzf8mhOfokn_  ψUAkm Gu! UBo Pp VZnSs UECa,6Om7 RjRG qk V:l/4 ^{F ,_l @R_aDwE bxd0L$n8Xlr%{GdTu r7 mfk%WTu`-  kmz)^C4F't^WKc[7}h,x>Gx dYKX`#Mr<cIsa -ul"=eEd3 #lsWjh Z^LVVj 5cisTfa]b+F)pQiJZt+mA\+Dq@9_RY^RˏF!` <"qGyZ & !r*" g" eD\tWrfeFsH6VrVS{cALDl0Qn?*VuE jy 1(GBz`&ciCoPVlM!-X9?gE#  _i0E7el-vC6dyT`wt[pS_uPuZ%B}U^WGa^EJ4rF&f_ZVHnyIדa:ÏnW[ q J^jifNpcN  i  R\*uYk(ʾF[NdVRW_zQoK\"isasF o o`|WkHk-  dk*7XlbWY w&OLZw?L^e0lwK _ ںpeiu#4VuyhvRbRgN[ys^Opua dP<Qp9]Owם:Ld}^Wg!EBsJE(_ #Xx;ٺ Ihc>i`OAaDZ/c $ IRu!x ia]#XvCPuHsoh4NN_~uIAz(wy9u zna PvI`Bdn`;{pHlN-yYNWOx f:;h b$E^NnQ =Tgp# VM4p:>^a\h-_*,uHs vIi0A oއ u _hUaKI mWtg!"{ z}ml'E^t_VI`_mu [Lbr>m[eTns"V:zf.:`TVnkzPxlB2 3x΍hm ͸}Դfcwy1X<h"gr5 MxyGQ'SggIl$K 'Qv Y~ux ilcgf.&6Feg+I_Mf5Ӗ7s i Clb NFВwg FW#KV_(R7_tRHxmXM6Wy;_ {ySo`acwyac7Uio<OCK lYvhx thdjPj,z%`{xpVV`nXL+v:LݻEkpSb G AkwĨ`Bde"{nbO^x GxiM z_mAOUNta4 y@`W4`eUMm!4k_8gc"4=^^ qZJn^j؉\zEgQ hE`tUR}_vG2v"u>#`Ąk=rgXcl Z VgIe Pzaj /M!ikhNBfhW[3oVUy! <RF l Nb9~ʎ4z9&cbL9Zl' +NrbĤ|vWtryilTYq.]yMAng?32^Ёo42w# Ch'Ou{Ln{iUG?`7Qn-y̭Hh]$rHxUMt XEUt'y$X(R6vKv_ÿi vVvu6xg^@hExVex{ =V` ]p*"o` IRfmkKIam/LIbhSii#DIce}v%E}  lhK XnϘp >b >sixeLrɘN rgɜxw*SI-xLwcPxiGF e<=<t1a5>mw: TM5nbxdgi$tdK%UtIK} ` W LEb}Lz gBy>x.n*(cV,8va.,wCj8|tAp~9(g; 4uB(f1Gu_ hF[fYeTF]othSUfWXg }]hc JI`=%zEԲ]ce&=YvStUy p +jk V.ee 'R#w2|JLf8d]qIN^pCJVgD' Wg%Vd@q&{m"~Vn^ݣudDځmcRPLe37 qc8VsX&VV3Sw9sz MPyfidSfi+Gxc; sbi9^wIgg CkmZ=mJj<sfP^f|r Y 3io{5XPb7M 8gwTr.SZmCI"^q^=w>Cpl:W4uzJ{hG#Pr>-ujPmFwy5B rc]9vmڃc;~ y]}UjstmhGZ(ughHGlES]c%7$r7%VGx(}WYc!NVl nt[ya nchnPY jwwaXiax.!Y]f\[TYn%QxHj1Voe^(zJwGxΠa |,$kS*du0OǠtnW 8qSǥt5 j|+Q[`#W'O{lAAiz'wpiG_PksWMTi :\aiXHM<r^-o{Gmc!1b0 b'Wiy.%[)k׀o jzTuUMq Kb _#F{ ZreQ c6O `1H}[Agm$ZmHgc01Erhqa2#U[^e[Лd W3r6ڠ=!^ڣa+foh.T(>l8j?h$bCPd:q$*Ku>߽mk6WK~g>SO8x%NxG`TYjG   h) rqh_ /c)iJ_|ik YQ0k3Rr{Zne?5ݜxg`Z*j@yVK3bMP>v9S}`Sud4Jx)qi^Q~r~n`mv O bl$ -sS1kfS2lh/+KDf)U&bXB j`_;͙Lf^W2iz|bأ[FqئN b fwIvx^Lajtq|?d'ƅWI'qc}Nl9]/pUzfЯ#jKt&Hkq \^ v^zRi6 UNkYxq xs6$E~7qyySVtn ̢xa UV6q O o _'kxw bovo9Ws*۾i#Tcx$" {`R$l VVfj'i'Sca delvi_z$V }nWJ"p h zVc9TU)rKVar0N!\^(`׾UqJyC}sf\oLZNkk6o|Vxn'WMuj5|;y`vny<Pr`^sTWYRo ;_Y^=hW` j7Əx 5h&p%S^bhf2G8b|Sib G:pfWB=ouvLUHmYN8lL@ l VcDN,WcV: tWxc*PntRyt NK#>huh Yv+:h\l)  [En2 n;rWgPPwx ik#CC/7+89S-5-#+O/.Υ$VD&&72//=)E%;':1%*%ơ' "E+&:WB 7 .2x4V(V.'o:&,U-eGn#د"M[0)+-L9-9\6$l9w$tq)$[&}RX܆,s&cJ3_92)Є*=-*k^*xط"*t%"&"*6L*xJ_ܗ66D68(@iw/%"+X*%9״k7{97D($_$0}0-Uv5+(hη/g6> /g /g/c/gX9]/g#/g%7/g7/g/g/g&2r(]5L$צ+ue%."">4ϬP3k,%)@3T(IG)T1!X0y!/&T#*5's>8CL:9:9:9)}BE_*B0yB6>_bB!#yB"| B!6B"EB0qA->q\L43X-86|>a45$|*f&g¶ # ${-91| )):/(n2w/6'o*n y%74Iw*a*2-4h9S3J2/ 43,E?3 /\.k(88%<GHM)8y 1h8*{!2%Z.&y0ו%1n!<</1z}q!E&*M+>E)8<9D2% %  sA%B=MGv!g ';-\311AN%tA*gNV-)? 4(6y?O2{-+t\g*2!n-%,.)7t* ?&/Bj7P@_3Bk/13n Q4ZJ;05m92Z-,#_. +0&(]4o4 $?v5 0EI z,7* .w67MJ78 hIs;75|&`5 8-+1DP1.8HQL6$,84<'+$!-''*_';N(4'EUHl(^'"FO59/9p"<L4M09ata",66 a0#Hq_/a0Kata0K7"a_ َag%U9*Ti{%/QϚ/dzS'$7$ EJD DQ=6, 0j0-XL-r)1#%+5Po4=4 O+ 4;*'7e!(_u*%Ld8r9&+,6T849-"@2G#3.# 7Q88d'56 7= .A~!r}&N*'',JU6*/|7LD7(K!-$Ň2j447!A4cV0B$̨-̨ ̨̨,tφt̨6f̨3+̨S̨,̨̨_̨3/̨_6Ix̨S'F̨Y5j%_;8%/n,>;[/39*N d%*Ki3w 8_{35%>!~5P{2D+ @2nv' 3*n ,ZR!' D0,:o  Ġ2(7+g+m  0+(0"% )+%-85t!q=1?I$#B 28(+:S3N#+?2/"3r+ASR##v"v;6"4å+DY(#&Ԅ+f 3ߜ&`(.ݰ*:.!!04} [#E9N4:p$01,.IʀJІ)(733_%/( d9_N, aW1X5M;@p%L/F,!:!=/%"<"B@@9O7 ?+(G?0;D#+IT ?5>l"+)(85a9,$#+1*9HE.)-wC"A63tZa"o.t!N(@0ѣ#:s"L6#>l26"P7Bl, . '/+5 : i~*%''9,9sh7 #'6U05!?>+4/4*87Vgu@- x9  4hN04-H&Iy*5Ý0-~ݟ9:5s(5| !y#zb-]1q"C*N'A%-i 0 _# vIN? 4S 6'q# $Kif5 $i": t˖.(":!K$Wi&68'3KeSq,+ϒ#! Ni&7G2uq#',6p"C588Q6 %%)'„.7>-8r  B4&.98;٪5ڣ٪*/٪vX٪%G٪(*٪"@κ٪٪%0٪v7.s"PB9)$!@7 8e4=ٗD61Zm$> f.@@x!<IJ!@ȨW3ȩ_3«]fgikhi$z|FkFnklCʆ. K KK 45W't9ƪLHu78:J}lЌ?-?.xyH?!5#)B-C?1,   VvDDDD9:;Ĝɗ33d53fGtEjkef'ɢ+&,8i7o8k&u~nqsvwϓu,ǖ>;Ǘ><^PQ'Y|J&L(b#,,?>@>P(V>@/ C\]^v1"#'O [ {DFGş.Huv3w5y1%6VȦv^7ww_7y`7zzbI#L $N %O&P/%%%J\ǵǶH+,+4Ä-,6Å1Æ2j+I=Ou; < WԬ"C&#C(%C+SYež1yC-tTvXw\yǾ$>{|p6+H  Cr$$7.70ItIuIv*@*Bͽ+.S?.UGG   N.eA/79;j!!!—׸˜׹4rǧFsIJ%mn;o\";]"<4"SFh'eLLLap( q( r( s(t(BC":<RVVŵ,To?./0egj),o0ÌpF1G2H4.  @!?DEEKN U3E<E>YEB66Ɋ8ɋ9 ×^Ø_:!H3jjuwK<z&186J+ Tt'&]9M^9OKK=KKKKceLj<d F{JKG}H~MNO`aS…T†1L2N-4TX?8\?<ST(7DSBȭg0 \2 `3 af4g7) !"z~O)E,HMNO JCDp8t8vJJTU3BPuXYE,)a*b0>K o.  1>C{]   |}BBCCĥC2?Vv$p6.a6: %E77IhkZ[\$Yh*<"=>*Begh~Ӏ=WS(+EG=H@st {}c ƕƛ00^acdghiƋcVY]###KJ6HO]iJL`kamN !̍$I$L{|6"߀!wHyH+,))ª!¬"­$®'%<{}~Lj*IɁғ(MQMVɕ;ɖ<12èчF)Féшêщëэ&ł ~*,ń X^-6.;D@WYGH '*wx}vt{|ǕW}!(4QF}]^_`aeʛ"4H݆44I݉=?@9:'e'''99LYPL`kpȻȼvŞ:wxM()26(]~c>-WV?Z0 ;FG)*ֈf.]֌@s!}ƿ3v3w3yr$3}7EȂ/k!N4 P4 Q41܏R4>c=F3FH"!X$[&9=A9BKVjdklm#(),'q.'s99WLQ?RB)K*L>>" 8EW:FZ;?-x-~-- ?   ×x>2vyBȚKȜLD{ |ېۑEJd 8Y%56JmJnrstBuD888>Ƙ9ƚ:Ɲ<*W+Y+A]`kbpnk?AB3Խ%,v&,w',y(,{>$   La11Ck2 o3 roďĐaɍڤ(D])D_m`tuwx 7@GI.1R%MJ!a|Lns**ˆn_`S;+z<+{=+|>+~Pg30n00pnBɬ z÷ٙøٛy6 7;=j$ džELFM L USHWY> b gh$#7lI;l]*ǨvZ8 :]ptefg  !*<_>f4/BBb+x  !A#B%C(J#&K#(L#,N#.hGnEcWIh## x6)wx)߆ߌMȍk;HvwF] ^ 2be35Ҝ/0A.   leZ"R\"ULuƑ4n689R}3s\]` Gz ~( ˣ˧(&ޓLȬ:ȮAL@=(y:*M]+M_Ć|vh#a.{ A!cQׄ3rkElE~(":4[;4]FF$ ) ';"'<Xݒ 9fYݓ 9kPApxĦ'ɡ!oq Ы-/3?Oef68HI?? ??] p q2!֔dfc!d!fghv4F8;=I/90;5&Fܙ8{J[bɹV"&e9ŨũK L ŪϹ^_dv>gC L!Q,>>fx|ǼղǽճǾյJ IKMuɀ  .4ÌÍÎDOPQ X\  [G%`ۙ۟)I+ ,%')**+2X =r =sxy J<9VWbI0+>> )-*/    $ &y" 8|~1CACCu3)4*5,|}ì 68'1V ŃCXXkwE $`!$a6 4%  5P7HIII~4'#p*_Ƣ& OD$E%F(M@ oďpĐsth;N|A8)Q]:Y!Z%KFJ2Nvw3"\4"_5"`6RNF~8''99]^<>_`Ɏ&e(2Üu>:c?:f]!Kx"LyQ-R-??? :;<: é.,}@G~@Hn@eAfCin3?ǍEfEgWOɂ33E;1klm o"88K"K$O'?'Dȳq89qŔKŕKlmŖKŗKYk&[}~'e/,RX(>L®°$ u\?Z{ru7Z}2<~2?2AƳDuz ` {^24>5A?g@l%+0J9D]^Γ&O&R&S8 8G H IJJĭ{MĮ|į}glD+E+/2458wy,. 6 ,;{|>h>l>n  Ub1\d1^m.C +(/)0 0 2”ǚ–ǝGIph\D* k m_D.ijY/:$N7x9IS ͋ ͓7ɽ%ɿ)[Ɛx** *<79<<RSI^'J_)(Ӟ)Ӡ |} ` b<0 0A6B8¹º» E J K>ƽ,ą1PlɆ6x#HbHeHj$t&zߡ6I?@+oOj@;}D>ǃ[DŽ]EB ҾH*l]0 ! j nUXYAAɞɟɠ0<>ؓIBv,ň"1f2k70IJK'˾555H$H&H(DEVfǙRǚT;/Myr\]^ѵw)jѺm;Q>N R@SAN 4   A...@@@xz{  KW Q/l/n/pŧ}6~7Ł8Ņ>4seA?4uf/1 ;5"3ݶjlGFZ[''KxKM:#LLn`ab ȆȈȉYM(ZM*[M+]M/:KF1H7PJRL(Z?@&' Ykֲ֮3@4@_\!(U3ƆEƈEHJ-NJMKO'!(!Uܳuwx&r90\_KzKȥȦ79W'99lL.QTDEF=m>q,M2N3    z-{-??% Ƥù12a22bGmDHs_qnpqrr  "3I#3J/Ep0Er@+Ɋ&8M8Okm ghĖ8ė8/\Crr++b>"(>3h & ) ,,>9 Q+ J½¿yՁzՃY [ V2LFDYGDps8 %%'7a(7b)7eIWIsy988KþrDΝO,RX^$++==; 0ǯC?4@6B:@ umn ٻÀÁ'CE:F=HsH$77źŻ'J͘**{}lm#-5JO*   0ZӤ[ӧB0B1GJqs00ȖBvwPEc#A=zG;GGG<=#}#6HBHv)$f;Ph;Ui;WƓMRNZX?;[^X8)9)YZ :)\#d(;e*;.3 k  /*/+/-ȴ G4H5I:J<j/k/0dĊM؛Z\]1"#G%ƴ(EI:}S[LLLrab$(%(&('(K./; 0; 1;L4>MP }8.;,@[-@]0@^ 4ɨnɩqyO! 3xעzף637486BA6"$4~$4F >cH'Q99'u*x“•ǣuo(6AmM8-S:?qLPVXtɼ-ɾ-@](@ n.6S  ų3el'jA!/!0kC!7%3&3'3E=V>X?[r&dt&kOQ{<ɇ'99H4K5Ktb,Nc,Oe,Wf,X]abcd+/j{r0l|t59:??A? ?$?%9_^D?ǂ_D@Džk/1ot   ?MB E@NAPCTDU\2PD  z$%%%7hIII./=ñ&8[8^_;ʼn`@t+a'=Li M>/-.1/uC_wCd LclTNfm%n'C!%?7$ 6I&I<U*a7<8<b9<:<=< l45(j=F` z $WBcjdkȇ tuƀwƈ90FC_EaFOBQCSF]A "N#$%6 'o3p7*W+Xs^6dHHHɶmƇ_)~NHWu*6M@tRLSNTOu!yz)/?;]9(*@ ıiĵXɒ/6#!$!'}4D 'o(sBʅDʊ4uG1G3GG4)S9:<lmǑxLEyLG-03#$X(Qq:r:a LbcCz&g3-#'"?Lý.Hȸ@ABŚtśuŜq^+3_- . /W 2E_~SU! !!!n)3*3q$N&QFb?{AB8A3ƹpƺrƻtƼu g9h9K-{78#9$D,8E,IJ>L="-cdՓ?&S TÀ#2^2cKDLDMD$ƀ<=6AȨ33?x33E3`NO8 fJWgJXiJ[raȓ)Ȕ*ȕ.&q-α&tšw.JbFG_+=5TW~*,a,c g{v1zw1}ƔDL$C>W WVW[ _jڌkڎ 2. $a!$7-,7/-;͹17ZF[GċJ #jbke[Z[p+lӿ= 1v0XZx0[pW  NJNj14191:Jb+o#.t/v2:H?i)$$$$ɧ6õu 5)r^s`Ŏ<\HeI@[B\C]P*QRS*<<,xzX/Y/AqAtAxǤ4c 6i5yBw x [9ƍ;ƐJCLF\#^#6HBHDsŰűŲz((;%kmDMnEMlymz$/u1 O .}~MNOP| {} }k׷Ó/ȊuAadCF":V4X4^ F*R FF,d`52GbGcGf:v;yh`ˎaː(b˕'BE4'N(O(2.:MOXiMG&Zmxс@  v<°7:&ļ!G(Ŀā!IgiEEoQvpR{ !4Kvʍ'"xʑ''ƫwƬyƭz9<K>KKe=f>o^z'{'|'}'z6bEЙ2-?7WS-oEpFqIġrKsLĢ5ɘ 7ɚ;ɛ6; _< bH2g!-/ 8  3j3k0EVɫXɭ8s8w8yJJXŽ`&89)~[KH\KI*cM~,,>F>I)>J0^1b2e3,,]J^MI1šD |-}3a e2j2m2nD C2E%F%G%Kg7~i7ۄrH%stJeJf-.Èlm+2+3+6>r?tD$<&(=fa ! " # $ԵUx Ya{|~ r/s2-./:112 " 6 6!6H{/$ã7:ȟȠ"!"V*Hg?DEDBEB lc4j #g#$+5H@6^M'N*9:6ē)I;tTeocY|e`8%)9V< ( +AjZ tZv\/ŠRSBmCnG(#5555TGķIĸɭ(h(kT:}z>H(HY;-I[ M : < = .Z.[hjl. z™T›Vǩ"u/ Ǫ%v/ ǭ'9:=pA=^z`}!UVXF-?F0AV"C"D"I4>4FF%&xv#'pW9Z9UŶL WF:Ipa:Jqcre:N-L/L04J6-w uwVÔWÙAJPW"ÙQÚR{ .| lEInEOLtB!Q!R4i33uwyG&>8?8'-'0'1K9[5HI,u,x)>*>“—cȯȰ4ō;ŏ=Ő>df2#%-QWTCD2H2.EQWU%777J#5`a&?v8ZJv\JGHHK ,#,$,',(qu\kk yD;Ĩ1HC@ w xijsNJtǍ91:1 RD0MD2PD9;<;<Aa$$I:^mȋ%Sw#x$y DIEIjvkw W`Yd  T< !U<-J2K3u2ӋӍ=i  JɺKOW)0ujBkBƌ$ƍ%3 +NUY1[C9bpdg:HSWX=¯$Q̙ǿ߇6ߊ&H'H(H)H*HĀɂ<mɃ@))1;b.3;SI Ҡx =HiAkABlA E G+YŮZŲ[ų~qx=v>wGIKMGyG{ lcˡe˦f˨#pn5ޒəH 2îJK(:):*:ŅM\.ņM^Zc]fH/12Fї)V;~;I;KMM$& eiAbQ@eR@vǘ 34)(/WdAveAwhJ"K"hM"4^4_4b4c(w%%&'(""ʤʨQ4ݔݕR4ORȾMoHrsx'z'ŠXŢZz4{5 9 :37z9|bX;~XЪYЬ[б':  1M3M- .!/h3j-cI F֒.jÇ@|É@}Ê@ȅSą3!TćUĉ@/A3A4IEHKE#%'/!!ܜ4F:/ceY&XH9$ Kaqmtp,/Ƃ ƃ 00Ƅ϶Ϸ'&(D9!LLJKMT ,>mhniNomմȡ-3S  ¢ ) /N: Y  H 3.ۚۛ۝EXw{x|sv8;8=}JuƟ&~JzƠ)J{-/CQ[\c&d&KqIK4567`)*c6+7+8+%>x&>}P,&+đ Ē Ĕɏ31*pACabd^v !/20ڶ!"|OO7MI8:IuǎT7J,J-kT\Rw@ABCSx΅i+j+ l+ = 6u=#CD !"#p+++FIKH ùTúWU9B:B@lTٟCCC"#ǓǫqǬr89:<$<7h|j}qIE~tu  #{$a*b*<'?<+@Ki36c<oEKXY/ŷӕ/ŸӖD:Eos0{01B2B'K.0<yƯ55bdfGc !67npȎzȏ}ȐJ) m̢6`M1))3; ;yS nm/Үүn/fghO $T]^_`///UA46a8"^"b؆!F"ȱ5NGCGG¼h¾{ˮ-(-|˳wLHJxLMFGhJ((Vnp.(Ѧ.)Ʊ.Ʋ7CR$s.t.u.w.@ @€XY‚Z+?,@HI׏אK33E %'Z"["!4mF%Eħ1yĩ3{|ɣ'AAݨBݪJKr {jZ |lb41'3'5),/=:0Lyикмо?W?X?Y_q^z{}Ǜle[2!j ~֚֜L1=*,-!}~3EEEEXEGY&L&M&NܤLJMJMŬNmo=,"9-f7h Ͻ',77,98,:>kEno[]^3u ,2Ïo1p1վտR D+D-T^W_YI  J 72222-.Ldeh%kj%s]w8;=z8XY,+S==#Qd+++Aí-~ï5Y1ŇY[\CQ^_m|NJFACp Sڹ|6}6~6II,-qrƨ?ƩD?7W7YBIgIiIh<i=LN1tu<=)*+3klW+MȽ=-PQ [y  70@ĘBw8ęBx:<TZ 1\ %{"%'5+ٯCFG"T[\_$!ȃ6{NȄ6}U?V\@W)iJIN  :~<>n* <8<:XZĿ"& TAYZ 'W)ZG/.25PQT ;<  "5 5  GD6:suv¡5£5ǰ}GDz dz lABEv(w(x(   )M)Z2G4I Gv;D;EyMM \jl.,.^_`a] ěĜo/"p/#LGMHNJYx98!Y"l\[]`'<(>)B@Ý'ß'à'#S>V#?'?Dj pørû.3@N @PtQuThlmkmK] L<3G?3OEoEt$ `!!sɋɎ!x!zT38IF;K+m(+^a0U{OP9~Q_KK%&l^579;(=-»i-Gk-Jl-L?fTU|Wy cJ )2J5DA*, hiQSEV_`HJKx%!8L8 İJ?IJJAONnpsFi zΚ&[{Ξ|Ο}Π &^8;J>J79C vD#=@=?@o,E+1fkC<Z9;2 ?AB& COǩQǪ:r<tz2D3tD7^_ o$$G77I^a o #͙͛͡:%}S7T7U7g B V4  D+V½=¿== RćkVBDBgGU ULMWr1#%CV&CX'CY~W6E6GD&p}qm.n/$u $v̶̹ $}FIGIJI3:=IYJ[LD)4J5K^;H_;#$&I<zɢ   ?Aò/ó/KbA]aAkmŊNa90Jؙؚ؜:0NBNr&5e(=$|4ǜ#0޲6YiQloqfo(q(U; W;M6MB{d| )z;;I  9:;.Njū%9 Y: [; ^< `VABCנA   )69mIpLFFGv5w5ݾx5twyưeGLUv::MOqAW[5d---`@a@b@ /013  aq b eV {|Ɖֺ:.@@@LI+ĢV!1ģW!5ħī3`bX[!t4;ȧF\;Z['z'} 9;"9>nn"(#)*?F@I^ L8^ L; M|??!?#:s;ƦgƧk456`j?k?-s04vv x < F> G4iz{AD-w}~۾ۿEz6 j&Ěɚk&l&ěɞɓ8Yɔ8_0DsEis)&8dfh,ψϊό>)>*R S Ir|,,,qsǒFǔJWXZ1tCuC9;=# $ *,. DtDuɱ$ɲ*ȝM%-ÿ7j7kF%%%rR8S8YJK[JL}aΧ"+" Ω,=C.=EabcDZ+C=GglCDmp (ԛÃ0*ԟD81n1p1q1r i4k56 9mMǶǸż|HŽ)*efr$s$&7'(PQB*2ͫͰ%?'BME~Foq !"j)S6Nƕ H~H\]=^>I)x{nop/4/7čvĎx~N$BlAA!q" t[\,"~-"آؤ4G%#J;# V5rX5uzGq{G|G/(1*6234N(SO(UP(V6:QLg:{i(9=? KM.Eıijɪ@bɫ@cP~ R{C|D}Fuw x 8A:Aya!33CF/2ǥGq T UVlo9{K|K}KPR  ;(=6((HK L_-e?|?~?!TTŴÃ$-%-'f@>2?5@7*<+>,@ynB @E0DE5cv!RTSTUɈh+ɉl/2Õ878gi''PS,K-K/2'3(4)27,^>>pqt<`xy|a{b~dž-LJ-?,ICEH \/DL0DM{;~<' ]`2*2s@57Ȫ%77-.ŋeJ 7bvxL&(M&)DJH 5+i+k+m+n+o=r,zY,ƮUnpTV qC#CmD/O 35968D%TGUH$~>I!?I#@-ģTc%8d%:>b7xu_ImIJ)*+9*<<< !Yy+-re=Nf=Pg=R  ;,</b0bT _bOP R ƎƑ,M.NrC,NOU#_Ɗa$=}́.6/606JH{|}X%Z')));-uv02:>+UUĺKU*ĻLV.n-mO՛o-p%?A  @ ËC ÍÎ/I2lDC BȴȸlۅuE?vE@Șn/01OZQ\%R`)y8(,d stb9ν@4B5CsUbcyƖƗz%԰(Ա,n_fghi ‰ŠMC$[012"aČ5ɌI{&'%&= 7\77W+A_b*= ,/vKVLWz=g0h2i3MQ9=Rd09_NBc d ef1 p2 rْC~$$$$D6]E6_DG6gQBöHtTvW9$:$œghDI0 d j k< < <kn Rg[ %&Ǧ< 7(nz|//yB< I3ؼB`##ƜI5GGU]MO[GHz{f./ǍB̎C̑(w$012Q)S)~ ÔÖȌ/vҍwҎxҏyҒAhrtZ./0/1A.5w"G4FFFijtch58XYFGkGGlIGrQR5އL/1?5C(:tMT>x±.².´.aъbьcюdѐ·.@/uw+T㥠n,q/u1E.de@TG$)!T{EEyxƯ!OFpgh~{'/"ʜ&݅'݈B9Z8D9FKFf'9VLWWLZ lo-=Р@Тu?Av?BĤɜ\ɝ^n-?h ?,0X  4 jևDDD&+3{y.c0ɹ&=^܉-8`܎aܐ.80818QeCD-&3KRKUx,%ɷϯɸϰ,*S>TT>V`1b3J5K7CI,ť~>Y[5f\Yի14: k'  !ǹDJ@{7ËIn^ _ b%V%X!D"Jp*=e=j=k|g;S1I*V+W+Z#u *o347TԾ1EC6FC;$n%o Uäå{$TȢ6~TŀŁUW%-A7AC7B<(*P*R*S*U_{E&[b\fX4ŹJFFFFlmIq1q2t'}u' 4L#L-M/{W|Y}]YM\;-$? <zÛ~qJ.rMsOMW@<`5X7Z8[7 8 3336EVEYE[}~{P!bnjEi!j"k#l'm( VLMQ&WK6E7J'8+f':j9hOFSőŒŸi¡.kUdViH zJ }FKNO2/!"22 DkDlDmZc}QEE b4c5d6a]^-2<·&H8Jm %&()FFĪIĬ,/}g>btu v   #%?C@C(AC n pr ǔ}X11``acD&lJo%$&$‘7 lICmIFs v[Ifg%_V́X͂IIIv 3|5~671k7k1 <ɻAƎ+BƏ+I=q=u4O P PQZY[Z2d0*$B#1$2 ;zƴ{1guCFvCGCIyz?w³µn¶¸#G6/6164NH]Ăobpcrgshtic$]f$^ߖS6HV8!"I# ) ) )9;;0125?mҭ*^i<}\ |ǀA`ǁCbO A AGG@Z3[701؁BqxtYw^5I5J5Q6G8G&) +˭i#}`L365:GTHU?:MjMk MnikmoTѧUѩ)aw;x;0* + , +q,r/v@@jkO; > @ APB/b?בyAzA   Uv " "24iȿFţ.Ť0Ŧ1 ʯʱʴݦ45ݧݩcG<]~^`(c: : 0Ls1Lv2Lwй(z(};?@AE  4Y5]W PBCCE.xM֝N֟&@'@)!"!>?PR09]C>[!4$ܦ 4&ܨܬ 4,vFIwFL5h6i8k*&Gk#O&TPKmQKnSKoTKp6 ''9L!L%z;_ȣ5,¥? ~ hUwxiVjXu-fս-;?[  3ñDDdfjn o ۦEcef&&nɁoɄ& EHK9J-]`<> *88KPRnr>4ĕb0e1f4\^ɑ`+,-f>"0«E#1y    2:wDz ‹ kUȇVȊWȋY7X!IUF"ITUDEWn7%7 7!7J5%scq}Εɮ=,=.=1ûWz ;>?ŘB=nS) K*L+V]]0ԍ~#$(_٬`ٮ.2>Ǚrfsi}~zeX}fZD$LIPIR}d͊f͍*"q' !#')" #$%G< H<pQuRxSy   jYk]3Ӝ"/B$B'z 0XB78#ƿ%ȑGȒGovpwKoLptzu{N#O#6;a6>6Hd9Hl9 ̫̬̯{;F|;IMMBNPRq/;; ;c(P^ƒ ;/Vҽ=/$XY+b\1c`, -  .#Ȳ؍ؐF4iF.Ĉ!ĉ%yz{!IGKGiXYޥ:tިQ)L*Lb|(!"Mt oxѷƒ@Q…@S.?= MJOM.. @ @ @@(c)d!tFF}()īɦ)C"LMN n,p2q54:5=>ʼݵ;9{=9}hkmn:6::L~’ ǝ-Fǟ-Kn?a?dFhJkWlxkMP4?7q')-/0 2lm63QR3QEůPScLg&Y#i&Z%&i8ܷܶ+- /&KwLM,C,F,GɄy>tɅq_girbscU,. ? `9?? < >   ya&ŝ n  = > ?222]D^D~%|;7?۳A۵I-}GHIgJ79:;<=ð^lo>>p?q@rC>#sF>%$%B 8:MOX[$w$~w6y>@ ,%!$H-%#I M  :;*w*x*|*}R<{||} 8w=+ĝ^Ğ_ğ`Ġa=8Z2_U40I0K6^a   km0,C9U6ٽ6678B(D+]PE,L$&$'Zj$-6K]6#HAfBg%&')t[\NNɳɴɵo\ƅ?B4I46¤"¦Ǵ5Ƿ5GPFgGig\5JGJw::n>oBpCb;Ocd;Sſ^Mr=OPs?u.8:z@)-.}@0:;=' ( ) Rĥ/,ALaAMl^!_!`!cd4<ɐF`,-fáB"s|_4`4a4!m$G%G&GU J$%.3?9A9L=N (DЂ:{GHJ:LǏtmǐ#$ -V0no ^"    B@Yry|Y3S3U3XJüE{ȵȷo <=rɗsəř!o3p3d*F CZ[\489#'K6K;=aω >Kq, + .Bd}~67+,7Ռ6-X?ssvaD{|Nț   P3ĶqE&]E(`E)I!~%GH?@8;JI=JPEzF|YZ\&e&f&h&i #JG,=IKLMNtJ!,P,Q,V[>>>4T =>7CprHJ MNǵǷb2ڀd2 e2 up<VX7"  hIiiIlb-"*(ͩ*ͭ+ͯ7;JJ+,NEQ**LM<</W_X`|} +Z"+`9W&X Y Z $x0(Q00B Z}V ^~WE1)F1*}G1.H10rsd#f#„elj6QH.0N6<7>I$*6E~S;UVW<>ɤɥC|ô/o<ŌFc <>#?$ fhPA U u xZ0S0UاةǞǠǡǢ1#ƂƆ2# 5s3547r0=s2t5@#86޼FfUY~(Zf[kMMnOPŭ)Ů);Wh#j'Ee.w*,:;<6^ k7_ m8b sqA  zŚ44TÐIiFÑMÒNjFNOSW?@AGWGY  )(*(:4g7$8+(defgM=X[}K<=>M1@L? m5{%i\4B*#=jJ2"8x5J5$,q6q!:#. .=]̼c=(X#̼ @5j̼(XG=.  (̼1;= ,̼-  k̼ =ͳ̼ @9=- =4W G3h<$MkFQhGVq* h9bD0! h@bK;b CJ6IR`*9u DE h66KGV J .06 }IrLHQ 5K=1d KJ}63!K0!V$Err6 pG6U=1dS/1dK?6^S6 )G.&;b (-A6 ROU .?6@K3! %*1/ 6/6<E?696 =E2%DVKG6v%:;EKHED6v* =6y.36JV7*h26G*g JE h4%;V+` GE<V:Ab>A1d/b D$M}TG.&oGE"=VOKD$M }2*;6@E82*k@VE%FV%B4msF+H4X3{%MB%F:#kË.͈&ѱ'A#5IO1v{6fe4p1$m%- oi)b$"Ir79L8 #}?"5''l }O [EyM9\ɦ\6g)_%M$N83̟r XE60C)fK2*90(Y(NF!z`)}!%5 9+5U(h% 3=>zœ1Y!/'k-X468/H*'Eih=*6A++Us,  kz(L5 R&<.G!8* %!-am'z -q2;|-M i-&D(/<No_*q/J8-O"K HI6ʗ3*;b (. \1$N#+`-;1LB0lz 1/emD.#e!()h7S#R25^774M<1 9+kۺ%s5S,$Ʃ9x%=4/ ){+ /&p618i &68$ 0F6(1"d1 2.3,([<,*,;x /H0u*25" "\&59*-3.1F % 2$8'+s1^&JJ 54@& C5 %3[%LC2r7,/M>0"q/I'7%>7<m[EmP.%YZ7D%B0Zi-%&@\i1*fXlo0Yi1%^ Zn0G Yl&*l$kXkD2)Yqh/bYep-q$`Z6/ ?[6+%[@j,8#YiX-Zn&.2[o0Xh/(Z5j+Ykd/.[k'$([You/&$Yj-Q-zZGk"D[j ,.t[xo[o$)<YmO(OZdo*tR\i($%YPn[*_Zk|01'YiM&9!\#l%<0rZ(n-,*$YGm"!\6$5(%Ym/3'Xk7(Zon&\Eov*q."[o!a6Zmj,)Y+m/hc3V[H6j/0Y7-31.eZo 3!',\k@!<!8*Yj]\.6|)#\[%oP!4$ Z]m+YAm#&)#Z,nGXi/U ~Xm'x%[l0%\m,p3[ 6I'![\j %){Z<i.[0 Zl.x)Ym#Zj)Y6$ [kyZ/KY~i1-[l$'60Y nK(+sYnL*ZIj$22([j$%Zl@ F#A\Iod"*ZnkT+)2[k'tp+%Y2o&-{+Yj`"Z7b3 ]Y#k[$}^\mZl%*'M2\-mLZ/i<%Xo&([o1ui+Ymi+P2wYi240)vZEh*0Z?o%'\so 1Q%Xoi$YVk&{Zji2#'[hm'-]2\ m[=,)4[i,F1+['l<'3O1Xl,B7-[l-0%Zk6 0Zk*([k+Yrlh"[j+/[l-+/[jmZG[n&uZl+%Zjh1'A%\6%-*Y]518[o$Zj;,3YiV)Zo1#[nO \dh$R \em$ q3)%\ji0>&\]h2ZlZ gX7_/&([n"/$Zn% $Zi{>!\o/wZTj%q'.[jR+#R+Yi'c-/Zo,/ ZoL/-[i&U*Z05%Z k.u3!Xj=%0S.[k , &)Zao(X-u\6&|"1&%YSl({&LYk,&+>ZmQ')[lZ 0!*Yo_-O%Yl/s(U&Xi.#i3aXkO-Ylo1"0Zi.M*Zj1KY70-$.%Zun{)p*ZmE*&[kv+(o'\ m,e fYi-2(\*iY3d\m).[ h[l .&/'f\Pj.&1'h\Rk%6*) ZhC!:Y8n!ua[k+3Xg(v)Zl`{"{\n)[lP/F/[nm()ZmoXo\j>)G\1Y!jnU\goj..H\nA,3"\ZkX .$~[_lEYnr3%:)9\!m-f"[al&%]Z5#k!\Tn*'%QY7-Yi23[jT*%$Yie*2/,Yj?. <Zok*I%Z$Z l".>lXj,D.0[k.&AZ6h-D.\j^(%%YTk7[n.,Y6(Zk/], ZVn$)W[#k7/,Y i#/p$Zo|!,)Ybo2!cY671F/%[th"=2i*Zh,\0n$W?\bk&2Yl|.%Yn0)u<Xj&]$22sZ!n'^*71[j*%/!Zk&.%[l/(qKXmk3&[ntY9dK/[Ko.g\ly!3'\moL+Y7<./U[lo+b+Zi1"$LhXnGW[-k;0Q+kYl &[#,%ZUm` " Zo"$ >\~ja'-Yl#W.J'\Y7-l-%\6(*$ZiC,$c\7aY% "ZY$n^/(&jq[k Bk'  Xo\8$-qYQo)e~Z\,i.M\jja[bjA&0)r%\n3n(.-\ah,a'Xnw$6[l+UY6H%& [Um8.V!\mp$%"\CoG#"\i0>"Xk-/%L[om/$2!5X6 Zk01!`Ylp(6''0#\1k"*[4kx3Z3'RXm[2+)&[8k.%@Z.n #[5 z?%\lk'#/:9X6 00Zm2B\Sn0LV[Xj}WYoD+.?\6Y, X3m(8%Yjk}!(3&Zjz1,Y:o10[n| (B1Zlm2HZn1'1\l632Z6y.\nkG(*d2Zn p3(/?Xo %U!Xk/3{%[[5+)3Yjb,dYo!{Z'l1P[o'Nw'Zow#!+ [k"o[lp $\xm03JX,Q11:Zn2!k0[pB!&YjYi2'%ZnR3]"nL[o1Y@n&0[[]\&[i#($\b/0i\m%-X5#S*[qh0u'1Zj|,nK\tn%Y1[uo''DY[n;J,Z:o,1\cl.{-/1Yik#)Z692$%\Xm!%&Yn-%\5y\m^. 3Zn1D.Xm 1$A[j%!0$]\6/1*e\kP_,1[m2!2:Yi"b% [mn!lZk3n*p+&[k '[dkO|Yk&0*\lf*'sZmN N*'uZhE[o7n' *\Jn))^&Yk\h ./Xk3/)\;l '0$\<k%41[nny& W6X73I'-&Z8hl/Yl|+4!_[l+0P[i ,"%e\$k&=L*\VkY"'"Yn_$ChYm3;Ynib\6Y%6"}Zk%2N[rjB& $[o&!'Zih9#q\i@14\ hc Z;l&G,CYio"+[ix)8Xj*2Z&Z4o~$(!ZWo$u\Yil*33Y 7)0/9\j#L1\m!&V*[Xn*2"'YjC"Y/6a#u[m@ %G\vow# #Y(h2]!2[knj!Y[7u'w(Z6-kYi 4.YqYm/! [.h!*uXi;&YiM #Yxj("p32YoR+[$Xl+^$Xi &tXoq!Xk ;"\Kh,1\}nT'(5Z~om)=\N5e#5Yj3%!Ymo-2 e)Xn a/Y)hd[ nc+ +#*J\=o)-Z6R1q[keQ0~\lg*w"%Xi,YWl,YXn%rXoq 5\j3&$YH52#J!DZ1nv2Ym!TtZ6,)1Ym'q(PZn/eZl)#\o"i [kbf\Ol|*)Y5oo [|6X+(@%Zj20&/Yj 6\i21;0Xn(#U[lgR"xh\72 [5'(#c)2%Ym.V0Xl6/73"Y nZ+t&Zo#((Y|7;"2#Z-ly2B$)\k /Yj3Yl2-,[o21,[o3Zm'2* i\Qi'}*+\p3-%+]\l  +/\Gm& !~[OoggYk,&1[\h06;!F[vm+=!H[wji&'%\kN0 'y[Bk+2u2V\h@02 [9iD.Zl +n/Xl/n[k:!o [i%uX6-!c2qYm"&0YQ((Zh$,Zi{30g\m+.V[n+1*AX6/;#"Zrh-.-[ lj0)x+q\l*0WYYm30\\rj r"F,R[<n.|\kn,-tZclIWhYo!D\odA!YIj11"(Zm *3+"PYn=3&\nS$T[+j0h-5)Yj%)'!Zi[m0\kH$3$(hZi&T3\[k\,V)-=[6:0T$*Y76+Q[}i/*)OZ@h(S&0Y.o^#00RKYkq \8nk"*sY5-N+X634[iD2[\kl.%sYm(!QZo2'!d)Xm-.&Y=h2 )Yo,"u[jk1Y\n#`X#b%Xl3/%Xl3^%%[nNP-Xk+"#YiO%)0YOm1[ij*(Xk)/0'%Xm`+\i#$,Xn"n\j|C2[Sk)>+cXon(Yml5+{(Zi(/GZ[l3<`1Q s8h6l>d<$-< ?y}!a-.UC $' a'7+9=)j-+I2Q70hv$.5-a5d_*+.p-;M &i'N6\e1'~.^L)L.0 1!A%x4D781!l0*5yl+=u/H':"zHF$ 39"H/^K&C$q0 "y37;B8-7 .S#y1*3_2Q0I.4*5K"038Cq!M.N9:7Q&10c'/1<C<4B@6L.7!-<$( '>v,\= :/ +/m+u9I "^׈00^h#j"?8Z);-"'U(L'(79f!Wob(m3o|5,+uh546F64U042J-A865 IA*>)r9B.63c"A'bt9դ7e>1)1P%%+G:+3 9XCu%LJ?ub*SEWP TS@WFJkA$$2UTMQIYXnL = t}B7P#F:S|t= E/LL%C 2FY8VVpH"uOq6TaBtr^ELJEP\1*LEFXtQ/uG = uXd(QZ`L DTCncO. SiGOsZ7ntL [;p  )OR ! ~N(B uUQpu ] GA6H&sJUuTQEyC =RF\ b s"[ \ E<qU#bGYXZb?DEK`>} H< U@nLa tc` |uwP? n VQJ ^u-a>E ?tBt!N(KHv$ZR=V et`_ 8 YF!FaPR u3VDNH l ubJGFoS;W eXau0DM]/g2s4So:YE`?FuYuFIITJ VH/Q{uFC q+M8U9 QW *E]  FKRUeXFT63 t[KSkUAeL%> V_`J)!U$^1TY vtG2 JPpsOE9QPHtAKXc tiG S Y23uo_;E ?C\ L:= etKNZ2sC*u0COFjHzk=S H-TOR2`s UO U=Y1 eKJ%QMuO^K] VUIn DPW7VpY^4tTY[|D t OG.At ]M>zu0^j NDbiY3bwsKH ` FMzX.F~CW< ^<O_I0u=.ftGJRGOH V6C IHt#K>[YiXQps=C vEQIB,sF_ YNHt>q pP`u+St]M F8CYHp8Is Gs;PNCMB^nu Kz u UGYV ; u`GK ttIJGYJ Skl^uHmYT\EBs2];uTPwmt_l? au\'xKD + s>_}LfoC(8SU*tQPJEK7BR=BW =K7;~KE u\ s%L4vuPHLRYRP@P?n DMo5THx RC uJ6;lE ^Wn9 Zb_{zuEB>t}*Z ZGN_OePTRf E *u;_ u\!9u0YWM0T [sQ3u[q ?F<  MOeQ?TEY)4t</ xG.J0t@7^fhOU ZCSaPTJ&Mu"YPTR=#JIA}tvX|FO tfNYS*uS l G+<EJi P=`cIN#FC vLT}M3V M fJ5X WfNMf K`Y L?ANSY =Q-e= , ,ZBtizI1LSV>QQQE udL[ ut`7t  ai!J^ DS <}Mt5]/ LsO [ K$_%QBP<!M8NO  uuO EQL;tc4RG9K_$N2Rt L:R = >s\WqX uT LuWb.tDwFo@_ JXZ tPgZHaNL uL[JQ)sYHUa xTAu%NXP|X R1C9 uMa  NP V Q+^6 LOWtfOGT UM2Ou; PFD 7sO[+M#NurLBM?(Ptu O-WIJItzQyqtZ{N`Qu; MOs[F E!^T=aQ+^= siP3 P t4LzYC3[M?(t]zDEwLQB?/Wba FG= (T Eb<UuX SPY#dJY-sWu@G(C\ u%FuUHYuK74L@uFvGu="P4 s>&W@zu IAM>K Y0X [ ^sJXuMIrGugTksC_ J u[  G.?; Q@L yWmT)QwaE`+THX tO7LNU-wuSWTP]VzKs^PkKu<-@>t*;=I[ardS?4tINYRA ,XE)6tc<'_t'Us<qtJ H NVQh ud?8DGA]t eO_ebWbt]@  SI\^STZ(D(u]aTQ@ IT  G | vZ`&KuZb'Wp 2 H<5*TC}u@xEZx x X3N%uWTetfDKXMoUN Jb taB>uPJ5@6 uJQVGMbR?{ 0 V\t'DQ MItWFu:CN\w tR`0Q S E^eQ]HUUJJjs_F 4u`8ds`YotG@OL;x(LIU4 ^ I\Ij I>D*KD( MM5 u_y musDputafR[[ h SnDD MT uW? tf` % mZ`FquCubS) | mQN M8L' >XW!; GXYg ]GY[ 9U'Z tSc[&KH umQOW?3RS uT  t=1YvT l TL> PFXjNudr\o = DtoNOMM>  *u^\9 Gtb 9iV oZC> l OLLDKLYueK uA58QOz W^L OY_JQSS+0RQuX@J Z xUQR"SkcDa_\<  N"AGTa1XYA U *uZ$YfKWP$ sP%N=AZ8D 8ud\'Q)G sWAasPR]yX hPN F^Txs+W cEU|g (F[ES [Q-MF +ul`Y.tcAIA@uwQ TVWN 2XOuIYtZH[#4tQ^ =SK<s`2LVB Z8\PT|^0 PE_XTXC8HuXG]u\NUta-tH.UL<O ROLQN P V@@ UMJvE^ EF8= \QjS7Ln`ZCo\F8 R= uuZk t\bGYW  ~I <s^UtM`\t^pjZ|qKsPLbB} m Jb9U^E twak>sZ7 N ouO7LbJOW_tD}IT  N1A:*uu^ Hpf>ZMZ?zuqVY?aUL!;U HU. RYL k tN>wQa7a}U@ Y_fZCHuVVED uN ut@=E F*3R tQ} M0` usNu@#tGRwVeYIz IL MW<Yua,QY& 'QjY-  tNI.3 L-Y#QR} XK* Y[L uP  Z F s<1  R b0pZ VkoJMs"^|4)OL6PiH uQMqPE S:BtKO 3Oa,s5;HUb . KV xs[O`FaJR ! Oo;&u XZE1TQc>zjs9] uE \=S@udK RLauKQ(0PS\DEQNM$TB %KbnV  sk^weT@JTR[;CK_h;`E LQ2 Pt*S4t*CW]Q_uoMS~LW? sXudKt>@TV| g PPKF@`hK i O~9L P{J,Ktf].s([ H tlsa]  tyBS K Wi O~.> \/G Q+xG NPTA 0NzVHKpG>JcFu=ftP: sKtS!J;;) Z`Q? ,THD JJA l E LywQS? Fq=75K0T|E\@,O&u G;W<K1 QjDl cY3MVs#B:[tGN  #teOY)JWtM t'`[  ms<zJ@W% ukZkuJ"S)%;3{ FZa n `QN#EssGZzN1cY  H@3}WK YiVTNT0[N@B W>t5=HG.? YA<vuCOGN]HW;mF*Z t]D.s]kRJfDz QY{Jg>& =uW{[VPPY3t"KtP*u-O  tFNJ,L-ZC[mSB+ PWgt1X`uLD?l] uyT Z8HDC xu`~:Fa"\$ HGjOC %tXd C uG:"FLYE X.X>YCU +EQ3;vWJ<{tiTq P KKR  sU{ ? Tu^hUJeFg uXAPZzLLTG6Ik%IE 8 XO@@t@CAnIk@/ Y` wE>tU ( N,U Tu_quk$]yTVQP P uX:H5Hd^MFI= g ub)U ?F_[Vp(PsF[$YL/[n x zt bF=  Q8L! 8 Q9at N;}EQ;?9 eR=a^ K/JI`w w EXPREd@& vt aRstZ *XFqSL:sQU  YZ!MGDm_ sD#)QsB 2GWZB8 PV N`D S ^u^Xsr]=8 kPsIsW, 4 ^O^M * tI. LD;  s SkIL`S{O R8M I t3SRZC Mo\r9tT$ }tBqXFT3VPN R  F~G<ywHb]mIrC` XhII:uG* GAF 7U?bJ'@ aTn[ uMtZRM I M~ >}tEu;t KGGK)V KC  XIk_]AN+V[T]VNN IQpDHp<% Qj=I R_NgtM * F~MTbO\}QNY'@ILkIQJ t= uPqSScNKS( t^ GWLWWFHoF=U QjI 9 Z|=OuVMWGYFG>TBZL RS7PB{  s~_HA@V_=-Fup;C4O^$V u] fPD\Q`tpZVQPE GOstRL ls6FfZ aFytaJ\ugHK*uT =brM=LuEWQlvX[09LcE( l QW uXaVFU" SwP ;{VICi ) ZY 0W<# J?b( 5sp& O?rOL{C2 JFE`HzDq.UNa=O.`"0Oa%gXTHVDM8[y AKLi<:Jk\LK)J kt@Wvti]  St)_7GlAKZAaZWsNR QH| Y;.zEYl vNzV4C E =BHR>0 HUa, WLLTF[ c xLUE I-H> 3SHJF*H`WFD ufSKW"t)M][tRq TX]6 sWKsLt>;;X<AQtKE/PIt4@9Q^WTs<HD}LC^2;t;LauAK4JOIUUYZ)OrYfX+`uVt>T?s A]VGx K\/tiZW*ta:uJX.R_ IGRq}G Ex75PN.Gv Os0GituR&U>TQBCJZXr`HQD? ugW7t^mt'B I ,s FRhJ (t5iTLW^V uNxP=R  t!A  KE N E _H HpE~ GuF7t[mt^|uWW_ED6$QMU" %uQ Y=^uX<QcR]3/tN ESQNPH \G+I t@B P]=@CVB6JMoR= tA=tRJJ:C KJg2U;RYt h wLT3t?PaW`H\V  t^ +uUJI  VE?CzV$D)Xbi t"CWFoI uSDtC 2urW esK/#MUP^UuaLPwuFNu!TaYR+ihZ h uU=[i Ju:Nsy_ R \tKH s;2QG(\.xtaN+^?6EK uX@nK=[ WQ LxK; -tIP#A xtQ'GMo;tZ`V GS|hC G?,NHOZ`SF|QC$N1 B#u!KVTR AuJFBXSH zMupVAsta*1ZCJm H QZD_ mKOJYYDF3zuTQuNyuHx!X,>0!ODR eKR\IHssMS IGCx = uO up"BWOt[bIqRFaT`Lf^EsI ER0aV61L vJRC uQNxJxk8u]ROG0 MY>& HdU0R>9 ukX_>I-Au?[=J5 Y LN 3YD_W u`lSyu3K0waLuKD unEcmYO K E YuXEL NTJKF8 Jk;svI wJ_^>toabsOC@WJHps;  tSUODu u OsZ GAa@ V? G uN >G.AKYGVE Y * O+=C xu,[at-^/ ubr S~BsJKK\\UuKR w GuHXtX, eKXNF}]LtE@KE6u]Z (OE NTPVQHE<  OS>u[sXyoE> G(GKjuLZqFK sw]OB(Fd`O?@s> ZbG (_u K]uIt[ALaBXu?d\A J,8HX (L^ UXtAKN_Cu+UCUiEQNIV?}8 WS\mNK8OMP  "Ec=>RxG+ u-b"t)TEiJ}RU/FxR_aJ`a+XsaFh 8 KuYs  P]Vy \R??RUbS B[G+m@ QGLENUO~͋a (tp_!JM ? ]uDDWM\ EfQ'3T\^BK$?"Rw]3tZ?JVRQgE [PNC =IeN Qp<UL\ R=Sb wLbV^LSt<_LbSJrelLQb t[<V$ ` J9=W luB^[(F*Lf;|I-HXS3J_pN,? N @= RS yt'hW xRa RAscKsEXvFS' ! UP Zb > "G eC0ZH wScR7+t^qq[WXpUQ-Z sOUP{a^oRnaZ 0Hd]Z8_HZK E@2FI[1 2 QZJ@U"^TOCJ_]UN2+tRvL:J] 4T+IMQJ2_ ulF6ZTRiPT[ [QbC?RHu?-lKO4Z sTGQX+uLYtoZ03HUV ? qYPuNARJ>l#tt`rsZ. ta~tFOoV6zCS)@)t]MjPT`ZZ1 ML$J@?ttL ,Vq;|WuMSOtY? t MNTYq"sX%L:A d GuW sZa5Mb$ UJG RNZuE5nPwJTtR.s@BJS*> S eW@ ! IZqYi}DLxu_S.b[ us?M *F^ p+uRPwt^_IXFa,[ Sn^p WS u}Eb\D CuI|UENguJO E.R3hB`  ztZV#S [O RR?p st]E_s&V{ FZZ#3uXuOsa?duOeP}_LF.}t^EuY]PAN~EIWNiM~>us.]RRy I tjaYcQQWuLF*nRAB uZ?}XhaZu`>MBN4Rb@ pTZ4 J WlNL1 PII~ u MJW{sIUHx>^vM\ Et~b6nI?^M sa)0sGzukYioO~N8 x F|Q 3t(ReXGsV tIGtO>:sR'NgYvXFeH GlXqRFQQpQ J utlJQ?0 KOMquH X{v> Ra_ th=/Z EYaR?EKTUF) t\MU:VQuH\QOcu;KIVIRQYiYI2` EU?2 RGb MU?` uIOVOdi uQ$^+Q+Q FM H Kt5A^eQlPc usVwHpKguT8t|DuJLxFER _dQZ2A uT@mLDPyLEB FZPynXFMquWROIT2mt*l^J!EZ CGrDu?TRV@ QPhKkNVYsGL7Q^`P;nt6VXtYUtq^$[sQRs_[uYyt>CTKWZt'E 8F4GEa= e YY< t\KHP__:G[x S32?'aJ;S?2Ct4OuTGe{O!^<HxAA u"bbPTLN mE>F GlVuWTWtBCzZ)GWJOtH WU[8 uJI<qte;+Im^k N uKLrFa rE\H3RjR QGTQQ{ tIjF[ { TEFLKf sZv>P@{>@E QJKTjMQd|S ^P]KmY`L[- 2uD|O<[GK eGG%:8Q[suZ  +W^] ]QUS)_RNN_b%W= UH GuY?QF4KfudX uTU ubEM RwyJSC L[W{ PcBu}_"I>QND 0 MN"Z*|tF Q zTXFs=:E[ n Ht?=KtH[cuNtiFe/ u[Y7K6uK eP=>8MKbHx`u,IMTHU_= uGXR]B}ZC< tAPZ  RMBf S)T+ = ]t=u/;wOMt KU^LO.Iw7>SkESzuT@ uF~aETHuO]qHZK R OI?|udC)  T_; KYq-GY4\EcQzuMHqujJvXpG tY#PH<tOv 0R< KO`RMIGVH>YMs<FISKAibZ<PubM IL&HB pt> fP7P  YA^cO_a~LKi'upV.X<WJXOhg tTOIPuYN\-HNVKg/QNF'<GXpEfR CI<uB'SQ5vLM  PP OM=@JOPe`Z[0J5[i&H7\)V== X{bM u KtPCMWQ; GNYX Y\FwR> M LSYQNFt>ctH$`{t"Q2J N HZ= S DGwZ|><Z|As~K8 toN.lP'LE mXuu]] ?U^RqaRMD  RWuQ k ?RB 0 sI t+s>E>s[TG{=` ZbzFyA XDQK#^nuRrSZP ;HLb_ DsX[sIlu+;ALL"aWRtA eu_i U>jNumaNsP8W+SatKrqsTN+]g K)b u\6#FaSxPkdUuFtX tbJwDRM?ZY u_U3`j`u=$|t[URS~? tpQ`(2HN\{ K`r t)A %X{P>I[r UsybZ*RM C u_UIcdtIX^OoG wET_t^K4KN4^Q\QO~O7 um*W?1PT+FNFdP YW`MZ \ORH 8Lt<Y[G\I uT`TlQ{C =t=Ogs^sH0K4Hx-Dw|_WTI P 2RYOUuC ES SlWfMwtc_UJ^ !u C;}S~BmuVHG+`T+ZzKC_QQu^ATMLCwJMV;$[Ya^U^=]}NH@i5[CW iQj[R FRL O.]I5;Fa gu`9t?XVTG [QY c QPT]LGYE  HtI_ vtK\fE?}Y:KE^[PTM tcJ< K?f YGAtwI GV(`+ u a/uT%Ta`1N"GS t~RaQT+E EaHUsT "uQ\uC"RX \WD J`"J9OYS uZ"YRwSk`A PuQO^'X  !H7I| ( uIZaG.G8Mg?"t'A sBnu}O IN+U1 J uK8EOD[a = M;t[]}VEwAd@8UPkqQAg t SqLLQ I RwH}F|R"X[Mz KAP_WfLO N[WM]- sVVqY L-UIu?` 0TY~Q'_:dU:gWKNX  #S{RpsuJ$ O^H FRT#OP G s<ftXnKGS[VUBB2T;nU=NcHp>[ RGN QNePI-QW2MODL: N0[>)U^X5t[>sGrQG tI< u=|ou3Rqt[uIGYu_tw:tRMq,uES.S<0XOXBF RN \TW0EZ| G*CuIIwuHF5udQ sMXsu*QNu&?KSVA@H Os]sI{t _>At>=XK -uY@. @8Y@8+sR@73@5+s+-uF+5ִ@7+. k+(O&?3կ $) S+/::/Vs:8#fl#\2]G\(,8H+6i*l59W:"=؈pz0E89,;n"3" L0#sBߓ4%-FS)+/:3_07";( C|q6FQa|66|?||*|*t9|0!|_947R|*%"%"?|\|*C^|"|09||(l*xe6|*xݞ|_ h|k/k-|9Z*o304'z8FP3g4+6B$!85-5Ȱ!K'yѡ$v :nB|+h]@ /!K*'E:6h*C"4 *ҹ&Kr'5-"# >{"xQ.c.-+50%r'A3_1*6V(0&T5-ݴ"8C>wLSww_g*g$g$w!Mw8$g#gg5Mw_'w5M7_g&Cw0?g0w0w.g0g8 g6ww.w6g*Cg6Fgnw#*0w!Gg6rw"g&Cdg*w)J!+ >'x+eI=,i)o0 a->b#,F)*9U,**!7(/X4,Vj6,-'* JX6:Ż3"y1 )d t,4Fc "-̽3Fs'v*)4P50F565'v5*2g5";0̳_5ɷd5"k5_6H556*=65 I6\#j>!M3@X$ -XY7l%U.K6,.nxD#b<0 %O*diFM#$-&/d!ckkkkk/)376 !B-) )B!QRD9W7'x-/ K'T *0 B9)b,FY! -]Nd"-)+c6S l,;I/Kn4 >[Hb.%#"3G˽#.G,,4N3R2,)-/,A68pm8#T_#T^#T(;%D07+#T%;#T(#T-`#T0D65$0ONG#TGD6 .#T-`|#T0OL#T_um)ʟ9dy6&%<9Rw#(:"@3& 1+)$- NE'Z9\0 'IcD GQ1E.]] j860+)J,҆2 #1Fy4K'E#V,h6U9,R:?9{+,e6.v8[D;/N! )Io! BR+'Ҙ5P+$L$Q5kC Aw%sܽ,C,L3~w8W -@o)"5%a95,B" :p!!)s6-12p=|4 !&a,p%I%&6rF8F$/C7O9$1x+2$&\!%zGo%t?ȡ& 3SH) 95_K"2* [2Oޚ#(70#u8/1I41#47&4/h*O t)5Hy4Y) "@FP82fiN)VL  ^, 8q&0]7+.[CS)W 'L+=UBfכ$-4O!;(96q;!0E+%7m  3_K& 2H,1@"{Ԙ}8Z]+.*n!"u o" o(& oN_ o6n'0a"k93_70-"v+)"gg52/#]'4XMb.P"*$`$E.(3[9x0z1@8!"^%_9jح)+6!*C"W&,_?HDc-B3M9&vX/Z'F4{%*$%ҷ% " )A720 t*K=# +ti8!"XQHDY,-DY0o% 6\){٩Z*4iG46!45#4H4!@+4#ý41߸4'\a44# <4044(;)4- 4'!4$uK>4.s4mM4$/|#k5B#:8#%FfXF&V3{Bc0x[+d5:)B LM)TE2f(-9jH4)?`%{/$;0B&JF+@ H8%9G2!1^)63*+N)5s?i1cC8M53^>  ` -P +3ç  "n 6h 2 Y  @ U i $"? < !i %>K:94zG-:9S <E/:9A9hFN:9H<:Q:9I%RC:9, %71:95e%+):9.&}!/3_BQ%$!qAb9{5>8[K1E9!M-o#?ũ ފn,.ڮ6%^,hB52F$?+DA5 DE!k(~ u ~.%>*e1U*n/h-!%,Z w87c%1? #ޭ9O/ֵ029+BC$3"x28G 8(.@J!$*12$D1r:+i'θ6U#*g)'19\6aH(,/S T&X,~3NJ(&%Cj87 0r)35д&!'L 5f4,:m2L"8E#K)e2> M$)p*N_49,;Ib<Ӭ ؞7r޶a#+"*(@5#&!;>2+K+14+"(Xr4K4} +#(g+S"W% *,8[.&`39+ɴ,#!&+(Ը%e#H m gA)?  2"E&B7\_669H8W-q3( N/ K3@$L8(w 3~t 5P:(aiE0,9,? &t)=5S*G5a"n8(A;,?jE#!5`6Fg H0D'#%!ՏG2Zǻӹ10 L!G+?"6!^{Db5\  4!;F3֠0+N%&no(!S.)+2`5[M6' /s5."d*[ .  y3_m"!~103bx/e81 y)1"(-'#+'"_#(&9ش*MeL&2T/D& &0YPܒz)@#7$=$*&1'0I$8(4g.c-6 99aS,@c46[!8""3#"f-E?#eC8"" )NKE@$c2) 'Rh0S2H"?J3%=R%>L2DJ#h;J{3ZJRR3P?E 4X%6G HM;L ILMFR=S6Gu%2F%JW0KhDLz:7w 6f&h) y(uHo@H-dB7$B*'391*3"=(#EC.f+N*lA,DEI>7413 O&1ܕ'?[c!5"9L!;*>)#9DH4921-2  -1º#9 ƌغ8  2C+)*`cc$9-*2$ 91 %/FQ .* V5+7q4L3Y%'Cr/0`3_m`Gu&1(*;*l"K2q%)2e4"45T9)8pܣ#Kh+ 0x#y*"-}#57_ //- Rx{9!I\ug:9;!gsT;!ug:9;!gsU;!ug:9;!gsV;!/O76V2qY63$8s)!D$|"/C[42f0''%0#2(m0Q3r8]En9)8T7 M3]?[6.X+޺4->5>p-WB/mk6?40.07>č98$.0+!$#Q7.93KN,ԭ).288;@#1&d:4!Qo&#'iу'*42'"K<8r2Y6 7(,%( !-9,'F*̆RH2@Lb(4(9E21q72A|*75P*&, i] oL=9 sBK/ [<5Q7| +]   ,3  Ee x~] h+^ uO)uP*]  2uBz~T]Y \-5}` tH1)  2u],%' >~<0 p (]/Z: pr=X l ] nt|P]7q ]Lq #, 5Q Y,7H  ] l[~~Mt7,}W/2c ] lI |th~C ] P[~,&~ n%} |V("? f] K ] \;:~M}ha7  q w0z\  5s'z =&R# l] ] ]\K&i6-/]Di,3D  W*  "] i2` g"W~] U] ]UtWG]<h1 , ; J V  E] L5} h1 ] . Gt}[j5=%u/# &2Jss.ah "u':~q[4] 3> l5k \}GO3= &Z@+] (] u.]]!{] ? ] S~ 25v- ptq 7]`S"2] zX#tf 95Q E]!.x:3t_(bj7 1 iu uq E] %2ce( J.| s.}th2a u+@ n3l%] vY &~ "6hPt8?\ ,x TX ] t(~t1>}#]8P[E~_h(R] [~  ]Fs~7*}4 (}]R,%~'tB$~;hs9g+][|a^0 5 T#  ]'] SZ}m6f#$p b2ce( R qq i( D3~ ~s(}hZ)d !hn]  0 ZV}}] N5Q ,qVe"0 ]i] g]  Y P@5QA XYzY}  ] T v,e  $p ]] 3]%ZV~6 ^q}v cW] t ~hp i\2 ]0t8}n^]]1}s1.[B5Q| $r 5~x] ct}p] 7\I5~m$] 8] h8w v]  }s[qr6#)YY{8E5~. 2FtWT#b t#*g {t:}.\${@h $} [3 PVV s(b&"6$7) Zn8k}  ## _";Vv~] +%} )7 t6EX26- QhVhS2u  aq~ I Z~x5Q6R ]t^] t=}, Z/72c w(b& ! BZ/}/eX xh Z#@hQe# W"e u~ qS\~" }5 N] -XZ$py ? "\>~=L 93}E}uC$# hN5Q#9e% k)^~ Z P"[1~/f %~ ] tsqBW6-u Vzzu+gZ VYn h6- 8Oi#  j? q qE [5 !E1) 81~ !]i >6Y4":Zn/Ni7._ q >6-] .}t k,7H [ZLW] u>,9 ~[k}=#  ] lu3huKe~J ]\#5Q ~es_4Fy fcv 0^ujqoq t6` u1~PW] wZVW50{ Y7R] B5Qg <]Y;1~P$t~K]t~.S  o}G$r4Fy ~$]1iP-J Y,JZ-etJqCz,<!~ut}] 0  x , u[3} & x $;, 4X"Uc #@] (4Fy X] h,W 8?3 2[ 9[8~3  a5}e ] )^Ve~>JiqC_5 q] S5- ~~ "6]  5Q~ ~-~t |2i (mc^uS}] x] X3qE Q:Bt,q 3Yj$~  \)&T6CS"& n,  H1}u S5~tq}VQ]] wu2(b, [3~ "%vd5wqW{"j { 9 h  f5QA PAq}$ xX}j3q1.tFq|S V r'|n e!  ] {q  ] wY> T] Boe  w 4] Au^~[] /Y5Q}~ ] S\o 9 yYS%} i$p qi#v(]a] Z1-a] * ~op] +QulZ7n} h"[h!.~+ (~ia,J]  L>}] %u[/,7 % } X^f"i_6 H3HV}.\";u Z3~ _w5QV )[j  Ve"4Vb6 P>~2 3' M V [=]  ! " i/ u}rh0 t'|R &3J4.qmv 0S )j0 :}Yys!|~4 \5!.}  q} )9; !|Nh Z}g@ ] Y3h5hU}w 3l% i 3l% ] nhmS qF/p X s9U' s5%h/\89+4s~6 /uqO]L)7 m (j "} Z6Vhd 2 %[,W /}/ g] \] i] [5Q^] ~[) e  Eut"9}] q ,"9}] ~ ]h2L!.~Z5}"hj3 pi1 P] ] t(b 0}&"Zr$p} gq{  C <] (}  ]  {9g t$,lq\:}Y3O C3T f' [Z~33~ f2h7 549Ne1s6hL" i=,2~ W ' p5Q~ U}@ *iV5 Pu6~%] ] ] }7 3~' =Ssqhl  }Ee 'YN| p O "} v] 2> \i-v0 !Zc(Rh2k  R] 0}gZ7g  " \ )M3]  V Ts:%} M/< -~t W] Ig Y>}(b %x%Y > 2 :hk6RU]] ['5;t~.5Qs x`Sq3F] 5* S9+.u^/e i?7| |hC,7 ]u j27[U5i Y95Q=2  !q c UY \ ~u~'|~ L(Ee  ,%~Y] >"9 !"&  E3;e V=j se9] | :81~ Y> # E5Q ]eq[ E _ t( 2] }Ix]YV5Q\OVz!b 0~ ]Z3~ ]q}. Z5}YY ^c] >"; %] ? :0*~  -~tt5% O2Y65s}' >98w "~S ~q tt~0 E} t~1@tUq`c,W i c }sqi]0 :~-"]6 3  b] Qoe~ w5< ]CL 2[ WX5~@] ) k'5@5hF3 [[5~YPV}tX7)qX= @-5}` q  G)q3~ , HE~Y5}ZWV~s{)}:X/p}- 3c,4 ] K#}J[19h)[j Z:~! ]V23 /p  2/e B~Hyq~ 2ce( nC] ) L6A 4] ,W ;g=%Ve"  ]_W] z] + 1] Z ': h8c 7[X5Q i/,3 80 9] I)OVj   3h] 6X i>5Q h,  , u/" " X}1 ]}p e} p4& ] D ]Lh ]2"& v e# ? 3 5q~f  5Q~ |]   Y &Yd-j[}-] eu7] 2i|! ,z~FUik Ps.Khpqt*}^W$py X0   >\\3~ s }h, V)[\U V$p~ - eC$k+, )9 s(~\" 5] 3D iKV])I l  * u3~!h ] t,>.t " i\ G:5Q hB,W 6,] aX ]/u7$  ~NJu,,~DKuh] Fy2u I6-\ }f  ;]Y9+~ 2ce( 2hj} - }~w ot~gtO3~hX83l @7n] /8c  V]s} ( 6]iW $pq Ph% ]X3~R,)p, %X~K$\Pt3<Y}74Fy5}6]]W 5Q~ H!] *tq~J)K(q c$p~ [;30 53/ J V Wm]  qt h( , 2ce( .}$p} UcE Y8}x 5Q ]2}  <) xi4Fyf,l ] [1}r,W h3l% ^] p] }r8w i+ k_ 9+~ Z~"~S 3l% ( ] =[5Q ' L Msq z/3~  l^ iBp {1_z( | SH4i  PSGt! ,~$ ]  ]A"j mY5Q"@*.~ ;6-* <] ]\> ] ] vn M> FqC ] \5 S] tV(}T ]  E Z:|s,qE&d=] ] uW}] ]] ~]ue! z] Z5X#   V?t6%,z5}=} LYV$~# \neV"6^h3l% Oq _] kh/9 \8+"23 e& `! !. w] "Uc oAP 6e&&`] Z8}> q$ V5 $"2  Ve"A3S $])] ,]i&oe ]],m 6s~% V "} ?m *TV.KW]y  5~Hh6- Jc3cs"]9( ]'\} ]*\[ ] E ^ ] kZ9+}g\1Th-@ ni"Z i(3 -v0 t,7"\13 l{]te# s/}a@$VAZO3~ u V* +h.q(}vi0lps4}Ss(b$T7|  <# iVX] Rtv(:zzXV~|$pG 3}3i }3  X]  Y]  [6Y J# " A) l  n N~uN*X} {6]]A`Z,6-o msq-5}` 29; q ic5 ]`YqV] i5O5QYG  Z4 g(t,,}ypuO}z^2-"9 )0 ;`} D1 C]+S Aiovf[~>Zv$p Y7nD#t}\,th- s~-SJ[8P)3: X3m t~ 3  t,f 7 , ?\ t"&~q f(b `#b *)vE e" ] h(G t/6}O% -'1 h76-u /q 30 \pYH@uz(bTt}X!32RZj ]  (5QV* jW q}  d4)~ i-qc  ] "{e& 2F(uq}vYb E ae! ]& g7 ] ~ )~ V]5 i6^i6- Z} h/ tttgq5e! aX5QGk4 q~ t,~3]  7 gRt}.VH^]&P(: Ye6} He ]51cZ]VH{]] (B n]]V `YI~gl RhX "9 7[X ] 3 0 ]:- E ~] /] 3tW}HZI5~&W,Je2a hWt \mp@ + ;y ;N)M wm$U euv,}JS > 3/h VQ\6} KY[4X i5 j2* chxmf]=VW VL _ D)Gut1 R3/, 9(Y5Q~]r] u Y [~? C(buN3 xx]  ]  ~ W}H ] xEe   =}w +5Q #I9 42F - (\ 3 s2$ }-  ?'2s'qZ2~q 5Qs ]ZUVe"i$X} uD^~)  3}R2p3 A8)ulg\Y~Hh8,a 4& ot![1$uO,~J"26uq})f 0 {h2kDDg69?k\3S  "& uIYEu=]h>6- IH+Q}jp=- \r>~2 Q?] , 2%~v Mn/ ] 6]'6 eX~d\53}d i&i)3 z"S  6Z] \Z3}E59 %\5v64 u} ] * ' KSi-8 " <] \L$*i\Z}P  "6^ 3*}^ >w}F\TiR P] @Ve"% im Vj0~}] 3]V ] #~ X" i#9; S]" 9X> /Yk$p~ ]%n1D-5}`,l tl9~B% } ?2 6- U)i- uNoq  ]8(Z iw3l% a] uw:#b$b*nq YV~a]  .c%t1s4}q j6-K =V]{]Z}#]u|q3*u+}q ] X))^] \*8~ ] EY $pn Nu@f\v}5Q~ &v VW ^d5a2[ xx] G] |i{1 =5~]=;t(wt3 66 / (bj ]6A  t s*~-u: C ] ':~'] kt62}$)~Y (~eF0 0] ] \t~} n .p,~J &i, 2 64 v6-] x^ K H] | }6 Vueq~T] qD  L)liM *S 8]9!h1[] e]$pe# |[~ 7 Gs,}IZ} D\~5}V ]] ~7 ]|s[q~l ?T"~3 v ;] 3.~e   t:}% #7'qZ m*5w\5Q ) #2k ] 8 :(b} Z5~5H-v0 sq$\~ps0p0p/Z5Qr]s6~Jif'z, 0~j |3~ tI ) n v]0tr"%(b}-' 3i m [ u!+T#P o"6$|],Jws t7 ] ] s~5~G] !~ ug"2ce(*X*3} s1 2'is! Z8~] 2p] \ ,['8h1 h5* U-  3~ oD%^Y X]~ 6E;(> hhuf(qi 6YV_6}Mt8A}&ttq~ ]Fh~/ /e 3\g}p\3p/ Kiy 8X5Qm*qt4vt]uV C] 6_v9U> is ""~S r R P] Z 8h, 5}h} Yx6w [5i}1v $] X] h h Z!\v # [} i 5* 9cuh,G } "9 G]-J&?e# c} 1*iB y] " ]  &  )t_<@0p M&in( , 5Qw\-J&Y~d s6g1.v] [b5M"(5~r2h?2  #( [5~ F6w xiO3i $p} ] Ch}/ $p~a 0[95Q}n q} M 3 6 \I>w5QN~.A J EhY0{ -cB]*iD}ct  n0] :Q &OEe i ])] 5(|Y' 7}<sZ]  u:~M] u} 5~xwy* z%xu4ch2~q &8-(b} l)j0  6s'1K$ ~/"1%} [}C] Ce![H@g[m}H2 ]0 ku5)M3]DQ% \tqb"-!.}S 8~S ] |t e! s]& oX3  ,~J 7i)+Zn8pi7 }@  q t)v(b %$~c:Bt5-"& `h5" u\m^^ g] TtB~Kc [~w@C5Q k] ] ] ] \*/ @$p} ]  s6}C d(y}S{5Q~ w[}LQM Ee Z @9+~9 %V8(b&' #t]( t#6~z[] ]Yp@ R:}X ~\*&$5J1t6}CK' "6uq$5~/J&ee / ]h."9 wNZ0~  ^(uqxM %~QZ`0} 2,RY ,l  3~Z tO~ ws,}p] X"e-4)~  Ve"_]G-] >) (h)d  uqR  VQ i| .5zSi4Fy X6  )$U !] ] l" Qt quiB4)~ ' i<! <tA,~.J- ]s:kVe" i8w hv] 3~ uo}S\s~-%} Y7n Z}' \5Q =\7| ] Q52 "2 E 9+. e]M  )(:}Z |t;Lq2] fh ' "} s*}4+l@Y + u]  ] [7n~S]it1 l}@ %WPt 2u h] Z!5}6] tq~G2ce(  e \] 3vE#e$ ] P]]+}%I5Q\irh ] t.h9U> Puhzw Pt~ZV}:}y3}-xU(qq}k >]/u./}).] } 7 o , il3 h# h"; ] h6"S L-~ i;' Gd&+q <u{6AK6}C Z]36- n ] .._ uF,2~ /2`2p"]  G] u\ I5] ]] h(\}[}r+<3 h,7 "] h$ [hK ;\' uA~Cs3/W 9(  r*W t6 q#Px#~ m]  ]- O] _-J `i\h3l% ib4)~ i 0{ \i] ]t4i Y~Ns6X/5Q]  } Ye vuS+]3F ,7H E\$p 5]i ~6   / c7nQ(~ 7nDB] ghd7nQ  q ] tj9z3fY E5Q Y:hR3l% .u.Y#:; D%}  \Vh D] (t9QM h3q 5,}U V A"o}$s9~KP] )R"iQ( 6- u"&~ [!.mIhAe# s~ %] j@ !Y55Q  D U) o ] W&]  t+.i2/ ] ` ] pI8] 3P2T 2ce( t{,~QpC= kqX ]  R5% u(Zqh] >yP};.2 B ] \s8~U. > ]Y\9+}T] Q /" ] 3 Huy*iihV}h^M F| A 6' a]/"6z, %xJ5W9 u*3~i |3]Y$~O "6] 66\Y s*M$pY)[!.3 [>\ V}K m w ,x  ~ R-C5 4I =3  W ] "Y5wQM 6)-5}` &M] F|hf" ^tI ,x hg k]- W]X%~oQ% h~I!ti. ~ 'oxE] z [S H] ,!8~U,}y Y} ] Y33 ] "[3 QY} "}  3~ Ptq!s3Kd~ \U1_L V(:i ?t[ O*~    { M,7 W=3 O "t|, t " U)f iN1) ]k}c q[E( 3}| T#] [s$X} ] ] l5M 1vZ$pG X3i tqESi 6-o TZ3~V GX] h\ 0Z ] X~@uq~f(> h! 7 M" c *~e' ^[3oe Ld]= 5Q " Fq Xk] {]2unq}$ [i!5QgP] 3'] *i1t  }-u*gY5#] 3~ 5~n@r9; '~] h4I sS q!6}  ( -uq3l,2]c0 Vs =z]$p Gt6sqqR],7 L SuYd$p~))  Uhh5Qs Z %xJp)+  ]   ] VD,~ S k-5}` J  lq` t~4,Y"6 /]-] o >^? N*~ ]ha ?0]*V It-#6~^zcv ] ne# .5Qh23 )] `}"S ) t.7-v0 7] c*V3~ FVe"t 2q m1M  k}f ] V~? #~9 g] [V~}] 6- ~- e!  ] s  &] K/. M]DuZq+U& e' ie9; ] ] u{qS   ': 7nQ W6- V}}Se }V~.t({)dM 1ZU@8} 3}d tSh<M W\Ve"0] ]hC] 0 G( uV t*V p] m& 3} LZ M{-~t s(Jh-;# L E~ P]] M]s\5W$] 9)IO?ui2!t ] 2 s,W) 0%} r|~] p] 5Q} )o] V_ 3q Z5s ;p  ] # ] f2tq6 ] ?Q]uS4t~J2ce(A3 mS] n3  V] }"XW (~ $} s:B) we! ] iM# 5]}Oqq V~[a$p}^] >\ 'A,f/] mU3 ,/3= [%81  5Q E ]r $p~  * w] ],z% 5m$r 7s,~$ SY(gM n3]  lu 5 n= o #9e% ]4t~ V+] tju^]_\ ISVp_< ] } 9U> qd +j 1 J}z ZS |] }] tUt1 }w +^ iM] V#b{}ilZE%o+~Z]_)M4Fy 2ce( ']  -~t 13( >u;(] P^0 u.:~yU p  ( h3l% dU]Z2i! n] 8w VOEe "67| C {]  5Q>Y3} ,<!X~-h s )] 6} q~l t#$~" \L^ ] i2h# [-5}` :Cy&]N@[9+<ga)j0 .] % % v#7| G3l% ?ute] =Z2~q r" \]:y 8] u9]&Y5 ~w]7!.} "<"6@i6- 1 ^Y  64 ~, L] :?s2]]b W]] ] ~ msw}F@5} s(b3o ]] Y~ m] =8? ? u\) \:~25s9Y ' S!.~ tH"]T]#] Y/} e! 9]  }%"6 ,3 h, n,~ N~( ]iE3 Y(- Z U S q} G] si&  3 t"6@t(bo,W -5QA >] \b ~YW5~nN6zY]] =>] J]Ph2[ i2SU]u*q}.Bp Y}6._ h]<[ ]~=\5oh~C g( !]55Qg H] ] " 20 \63 G/}<Y=6Y~c [ uq~Y?$p ML Lx]] T3~ vn5Q uw~|^s$k  u3 5Qo }r] mc, +} 71t Y3~'s}>( [Y39hMi"NZ)}:UQ"64"lt*~ItTs#vw\ }"K[\3}? 2~[  L50u &q$ ig3l ] v+j3~i] ] tCqGlb5 t~Y!.} * ? 8W~0 =] [x~v]]]>] P :Bm] u~4t~ E :iLH2 JY]  )n kZ t&~E_ )%q{ ^7n}X ]iH Vj3~ "h`} | =]] ~- QV) > q}c 9 +QuNXE :yyuhw2[ [ ~R@(  (}g:" cg2ce( H[]h5QA /5Q~ h#bQ]5]u:%p) 9 *i)@  -v e]i7 z\3~Z Wh1v t$}^ L1v t+St:@]H"   Vf Z ! x]`] vse 8]M1 K, u] *5QZ73}l +3 u] QZ Rct#5$%- Y$r 0t(bp  ]`4I0 ] \5Q "]  ]}X:\5~\( \X5Q}@a] ] i2k<, ,q  p']  & * 4$p Z  UTu2~~] H *. 2] ]$p~ 7g f zw us'~gu~}( * 9 q )j0 u$+,^hY @, Uq i_eM LY 1]VXa/ h0{ Ve"3] B"Q 2 ] ]z2ce( W5Z1TZ3} e=5hn"?tl$U] v y5QS  c& 3  S  s } k)I<#v tq~K] n] ]h2ce(6!tt:^%Ee Pi#Px ct  ]]sq~JZ6 K] L"O 8u\e|Z5Q|$r ?]7i)}k],1Y D] 1 ]"& U J] {]0" 4!m] V D 1tSq 5Q] =u &R#] 2ce( L 45Q [~(s~ B S]rh)IV ]ut>\5Q~b [$p}@] t}tqqF,7 ~}][$ Qc]t3;e/})t$~h) q] W6- 9Z] ? 1  2- h ) 5Q ;(b& ] sq[$p~ u] ze# O]EI3 & [h) oq}A |ZcTUV6-o ## ] h6 tu;q~pt:B% ] J1}tc X] 2Sh*V ttyY3*x} J,~JZ | dpVy] m] " ] {i8 [l}#Ee G/ \t3K~"6u,}U ~] uV] 5Q]U #b [ ] *0]<]Yv3 ]=%Z3 >u[t+SK]~  q 7V~s$Ks %~ YK@]  2Uo](b& 9h~C w]k+Qu~qh.6Rtm:}%]Af=c }_] 6 [|5z[~z@5LY502 p}zV4 ]m]9W5~" [}&Z,}u20]]%} 1 8]  5Q u66KZ/3}| KY~ !~L h7 i[5Q} (3 3~AY#~8 tL~` tU^YA^ Q- ;T3O Ls 25 =A3O BZ@7] S]hD j)^0}\  f3T 1oe m -"] uI"9}DzF6X Y1},a sq^e$p 5W  kn0S X ~ ] #9e%tj}$q~ 3l% .]it| r i[)q 9~ s*}6!m 'Vs+}\0hp.] ] 7nQ (7') DV 3/e t,RTh uq ] wu~] (V]VW ] a }]] uV.hE~4 ^]`] = I6]74Fy 5  D]  "~S c^ Yr5Q q Eu^?t`qi4-J isq}i$l \}xS] ?(}*azw K3} ] f Y * 5Q/:y~{Z:}1>}# } U] hy%n1 \\.!.} bh9 d, hh@1 tMh2u ]){]Y}s K"~el7 c] 9+~: sYm5Q0 3h3T 9Y4& %3Y2~k] 9:^j[n/Y5Q}@t~L 3}| 3$p %5$si)t x1v YI5~/uh"&u }]";u~9 8] h{ =h Z}u-~t.3D )q~p X 3\EVJ)dM qtx/f@O3X'|nA] =] hZy AY$p} 5Q 3]d6Y6-M 3l% |9U' |t,~q] 4I tHq}S<] Jt<(:7]"6$h%^Y2kh[3(: * ] KI"6z] n/] [ o]/ h& \$p}hM tMq}"q;# ]h], _j] r ~jIU] [5x] Z;~g ] ] ]Z5~,uqSVQ~YU$p} Ut0hh1t Zr~I[ Z3}R-] 3\N_(]h36-K "& "2F i~!6E u>32~]~0~ J8gS /S!3lU9 ] sqq?]  kW/} Z5Q~bV#" 35Q!i2ce( R )3m +] 3 .e ] Mq;)^ihhF(b D . '  7ny-:^]  67g tq5~.iEL ]$ Vt]w<$p}29*&$5   e! ] 9   !mt7h" ]] ] u) Tt1 i5s$~ C,u$-htq}_- X 0R~ %q  Fp Y51 ]Y5Q~ q]7SE]E3=]i!9+}T]] Y@7n}X YU(X ':t|1 S  Q]  U] u'qh "}  SM)^t7@V]/9+<Z5Q~] ?66 1 qu ,%~K ) %n1 m eV '] Xq qqU} ] w 5QEe  6 5}t2 (R 3}? ~>] mo$p  H2 L\'|RUVe" , t!|UUc] ]il  #]q}  "\ ~9U> hU3= q"hV2_] G~= l L$~[~@  "Q% z"3~ ,5t5ThHVh+^ #" Z8I]2` {) Ytq$ 32 5Q/e fs,<!Y~25 |3~!0sq~"iK/", h bEe ( 7 -i}9U' u8q}Bf ) g(6SX3 SK] ] 6}C 3  2u L] @ /}  ] L U3T  `} \n=DEe  "6["6X~ 2p c]i^& [& 2ce(] k=h] hJ)+ t$81~ t3o 8c(}ohr3 !.] ,]2,3 kiA3o V, Gt&~[ "] hq I1}hM ]Q5QTU&uq}lL Y254VP)f !] *] hi- t:~%t~K Y1t t5}+] QQ% ~~4 \I]q~ 3~!f i6 iT3 R] 02[:^ "} V2$;]>Ee m8$p~] t%8k}t(0S 4[ ] /])j0 q] \Q LC  %5~m]D ] 7 uy-~ii%^Y} m]  \Y5}S  wE]td7'}q-5Q \J9+.x)X$p ['|~ @t3Qdu*~V6-K  [3~h s0K%]] ]{ " g"9  z] ? l] G2u$}J[V}YY   h3oY!.}q 5$ ] f0 h2c" Ve# }rWo] ciyV~ )f 9X] \3~ Z 52)[] J iVW ] , 6A ;lSY~"6u':t"[+ *] kVx = N8VY;5}# 9]O) ^rcVe"v(~ <7|]   He! [4:~_] RT,Hx B3= tk(}o%] ] th9([3} Zje@6q Hr, = 9z3 3O  ]h2 u~~\}Bu9q#t #&] h6-u tQhb] o6}mh|L]hX YC >] us/..twQ%^u 13: L, ~yJYE%\V' (I   V_t(: + h ] E] X5 @ ]~  !\v $],#Px [L( z ] { i] @q <] +]  d5 ) "} .]Ut,4~* ] =.q <5~&({ |)  ] s}@ ]{ u]31,~D] guq m0~[ e"6z]\3} ?!3 37 u#ATt(b}'3~ VC3bb3 ?5QGuqh)j0 t8q}q] v]Utqg ] e e! )s!.mRM]OJ ] L]i] ]##I# s,~[v5QSSt6}K}>V6- 5} ] Ro(bo$pG ~~  ] =6_<)\Qi)f TT\) [ d] F] h 1 V  Et()}(&] hq2 s~.e| u q( [};\ y$X} o#Pvs  R && VJ#81~ iy,2~ n/ q~%^Y[}@t~F T  ).W] 2Y}c \R : ] M  h,3q )5~%]q Y~bq ( {3~ ht1v u"}!u%<]] k\I~]\S E~e)u!~ ] t6\C5z~_t3KX5Q~# D[,3  tR}Rg12(bo] Y}9@YX ~o h] z!.~} 5 9] MWuE5~. "6@] KiG4& s,:y3~Z hp2F3= (i'"&R 8Ve"3 ;$ 5QgW8u 5~ c7[&3~ WDtI 9v ]8Wo} 27 O:},l (>w (Z 5Q C ;}  )f  1] N`]tqhtBK v2hE/"A] 2M}y"6/ _pX5}] Sdsz}zWx(boE/ f[ hA jL].,2~ [V8 k]0 Wc }1~W-J tox-C5Q2c ()qO"& \ n`]VS # ]Xu e1(b s8v"s)M%(b "6"  G}P uhxi & <h;! F2 2g h3~ ?^3}0 ] !v]/]  5iL}c h])(!|~5}U!t W]Y W] t(~  $ sq'n]A2~ 9 u] ]3hok ## 3 ~t $*[5Q~ 0' pB9i~ y[O!.~}u\q }>] 4w] g  5QR\  =%tg5~] B#b zw s1}Kn] ? >] X!3i ]7 ;4& i%4i 3] DqZ3  / <~s$ O8V}z c]'n! hz5 Z }_5}6-A[~6q %] .z}  ] }t 4t?Ph~~ X- u 7{ne! ~0iY51E  %q $p}$p | ] s6~%Z5Q N2]Y:QY5Q]Z] l6u*z: ~H + ([u$@l3 [] M [a3} *Ve" 3 ] \`7} Z~"tku3 ^ F%)+ 'A]msuq-v0 hX. 5T]] 3} ( wF]~o / h`M Z5Q [l5)[j 3& s*~W] D .z{w; xO]v1 nT0 6sq)dMeui*iBh> R6]IQ| yq 9J"6?}#2k.5 >?8Z!p37 9YV}q6" u023 tj}wt5QE  S" 3 27 [V}uK=]][b}Joi,  < 3uxesbK4Fy d2phii ]h6 E\] V("i2a !YOuq07c] I`M3=] CY]}\ 5Qgt{4e& 3Z5Q  "W3D i6-!b2F s(:jsk7qr MY } = |"Z5Q  >q qsq~}] NS]] uy) (b ZD$p  |,  [1~Y@0 iq- ?]h, 4Fy 6#] `_ Y,W u%t(:~W2. e ] $X>x EZ: O)S.{*V |q I]Y\    ] ];}] gYw&R# ] ] 1~zu),~%x>- 9a1}#6~ ] Y}W+!a( 81  93 Z~H Ki"ej0%.K M[5QK3tR+.\z] 2tq}kh I(bGy! 1) Zg\auJD3l ] Ms(b}] 4)t y]~uJ L]  ] hI1v YV ts~K1]_\!5Q~#] '  ]  Lt6-o ]d4VY~ (b (q ]:[~$ [ 5}Y!64 6- ^U Dt*,2~ hM]| ,  = ] ht}hoe Cx] D$py fW] `L} SF] uS^tq}J5;@2a E\5~6ntq}.qYZVD6:|/(G h_1v iZ85 6 / 620z qL ]DYT3ui-q vqi11  , 4\K5a ~g1v 5QA u^,~u}\%hQM 0O.| 24] ["Uc i"& h|7 4 u(+, "i:, y]5h6v] tIq5Q[3]ZJ1}5K] ']   Q X~u3m "Y"Q i5$ ]  o5Zb@Z3a 5!|~ h]Q0 \'Q% i %]X9+~ J]W\85z<]W\a wh._ g22uxos1}u 2=tRqw5Q  E u] %}z '%x0  N  P#6 ] >]]M\~ ~hT5 Z5}]Cs6X}] Jh\  ~oX 3 N]  Nt81~ ] id0 *iJ [ >[V7 1 \>3~i MV.q V9" u!|~t6 S] Z:Cr6-uY5Q1 )][3F ]Et}Qu~=J)-) >1}5]&n5\ pQ| w]U&L!.,3~ !( e K] | e# :~ .sqh t] |Vl6t*$1(~U+^ 2lq ] ZE }E} '])}( ~4 ,['|~y1> ?P]  [E~]\5Qtb5s \5}h s1tx'K\] V",~1~Qq R]( 5e& i9H2 ~} /] \]  i`} )u1/<8 p[&~ CQ1 o] D( `,  G ] l5Q m[K~ vhoe ] SZo5Q}8 |3 ip$p~ u9}$]S u~-8it] iM~~9~BY  0{ z=SVz,Vn %.e % X3 M 3~V D Y$p lh4  [:; i+ /[x5}u?]!+ ]l<]& ]"]/2h3i  E] D H&r5Q S]i3 i,  $}s$ sq}AX,2kdq}S  :-e}  ]  0!msv ]'|~y#e# }> ~e ] OZO] E Yn:U[5Q~O>q 8nw ] X`s~ h7| t0~D-v u S)j0 XV #q ?64 q*.qS 90}* Mh' Stq~) ]3l% [+n  ] ) 6` f, ] 5} VK\ 5Q^c,7H [ k o"6] ,Da- 3O L] J5Zh2a Qe&5~5I9+}]  V6J$ 3a h 3 ] G]uY65R"  q 3iZ|] 41/"_ ]WT]:'  ,: \W1v ]z:r ]} ] e#  A}s 3~\- ]/V c]Ni pg] 5Q p;M VR2 9~ Vo3}l 31)  VQ &(b " &)3w"[e~_ ] Vy ; O~[} N,}I oe ', #Ee v*] ] (:z =] h!] =q A] Y: E*i Q5, w2^] V ( 4}V 2u ,7H ]\ ~ju<$~aX5~%\-R:^*3q '\Q5~[~ xt$} 2i! ,r-J  /"[8( 3 z]  ] Z7nSWI(G \C}b^] e]P] t*}^^] ],W / Z"~sqT6] "& 6} X8  ru^p gY$5}e+" T,:^+^n}7 o]uS(b ] 8~4Y}w}F W> ], iR02'4U # {  w 2ce( /e(4=] h] Y~ @c 6 ?Z~#Z!.~ Zi5,2D(G  9%S] ;\e3~ =~@ i*F0 ma  . G5  c6[ -J x~Y@hb$r Uyj5QT&^]@] IZV~ h9 U] 1][!.  s] u=(X/ \h{, V)}( ] >~] U /s*h x"& E S 9V~ 3 Zh$p a, h6, h" @5}+ NY5Q}],rE h $p{] P5Qp) t3*Vi6R iC&W3lN] ]%Y#~ Ltn}] *"H] iStI D N] >,l !6R ] , q\3} />/ [UxU6} ,s0Z@3} + ]i9 i3-iD"j s':tk]Z[3K\k~pr# 3~ :~aiz0 o3 9]  ]X5QO>8 V] ) ~Y~9Z45~]. X3JC$ph5QA}l" ]hjX {]-9} 7n} u Vh2 3 &uc,^_5~6th Ve"(]h6 Z,m Dsh' E>~O9+4]4Fy 'Zp"Q5va ,] XIXV_"5gt(:}ZX~"] 8 =Z~r\h0, H/< ,uq 3~  "&   i )[j S:3~ :~! @\   sq+Q[$p}2in H[F@/^"6u*~i,Y0}* 5QA 0 22~ 3u6!u/}iV)t  $ u$= , 4[!.~V$pG ] =]Ot()d Od)j0 ] 9 }]8~ha8 hs iF/< 4"9 !0]W0{ 9,}b-(b t1v t-q}{hm] [o!., +] >.]N] =1]b]_W Y3i ^iL"j d# " ^ 9(  ]Y~\SHg5~ 5Q h) [/3~ }& ].q Mt] r,]   us$~t(5Q~(q]a7| <9$p X5QF tH##} i&7]m ] 'z Xuaq+ O5QT ez6-_$p}  Vc)\j ]  s6}%S}3l 99 9z3 5QK [th6X} Pt7~Xqzc1)r] yA] 5~-}1 9W4] 5Qi3= X~3 }J/7a! ] [>3~A1 Si, "6^ZV. S ] 8)+ Y~-t }  &5  4V"Q  ] Xh7 5] ZVVt{hBe'1s" U)j0 9~ 5 HLh93l (] u*y LdI N{ ,  P} G[]  ~ ] h-J xV}q*} ] ] 2S ;p&"9 A3} $8 p w V :B9AN1r)q lu}%+Q "9}D  E P3T VJ i 4jw%i, h=5Q n]W6  ] m3&yq] e! [^] ]XYQ0R~ 8 \37  EC ] 5 L}  -5}` :,J) ! g>S  `[H~JtAq^,2~ r  zuV(b}E]];7'}$ O5Q0 E]$ >~# "& Zz] D] X~$]t5}g5S | S[ 7ny"2 3l% ]]S#, i$1v Y.}6el9 , }Ee \5~xl] i@#P )a'x S] 5}+ l] sq ;v en 2ce( [0t9?Ki^hZ ] tgip#  ]  ^ *] \iU,7Ht4}Vtq}WqY|:} O/Nj]05Q 6X} Vq G"] ,]5u8q; ] /~` ,81 i`-  )dMY5~ I=%i1 4Fy ] ttPw~Y3bhy3s~qY5Q~[/"Q% Zu F] Z# 2dk q] [u1>[2]  /" 35Qrvhe' , 3D 6  VQ >(R hGn [/}x19d5Q 5Q h$Rt .h]]  6] E2tn6\R$pqqh 23 P3hc, [d5Q6 XE~eaSq I l,~elh$r" ]J ( u_q}KqS2p=:y[#{P t5Qs  kQ $p}2Yt2 $v4v u/. ~ 6 ?]kYWD^}9$p x]*~ E]  5QF  uc4&,Muv25H%%~d J ~Rij3O 1 [9+~: Msq} @] 2sZu 6[ 7n [iv);# ] t+ ) ~K-cV %]Z@] { k Rqt  $r 76-K ] l&R#~Jq  Sh3D  ,%~Zd}, <oq i] y )f im'Ah] },  [6}  ~ev\5}=R]  ] ^W!"S [~] ' 3}l ^q}K hs DY5}$~;W c3}  _] U5Qs OZ'V~<s(.iI)~b]{ 7(b}X3 /]|/[$p} 5Q tq_5~ ixM -Y.!.oZi~#}s7'q]<] O83"? "W6sj] " q(:~W 0[-e}F] %JM3= b|4~ i$r uqB+.? dt-N.Z`Y \h)f & #2p wZ93}0uG}<7 Sn5Q[,}Qhu2 ]pFu(oee&  /iXx P]I] {] ~] V] hO0  M u1x]dZ{^]F~+}1t R] Z< VW5* ]5Q \c5ls(} } t9E3}\SP6SI1C$p9U' u^},6 "?e# X~{r ]  ty}3c)Y~rT^ a] \G# _T] K] =VUid]r}| Y/5Q}~ Y3~ c o4Fy h:6E}C ]iY/] h3l% B5} (Z #~   =3}? T sq XX)~Y] }) (G #~8 uqTAqx ' $p}X2`  6 X,)tN'V w~| ~kY(}%Z/^Xd] X66- : Lsqh ] +`3W}H  ]!.~+] Gi9U> ] )  ] V~su'g5Q i$9U' 7] 83< O=];L-] L)u Gs(q] D"5Q>]xEu-w } \ Lt1 P}' W W]I]+ h]X]Q0{ xYIt} 'z  8 \0# ?.-5}` B <] G] X~<^z]bO81~ {tD6}M%\tEq}NqY5:-] p]W6- ~1 ? ] /6~ :~~s~H ]Z3q  "<l xa~O V~i [  +T Va+ 9 y [ Uh,1= v7 G {T X t+%$p}4 ] = ] gh^ u4~ #1 m8] ] qG  $~ c]~): 5}+ *] a}L] tw~,X  0u7')h \3: uoe n3 R VQ }]0 u6}mt.3} uYBKu1K Ee  5Q@ll ( $p [)] Eu($~ X1}i5} l@o ]0"e 6 } ) *}  5Q U[3~\ }  9. . aρ2z)>:K,@2-|/J9)>1,8+-|cI4V?4FZ0;?50f%RǦ1 ?.:F*Fʭ$C- 'OVL'02zd~n=$5 2+2 93_&1"M5>03--!H4""Ms :uڔ&K%D*.Ŷ#5b9yVfA 9q6Cb$05/K*u,-8gS!78O2 (m /|e7I3 E,Q%NHk9A8H 4A8A %%")D2(akA"AA.0AAoc6+9fA9>cA%"'A*xo1A*x;A_ A0""_9ƒ8(AxA*A6A*IA( A"IA66AI:9&:9z:9+q:9@:9MIq:9ܯ :9]X:9E:9اf.:9S:9l@:9q5:9޻]:9:9R :9I5:98MT:9Jq:9 :96]:9|#:9TD#:9q:9 ]$:9J]:9Q36:93[JXa:9%J:9K:9 :9l7p:9(w@:9^I2:97] :9]pS:9UJ:9q:9:9 !:9 sd:97:9 :9y:9_:9"~%:9%:9;]:9] :9:9a]s=:9j]:9]w:9.*^:9:9 \:9a6:9.-%:91:9:9 .:97&:9P :9ݚ Z$:9W:9!yKf:9q:9 5:9 p:9M:9V\:9#W:9c[[:9\],%:9 eq:9]l:9؊.S:9K:9 [Jl:9{%:9l:9 :9):9]4:9:9ێgJ:97 :9K:9*:9) %:9  :9q:9DJ:97{:9:9֫:9\:9!:97:9'q:97I\:99:9;\q:9^I:9-:9$:9o9l:9*q:9n^Ie:93.:9[:9vg:9]::9h:9. :92.:9e:9:9.:9jz;!:9z::9^I:9J:9\"H:9:9K:9<:9% q:9o:9@:9x:9e@:9:9#:9 :9 \.:9:9K:9 .:9$@>:9U]Y:9W [:9hg:9^]:~:9x:9":9#K:9.:9m%:9 .:9 f 4J:9߽ %?:9\;!Ioq:9]$:9,[j:9T:94:9I :9ؼ!x:9:9/:90\E:9JG$:9]::9.:9G:9:9 :9fz:9]:9]sh:9"]:9:9r:9:9k.:9D.:9 $-:9%q:9d:9yT:9\l:9\n:9^I":9N:9:9:9TO:9 g:9-:9 .:9|:9e:9\:9"k y^:9p&^;!ȕ":9.:9%-.:93:9%E:9:9Lf:9כ]  \:9ל%:9X Z:95\:9 :9$ :9$#5:9Q:9 ^:9_Io:9 :9\ :9:s;! 8:9J:9%q:9;!XS:9U:9 3.:9&\E5:9'&Z6:9 4:9 x:9 J:98:9% q:9x.z:9H4:9k :9\oR:9.:9s]:C:9~:9 9 :9: z.:9y :9K:9R:9!.:9H :9* a:9x, ;!5#":9U{:9jH:9:9J:9  %:9g]:9.:9:9 T:9 :9q:9܄]E:9sc:9\:9\3f:9#$l:9A :9 n:9:9" T:9R:9:9]e:98%h:9 9;!X.:9H :9]:Gm:9%h:9D:9,\$I:9ׇ.:9w-:9K:9V]4c:9Pq:9 6:9\:9S@g:9c\ z:9x.:9D>6]:9e:9>:9]::9]:9= G,:9B*\:9[:9;!:9,t:97,5:9-:9 N:9HJ:9ta:9 )\:9n:9ξ/:9ο.:9bWq:9ۻh:9Y:9H\3>:9"N4K:9~ A-:98%h:9Xq:9 @:9z $q:9 w:9.:9p7:9!g:9~],.:9:9]::9],7:9= :9'\]s:9t:916]:9:9^I6:9E:9:9߭ 4#:9#/q:9.:9դ%T:9թy:9-:9 :9!J:9ރ ;:9.:9:91:9c:92 ^:9%aiO:9]I:9gz:9It:9:9}Zy:9g:9:9!^:9}:9 7q:9p:9:93T:9b^\:9 QV:9 z:9^Iw:9l:9 \:9IA%:9p:9Q:9wq:9:96#:9y |:9 :9]:9:9b:9 @S:9.:9 $K:9@:9h 4:9qf:9W:9m:9@L:9ז:91q-:9 2:9v :9]eH:9!Y :9I+:9֭[v:9 :94q:9>lq:9:9:9']!h:9̴%:9:9$:9m]!:9ղy:9:9X-@:9k q:9 ~p:9z\Xa:9S Qq:9p:9+:9B\ 8:94Mz:9-:9)u:9K:9Ի,:9.:9dK4:9ʷ^Iu:9:9 V:9^I]:9-:9Z:9$ ::9K:9ʍ :9-:9!c:9[J:9.;!^I:9S:9b]s7:9D6#:9ִT:9#@:9.:9 oJ:9J:9q:9Ϗ:9d]7:9:9 :9c .:9&:9:9s\5:9l:91:9:9z;!ǧ.:9M:9ч8:9 :9 .:9[J:9:99\oR:9E:9" tp:9e @:9Z :9\ q:9HK:9& Q:9N:9W]*:9[%:9$q:9tT:9Ql~:9R:9!:9Ej#o:9 :9&]0:9 @:9٘ :9}L:9 H:9]Z:9@:9f[3:9 :9̑:9#t:9 x:9&:9\Ex:9ܪK:9y .J:9,h:9i`,x:9;:9ء @:9!:9w:9"@:9:9I .:9?.:9ԥ L:9L\h:9g:9:9:9H &z:9ёeq:9;!X\3R:9@:9@:9 \l% :9  :9 .:9*[N:9'V[i:9<:92K:9S:9  g:9$ .:9t:9:96.:9Q]D:9#%p':9:9>T:9 :9*wD:9ҫzI:9ҭJ:9 oJ:9Q\n:97@:9":9"q:9"^I:9:9",:9:97q:9:9ν D-y:9p.:9 Us:9C]X:9P7q:9w Z:9!6o:9:9E-:9Sao:93:9^5I:9@]::9:93^:9M p:9!l^:9 \:9]:9 :9 uK:9hJ:9?f:9Jy:9v 7:9 M7:9.:9J:9{":9,7g:9#-~Q:9&:9۹\:9eS:9x%:9 q:9q:9|uz:9kq:9;.q:9 c+:9\H+:9;:9K:9:9Kq:9? =h:9].:9:9 ^I:9LT:9 :9߰]j:9U:9#bg:9:94e:9t]H:9 1 %:9#7g:9@ T:9 .-:9|z;!:9. :9\#:9@:9]Eh:9uD:9f .:9q:9.:9:9]]m:9!\:98g:9 >:9:9!7g:9>:9Qcg:9# ::9&:9 nx:9I:9%:9\:9]:9y:9d:9rn:9\x\:9%6 ;!?Nx:9K:9N;!aK^:9]!:9 %:9ط:9KJ:9( :9]:;:9H:9]YI:97:9p:9"]:Nt:9%ik:9Ks:9]1:98:9W+:9Ը:9S:9o :9׿ @:9)2%:9^g:95:9< e]:9u:9:9'^I :9 n:9:9T:9g:9#e /J:9~:9 ]::9]:Ou:90Q .:9:9:9K]: :9]:D:9o;!|aJy:9C7:9Q>:9ѩ[O:9 7^:9:9۠{:9 q:9r:9z;!7\,:9yf:9;x:9:97*:9Z%:9:9 :9T:9UK:9 n\:9 pq:9̻]:9@^I4:9^:9F.:9\?:9q:9[:9&y:9H h:9=5:9" rx:9 w6:9Ң 4%:9%z;!):9W{:9u5:9:93$:97d:9yp:9:%:9$::9g]:9k7:9^:9 0^:9B]l:9:9S:9\:9:9g:9 :9y:9 q:9:9ST:9'y:9in:9 q:9 \Z:9$+ ^yf:9 ,:9Y:9#E @:9:9J:9e\:9l:9`:9:98K:9s] = x:92|^:9:9 a:9]:V:9 :9[:9$:9 L :9"K:9uZ:9\,:9q:93.:9f:9[X:96^:9%P.;!J^I,R:9o :9 .:9͗B6:9]:9[J:9:9֜Rq:9G@:9]::9:9  :9/9D 53#3 / 4G',1;gGjE-C 5Ti,;-,3w6.'P/̩P61P(1CP P0P0|7 7P_DgP7,!P)9w/:9P(Pl*4!%6P%6P'2_DrƹPn)ؠP/:P,6/P?P*<PW+WP#jyRAr5!# D>F! , $ 7lD2)%J>!' 0$3oD'1`0'J~ o*!wQz* !U% -K/v5o% 3"#5879-9{"$- "K ,&6 eq&W*C%/4}'(#4 0&#8"2!  )#uS3S() x77!5_?2O>411;+ABAB:WB%I*t*ttF,Ao1D*t*t6{̉Ao2L*t03Ao*t*t%AoAѲAo5F*t6{*t0*t6Aot͉*t13tAo2Ao%fAo%1w*t6*t%AoAoAo0MAo_*Ao&Ao0H*t5[Ao_0*t* @_AoJAo&*tA*t* N*t3`<\#2N)vLV,1U) 9)=48'; 7R OL.tFzT!)7L7m+6pE8*~f8)g5(PmӰ#K1 0#Z6-+&0%7J" 02%2@!=K9o!IAA!7RƢ8A7!fg@!A @=@  *@ W757 &l00@7@I*7gض%y0703A&lA!1Ƣ<07J 7%@ Ƣ)0 7-@Ƣ0@&lQA) !&D07Jog19o&l(728Ƣ01C@ ]@78$[0;7@79o!9o&02Ƣ7JƢ!@)<7 Ag)&VƢ8ܯ@"Ks@  9o%' 7%9o^9o"5@%'#7!L01f-vA0! 9o5"^%'@2`A78@01@70%'רA!f"0"t78@ډ-tƢ-0\@,A!CpK7gi0gdƢ09o!faƢ017"))AA  7%\Ƣ )A!f_A0P7&@&l9o!4%KNpDX@%'q0)7@=9o!AA&l -5@"AA! ̕!A0!5>@MY0@78ݏ778"KZ9opIƢ%078Ƣ)$9o%'a9op/0G9%'Ƣ!&rƢ7+89o!!A-ȃ":@"/2{0pX@8U&078?9o78AxA0167J@78@!Ƣ787A22H7pFA-@!frgA767%A29o zƢ0e0%d@%'"ʂƢ7e@5-A&l@7J&)7 ?x9o!f7&<Ap7p9oB.&'#:X4mȏM43{#kU(LR5}%Fs9T*\?&@ 43/D So[&c_ 1#3_;-ZJ&6:8!(1YٵzKx+! '";t(0M%-7</,E,!'*$[11r Z#5'/F 5P-t7rŒ9,1B(o*B$e;': DJ!8Ea>,1. 1#0*nM"!fS9O7%41?+J351"!9'?#jms!~D|9J;M5f,:E/ )"28T699{E2,( Dr5>+$01EB6!M+ (<i |^N# vt"03h1Օ+"r%>P4}j(L -%5 '1,D#%M#.Ā#!z0$ ӏ+DMg2+"893_%^3*N  4#9-C- (23~: [,; 6Y,h4555 >)Ն?;uS+5a-&X{C#wN&%5 H7yGI+9&>!&J Cs"6 # 3r&m=$38ڞX)-q[/($}>no 8/^.jFA6UE^#+X0K&~tT2s#;+B+#*:(~54% (2!,U4K++ٴ=% 3N/&,Z8g0!|8[ )2&`J3,JG*(w/"+?@g B6ϑ?$#ـe/$_(!q8W20!&L$"8u-CU$2Q+Ķ%l+FZ )5&J881^f.v d298ܻ9? ' ܻ2 yܻ9 Lܻ'Ia y. 2/Hܻ pFxܻ)Pܻ2/t )In 9%ܻ pO  )eܻ9 2ܻ)eL %Q8[[ +30K$|!<$k*-13%V%3TϪ22s(VʹeSF5M%O5P;5K ;5KhJ1.EH5X3h=T/)OD5EB8kX* RA "RS)I0E "G2gA "PGhYA)E> D5O7.GhLe/ "GxG "Mp/)FJ1.Y7G)F/0RE)I=F!hI5MlS "EJA0P.*#vF:59% O)(38+E7d)X$U;L:$]\/sמ62o73^-U +F+10q:7&X+);Qr-+G+x 3~?Ap/ʠ ,1rA%mw0374}B5P#%(8(2+I_^ n1?-D%'H[h[ K("Y!M!2(,:,5b4KB#+-+"8>(91)% 1/1#0#!/(!a?(v89OϞ.-q5>( ??%~3N )"6G !B-F%>3*zL.6#J&?^_nFC(~0vBJ4*( 5aB$<,#!q(6Ee"b"dGM8{g%(+x_+DJG8[$7r+)'#5E,; Hp$3S!=!qǼ!@خ#F28>5&%%d#9du$A,Z!4+ $i<( (*n!Z0 #!&$rt%\C?m35o69,8WM Dw%, +?1E ז8 Y*Ɉ 31i#>g)"*&&`;AI4&.898"!19*N3%23_$)#/69{l2R7E!w5f!,h2!9,ή&n;6U^'j17߮0)E$4/Ԛ 0x*0i =ۍ8ma v8:-һ')"8/3_7:0't&1 'h$-7 F7; ! 1f"cQ%9.u,fcnrt ,fd>\w!t,fpo s,foLE Ds,fu+ʐ t ,fm8Fu,ftrtO)t u,fwyru,fs% u,fjr0k="4U~R$43U'33zL0kzU7U7<~&U'US3z*U$4U"9q&s4o'9" "!D h=t5J1%=.y5!?$#MF: 6'(0N$ڷ61}Ǭ lϧ N4ʶ3!{}I4r 2p- 2^#˞q' >&.2A) 8HK4,M=#;9d2K#8 :9;!"qq:9;! qq:9;!ƣqq!Id'48 .$*'7 R ,!-87): 6!3E&(x$$;(92B3)+rb!&0Kt$\5c"-%N$w(K[!25.18$AM8=w/nqII7)I$:AI777ؾI$)xU'=;>&L86 6Hr&2@avCj0.4'64g."3_F?e:=9+ 273Z9ǭ07 Y3D;3Z$U<D?V##*x4l͔%:$'6"TI %".%'!cJe#13ã2F:7,<-w5q4@ 4!)\ 2.b!-',K(C7)'F,D\.D ߷/&&7XR6Ŧ2#Jj/§Z6:5$O+kPe58/=!Ԥ*8,a1/0p0w۔gh C(T'8sA((f!ӓ1:5A+)~!O5%&7g*L2(Cr40"iN?0B1V82C/AElK%4+y"Ƌ%46$1+y f$0D__K f/00R-9%$6%414?J+_< -"C=U5*9DC/d6Y-X^%-Q?0kvs2N4i9/%U_+Udv9*[$ 76,09" E4k+4ϱ.&V4m4LB91!6C96#e%'"0#(3_A3ja ;6a,;$oaƬ;;O97;_B;a#a.Z,a/΁aa_զaa;/";aa6;47ua$%;(C;OK\a^;(a4;a/%(;/8a?; a#A;tNa.Z;at;;,&a7;@3,B%mo/E;iĸ1&MJa+D"C!$&K!!Mص&/$L,0>N.%6n% |j+Û&`8,86  v5J)0!<gӐ #1M Mh3_[ܠ9C76"(w3JfJ6 b?5( 2NA,M3$+%Τ#!$#ͤ_[(1t+Hz.!L 9A-#2l-*:' )63/;,ZG&GL,m,;@h:&T"Ct1r1.@0Ⱦ4:8,#7,q2 9W,^ #D9:*}423T9(p5P0V4({G78WE_1?r$3Do$)u5$+9G:4o J( J#oc2n!17^6m*E.7r@V)7&a  h'&+?L7+-x;Fg+ @5('p*b2;j8I4}&,*~R8Ck/4344*n!q19ISK5ax!&2 +ZD #%?28mg 6y&lF)4^O3'l/9?&2 j9P>+\\$ /&X!5+֏'ܔծ!2{%'!7D#C+ 5  9%>&9}ln294{# q(5((5/s%X@]6z B|P2E.)0/sѾ0#"F*2L2^J!+*N@1 B4f % 4K#763/Z c[I)a/n"'!XB"v(%.O0LC%B&,/(@/t@xM2-C1B*8]U)9L9([2uN)(^D #Y<]G@,-!5$&(M.N,~g.tCl`>"LǑ6#+(@*%*09,2E: U6D .%+2W i3<7 '27&''6)#:"o2:9sv#;::::::::::::%*,73"&ѕ8fQF&8 $7V+N?z (,[=d'B\' /# r62)='-D4v+g8r0#51 M:*è  ! .`,hf59f,Kf3+f'f&f)9H"B5I+E(w#z! "|%C0F93zmG0;*L*,'*G#SA%v0E0)P0ԑ'ԑ<)P,84}ԑ4|4)P,3ԑ,e)PZ5A3{ )4m&##kMX/:4e.s&%F.6jT3,GT'(~0: =7L->0Ph /3(3"8/Gs(Ch44*16) 0u*J#MKG?.g9;F%!JT$0&ف&V<-1[%N3{Ep7},,C-*7! !uR3x ɧ(D8f^1**8f!M-/^(AdG.-/MehG* ./ %O8f)1hG BG'G.^Me8f8fK-/گG . YG8f)G{*'E'K /&KKg >/-/mM/ GE5W 88f6IWM/e./'0E1hB}>GL2Gh6K4ze-/G1(6hH./ B/>'./*"z^ 5W>/G:1( N(%G ./kG-/(Zh. HM-/i>*e5>/6 G(H1 ^/b1'6/4e*~4O !5WM:6']h%18f(C HK^>*/V./**UG8fBk(C.%['zM( M(AMh ;(='68f6Kfe'%*+ U'. 4^' ^8f(N5W-/L.(18f#./K-/V./-/ /-/)s G K*M2M*]K*(*i5Wh 5W8fW>|5W*ӮG(*A1h.bG(Ŕ*˃>/!5W .2(* 6'([  1h"7K .h  DOe8fǣ>hehG(K$E8f. G-/v6*(Ժ^/M8f**6"*-/M6^ 9>/ * @G  U./%6-/8*1W6(he6.//-/ K H*,'?>/-./ 3EEk5W d1>K/$*= 4-/,*8f*8fG-/6B1/̱h"p^h.'-/'- &*/6.(./uhC]M'Neh*/  K 6/GU*./8fS(5W(>h92[.8fe-/,\' T*1hӻ'0G-/5W'>5WGG  e/"8^Sr/+BxP0;3#BzS,BwR%v0E!.By`,EBuR[*$;BuV2/B!SBt+oHBuMP'+BwuRf#%D0BxTHh*BxQXhBw -H"CBtTJ)2=ByQB$+6.Bw? 2^BuRj&EBwSy!\,$Bz9O2*D!B{oQ~*O(BwtO*P(ByS'.&,;Bw R0BxUx0&"`Bt_+wBtTz)7Bx&'BujR0'IBvP/1y#BvP+H';B{:m$- BsT7 '2(Bv$/BsR*'(^Bya273QBt}L"0BuP-9#BtRBwP01".BzQ,#^%BzR1BxuT)31ByRX.A-BxS"-)>$BxR\&}$\+B{UT]H3Bw*" Bu#e3CBtN)Bu0!w0Bsf/C/BtR;./V#1BzeR./W#2BytTw By+T Sv$EB{a @BuS.02BzPZ*:]B{D" /dBuQ"!Bw:QT3& +BwdRy,@BycQ$,BvTG$,ByQa$% BwS2<0EB{" !BtS '-Bw#@BuQ*!Bx 0 XBtGS"11N/6Bzi /19 YBtmS@&3PByU2BuS<p-,B{T/0<BxQT+1%SB{*"lBs3#BtPA!."BzR|JBxTo&aB{zQrs$#1TBzO283RBy1!Bs7'5BtQ2MBy@BtO-\B{t7k!mBtS!,TBx&W:BtS2/R2!iBw9R+BzQf'.(Bw|R3By7O)p('jBu*Q!91,BxZ1.fBt,+%-Btz$l#/ Bu@SqM|Bx/Q!%BuD \-Btl . !0BuO/MABzd/NCBuQ'*(BwB'0BuR&BxS)&#Bw63s-BsM$3B*uys0Bs!3xBt3,2BsP;BzZP>ByoP'BzQ--rBzR)EcByR_$z*B{T! ByFgBtqT.N BvQ*.ByR&(>BwT*0j%Bwm)%Bu^So#!Bw&R-B{P#"Bzz*^3|%\BtT/b#vBz.SH/c#wBxpR)1Bw"L+Bt^Q1[2BxR5$/vB{SlXBy$BsRJ ,Bx0e)9BuQZ070zB{nQ]0B{ r+CqBsS!,Bw;U#OBt2%3BtO/TByO2G1BzPN/X&BwT #*. BxnQP o IBy)Q t JBzV#_Bu R&+hBxR- kBw-R.BuPl- mByRU-12BweQ&,:>Bz 3bBtrRx(%fBw%c/'&iBs(2'1fBu`Q*0"BzP!*0"B{7k)$2)BtR -6 Bw5O -7 ByO<1.BzP,>1/Bx+S1Bw0pABtO*-pByP&K] BxPRd3U`)B{PRH3-0B{#&,xBt BtP0.6&CBzTBBxzR")7-Bz*R2"qBwmS2O51>BzVS^VBxR9)#Bz) Bu\(zBsQg)=B{c%)Bt2(Buz/nBtP<13t9BwQ@{-BxR]*Bw#0sLBu[3BtTP'%Bzv!)BuBT!=$ByNP!?$ByS&]3pBw- Btv-(BsP9)Bx^ BsRv&`*&BxS *m1GB{k"Buh",P BtiO 0BvP0+?)BzQ0+@+Bx931.hBtfQy0kW2Byi+:%9%BsTN2Bw\\BudS2g&ByQ-'# Bx)(f&BuT#(LBz'P 1\#r0B{S:),J"!Bxl$yB4sT=&%BxO& %Bz[T"zB{lRX#3B{P #&Bz}R#&BwR3.+Bx1Pc0-1Bx7S((B{FR3A ByRE.Z'BxP?.q#$ByRr+$iLByP#n-J(#BwPe?3BwSm#kiBx) BtS0]BwTw0`Bz0)Rs!BuL`)/ Bt)lBt(BtT($ ##B{ Q .Bx6P2.3Bz S|2 /<BwcP.k%2BzP*Bx}P*Bx~T2K)+Bw'VBt8,$BtsP0 0bByP,!BwR)*!BwPQ- 0l3ByfQ+f%h8BxVP !BwS- BwO- By(R~*v"Bz:Sh;!pBx3}0XBKsQs,s+TBz  sBtC1+BsS *BwS.&xBzP+_(Bz5%BtP1$"ByyQ*2BzNQK0!B{(S82(ByS.v)BwT.SBzQ7+`UBxQYsBzKS))'OBwQ02BvO#.BwQ 22dByT+) Bz Q(g*Bx3BsT,,@BxSTOBz%Q/%Bx(Z,$JBu(T*3BzQ*%ByTQ)Y0QBxEv-`ABue%Bt(SC#/znBz|03BuR1-BxS_.'80Bz/\BtR{2(Bx"{x'.BtP>$B{!T'2z?BvS)I+Byr>3#BtY-~"0BtS&ZBtS"'Bz"*Bsn+BtRc"*BxT!W),FBxqQN2~.+BxT 'ro*Bz6Q-|+Bx\Q^|BwP.!BwSP *L/B{O3BvP}/.)BxQO/ %-BxT(,'/1zBzR,*/1|ByR $I&ByR VBvc/'BuP[2#+\B{E&H2lBuI()(dBt_TU*2By/S0@BzR0BBy0Q2BzcP,TBxRT)m!23By4R!*H%XBwfn+sBtl!b3T_BuR/$3%"BzRB{Q(/-B{1Q3*BzAR91<#Bw QWIBx=S+/Bz= 0)BtQv@&D2B{Re)13BxT_t!00By*l&FBsQ+|-C17BxQ#`PBzO-BxP_ 2BvR-(.ByO.BtWQL,'BvP@y-BzS2xB{Q(3rByOs(Bw1~Bu)R}2M)BvQ##X"oB{SQ##Z"qBwO'T)B{"Ru--qBy!0I$"BuK,*%pBtRB/#Bx2S-;#BvS)%2 ByPs"t BwTRk*k BzT$2EBy )M.wBt-.(%gBu23,$BttS|")BxR#63"MBw;#& Bu Q#& By-PH! By R7-GBw Q~0`BzX ./BsQ0$Bz(/%#0mBsr Bu82Bu3e3[/gBuPk/!+BxR `%$BxtO36B{CS1O%Byt.2,],Bu PM&tBw|#}!|1BtxQQ" "By T1BxQ1ByX".sBsP.B{Q1L+Byzp./BuQb)5BwQ},BwT}(3N1BwkQ ~W RByv2$*Bs^'E(_BubS'~2BwB#I wBuTm+Bypgp+BtS{/%MBv#dUBs-* ,Bt)#kBuT-%oBzO)BzXP0xBxD1seBt2TpB{S{2[1~Bz~.}Bu T1E/+aBzP0+g(BzP;#%=BwT6*|(BzCK%w0FBuuI-lBt8-0xCBtD9!N %BtET'uBzS$wByJR v"Bz)R^,"%#BwP11e'pBwS4!#BwPkWDByTx"zBy@ 3 !Bt/Qd3,2B{Su,9`Bz3Q0!|!MBvSN2 & BxQ$',>Bw<")BtzQ-C:BwP*'{ByRw1#B{ Pm"pB{1Jw'dBtc/$Bt,O.BwT`Bva,)&BuS,S"5BxSK$By~O!--!BxS#+/BwDW0j0Bt{Q..BxySV2$%BwR+Bp-:BzR'T=B{Pe"]BxQZBwRn)*<.mBwPXByP/6ByP/7B{P3*$Bx8,3cBtp(Z/Bt2&BuS4eBx S%" Bz8(BsS0*)B{[ wM(Bu$2TyJBuaQ*04- Bz1.BsQ9%ByBT/,-*BvR!!oBv)30#=Bu"o2b%BtRc+-u3?BtPI!B{'/BtT$Z+BxS(F!/lByR(G!/mBwT.((BuT7!Bxe2aBtQ=!Bx P?!BzS#y'By]q${BtP%V!ByR#*B{5S)!"By/1Bt`RC21B{ZR2(=$<Bwj'2/ABt R6 / B{\R7 0 B{]QByQ-,?ByQ-,AByTo*\ByQt[1%Bwhh"^Btu3$BtIR3%BwQ0'B{HT^0'Bw R,cBw_Sb<.B{kR#-BwPD) >B{(1BtQ+ GBwP+ HBzPC+ IB{_"&BuKR& EByR&W*\08B{'O%O(Bzd 3iBtR,B{///3BtS~(%-B{+P{$$BxRd'Bw R- *SBzT-_V(ByT-"B{DU -!fBtR3 Z0(B{XT/x%3Bw(  BuFT$"1'B{Nk3'PBt  BsRE.0NzB{4Qz*~GBy(N(BuCR-)J,(BzP)1I$BuO$BzR1i11Bxv0|5BtTv#2Bzrw-<#Bu{Snv3@ABxS%`H/BySQ("9BwyPWS(":Bw4,/#7Bs (2-BsQ)BzG(%' BtSP=38#yBx!TS3/ B{O0z$|BtS=$3ByR%%/BxR(o$Bxi#0i0BuR*iB{T$'&kB{%S.Bs1BsP/3d yB{P/y1Bz/(BuoS  0BzO( BwQJ1/qBwQ/0,ByP0,B{u3yBtQj)V-*UBw#3+2BuqPr'BwA )-Bu,jBtd-BsP(BxcO1r"j/DB{p"\BuP&,B{G-SNBuP;'BPwIQ 3XBvQ%t)b-B{R 2Z'BzQ$BzS4*@BvI&BunR/*)#Bz:$3.BtQ@ E2BzQx*3BwQ{&o/|,gBxJy8(BuT!U%1:BwSkBwQmBxQonBzq.0+ABtO =ByS\4ByWA+x8Bt@0 .BtaU$( BsX)t;Bt[R"7Bz<S!"g+/BvRA!9Bw>O(t)Bx.P  1 B{aP5  1 BzRl1&+-xBxP.,1+BwF&5oBu<>)o$BuzP3Bx2)BsT@I'ZBwP 0" B{6T+)+Bx&-$BuQR#>/BwZO/E/B{qP+~')3kBwPh(()ByLh3(->BsT)%ByqP6BwiO%)*ByO%,(.BwO#7BByRn3BzI&m@BuSm$zB{S2G+ByAO++q3=BwS/="BzT ,MBsr-|BtT>t)jBzS3h&BzS0= { ByPR!$Bz$Tm Bx{S#B{T#BwT:A+ ByZS-e"B{h.7Bst*B#)BtT  x&Bw@P/.Bx@P+*1By,1$0Bu!Bt!'H/2BusE1Bu"QBuPL20,B{%R22,B{Sk&!+3Bx$P#",BzMP10^B{L10_BuWk/Bus0#snBsQ_^) BxZQE%+pBw "/iBsQY(CByr=!"Bup"3%_BuQ5",:BwwRqb0+Bx-BtR5Bx4-I"EBuO)(I&RBxR!^-BzQ2"Bw[T%/K. Bx%S  [%.BvO1*gBw+Bt2C''Bt*&qBu8$X%BtS33(BwP1BzP1Bw4ST} BwVO ByiT9.)-B{q.)-BtR #&_*BwSYBwLTBy(3. Bu>Q:0yB{@1ElfBukS"0,BwQ"0,B{P//,=B{RQ//,>BzTc$,Y)BvQ.G-aBw&":BuS".rBz*"KBt&Se"Bx[uW3`2BthT#7ByT{ Bz;~!KBuG.BtwN*2p(BtG#BsS/#;$*BwrP\X(#oByRBzIPn,$t B{T+X!7BtR!'BxR%\(Bz+SG(\BxP!.+Bwn&KBt#\+C.Bu.E/BtSYBySB$B{TM'(3Bx #BtP1%Bx'T1)ByQ-*SBz7SW*W-#ByR&O3FByhR*Y.#ByR&%x&BwO&%y&Bw!QU"5*zB{VRPEBz Q, jBz, nBu:TN%C0'BzX'iBtS93 B{;3&BsR.+Bza4$>Bt6SU.+BvR+=0qBwQ!n3ByQ!!BxK-'BtJR% KBzSc1-By%"BsT$+ByS  ZBy'P+!BzSA">2j*BxS0?BzS2"&wByTf3HjB{yP ',o1nByHiSBsQv$B{Te1Bw+R*o'/BxFO&2Bw^Q""B{-,#',yBuR!-hBwd/'BtBO/*ByRR2$B{R)2$BvS+R--ByMS'//#B{iO$P'[Bw)CFBuAS-MyBxe Bt1S>bB{xR)yBy Rj&:ByP.&;By%${BtQ+L0Bxb'1* gBtR'=#BxQ&.BvOID#Bz4X!4Bs|-bC*BuP* BzSU1-/Bx#2hBs0 '?Bs%'Bt=PK!1=)nBy3# #BucS?'BzdPbO!"HBw'@0BuSBzS"S#N($BxIR"U#Q(%BwP]b': B{P)c'< BwS+1p+BxQ#Bt:H3/1BuO(T2!B{h'Bu*3WBu_SE#BwsP.,)XB{_T4.,)\B{.P*y-By\Q&'0Bz/,$NBs*&P!BtPBzTX3u1BzRz#KB{^R ,*Bw/QG0KTBxx'hBu5P%$$QBzfRt Bw,Pg(!BwS*V,BzP#Bz^P^Q0{B{R.1 .Bw21 1Bt5P1 2BwP&f,0BvPul-B{m,u.)cBu4@)$Bt! 'BtQ B{P#*N2BxQ|#*Q2B{2SO%KB{*R2 7+(Bw%OW/!BxwT1 e%lByv_ Bu&P0BvR,i'YBw}Q% "[#B{SU+;B{NP*K+WBxP('+/BvP+1BxPp'e!]B{8R&(Q"BwS_1C0BxI\1BBuy,bBtT,cBzR ,BxO.'B{wRc2$@BwS'.U!$ByxSgVB{S,-t Bw$)=!BuTa-Bw7QmFBy{R'/}B{AR/~BwP$-10B{s1w#*"BtQ?(3BvRY#25By#bTBt.j/ 2BtjQ+.{B{P/BwUuR.BuS'z/`-YByf#1Bt)Tt *n1BwvP~.iBvQc9%.BzOd CBzF&Btg-'aBuY,")ZBs/J. Bt+Pp+BwP3q+ ByRM0,,fB{$Ty(y+B{> 0d3GBuTm-BxQi&eByRp.DBysT*0)sBwXTW'"h-%Bvy)0(BuP* 0BxR%'.QBzR1r"-BxQk"e(j$eByl}2%bIBu Q[(ByKR!BvLV QtBs+C(&Bu%R@('"h+BzQ,qBwT[)%BwNQ1"!ByIR1"!B{3o !Bt!G.Bu!.`.BtMP`#|.p#Bx/rZ(#pBtS,0&Bz-".8BtZQ-#.9BxP%U.By5 2BuXS/!2BxhR/*0BxlR+WBxQl#)ByQ. GB{f -BtHR *9Bz6&2*BtLQ!%-BwgRR3.:BzS'3.;Bv/.-,BtTk0?"BzR*,)&Bv]/!.Bu2Oh! +NBwR'JByR!C%~ABw0Q\&3BzR&3Bz [3 Bu Sz3~BzQ(~&**-Bz S7P[Brxb%jBtQ*,2uBx]Q,2vBy'~"BuT&rBwR,OBydP?(20ByOj3BxS-4%"B{MQ%,rBxO"''&0"B{=&,-yBteQ6"mK"sByT<$"-Bvj)vBs.*.Bt].E!Bu|RS1 BwSj&+ByC''BBsO#4BxTjz),#ByO03!&B{3O)z.ByPiBw8Q2Bw-Q%+&ByQ}(- Bz1$=3-cBt T8$%?BxBsQ&.*BzR*]Bv[%"Bu=BuP35Bz2 &0BsT5()(eBzB2CBtQ/H+Bx0R /0Bw=k"Y d}Bu6ONNuBwS&>*BxP*F!Bx!/`BBuvT2B{Q}(By3"L3Bt*p1BtP3"N3 BywP3"O3 BvQi,FBxTR(,Bx9R! /Bw]P2AJ^ByGS2,By +&1BtS-?*ByQ-A15#8B{T[%,<*BxQ}+ByP322By/-0BtR${+Bz-Q.F!By"Bt%#E,BtO#F,ByS#G,BxPq(.&B{O,.&Bz\O)6-&B{SJ%a*rB{ )YBsTF//SB{|BtnO2BvRb;.;!B{P,%<BxS.=j5Bx( "BuZ%BtRDW$Bz'k!"BtX~$[(xBuO/QBy5/2BugQ c|!JBw!%BtKRc!BxQ* %+BzTP-'B{P&J/(B{rS*TB{P",BvA3BurOC3ByTBy6S00UBxRG(+E&ZBwTs(+F&[Bzo(+G&\BscBtUQ<%A,WBwR'#BzO/,BwQe#!+BwS-T"!6ByO)1J$Bw`O)#vWByP62BwT(-BuUR(.BzQ -sBzP!(Bzqu)St!BsP(Bw"'%Bt c.BumL([,Bu@(,m!BtO'FOB{<P'GPBv&N&BtQ.(YBz/_ O4BuSS03IBy;P7!~,%ByR*%ByQ&#BvT2BxT% --BzP'(%By1%,1)Bsz)-BuQ++BwS!*+By2R<=%37BwE@%3:BuRN:,BzbP#/a0BvT?+{Bxi#)BuTf{B{IR,#%Bt P4.!BzO.BByuR"" BtQ61^ Byk%oB s3BsR,q'BxSaB+BwQ0  Bxn1Bu0fT2Bs0BsTg&n/{Bx5~!,&Bu?QF!eaBx`",Bt",Bt\Q.+DBzpR+H-Bz+I-BtQ2'BzQn#(By0Bt'3#.BCuSO&S#,ByQ""V(*BwT"W**BuP=1Bw'P-$+Bs%/BtRF$'BxuBuO)!BzJ+z&zBtT!KB{RBt7R) BtR+-DBz$BuP.*4Bz(I1BuP$1 )1jBwU%&BtQP-BzWT <*8'BxfBsQ33B{|(O/xBu3P$HB{WT V3_2ByR**Bvm13BuQ#]%YB{S "BwT 3BzStS0.&HBz2RT0/&IBw~oBtF2P61?BtS%!B{l lABtSH1]ByPS+}#B{fTm\&+BvP+`@ BwR'IBx> a2Bu+P-ByT1/BzQ*%!OBwQ*%!PBw1c'o2Bs=3/uBtP&'>mBzS}"B{S4,n!B{S,pMBwpS%2o0BxR+UuByR$ Bx)Qx+ BxW$%mBt wBtRV,-6BwPE3jB{&BtkC)!Bu-T"#BwoO9,7BzPz^";ByaQ1-%Bz'Bt+5"Bu'(  BuxS*BySD2}.BwRmG$ BzQ #(<BxEQ Bu12 ;BsP ).){Bx hBsPjO*tB{SX#@Bw.Q8Y#BBzs{}1mBsoSi*BuS6*)ByQP&q#gByTO#$'BzT.~.]BvP ByR5BzS+B{)QS0+</oB{)[# BuS+Bx- BuQ[ 3Bx^TR+%BvQ +BwP6^&#BvTu*,IB{`S&s%#-BxQD&t%#.B{PO"&By}Rt0H.'Bw;.,BtQI1$BBzS,+B{ Y"kBtdO(Q2`Bt\++BuR'w+!ByQ']ByR>"Bw&%("BsS1$ BxO$$.By*P:'/0ByR2ByRE(Bz#eBsP #pBxASs20\BzRX3BvQ$"Bx P(Bw<]2*XBuP)@+DBzP+w%BynP. 0 B{S&)!hBy#T &BwO)%B{~Q!-!+S1*BzwS)% B{R!&PBwQ/VBu.P3q -Bygh!XJBuBs}0 '@Bu~RA$u1*By$v1+Bt"Ss+Bx>?(w]BuP'$BxQ1v0JBy %-(, BuR- #BxPQ+u#2BzF+v# 2BuO'2XVByRo-~/ByT1,BxCO2"BwQ/%Bz0 Bt+rBsSi .oBx*kBu7Q#-#{BxRRsxHBx_S0-B{16#:BuP~)3BxQ,6#BtTYf !BzR3.)Bz)!+Bs'BtvT $"ByQ$"ByRN .j%Bve/BsSai/BwO$zB{Tll&ByR+PBx`+1o+BusTD/ByS2J.b2%BsS1/tBxS+=By[Q/,BymR$9/!By=T~(+Bwlt \%Bt]d Bu\1R&&BsTr,1@By)!2BuS`!B{PB.-$%EBwjO#!Bw TV-vwBzS/T!'Bu/Ti&<J)By!(u)BsS]&B{RQ2"~*EBzY # BsP1tB{}T3,BwWR,0G.&+9Bxd'J/43BtQ!2$ By!r$DiBt!t$FkBt?."-BuO*2n'BxSM#-p!{BxS] .B{dS3uFBwQvGByQH0*Bz+$&#BtR= !#BwQ+BzR(R2aBz>*rBt>R#C!>By9P<$,UBx |&7&B<t|T| &BwS,BwR>)3*=4BxYQ)5*>5ByP%BxSI )Bx/Bt Q+/-}Bw.3BtP#!By|S2*\ByQu0#BwSv:**Byc%8 :BtO"%BzT!Y"XBx!&BuWa+5.B^s/5'1Bu8T`+(A.cByQ#13BwQ($BzP&1(4Bzut$$Bs'$Bt!Q4$ Bw'=$YBt<(-BtyR-#YBtQT* B{R%#B{TZ*aBxJ!.2SBuSZ/gBy<)9Bt!%BuTI:D%BwR!%Bz Bu-.W$BuO'C1Bx,&b"Bt-l"BtQ)?SBz %F)BuP)0/8BwR! |BxHR"6+BxbQ"7+B{8)#Bt'$Bt'BsSS 6+Bz~Q&LBvBtP5"By?R"7Bx!sM%*BtbQ):/B{vO9!'BwxEJ2I!lBuHM.Bs2WBsS'(]0-Bw2Q71@BuP"BxH1  4(9Bt"3bBtV311bBuT0a3E'|BvP(._.By!)LBtTK!)NBzy (Bt0'v+!Bt)w+p2BsPg!VBz!S#$3B{9R8(,lBzPwD0B{T;-^2 BwKPF*-nBxLA"8BtQ$BzSN*{ByT&/.XpBvS/.\rByS(W)HB{S $jBzOP2 )2cBx:~,&BtT0*,ByjS$'U&"/B{O/!BzlRZ*(B{R,?BzQ- ByQ1&r%BwfQV-Z8)BzQQ)!g-BBx!#+)BueR3N'"aB{R|BwPo3/1BwO,*BxS,*BzQ:+jBUv 'PBtS2,p$ByT"+Z$By>Q1BvQ>Q,BwHR 33/BzgP%a+Bz>PT!-Bx5*CBsSF%BzS20Bv{(i(!3ButS  <"Bw`+-@.BsON2uBxR%k,k*ByE.^Bu9O- By8P1$qBxS"q2By:RL"r3B{#R.BzhOBy'-Bt9Ql)<Bw!/rBt;'(`Bu#H*BtOM-&Bt0Bt<i/+BuEO11BwQq11BxR&eBxTBBv5$.~Bt>!I.BtP.&B{'b-BsSl#t3B{Pf" ?ByCS"\02BzxQ&BxST\(*By%O$nQBz$oSBuR:1+0cBxD%Bs#ml1ZBtPt+y&yBxO1]BzZ&.dBtTq) 0rBz?T) 0sBxf $BtU&.Bsp.2L1BFsT'B{P( -,^B{jR$'7BzT(-,`ByO1l%(B{gSs[#BxG^v%BtR**d BzS*,e!B{,P"1_B{BQ`"1`BzDP&-BwP BzQm ByQ ByO2Bw$PN)/BvQO)0BzRP%^,NBxS/IBw-o3BtoR?-*P&Bw(S9*! )Bz,S"fByeP &h%J-WBxrP|dBvQ( *B{,\,gBu;Q*[BxS$#B{b$#BsQ_z*ByO*)By+(PBu[#Bs-&BuS?% &BBx4Sx&k-&ByM*"JBsQwB{SEQ+gByPP3i&BvQ,!&BwGT BzO$.RByPe%BztO )BwqS.}P$ByP.Q$BzGQC'n+BxQ "oBySFS+By#"#Bu"%;]BtS(%#,BwRW&)]Bz0 b%$BtP'XBt"5(?*BsP+2&BvT L'LBwT"T#PBxjSR1}&BvRN*B{,[Bt Q&(+BzmQ#/[Bw3'+BsO.KzBzSPd,"3By';#BsR%' BwYQ.BtQbfxBy&TBdizBySBej{Bx?O)Bxo3LBu]+$-Bs\&# Bt/ , BtR2#BwQ % BzS-$'B{{T-$(BxPBz1Bu"F$BuN/"BuTX03u!Bz,032BsPv(}L,B{S3BzRI#B{RZf0B{JSX)}%^BwTA)z'BzR"" ABvSv DBwz/' !^BtTT/'!_Bx P(00Bz{#wY2BtA6+($:BuYRi.1"Bxw<Bsxh.BsS2BzTeBx<+rv.B.sP1BwN^ 1BuQR3)B{&R0M( -BxM!3.BsO{(a#BxPL'_Bxa_/#f#$BsO2#z+BvR2]Bx2f3s.nBuQ'-Bsy~Bt4OzBxNSK2$BwPBwZ*?6%BtR"$ UByR"$!VBzQ#"3-8Bxm%}0BuRg=/tBzHQp3 By^Q.BuiQ;0A*BxB! .BuO$'4BzR2>3*Byw#}Bt$P*/2BvP*/2"BwhQ +l/B{ +m/BsSL0-,B{ Q0/,BzRh"28(Bw*S"y&-BvQ,%"(Bz#1##BtTu1Bx$$mPBu)_BsaKBuOb`BuPQ"BzR "ByS~()BuQ,/BwMS)1&3By Q%sB{ PU!!BzURK2rBz]S'1`BvS'1dByP i,w8B{KV,!BtQ(BtuSf)"/@BzO2Bwg*,GBtQ.3-'BxP0Z+BxXTO0XBzS$?*;BzEP5*DBxg!BBs +"$#BtS&V'Bzn33'Bu.z-.BsQ^!},~BvP- 0:3BxQ+/By'2gBt'Q' "Bx,"+!BtTd&B+'Bx72yBtPJ:2{ByO!Bz&:#0* BuGP+*BzP2D'(Bw{I.T!#,tBu"!"BuwP$0JBs?'2[Bu,P0)Bz@Q -EBy,Q% 'WByPa#U2FB{SPV*2BxBQ,BwaP1 2,&ByS&,3BzS"BxP#I.8)ByVQF$SBy`S3}B{T4$.|BtSUBzO/ *BxQ)2ByR#+J#.BxQ('229BxP'$$BwC#jh1VBsQ$M(DBw}b BtS* .3/Bzy*` 9"Bt~"o)`BuSp1:Bx3*-BuJQ3 YBx*.0R)Bu8( VBSuQ.BwbS0 1ByDPG)#xBvS.$*BxR4+.lBy$,BtgR$[e`BwRPr&B{eTL)j/BwRa&*3*ByFP""R^BzLS&M%BxS,BybT/*)PB{TC(R%0B{0)$Bu*'BsPF#<BxsPx.'B{T3*!;.0BzTb#aRBxS:,/OBxOQ2B{?RB4B{YS1#rBxJR1#sBwA-U2GBsF3BuO%-V%uBxY/-Bu("r33BsO-P+*Bu1P-ByYP'# BwS5&3C$BwQ=#V'BxP/B{b!&RBsR0w'BzT,-L+BvQ035BzS,YBwSO$0KBzS[33Bw1{vBtS+V,BwPS'"BzPy 8\BvO-BxP }*BxPByR&-%qB{Q)EzBz"R"/'BwS3 =B{iB8t3V()/ BulP!@$BySf!yBy_Q'&p"ByO'2\BxO/'Bxx"/jTBuO(c.ByRk%>$Bw3Th']"_B{QAoBx|M!.BtS*&Bz`PY-1 ByR"vBv+ T. BsO-1)BvP1BxS)U-wBwQMBx)D(#Bt-,_BuS;/,h'XBxkF&HBBu}Sd$gI2HBzkP;D#,BvQE#,Bw)PG#,By^N- BuR[)i By.,$)BuTK2BufS)-d-KBwS!(n*Bx%.#hBt~RS)*Bz_OB{P+i(*BwSu@By%) BuS_Bz8TE,v.)gBz P8!RBzn+.BsO$BwOS\J&4.#Bw1RV1B{R.*5&BzjS B{QRZ%B{O(r+,ByPZBvRO'*hB{Pf-Bz%0BuSw/1BxR`0$OByS%/PBx3Rl/BxTn-(BwP<BuPi"3BwOn1Bw-$BsS-'+ +BxDQh-)BxP"BvP!O2BwRgyBv#7BtP%2BvO$r*M"Bx;Ta38BxQ%I)BzRBwJQ1aJBzx(BtX('A5M &q44m=&1O%FF3{-js2##k:.41`<'g"L3_-p߁40#V8RZ5:$ J="'՗.Gڠ81Z863a'#%S[!U'Ӽm96 a#a,(R5 )#B:8G+4*n/K-qDF/+?T8]1re!&K+h x9,&wލ5fF3_LeШ4}E4i,DC6ٞ)M ''h3N%t,5&%~A(  3*FRiEl#+3~6A5a( %>$3/w H0 #!+G!-_"8&o;,Z> \aF5'77{8!( (11HS< ? G9O 5> R1E>R$7H"(m42L&X8pH0Z2)1P-C9{W0 =+ƭ. 281*Lp2m0C/M^3&`j$M$s4K!] e3%GN4D D> =356+w0&)6U(-_8[&&5 0*+695 !q/<+(\k1K+Dz," )/% b*N'>O ,;!M&G7rT,*-,#Lvb,h 9Ȅ!f%,ΐ(|#>1?.#'$en֥-X1zG=7/e"HM,:`4"q?gFr=2J2$9>~%4(~2%68W6$/5P!M90v[6A4W*B"#&-9w8\88d>! (gج58i[/H<6,;.2 "d)3  /&5,10u10F*&23&(/x.8-14p{9*" "\+ ,*($6 61  C%Ú&J7FN +821^5;Xi;I4;V;X;Fl%,}ʩ8)ʩʩR8ʩ3Kʩ#?/ʩ2Bʩo"/'*rN5@L}8(()l4p6a$km+3FP0k%V% l0H1/* B 05ݝ#T9'13;( [$_!(08T!<0/2/+1M e$L !9'?R W7$'['R140J1'9G."6Z4x6 ^!9PR*d*9.; nѓ0q7<++1+vA6KQ'S%1n'S'S՚%1՚Cw՚%1% ՚!0,"p2 3_"",;5_//۹/@/2/G/~&./CKB/QE///v7|/v/G3/ $+/4Z/ /(ى/"=/F'/3!/;o/  i/]</Z//*/n/6//K/"/ '/V! /vE/ f/.!#//a/GO/;/ 2C/C/ /Bz/A/)/x/ =/;D/8" //ϻ/b///%/*/./D/[$/M D/ /)i/ /L/q"c/R/>1L/J / /?-A//Ȍ/a/Ȁ/ /B/:S/I/=//eCR//,|/;l/Z"//[ޫ/ݸV/#;/%~/^/?[/d// ,!//_s//`Յ//1//// G / b:/'u/$/6K//$./X/H/r//Ce/H/%//&X///W+&/(/Z/y5"/ 5//:/P/AV//A/KR/Y</ɻ/1/QY/6#/ V/F//%&B/@///,/->/4/>f//"/'jɳ/./70//A/e/Q/bF4/<L/h/%/ `EP//9{////%Q/8ƨ/J\/Z/SJ/F/8/f)/5w/Bё/ @1///{./'v+/K9\/Х/-&A/"1/E,/2Xz/H/HG/ L/,E/ߵg/M"/mG6/ //n1/:/-/e//ӗ/N!/5)/Ҷ/5//2؇/R/U/ʵ/}"/D/h///6/g/8/y/9b/Z// J(@/j / K.//*-/o/-D/@/='b/C /K/^/I~// (J/p/ٲ+/1 /Lc/:E*/ɲ,Y//C/(%/&T/l/Da/ #0Z/E:/?8/#/bH</X"4/+I0*0c&1}D,;/'O#P58u *9]7;/c?~$^%} #::::::::::::::::::(O:N0@"3_k,'&*))\ &H4q<./#O.^13"+*\N"=n'"ϼ3 /:(z("3k%u0#d9fQ )҇$Z67t5 +Mc0?l"PE))ǂ!6yJ& M,5"Io)fa*l~1vi-nBySok NTxkBb[*c9>nthQknw<@ k02R`R5vj,ykX`hoMj.mlD2 ol{uA,6i&yXY6mo.nzPTkl^J}n:5o3e:H"m\ooL#nj,zA;mk,CweOk[]rA(NI!M u|<oT"oYAҗ^.Wl9GdX|i<m/_x@REUPjF;zIPr,8j>()yQZl/jh|C<Bm(iYos:lm.u`[t;j0'nn[\n9e2#`,\\i~!YlX7<zHh_R@Nz #i0fJ@'Zi!U^rP 9I:kau+T|*n'b =[*nLrxH3n6m< n*oQ<K'QjMosSR71\no+Hm29k`vF7tm.d/@G8lQ68h?$=+`n98r}Ttml_K.fnBzCZ r*l`q>6*i!{K+ 'k!cDj@Nrjdrb\z1/zk'y aKYi4ir8_?YZ'7FnyUOG@ mS(BmkS~Nm(4dtJ;^mq!FlpEn?$mR=2os@^PBv\Rm{ <Im'p6(N( @+hkH@>djuy{Zxi8c5<  _hCg BU7.iI8f =8ui6+icC.uUy(kG4oTs@j.pZO ~{op\My- j!oJ_a6Urm3lHV-murk!Y4/dnr#Q~'Bn|`2T Guo"bTKfkajXC-o"eY%`)^oh2t [kf3)m$?z1NBhz]}1QkmmwY:oecIfm9zsUQl,!oSI"Ej$u!RWuo<'z4[ܱio34shLay!h t@ak";nJ\m5)i3V#Tim/yYSka6Ck6g`^l=87kEUJrouRF&Fo}"o]P۶hrn4"ibKr5ib epCF|l3y}UqIc3nbE<(kJny)mHi#jd"YinSon*@s0&n>-_Y>im_=ZaoX87mFgk'qLGzim$b]"Hi1kRJ BmoaFKhI^I}m4bEI ]lk<_[Fs&@~f]n*Ll|^%X ^i#d pZ:g=!m "to<_9 Kl7p0xY&!=n$fnvQ!M6Vl*yc*wapXo bg?Tp:jv s_|mtt<$WhaXڏmu2Lt1Kp p|AP=ifS ool/mO@>h#nq>DG"j4uH*HV if(s@01n2EdT5m)"kl_5]n S{V,aul hH]D.GhkMQuk`W /Hka!s6B;ti5ei.F  qMn5)w5J#jn(k\UNOdrmyQZjk3qpD@9o/8a]Z!l's=w#C<Sk5rjF%~yo\pAmi-raOφl6o"[l*zn 0RKl>rs<bAjs"_Pn j$/hz;l03y`x]jg-mzaG~nJ*mNWkro!TUGjS#1nOaTcjo&x=\h o <vb.l5ktA&;keTPYT m/+(p^|bzi10z3.Xiͼdn5tib0kyU~;n9lTM n0uXW1hKk2i T`?4m!ioG1z- ~m9uy4b>~ktXyBfo '1sZ;$2hk7-^[aQ0[ii%xFWkj]-mb^])Dj^vX@\EVmEe;_ h5Fv@w~flgjmQtoBjdEQk`J J @l2l.BW[li1QfZ[WS#lZ7w1OFh'cX}P%nZc1`1 nVxMH*-"oJ g_ݢ=7j6=pEaX#j-_Tc q1ik%o;< l*a5KnnDre?̾ [>j'^hW$ĦXNljqDZ if;aI^nl^n`NE~"kpFfV/&8m/?nHmv'm6c@<Uzsi-!+i&R./i'^l]Hj,qC"3kld?+n:$Mu[ :jr q$_3Sm-bKgRd= l0p.J;i|5xj^&nojn Fs1k*ymFSU.a*ixhBc6l1,_0a[m mma0jZg@/ni _`EWJh1diWC^+2l)dL#n9s??/@}jl}g;KEzi QpuLY:_(iG-me>Zibtb\'%L4j&/g]E? LxSToK8g`bFF m5l@@$#U4kr[Lnu1j:wf6^Vn+c6T[jm*jV}j{"oI;m(n+(htCI<S8h9d=sBl`o!}jHC <}n+izWU 5l8ss^,+iY9rPtUAn*5k\L*n4hNYZ+jo`_Sw*%nva;Ji=Xlmq>%gi9-ccGnn jmd+N@n&bFY27id%aJ Hv-k zj^<N l;-^KJ4z1|jicTo5z kt8lOnmH6g5I"&3 lz(y@GRAn,kV^!$ uJmi3eO Kei%a_+wiSq>y_gj"pI4i$`_+[!ol0W>OxYm"7^MYt<qkUnxX@tEi3oN(ZaRomDoQl `-@2v/mg(wPai3g ]2^jN)hcJ> Pm]!{8a %6m^px8M%Ei2*k=N,VknK9sR (]j#cGhySiXfR,'#m-Y`I"5|iqAEnH6wrJZm8o`b,@n#+v[ppB3nzP ̠ &rDlX7-wJؚZj4o)akcci9yOo9#vn[:krV&ڴ&QMiqWgkWm[m!C^n^ f((m6cx0Wk-fob[d;{hiBbq$W)-nSDiMC_Cj\e^/G$Mj)b5\̊>nln4=&;]k,opOTC2mF3bAHo`uA'wj)DdY$i/eFV5jK)2`GWhpKa{|+j{Y-WrigJZpn*0p5=P-n"tn+,kc16Bl.o#h9qN W+#h[w|Pxokm/r~Yp j1mN\A%t o#(*uOYyl-8x>ށ9lZo$~< |5o^$fcX1^n)lVa=)y>h"hH܉Tn,d,zQn_jpEg=m3hTRXl :x [ +6 mEl3KPAmjvY$n2/_dDX  | On3&vifY }!P0j7_'`xKoNuB)!~mk4vPlc *Vʏ4 n6x?5k_o}=~.qkyGDjl!{gRrXk-fiM3i eDG)al1f~N_@n9iTI in[yyz,K  MwovqPmDkj1dvbM'7kkzUq8mTDxKcI[k 45shG "Fh.&t2OBTKVo4"yVFwm0bmK4gn7g)FnO.2i($oCy,Wl@hW#higPw/j8o[Z`Yo"s|X0Zvk1QmH}R"nzjp>{Wm{^>nC/Wv_OwOlzQUFwFh,rg:LdiM6n:IT&\ngtL/nPw@KoU7]l\q9mCgz>tbi0`^WL#Y<kH$fz=<!5Vsk=,lAf_*o'p]WRM6i(DyH%x4dkP%lMpof9F^\{L^o/o~>-Dia%n2^|Dm*gKm2*w>V'o_7@[B(j)/?aZ-`jV*gWMqj85Fw^+XZi@7`f`0SlN%^Zc@Frj3&n~AbGl26zKXJ(j1.-rNX i7NrN F\Lmn#{VUY:k+bmn`'XQ(jv$.g X 5/h&$v Mt'^ho!c=<\.m,tyS.XNk^4cI[L$l.x_4Bm?bXd7k exS1kcG_I, [j27gT3az'Zm&5FrQ'bjA+l2U?K6lvbxX)ZslY/vVyU$j/f_Gv"hiaOw#j8odYC"')0lR)yEE^gljY^rv2mh,u!Ns$Mic^T, Lj0`R6A$SitkB ZJ6BmN.oCWF Qoi1bwW_S Rmb bdHCC &m^<um8j)OJ7h";wG0o,eva ;>lpCkoM)u.%m;"kY90Cl ,cV<wk-d ^B۱Kl9dAܦp"k$"tn >!(lgSO&kx8qC;gmgJOl[i i{O("akYf6KV&E6im1xF aqԦ j87l2Z/i * vJJ0Bvn'e7],j7hu,XKJocx`|_ngHn=9n#/Cmiq< lj0o$b=[j*bGܐ^9yi)oMM6h#xM8Wn dXCUo=2fc6OTzo>2cA|Voq^Hg5h/kP=ANlm$GO4so%p^LF@)%l"?v F?hEh5)jeX^ #b&kV#CrA\e lai  A[o s4DUM\2l"n` -nw*&]>m"sgJ5 <+4n'nS#^Q^Ui%7pZ]E2cbk&ji`FiJ2biC1WjdA%GH4jG2w )S~p$k/_`)F \i#w(}F`$nexzb;o6q^<bJll5=L}7:iw![`CySo*8KjT F}6hgL+Okz|n:QLA~o-{oW46ylapTk$k 1nuFs:j$uIP %tiTk]!bkS=hB;jeEmPmllN15msGM>&nw'r L Ij[/Is?+ln7;og'TpAWmi'bUX{$7i8Kum_ k%cZMp&PBjx1@4H#Glm*Vkygom#eY)NmogNZFGo1y{kB[mg> m#)mJyokbLL=m)%s,VAMo4 x3 T{<o:%zUn[iql{BkL2Mh<4X kO.l^Bo&;Dn-(nO$o 0ntl\LWm+j^8qmt9Ujfm yS=lo-mjq?@\Um,iJ G#?m3s RorpMhe^5s jhMB-m-_Cp`A%`d~m :h Y"oct^=hjOka|iCo8efTp0hW]k1iWH=:L|odI+sgk0bpDO 2i{_xUDK%3ij"!wD4^:#k/zH?C h0w;G$9m&zLJXho;1Xe`};$ul'6mDFA7kjzMF!%kckO:Co4c@S'LPi3hbOwn"ti/Xp-ie!{lCo6s[@>]ei%nv>uJZlI6hCg~R-emv{_[Y2jXnH b/pm:#kBse;h:#hC:U;Dl},k_(jI4dI#6!2e?kN1TgsFZ8")m4f;o47Xl`]h^aYk(}fA5WK&nV`Pa`h)gCJ{wo(hq>VNoWhSD3Dl<!iAdWJFk$qQAeXKmi\l4nr^Ct_Pn']k]+n$lsCGTm_2w?yM{k7j"<I j7-jjBM:iC't>P^JCMn3mW[i:#m[ZfvlCn=&K3n!,u["Sbuk*Il&Hx4n!5_y>`Oimq}O$;j%#5`TYbnh)^iWVʠinaf2'S!nw.L_Ro, ^\jcc?69 jocBu3l4/{^,EaoA$eq Qkl)b.Jː5n(*^|SnSxi #gO;}FjO%mqJ?Gk6kWsA.PddnA!zL=}jy?kW30tXLU~nEfpKu#ZDi9QuWs9W(/RE7!MEE(1+ E2d$E7!2d8+8H27+@%Bg]3 1g]2:mg]1-:7S7KM'62{77 f7k>.>d%41%!,Y .&%'=4E׊+-f$G5!^0(& 2SMrۯ.U#J0y".9\ Z*E/.(j+H5x3_ 0I+ ߠ)c6%ęC*D "#f-,n=1RZ:H,K2+9u2'/ zi!6%9t0Q7|-%; O6 eL Pt5-E1$6q&c@8+Dj#G:(5)*^+!y(k2<>0E,r% >"=bh--,41a7#!:,c6g070(40*V=~w=~*O=~=~0F0*x=~(=~6=~i0=~.0(=~*C07=~=~6\=~0֐=~_=~"0%"=~%"'z0_00=~k d0*:G06)0"2=~900k+=~50*x'09=~0+, j#~ҙ1t93C''C&q> F{ޗ.XK3pM':h,d7\'+8 c_4;Fd@573:&.X 0ݱ}4?S0(+Hh%QjRi% L,8i%RIMn%!GJhn%8Bnm%m>%;I0wm%?{K :o0%Lk%Ejn%}N;m%aSj%W0wno%LP5h%8\cj%y=|Sjl.%Qk%R(]o%zE*k %G+o%XFHx n%><Iko%_UA%l%S0o%iLxn%>`m%Xll%U_nk%aSjj%;Kmz%Qj%b v}l%Zhi%Fliy%gJTQ<h%lV\nv%V i%]k%\ k%L~l%L7ep%QE8fo%KD1i!%`D;l%1Ech%'Hk%Qh3nF%eIRl%En%Rep:ol8%Q^(zl%K<){o7%?`E2o%}Y"j%SO+l%9N^nV%=B,n6%T6emK%;WoY%[Da4l% D_0jL%TFj%Pkh%VjlP%Lf|i%Ujd%>j%At$i% < xm%Jmo%PcD?8j%Hxi%%N3Pjb%aj%RYj%];Vh%^Bj,%v^JFm%I#l%{?rGn%E*m_%G2sX i%/\5kZ%_d1k%FXjC%Hceig%yb@n%A(o%=`i%\Fj%VW{Nj%`Csjc%_*Nn%=P=j%]kj%|]Oi%nHbj%L[k%LN:wii,%R vj%Gssn%G*Bl%=/Ci&%N6m'%XHn%`SUo%\A`o6%-`Y~k%,A^ k%S(l%YtFDms%^sIk%mMnls%As oo%XMl%R"(o%h^|>kp%#NTiN%xa:?i%O/l(%I=@l%Odm:i%GBZPh%> /1i7%GYm%]l%U$k%Peh%XN kI%Z43o%Nd#jH%OCPFo|%q=ljz%_h,m%I;k#%oITn%\CF^np%2DF[k%H,p %QnQ%_kv%_oB%XF2RlU%^{o%Z7i%<m%*BJo%]o%3=fej!%5=l3%;_'kq%?x`m% j9%Pi<%Rn%%VL: "k%W?hdk%]Clq%_t;pi%@Qi%K8o^Ki%SW ]l&%I:lT%Y*o%Y5ip%Ium%OMj%U~k(%[U 3rk%Fm%C`oM%2]=zjk%3I{k o%aAMuj%{A#Oo%Z#h%Ii%'C3Im%o_mA%SBn%;wui%] i%WPNf^nx%OSo%Tk%Hto!%rVh%iakl%HF=n%aRn%9^M!@o%\{ii%YY iB%^p?:Tnh%Naam%O<o"%+`:*k.%Bn@%6Zk4%I,n%<@Bl~%Y8~]j(%=im%PaFfki%BZ'm%%Y.i#%m`umk%]j%Th%1CAHzo%RN~i%r^n%[FN l%`(Sh%OH$qn%<?l%I|euk%{^ j%,X8o%Jvi%?'`xjn%K+ j%T-$i$%_'p%9a~{vi%<Dk%JEo%HPik%k_Qm%Q@mxjt%Ek%9Dtn%EbjkD%FiH%^m%VDYi%O- m5%P%h%T/0mQ%;QmR%ZkRh%Mj%AU\l%;byPj%VZ2n%N`cl%w>n%=l#%Nakjl%SEpk{%<kn%Bz6'l%^:mL%;~k:%Ij%Vn.%Cl%xC\ ku%eJQj%[Hto~%Hl%L_"l?%]K<ng%O%l%<Xzo%_"m%Z(2Nql+%@o%U_ nz%4>4h%_vSh%<!o+%^ RlJ%z\L Qj%cLhk%<'f *n~%[k%PO?j%>Hj%UQHh%^0Im%\GHo %Nj%HK]l% Z}m%Pc?j%Jo%=Fo{%\Kom%7UIn %Q25m%?3>m%M6Ph%?^i%OT$ i%Iyj%tQ l%DjmY%?Aqi%;Dk%)P Gm%=5kj%O:tIi%ZZk%UVkS%{Holkg%Nh%^?k%AT# l%R`V3m[% ]go%tFiQ%7A4o]%Q`k`%$_xHck%C3l[%OXl%ZBi%WP_j%Mo%LVkn%;?46m%W]$Yi%;i%=UVj%.\}'l%?}EnZ%^&p% `Vjko%oDr>j%JHm%@i|n%WP3mJkJ%Bm%Lon%[R [m%Jrp% >K+Ki%_ k%Dn%~Isn/%^N24R k%Z#_o%&Mh%WTi%gH|m\%b$C9oP%F@Ymn%YkY%mZ  k%>Zui%bJ=V{l{%{`6mm%pPAm%!Xm%W!o%C+`n0%<)0j%?fm%Rf6<k%4K4n%Ce> oS%_llb%D>>j%I{ln%=Q]o%Sy)Hlc%yA /qo&%U9d+i=%On% D\hi+%Di%B-.n%IG"o%WM0j5%IXh%2Rj%3O&l%$a o%N{j|%A5+i[%K0kB%_Njo%DQW"i%;\i%J]i%UCsj%JDuly%cX+i%DL@o%H]3qni%INrl%TEFo%RIYyai{%^koZ%+MXKor%On%C97i%PJIHih%@pl%Vxld%xIn%adAk%OSYEj%([.oO%*Hjw%T"m%M5lm%SL.i%U)oz%@mn%V{5 lL%B7`_j<%Sb7;To:%nbWch%%\o n%`-=p%`R|o%TBPj'%IJRj %VBRi%<n9%`iA%U{kn%Yll %jB#4HGn%kK5IHl%E.i%5X_o%YP0Yi %J2Zo%No%]CAl%SUXkd%Jdmp%Bhh%ZXh7kb%wDk*%(J"i%)T#iu%`Qo%Kqi%?m*%UX|Vl%YY3-o%ZK.i%KTJkl!%P[l%pBj %]k"%8J i%D>Cm%]Dnd%?o]k%NxY~l%p^DlD%>Gn%YvK2 l% Vm%>oo%G:yoo%FB?j4%GJOjR%rTGh%nDm8o_%VGDbm%@O&h%F/mM%HL^~n%Hci%BSwIl%GA|Ek&%>Nk%Vl%K_ns%N7k%b$is%LJ9k%ZFdko%UN!ox%`[<@o%<Nl%4Mj.pSj%C>zm%[V3imm%Q`f k%>Oc!m%ZqBpo%C_'m%T|di2%HH(p%Bem%Qh#'4jy%KO9;Ei_%?k!i.%PdAo%%azJn%*Sol_%P8 vKn%F{fl%\ nB%S@yo%@Z"Pl%_Fm8% Q <n%K*mn)%T&o %Yi%C@8jk%PUk%hLAi%>m%Vi%ubi%R}eio%Mk%XigAl%G? l%0Ji%R`}n%JE(l/%Xy qk5%JiCn %M0P k%"_j;%_~sl%G1j+%`~ j#%PhDi%KKm j%VGQvi%2JWlmj%\;ao$%7OLi%??1-o%OAi}%KL)@j%O *Bl%,[Ci%;NXwj%Oom%E=m%G k%AC3iD%tKim!%ReNn%qKAoC%Wnqj%(\/Al%\[$Dm%Ihwi0%@2~n%MDEn%I.Ek%Q"i%t^i>%N8=m%I1Yh%Mok%k;Wj*%lLXo%`i%_si%H|hl%Y1m%oY%Pk%;B9i%a?l%VZjNl%``i%a<|n}%Tm%>X Tn%Pyl%YEn"%"\ m%C:nn%GSzn8%M]jf%F'k9%Nvj%V@n%sKF\o%CDn{%lW)o%Cxxl%\3>k%J{lV%T8[j`%E_VlO%Ib*Yk/%*CQk%-W9lain%&HDY8j%H;A mI%L4?mw%WiKk%Ks o@%-Vxmx%Oh%@SAos%%ar@Sk%QIzj=%>0o%0? kE%[>Km%GI\k%YG0prj%O>o)%C`{o%KT)ot% Aime%APo%M(Ph%!Gel%y<#_n%]C)2>i%aRq_om%dDk%Plkr%Wn\%`m%>_%XlM%<\gbm%b(7m%XG?K`i%RA]jJ%EQEk1%[[JZk\%_HlF%`?])h%'BD;m %0Kl%IM }l%QT}#l$%>0Li%i=@|Oj@%W<Xl)%Vn % ?Hwm%T3Sjx%@Lz=Tm%al%-Ij%5Wv3pnG%C`7An%xWQjmZ%Tn%)VRlr%,Nm%.[h%Vyj%qA]"l%dSAl%T$6vjE%YWk%MNh%NRk3%CU]{n%I~Mo%&Ih%|T&l%X'djj %9IEol%b%JN6i"%`L j%E(i%]bon %[1l%jI 7lE%D|l|%=V\l%T+]Wn%WW7k%m%L!j%>\n%,Hsi%LZ^N%i:%^Xw!j%GIh%?7/m%W 5iT%|\h%T29[m%bbqf*n%#Y<Oo%ED#um%@6gGh%G%nm%>ll@%dFy) Hio%5A* Im%\QRel%PNfj%O`DSn%A="m$%U$>Lk%.@oKl5%azl%OY$k@%KE_m%Z.J/mO%WLk%xG%o%Dw7yj%^oa%O-l`%?mkh%GGj%pTk%Si%Vsi%fX Wi%_==b n%aY m%?M fp %dXNn&%ZCf5o%<Ao%5ZXl%="hk %Ysfi%H&$lx%LK }i%Whk%hJ:!1o%BG:i%Bi?% H"6Ck%HNLjX%K<=od%]=?i%GDtm%@Gl%`ATXk %[[dj%>B]m %G,Vk!%X-Wm1%`X&mP%_TCj%uUl9%CKj%Qo%[8+nu%fS' lu%FUnM%<0\o%Io8%>kA%'`sGi%UIob%ORi%Es='j/%[wja%2B{i\%8`+8Uk%=J|n%Qzl%[#i*%+U4g@j%Xln%SAqgl%V4]NGmC%H\ji%M ]k%H Mi%Wi%SNk%X Zo%oE@'?h%[I~}i%G1k%@\>k%RM5j%LCnr%RX Qn%YWoj%aNhj%>Zml%R*jZ%Q+n%bCLnoR%D7l:%A/n%R2o(%Rw23-k%\'Lm,%b2Oi%S[9o%]6kT%U yi%'DDr nY%F@J0j%bT%nc%^ln%=:mn%>Ipk;%=bnoE%NH;i^%B(m7%V ZjQ%EV*m%`>ai%%C)#i%9IOl%L oF%Aa3l%<[Io%KOp>o%MfSk%Zx'Dm%^(Ei%Lk%A ih%ja@k%Y&xnq%2Rn%Q<h%EYqYo%a-o%rOr0n^%t[n%b{9o%BSOl%P* &Gm%;DmseBl%'CT_j%VR+mt%TB,O|n%Culn%Rtil%GZum%[yRn%(Dro%a_JXi(%`o %wXXi%?SYi%2^Vn5%1^(iK%`)i%;Uj%"`zoh%Nm,lk%1B} ro%JBOk%E}n%LH4m%F~I5jU%\E9wzlh%;K1/i;%bZko%=Go?% L[BQo%[m%E)n% TqM_nI%A~En%Yggl%C2alS%Qn'o-%#E h%Jnj%Rabj%u@9=Nm3%:[;1k%<G'dl %*qtWmf%mKnO%x^2K}ow%sOU n%o%%RtU?j%$E#h%$=L p %EXM!k%F6b%m%=-fk%^wSt`j~%s?pEoi%[G,lt%ZTil%c;3|Zl%amB%{CAl%]am%[Rj"%Lk%S>sr\m%MI<(sm%-M%i`%Y46md%atl%a1n`%U*<n%6;28;j_%iDn%~ZB1h%xai%Wn%Sf YiF%Kzm%!`m%h?n,%G' j%X( k%PbGWqi%pKi%X@gk6%P iz%<Dzj%>>h%4J9m %`wPo%^Rk%Gk%WVoV%@o5%DJJ1oq%Fe5{m%hP@j%_:7Ok%G mU%H^Dj-%E*o%0=Y9&n%`>k%a`8i%?4$9k%FE7oQ%<1F9m|%iL|i%P[n%"Ql]%>i%%;`my%Zc}l%];o%Riwlw%W!{jW%>j%JxEl% =!i%>nT%Jhi%1@H>h%HL&nf%Y9ks%*UN}Ajq%?dUk%ScVk%Y+?k%ZF,@h%i@3o%Rm%U^%oi5%m@2jp%rGr%o4%fG oD%GIlW%S\]ulf%D3ao2%F[`fl%Eagn1%;C3]Gn%\Fi%C!j%FVh%[Fsqm`%Nj%Sl%Litj?%Ik&7k%ABl%Cnn%[ mW%&Zbln%KIi%Z+i%LmJj%<L un%@\alA%=C]bkQ%>Bo%yQj&4j%NM>i%|]ibm}%aZl%Fh[j%HJpn%IIqk%W2?k%Dyjj%QYi!o%;xFj%;Hm&l%-Fg^l%;+j% V-j%_W7k)%kb]jiL%l?kl%Q( DnN%~[h%>Jk%`Jl%0C}l%VLlB%{Ryo%9S+qky%pOxl*%@s*Xn%eRqj6% @*h%[ni%Ri%>O4 k%vC}j%0_8ym %GeAo%XQb%oI%FNekU%\akl%sAn%Inm:%Z  m%]u|m%\s,n%fXCkC%<?m%Ol%1^6o%?/l%Ho%ULrVl%vF=k%Sm@%ZYJyn%hA=Pj%F*nl2%M=]i/%8A4Bm%dJSa m%MXn%Nm%4PYWk|%Cj%@,Q{n%T?|R|jT%?]kR%>vmr%uY &m.%CU|Dj%Jg.m%To%=vnP%[wo%^/xiv%.B,k%|ab-jh%)H5mG%fPVn%EBmj%%KAo%Q[h m%LLB i%"`r$j%{H!5o%B:hpl%ARl%&KT!j%7XT.j%)BWU/i%1bi;j%[ 1n_%s[=m~%@/Xamh%L"`l%A 1BiW%YBo%GCnX%ZYj%RHZm%?(i'%Eyo%I ln%&;UL<j%@&o%@vmV%TGyl%<o%G;k%/@Occk8%Z l %4<n]%_~l%%H[(j%7Fyj%Qri%Kz  l%xM&!. LQ7y7!'LQ7LQ+ &!oLQ. +LQ7!/0-^a0L"Y8{* 'J5=x9D 6y Q(O{ 5,-+n''$"1*.9&y&3'$x_/3'51HA6t,;w5NC:0]"9( `6)SH4-P"* 3#3= JM4*F/S>%7%/_% "*"8b *;",. &% |"6S"2" _ o 2^"_X"0H"{"0   6 8b3"y"& {< %Y I"*;"* 6#j-1\)D-Xi%U->6,-$ Ė8/d1&!,90Q}5/2G.TA0"RAl)62$d#d&J149%Sn%,Ǻ2}!/Ʌ4;' "33)p+%+w*"!p7%&E-,)D:C $RB tG=VGt2=jt+Bd%tsJ!\tOiau*AtqF(t%BaxSs<B9\>u>B8St9BFu@BfxuW7Bi =t6BHRtz2BȫtbD#&t:s*1M0+T"8Z8H*ṅ6:, #T@'3_+:Z)#-}+Ci)N0~BFB18*Z09 ,$ޣ+!#_,t{I3?! Cؘ""O%D$_,&j+&~AdT+$E(87B?_.T'2Պ0S4eQ/)1f/W /*(!R/)~1 F"T$C(E#)B!E++ C&48:95t0%:950:9m0V:9506X:9i~0:9o0*:9iM05Q0=50:9h0"0=o0q0=lZ01>:9m)0q:9k 0:960:96G0:960):9i0/:9m00:9505:9h0:9i%0/p0=60q:9l0/:96603:90:960$p:900=n0*:9n01:905:96D0:97c05Q0=6-0:950):960:97]0:9oc05:9620:9k<03:90:9k0q:9nL0:97H06:9m0"9:9i03:95t0w:9m0:97,0W:9o^0,:9iI0:96c0q:9k0:9606:9j]0q0=j^06:9jg:96!00=k00=j0q:9lg09+:960,:9m04:9n20q0=n307n:960::96~0(::9iS00=k0:9m+0"9:9iY0*:9m0 :950-5:950/:9l:96k0:9503:905:96]0:960:9505:950q0=n0:96m0q:9o03:9*06:9o080=l0(:9ma0:9oU0V:97[0:950:950.:9m01:9n0q:9h0:9l10:960,:9js0:9o=0q0=j$03:950V:97O05Q0=60 :9m0V:960.:9504:9oTo:9m40>:950:9nC01:90(0=l0(b:9mH0:960:960,:9oTq:9iM0q:9i0(b:9n0:9k0*:9o0+0=o03:9g07n:960:950::9705Q0=60V:9505:96W0 :9j05Q:96g03:950V:950##0=lg0q:9iI0(:9nt05:97t05Q0=720q0=m-0:950$p:96S06:9504:9m5:960:96905:950:950:960:950$p:96%0/:9o0$p:9 05:960:9601:90:96P00=l0!.:960:97 0,0=m/0:9o05:9500:90 :9i0:9k0/:96)0(:9nD0q0=m09:9m?0:96x02:9k0!.:96q0 :9o;0,0=l0:960:950+:9n-0:9m)07:9/:9l08k:9l05:950 :97'05Q0=60$X:9i05Q0=60:9lm0/:9700=nw05:9606:9n0:96*0 :950:9606:95|0q:9i0q:9i:9l0:9501:9n0j:9n0::9h0:960$p:97?05:960:970$p:90:97 0:96B0z:9i0::9h0:960-e:97#0$p:97$0$:9j03:901:903:95y0$:9mF0:9607':9m00=nA03:90:9oN03:90q:9k0:97]03:97W0:9603:97Q09+:960!.:9503:90:96Z0$:9lX8:9700:9i05:97H0%:960>:970^:9i 0:9lI0(:9m)0:9l0'|:96I09+:97f0q0=n0#:950$:9l=0q0=n03:950:9603:905Q0=6j03:9e0:9m0$p:90*:9l400R:96`0*:9l<0:9ir0(:9i~0:9m]00=m^05:96 03:9j0:97j05Q0=6$0,:9m05:9605:9503:9Y0:97S0q0=o04:9js!.:950w0=k0:9505:9i 05:97I0:9n*0:9n+0>:97C0,0=k0:9kH05:9505:950:9o0#:960:96(09+:950$:9k0:960:9mn0:950:950:97w03:909:9i 0h:9i0,:9oi00=k0:9j0q0=h0:960*0=l0,:9o=0:950:9h0::960:950:96]01:90,:9j{ :960":960z:9im8:9n03:9\0(::9lz070=n0):97n03:950:9i%03:9305:960#60=j$0:95r0:9li0$:9k$5Q0=6:06Y0=7b0:970E:9740q:9l0:9j\03:9n03:90 :97 0:950q:9505:9505:970 :970q:9n02:90:960V:960-:9n0:960:950:97505:960'|:9600=60:97t0w:9m0!.:97*0:96 0$:9i0q:9ne0:9503:9t0:97I05:97&0$p:904:9l0:97E05:96[0*:9o00=50:960:960':9m320=kx0:976081:9j\0w0=n0:9500=l 0:9nK0*:9o0!|:9m0::9kj0:9kk0:9lY0"&:9k0V:97R0:9j009+:960V:9608:9660,:9m0:96K03:904t:9l0:9j0#:9505Q0=60!.:9606:9k0,:9j0!|:9m0q0=kG0:950:9605Q:9640:9k0::960:950:950:950q:9m05Q:96F05Q:95w00=6y0:97?03K:96$:9607n:960=nS0:960,:9i%0,0=j>06:9o5Q0=6Y0!.:950:950,0=o 01:90q0=m003:90e0=j0:960 :950:960V:950:9n>0B:9j:9605Q0=60:9mH0:97P0:96z0 :96@00:9609:9i0V:9740V:950$:9m5Q:9i0:9500=lp03:97:03:9B0-0=i03:950$p:90:950'::9k05:950:9j05:9505Q0=606:9o<3:90:97_0::96s05:9lv0:9o0&:960:9h0:9i0q:9j0:9790:960:9n0,%:9lN0:9o0:9l0#6:9i)0:960E:950:9501:90:97r08:96 0(:9j0q0=mE0$p:90:9n*0:9n+0q0=o00=l 0(b:9l03:9303:9 06:9i0q:9i0,0=n0:9j0:97B0::9m90:9k,:9kq0=o 0$:96T0:96D0:960:960q:9k0:9jS0*:9m403:90::9jM0:9505Q0=60:9n#05Q0=7;0$:9l5:960,<:9o0:9iG0$:9j:960Q:9k0(b:9lQ0:97Q080=707':9n03:9780q0=l0+:9j05:9i809+:9603:9i0q0=jA0':9l0:950:9n05:950:950:9m0/:95t0:9n0,0=kx0:9mS05:9509+:950:960:9nC0^:9m0:950:9h0q0=i0::97 0:970:9k05Q:950$p:90:9i0:950:9l405Q:97d0:96l0Q:9n0/:950:9508:95~0::950 :9k03:96d0:97F0$:9i 0 :9505:9706:9nL0V:96.0:9k<0:950:97+03:9760:96M01:9 06:9n03:900=50:9i80:9503;:9nK0/:9j:07:96&0V:9610*i0=i0:960$:9oX0:9m0,:960:960(b:9iq00:9o0$p:960:9o05:9n:0#:950:960!\:97:06:960o:9h07n:9605:97Z0:96505Q0=700:950$:9k:9ib0:9505Q0=50'V:9h0:960!:9l01>:9i06:9kM0:9j0q0=kX0:96:97e0:9n!0:9m0:9o905:96N0,:9n2:9m01:9v01.:9n?0.:9h0:960:96e0:97V0+.0=l 0-:970:95q:9l;01:9i@0q:9m0:96W0,:9k0q:9m00=n08:9oh05Q0=7<0:9o03:9650:9l400:90:9l00:9m0':9j::97n0q:9i)0B:9h0:960:9nJ0:97@0':9n05Q0=60q0=l<00=j0&:9lN0*:9j\0:950:9i05Q0=7u0:9770q:9j07':9k[04:97T0/:95~02:9o00=m/0:960:96i0 :9605:9mu0:960*:9m010=kO05:96O0V:97Y05:96k0:96^0:9l>0:9710q:9j0w0=k0#:950#:96?0:960!.:9606:9it0':96900=60q:9n04v:9j0*:9jv0:9l0:950:9j30q:9l0:9503:904:960(:9k0:9o0:9oJ00=70'::9ia0(b:9o}0e0=mi0q:9j 00:9jF03:9630:950q0=l0q0=i@0:9o0 :9k00=h03:96r0(::9n0-:9o*0:9i10:96 0$p:9708:96Q05:96G0 :950!:9j05:960q0=n0*:9n0:9m0B:9h0:96 03:9740:96b0:95v0)M:9m03:960q:9k005:96B0:9kc0:9i%00=7306:9l-0!:9n702:9lm0/:96 0::96>0(b0=k%05Q0=600S:9i0q:9k^05Q:96J0$:9m$p:901:90V:96705Q:9705Q:97m0,):95z0):9505:96w0:9l10:9j0:9i0:9m40q:9h0:9600=60(b0=kG0E:950-J:960:9mS0:97"0:9o=0:9o>0:9lI0:9n0::970V:97010=iC05:9505Q0=6,00=l0)M:9k06:960&$:96 00=l0:9l0V:9601:90,:9m0q0=n0_:9n00=j0:9608:9m0:950:950::9n0 0=h0V:95s090=n00=50q:9i0:96{0:9k+0V:950:96N0:9n00=n0-0=n0q0=j%00=n0":9,0q0=o0:9m0,R0=o0:95}0*:9m000=m0(:9l0 :9m?0:9o06:9jV0>:950:96t0::9j0V:960:9605:960:9m00=l 0Q0=o0:970,:9j0*:9i0:96=03:90(b:9i0:9n[0,:9o/03:9V0'|:96C0(0=l<0 :97p0(:9o0:960:9ik0'::9j.0E:96X0:9m0>:950q:9o0::950V:970:96V0e:9m06:9k:9n0:96<B:9o 0q:9i04:9j{03:96_0$:9n:9603K:96$p:9l0,:9j0(:9n05:96A0:9i0>:960:9kW00:9k0+:9m)0+:9h0&:9i0#:9m0:9j03:9j0(:9i08:9j0q0=h0"0=m0q0=n05:9600=50:97W0:9m0q:9mh0(:9k0#:97)05Q0=6|0:9mT05Q0=505Q0=7D0::9l'0*:9oU0:97 0(b0=lp0 :96S0:97Z0V:96X05:96<05:9j0:905Q0=50q:9j0E:9505:9603:90:9620:9i0:960:9j05:97/0#:97=0q:9m05:96i0:97l05Q0=60:9k00=h0:960q:9j0":9nC0l0=i07n:950:9k0q0=n03:9k0q0=l0q:9i60C:97k0::9k0(:9l0q0=h0:96[0::960:9kl05:960:97J0:9j03:9(0:96e03:90:950:9i04:9l0:970q:9m0*:9j0:950:9n700:960!.:9605:970(:0=iX0q:9j06:9l\0:960e0=nw0:97\05Q:970/:9n:950:960.:9n0!.:97X0 :97`0$p:9!0:960::9j0>:960o:9n03:9jv0q:9k<0:9n0:960:950"&:9iw0:9i03:908:96p0:97M0:950q:9h0:950:97U0:9j0:96_0:97/08:9503:90^:9l0':97G081:950:960E:960$p:9|0V:96/0:95y0::96f0:9m01:9k05:97,0:9j0$:9m0q:9k00=60::9506:96&05:950:96;0*:9n0:9l0:96=0V:95{0:960:9602i:9505Q0=60&R:9lN0q:9m05:9n 0:960q0=mo0:9o07:9l0$:9m 0:9n0!.:96n0$:9j/:9m0:9603:905:960:9m09z:9l109+:97Z02:9506:9l03:90:950e0=o03:90::9503:9h0:9j0,0=m09:9n0:9606:9j0*i:9o*0q:9k07n:96#0q:9m03:905Q:97o0V:950:9603:960.:9j0:97A05:96c0:97805Q0=7a0?0=j0:950'|:9605Q0=7-0+:9lY0!|0=k0:960,:9m0:96w0:96h0(:9i0:9n-0+.0=j0"0=lg0/:96p0:960q:9l0:9703:97 0"U:96T0:950:9500=i 09:9j0q:9m0:96'0(:0=m00=m03:9j0!.:950 0=n00=mi0:960(:9l05Q:960:9mo00=6a0";:9605:97'05:96(0:9o0$p:90(::9m0:960::960:96O0:9603:9l03:9N05Q:950q:9j07:9p 0::9601:9;05Q:97i0 :9504:9k:960:9607n:96 0q0=n|0:9605Q0=50 :96o0w:9i00=h06:9j0q:9j:95063"3$9$4E9+8/$)8j5'_7,,376@57?74f%<8.w#R;0.?@ ?@*;?@'?@~ ݑ?@--0?@U 0 ?@?@.2 "Q?@,"?@,TAW?@,Tw?@5H>R?@F0 N.O?@Zށ?@Z7?@'>.0¨5H?@~?@2 *5QC35J+%|+]#r%" -C%yC+W6`(s\;!;!0;!;!;!a;!;!+;!k;!d;!;!r;!Q;!8;!;!N;!;!;!;!;!|;!A;!,;!;!;!;!;! ;! ;!;!;!;!;;!;!1;!^;!;!;!p;!;!;!~;!e;!;!;!{;!;!;!O;!J;!;!;!;!;!;!&;!;!;!;!;!l;!;!;!;!P;!;!;!E;!;!3;! ;!;!-;!;!:;!;!v;!;!;!U;!;!!;!;!;!.;!;!;!;!;!;!;!;!;!;!;!;!;!;!`;!q;!;!7;!;!;!;!I;!;!Z;!u;!w;!g;!W;!5;!;!;!M;!;!;!%;!;!$;!;!};!;!;!;!;!];!9;!?;!@;!;!=;!];!;!<;!t;!;!;!;!c;!;!;!x;!;!;!F;! ;!;!L;!;!;!\;!;!;!>;!;!;!z;!#;!2;!;!;!S;!;!b;!;!;!;!;!;!m;!;!|;!f;!G;!H;!;!;!;!T;!;!;!n;!;!;!4;!";!V;!;!^| ;!;!;!;!o;!h;!;!;!j;!s;!a;!;!_;!y;!;!B;!;!;!;!;! ;!;!_;!;!R;![;!;!;!;!\;!6;!*;!;!;!;!;!C;!/;!K;!;!Z;!;!`;!;!;!;!;! ;!;!;!;!;![;!);!;!';!D;!;!;!;!;!Y;!;!(;!;!;!;!X;!i;!;!;!;! ٧Z7 < j . Z,  @Z)> 8A jZ7<Z&x Z8Z!xZ)>Z @C &Z5 .  Z!p 5VZ8Z&x 8 $,z $,HZ&"w Z &e] YKF 6/\pJ&e;./\0&e_]A/\A&e/\@ 6/\./&eA/\>Q Y&e7/\/\B-b Y$.&eB&e 6/\Òۊ0/\^/&eF//\_؋J&e*J&eC0Ip_<Q:9hC-̆G:*2\* h1ڞ9s *9bsK*0eh)K:9%99.N:9&=80)O©0A'cz)-(M(Å2Gg%  0<;3dEL>-%L4()8O3\ b& 4; i-ޏ%,%'"GQ-a7>6#1!.#"Lq2C+k N=5(8r /=,/,(N''8{&08a"0:-2-1F6%{2J^%$8&J+  1^6F )`I3#C$0DTos36{!L+;J;2h$SN*N)6l'Q-(\ +%C"1# *pD/-Bm)[3*G4S +   !E  )`*) 3C*1*! ǀ*˶*!6v*J*!EI*E 3-Z +*A,!,97,; ,7O|V' MB9) 63?)TdW,:A%H!M8 ;+]'k9L:m7r+fW7-/1/ N*N9niC1!8/$3F11?#% 8%#?P5>'B .9k,Zx#M$,FN5c+ȍ!=hΖ,44(v+D !q#3_&( ?5aY0<@{$Yj;"Im*q/Y'lkA8!,d00l!K(I; ># -3_!&% u",;Wp&`%>.7" 5D.ݚr3N&09%3w(f 14'g[e1r2np*6#;@0T!6Ԗ5P.IF.3#?(* *9S#+?#0;c3+(,!(]" )!>-s%$Q%wZ.%,,4}1C% 1 &X0;m&9S(΍% #&x9,0@9O2{'u/3 O28}*n c9!!!)4C$+2os9G'B (Ƶ9S̥"}b)9W14,;98i,g!pU"x3_4',S69\:0608|72**2,/.#&943,5/H60"d&-&wJg0 sӎf6 Hw)R.Oy"G4.2E]2(@2Oh1 G 3Lr16 I$^lnd0cJBB_<]|;!v.BB_<];!uBB_<];!v:} BB_<]_;!ue %BB_<]a;!vE BB_<];!uBB_<];!v<0 BB_<];!v a BB_<];!v) BB_<];!v3BB_<];!uM%BB_<]E;!v DBB_<];!uaBB_<][;!u'BB_<];!v;};Kg_<];!vo BB_<]G;!ua BB_<];!u*TBB_<]I;!u} BB_<];!v5XBB_<];!uZ _BB_<];!uMBB_<];;!v= mBB_<];!vQ'u BB_<];!u  BB_<];!uBB_<];!vNBB_<];!vU BB_<]9;!v BB_<]^;!vr BB_<];!v }BB_<];!v* LBB_<];!v4BB_<];!u mBB_<];!u BB_<]<;!v'BB_<];!v,KBB_<];!v2D {BB_<];!ud} BB_<];!v"q BB_<]8;!u: BB_<];!v BB_<];!ukBB_<]4;!u BB_<]z;!vBBB_<];!uu BB_<];!v BB_<];!v BB_<];!vL BB_<];!v' BB_<];!vJ!u KBB_<];!vvKBB_<];!v BB_<]V;!v} BB_<];!vK;BB_<];!u =BB_<];!vR BB_<]";!vDKBB_<];!u0}BB_<]A;!u BB_<];!v&} @BB_<]@;!v fBB_<]W;!v BB_<];!u=jhBB_<]h;!v76BB_<]m;!u BB_<]t;!v0 BB_<];!v  BB_<]j;!v?a BB_<];!vP=aBB_<];!u BB_<];!v MBB_<];!v#BB_<]2;!v BB_<]f;!vMXIBB_<]J;!v BB_<]];!uK VBB_<];!vHBB_<];!vuBB_<];!vYj -BB_<];!v BB_<]3;!v@.pBB_<]b;!v8saBB_<];!uQ}BB_<];!u aBB_<]O;!v  nBB_<];!uM :BB_<]\;!vOaBB_<];!v5 }BB_<],;!v/rBB_<];!v$72 BB_<]D;!u#BB_<]C;!uBB_<]S;!uBB_<];!uaBB_<]n;!u> BB_<];!vBB_<];!vCNBB_<]?;!vI/} EBB_<] ;!u BB_<]);!uhBB_<];!v++} /BB_<];!u&} \BB_<];!uXhBB_<]w;!v R%BB_<]x;!vB`}BB_<];!vA%XBB_<];!uBB_<];!v ' B_<];!uF;BB_<];!v!(BB_<]l;!u BB_<];!uhBB_<]H;!u `BB_<]T;!vqBB_<]$;!uBB_<]c;!vPBB_<];!v1 OBB_<] ;!vF BB_<];!v9BB_<]g;!vOBBB_<]M;!v-BB_<]k;!vGXqBB_<];!v6yD+BB_<]-;!v BB_<]L;!v(BBB_<];!uiBB_<];!v% BB_<];!#,&ܿ4 /8!@%`G@4(H#) 3_!0"9-!T0>f+oY"%*_qFQzC@%A&.'~j[sG-E4$z@ w`HhtW(fi_:]Vi+{2 fI:(kg#Hgj1osg^* #Y}^;Dp?enU+hAiBu}Tk'dZS KmaNODL)6lX \;y&dS"N7O1<=ltVK.>)g8YnJ%P3PplIqg#!hvg"v6X |c{ \M,ck/29rf]F EQRU90?xT7u$!j`3mJ"c|G8Caoy<#,  BbwZ=>LMeg"[~/dR-Wx45b 0er5**f%@$Z\2|R8%tG3>${ѿ*2;]):@#;(z//L2/8c=J&+*<j551 >8-6%00I!]!%>ϛ5rϛ. q,ѽϛ,~54. ;ϛ!"4ϛ*#͖47:&7uB'("(} G''0/}O.*$&Q9&n)xY;7}LZ0; =o0j.:.2(o*?$C0ɕ6K'O%R4ޤ/z@&cՒ&1[3_$;3&0.a&9[8l&PѤX/*C"#fI1 "t!S0iO;3>'3"*"T9R6?ozx( >x6ۮxcx_x0Lx"x" Xx09HoJk*x+s(x%"x2\x)e8x6)6x&xPx2"*x6x98}xx%",_d9x "x9xkx8)*xc$S5$p=9D3$3)Z1Y<5/-{dP`-r-e* k7L(# S$=$T3g-J_2Py)Mf(W<t1$+8G5i"%9 6 6,I3Ϗ1i9 T,(6;*+;*(E;*_C;*;*7ٷ'5;*/:;*0;*J/:@ӆ;*ڱ7;*00.;*V);*G).g;*'q%6F;*_6Kg;*W%;*W;*%6&*";*;*;*(*  +RI8#j 9C3'V$_,]5I!b52c>*KR x*38A7:! "pHqp1 Sò*Ri7-*'J2j&3loB6|J+JN,?0 @Pխ&*6v;!S++v=:9:oF8nr6"&z6m]p&!D,$1:/&":0 +gvJ' ,(:""Z*WC Cf!>0'<ۈ ǕcL0|Њd843,;7~C8)?0+#89L0$%& t3Ӣ)R!/,_#p30&o/N0#&<S$P+@z:L+#."._ ./b3f:FMM4=9&/0M&nK2, [%z!63`>AP7A,LX54" $~T 6"X+4J+l,8%11-2r814B01x/1x6?1x0D1x26_-ހ1x21x G1xY_1x7,1KA cA [ 8\4;X'$5E21"E*}p6O,:! *N$;A D+(*b"0VCF*~O,ZDQ"T(.݄+-?%E+܇+\_!#+D1r*0]9P L)axgL6 "#2-- !43#Y 9G"%^8W)Z9m ="S | N)77t1-76%289}}+i(8#:/4;%>!#'+.83J*(a4:z-R,,M(%9QJg~"d'(:2mͷ*/ B6U/)!>2]&#D s08q_1#(G7AeM1}/U! 8r$3;2^EH^4:A%'=#o#1FI7'K!9F4}/&`>D!0N'% 4R&,g3w /!I1?i# V?T*,q5s%*gD I(i42k !&8Zw,;n 9> v8%5P79-+f7'B. /$ [Dr,^( 0(x&X 2nAT#"{.C5'W/-`?{+ U-'& G5>+g{SF0L#\HASyMʌ[[ Iz#!=*+?$6\%Xj!Mq3N4f"L9O'3_"85(09E#mO2;\*n lq5a<3b7r>+pm[5}-45H!qMiѥ28.;8 >%6z6ۥ( ~U858[*2F&3-K;A(1 9,122d+N9H/V1BD1m({i!;-5&}9<0 )+3B*  30v73!68)n0j$/'PS)263A046k *+,41C7$f("2]3S0?#u#y#4}5_02O1& ) ):D3%! (0:~Iq,~:^LT'Nt)__0LwTt'.6<0)A0V0)Ie36J3Ͷ& {ʘRp LPk' ـʢM ! R S  G:R Sm ~ 0-Oh }CR5 ?]Q~ _Oo !0T  lT ~'R]{  S  eSY $|+YZ $-T ۗRv  # !^9 U % ̈́S с>R lO mO  PG  wS  }%Q3 TP" Q i  Q3 .TX 2TY/ YQl NQO8  .R&  a,'  c- f) gRwL d}S5 RT*H N%Oh ^R%X &xSG JM |v ݺR P{'  [ S +l '(  * M kS? &QCb ?TL k Q $3 R $5 ˩O | 'v'R Qa Qb !&T WQ $VT $[R $]R 'TC CP:  PS;% <Q 9P> PJ Sb %, dR %tP FS Tu4 %#̽RbJ |C 2S/ |  xFP4  yGP5  |H  ,Za  ՈR J=s d]Q9 c TpO r@ t G+X? ֈQI !A zgT &1bR~ Y ٤Q ٧Q s{SR ڻڮSXv S  R ߖsPe ; Y Q <ВO o$G  < T-  `R '"P& ("P' 8S) mS  .T2 '-'Q Ѽ S 0Sz YR  uT <O$ /T' /NO %P#6 ܫR YQ1 v PS \EP} _GP~+ S, ND ׎sd  S !~EQY &T%x Ry R @kP PEs #S ά P β Pg ,QhH u%Rn յP Q $o<S s ˋR= Q [paZ  ``P  dd / S32 "Ph   . + X+S [pC1 ZPSx R"  [c MQ98 RnSU ~S[ mQW; _ l; &zR0 $JL XQYJ ݷT +R{ ׵T. ҀQ !}Pr  #s [p $ ?{ U j PY 8bP O RR , S~ / S  HS ~HT Qu ۄISy   Oz   O *S# R( EP( !'Q2  ;e  @f ;QM  Q PO   $vP fS|$ Q% Q4 P˼ [ tQ5 0M jQ% Tуn S" !R_ 'Oo FQ  :TFW [S ˫ح\ ˭خ]h  ITI ݟSg S Tv "]> , s  A T ,Q ϣP +S5 U{R  !P8 #F M%R |Q R^ ӕ7 QS  Q M 1P* %#T< 'ּ H,P65   RO6 \ܧTm (O [̘R  !P3 AQ~/ Zo ") ] HR ~ ܲR, O QC fTeS CRU T 6hRX *fQ i=Rd sP` %A8Q{d `Sy 7T/ _7 `8 ֨RR SM :PZ =P[ +pR /tR [p "9% OTP  D"P ]TP ͺSI g ) *H &Q HS 2"Q` -P =Z@  W ׍Q RG $nP4 >r- hPC. iPD 'KPS "Qn Г<OF ηG ιRi {(Pn [p , / IS7 LP   P  ݩ.T u P[ R" ER# H tPT T&f  Q #CShJ O{ x : dP iPX S  4O #S6 oR  XS\ ]#P   * 7OO > ? 2  ٹ $RPm &SPn Ml $S" Z#rQ  [px[ S  ЫR  $uZ HpQ6M R1I x:ST S  4R4 $hR $mj "Pk "P :$ PV Oa [pD OY  TԐRG }Mjr ' = CR ?KSg шQ 0 QQ  ׺Q "(RSc _ z  S`d ` R ܷS} Tv ,ݗO  R} S |O '_S TQ,j , T+k 1 T, ^R ASD 8a jS {Px |%Q O _/R  үQp  Ұ@ [R{ JP pR   4S K! Q, ٩(PA P#  QF #a   +PG ; VSr ۯ3 9QS Rk$ J` vQ "I̙T "J̛TB RU S: ˷$S1 2 R>` ڬOw N " GP~ 3TP o"Q &l~ *OO QR  { #L<o ؖy >P< ";Q ԽbPp  }T Q  ( |S  ,  !Sh #ʑT T; T>R PR QR TR SSV , Tf /SQ K" $R'S 7S  1S 4- R 5# !p(S & ߠ T8 :TT[ "R\ [p% kF +O :܊O Z [P1  QVS nfT  RR )fT " C l|c S SB Lm jhU ֬O( P) TW 'PQX 7T]Y 9z  LDRtF ~Qw  S } Py  gFs [b ]O So וsTT u ^So 5( FO  RSs S S !Z IQl ٶT" oO  d P@ z! }"J Ty lR( Sm* Sn ؕS [p Bo  D :S ݮP [p%> '"Rl" fSw  Qc K S7 0 1RY  HQ*  mO+  nOm dn hSa pP@B ϻ DTt. MPrK \>Pv   Qr  !]RX b  P S +Th S^ %$i  e\Tn  f] e$S Pj^ " i W x ,T MR j P y zP/ T   $QO NSQ % SW EO ٞR F(0 . 0# '#QQx %ڥ %ڦ% &^ x g &ӌ4 NTw Qq\ Q/  O? XS  u> uRn 7P9 nP: q"P w #SBN ͍,Q0 OR #8ܜI Om "Qm ͊eO "9Rv S [p#- ?DR =% >%RF %   Sp Sq RT} WT~ ET 'GS $ 5P [p/( .S "R@ Q@, ڶիQ> R:d ߐS kRD X֦Si [یO IiRcq 1|S P g0Q` Sn %;S1Q Se T@= S8c O{ RA !RQ P~R VRa  Q\   % ;ӻQ8v O hTcw  Q  SZ S ҧag Ҩeh  QS  SS ]T !|@P T *"S uS* ?>S  S9  B ]͹T^ ~0R/ c"rR  . /y  Q_ "}P? ݜ DSJ SHF  PL]  Pp }W XUSg =^  CK ڷS O yRa P[ [Qu P S`RJ dR 'S} &TK #Q  ,O /O R ՀS= TH V^ QD $~Z +P  7F Re RA< =T P ,! P   t}O  {Q #OS9 S ʛp- P Ϝ< eO yR;i o6  FQ  5  6U RT` Ҥ( #QY R Z z UR1 CV RQW XQ4 F lSe  p'f  r(Q? ˔pS cۤU& vZ ړO[ ڔ %GR &S 2&RT: +͇ S  ߂P] PR ߄P^ R ߊ Q I %/ R iP l9S E AqO  D+ /O< ػT6  jP  S2 QnP P#5QQ S#7Q8 ;pRxP ' EQ@ }τ\ #QT R gSAY ݼc fdR'Z O0 "b' d8  PM9  PN R:   &Pz  H{  SO CR7 $#~Sv S !Si BRR. ΈR/ ΉRi SJTMx n'`^  v /PB Y# >S  fO RKu  ӷR !*;p ݄Sq ݅S _QP ~O &2S| 'Py  \  R 8:R $P; v O ϐhR@ !iR kSf 5ѐP  "T #WS  #\S )] R) jSD k$' aQ]U >Q Q 4B <T@ 3YPh &OS RO uR3 ϪPap ܼq R _  PS  'ЕQ 3pQy K]T  6rQzl RhT  R R (E b޾Q}  TӜQ  WӞQV  $W  &P- ԂSO ί+ !Q }P R  Q ݠR| (R R" R! _S Q E9  PI 1"P coP dpP #fQ ` 0 T zRQ  Qkd R2Rq: Qo! Ry6 $ .s ,Pt B`/  V  YSk Q SJ gP|_ ` T  d [pӨۣ SSe| W<Sj P ߉Qw # $_ K P   P R ^) kQ jO ,P  L'S ?q  Sc) j k24 GS نP  gR mR! &lP? TQ: ˚ rP Q>( мSRM oPg RYb !C&S P+ ܂T = yQZ] T  O  Of &   IS] qT^ uT= 6   F! !%SN ,Q5 tRT nP E$p T "A%$ '{ ZP  &-Oe EPf HP w  ]Q PP oP~ T\ : PW ;!  piRR &  R P5 >Rs j Qr n QsB OQ& #A#R' OS@ ܘ!Q+M  a oSC* QH+ QIW T; O_ GbT Bb. oS h;Q] R ΎIOK gfP W O 'ݡz $J"bRAQ QE 'iE Pp #fSL  eRfV  k Pl P  P Q $! ߛk [Q j1Ob Rc RC a"*u ϖTD = Pv QQB c wp &BR` 7Q S   T 'P ֧# T= S4 (' #תX R6 R73 %LR[ 9Pi $eT R-\ yP_l YkT6 CTC YR,  /1QH VRI [R P$H  S S ʓTZk }O "O 'Q RS 'f 'g  P NS  Q # 8S JTQ &fbS zQ O Q. X T  "L %T>  S 'P% ބd T$ Z  &S2 &FS qQ' nR jRL kRME ˊPu5 Qc ЩRi Qge qTM P _  P c  &P< ![ wS1 #<RB2 &>RC E(O~   UW Rg ʤ p Q x;Q:  uXS vl yT? oN tV  NwP ZX  NP9} #~ #P ޕp )Tr S  % O T  SR xS+ O u"* 'Tb  R ܈ P H  Q  O( S; iT  vT>   HPo !P* pN [peO gSK5 &O6 *O7 +O شP`_ &~S} )T)> KR PQ S!| ^gO JSE PSF  u JQK ͛et   0d @tz gO u~ P  1T# NQ VMP qQ* 3 1R  : 6R! PB   ԹP `t  4c #T| M Pv N Pw O Px r '(T Γ̞?  Q+ 8*P ޴Q ޵Q %T gG- [p ,  A $Lq  '(TGV yE  Bs ձgPq R "S  $oT` ߧ(T gGS? S1P ijG ;T Sz  Qy }"@Rz "ERE ٖPW Sd vQ\g Q 7iD  9Q R v T hW 'WTg 'O QR  $R " YO  Q) F w x " Q  # Q T0 [H< ےP,E %<S ߾ܒQ7 'k8 (O rPD 0T& S r;  cP/ $S RI ӟV 5b +O  U џSLj &RP 'Ro i#Sw9 $QR Q:fa T- .] mRu n}Ob R~H  Jq 3|Q.o R$q  P S ԅPQ ԈSQ P !  !QSt !SSu މݴP #T\ *w 5#vO +aR JP  i-] "S> б&Tz >Q RH RI t  rP S G    Rm 2ӰT.  Q= H6Qm  R8 M %O C S! Q^e 3 S [ x\u IJ &{P ۓZS.F ,n( ߯WY .xTA7 ,^YN S_* To % ͌Q Qk ܏ &Ta `١O $ :R2 xQU [p& OT fQ %RZ ʨO  P  $ϡC  zR %( R hP% ЈS(A _P ̨_T1 !R& KhL xT[ "QQ7 |: *M4 RB HQ V|T@ c>B  &P$ FZS[ "&Qc M3 Y24 [3 @O} όܥPb ͤ6T Ow wJA t|RK M] !f"= ZRp  'SQj Lk zSl {S Q" P P| CQx r  81t  ;S ^ RRs q&P `S '0& xRN X[= @Rj UP ksS [P TT lDQ OS  3 "j T! 'Q EZQ + - چP= 8Z 9Q KP $?A ەQ O tS maP wS% UP" C6T ] ^P > OI t RD Q  R9V I G] o# 8PR KT>! B|Q= Tdt  '8m &] ^Pbi Tij Tj CRW &O = [:T4r P θR QS .# <  R& " R 42  %TU  5vR+X 'BO 3  LQL V4 P= E7S{  uasL #Rr pQ &| \SX  Q$d МRt Ru RK QN ލ R d%O  y CS TQ VQT X Td >OL 7$P ma nT ob% =*Qj 6T  k2Q9 "#Մ 'gT >P W_ ڐPs \R  # 'q +Q2 $YTB 1 4R S QA ʴ[ R<    Qa ۟sO1 ޟP 4P 0YJ 0*S2@ V@Q<R  (Qj  ֶ& F )Q ';R-  k۪P> n'S]h E  pA q%Hq fzO# { BS< R= RP ڪ͓R &Q4 ߒi CP2 -R  ' 9QX ̲} Ѯ\S& U%R) V(R* &P Sx  z !Qt f uR ^ `* Q( ͧ-! Q 'PF S TV'  R7 #POF T  P BC }S0 WO 0RoT +&P Oh  PA S8  Bf S< ~3R& 0C TND TOx xRE {O RM y~$ &7On  ^Q^ "u $\5Sf ݔ'5Qf Qe T R   $ѓR "P EjS FlS }yPo |~Tw sPt cuQ lO' NQ  Q 2S0 S; U Q Q Ln  wR/  Pg S` 5 Tq $Pl$ sk: +O v^R_: (Q b QQ zBTc TQ r#hT5 u#jT6 NS,^ &_ϰR0U SS QT  R 2Pf $nO @S$] 7Ӥ  %  mAy L'PV %RL BP S| VS .R   T( ݸ&iP   [P RR 8Η !U $Rz [p IQ# 3T&\ m [Q)K #TJ0 !R "iPZ $? FP Y& 'f 8Qd ")Q- S< %KQ = %L l TE s  Q\ T{ \So 0  J#R (O eP7  n Ѡ }  9  Ts p    P ޥًQ   O 'IP 1 4 ʇ}-  3Q; V  ;P ) ͘&Pc Tk "U ҌV ҎS% C~3 ՠ  TB ܞ2Q|^ &S'P  %P+ 1m "T( (2T7I 0O C!P0_ S T_ T` "  otT rxQu h Q k mQ MP jS% 'r 3 6SJj %%P $}h Sr mPX R aWt dZQ &?k H NS m;P :R# ܵ S8 Q TS  O &PJ 7WR S stv $*E #7P* b+ dP?G 7'kP hކ/S 8RZ  nTx2  ʸRG, ݖSl. Qee !^ T &P| "7MZ OT= tP  K'G " RQ +E {O dP VOa k N& 8 9  #\i  'm %dT R  Q  d& %`P3 ֻP P P  IH N1 [px < *ߦ ЖQ[ 9$O RS &jT3 $xR # P.F ; FQ R. SP, $ l E JQT, ~ HPd3 ;P wQv xQw 'T ^O dP rR: bڛR1 S; '[vS1 %wQ Jiq lPT QC OP\  SyK  [p) 1P 5}Q7 VNk =P l >P!p Q/ ~gPH h M9 #( QJ 0RO PR}  " &&QN +S  S  S ޔQ '͂R O US< N qR #=  yR O' @P'  z% ".S&   !Pz 'oP` T 1 [  SG b\H dO? $P  )Y  *Q GO} $R, _] 0,S0 c@ TN C֣Q_  i$6PL Rh"  S[ Q; %)Q ѢOO RR ѤO{  _SX _m  o >Tl R\  %Q  Q >R NT9g tv{ &+ P1 $DS- 'Q7 ҏӴ}  SY dRV &U} u 'AV )#Q ?Q! AQ  Pe '%OX w&S ΏQ | + [p"lD rqP ѸQN kO    R ֠ΩT { ݍ))  \P ۿkR 'ON  vO  Q %? [S"b Q- ֊PKR 'r ! ҼPUU {` nQP gT O ABS ,T$5 ҦAa &Qx Q TK ;_  QG 1TR ;S {%edm !  +Qi i# j#P k R ; ӈ3Q! S  ArR?5 dD/ r0 sP(  .Q)  1nI URd 8  P9   A $L Q aS/*,0f#^DlDmSoQsSq3C6pQt.%n%.r63Cu+0)NߑPɒ7m4i%,V'4-JF*n5`9#E,  />#|;5. 0)&PE(K 0#%oS%U404s*jC05"$'٫(E5&0A6Ӈ \'8m9*T'9As1NJ&R.%  doQ"#C3y4-5zC58P;A,'E&?:%v!"<Hx1kH, J00:$.!$#'&3P=!#:" 0a8X5qF&0,G9/%'2_# $L&7*ɼ5 6A$>Bsg/V&|!ǘE>+Eu7<4.r3{4mp:7E1n#kR&6-sW5%FMX4#9!$IU0M0.6X-8oj! ʈLI>QK% s6t{D)&'ɠ`;u8qDoxڄ!P  (/1Ѹ%;h u{(β k% $GVԦ40 ر Œ?  *?ͼ;GEG5* `&7`H4)=r˥R*IA\&34dG4K 1#D5y=Gm:r:(;_M @mDpFq-AMF5!{׽I׿bRDlA):= O@"8J *3 Y->4UW+>bh,o-6 e=$2D`M ;?@ % #JZolJ9JLEL`b*-e\D o@65Z3 mhD7Mm:(_! !"@1) r?0jDA|1 %#%1F55/:/ 80X :]gH!BU BVVa8J7>>Gq e#ނ2+*4MS@[+" *M/O6y4~(}0! r!G@PM 6-6a?C3a ;H!?e$L w0ӱ ,•d>>U@#? , Ø6M Rێۓ:I`%E,8K=Z>>/&CےC0ڨBMڬ8D[X3>S?TQ]#j+k:G; {?Nj66oIH ӫ*T-u%.B3VVBT#)e#+GD=G+?*)!,MMg0;|;/ҟcA2KG/C) Erb4*r5~zxGw)ˤ2?dLmR9(0.vlL:P$(3""4`!)4aU'=SJ"IЭ .w֕n y6J8_ܛ<Jr/j9/f;)ޱzgD%  mK4&# ,3 %ai 7xۜ,l n,C -8e+7(E1t?(j%?I6E QV?J%7}ZRs1ID>c6~hth ?F<.%4!&Q.G;g)M.y\ Ĕ oFEQFK`L#ۨĤI|A  !K6^7U,ƾ­w-@ ~aDv}à yh2i2& _!<1Wt - Z<2$ c <%o8%tG"5<+OӝKwF^5$iСߦ  8)7')&G*k3b # FdT<9< _;؏ؑ(0?F; LɍH# k2"Z),)h} 1  b+O("yG;"(4tJ@'!'͌:͎:/,'d:@ & 2ռA-L,WL*`p-=nrnƥ۷6c8LjJ/kJ:Q-j!9K~H8,',y Հ02MOȒ@I%t8 F-SVv":|7 =) +в%5f 2 g - ^>ң6 `7$G͠7~'UdM <@т69gY8L +<`A4> 5gH(F(I׃_+< 5o>B5H[̓D"#Au"(M;0'Omݿ(K?Ju@0v$A-Tp05  +Te,RFnAo,nڥ 9d%77W-&':2+_#,+I1HV*/B$T:ABO* <+!4%Ӿ0Y݇ƃ 48 iCFd)6i)*4| +2!Ř0QSV5!<m=j:3G8)] jK l4ijgVVf!\ʉA",2) #'3LDݼL?p>x.J# &EE)1!SJ9.e>g>Ai ȧ+ 5[!8OJ],$@9D\0MԪz=E~$z  :$J =$M ڗHz m!Ԋڐ? -32R78rA%u&>i?\#{@D1 2}ž 4B5Hĩ24j&QF+(=?$[v*<(dnBA/ۏ )r-0ưޝGj#S6065!Fc̤!;;:L׮  4dvSoP)v؂"34H"1˲t:c%3>!l?<'#KлK3`'AK'#:-?/[-֛42?.$./WFtܧKj:ſj>gЍ>jV>| 9ǫME7 :;8E J+PHW:v=@L?b Fv 1 n A-o{?%ڿ@]I..E@`*ipDu  AV CZ!%*?gH O3p$ 6#H<6'|*yp/m0wVs/=B(  qQr1ZDm)i72 @j@]YF?"H9L/!yF(:0L_sqXCveq "֨384(8K/Q.7}5>_ H-N1j:>z!:o6ΡJJ1X4os >rڦ>vޜį^C<IY6 C@R!/I(*EG 8ssdv I̺I 7t8)$;CZm9Pu`3Lw )FmG<CH޴ \*mN(Z14j|-~0){O '/xMAD% KŊ)"';5K H'H;:)Lht3Ry#44f2 cֻRVxy'Vl%`,$n 3Txɛزf"ju mK|8DLϋmWouՍ2Uʲ%,o7qCEF_Ҁ#EC=-~@FE/דMI%$Z $|7(٠ͨ;*3aL>E8Z<OԧB;G-KG &s߿7)8=h//50I= / &nMWX" xبN7h((";HMM " $T82I.y"' z;mׯFF1QԇԈ&r +:`ub.{++3Rs%BR 1&u'K̚1h,`8jB> X Y2 !:62%2./u9D95)?(16C *15A16180zCn5Tm9pN_q@Z$$M`6$%9*<N%BBƏvJw P@T*\G 5PHF%^b̀F̃  k;~ҁǯA(BG".095-3(:=:H '+k@qz6xED!3o+(`t  x1I LI%syF%WB[,7՞ 'Dşq@:<%7λG858?OW-] e#~?j79|L= *!u-:A50BscCz % p6߲6)g_jTl)*V*Y,}/ڍs$98EƖ@ƙJ\M+~A,;)IZ !/ %C  '/{.`"KQkFpc "7ޅ^ M`EM;cEʮ)!K4R.:_-='"+M9 yj8>UB>[ -j x&1rD9=%r?*4LC%T7Kc5LtcΆ<=lPd  y;3667I8mu=C=~&B` 9  0<=H F,+J{6n6qi6tsD&LCb)Qˌ;Mcs+@gtE!^)M߻IZL:q528KBY Z^;6ְ G$.i{q2-!]ȶA"VHi'~:X{I$?{8?E\7mt=/!_@3l% ǿOpBaBc8&8!\Kd9l8 M£-2-3e?MJOp { H  s=J/+ ]k=D8[q^>a_D! 5 ]D$\ G@B =t+-. 4 6 CJ:5M61|)31T<!m#Bf0003g04"#{VMlSѬ/mO8.u@jA,=^הF4h/2_}Rd'N'P*зGM&:B-.z-n93bOQ3:Z=TG'F=- yîD [_R.P&wV+M_?2>ڼ DxDyK* Hȉ;7V'SIli0KΔC C U00,߉7٭.CC%D$ 7e6GmP0IOnJc?$*<X=/&B##6~#8A#Ş K-;H2u) ;a`~/!)AD A C=F]"i:~ŽFF7"6&/GBI(;M:s5qUY{.4zx,Ⱥ0.TZJQ,!w1ט +"?/ʽCʿY) :2b:" -7&nȪA֭4!'=?&\4zLKy/ZK~EA>uGNS-?н: /Ru =18`n$ȫI=D0w"۸*zI~Bnv+{CW 9E=$@LHY1Uw%&%</  j lp ~0OH0(#H2B"' &-"tH )v99#ckg:~=VA$k}mŌ@e 5c}C5Ēĝ:21:̭f1M m7;c(eB4;4kBK9(GLl?)]j723pr&]g@r>sҳfKy2,0ZWՋ" D5.3^?UEJJH8=$ԝ3WԞ,T&ԡ6'[ځ3IIͲocI N+^# g#g&STIV`;C<z V8M<a  i /]3# rC!G 3x#"6 C1V(+#9 Att=-Aŗ;RF )Q("fM.>@HC%c/B2.` &+5c uZ~'!$J0!6. 9* >/ˠ NG"O/6.* U"Ot ^:0-w-^/ @8-2f1^I F=+&JB% j)rI9XC'^,J%m5.%b<$=> _~.$=6e=S$ o Nm3T]7>+ ,$+4BgF$  I$zʇ N/ WKw5Q6% ?STWw{d=<>8s8o~$ l:- %U^. $$TTRs$"= :; -h^?SÁ$+$z5QS qy:FHw' +\$q(Jm mf ] N$z]89..E&*۷ ۸ "::;=ZBK$J$=>K$ q(7fV!r N N:9-?:<97$ [I $8VL$$#\$ Kn9Ohg$(b$}X}   $y ` KݤD&,.-L0 ,-9Wh$%>?I^1ص $"t.Z6Cz<; -Z4 [y% M5$- 955Q$ ܚ(=QV$MGi9#>%U6,  Nu$T:>> >[<$6 a ђ ԣ79ڜ$ C-If Q$ $T׭,W1Oq6-N>UK$ Nt$H%"+ 7L$^q  N N(bIن@p NOqI$7 vB$ $˩˪S٤5Q/$oeS ",0$$K [ A<=?>)MV(:6-6i||.]*2:8E qeq A׉ N NL`5$$ 6 J6C>#`j85QH1 NB N;kr NIųrP$Kh7ˋ> vM<\$];9>k$ N$$XiAa$5Qq: NZ\%Rɑ% Rs$V |Kv==/<q 7$@H̚V=G $,2[q5$ ě @ N5TD q: W&J ĺ^@4,?%  :>>:(b$G ^ke5Q$d.;"l);$ NCȤȥ>qv:f4j.>\5;U<9;N898iƒ!F $ NV5Q|:[5QJgT:$ /? 8=5B 3$y19V;b5Qbgd<>;:z Nz77 NqI%Uh,";9K01$"##=9;Y=o679n:<?!>.;6q19U '%$h] $4\$z Ne =F=>6 e^ Mp ojp P@- l5 ]$p  N $(bqg $5vWR DU$ '|* >22z%D&H' My::9v>9$J1 N*ؿ(Kۢ) N ޢ  .^ n$&43 JJ"$޴KKRs(Aq6-$ +n Nc0 N 99(= 2=c?;;:; w=ܼ Nw!|,,x԰=>N-$ N7Cѳ$8ahhN$:1=71 \G5Q ݧOX$8q N$OL$%q%F]~ո K$$%   I >238;@[ֈ$ N$ mh܃54j.>  Nӭ BZ֟9d;==$5>+5d N N=>?A>W8'^$!`$'$$ 9%9=A$3*?T?3e M$q$J7?O9=9:#>չɾtƠ 5̻ N 1C0 Ϡ$\$w5QKH! $p(:b$HM%U6,=MHՓ3 qMvwx$$H16 $J! i"mj5Q;^5>[˚K *Jnp37eq BZKKR081=28@U$2 ; !̯$9ϕ7h5>$f+>#hJ̓;?$ N.B^ NFUz$  b=< ʛ%(>$a NŚ%U9 =<'5Q#hR(ђ l'*i-*7;vMA$ $6 N$$H Nl$â\#% %Ifƃ%ƆK  ]5Qy?VE3g_5Q'p:V!>= $3=%<:9<;9\3 NJ  -\ ʝ4&:L"F +$5 ǙHe5Q$ N^w 35Q|LX$L^6AH[NtVУIM %U] \]P$?5]} $$$ N N$ u lI $^R $<l?v I$ N N#6q3! Y 23~KKKEE$ N# N!]4 4gF8dN5QQ5<4$$zj@&9 KT 5 N$9,L o$ LMVi  N2$0$kL-*iq%hH! 0-z q8;8:wK-JS$W7=!2w] Mw-)$$9=8s^8/$\T3&N9G8;;$$P>n=b<<q78><ۮW83T o6,"xYH&2$$y8K&h?'7KR:- ;E98<90 Q$q3$ U6<(8f=;<$>L$33=;$$$R$& Gl $ $2& N;D^$$ N q$%J$0C;M=>8:%$ oR N[u{: M\ N7ۥ N`b=8D<>1Q$ Q*=ܒE'/h N =]S$7 N.: +3 NV$э . T!L(q+.@ 7$8}88@$Ե$d CSϭYCϮ$$<<+>8:<8*$ fF NυB N zh >$^b N̼Ey\$:l;<3<8U$$g3ȩ  F"m>P<3 W8?:;*>$8,8#"G7$" p N:>x8x3 N?Ɩɉ:t]$DJqA@4R$K̎) N}i Ď6Ci r:V  N 05A?=9 mG|,$ $q5 N$ <ʌ$ʍq4j.>8>9- v  Wg5+6 $Ȃ ?$| aK %A(G-$h3G`.(.Q\%|Bq@=Hq` R N D1%$?<8h=9@:c^<q*, NqqC$3#åPw  é6Cˊ g`(ֻ3A"U[cݰƑT!]7 rs[^ UV'(( m$!8 \Z N  e $5Q^ I NT.K O]$ N-F#9I9`9^\`Y -%%U0>O>8[ߤ|w$F$C[!=:--/A:>g;7$zX$h<8k3=<? %J ? TRs de !$$32֖MC.;:=W9=!=O! 1-$!\33TTTU$$  g$@=$qۼ A.XN$ EMSb&.h  N; O$u&\35Q R>IPq=6 >5Qh N6CO` NLq;>$nd7 N{$4:1$p!.1=:8 NKD" N u N * +s1JW$ ;|=;>> NYpq>Һ1CJ$9*_FG$ N5QoK$;:d<";><<5*6C$<=d;#, .$;3l2$$9<$l?vx1$  NX7$: N$Kq\`+ $?a8 N$6C3JD p$P$"\E`.u No5>8 N5Qyj NHe5Q %$Wے ~$;<^KЍӅ<?8:899*8:$$ \ q-T$X\. N9;9??4 NE?=9<3Xh%;r8)[qί$=$ \>+~ R U"=S-}08$hIHQJ  % [h^7Rs$f8;=?Y8"v0B  #T'|?(>> qRs7$<qHq4 V>V;9S^><<]F; H%H!@I$ H])`!: XAy$1Ѐ NMˑV f%$$<) NO7<$RR#=6 N$>;L:<3=Q=9O<8 2 u(R$nBtX{>)Lƺ c N$$$$%ω$*v_w9k@5N\!.d :8"V|G[DB2.>y  03E w+:99<8v)#4) Q"  ]{ $ˁ:> N 9DB2  ?,Û$1:j}%U6,ĕ5Q$6C=;8 6q mXR*$&: S($?? NS@$$\ NWG$FF k9>}=@~h] N5Q$V(9}:=m>J;A9?<^ D!.Iq ]7 5ٲ)H''9L':T N$H89$I:9y9?9? Mȃ$f$-Ti-$ ~o.; K$$ N:<*ðNJ]zq N"h!.(5$ WpX l V$ -F,%; >~'Ƀ N836Y[1]S- NT$ $>,:~$CK$E{98\q$,j9Y<:gq$7$| :z;?u>>?9z9=?+8R<`<>h=(-:-;qm$b$ N N  N,5 n$ G$?1:99s* }X c?<>:5Q$$Y N   T4Rs$9w>HBoUx0$}L N5Q $$gM N%U6,U Gۿ #v$  95Q&LJA BK5Q$q6C %4j.>. D[E vq3>8|89?{h$ԋ^$ N:! ͱq@@@F\I59$K%Q38?5=?e>Y8=:i NU...E$)x{ 5A@;$Ў>8-;fW N$Ӊ@AK_1$7h5Q(: a$},_V Uion>>K/$\}͉4j.>KKKN-ׄ5$^ V^q N P^5Q9V8+81*83R8=4>-ɻe i_>$$@ N(ϙ7~[l$oIJo!.[ǯ,!4j.>͌!r T5Q,@ʟ:n;>B>ʢʣ(Xʤ:b9?/?="##qOFMv)Mx e9<9hŢțȜ$B e8/&$]g$J;a$;[;:;\;2F Ŷ$$$Z]$-i;d=0ì$BKPLdƎt S%%If75Q6I.VT $@ń N4FWSu$75  NĆ?* NEQM$$"y 5/:(l$GHn &<'UJ:\=:p$p L><;<Vw$ 7{B w N+œ N$[$6 $;< ?2 X?qr֬R 8>r9Vq$  " N N>!@  K+>Z6CZ#k$ N"Q l^ Nj)9^?:=8=$9 $ sL43WJFT N#Z@ i$?< :>-;t=v$KvK}lqV${M8& ' N1v@,S.%$7n,m,KQhhhF3$@b1==8S;x N:K9E=">'92;$Q#z NtS-?5Q$ Q$X[$  ÷Z22H7=mH3Hq۴z7Tq(G$O==e<b$&^S@U $8;!$5 N q889/o*q8*$$ Oo5  NL jy>^$^868I:/ NBV$K. 3w!|,5 c$jS$TPF*;'98Y=<9׳׵ڽՄ Nq$ |γh$ 77Rsq NFΉҳ7J,5Q$ N9+:$K$O59+ ޑ<$$ Ne9>*:r: 9,)ۧ Nq N1 Nӫq#=e?P=.:x>x$ 1=;8>>RW >sӾVT&   NwxX]*B|_==9)< G[l1 N\1IC^#} C[  ת.پ1hڲYG ϷC.^^^W&$$ )@x$p$*3$,N-%U6,^AGHH$u\,./ :k>5\$$S$$3 bg($I,R.  z<=?N-r^%<$ N:<4=C% Y N'$gN{$Z4j.> $1*3> с: P$qPq"5Q< =|:>9=<9/<?9>8:==;7$I4,0k6^!?UKI:92C Nb%$$(b=$J % n NL9 8$ɦ"v4@^ NAA|=$ q8/$6-245cnoC;%%Zl?>.qH!<'zK޵ q\ 2 N VZ`Ȇ]^I'$- ;,9 ? $o,$ KR$q3S$xIXa x./%A/5Q$=#>Xmq N78/ I>:8qc6x .MV[6Yz 4}>6%7:?; = w N?sowK#]Lv07n%UQ1` \-KR X:+7yQK3T. ? N6$KS  m$-Y$K%%RW2 7IN$J=9:89<=;=9=;z$7$=68:;t;}IÊ%%hH!T%R: q$U@3 Y:$7@I=?o$, -. 0^ N23#" N-P]%%Uq(:|; :   $%%>1 \ %تKWY.# $$kq e%U]0h KFn:>0,MV )% N N$A$C6%%%W @)Q S:Z==r>;G98;>f>(>l;:^).a ??};8;lM]$$2=(b$$k$ NK$e%U6,3_0$$%8n$$F ?HIT5Qo:u8xV C;5:?]E(]v<8` 3 R6w!|,rJ@Vk6He5Q'$ s 'qb(\7 Ngv$,375Q% %FW $"m A 8JH ?D=9P$7 N8=:$ ߪo6,"11 !q$Y+z][ N׶7 N _+.$i\F)5Q:";Z<;=7n$:7<,5DB26%M $;88d8=]$Ҷ%U6,մزTO@سyq$7pА7c$C98$ 3Xb 759+$"&֜K [ p+$[+%6 4=H$3?=9D6Cs N q*,q2[8"mB AfL4j.> /$ N6 G A(b d>M9)$R$ ]$T|e: ^Δ N;=<ƪ  D~0 0#WKK N\\B>D2$G$"$R N +3Ѐĩrwb$d|f$$ʉ$9;:M (5Q/ 6g, R }KPX0'uO>$$<>y*ŗ N[.$)2p$D9=g<2;W:'Fq#63ITH uˉ8:t>s>#Έ$4t$Z[E[Q[sE89: ;;<[?] %.Ɵ7,q2[$~7$;8O9<0)F"|:N9$SqL0T.\]  p$ ǔ$K''0h0 ")X=Fh.> V4W:9948= u N=^=a:?>=9LЎgK$11::J-ifg $"Vz&+._W$ 8;<;pPm ] 9)I>=H?E93E{9,W-J$c$*i-L Nc$$ N]${q$g9{9 *$$3 >|65t| N}@33 Z&0&8BR 68q N&OFLE 9?ga@'Y$$r$%b_`c N' Kvq: ,R$   U$6C >k:$yՔ7$^$\"9 NqP5<92a ^ $ N^+q6 \L%K%Fg)4j.>(9_b N%h]$4i/< 13E5&v 8 N ,5Q$%bK$<>I'z+Q 9;xQ,5Q N _ѧ2R_%U6,\$3 O N1{1~E C ѿ$"RU=94C$-$2&DN$68h N[hhRs$]ۊیP %}$[shO5QS<$0$6C9W w!&:$ NgJ ޠWYJ qF N eۂ֓Wv_d٥$ ~9:<;qW&$-!^$ * Ͽ?9<;>;H$ӏ(1>+$ݾ˟dْ$'# EpK $$" DRf-b=v)3dg%U6,7k z>$o 5Q ˴6˵A NqJ  Tna.J(6N$g5QB$p NLz$3f H}Ϟ7Eĸ W(  FS N?3>;":z>Z$%%Fr}r;&<*6i;&^7=7  D%MVV"$S l,U 5! ,q2[ N;g=^Θo7r$p  N N N׼L) N1'9R<$$ţ$& \:'VX833)G N=Z Q w"#| N>)?@ N7'@:3<!VuM3UoqqqT4 &zt)$./4H4I WM$3\ KKKW& X5q75Qq1ʖy Y$$>8?,:[=y9 WT&q$x |LNZyLPX .x[З] =p5Q!$=<:9h/.I+>6$4?=uh H!9;<` c NJq$D.x1|   +.Io]X N$88K\&5)q" Nr$p\ SZhd$F9c8?$I$ N %92J$q6- 2DBS2 ,z>M{"##cR(<-:=9+; N ^[$7Hq;:9:>:e;%$ ( Nq N 5h|$ F N N75Q$01 .l$%%%>g"7?S.JDUl\h N$ۇnKNqI 8@83Ig w$%RL$8<9<:=99a7 7$L;;;~1^% $ N H 8?:+>ڵ1 ^'ZE$%U $$5Q$b  a$y| N$V@$_$ދ7$= 8;w N%U1T7$$6U<917885<:s<8^5Q3>9=v l٨4j.>8\{= '7:W;z N$e$В0bBY.9j~=w  2q> V46$7$ H N]qz-FY9>{=J;>j9?;4 ?C8>Vq6Y^K6CD22S5Q $@Yyɕ%%Uzkl^]\ N$sh[a.Jq6-T4ɩI%\|1*3*>b;86:;8:v^ NAAq$$ ;?q$G}GG%If'|$4j.>$L-$p N$? :=>>|'Z :M 6CS$ 5['M3ȧTP =:qG;3@vn$388b;@J q~X Mz$#<:;) Ye^<ñ$h#wx%$RɆ! .$ >=; 6>A=;;_=Y;9o/4JgTTTW4$ pt!r40%%Uĉ c  q' N$zg 9LIz Nu Iϫէ&C2ؘɸ$.ԑ̰jQ78. Xf><: ,d-)}- _$;9fq k t  9D>m> G N$~ :E:p::=\.$ N9?:q$|Wv&pV>>I; <8:?8;XJ$ e7f$l4IE    EU N&&$j N ?9>Y7qhN7 Nq^T N!. h $9>;D:m$^$p  $ OU ,z ^$$S$qX">98˜J`Y^h N. cF5Q E$$ L 8.,4 @8 E #&|$98L;=j;= (%n+#hF N 2%\`JJJF 0$K N1:'>;hh_$ Nc Y< ?9$ N Ք UN  ߋpZ|H $q/$S\g`D[;]$G'5Q =5* NҡHeO $85Q?M=5Q$$$ N5\RsZ (Gq#qtFOq5Q $M& "L"$ ?Jq NG2$ N' %Bʁ'p.$<#;8~ N  <$q$ [ $?; $5 Nȑ5?$$5Q%f =<:Ji|w@=h?<<0].l N6Kt3"Pnp$3f3YOEGlj$&[ d! +C%U\F=o Nbp N'$7^F`$ 9$B3<9VE[+.X$'q& $._RU,p7 N1$ ?UL:she=? #%%E>?;=q;:Hb%U?f 2$($>?>>$2%L*.!,/7"~0A239&+L$+,0p056b3B/A20AJ9%3%g1F246R5x-[>1/[k1onbzM$ *RT \ 7z.4&K77%bt8!s$iW7 .--(Q'657v$6.z!5c*(W"*Q5& 7j,!-+ ,4 34H"$y/4k0&n*!64 "/98 *.2I&7%, 111G4'U/2c%)|&'8%E!V" %T.O`ES w\!('Q846+#W$s&V#B+%*p[ e3":&N^ 4!'! v/Q1{#'],EAx/4!,691-%' 50g,.Q#*01 K)L6z)'Ya,|/{161%8#-:$M9 :'%5'U+3("H$b$9<*o *1(r!"7h99)(2"c/ JV& j#0W(R/1139,~5)<3)4(Z-t,49*A*+z"k!*t6WW pB3#%#-713*u(06s5h'83)5GW8t)K2)`9M)#7c#@)$P'$'.#4|"&9Cv6*U%9*2(;9+'f=./~5' /-F5q5#&)0 5B)P3$-@&0"C P&.m8'h!he),+B($5T%4#N8>A6*/*8/0]Ov4*,)j,)7W7#'~2}9?88-j8S!99v($/v#'0,#0 l'8=20-x Q<,<7M0~it$r! \+V5 3V.+ +$2)A'%2(8?+p,=*$S)R6q(3X.'(Y49*8V91%Y0$/- 8(e".e'l3#X/"79*h%/i$H1O!Z$%u T8${25+5:..3p\+6V.87.Y/%! :+#Ox/hB!o*e)*q`*145R+h%7&W-.~21-+!9 N5H:5/.0}%'))i8+/&Z/b94&'8!x15-"93 ')&+*"8,u":2(l1#?0L -9X$.A8"+%YE6CKU$KU_Z$n۞35$qy N  $]$:CQ N&& K3.:>&< ?s I-$6dq+X$). N$2 $ 9<?)<9?*=z$`4 V NQ6  7R$=};<4j.> 96- N DE>%  N>>z$ ގ9 NHq  u*8w9i9;0=<>fEӦA֙V)g=!_$ NjU;pP N995$qK, $$.%UMT$ 6F]$ו  $%%Rsq S8.:`=S9,8= $7$T2z$>Zp?$$><d2(b;=$p$:;8|қҝN4j.>դ$A$; $ )ޅ?ކ;!8c<88@z$D?Z9;$<9<a̓<-w?ӕ9J<<9]hˠ9+T Nٗ܈q$Σ$RT N 8Hv  NI, NzU0e$76Sԍ $T:׎ q(G NIφ B χ^^^; Y"t/_ Ʋ[$gϢGG{ǽ$ K؃P͖ \?9$$.$>H<]ߕ88W=*?9] N$;3$u$ nq*>|]e7$7bW$΀6$ż "T$ h˝6C?A7,4. xRU N 4j.>M?I&$JJJEA5+,-$>);Q;hv$$'fG N4<??ĭ-.$ S ˱"&!$5Q:dLI $ 6q66C $(*BA2  N- q3.*28@II1̵ 6CG $q>e N$%KH!A(,D$. `@E|?>=<!k:$73! %U6,a0$4,!=='8QtW& P{VZ)5#& Ną{ǁʳL$ N$#/VC>I'%U6,$X$ KO|);-=$A=8X9q$H&մL]5 $ :??9"tAm4y N $H N~ |y3TPCM$+7  MVe>@:@:!!6$eq ?PG,I5>pq-f!$ 9=;>wF N$ N;:;? =l<:%.E NI۱=ޮ2cYӱqz .+T;=86q19U=$S%$} N xT$qk$$ %@>I-%(: 9 tj.._Y<N N$ .H!P 6$KI@ױײ0V$$ϼϽ )AAq #$)Mwq$ՙ65 NGj'رۓ7 lӊ$ѫ-ց4 Nr $%ө$F- $Nγܗ$ I1 ZT5Q W&BGK$A("m9+ ]1j0$.gp { l,})6)J9\)$%U5Q@P5$  TEϳ TKF!U a N N$} & ǿ,)=^$  N g N<_ ) xi h7$M syki'F2 4. KS T1. ]$ =89] N(:T$gƘNo<@*j%&'($$@ ~ NNg$$9$h %Rsu$$$FIqĒ5Q$w:']9I7L08>G _$ N$IK>9>\.I9qA$ 4$ <?w8<=Rli>=;9>g? /'Ey  esKm 9 G=>$$.1*KKKE$ q:> ;>d@@@Eto$f N g Eot&:75>s,$$  $:G<Kp R7;=[8> , :Y@# N$n886;>;H<?> N-] ,9cG$$ >]898=8?'|3Q6$$$$h>c;>? NT N([JwT$=;:?6:<¼IR$$  3,"a8A98L  NKKKVq(GqOfRh$N_Μ $пBӽ N]q#6ӿ J$.#< ' Nܯ=T.01$9$/"%^ =$-( K/\$ѣ NK6 Naש$׫kݕ$c5?J=:?#1!Ҡ$ңD$4j.>[ ?:<;I[ N$͜۝ N?2(z5QV%/ eq 4j.> h  T4 N >˾2$ $833)א$@ B! N$:&9נ N>E$(b{ aC[ ($T$< Uue#2$"$ҕI8$z${ʶ1$ >?% ߴ@5Q N &Iy8   T4pA $M$Ν ^ >7R&\5Q$m; ;s9H4q.ԂOz ̔y 0PW0&: qa"U$*| N>8t_CG$<$>  N5QO R͍^7Y\_N4Jg<[Q MTE @ ic<?ӊe$Ƞ[T)u5i|M kqK9;?>5 S=)M?f$dA TTTF$80<<pYK/y=>=e NA NA$z7$ $Hin5QqŐ&.5$HJa Q N$"e Nģĥy(bq<9/+$ <.$ʄ~q\$$\b4j.>5Q;>Ls $q$( !>>H $ $m K$  e N N- qN ' N N$ IE#5Q^< N -q|K <&:3;9F:"me A*@$m + o d7V$Edf$#$%UU+$BT$$ N NT; <$$X+. N[ H8>=u<=v;V] p 99$9~?:>8  3?=>8;an(Yz a/?0:$?" ]$Cn 3$! ^...FMVT IV?"?<:?HV)3 }:;egD,&:$} I 2t$ N1$>+ N6-q[6C?-9>==>T9= @\`zEG3Ѱ787 ?qI%U$ N!ݢ$  ve $ Nl2V$  $%$3>!8$$)(bqȟ ۖ nz N !q M><?[$qM N-$ 8M2 8Щ$,  N'/TXs.$  N$1%U6,$*ּ3I5$Mz$$"9.&$K2Cq[Zh R1o5\E$$O$ -ڂ 4$Z q$ةت;->??=!r9 $ + $ $tFS$:o?i*.% N;97"V07n $$  N$8/=$$9=T NIj7zW&:h=~;k9 8n>$Ɯ=x;9<9M=ƞ7j$ W& ,:b N$35Q̖>U8?:A G%U6,O 5QK S$& N NsO>I?9K$,u, p@Q[&(W޾e$ȋ}acA6(F.]*#.k5 41$+6$a H@} N$;^9<ÕÖ,e$qBRs$65Qd $$z| NQ$1$Jl @s)o$2g}37"2sWP52tK N$9'Z$mX hhZl$&K.e$6C6E$,%&&R(R,7VE377n15%, *V& L $pJ 9 -"``^h NX v]VTs = N  Nq Z- Nk]$K `:8>2;>>VWV*;KJ &_T$Ix N!>.K5*\VccA("me(:"C$8$ .$ SS  $$$$ f Np9B4j.>K%]6" ] N5zVU<589=D?&;nF-G9: 7eB6 NB Z(| DB2$.^I R  U+  |  $qt.t$ N] ?>eޟޡ$6- ^q^$&+!.۹]f:9$8k<:q?4$=9k q$7=`=;)%%%E5QHe8 N'>9  9a7*9o>: $ ӂ$%q˘*A˙J0k%$=9U12$Th^[Q N5Q>?99S=%v"x 0w$@BHC[QS Y%%%W&E[WsbJq4 V]C /̮50ϑq N^g8_==;  l$p07$N$z  %39  V#N,a;#5OA#0EIȗ$^ eV7.@ID"m<79>ND_+ N N5D6$p6YqW?$B. v=9=9A;b;FBE SXl NUq NXü J:?c>8p?z%F-Ơ$L Nk   %, +| %cʏʕ$4 |$;?$2$ 5Qg<$$;G N$_9;>F;=$d$ Wq@EHKh.[a$]GȌȍȎBZ NKPq3 U' NL< z`.P02 N h:=V>=8a:.g5Q$qAA:;E NM_$? :]?G99|?f%)q$YFT zB܁W^0$- lVE[& N^ Nh6KLS* Nk'fϥuoE N Y i$ jgz$h2W ~8=< 8U?@;D N)՜$9:;T W$, n$+LY)6C322i$3E j7,@>5Q]:$ȵ <>`=9 N_ۂ9>:B(K5P NW<~>%< -h۬2+$-$=;8 NI hDw$$>?~sJZK$$VJE]t. N+ eJ.$:v3([Q$T3K N R{<:T=>D:=>$X ѨGԿ# F׮Eڷa5Q $K\`,b,:$ N NI Q  N2ڜSV\CZU4j.>6)$^d?m$76TJlQI}C$L N$J$ B dJPJ3J4%$n$^J9gq N= й x $xW$A>>=<q*;:x NX  87<>:*+ N [$$-r)})}-33$5$ \ ?::S><?X8F!^ ) RД - ,R;>:)=:  Eև$( @܄<1>S N#$  4])o79J5$ 7#$7:'#$9>:?n׌̜[$777E N-TuHƝ N̺ 5"mc(b\>=A:qh HP$#q .J$ 7 $3$ a(\~;,}U8\f^ToM[ NVhq[ajm/$ '5Q)v>;`<$ H"OR  ?=W \.=$Rs$: Rs G{* q* +i[;qƬ3$=+:5J ..a$ 0@$ lzq NċK$h NK:UJ0q"LI`Q8$ eǦ@(3; ̈́(b"5Qބ7Z41M i)($5;E9+. KF %$V  .S!r 5npc,WdpT-7 xp N <z  h $$]We6-]X;P;:O:a`] |K< N^O $Yh[ Dggg;  ~$%# Nw N N5<_y-$A2=O|^?D8V= N]F5Q J$%$5QÂdE$p$':', g$m $5Q~NC1E  \sر  N  3|),=>9>;za[b<=Z$\$.A,q$^JJ$TH! bQ&5h I9PKS g$%%KW N!.@O7 $qt6N$f$cq N !.5Q$ Ղ$@ 1:; $ ժ! *8;;9N8N?k?IR$ @=;=98;e::y>9>:,N U34?;8:$@&P NqJۚ$$7Nz5 Nq6-S--$% Nr NI ]182 F 0  N$ ;8ٸ$2m < r...;LLR[{ ї.8H;<^ԧ =$LV]fC7?^=X$@X.ή5Q N\| H6X(׃$]=$0* N?Q<B_h;{:< N " Nԗ5Q<:<9U=5[J3[HהIJB NGj 8u9Z<7'w}#r٘.(P N $:8>.В0N$  $ N8>94[6r $ NHk;B$:89xG$$$d)T$)Uw!|,1$ͺ NE6C7ym .&=> ȸ* 5<;c9\I$^ {$6C4 V$$ .8r?e\$ 07n n J  N Nfgg /9e$xsz7ɪ4@$$ }$1e5QP"m&q;;K2$$"v6=> $ N$ c  M OőJc+^(b"5QK)$Ŭ$ȨS Ny C N6 u N3D7,D>w9$$L % ,'Ɋ%"xI$':[9[=,>75Q4%I*$ [fč q:B 7JW&.L N$05Q?$$$1 N?(%_+2:[<?:L $98 9$=-g3$$5 -,V N_á?]>88e;;v:;o=:? n>o= N.R5Qr[̮ $z#fL w~ N?GDB?`9g"tq ?+ ?_$8z, MDV N$  .$$7??28 "4j.>RzR{$hhhW&: >^  ,$ NK(:?m;I U/: 7^<>9m;1 5Q~h /\Q ,)E ':"-. N$$ y۞ N Ό7-$$JӺ %o8y<;7 $U+0%ܬ*?=Y Ng=-<?p XѠHVC9z N !CYEfH]4`6<:2?p Ka FGEpءp$5 K T4$ijkDx F N p!r$##pTt$ޙ:<;9$ӗ$g+<(: N N N [дh.[ai.$T$3 =v%< ; N$KI:X[1ڇ h _K 6 I 2 3> 77z9$ϥ^$z~9=B: $_>L/$0d?F?9ϻҎp59+hR[,\ʲؗ Ͱ$ߚ -7n#@5Q6y 6Jq$o7S/ NJ36 kf$*`ұi J5k< N$$$$$$q$  X6-r$/\? A%:=;+<?<6:P NT$y$$zz  ??S>36;;8z> =38 NVG\"$a>($Į  ı'zg:_8].͋ ^S N$H+.4j.>P- "$(b/}ͦ::99::99>?>3]7 Nj$$ Ѫ NkrX@;X=F (H N:?-v/p$DKE$TE +tVh4?<8g;m:=ok y7 "?;>834  ă G$p9:6:499 M9u?t;9<9G(5Q:;9.:=s@oϩݍŹPؔкηə+`ۯя}̷yq\ ǫa%͚Sڒk ɫθ/YoՁһډʭݪXĖ ƭҪ՚=zMJùح 8H˿zn"ޏֳr6ܕg۵՘۔5H͵Ռu`܉"4F|$N~^Ǒ΅sӲ4ΊWUֽ$ijɹ%kl ΚϾМ9*Q 0̒˱QБEŨρa%'ܩC٦U tϬ֛FЕ.qd#GX%܍5øp,Ծ2i&ذҤ܏'Ы)êޛޖڹ͐@זL0րʘHҒۉ(PɃۨԦ˅pvÌѼÚ$*i- N5Qp K83$ 6 N:$]0 NFK$$ܭ Z N$ T Ny$9,q N;5Q\S  N N $c$q?ka73XO[KoSvq PyyW9 O\$  / *Y+  2ë 6/v :Ij [2(Df Kc;$  $1EbEe:?v?BD N" 4:- N N$7^ 7۲3 l!:?;.\ <9=k;^$l CJ5Q IJ$q;>:>o:6 .$ZOP NG.?:9,Ѭ1hR$ N?eqI¯YBt *$h.w#ݟ3 o N$$f,W 52=6ݸ$#PF$$ұ$$%$7,$iE$\7$<:$5[ N]7-KФ!tE ӨG3-{C "04j.> * g 0q1: N N$ Ԏ6Chѡ"&89]=:(>C$ N"$ $ 1$ 7m\S $H-:>?UG$op7 H$y?3E5*76CI:ۈ;o* h Rs %%N 97$$ adZ y<(*ӛӜ.%I$$2i Nr :998!Tw\54j.>ӟ  N zGqMA GGƼT $9 [g $$B5Q- N$ NV .k N NĿ N$mՂu^-%,##,͙eHcHk54   EM^U"$$$)?8$o:D<;6.-Ȫcq%h%W&E=$^!#E N N_q3 =? N N >3;i;;}<<.?$ah  qJ$:9' N  $ƳA Nq::@5Q 4 9+!-\\U 2ǐb"K$c =6]K}DZ:89<$F7$$ h  C$Ň] $ Nce).>I,9::{;DqJ\v N$Z$ 19 <%h$Q NȝȞVE3Ѷ,T9$^=Ó] $-g-ߪ, N -5QP.!v N .5Q:?.;(>;x$O..Fj$%LS:M<6$$K$4F1Z+.#l> j$y Ng;? Nqe$(  NmF #'$$u  w NF$$$ -H$ N$ l73 A t;I:;?8G;;n95=$:=; =?  $N-fh<RI  N֩y3KWE$:OE NOqm ;?xP 777W&ܲܵ?;8_޹$$ZHr(:L@$ h%f^o=]pUV.q >w = N NA("meGL}Rq6-6$X ~ѽ BTL N. Ny.8/88?<9h;R $ N#7$2z:.TR\% [7 1q$% I7%]W&.*$: ;.<$  N$$BGlo>a=?|<9_8;jO ;9;$,!|,13E)?: N2[f6 N@C-e$p$ Ij$$,2u>!"^ 8\e  N ?@=;&[qן N'|>=J6Cq$$ u |[H!$7PZ8j>?K5 "me C NҖW& KN NVJ NqP N:?<=U>LDL ,32IIn#-$V<5zE N$$$VK$c\~=9 $ N  nT~ 9B  N e N A(Rs%%%_+93=(<?9 $8M9W<$-7 N 6Tt$p $K  N N8T9C=?>7 NVE59$e^?9$UR?<=L?5Q$=:e?%"5H$$ eO oK%%_ \`$ N)yqKI9e;<\'Ѕ$$5 . F$zm5ΏdQ$TR  SGqQ/{ SA V.p 9Q<]ōŏ$q::Kmu7gƽRJ0`$T ^6 |[8>ħRʇ6[6C(b$Gq-Fx"6 \LV N N  ;,32?q8>Z<)?Gh4A$9 N;Qf~$(."K7$2 -N  N q6-Īv.$h5QYAN.88m8Z%< $ $%U>8o<=;:X:;9Fez7w)6"D74 N7] G {]^V[5Qp$>5=~$$z$$:Y>L<> 8 o u |3 NgG ȇ^I:UhhhE~ wN ,$Kz|hxV: 8ZiZ>  N NK$$  _\H( N\ NzqgJWZ U7&&D ORC%$ N5Q bg$ $'Pjgq$< =>;F>y^<|8;g+ j N 0 >5QQ516ebe Nq$?uV  /dI4j.>$p$$q 19q;7& L3($si$XF: $=_<>4($p4T$JN, NS8,$h&j$$޽JT N N NVܰ $q ~gw6Ԝ ѥh O@~?K%3D9b>:  N  N/p-v3 2  L 4$;9j;V#$0g$$9 5Qq$+ Nd7^տ,32  N?;J$)0&: ,O@53R?;Xj N % "mI N!(";N e6-^ WZe[5Qx| #( R(J>_<>8ڋ:w;:;:;?V:>>"?W;7VќԬ `$ס%UCa3?d;$$fx9r>u<}=E:I>i:= [ RHH#,4I$.-RgI߾SͶ;?;);C{IVk)HV s)f\h8?>E DI N= NX!KRK^[*Q$q(*$ w N |7h@hhhW[.m% ;Vm]Ʒqo)" 88?y=>ts׋ "yh [a8/ N$vq#65$,9X>* 1̸5p3V\beĵFt5Qа$$ SV(:L %%U޽8;!;a$ D$iW?;8;z N19"99ʧ N+.$c00;w<::? ?:*{x:<<;JQe%<<;]9jgJ hq V$=N  T FSŸETdH# 2cY (ZFT `8 NRK$$ɄK5Q׭ q`3gik  N*[$"0 ' lɜ95Q̋̌ xc%S DK N" "BY,7T/p-v$O<5Q hǡǢ$$ B:5  I8 3$<>T]$p#$$Z.?$$g  N>=7nJ|K6C4=$ ((M$p(I-4"I"$pL"-$<-`="`-`4( [` I((-f$p8(=I`(`$)8$I8$p", ["D8[8 I$$pj"%`[8‚I$1["#S-$p"8$\I`$pp$[`8p-[P19X+Y%@FBT<I*SDqGW@Fm%<U GTOZORF7#3{G#k!4m6&x5Z4ZX:!M5FM3.s$%Fy^:/6D1Ef(G#( ' 5239{bK` s$I2(g,:<!}43 $+"#& d50\3 0((*9na"E "&X t6!<%#H)5*N B,ZB($L),; 8n=4}3~1a/lS+B HA$i-qם4KK3N0C3_j-7rF35*5>78J+Y-yH>O/!M-#%l0% ړ D8'') Y% 52+4m=a6UA -5f;x?P9,G-+DB/9)Ll6>CZm9O/'   D(5"8!h&`328e2T.0B21?n1N58[ň( DL3%9/_*A5k8W^:-^)-/#, .C ?#P1r(X"=$g -ց$,9 !5a&%<!69Ee%>,h*; $%>_!-jK(9N;%g,4((G&#K69:!qpD8ö*4}>+D%$  ,hM}#051Q" 3N " g8,P9,K* O5(~'+-q+^p$(n8% A.e .9Ok4Dh+3IB(B+?}*Ҫ0,e!!&>+1"7R P0% T.(R/&AA15P_#+8[,A$7r\1r 8 g:.F!M,;5+?L52q>2/%#!(~4K9*(\,#V')p,:t[k,Z n%@8$0*n҉0/#3_˚%$i#9ք&#%235$/8WY D#$28$h!1E$\*N2   " LE   ֱ A u 4 2*]+XgsV 3 nP GNm  ha xV w ODU 3? / o H % f(S f; CzaL< H  < 3 +#{?F U Bo  0HmG   p kbZw uA C nsGY4Q Dl t a  E4TO aI .o :i=  >b% Ϙ o4xcP 5&6`|BM U s q  )W  p B  tu :U r E2R d!2 X ݒ ['ݬ N" 4F}2V e?؄ ] ,Z&M gA I[ Mb + Kv ipi /G _KQ Zs  Yeo d <;c= W L; D  cwV=   V RN [ e hua5w)  '6 MP=I M$ f 3 ;U5z6H0 X  .  K~| p 9% J,ё ]* =C L[ t &n H v @  ] ^   - M@  w6 BTLV VV yYB Iv JXk > tYAs M ;U ,e zCe l - ?!&S^T'atD_0R' X{ oag G - ( #VLA==a jM H Nҍ !# UN-E/Y0 ]>{ kR + MH_ 7R \ .I S eX NÎ m ,Pv ^UE =EV G  > 7 Hޣ 5PK ts GS/ 0 2 /}  -R  J q { 6  Y R v> 2$ XF NA \ B cZ yX iH$ ~ E D  / LQ] S3 L2Gh 9" ~  9}3 j܋ E eM';/6  ,Zf E @ &J?e zY { 6yF6G8  ! xMEI TZH*1m S E, FwLЃ |MC6 xXV WFi 7k  jJ X 9 f5W =M{W- J_  M B S v N= IO? zdW AT    y(Lp 9Eփ VYt } qwG ; N$F =fvc DT 0 v! MW={lq(   =H uOȮ 6 < X _ J' { oRT~ Q EF &HUnEN uw .  b UIi ^ 5 :MW ) Y J  l{+ @    _ <#y gV3 g ,C3{rT {z@F y viN b  ч uڎ Uu = TT e#UA S | a~ &+   : Dń SI3i b e@Y  %lP` tw  z- &Ov R eW1F0 nU ~D  Dg`M/ G^}\، Ce =6D Y@M0:  RU wlx U 7Y0!}#6 L) Ss` cI Y ! )KEUn0 T<I fk $Q< Fg E.,V wrF5 FHV mpjU 3.Ӫ ܖ l-ַ ls  *v9bA*]zL l'Ͳ `L? RuHwU ViQ ZE 2 J J > ;I : Rm F5 > U +u Ԝ J) L9 e vy -[ Th .|  z D Q LW cK;)u Vr! E j =0'/Y zF t" ^ J_ vZ' a ]VH U' Uw˖ %D DŽ aMy z =O 3K(.4Kf3fK(.f)./31=6/& fI&O@L9nܮ'0Q4?=**qv$Du8 2(v3Gɟ{9ެ&˄/$m&2 d5y"=1P+7.7gP X߫$o"%.-%+Y\z55,;>5,ϟ%vw6%5   2N I  Qm O , p <5 2 & !)B] 6J6 b $o%66f E a.u u '# S5 ?-TT)T@'r=  7u!tZZ<6^px Fgl5(7 e U{x  ٝ gB5Hf 7\w ގJN 6C ҍӲH 3K V A ~ܠ6 HJ^ ^&P74 -Q D u G`6 " hj  5v C Ӈ1K7 + ue43"7 vL . &UnU w5w^(U@e6/! ^Tf9 J%g#@O5^^p9g6` 76 v!B\ J*m ! (N  9 I  FR6 -6m  #  P D> ? >ޝ6; k6H^6 v e  7f5f   3h7g'r  &$(6h |'j; L  ze] Y35  1 ӒXZJ6y[,cl\6 nQ ?66Nzd77 &\@ xS5  uzs UEb F ͫ7% ( 5z8 zB4 &\!q^Z 7a͆J7om Α̝6fD7q o @$  $ Q6 a:  K7 ](  q6Q  w"p_7n/ jBy D< U EE( J16t  6  kDjY$SY5 ]p*b6[ T '1 j6_   R b ۋ]}[ !md@   b6o x *ή D o " %ڟ #Gjg7j| , (*  @6 3 WGe@ ' hj?u  { 6*Y   f $ &Fb -C7h> U$7t=m6U hAaLO|$7> v U4p>6} + nھχp5@  7cP "? #F65  x   791 ZW5. T@69g"66 IX N >k5 4 =O ˃* /76 ? 5V6   *S5  xsӭl6  L7YU "QR6#BTJ&  (6 4 N >' - 7GI B (}5w !&w1  :5y b e9Uce7 \ & 6 KS  uP 5f 6] / d ~/dWPp [ k8gs6T46 [.ЬI5 * q? ~%>ש57XK^0z6  =S"΃N2W5g  1d  e {&e#6 7 [o\x6<2wx7U]:6w v ] e"6Jp "b6 58g !F5  A7b PM &ڞo! u ? r 6 Ρٴ5  ] 7 J Xy ̈`6[  W : _5xb\7@P7Ih Y #: AF <D[ , pʳU "BGxz!7l5 t  i6` t ̫h O  5  BI63  -@  ^5_7Sbg^7?7Bg-czn5sc*/]6 I پ=Fܰ53 ? <",[R ' <iqй6;  f vUj %   5|? Y O@G.LR | zP  v6 > S"8  w aP6^" 7u'6 d  >  <( |`N!' 5{}^Z5  `  |f Qsu ! t @ 3 ^ 1t "' F6 ' U' H !6V ӵ" ~7! 9 . ; I % 75 7~lS7!Rr6  ;  `?I6aT@)6 Js3656?Y 7[ D n5 $ :فS9^L5;s3yT'5 X \&߶gpG6 g U Of o!7 ' iF  QmM "5 Q PQ&>Y R   Z h $fk_%5 ;p:6X ( [m fm *>^M86J ` q 0r I  *h( y n . "3TQ U bQdE`jC  E p {%5\ > +}6z  & 7+ = u%$ B = &Cq  q6h7J/@6( D b$ %Vh!o >78[FmHj5\q$;6  Fa  /n[,7 E   t٬}  ) oI p8Ryx6:$6t7" , H 3E6}  r 5jW ͣ83 ( ' t6 eXܕ6B nS |5% X v$ 6 U ԩDU&I5Tq  SlSC= ޮ A W`ҋ6zN C 5 r э    7k $6Ni u4V6^D6Y5  n n $/Ax 3 KB} %]7Y3S e eTa( v  ] QG$>  >6, S kj(^ `G5 oI:6 `O 6 pM`6 7 b wf9 7 b$<s]&#76+^=P6 #k V uC ( " I   . J  K i@B 0 ^ N  O6N H  2 6) m *'^D1 7   sq%q7 17N   5 K( HI e"J S  N 5 P GDF6 u k QiSs(W 2nT+\a6 P'X M[$F6A7Kt%6 6e7I  $7_B8I &6;g-G6S MT6?`5x-6qY  تO5 H!I6   v N=6aD85t' J [V   {" z  b  z  " % 5/B2^ x%@6.j P|| ) |6$p?N'6 c 5}6IN6  | 3 w 9ژ !6l 1 T%  1 r hk.^ i ˯/   UF )ۃ6z AP6Ft \]T#'  66 7 ? U#KJQ/6D K G# L $ R  M " a 'Dc rZH76P-M:5 5D 2 ?1j. k l&"J55(u7 I `M6v  :Jb Q5  ' P |E} D7n  < | # N!6&^k 5 R\61 ?  c*ld6U 1_56$#r6,]y5\ O hMЄ(  o(  m5Sf7W x 'AI3 t & p  Sl gr5b1y m5 QW l5 @-Z  ?M8/8#H G 0 $D} 3- K 8 e  K  j [M Y M 1F =5 `u6UW*x67M@- 6  a ߳\ D5baQ L z 3K'  5B@|$q45h OrA m KC2R )ζ EA 35s O 9@r Q\7FA;AE5  O GcX.Q  r7M $h|1 y PkI/RN62 5   W qv N -  5^L6-  qK k,  -fZ@R7?0 ^ "xR 8#;^   6A %%|} ,  Z"M  !{> O9 V9،gaE  G 'd M w6  na# ? Ta$5  L 06b ~ 15c=K5 \  q  -Ka zy7:_7 Y $GY    <7 ] p Τ%{ +]6{ =3 6 c \\@ M ҃0 @ + ~} (r 7 / Tzޠ  8#du5 'WH73 7 ,c3 9(؎Od  c5^']6  $CK l 0՛ l \E  = U} 5 \ % k5 ;j " 2ߨ B6  d  ? -5  UGB7N ]0 }X!E#?[6 E{~)| , #|w O S=hEq {5V\'55DyضR6[U b U ~n' 5S  v q v H6h !' =fTQzY6VRA vS cf [# 666!W  ޿ q f D ! (  b/ +  P 6  5 r M eCn5n7s7  2  7%  p.A 6z? R 6& ?-2[66 ; &5yW P  \ R!7J #ӑ qT$_#7O @,kx7` -k?o ׹    G5x q g' 2d "  u Օ6\q :& /7]t'I;6P J`{g6 U 0f G !h> H J>{͝5#<66>o  5sm 0 ި 6 < B8&; o zs6 VΜ P$5 J  l `6% 9 $yM tΰ 5i7v SHr' # M6A 3   w5 P ~:=  ! _^Ud7;uvmv" W79 ^͒/6:   L+7RFD   ID5c"5  u#p N !5T5TЁ'?ztѳ@5C yK  * XfIޏ5fc  6p@  ##G6lI  }! 6mp"Hы6  r1 1?  ~W0Q5[z#]6^v  3I+x@?<86I =rR\ ?5^7@[^6V I UI#"5P E7d* > _ nW\58$6_ ,̦ Dg  >ʥ e, #B ; ) }X7w  > E\w/]K#6E.f5h p% 36d eՉω l56n N] 6g m6*Z6 3  35 *5Z` , K 8pb ߱68J )D/\ > ~ $5 P tZ895 g"T ݇ M >߀HD  /7M @y v^ yϹ6R&6 v^  %%_ d * / jC %T } < Mn4NՌC6s m   O-  c o d6u^FS72  Z ! ^rS7Do.c N ӂ!; i "N5  '!Z > X 70 } ^ <95rd W\L$U5 * / U n T E Z 6K  JHw  [  -nx#Noz7*I / K!`j: 2 3F , {u,.7s (Ev 4RwU6i ϥ|  'PB u # 6|' 0L5($M ML  h#0 J ` & u6qTP, ~6" u MKtaJ&,6% I Z6c _ ,4^'O6 u , {m  V }b4x!o5 V R CN O a) zP 6 5w>+6O?%$n6#,w(6Nx/oL6n nB ]6  6 Ю&Hʹ6= O.6^7-l7.!$^5o\6 v  u m?N7J:7  <C7VI (qW= fKs5 M WL5 Q >7 X v5~`U  s `0 v7=%.Tp7Y $O7S$ J3z6T@u@S "6 2 g E~5Dϑi  i=H p mdl 6k58 I&ؙ  N $5 = Q5`x-6 Hc/eM6 %%o5    S) Y E. s5 U6 z_   gk  H  &z  DS64 n c2 w6 v5 7] Q5n k K5 eT  |k]?!L60 ߫ y ߮!16  6| n"~a  ] N j P  r 5 | m 76 3 ; 6 &c 5  2`1 [& 37T; 4 5q{^wSg6I6,Ta6] * da 6Ts}@&6D uӀ  D 8zR %: C Qݧ+6 6~ N #1 S7#݌ kӐw7$ T@}; 2  t _ߗ 5L +bϵTl5. 7A = ϩZ6t7J[@^6w̍g +et75$  3KZ@u5 ] R0U WqWѲ6 ^y7I6r>C7 f[?5 Sʋ6zH\7mD M7 @-qѷp  6 ] m 7.^c,+T958 ] Dz ~ ^- G@6Kxhl5~0t6 Q DD >=7imT5n \  m۫5 ܳ P W aWM  . eNY D   &j cA,JR  h    o p6* +(b 7 } $  ( T P$ f % NxXV6G5 @4q  \768 3: l&C"kUm6f  TJ[  u n< 7P  u ?  * >* W6xyg47&&#7Hn2{5k ` 1 #!Ug5I!Z5 ,EA* Vr5 h G U6[ )GS$-6  B +V 8@71   6W G  W6\y R  a%jv5  F O6 > J u2`"1^R \Q$u6l j   cKd q ([  8 Q  G6q0Wt=^ե6$d 4qIlO5)RE6 ~ qv ` ӎ6weiG  5 Xq  u6  ] 2ؔFH ^5#6aPQ5 & s#U 58 D PN$ x6?P  |k6r# B 5L8 @ 0 A i n q 2   } \5 N!no$~A7Z n v `Z~ ьi# I66 Ӎ6a6  6ց Sohcc9 % '# h/g <N $7J6k  +  ՔM=5Y `5< * ΍ѭ 37)  d)#@ &5,h|6^$~6 6 Y 6 ,  .7 a$ T-6y7 !ڋ6V* 7&5h6# F'6{Qx<6't$>7* ?Sq6M `!j @46S P6 l La vA6! >Ae# D J d 4$bR5 K9  \ u[! k/ V{ V6e{6@ צ̃U6!5  5  mXWya:D6T # 7 sn/ Z j/2 *7՚ *ly#97E $&d6Iz06M4=&ԫQ6d  \@ "s)` 9| 7C +K )56,,6E  "X' y#y61 O'P  :6@ <  I + V,$tOZq;Z `6 |m J 6W^D7< 9e@w I J7L ry  !   '!J6~ x$  U^  O p& Jtx5 K   / ( 7L | q<Uܩ6l\7' )̬ R6d8 Nc6$ww{  %C z2 L6DJ7^Io#7 o<Bwx625 u L˦.1Ѿe" u z# 8 5g Z @P(5 j ?  X ~ w ? xV?6q7 y64#j7/`z6L1  BF  w%FIH6Z^{& x % ܬ "5^ 6 O6  `%7,  F z NX  { ] $ $bg6o6 7M86q7$Q7( . Ir! 6fI@?ga6' 5  +'u C  r_kp&  V8 9ݳ  E  .H+G6]RJ6=Ϭ j u  S o {BgvQo$#7p ?  U6 #Ν6 2 = >Y_\*$ 6b@/ֱ7 e  u#7  <\ q!,5ui & ] 5z /7AB `%/d Ry$7ex OE& h *z o 'ۜp: ^}`g_6o";  kT= U  6 NO vMP a Ҋ(y^7r &5r   y u8  -Ӛ U7Q2q  ^ZϲI6jv#~v/+S9L?n#/kC:4o X 986,33!Sȳh7&7Gw=.e`a,?!,3_KH0%f"}k =".=%" W=k\*x%4=2t=6W8L=cfc=+=0 ="=6=o"[=0 1oK=6L=<*.="ϫ9}ʺ=  ="6(g_l(=%"*! c_4A=9=;yP=8 *xqi1&=2V)M 59i+j&~% >n&w55O.M+'/U$M(68*S*0*'Nb*" *9 **&B(6(6*3(6$d*6j*(6s(60+f*_{(60(6)Ă*6e(6&S@,(6&*(6*g*,(6_'**9 "(6)&W(6'N(67(60:(62*](6I*1(6&S*9*\b4&$5jC'/L$R)"6T4#"#m#3 17:#5W12/I*<3L:+C-(y2,5!_7'%w5$.? 1˅97UiP*>+,"1@=kH="k7C5<:,%'</5!^* #"a,-6@K9Ru3s8wΎ$e&)RP9(,*&ʫ/D)!@84M&_3]^?2d *B U7L+k,G"q9)5{0?9K)-BB,"-/2t4cٜ+6!D$P $k)!m3$ %%@&"7 H$?158X#<9D7!O!E-K4".fĄ5! <ڸ*=*6ӯ03߹I!1#_1![*+F>82l@7`1aI/ j7@+0"%k( @.Vݛ9&)Q.^) ! d+$u- >u- &|EQ+xW?9D95-3'9$ S8t$z67J=H& _5K66R"^C*mDHY$y@, .y4]8=5k#0.%+j0..+[(0D9E1%'|'%$!#6o4UE;'-B'*0 b&u،&D5f&^+ƫ0/ ,90͕0) N'3-N'6,0) ,6N',39U,[N',$ N'S,t,!0Y,'6,hN'',N'̖,0N'_,_қN'"fN'0҈,$ /,<N'tN'!0PN'':N'1A"h@&5 %8W"D=@205&#po+:*!('LL [1t4+/  _;+-[+:w&G*(u> Dkm94}D!q*n%J*)7y#6 2n 1r&Bm#lr,^>% /T2^ _0?#%9O'!g0E-n(K s0,š1,q6+#P 2]U&I?ҧ0.#E5E"ޖ(."8F!=ʪ& LmEq'( ,'_M35I٨[GM#+x( 9!p%w1$$87,?# 9K&4f))q*~9&,.!FZ#&b7e{Ev)1?O!+Z ̾A(5l40N; 1t>#7r"*b?&X"-[D)06*9-1?G@5> )*}'`+-g+,:+,eD> O1<"T#o549s*/,9Q4գ4K2 1H0h#)(< 3G %X 3 '[ m>^$73J4;D3_A{$#\4ML/ 5az~T/n  (1UC`mg2Ʒ ˸2**L| .Bb8W(o0>9107C M'3%>p?k8(D;"B ]$La+ qoGS `&N:3\,:,/=!53Nʹ$3"*^+(3w]+f_,;.59?108[-&/ J6z131)aA #B 335!M !!&/G'(d,9'.rX%d8 .Sǁ ,/+\k/;#k5P,K97368\"({9,*/ -B286w#G5]"S!-60VT/JK5(9},Z#V7*N{*29P  & W376q4:%/Η+pC&"" |#5G,q"EV$*'8mֶ.7*!`!'===nH2;5%MJk&`"yF1G+D-\gz/3 %@8B><DG(lB6i /+?6(MBG]9w.4`(W*8_(0Q7v5;%JVC* -$0Z/-j&7>DÓe2-J%<#(`ܘ6,9[3$X&;C1z+~NAO/05]͗!!PC)k)@<f8T@J!8&) G0>O1~ IZ*7T.Y61p 7@M8 0[%B-0}1#5L+%57K+}$'c4$9;+5J/$1.f5(cB+r2$0!F'w+9\6U -)lx&NfT+L0O0&^4/!9?88Lu,!D&_75%Sǃ+-Q2>.1'#'K-sD"N8957V3+4  65,&& &!8#8r_& ƻK:..#AZ.'`8.'E."h.-l.!.1.."(.:.2.=u.L/a... .1A֦.8j2.*q.,*C."r./.1'.%`:. ΰ.7.5+.7...!.8J.>_.+6.94...4ZK..7.1< .!ӣ.4ޯ.r@.)1.)g.N.D.6..`.!ɩ.+ԯ.*H..( .!`..5`.72..06.$H..9 B.E.*m.+.*E.',.{.:=+.G.(f"h.Щ.23.E.}.1.*.70Ǯ.8D."/.7##{&5',0@-#S'*>% ms5|'93%'"#I|*}.eR_9:9#80Sc533i#`D",;J6ُ//ɸG3*E9r$*E*39ri3G1*.43U31G.>2h7 J*14j"q0J 9`)c 33#$~2|.'9ӡ.G}:%_8&Y#:4B .4 /8)t4_ 0B92%,{Q c02l 9(.;#J"`3(4$ -/'=J.r-/  -/= /Ј-/!'Ч4$rN/,/I4$4$ N @-w53-;ŵ'( '-4/ -/4$ 'D1r4$'߬N'O'Φ'-/-r5  -/0O'O5O'5G[/ -/-/0 's 8'-554$B O'ZN/ŵ r='5 4$ /V4$ߞݲ5:pN'-/5.N5CT5 ' !4$ŵ4$9r/1O/=/7r/-/NM 4$?=-A -r4$4$ʁ 5=-/-' e4$-P  r-7O''-uN54$4N/@q'ŵ5ŵ MO'Hr-y''<ŵ-/B /9:-/NE/ '5'|5<#r ŵ'<-/ (w-/Dq-J3='5G'G=  > ' +IVO/-/-Qŵ'&ŵ'D -/=-/>-5Qi Vo2?=3oU"lR2m#Y=kAm`Cl2?<:3mJqo2?E3iE$kHEvk7Nj1lG2iAly`^8k7>n?mEJ>'2?Pn2?Hmw'sH<'s'r6&7w's&$| 'r^ g'sSH:I's"'sIwߍ$()'Ho'r'r'sw]'r'r'se'rHNw)''sU's'r'r%X'st)'<((HX's<wa'rX'r pH p7I)'r35HP'sc)ew9NqHw'sb35w'rj$k'sl$;' 'rK g's,(($'r'r'sJ's\(( p's's'rO's;!'s7w3's9N2 ;!6&'r g's'rw'r'sP4,xI)k'siK'sw'r g'r|35w'rc'r((.'r35'rPw6&5'r p's's'r'suHww'rk 's's pL'rH<'r%'s?'s's_HM((:9'r35w pw6I'ra's2 ;!'sh'sw'sw'sxk(($'s/(('s'rk'swW((3'r%'r'r] p'rz)''r's8'sL'rw's w)''rwH$k p gw߭I)w's35;!35)e's2 :9 g'r2 ;!'r$Pw^;!'rڡH27'sj35'sr)e's}'r's>'s'rwFw'r{35'r p'r:9's9'sD35HO'sX'sB'r'rZ'r2 ;!'sH'sdk((2 :9'rM35HH'r((O'rtw'r~'r2 ;!'rH;'r'swew's['rw$35k'r'rm6&!4wH~'swZ's H((O'r%'r9NAK's's'rr'sL'sNH 35'r6&'rV's'rYH'r'rSk'r4,52 ;!)e'r'sw'sf'rnH pH Hn'r'r`'s4'rk's'rH'r_'s0(('r((HHI's's#6&5^kL35Hq((k'r's^w4,'rwD'soH'rB߃LBG4B,4B_BBBBBB#B߹BOB?BكBB7(B:Bg`B|BSB3#|B> B DBc`B8@BxB5B&B.BB](BBqBBIBAIBWB5TBDB)DB`BGB!BBBB~BpBB)B7B9KxB2B/ B;.B$BBByB ]BBB_]B;BIBCB4+ BBBB%B/%BBB)BB5B8BBrB BIeBFB΄BCΊB0B B6BBdBGB'BBBeB߉>BB3ZB9BqB;BV5B6BcB$B߻ B1aB=9BBӥBӪBpB;B B)B BrBdByBB+jBMB?B @BBB@BI"BxBBNBˆB=B{LB-!B-"B BB^}BBuɮBJB JBBPpB~'B҂BxBflBPB&B>יBBjJB B&Bߺ:eBB4AUBy(yBBB^B^*CBBBh$B$B+B BH?B.2B*AFBTGB\B IBFB BhB-B?B4TBGB.B-3B)kB`%B:BJB|AB=B*BBK7BK9B}Bs2}Bo^BEBuBDwBjB5BBBUB$Bf BM@B@B<B'BBXBwBBCoB>HBBB{ |BH }B ٢BjEBwFB߫ABBoBBeIB{BBBBB/B^B߮B9BB0BBUrB_ BG3B9B}BNMB߄BBBB:BB#B$BB \BњB2$BB7*BhBNBhB<BC¢B_B>Bj>B%B,BBBGCBfwBBBˆBNBBvB"FBB}BBB4B4B05BB.B:BR1B61B-B8BBB/BB3BBBB8:B(<BBܚBܝB Bߛ&BB=B$BߕiB$BB=(!B84BBlBBDBBBBbBBBBB@BB29Bߣ˩BP 4BuBrB2B5B%B Bd BhB\>BB%HB;BA:B^WBB[BB`{B4B%*BcBh 1B 5B=BFBBߏ-B B#AsBCB:B!H0BrBxȹB"CBPBB 1,BKrBDBW*BBL7BgBgBghBBDBBBp B  B&B&BBB7B7@BPBB BKBB]BB*B|!B*BBBvBtB[B@9BTBSVBSB%XB B)BB CBR݊BBBFLB3eBsB!dB5B@BKB/BBBBBBLB?3KḄB!%BByMB1"BcBB8;BlB"B)BB=]BB81BB\BN!B:'BBLBB4B"B B|AB)?Bz>B-4BBBB0zBBJB2 BB1BBG`BGeB5.B/BB?BBWnB7>BJBpB B5B6BB߇BfBaBQ%BS$BB(B- BE BL(uB[B8\BMIBPLB*5BsB=BB+BG-B]BA&BB B߆BGF#BͬB'B5B!/BY8B%B߰B3K.BBD2xB91Bl93B"͏Bi<BmBB5BxbBQBo7lB'B?B) BB TB@ BpzB'9BBUۆBSBB(BBB;B9>8B>:BE>=BtBdB'$B\FB`BY.&B.'B.+BspBߡBBaBxBOB3 BYBb5B/BB)BBBBeBLBʐBʓBѭBBB B\B߅BmB!B;TBB9[B$8BB߼ TBf7BB B` B B B BBB4 ZBߌBx<BJӈB*)B#>B,B/ BB$@jB_.B.BeBDB\)EBi0ABBBBBhJBB G-By.BNBBkdB6BJoBBq܊BߨBBlB 3B2BBBB0BMB BKB!FBIB=BB܋BBnB "B(BBBBqB5+}BbJB1BEB>EBB B#GBs<BBLB5BB@BVBBB8BB:BkBB>B>> BhB ;B8BҢBtBUwB&Bߤ B BTB(B(BzB/BBßBBUB=B=BתBADBm+BeB-BBQH%B B|BȣB*ȩB*IBv*VBE<B+ÊB}:BK{B!KB-BBBBBBCfBiBplBZrB%B}1B[B[BAB<BpB>BBNB]3BTEBjFBB%BxBB!.BB)B<BOCBo B%BBBB߿FB.`B.aB Bq/BBBJ@B<BBMB̮BI BB1B#9B,8B?B6BwB BBH!BTBJB B_BBB ;B'B'BB}B BO B_BD$UBDB {BBߎ$Bm BMgB?jBsGoBOBYB*BQ|B)BaB.BJB`wBBBBBJBrBuBkBB%B1BFB<BBtBwB*Bq]BB$B4&BZB߶ׅBB BgBBBB%:OB:QB;B.BߦhBWDB BKBgBxBnBܴBܸB/ABxBBtBߑFBMBW-BNvBr/DBB$B'BBBBBBBBkBBPBB+B"B%B+MBߩB5BߖBBB3B>GBBP%zBj ~B٣B:BaHBVB"BAByB5B*B B B;B>,B2\BiٔB.B .B0BuBBBCHBBߘKBIB\BKB7B=IBBMB&B~BgBIBјB^BRBQKB B-&BB4BdoBgB?Bp= BB IBBBRB;B9B8B~BzB-mBi BJoB$B,NB%B B3ߩBLB'B_BiǨB>BYB/]BBJvBBBB6BBQB\NBlBΨBBvBBB-cBjB& Bm{ByB*B |Bv)B+BBo B~ B)BBߴ&BsDCBJBPBBdB dBC( BBBa)BIGB8BnBBkB-|B2@BBqEBL-IBRFBBBBB=uBYBBB8BGBu3B<Bc:BB.BSBvRB׶B%׻BBUB B7?B(B#BB@BBMB6B9BdBBB MB*cBB, &BBFjBBB B]lBȞBT6B*B3BtB"Bu2BKBr6Bn6BϘB{RB{7B7BMB߯B B|BJBBaBB$B6 B<B BK?BCBXB) B BZB( BBgBԼB9B&B*Bs BzBBߪ%B[BX B@ BtB@B߽(BBBB&*BfBVB:BBYBkBBA'B`BB(B_BBBBvBBaB9BӛB;B B"BBB=BB|B$eBhBػBBB'B9BBBcB-DBB-B$-Bl%B'B(BBBBR¬BCB+=B6BBdBBBBIB!BB7B&BJBBB8B1ByBY&BBBa;B#2B B B:BBߗ B 8BB($BB&BEBA<B(aBmնBPBZB4DwB߬ސBTBB &B7B(BFBBBBGBIBBBBBxB+Bߢ+BFBlB[GBEB5BRBBIhB0B2`BjBBBB<{Bz<|B#BBjBs qBb1BPٚB>}B)3B<BuBBB~BHGB@BߚBBǜB9GBBB BB+$BLJB35BS]BeBBTBB B B&B1BBB!BBB 3pB hBj: BCBMB?MB B{ՎBBB=BSB6BbAB1B"!6BLBKBľB B:EBUdB&hBxPB@B!BYBB߸0B8B}TB2.BF}BBOB:BB߀;B?BBq8BBߙ7B( BSB|B5B<4BBu#iBBB=BJ׫B[#BtB3B BAkBBZBv<BCBLB3B2BL BF_B\FaBi-BB/B^BzSB&B.BHB+B6wBBB6BIB< BPBpBBBBB(M,BtBuBgaB;BBBB#BNB|BBnBB)+B)mB\B.ԲBBM۩BBVB%Bj%B]OB@BBB.FB7BaABߠ/BSBEB,GB߷6B[BR3>BߟlBBhBqBB"JBqBDKB1BB\4B BBBBnBQ8B>B1B'B߁ BB,BBeBeBFiB5BdB$BBE'BB+B:BeBBB)mB@0aBgBkBgB+1Bq`B91BYBBBNBXB;Bߒ8BlBBk:PBBBLB5@BBtB BsBo B B5?rBBxBU BBBVjBB9&B-B-BB?GBWUBN B"BPBQB*B.K!BK%BBlBB9BMLBxOB%*B B,GBB$XB2TB˿BvB4B2MBߐHB"B1B25BBBBz B?BB[YB0ZBBBwwB:B(B BB CDBBuuB'FBB"?B@&B~BfBw"BOBPB+RBQ2BZRB BBߔB!BiDB}BBKBVB2BB#BBzMdBBBeBMBpBBwBFVB(>B>B0=BkB.B|BBBmB%pB'BoBKEhBBcbBNBBBHBQBSB'B0%BGQBBݡBݤB'B*BBߊBREKBRB~MB|.hBߋ.lBHB BJMBkBBT1B8\BB BKBB\BbMBvB;B B' BB-B߳BBH B:8CB;8FBdBߜ&QBTBdqBӶB4@B0KBLB BmBB)BS=_BwBf?By@BڏBBB[FBIB;mB2(BBLB>B*AB.BBB<B9B߾JBI2Bl8BҐB5B߂BBBIB(ЯBаBסB<B^8B?BWBBߵBBBB(BjBZlB=jB 5Bd 6BÁBHBvBBnBB BsBBH BB/uB/vBB.ީB2BBBBJM4B-BDB4\BBABB{B^B7BOBBCK@BB>B=BjBumBRBB BXkB-/B BBB[B iB@$B'JB+2BH<B<B2WBYB0C}B BEBtB@B BBBBٰBOBw-BہBBBB7J"BvBOB6JB8 B@BWBB[BmʢBpʣBgBzBBB*BCBKBӌB-B>RBB]B hBsB; BB4³B`BUBO+;BEB!&B BBB.B0VB3HB~jBe1B߲LBEBBB,BKB+BlBmBkB BVBHBDBYBk6BeAB# ByBXEB B BߝBBN BmBXγBB.BB'cB/B;Bg՟B*BDZB+BBB1BF B BT-BhBAlBB,)Bߧ)BGBBBEBB|BZYBZBcBB\B=B}ƁB"iB4*BIBe/ B0B0BBPIQBnBA0B7ZBB# 6B[0P"d 01]ۡ:W3H)1"F7(1# 43_~/ۼ$TdYu3{S"5 %FsB. 4KXi&*'As4m#kkM+:G#_!N@ȗ.A.a%3)[/$E2}7o7l2+W/^ 3/H{39& * 5$)"\0F"d116,;/ <8i&5p,1 24[,*.+1^Fܞ2J8%@T&J% !#6J, F!Sz/P(!'*$*:1PL4.123փk4[G0}CH.#g/ Hg6'!#x'=7{|k7x%1N,lhy !e ,z, >9k;b"3!:5(h'3%e*~=>8#%!.AR$4 6<Ϳ*6B }J2An8M6O @"i6HI@8*"41-Qq,]3Z1[*'/51R Wx8&>7%0' M# |75$9$*0c4a{%dԅ55V83!K1%|A,0p3gb4<˺'1zh Ytn[^Oϼt=Dxx \U" [l/s tn&z ҟyZ՞ZB  tOJ  \$  )XoxE8ZYpYESUY~WXyО'{?86Z(`PϛZ {"+u* y x2z4z|  Is&st4X$/y$X A^u%uUw; fNz9!>yK7tX%~XKyр<\%@{N\|%gYlWԬuk  s%Y{%[Us\fY2wMw"y+!u#׬x O"G{oآ%X{pئ-a{qب.ezΒzΔY: i0\5%'X(԰L{fj%~Yca јXi?zr%\:gvzu* \"Xwg o[m!?ZL!kx]Y, t }׌Zݵpyݶqzo{GvZ$4{"|s{A%x#μ zޘt\Jޚws!&uO_Z+1Xy>}vD!Q{ 0y$4\ #2mz t J ~u's'>u :[s*yиu $Y  *t#!('Yz&{ڝ&#2Yޅt~}}9[#U'{ tӓ{ uӔ{ vӖZ<t=yMS'yOT*z ( z#+ yTY-v+4Y N u]'SyAb[RdtdZgY!` z#Y:";ta6wNi[vC>uvE  ttY̧&\H t͵[z P{a%EZ#,s#-vxh#)\5ATy% #,sBUs =܋[<1Lz[XGw[Lw\NtE2Xֆz gZ}j[ iYd Sv%tY%[Pcw7A%{3ys7գZ;.0z!guڸڭ[&ʪZHxߚtج{Z[hjxW9А:yj/[Gzm"\ 9u 4 ZV!mQY3 &y s'[','Y 3fw%=޶ˠy\]e&[[w|Y_{Zy"m%\Y Z [W~w,9Y<t lu%)%XH /YrsvuxYpf:{[ Xx yHף[t$3 *wZyP\.L$w@Xܨ[]`{"C!YaXZ״uPYsB`ZskLQZΌ%,x u#i8XܾCy9.ݝx%wEx%u9  'u_\2!.uxDZwuX'!z\Y];_u D`"u#{.#u{ 3  pst AԀ \+j\*VtZFS [yݤְAuzZ! tDˉtE Q "s }x+xoEu'{rzp#z%?5Z7Y j$7z  n$8z$ 6 X6\s1S{z.ʈwSyMt z  0u W{\%l,{]%m-u O`Z[F#]u)E_\F"tx" { x{V%yg#Ym#t.dz.7 UZ1ez/8 YZ&Z'w\8%v |zneEs [ % [zԱbZm YxLzv z\Ok[>I"yFR"\-us!6-X\ kbx W\Y$NNwt<xH[IUsݹ&kxE xM<R\  {Jt!wޛz #tB&@ym]zT ΙsΛwax{y6  t( y '#[g%%=xф Z8%wK\ }ѣxV[֖{w3%Y!xLYdz \1%ۑXQYY\hIYfԋ[xu$ w[ӹD>\{bXdw &$u"א\Z!TC[O7eYu:f]Zv6Y 9 ?&DڳZ $tZ/  \Z sBZTvVwУf{%97Y  [_Yr|#u~#v Y *[ ,y 0ZKxx!Av/fxpP $wxNx) zyQy&#WzGzDduUY=[]aBuKhuQZ ax.zX"??yh"C@z$Z}[c fy1"_٭\Q՘(wL'c\ 3zΚYquxC%{'$'Dy\YVYʬ+[#T7ZW|[߹{sc,2zd>%u  z/ntwI%s\_Zyx #y#z  vي\әt&tr&u@:t,\C y  .it#7vx/{v0t Qa tF' wG' tH .[Ht 5{~>}xK۲[K߆wL߇Yuسw |tZR%Ϩ{|)ϫ[A Y6Z̗ yvHtCy*P[ ґ[GZ^Z uoܱtMڽՆx  z$/s [:[h\N6XA+[Vh"wRlwhtvs%Y>FtAM[A9jtKfw<aYu ( u\irz%D:[?zQeِx+Zޣ[^`wacY׽u׾Z*\o u|{84$HyQ`{z^x#ѦwuL ;t e 0$B0yXMM<\!8x";u!z'vw hYyޞԒZ5|ޡԕxNZyCX6Yp[u4$w8[n]tt!/cx;sS XJZf {'ur&mʆYnC[Ze5te&BowtkGxwͯZd%tf&zoy<qst i[v ls"!{z'Vv _Yc;[jHwQPt Xy[  w*Yew`wyY!w=z $t1dwSKY)My *w.~Z/["\^-<zCtF N#w <Z# <u_$}[lAY qGYK2YNϸc;[4gܚukܝY .zOx\ >p {z ֒9te}$yo eyMxZp jyQ|Zq lz_t %;\uqy cZ3s \ 0Y%1uFh#yj#tZʽwzT  aye>yWdu" xfjsIqnXZ& 2z!9yշXs5tdt6Xu7{dТ@Yt&"yE&&z$g[p^mt>#w^w`\ 7(s't| .\2%[Ӫۥ\|t 'ngxlt w%Lw%MwvEI{t̆˸[qKxrrMzj,umwo>zяxvbs y' ׷veu ~JlviZ a Gۊw<ܺ%z Vхy%wMZz!&mya%ys n>ң#Yz  {(5{^Yw ΞԼ{qA{rCu \6y%[úS"w RZ/[xx`t?{wXR z0!zcX(mt%^yiY?[:[<u.͎x Z !X#Z !E{ަsw]  -Px<!y 6zYyFnwu=Z0~ӄ\$ }w& w' s [6lwd't{zH\@ \\ sx ՜t\.uj ] $^4ٕ\1 x7"$G[Iwby5ezMw{RX$)'!vϊzF\/GYJztLZ sFY@`z(S$jyb\ }ߘZ%0t#J: s w ! su;\?izYّz3Z>yx ΂sLt +Ot "\n#ʌYuAOs[s wS=tl_ v6Yg;[RYUuK 2X!5{yg=\l@u&A \!$M't\' #:Y( #<[ͮ{<t@Z  tK&YҠ*z' Y(rZׂ%z׃%Z$ׄ%w\U x!j$x[;  x)&ޭ\&ޯv vz>YZuC z-s-έ{_{z5C[  ҿ-xE]t?!4+zB';T>zC'=V@x%J&=u/v0t;  K{# ygt^ix"l[t@\x Y [ wwYztc),zZu w"zzx {  yLxqw+tuX t nkZMA{z})ZA#{$%qwTi3ъu)!Tx+}ʕvaԡw~s@x4 z &\EՙzS!Z"y~a\Z{s! y!tz[{ZSt$x&$0xY3ؿZ, sg{Ӷ{ٻPX?Qx a[W f\t+pY'N#nY'P#qx'T#szr$t ?9/$)Zn4xv!<xw!=uݬu Էk <t!F[ ) Ix{ Dw(|t/qӫs Gu }m {qQ{Bs =#yHZK{YQnZ4{6]?{7^@uqYٍ׼wHx '$X%y%j3zk#ܹ {MOy( [Zl Y:Y;ydLY/&oZW{?0gt@1ht^Xͪyxgjy0py,>x bX#oz't|z7Ztl@{`g t2zx9{PF pxFЭX[w+&uQWtIzXNZ{ Q\ Z:&$u0L9y dXՓtRvwZR"xqDuzwt zxs6za  zb \&_\wFY;'#MbY ^]x/2{%ڡ&%tJOw-{/Y}Yur^ \3_ whxHϚ@wdNu/} \>\w"/"[ycδv'!\ްzT1{}[zv#ux}Wx~XyMywFt:y `iu3PwbԤy5r#RtgwjxN7!xgy4XYU]"w}_"y/{=hM\CjO\xkQt m vmїTx AZqa :u?s w t{Va%Xw yRͅ({Ԯ]ZL[SzٯW[e)w% D u!`s WKu!hZs=YNfz{&[4\YeT$Y$A-\yzҒ#X}Ҕ$y/V'w{gwx˽+xls Lq\mynY)Ru>ӼY.nwT v{A Z4 uv4)־x$څyJ" Y V[j.[U֤v6$:XzBu=3Y+ m$Z1 4Z @\U_YCd*_u%5 Zw Evw\))z#y{X $x xx#X#Z!&w3 ҁzzYM Xt[ 8tiyD%ݥ uZB$TOy|u2ycպ{Y!v<۳\, n&[Y' uaCByDD\uIFy!gސY88s:9{ZyCu  yx8K\i'B(yt'C*{ZΥ%|xuӉ!yZz%tz9Dt{:Ex؁>Gz*;v  YJݘ-zݞ1Y& uJ Ku;C YZZbat ֕tK=q[}VTTx| O C%s S E%Y Z I%Y J%Su-[Y+  WXQ{z_w*wy˰y  !Jy  !Ny hY>!}{/!X~З['t=!\ ,[P^u,c@Y̱_XgAx<v=y1u:FzYXG{ sI| vft2%{\&TZ/Z#v#{Ob$tk$ y*u_}ߩy${XtНF7[ПH9xZz80x^[Y@ZLYtؘzl []$]$\'Z~ i  ~zv s(wnSЉYsݓ'1s L!n'4\tX-tZsi!Is &˿ "yl4t3 TJ[w:#Y##\%j'Zl({x;'zZ{>-[ʗ zUsϙwxxux!:Y7rt v!!"<y!>{& uw& {t@ v Үv ұu 0 wjsW{C&ZU^աwӋ[ Z'1yiqs3F -vX F/Z> G1t7"w$9#x!(Zn[XEֲxXpzw`ۡhZ \-u D{ 3t ] s&xo&[5ܟ3x&YO̎c{Q̏g[!i-xj.{r%y>0&QY @zf xs{s,͈z^'Y߈.w4$[dH؄YY %Y` t~E&3zR{e%DtnUb& s<]y4|&yљۺvi5xw>o[օ[ uZ wӗXY_"66x ^s9Y bu:z/Z AޗZlxt4{-غ%*{" Y{5ը8\<%xk n+\ʁ\ʂY&ow>+ q|xPFʧxt[QQ0XRT2[$sfRXhW[ q4vJx?!s[E9{#=wEBXYS d#uZ& "y=wl*#wX ڲt}#)yZ!Y>!^uD(zx'E{n [RI!UYk'͢{0y]&8\ geYAwD݂s݆w{нxZX4x[X RGu UMzs  z'/'Zڹ\S0Z t u &z ZߕktW3\mq Y]=v7bs  q:[J&$\ne-yqf3t 2IY _ {{5rxy#X Z[[p[`s3'>{$y>z$yV*{0\Sx 2ub 3\jTu r\t)̣{2ՐO{=.ZA2{< /ZFwH#SxvTxe+-Qt&nX)qZ'_#xR`wi$$VxSczp`ptaq[  vX(fht xuҵx' 9Y ?[1Y[TwyҩʯZ#yv# X˳زxw!y[iM_q[P"DvS"LY|>[  zeYP?\R@\aKl /YFiw?!;y8 x0 uCZ69{Sr4uf 5YWDwzf[yx%sW%Y3"X Nz QY'ݣ~Zg 4`yy׮ _X #TMw|7Դ[:Զ{ jw*!\?sDy iZ^_kzt\Ya ׻zYj&boz{y3yq {&SX x]%/y Rud , {9YIuZ[[Ku~ l 5xn Ѵswk#zނf\8x[F5[G 9zYb٢y du2jx$"Z-Rw8ez>_t&@as k[# i\ˀ(Ybˈ0wnڗ{ФB:YVis &glv[nx: t'  =\xY$rt`"x̐`w!Z' oZ"hYLz?#t4sU{;=Z ߋuSY{ Nܻx{ ,\\.yzḿ Ẑ yZdn4 9tnWuq"zz!4{L]1[/X J'Z%yXۆ #az7Z##wr [Y+ؐ:w t{<x=FjA[~[r\ԳyTu(&Z&v"&\ gz3Z s { SZ n*Yq wStt1[q˜ wbt7~u[J1"xc]RY4kwJ!E&[J!G&X v ZCY{I D ,s$" y&pw&t\0'ozD{c'˅ZP:\w j<x!%-yY}z {0hv6J"ZxwQ"tuY֛b{uYz%[ymx"<%! \ iZ S z\e'y Wԑ{%!, wy &,ZZ ZYP!z CBwm-)wUz`"%t,9vt  \zZat ςuwYXq [zJXLwMXy` zuBP6[![x27Y&z2w~td˖ssLy\P Ԗ[C [ Ԝ\dQx ZWxQY!eڎ\`CU[hgXYm\x_lӦXDc\s΋C_[%fdݦ{0صI{3ظL\@? sD_{CtEAZ"[٫uY $t8 * M$MuHܑNz9*w/u $itPu*#Z#Йt"W {լ YYtA^y$!Z 0't46 2ykt(vzZ[` yIo tB ߿XT#ZM}y hxTZ| kY S@[vo[\&y6ax3 tP?B[@$w֩ Zzzh.zv/{v#ר̄zs>KZAL{Qe[~m#t<i#y\d!S:xqwb1{~YH#gw cU}[!&Jy%&Ntu6l}yfL RX$d&Z7;\l\|t :[PY@zxՊxՏt_ ! vm Yw/"[_[!L"u > y^"Yx s&pxߴ6{ߺ;\&XA\'ZC yWUZlSYiDk{1(ZuG "v Կ[i YO;4yԺu tHږީ[m\ʔ"X?muQZAz؇";ZvzΦx{Χyֹ[ ˍz ˎX  `tN 'NDyr%w "Uw"WuC >Z\D ?Xgv\R7 ԛ[ ff[ gi[w~BzA#9uI nIwduxf9OzW zDlYv!y=W $uy %MtZ $y(ozyG#%x܎xܓuMvuu EʎwX[]syey\" oht{kCwG"*[Auv\qZPoZhZU^tv<u. wGY<Jx[ !ssӯY^ {!z ZhNs |hy Z1IxsN[vQY4xxgDZ$tb ؤ*]x9+u ( $#X$=%wD'{d\u43~$!Z+?Kyz X\ ٷs[>w{X \<ukK;?XX/{Ԙz+%AX OxkwwqZ M>Y- O?t#tޒmB{sKw-u*Wt\= \Zj<wAi\|\.Z̓tˢХx˧Ъ\h\PrYvy\=v"{^{U!K(n[!O)p{.gux =%QuC܌s$2ؽYus%z".YzFY ow!r\!tI֙Y'Lw lR˾XptJ̟fu Nqոs2'z %syz +X΢/[%{ YBwuX !z[_H\;O)usz&Zo-\z$w͜\͠Z Ey `Xw4bZY%F[/% Ygyt#Ktj[n!bl[y!dn]zܤ Es 8ݲ[^>y&ʺ[S\t*oFvuMy8 4Y+ws\!yd!z %Y &[ 6w޸˥ШY#PY\ [t+JYY\tr{Fΐ̜{\gzM`w*Z ֓[ ֔\g s  $\+,y[-s?$`Y t3Y#u$ZxZmsz 3yw 4Z_ 6A[9ߣ'''t y t!9 ! wpJx16ZesϝDWu^ wْy" zϺZ:#@#xHlZ# \U\x t?:lx% y!u}[O {   tp  x <t9 { wX5y,:y-;xZ2Atx<'tzgB؝YjEؠ{ h1z>#>YTcv^ϔu1_ϕxcϗZ=w&Uxv&Wys$l{Z0Y"&\9d{\s{1Lx 1y$vZr5b"qy7_ [a`!u"vQxo&Hw\tѺxT sum3^'MyyB\ @{;uB}=v].&ua0&xX%h1yzλԠZzJ XnwSwutNKu Tz,Uu6{">[HWu"D{QΊ{W ('t)'[ stP8vHMw[W X$&wo,Y%v[[{MM`Y@#xp~ʚ\A!/@z!1A\!2Bz:`s՝Y vtʖN\ d C,wxJ[tԃNzԉT[I mYr[:$w׫ ^2t 8ʩy3Stz։ׁy.+ &w 7z4&8ڤu4uvEtwM ӺZ oX3Sx:#ytZ,b\)) w. c(=wS{%JZG!Hyxi=\.9sl z ڊwإ -X" y]gw{KZO'!KzV'ӏZP*!#LY|mNxtx6&znJZtUt.Y[-qx1xt-'#*\4y5t8t Sw `Yǩ]%Xu X ^ ̪zo[і%nxy&u[|[ۏX [ېY Y"y ͭzI߬i[&Y̖Y=7?{8@s$%Bx Ct0%)XxZ`\}Ss~Uu tzVtW[B G*lBZ.LyY0[dXL[ {C` Cu< x;J[=!R8y?uZ LHYod٣\|<Yv[#St:ک\%\(r"wY"t ۉY$]6tZz^SuUzL[tZЌ $sLYv˙Y9c"ZLxw^"t\_"v\I Qu|s\t)xQs I w +TtX X <YZOxYVmTzVz) w([Q x(Z]&/ &\u&3 (^ZxYE!Dvz[T&X$[PV}Zq{XV{$x?y| *\s# z y^&t)zi# Y_we!!!mx$x&\YxT[oa\DP{$Sw YfVЃY&LmyWBryoozwj$X `t6 ( = b'u~w }\ծyn Z,8\|/:z95XBxջJu5վMuտOX֪u#zD۔[\?ۖ]X !˂قuVH{ >5v@mas~azt%9Z*u;1+[ỲXs cI{g*uldI y. z !#Z%R y{ z J[` ~ Oun%U t z[L@Rxu!t-3ϟ[f*{([2#\KOzKP\#dxz&hu8#(x '҈t% yGu#ZC|wI؂xIЅ%Zyw1 Y t {0pyPH vVgxY"xFzGtG \  ͬZ#*xy#.~z;\B{Nw8[uwO)Gxbҷ& Yҹ& y: h\KYMX xLRZ`nynwF vy{&ztm$Z! 7ݯ`x$ Quc"y\Of"{st v  /w."Mz<xuR[U`"{uX jtL"  Z{kJ 9Xc&s[ wy;&[-&wN[iuӣ֏tBAz=xj  zZPz" "t\\ M\#xy70Y91\}D%[(,%XY yco\#}[MuX$na[ &wuuh[DY.˶Zn: Zw q[$am#sio(Ytُy {#u#YRފCv!5d[ތ G[1 u$[-\ \ xO6$ڄz@ԌLupYG -ӛt3 O# X. uVY:w |Ku$"Et]=cx\$%Hw ~S\#Zv"uU[Y$X$[<{Ӹ{ uXYڑ٦y"Ўx?"qY+٠uL'{xZZ)x8$XwYDC#Tsz7tGY r Wv̥[Q xS wB\ 8RփX~[̔x5ʰ\ yњ%\A\{كzم\X\ fx gzMv\<ti3YOWuiy3!z[8{RD (X ָ# xH *yNFذzq gۦY j۩%{w&trtG%ys IyS yy M {nyܡpz~ܣrtCL  Vu X[3;'t'x7\8y!Vkxzڨ͐u {ߌ\Tߎy[t]\BՃsKw$ w$"wAxj!X%؈x/w9!`{+!a{,!fuDHy_NX'2z΄; ZiΆ> Xfyo_ԵXѬY [Z5gup Z XXو׸Z '&x? ))zu$Y>z ڇw&_[y Y[j6;uT\:lHw ѥY Y 4X '] 8[7 *yg&4jO[j{ltώZzϓbvl"\=wқ v;ZG^bx_y2zE[&wC&ZE,yC-YwZX't 3 ('wPw5 ݀\v ݁ue x$M"t# w# t# YW!w^ׅHZ^uaZ^܁xw<yΘyv1Ou TY"o\~ \ y'dZNvT[&'b w'Za  eY${%u`)![]u\=u}{[0N(rtU,utc==w"tIzo|0'wdw\hYoz Z9 '<ܖz yq ttw\NyZD\{K  ,ww \x̰w0$\{l.6{֎ߵZw {֐߷w  tWXz TwVZ37 ##\%PXu+b?ItK&qZIL&uy#9ٳ\4Б7&tZҾZQ!$Z[k_ʶtR g t&w= itf x -we"ueXvyH #z%tS!1Z'ۘw[; \= xX!$xtA ^_&DZ$rFu5ӡykyZ 5X)wˬwz˱XbԊ.Z^4{ _6ZT" xy" z\2 =ucm5Xt~w\by ;eZ=7w)yIױy0ܴy8/s62%wPgz؜P gw Y!xm#u   A y 8w'ͥt Mz%2x>dO!s x"m[$ny@fd{zXEO{Ysڒ{(y Z\L?!V\MA!XybF!]{jѻ sG\fԔݫx6ٓ[)Y:x%kzE'!xN4JZ!'Y5E*\Itg[y|$kw6<hYИxa'<y3\ {:Y T 5s5fwG$-u˛˕r{'mF{'nH[X݈\r݊y sys t Y v y"Bhzs##Z"EZ#FwEs Z1wqx!pv%uwp4 t?t EWw_[yuQD[Yw5'ew9'hx dJ tU HY#3u  $ ?Y=<['5btEtTwfZugԧ Y#so~x٥z]٨Y  ez [*q"+yp@ ltD ntG ryOtu["QZ }Z:ՋtqXo%t t9wi uj x1[Zx(L[!-v$9W\c˴{mu puNiOu&"{xBoTZX'zA#y՟ ^vZ i  !^tj R @|Zگ&}Zڱ&[8 D#{h45 bt[0ޫZ{&/t.Zmwaze 3Ft%4[׆th̷܃YZY=Y?l\py%wu MuҶX\)x֗`R\d t "`)Cw  _s  f\{> :Z 'pY5z=s %y v"3z) ΀yвu uh[uzMgt! $y$0Y\Q{z#iђ%k\cY{T цy+&;i YKZb{q\Wvu #(yyptQ $p9Z<!t {!x!{[ xu[x[Ւ Y|Zx#$z$lzB\Jg[<fx[K@Y QHZڕZC u! S zFkQLs5zӅ!=yΫ'Zt#[ m$&ZJϯxXyu@{ [!tZ<w&Zz1 |vT'[x N'[߸lFxS?xUC[Nz [ zvϧY&XM&HYP&KXNBw_{Qwd#w fZ "wis"xU#x ? w}Y!'"y\p6x,ֽEuO DZ? uy>z K&e\[%N#\%O#Yy)nYM$xd$wJJؾtKKy=Y4zUw [.xk$z{EI4&S\-6yBT ҡ[z ?w % y%r˻zuswE$ tץ5IzJzLYYpwIwMx.[b3[&ZD$ WZ2c@y%rXr2YXo]w +-v} [s3|}uW#B{ެwGWty"gZӬ{:Q"Y"%@zc"%Cz6Y1Ynts)D%wK NtާyFު\" Xݽx @#u&5wWdv^@v_  wkf[%py' twlnHz{bDuY&({rK6x|M5{נ{ "DY -  Y&)z"הpw7m\:rtmܔ?{4Dt1ԚY0u7x-9xٗw'u[ٙy'zNޑZ!stXޖx%zOwC"5y[K oDubp[+g u{H2Yͷ{ zg8Y$I{;z y%ty {%uE ay"-Xa$Y8vt ˞ ?w˟ Ax'qto%yU'puw X zՎ=tXtttC?JYEP[$YT"(Xs6 ֵt? [Yl[Znz*%S\^xxayt"vOz>L cXڂxڃ{$,w7YZkٽ[/) s={=wP'Zc ہ w\ `V{5^ zYʼvw%-zP `zny'X rZ@I\Jz 9#?Y%X%Zp lZwcw#m\7 5 wFO F{@9$\\V:$^sYzt_{|x*x \z {[z@A[,P{~v8yJw&* py$C v'wxG>Z˺z%}My}vwdZh97wx{ Yh3XsXܢq{) "&{* "&w#&Vx w:Yrۭx%t۰x '*z\/V&YZ/ (p8\s;wPtV5y8y-ww*o[E?Ex!$x ع\k%:xY*r\ݨZ̺wsͱs\̿uZ.wxwvw['lt{yg/^{}\~vX%\\G"e z WvxjdY] z<"4/{+v^{!ltXC!zG0?sYZ-!Һz4q[u [=vuOͰr%IwͶv%Q{DG-x Q{nrx&wc(ۼtZ,!u>.!xnx swa$wz|%fsr{2дz Z!z1Z $t\ %\ J${x L$\\!tx@2xA5[h@Xi[g'{iVzߡ'[u@zR xӆ,t5ty"8Z);ٛy9tw<uD$QX$$x "Sy)'+{'.Ym 2؞ Z YLw2)i[.tGN"F̕Yiߢzkߥ!d!/X!.(/XG(!d#(.ԣ!#2,>X'(2+L2 $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.;t~PbTOfqSBGW]nem\sxIUj|pNAkrcg>`CRVwL_lz?vouMJ^HXh{@Da[Ed}yQYZiK $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.;gd-)v3=b $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.;%L*.!,/7"~0A239&+L$+,0p056b3B/A20AJ9%3%g1F246R5x-[>1/[k1onbzM$ *RT \ 7z.4&K77%bt8!s$iW7 .--(Q'657v$6.z!5c*(W"*Q5& 7j,!-+ ,4 34H"$y/4k0&n*!64 "/98 *.2I&7%, 111G4'U/2c%)|&'8%E!V" %T.O`ES w\!('Q846+#W$s&V#B+%*p[ e3":&N^ 4!'! v/Q1{#'],EAx/4!,691-%' 50g,.Q#*01 K)L6z)'Ya,|/{161%8#-:$M9 :'%5'U+3("H$b$9<*o *1(r!"7h99)(2"c/ JV& j#0W(R/1139,~5)<3)4(Z-t,49*A*+z"k!*t6WW pB3#%#-713*u(06s5h'83)5GW8t)K2)`9M)#7c#@)$P'$'.#4|"&9Cv6*U%9*2(;9+'f=./~5' /-F5q5#&)0 5B)P3$-@&0"C P&.m8'h!he),+B($5T%4#N8>A6*/*8/0]Ov4*,)j,)7W7#'~2}9?88-j8S!99v($/v#'0,#0 l'8=20-x Q<,<7M0~it$r! \+V5 3V.+ +$2)A'%2(8?+p,=*$S)R6q(3X.'(Y49*8V91%Y0$/- 8(e".e'l3#X/"79*h%/i$H1O!Z$%u T8${25+5:..3p\+6V.87.Y/%! :+#Ox/hB!o*e)*q`*145R+h%7&W-.~21-+!9 N5H:5/.0}%'))i8+/&Z/b94&'8!x15-"93 ')&+*"8,u":2(l1#?0L -9X$.A8"+% $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.;%L*.!,/7"~0A239&+L$+,0p056b3B/A20AJ9%3%g1F246R5x-[>1/[k1onbzM$ *RT \ 7z.4&K77%bt8!s$iW7 .--(Q'657v$6.z!5c*(W"*Q5& 7j,!-+ ,4 34H"$y/4k0&n*!64 "/98 *.2I&7%, 111G4'U/2c%)|&'8%E!V" %T.O`ES w\!('Q846+#W$s&V#B+%*p[ e3":&N^ 4!'! v/Q1{#'],EAx/4!,691-%' 50g,.Q#*01 K)L6z)'Ya,|/{161%8#-:$M9 :'%5'U+3("H$b$9<*o *1(r!"7h99)(2"c/ JV& j#0W(R/1139,~5)<3)4(Z-t,49*A*+z"k!*t6WW pB3#%#-713*u(06s5h'83)5GW8t)K2)`9M)#7c#@)$P'$'.#4|"&9Cv6*U%9*2(;9+'f=./~5' /-F5q5#&)0 5B)P3$-@&0"C P&.m8'h!he),+B($5T%4#N8>A6*/*8/0]Ov4*,)j,)7W7#'~2}9?88-j8S!99v($/v#'0,#0 l'8=20-x Q<,<7M0~it$r! \+V5 3V.+ +$2)A'%2(8?+p,=*$S)R6q(3X.'(Y49*8V91%Y0$/- 8(e".e'l3#X/"79*h%/i$H1O!Z$%u T8${25+5:..3p\+6V.87.Y/%! :+#Ox/hB!o*e)*q`*145R+h%7&W-.~21-+!9 N5H:5/.0}%'))i8+/&Z/b94&'8!x15-"93 ')&+*"8,u":2(l1#?0L -9X$.A8"+% $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.; $43/*,!0.;;D"S~}(2i!~(3~e^'0~( }55QO,7"a9Ah~rq0 DB2z,q7nD(:L !.*ii-~>u#q5Q3Q[:;5Q~64qsM~I30~5~/4>͚6qt ~q}*}1z~T~5Q9g~-5Q8/^}8(}5':~J9?_<QM ,6W(5}65Q}5~&3$pV}5Qe5Qf(b$q~5~ ?5Q>5Q(>,}4}(b915Q3~i ~j8k}<,:4},~D)j0}w-9z3}q5Q5QqC7~X5Q}5Qq:~q}{#6~^5Qq',~5Qxq~6->\5Qt9(8>3q}K{5Q~5QT V4>5%5Q~DBy2~1~7*} n.1~PY3i,qL2[,6(q5}3q}1>}#(~ +,RY3}d}>qZq}}~~)d=(~6X}>+<V}7)6-QM5QHe5Q:}Y.}P, }%,40R~B7V~q~78 5Q^$~}[}Q! Vq}N3Dqh~k54q~l5q#65Q^~}r5Q1qL05Q0}*7n}q5QS5Q~~q7|y#*lTq~5Q5Q9+~ 5Q81~3=*~g8cq]q[,>q}2[$pq 3~V-(,m6-u9~-5}`B['|R ~1}5Qh7q\3l[6`-N" pqB(:"et5QV~E~':tH=+,c*~@q+5Qq* V4O>5Q6 Dv~>w5~mnI455Q~b>5*6}O%~`3qe}3<~Lq"(m~_VW5Q81 4i /<1~},~5Q##$" qJq}t2 !.~}+.XqMqGbq~[)3-q3Iq}A6X+^(IV_E 3Jr}q}Wq#6~~5}+}1 }~.K5Q6-~5Q"&~>Z";uS~K5~"q5QS4(:i3K~#3~+T9 V 3~1/e5Q(325Q}$p~l#~5Q0q}vq~*Ve~=*i-LqAAP&4$ RDhl:-q}*g,~q2[&j}q(G(7'}t:~5Q"~S5qAAC3}?l1~,W~"#~+}p*5Q2cz(bq`*i5-L~Hj4Ij-+._qI-3~5Qr}[:~5}Hep5Q"&&VYq,l,%}0p,<!6E}R+.\hqM'/ 5~]:rVHez5Q##}8k} ~R3}qZI'/fHe5QEq(-q6-?P+}9U>1qE6}C:~M}g~~u1mVCI7: }_/]";9,nlT+.?_'PqVJ3lq2~[},,~]5Qq3(07n}XD\6$plq66X5"5*)^~}'(36~6~~?$-2`el6-d3*[w>+5Qw-~t(&5~6OXqC9VC,Iq6-6(}oeb!.,,,!wzw/5Q~)}(0S7)~Y5Q3}q5QV~E~e35Q5Q 8P/5Q~5Qq"Q~"5QN6 #C]),>r7 =3<,<;1\ay#!Z. G/IB1>((b}~5Qg/}~+.}f:,932~4v(~~}(b5QA"9}93~'L85;W}78!te2VO A3m5QGw,!|N }5v;x2~qJg3a$p}+j/})q6-##"5Q~X #Un),N7 >3<,<_1\a#!Hb. DZ/P5@5Qq: }.}t}325,)I:q$L0b,6w"6}M1.4t~}q}B>~28 #O)),n"01t1-e}$p}86}"Q|[26}2k(Xq$pq}" $~53{IQ$})}@4)~p#2kq6-K#tqvJQ [3)} q!ox"?Pq6(:}Z6- C.~5 q}k3~ Vf4mQ%5$:}s+._X 5L0a~~3i q~p(~5Q~>AqOqx2N5Q}353~0}L6YF}c)t0)+@5Q~}3q V4~ R!.}$#~$p}w}F)M7nqVa /~s5Q~#}B5~#:, I}5}q5wq}67gea6-, )}:5QDK5$py:'> 5Q]eLO eEb:^5Q;t}(b8F5Q7}CIV85Q5Q~z>IqDBY23S/"%^Y Vw~,,~3!|U5~u?7nya5$}}:yWqg3/~ "O21}5"9}D (:In5}q'|n"M6R~5n,',3':5Q#~F3~qV}"]6}m"}!~$"Uc8/N6-'|~ 5QrV}E~23-W}H5Q}-J%, q(bI~ +15~xq}i8~U$X} [5Q0{5Q},32=1(q,3}06)qm"2ao*X35G5Qc1q5$~5Q3~)f0h~C "}B3FQ1[V}}$p} g,}-8,I3~@(bj5Q"w,4!|}PQd&$58~/ 5sq0 "%)hq5Q(:zq(o*~9+.@5~59 3d>}503v,~$1),W$!|~~5~qG$r,2~,~J}z)3}|75QF5}=1b5}h5:}5Q@:q'sq6Y/p-v)M3Y2c.qD#} }5Q!6Y~cqd5Q}5}~V(b3}E8}/7q(G~}I,~Q4Q"[7qwD5~n ~oq+}t1$p~7')9$~2u, W$p~3~&5a,~$p9E]3~!3~\3K,3~!\v~{~I #[b),L57 FQ3<,<a1\a#![. [/=5N4Fy95Q/5Q5Q 5Q3~.31}*}4,JVzqq}Mi$pG~07$p2q[- 5Q/}~~O5}eqdq:~~w5*~,)B~~95w!.9#v }hq}.8}n*~I6 q~q!.m3}}~dqw~& 1VE5&%,7H3&R#,, 7,%~*V7nQ(R~}b5o;Dq}S##}"]q~JQ[ 5~A*iB-J*~q5QN+8c5-Z]eMO pqc5Q:C~426qr36 HS'q^3Oq~^0\8?*}^(b,Rkqq(~"9}]3U5Q}q&`}"3~h'3}tIDB27'@,q{2[,4}V5Q5Q5Q5q~f|4~[:5Q~i5Q>~5W~`~{5}1937ZUw;5Q5Q[`V}(:IqAA }jq4ټ~>5}~Ze|q23t~6Y}$4'V(!.}q%AA(/p{-vB(q\F}&5!.~q VQ4&>(e^}5$5Q}85Q$p}2b~=VH$~ao} *29+<5~~v5}3"&p5Q3:-q$~7n~!:Y>2cq$p9}5Q Y3]~5QO6~65Q;$p 5Q}~3o}6q}\L}5k3beV8DA51L Y   u (e6VH6Ϫ KT1 3yyyw fyynoy| y\" 7IXKF:yyG [ YPX*L2KǾɌ!UK\NW  AU7yPQ  S\[SiEKy qhVLՃ ~  ey]]^]][DU w yy@pZw yiWv[KI@yBՒ&͛T1><1=3847;CF@A6?ED:52B9'2+$0)3("1 /#&,4.*!%-{y yQǤWy\!/ SK-P TcyEyZY_zTyhh`]t]VvL*@בʝ, yF%eW$h^R ywyK ә)۫ Rs 5yqHX W) 47ݿܹ̄!ؚް  z ]f  p h 1 iyyV@K TL\iy\HNy hh`hMhhiWhUyWTy WW1VU.G=y=yyѱXy Q QWcWY*KNh4tNc4r40dy[d EwjMVe Ny < gYhTN3Zy]LYcccccccccccc||XVWɶ ϟLyJ>NF6? yWKyXYRwy y'E OXUIKWy  P(Z[y %RKVS9ڛ ڝ  }   *beD4:~zrs0L[bYJ@OYh*iBJA#ڴ X q ,\: % AXO qS ybi JKy\Y$WTuo ˡB9\Hp1qϧҩ PCyJތHK   GW ɳۋy +w֏SЊ7y[[8yVxJjK j  XyKVGӡ` +GC   SW]V&E y 0HG~VYqHI7SLXQYJOQKzMP O[\[YĂD0~qͬǣVzy NyIZ5J_yyRE"  Nג  hUEO^yhV< Wy[\Uy    =4ZFhqY[ y PWa͢y O@OB" x  e@yyE[Rr[j ___________Ș _[oʹyʺzy   WEOVOWyy [   N / zVUjMfZBD4MD4?4\dˌZlySk k[\ yIl cq\y[Z * YiZh \ZyFՎ֒;6,xVYyy e D Vjy%y& ǖ[Rc f /A}}}}}}}}}dHdIdFdKdCdDdAdJdEdGdB96;>=?45<3:87gk~m~n~l"# !~ yt^yhkh<hihQhv Iy<yZXy-_[yYU@  FVULX ޗڻ͑ NO5Gy JyyMKYP+  XE k.|0Z y :ŦKYMy\%݈~ZCyyV  yyy XXҟZ#  .TyyU )y L(yy I.َva0b2cYSqy J_y[\L u l )W\MyY\ͽ kK)Z kyy@z9Y\ohj fXMy K BUyyS| y Jy6,hY9~x ~*VMvG̉ 6Y ۀ FiaW~WMM Wy@yzjjjjjjj{{{{{{{{{{{{ ycIs %VyNǍ!zO< g ]D]C~}VU a E y k `rxÍ WyYY A\ (TyFNHYXW'X/JRSPGHIDHK y 5 q;OD١y ty^/sYPL W =\k ?ShqwV?y%&*\i]G5 yZa WS[ɼT  u  sJHX  WykT)!QybfbV4GdyhծWfyH T6ZX A\  @4P^Z  S (mr'ymt ( [y;Vf@Vgdddddddddddddddddddddd6  zyAyYIS@ sWU%LG-L NqYhfV9 K yWM>yY 6T+W^ XQ 2Q Ny | < ( g5ٟlkq΂ X ?- r rrrr!rrrrrrrrrr"rrrAAAA|||||}|||}}||}}|||||||||||||||   <?>=_v_z_y_{_|_x_wgCgGgFgHgEgD~3~~~~~1~~*~+~ ~N~I~:~~%~~5~~J~S~$~~~;~ ~P~ ~~'~!~M~7~9~8~)~O~>~E~R~Q~.~?~~A~~&~~"~<~~~L~~ ~H~~ ~-~~~~,~2~~@~~C~G~~~=~~/~#~(~4~D~0~ ~F~B~6~K     vud/d3d8d:d+d d0d4dd'dd%d(dd#d)d&d,d9d!d5d2d*d1d"d-d.d6d$d7___ssssssssssssssssif`kjhlbgcedaBBcyYyZ:WJܻZ C.yy7Y%y R XGz)[aI  y ZjyGEy :~r rռڗ` iW]3yyæټśVc>h.Oh, Eβ)̍|ݦ % yP-բyJUWyx yVҹyyI]Y;FYfpWsy- ?7ГҏXq SUSUJ ! y GhTk[;VOy9֡yX>syGZR;T[ pyZ~ x^M qyW؆ݯ:і{HRԥ  [ 6LD hfV[[+i"y[ڐyZLlw ٴK\  x ED jjjjjjjjjNHh yg yy \ZOVr/~{-YyTF HQi HyYby<U\3]\{  Tc ;WHySy H=OWy7هfY WY 3YF enP.Y9QWׂgTLLvV K0ǛIKr9s[y/\[z  EN |X-3FnPӌ͂fyīU[|kJH  BNl43B Lyyv\SOQKM.Ui0W՜-P.QYLZK [![/Q]GřNRGUKj oiV 8 ZQyR ȴIVL-Z\+ZQZm^@ m  Gyyy@;+Cƅ <,EƇV   "UIW*[nyIWmyӸ˰̇\S HCLVqYFd) r\[Z&D 4sD4p4_dHQ( 0 YUa+U~\ JUiuy v\rIO y ?yW@YPYTSyH`X?ѭO ŏQSn!yI<Y 3H$ڶ;SZyeXG ZH*yy?QeME?[1TQ[yMKN3V  i΃1XY0 mR Ĵɺ& lm}y]Z!yW( UHJF2ٿ *Z+y Y .TLS`H`hy \VkyONOX;FlSr|͡,E1U89 kyϣIy)PQYFNFF dyY-X 3  ) DvrG{huICV˜ʗN!PyrۭiVs˛GDӟ>UXyyV yRZ<Ny%N *y VpEBU~Sy  &Z1NETgPެMZ l [6^yX[[**jyyyy yOyhWWPGA' o #WymyKQ tGpW_ D YZWVN   mKEW_K,I Rg RFsh&ginUVՈݚyΒyyt8t9t7BWBUBYBZBXBVOeeeeeeeeeeeeeeeeG']jWYɱ$~ B4^]a\_b`[Q0ݶ J9dfFFM~X\ҬYDy tJaJbZ  .~~~~ih_____tQtTt@tItHt=tSt;t>tRtDtAtFtMtOtCtLt?tPtBtKtGtNt<tEtJFi wPU{z Y'hEy. Wy S+Fy;z^MH|V'QpK .Tz K 9XZNO7YY[A[Iy VO)^^_y ! h.,E<_yfY[*8[yMKKqp$^pokmqngjhilAD?@=>CBp@p=p;pFp?pApGpBp>pCpDp<pEAAAP; l t  ??y&פTteee7qqqqqqqqqbmbjbsbubnbrbqbtbkbwblbobpbvBBBBBTTTTvS    D(D$D#D!D"D'D)D&D%g%g$g&N~NNttsYsXs\sWs[sZ77777777Z1qVY;ڥ^hVN S]X fW y=8YaʾH];[VSyۅ * ށ>  X4X5y?~uYg7777d   GЖOk]l.yy[VKhq M-Sh<Ρ^&[yN"yU^JBIE [E XYZZxVEh i8yԌjjjjjjjjjjjjjjjjjjjjjjjjjj@@@@@{{{{{{{{{{{c4c5}zvr{w|sut~xydddddd]]]]]]]]]]^^^^ #\][h\ yyEhh,uW/Սva $6]DJ9 Hy hFļǻGYѤقmʓyy5  ySYX/ J 7Ky yͧʏZh[pHp?6ʮU.KZOYZPOMٮO8[Q[1  #.ړnK\|lͪ{y#yy!Ԁźy[N8F'V^ъwM M>[UyW D4BD4>46dyyƗjyWy0y E"y  Lhh Z+Y]^3Lby@@@@@@@@@@@@@@@@@@||||$|(||#||)||||| |||!|%|||'|*|||"|&cTcGcKcScPcEcZcNcDcOcYc^cWc_cHcXcLcIc\cFcUc]cJcRcVcQc[cM@@%@+@"@&@)@*@-@ @!@@@ @@#@@@@@$@@@@ @ @(@,@'@@@@@@ @@@ @]]]&]*]$]0] ]%]])](]]]#]]/]]-] ]] ]]!]+]"]] ]]'].]] ] ]]]]]]],]]e_eeeVeYece[eZeleTeqejeseaefeheoeiede`e^erebekege]eXeWeUeneRepemeSe\^^^!^ AAeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee& '"( $#%!    ~{|}vvvlvwvfvivuvkvvqvovhvyvtvsvv}vvgvmvjvv{vvvvv~vevpvrvzvnvdvxvvv|vcxLxWxIxUx=xNxOx2xKxMxSx6x3x?x@xRx>x5xXx<xAxQxZx8xPx4x9x;x:xDxBxGxEx7x[xCxTxYxHxJxVxFZc*c&c(cc%c+c$c#cc'c,c)c-c"c c!^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^{{{{{{{{{{{{{{{{{{{{{{{{{{{{~}qqqqqqqqqqqqqqqqqqqqqqpYp_pWpZpbpdpcp^pUp\p]p`pVp[papXbbbbbbbbbbcbbbbbbbbbbbbbbbbbbbbbccbcbb@s@@~@@@@m@y@@@{@x@o@}@t@n@@r@@|@@w@v@@p@@@@z@u@@@q@]R]c]Y]d][]U]M]b]h]O]`]f]E]S]]]a]N]X]V]L]_]i]T]g]^]Z]I]e]\]K]j]P]F]J]W]G]Q]HEOFPMGHIRNKLJQGR>5C<43HAM=@9,6?O2:0-+7ENJK1FD/.L8BPQ*I;S[[2[+[[:[*[[7[[3['[6[[8[[)[1[&[[#[[4[,[[/[[9[([[[$[5[["[.[-[0[[[ [[%[[!AAA!AAA+A%AAA*A(A"AA)AAA$A&A,A'A A#jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj^}^^s^^^^w^^^^v^~^k^y^^p^q^^m^n^{^|^t^^^^^^^^x^o^^l^^^u^z^r^                                          livpob\z[~`h]^ntm_gjfcd{qsryk|auex}w     Z[HLVDIBJYTK]WG\QMSFCRXPOUEN_M_X_T_F_L_[_Z_=_U_V_R_@_N_Q_B_E_S_J_A_G_I_]_>_<_^_K_Y_\_D_H_;_O_W_C_?_PVyU _\ث@qss< byU\QVX 9 Cy7 u `E m@yL y.^^^^^|+|,cbjjjjjjj@@@@@@ y@[ KYYUHdiw> yXDyy&  l C b |ÏÐyTZ B NK yy }o7 G^ƈY8h|[|[T 3 G " b X Hy\Zyܳ)JԻT0ԼU1Y]8W(Y [X  ]y  a Qڅڸ _!yD\nܝ̊[F\  (]  * +FQ*L[ XFI!yWyY tZ[YyyX OYy\  AYyY l4M Efy >yyyؠ=fyIV~4yN.ZE.yS3i[<RJy_̵\CWW$W% hyyӄSi V#  [iHAGV$]]]]]y\Cqyyh VUx&I?/M[ ] h .  (ST VZ@Ա1 ?\qW< x " \ [ Kw9 Z  , uyqP] j:HYVM>]4?qQG}^yUy Ny 4 %g]M?Xh3 VyyyPL4]>]=];]<xaxgxdxbxcxfxepmon^g^j^h^i^e^fjjjj           @@@@||||U=MoVl.h- Jy ;ZnyЧ4~JXy MWL[QZ  yhhah  7W7P=DPy?/S5צŭȵF\LWعVޚTyL  Q  < G hH"U 'HW۰\hyePeQ^^^ywzx^^^^|{pSpQpTpR V6   yyOFSJHSKqYiK2Yڄܠ gd  K[rK:G5y ?yG>OaGRPzhGiAםKVNv\]\W7-Rky\  X.w@@@@@@@@|{{|{{{{{{{c6c:c7c9c8eee(ee eee e$ee"ee+eeeee!ee e e&e eeee#e%e e,eee'e0e*e.e1e)e-e2e/e]]]]]]]]]]]] ^^^^^^^"&%( )'$!#eH&]]{]]z] ] \W\\Z7   ]Z D[ҭyS+ #$ 3Vw(VePeSeReQeOponqm5L5555=5H5>5$5U5@5/5A5G5V5O5%585!5:565E5N5R5S5P5054557515J5+55-5'5(55D535.555M5 595B5T55Q5)5"5I5F5*5#5<5;5&5255K5?5,5Cq%qbqGq(qOqRq:qJq9q=q>qTq<qBq'q&q?qAqdq)qXqVqLq8q5q0qEq.q+q\qcq1q^qIqSqYq4qMq3qQqDqNqWq6q-q,q2q`qUqFqPq;qZq7q_q]q[qaqCq/q@q*qKqHqxvt~z}ryus|w{CCCCCCCCwCCC{CC~C}CCCzCCCCCCCCxCCCCvCCCCCCCCCCCCyCCCCCCCC|CCCCCCCCCPU?om\B;hTWFbXHi1ANQ@>9Ofg2JMa]cKEG8D6dkZYI`e=^jV[473<:_5SRCnlLbbbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffsmyqjktuvwzoxlrnip777777777777777qqqqqqqqqqqqqFSGbQVT^Ec[UJ\Afs_ekqNdYaH`@WhtvuZRojrDKL]nXpiBCOIMglPmOhOeOgOfuuuuuuuu$#4PR-2)9AY<BLS8K*!OGV1"M'XQCI?;ETD@3&F>.( WU6=/J,5+0%H:N7)'(#"!$&% cnctcqclcpcmcrckcscocjcuZZU\[^]^^^^^^^^DDDrDmDkDDDnDpDDwDDDsD~DuD|DDtDzDD}DDoDxDiDDDDyDDDlD{DvDDDjDDqDNPIaR8D]CJcMWH=Z`7:\VL^_Q9O;bGA?eBUdX[YE>5SKFf6@<Tp/p2p4p9p.p6p8p:p1p3p5p0p7ggggggggggggggggggg|?|@|A]^^ ]]^^^ ^ ]]]]^^^]]]]]^ ]]^]]]^^]^ ^]]]]]]]](,.'&#65804!$3-%/72 *)1"+;:<ee{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{_(_-_,_4_&_'_2_*_3_/_0_._5_1_)_+qqqqqqqqqqqqqqqq{w~vx|z}uyAAAAAAAAAAAAAAAA|||||c0B96.D-J!3HN/F#?1LM%'A4)7(E ;*@52&+>I=:8"G<$KC,???@?@@@@@@????@?v&v/vvJv#v3vOvvvv"vv$v<v8vUv(vAv*v!vv+v v-v7vSvvv?vvvGv)vPvMvTvQv'vvLvv=vv vRv1vNv;vEv2v5v9v0vvv:vv4v@v%v.vFv v vBvIvv,vCv>v vDv6vvHvKccccccccccccccccccccccccbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbddfffffff}}}}}}}}}}}}}}}}}}}|}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}~}}}}}}}}}}}}}}}}                   YTWZXVU__r-r,r.dddddddddddddddddddddddA\\\]\\\\\\\\]\\\\\\\]\\]]]]\6809257431}}dddddddddd x"x x-x#xx'xx(x$x,x*x)x&x+xx%x!e8e7e@e=e:e5eBeAe9e;e>e<e6e?gIgJgKgL²µ¶§©¯¦´½¸°¨¹¥±¬·¿ª¾£»¤º­³«®¼ZZZZZZZZZZZZZZZZZZ~Y~X~V~W~T~U?ZVHD>IFBPORQAN@YCEXWTLKMGJSUjwjsj|jjtjxjvjzj{jyj}jqjjuj~jrj~yz|{}@c@f@b@h@i@e@k@d@l@j@gyyyRUh3#WIrV y+y\ Kq 8yE KyTR D y ܢ1֘VMKyGZuyp״ΰܔFT~P1>Lv. AJ4!7 -90K36GQF*+pce_iM $/Vs R| ]nSa2Zx@WI5bk[z=lf#8`:?'htEN,gy^oY"uqOU <{;C&}HdB(%\Xrj)DwmqzqfqSqqiq+q/q>q*ppq?pq.q_qq&qkppqaq{pq#qdqKpqhq7pqwqpqvpq\qQpq]q ppppppqppq|qRqqGppppqVq`pq qpqAqFqppq;q@qpqpq2ppqDpppqpqIq0pqpq5qcq pq q pqpqqPpq$pppqqppqqppqyqgpppqqqCqpqopqEppppqppq6qqUpqjppp~qlqpqYqq:ppqOpqpquqLq q}q^ppqqpqppqppqq3q=pq-pqTpq)qq9ppq%pq"pqq~qqpppqBqnppqNppqmq(ppqppq<qsqXppppqxpppppppq!pq1qrq4qZppqppqWpqqqqHq'pqpqpqMppq8ppqJpq[qtpppppppqbpqqpqqq,pqqpqeqppq______b1E)N^Yy ]V y [Z{c\Ny u0`P̳ SY4ql L + ! P XXujnH@B  yr  867H^ HQZyyy  oUE h7 OEY#k[0y[yWJUE\JyXy XF$ fy\WFB$TĀŵY .WGEKSYSyy_O M\.OhWy\[UyGY H h 5IoyUsP WZYh\^y B[ZY;Wl.RyR} } }} }}} } d<d@d>d;d=d?.-+021/,J+l ɬ Jpz yrqlVTPjmrpXs\^godfhZ]aYetRkbU[nSQWc`iuv_t:egeae_e|ehe{emere\ekepe}ejesede~eneoetevefe]exe`eweieqebeyeee^eeuezecel50A<6C>9MLPN8J74:=32.GFI@EQ/D;O1?HBKB[ T  ;$-hhEy.6VphWu eLFWwy]G\2[$y ay {x\DDDDDDDDDDDD     gh!gggghghhh h&gggggggh)hhggh$ghggh"h gh+gghhggggggghhhghgh%ghhhgghghghgghgggh gggh#ggghhghghhgh(gggggggggggghghghh*ggh ggh'gh h vvTG 'O2`8>XF0\$a)9%J<4,c6"RW#P/d7HL1=Q3(K5![;@U:^-*M.bESBCINAVD?+_&]ZYcccc.jjjjjjXUVWY[Z   ddW}فQԖʔ )  L O:UU 2 QXłwέ\[-yy eyS KdПaX: y} 2K yҨ,XCYYqK  [NXY@ڢգÜ[Y1\;|y V[7y [p̓˳SGjP}P~Ky7%( h WeMZ(W NeW+K-JMHIJj^ hO  n *FYTy  ?~H! oyɐ6ѯk n] # 1FZo2 pySz^SAGKEUyU    N Z P3@Ghc -SyL:SmoyM MyyiHn3 yWyyA?PhyͣƨDÞ[O yROs t  yTFZ l  MW* `yyPzNRR,sۏ;TWyyy W;[y UyXZB87  \+ZXQfɯDcͮ$@0cUT+ ]yyԠY wʠ]VAȱҘxyzTI?ZyY+y^y  0]  t:S T-NZyyyO AEjPSOXh5]%^ [j[B]\9yN0TgVX EYEy%ihMZ:p \ !P[yy5ƢIHCYYK/?ij7<  y}@ryyV; YWyZ]MB\ey y6 ēi˹ɍؾטG!7y!yS V hygjhqy   ?y  h%YK4&'y JŎڭy&xݓ ; 3 ?Qi y > h`Vdjjjjjjkjjjjjjjjj}~|^^^^^^^^^^^+&.(%2,1)3'/*-0^*^)^(^,^+@@@@@@@@@@@@@@@@@@@@eeee{eee}e~eeee|eeeyeez|:|;|7|2|<|4|6|1|5|8|3|9|0clcwcscrcnctchcmcickcjcucqcpcgcxcvco_ _ _ _ _ ___WW >3$ݏҞ]w4yYBi n j>ؤM D 0 S LN{L ZZ yFyYiyZOlZ!K  \ ]RQϚDκϯD]\][[^>\`\O]][]]^U\(]qySyK\3y˽HXwľ!ܣ@ Q[ IMOўFq.aInhGXRy(R}ȣљ19L}מy g y[ y(yyyZ@yyH   x uZÑy y  ynpy (PXMUѻhvV \]-[ 5yhym7pqnFE8-ylhi]} hU-GTyTjyZ,πIOvO ?[`Wm(NWTLRM0u\SIY5y] Rs s$URO0U fy ɀڔɁڕW~UX  y(y  ] 5֖xY>\z y NyYy[Ƚ ]yyMí,J$VcTqyaV|Cw\,؀;[@fff}u}v}t  5*ThK.yJ% V[Z* lh h i U {  G..JsgUp_huzK]}Je[nwP\omdcMQqXSkl~tixvy`L^YNW|faTj{VRbrOZaraaaauaaaaMaaaaaaaabaNalaaa`abaaQaaqaaacaaYaaaaaapaHa=aaaaXaaa>aRaaadaanaJafaaaaAaaaaaIab aOaLaaabaaaaaaaa|a@a[aa:azawaaaa\aaaxaabbaaVaaaaaabaagb baabaaaaa~aaayaaaaba_aoab a}aaaambaab a;ab aaaasaaaTaaGaKaeavaEaaPbaaaaaaaaaajaaBaUaaa<a^aZaaaDaaaaaaSaaia]aa?aaaaFaataaaaaaa{aakaCaaaaahaWbaeNOSOGNNNOO O0NNOLNO1NNNNONNO'O O=NOHNNNOIOMO@OO*NNO;NONOQO7OOUODNNOONNNNNNNNO%O,NO#NO<NO!OO)NNONONOOVNONNNO/OKNNO:NNOJONNONNO+OOO?NNNNORNNNNNNNONO$ONO&OANNONNO>NOO NO3ONNNO NO9NNO(NNO4NOBOPNNNNNNNOENNNNNOO"NONNOFNNNONNOOWNNONNO2NNONO6NNONOCNONNNO NO NNNO8NO5O.O-ONNNOTNNNNNNNNeef%fKf.ef'eeff fGefHeeef_feefRfEfUfSffVfeef9ef ffef7f/fcef"f,eeefefafZeefefef?ef:f(f`efFefYef)ef&f=eeeefNef$eef0fQeeefTeeef2fbf^feefefCf3fLeefAefef5efPeefDef<feef]eefOf*ff eef;feff6eefIf fMf-fJeeef#fffef+fff4f1effdfeeeef fBf\f!f>eff[fWeeef@eefXfeffef8f eeeeefe)(&%!'"#$444444444444444444444444444444444444p+p,p)p'p*p(u tutttutuuubtu-uHtuu(uYuPttu5uyttttuDtu`uWtu*tutu8tuituttttuotucu2u ttusu]uLutttu.uvtu%uu9uVuAtttu3uNuudutuBtttu;tttu tuuztu7uuuttuxu>u ttuIu#utu&uu<tttuMu6uEuTu1tttttttufu ttttuJttttuFtu'u,ttuquXtutuOuurtuttuZttttu!uuwuRuUuSu$tu^ulttu:u_tuetu tuu[ttuutuupttu4uttu0uGtuauujunttu\uu@uu"uKukuCtumuguQuuhu+u/u=u)ttu?AICSE3G%QWP>8? bT91<B[+0X(*`!.Y2 #D  ^7N\RF-_L/$ ;HJM='6O4 U@a]"):&VZ,K5iE#-%Nl^o >IkJ_"7\52{RAy3ZLS`m&euwt9H4vgs!.8q,QFX/b= $1 GYWPO;)p ?[Cz@(UVx h0]Tca6d*Mr:'KDn<B jf+2r*t q&n-y; +{?%5F"|W<8uhI@iKwlDGEvR`}z(SVLke$!:T\cO1>]4aXC Z ,.N bU=Y'_f^JAM sxp~dB7HPm06g)/o#3j9BCBCCBBBBBBCMBC;C BBBCRC7C$BChC`BCCTC]BBCC.CBBBC C&BC<BBCBCXBCBBBBCZBCWBCBBBBBCVCBCaBC BBBBBCCcBBC%CCC,C BCdBBBBBC?BCfBBBC!BBBBCBCCBC[CPC/BBBC'BCQCgBBBC1BC^BBBBCUC*C-C+BC\C8CICeCbCC9BC>BBBBC2BBCSBBCNBBC BBBC CBC:BCECLBBC5BCBBC#CFCBCJC@C)BCBCCCCBBCBCC4BCCDBBC6CKBCC=C"BCACBCHCOBCGBC0C(BC3BBBCYC_(tĢQ.UWzy׻ʂ Uy\sPy[%QD yI,[1L\ 2Y bX޺ E ^ ,pq GHIIByyHzQdMX p v t ާZ\)\*{X >g [  " 1.eAZJHtZ"Z#y  m\  yXUJJ[J wy% V y 2c[YVSgy Vmqo6X 8  Vh.yy JY  W :ٓS" Zryi_QY,[IO "lo? yM}E Xw]?O W c GZ[T8VWy%  K7^y8\+] < N LsTYŊ(ͳLyVW D, OuB e X!ޞN\ \HXחF W#YG]<Wj֩;Ay[ o ; q rKTyyX# .3 ^F. hi>V%yKHnF?Ky %h.Vygp XHYĝL UW yy PwM= F9 HxShChL}VT9CBKIN\ )> b[ZryW`Tj2:y yY KWLW G[YFyMAWH8D bi4VB  8  ).yKSCLh.h LsWW|WX<IC V^Ox fE Yϊ٬y\Xp E-y}yc cVQYyֺ.IZ VEKMP&    d ԛ&W]  b()ܫF٪X e hI\7yKyY6h EVGHyק \hu ɧڰYHy\534gfge??uuuW1 W2 Xab؎oϒýՋ<yyy~ҴҌV  ! /[ Fy.yyHyHQWWOW`І V EhtFHyYIYj yP>cehw K{WJ; h Wj[NIuq  ˤRV!yy_yY JyǰRyXZYIYμcν[  % E!!T.y6     gggggggg g g ffggfgg fggg gfgggggay[Y1RyVo~̿*D\TyL]nϦyXyyyby4 yO;UY8IzS~KŁvEyyV:Yy X  yy(VITi y k TZY6 ZR'IhTxgˆٹ̂"Ⱦ֑ǟˇٺ̃K7 \qZ39 W-y i y-QFL@ +X)F\SF5TOn[{ybWV  y]]l]q]r]]k]o]s]|]]]}]]]]u]]]mq@:V.-РC"byyRZKTQOpYz Zb DSS*&3  Zb_`]WaY\V[^X X4TX5xZ h]ZY [MyG uhR ވW+MVyXM BaqwU8 F RI[]iYQLhyyy7[myy yZ!y  y UU'FAȅ-YRM[pN L \y O  &c  hZć ;leeeeee{{{{{{{ 0.-*('$  % & ,+ /!"#)AAA|cccUSTffqqqqq}}}}}}}}}T YJ i 0-y)qy}K@Uǀ3L5K< m  y FZay Cu DyYyI.ySYY8ß ^y ] OKy~t V \ ]S9X Éy[[\yWijyhhZy bօƦ X Z ^ST\yZ  PqW%yW&yByIJryQj?V=.IF7HYn'_Qy` :SWWy Z޾(#Оä8޿Kyʦ]]]ypis=9Ķ RkZ] %W yHӢZITiehBi4KK4JS yMj y.XKRcd.iefK[y Vl Hݫ\iN ; syy1AbWbc4ABVYJKSW \G\< a x  Vy:TsY5[Y xy] _ 5 4&  H;ˎOBV"  <9:ػUN e͆j[[yh?7y5 M@\ /ssssssssssssssssssssssssssssssssvskoxujwy|mzrtp{~lnq}utpqronms - &)' +! *( " ,$#%B dddddddtxwr~{vs|yzu}44444ggggggggggggggggggggggggggggggggggg~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~OuW 2yy SZ}jޯqZ>yy[?FHKYp" ]h i:h&hOyI 2I=K\MXYlL1XUy  l   4 GX;yyRS(CyyѲƂCSlڡy:ayzȫPG/x<uOyyi%iFKP6՞q=y P n V ELK`2iX2yfyNkbK4KdyyyWYYY,̪ە /WN Z\2 QfL6YkyFBJVfY 1 yVN  [i-/Lٰ U.yr[ ڂy EYv[ZZ.ԟ[YT y tVbLuLS'Y9Y:y4 y h;ۺ Z[Z > ! >    TFL>HhY] yUI\@Y byyZ k4iMiml[ *IZHNfbT4N44u738bh44-4Zdy  9  \yJiOb  #$ a DyR = u   لy eΓyh-y riGihWYR Yh." G yZZFyVwΪPE yG yJL7rNo & 3[X" ՖOW3˃̨yWd zX+KZyژchbI k yk \$~DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD]x]n Z[)YX֗GycsLVҁݗ͠yYyZyXByX\!WBŕ@Wa H.CbXbUbZbg4i4g4J~uUIG*y|_[yEh:ZhO_ǒΆZjEEVyWJYRQ `q DbR4T4kDb[454o4Yd VQCW),xvy|uk}lwps~{nqzrtomd,e-aƝJ@`?ɏ h 3 AËY P YZyNj^}N[yy ".UYYGKo = y 7hV+YY s \V sy'W?yyyg_geggg`gagjghgdgbgigfgcwy{zx_____[TI$>y.E/yOO yyc\c^c_cZccc[c]c`cgcbcechcacdcicfUUUUUUUUUUUUUUUUUUUUUUUUUwmwrwowqwpwn'&bbbD7D;D8D:D9D<O`O]OdOcObO\O^OaO_O[uu|u}uuu~uuCuCrCqCsCt     qqqqqqqqqqqq !    fvfxf|ff{fff~f}fwffyfzgFgCgYg[gGgWgDgKg@gBgOgTgVgLgRgXgAgMgHgUgNgEg>gQgSgZgPg?gJgIhg7777777777777 yÃŌΤbȊgVEK^H ʨj~ʪkyZd  K:KqQaI lV] PKN?y y" y hx , _y 1yJ sqsrsp654VdlXrXsXtXqXoXpwwwY  J)<t\Y ? PFCkyyy  K   MT. NEU OWNfX   e 1\ edQY y yy W y<ۡ *MuƸc yphp hX PyY' IGIG xZ KXΟGEq p &az>2B[h 9 ?  D eJ=y rA=@wYy YLN8y q YMPMySE .  1 5yV\gyy@K 5JPy{ D l  <%qZh W  KdU ?W]^\K&[&$@KK'yyOYxXj<~pݛhpy{IIyVTjY&ETZVR^ZWRaoP$G+,-iiDic [ yy3gyyo ?wݱyYn[ y ,yV$5G}%&H2wCɅ LW 5T ! hy%]]stru[ cH /yMVXJh.iqyMWQi!WMPQF  yX M<y ϖKY^з`XaVQhw#y% b`4]D48bN4aD4=42d( MLZNܨy- yVxԓ fV u Y.KJ Mг* >-_!_ __%___$____"_#_qqqqqqrpqsAAAAA$(%'"! #)&*|||cccff}x}{}z}y}w{~|}HKICLSMOAF@JGDBNEPQR__}_~rGr3rDrFr7r<r>r4r:r@rEr5r/r=r6rHrBr9r;rAr8rCr1r0r?r2AAAAAAAAAAAAAAAAAA|do \[o[]KّBՇy[W FTY5{yy gɴp5Pi՟gy Wy^y\XVRQvHYeHV  mV H+ZVjTSQBSyh  WVJ-y\pUU[[ \ uyy ?I|WI}p{oT|y sZy4̗̘KJ\TzY%XXxL% L U1yYyl Wq6 xyh i?Wo = WpTJy y  zYY\yV~RQU D KSyy   ZN4i  j1ZyVGIJ l  vLJVMKrV y  yG3 hBIGEHFd6d3dHd7d=dEd@dBdAd8d2dJd;d:d9dIdKd4d1d<d5d>d?dFdLdCdDdGD]D^D_D\D`XWXYX_X^X[X]X`XZXXX\wwwwwwwwwwwVY[WXZyTeLfyٻJ[˗ G ʷ/Ε^8ӘîyïyXƓG0.ƕ[WKhW6V]aF1Vh{ yɗջږ_ƫy ֮C'H\\#ANsIJFTyyyyVy 3JUO/YyQ5 >U e2ԕ3y =-YFMLXy JXyYZG_y \VC% \B]B\tyyyXCyZ `yyyyVF y@ Ozy   E + hEVYTWP yC6PuhyygWy}~W6y Ȉ5^  LyHjRy.JP yyyCtI" _KIXlyRyW GRU  ZcV 1y8ZYuyldyY]v]bSNd4vdʊ [JyP=̞}̣V Ky 3i8HYƐ   Ui VYXN( 8XDbJ4u4+BvQީGyyyr Hi2wUZ H? G) TUzL J e 6S@ZUyWYf\iT{L#QyFQ ?V<Yrt"#XZ\yyK.LwV  Y\4Z_ԡܽJ?ypGwyX\  c  /ԨT/Z  0 h?y E x I XIW 4YPZ8   UXy RIkykkkkky +VYjF+ ,m.UkhVQVhLy 9Zyh ( lyVR ' %WުЯ6 yy MHyyyܞyyG\Λ$ii*i[hVxmeee~wzyx{}|5n5q5i5o5m5k5l5p5j5hq}qq~qqd( & %' ) "!# *$K OOOOOOOOOOOOOBݔӁZ}qy^yNP,؜ѕ'Y#,y  KT; \Y Z  zWRc6ڿ[SׯyKyZC[ Schyeeeeeee7 Z6 Ysyy \ X:cƯҫy ylmUaZTۍgipMQ-Od\y ZX hJySK)WKhyzXYyOr EY89yyӣ Wyyyy.iZcyMy _ d R{KYׁZ Q^PWyy_ / HW\$ T K[Y Vy&b_b]bb4E4jbQ4O~y fgQJ2y3VY @W %duM*FX  :? d[ʙYU@yxW \\Xio]p]] L  giOOCSf Hy  UyVF  y x{YG,QyVwŴy[GYyy^TyW{  cl[e[TRyyyyZr yHoEyH  @WyҽŖyU~~~ddddddddddddddddddddLMNO333ggggggggVDdX<:I`JYTbQ?W]LHONAP=a[FRC;e_E>B@ZSKc^\GMURK IKy E H Q ؓ!+ s 2N|y g 'XV, VL1 yd* wMDB7y y yyLZX&ƹV}͒.y VW-VWhY{Syy .VFDEX7 =V ?jWjPjVjSjMj[j^jQjUjHj_j\jRjGjYjKj]jXjOjIjNj`jTjZjLjFjJYpnk]XVswZ\matx^h`fi_djgo[bUvlucqrWey m\ yVHy3yy4 UÙhLOd\y׿ó< =zyyV^WD}RJWYT[sWk7YU <WXYiZZ\ % Y[R}YZYyPQIL  5M[!yh 5Y.y  EŃ]uȀE[a  lyWʼn# IVSEs{uZOUy\  XX7YA0{f\[g"-yIyZZy[ky!P-;[Z> ~ r yZy  SZqS]y k @ A  u  h h2 iV Ny`hi/ W Xh lL#F͎!][JZyVXVZy V\ ey\ &X֠`dwdvdsdxd}drd~dddydudtd|d{dzX}X~XXXXXXX|ww‰ˆy kWy ^]2yvWvKyyϔ/5gNih6\W!y6\4tF!<ovbbbbN*  Y^J yy ; ^U G hS+!#KgJh? hhiHh hAi&3 DyyW U  3 A^ _U 7y yy˧ֲYyy yIMPyeUE=  |y 1g\"\ɋܿ ZXl9y3ץ\Yy ,'y\  W yX Sy 8MHW@O#YT YUQ myyyJTZ<ރ 3 !p c . 8 q2^y\cy ]@F Q  nz-V y܆ ZN | [IyIcccccccc=?:>A@;<eeeeeeeeey,x $yX +hhy _y y -yH כFLXV i ڟLeV N/c-յ݅E yO bd4nD 4DbP4SD4<4[dyhW5~vfy yWy6y  FdiV4 ][[^@[]'\]H\d]IHV5KyUP,ͭ W% :OOQrQk_V oy hhiXyHROgP@G yY SYً  >K,\#XKsM *gR"yVLIx )yYy̭g0GǂL˲ُƱY:yɠy ̐]\]VXZ I Py[dS{T[\P =\Ry |Kyi6[}W  bc@c=cAc>c;c<c?e4e3]]]]]]PVFO'/K=%1AUJY$W&74H);,#R-I.3E9LX<*B?GC(S>M8T!D0@6+NZ2:" Q5^^^^^^^^^^432ΎvY y 3͉͊  'F"#YF[,y;^@yyiPyyZq: c" [fèپŜSSy }U9uTZ [-WKy>Ůȷ   BӬ6ˏy;C`JHEHU@3Oy"f$BƉGJ Tn e`VXEu,Y hTGvPJy N'Y8Rhih@y 9  uW\Iy5W?Y `yA^2 Py hiIV*yHmN v yUDEyyF,Y uI v[%&Azc~plhusqfimkvn{}djex|worgty|g.g*g6g?g:gg%g'g8g$g3g-g+g"g4g!g;gAg(g9g>g#g7gBg0g&g<g=ggg2g)gg,gg5g@g/g g1d}}}}}}}}~}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}-HHZy\ ėO,\A\  w\.LMUSZYwSUyqmVNMyiQWWGmVy yyMV\m\ÄyyyGK TSy0J$ g HjZ  Ωr4y+gYg^gRgNgWgSgMg[gUgVgZgTg\gPgOgXgQg]~b~f~_~`~c~d~^~g~a~]~[~k~Z~j~i~h~e~\|}hz?y*TDVZhy ;yy  k [hh.y(VV-X% QwyoSaivhni5yV(ç !x G_yzUy OWK JZY<2Na6;4R4.d|~yNPqYM<yX >  yWEZnqe\i]wR]>MWe 0SfXIMyyyy G '|2  ŀ p׷ӃɔAՑ UPYW"UIY*<HYWhVtK yc@FF8yRM>:3 \JׅҮ۳ |GYNXQ>Zyy ]]]]]]]]]]]]] UG yWIPZ? yJ\:ָ̏ VϜ,ygĨO OENQXyy Gֿ q A /y(-JXiyۤGqK :ȓ qTGAh[;RX.y hmhDVy ] yѫ5V U[1yr¢˜‘ž—”“ •šŸ›œ–’¡™ZZZZZZZZZZZZZZZZZZZZZZ<936=2/5:8;-.7,410+x/EJ3CH0AL=1FGNP?4R6Q@I9S>52OT<D;87KB:Mjnjkjbjajdjcjjjpjijhjljmjgjfjejowh 'NYJyYL w ׀'Wg/  Wy   D F yyZ UNYd ^PX<R= $y]Vˣ\a y WyW8F|X KR IWHVNWW rV УZ*ijcޤ,5ZDy m "V{yddddddddddddddddddddddddddgqgngygpgmgogrgtgsgzgvgxgwgugl444x4w444|44}44~444z4{44y44ppppppppppppppp ppZSU\`[Qa^]T_WXYVR05.4713:+-8;/296,~~~~~~~~~~~~~~~~~}*,-9/+8534210.67________________B77777|7777y777777777x7777777{7777~777777z777777}777t tttt tt tt ttttttt eeeeeeeee=BGBAB:B<B;BHBBB=B@BDBCB9B>BEB?BFdeee eeee dededdeeqqqqqqqaaaa a aaa aaaaa a aaNrNsN{NqN|NoNnNxNpN}NvNzNtNuNwNytttttttttttttttt  E À yyȦϋнyO^OKúخ 9I{o#ސִSIֶVBqy  Pyy  z O0Z}  X EyRY:4pC<!#ڧFiکy6 ݐ\ y=҈ h H 7 h] O{W}Tnqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqb@b9bFb?bDbBbIb>bGb8bHb:bCb;bAbEb=b<O~O}OO{OOO|OOOuuuuuuuuuuuuuuuuuu CDCCDCDCCCCCCCCCCCCCCCDCDCDCCCDCCDCCCCCCDCB/B2B,B-B.B4B3B*B+B0B6B(B8B)B7B1B5  gg!g gggggg gggggg ggggg gggggggg gg gggghGh'h+hgghhPhhhZh/hgh3hhLhggh^hFhahAghgghgghhhhggh[gggghVgh4h=ghhdhh)gh_hhhh(ggggghhhh<h:hEh h9hxh*ghshghCh%hQhqhMhtghh|ghhlh>hhhghh]gh,hNghhghhhyh?gghBhihhgghh2hRhgh;ghgh$h~hIhhh{hhbghhfh}hh1h h hhhwh8hXhhghKh\ggggggggh.hghrhWhhOgh5h7hzghhehughhggghDghTggh hhhYh@hh&ghHhh hhghghh`gh6gghpggh0hgghvhjhgh-h#hShghnghUhhgghh hJh!hcghkghhhmhoh"%*+). #$'("!,&-@K<AB:9HIEG;?>7D84J5=F6Cdddddddd```|``_``s``@`a``"`}`9` ```%`K_```1`````_` ``>````` `````_``` ```J```,`n`]`w`2`U``h```R_````T``_`W`E``_````l`x`\`{``A``5````j``[```_````e``y``q```I`)`$```````C`#_``c`H`_`&```'```_```````_`````=```````F_```Q`!_``(``B````Z`<`a`8````a```o_`````S`````M``*`0````b``````6``_`t`g```^`Y`Na`a```:`P```-`X``````d````_````;_```7`O``m_`v````i_`` `V`z`L``~`p`_` `r`/`4`D`.```G``3`f``+`u```k``?N=N4N3N_N.N8NUNBN)N/N?NLNANNN@NENQNJNZN;N0N-NSN*NDN\N^N7N<NCNRNPN5N6NWN+NYN2NXNMN9NHN,NKNVNFN>N[N1N:N]NTNIN`NONGtrttntt}twtttmtttxttt{t|tltktqtyttjtotthtttt~tgttutttztvtstitptt77ttttBBsBzB~BBxB}BtB{ByBBBuBvB|Bw~E~-~5~~3]0,~X~_B~ 7~#I[~~~`@Rba!A~F~ 9~~Yf~~~~1~LU~e<* M.~SG4 J&~~'~:K~~?T~D2H ~PV~O8~6~~"Q+C%>^N~; ~=~Zd)/W~$(\~~~c' !&% (# "  )* $sPsOsQsSsRDCccccccccccccccXOXQXTXSXUXRXPXVwwwwwwwwwwwwwwwwwwwwwwwwOMHTSUJPRIGKNQLDZDYD[gwggqg|ggghgxgkgvg{gpglgmgig}ggugsggyg~gtgngggogjgrgzg     ???????????uuvuvuvuuvvuu             d\\xxŽŒ~ZZZZiiiiiiiiiiiiiiiiiii׸iyX0 [HVv  [ [ @ [XBm Syyqr[hqyVXU@Zpy lyyWZ4ܙK .KyyH GXgMM8t΢PU   R YXMXNw~www}<>=@9:ED?C;ABFDEDDDFDGDH0*1-.,2/)+gd8$8 88%88888&8888(888'8!8#8"888*8888)ss}s|ss~sssssssss#" (t  VPyyy= GԎE/?̟z̠|̡KyJ<Wy w̽yyZ yqF}Xyya^yʕWY3 yy\  ?|_yֹV% #,^y8PMOKUPYYy/0y r  Qm [2 BtU; IQ ;y ٩˂ yXJyRSZZ\[Rſ$y Ii j yZoj E )Eyhhh VR$y&  v yZ' o [uKhZyyyPV_ Jnjy yXWmyywӯ3UX EyyHJ,EǭSYZU L  yXA$-.#)+ '( %*,$"&/!G+7OpyS My\&A&Y+ mKni hO g}3Q0R T_[_Yëyiy"Dόƌ CĊ[}VW; y  yW\KWQJL*ORt[hxq\y \ե ^J 3 N -ldb\R gg???uuuuuuuuuuuu___)$%# &'(!"*iiiiiiiiiiiiiii       d\\xpnpopppmpl).-,*+@^@_cccccVW{|}         dddddddd]:x`x_kgdecifjlh[p hyZMUZO[K y w yAVxt Myi5CHEiyK ǘ * 5y7yz TP "/ɥEǨ _K\5X Ry @ y ,y i j  =yXHHW\a yVyyyǝ>޸IW=ZcQ SdJb -SeXhqAV=YWYK!y w ,|ӻ8޼ X<W yFIo\Yt  EWMhhHWJPOZyBb,XY&[yy"  y_yEaTHV 09VVk0 5 [W% <W&YV^yyyRXW ? H Yy U[yKysV!yս7"4ǹzP' B FUNT y   [= qii3[KTyy  h ifhr"<$IIZ NhKބܷF*EHjXu^HY$V $Ԫy Jo y WXN[fZyڣ i UEy Q}V )Z4 ,,ݠґyy 4n [ahYiMW5 UAvW6[2үyXA m X[UhW~M  ZFhJ-yx,V *Xyimi q[Y-MYAKKWhX2HSPI ƾyV7yն}R\ZR >#$Y >W^KB?$|=ccccccc  e^5^3^2^4__dddddddedddddddddedpzpupwpqp}psprp{ptpypxpvp|bfedcAAAvAzAAAyAxA|A~A}AuAtAwA{|||||Ѵ+yEH r yYs Lhtylyϵy ɚݥZ[ >8q_fu`YsWѝoͨORYuWs Z\yy\X[ypf  zXC; )  hTMFyy7p |iWZy\JYS*ʡʃ˓KZ\0\}t yhKyKp AȲΥyyuyXX#m+mkmmkkgnkkekokflk kmSonlRo%m.msnbl(oroPoooonOo1kn}mmmyoo+momk{pkTlk=neomoll?oonl+o-lnmlSnXlfk#mokkpmk[lnZlqn\kjkllNmknQkimCk k+lo omkoMlellln7okKonp moOmklcn:oo8pkplom;mMl6nlnAlQokk)mmoLlmllm#kpknankllkkEkmoKonNo0lkooYm1okcmrlTlo.m4o(kXnmRm}l<oakmm`l'oyolmlk^ok;ono!oonnglllnmumoo<l!n8knnzp nmnknnomln4ninllo9lmoknlPommk4noqlrooSk6k(k<l|nno2mHlo#n'lmollKoxkkJnmouml[omkoilonkpk oommmln lnmFlCmksml\lnykMlplomonoNm^oFmDln`k9kn#nklln=nl2nm{k?mmnk~n@o5nnvnCkllmkxmkno\nnlmknl#kmmoll m2oomoo;lol~onltkm'nqook8lIom m|omlmomQmPlnkpl lJkonMo/knnSoUmn)onVn,m(p moombmmoBnmoEl8loknonmnnn~l,n/kklmfkpnkknlonoll&pmll_k!mlmknYn]ocomnpm mwolln3kOo>meokollp ok]knmml-n[nolnon9lnlkNol"oko)nkalno7nmklEmAllUnpo:lknn|po~mln%kmm%mpnnklXnlk\kklGkoolkWm*knnkonkm?knmnBklFno`plnminhoZkVlolBmakmdmkHnlmmlmkDnto l nnnomkRlxmm k pnnoookkCmmnlnGlnomnodkovno?onllnmkko=mko[o$plzm[lkomEmomXkGnonn-monokmnn&lowookkLolllol k}lllln(mlmllknDmnomlokmooklno|kAk_ml7nofkok$mm\m7oknlnnmm:l.kho"o@kkk0n"nIlnlo4oCkln{knknonnm&mGoHmomIoQlMom9mUlnnn2nmnlvon+mKomkkkSml>pmlykn mnoXmmmo}lkmTkktljmkwmqmkkn klklnnlZonnpkrkn?kvonl3p lkmk-mnkplldmoolobml l;m<oTmkm0m>mzoAlmlnoplo o^kkoknnkmvlaliknmknFm!lslnnonKomhonLllnEmolllwnokkknnnno3olol1lonTnl:mkmxlmokmkYpnlWmlnolno'klkokmNooImOm kZplknkzkloomnk2kyoolmm~mnlYn5p nm3nUonolo6lgllo]nl4lnRl=kmknlmnsn_n1mnfokmmnknplosnloklnon0mlnHlojnno*pkkn ok>l$k3olnkQkkkIkknmm8k7n k:n^lnxnkqollnklkkBomonn<mkPlklmnpknk.kkmk&mkmkokkmnmmVkmk%lDk|nkkFno&p!oznmJmgoknml{l`nloJoohom_om]ll)klopmlklk'nmWlmlnk/n!knomno_onwk,nnl%mpmondmklumnm,llnPoRlomnjkuk5oVlonnkm5knl@m kUk"kmkdnJmknmmmoomln;lo,onl9kmm$llAn$klmmLok1kkl0lmkolonn.mtklOol/l nnm/lnoWkmnmBom=mlhmoGogl]oDkpokmnWotlnlko pllmlm m6kpklonnun ol}mYlVo{okoomkl*m-olm@mlplkloll^lHlomolmkbmokmooemoommjn>ncol5m"k*mnkok`kmonm)n*o lLk@lmnrmmlommZmcmnnlbmnklon6o DPDTDLDNDSDMDRDKDQDIDJDO()x t nքkňuJVHyHNnZy   wNJ/LLɮOyLJX̥݊D\O xy`#ĠFjTPMRyJm  NWR/ y] Ry4HH QV/yy ͘yQYyx[Sc3=O-IG:E.?AL/,;HK8P9561D7M+B*2F4<0Q>CJN@B BBBBBBBBBBBBB BB BB BBBB BBBBBBrstqp__________GKHJIddddddddddddddddddddddd y A\y Y^0ȬTU q\YyfrPU YyNX<iVyGEy7777F,.y%[UZ2Nh l9:897qqqqrqqr rr rrrqrrqrqqr r qqqrr qqrqr_f_c_h_e_d_g_b|||{|{|||{||{yy sy'?t`  * P  #ǎY]TSǏiiiKWZ.- 9yOPRyL{y/}W{, ;y UQUc|c~cc{cccczcc}cccyccccccccccccc yZ  UQ yȄiRhlGHKZ@s ~y .Tz\Yi[F|WE|JQyGZy twyzuxrsv(J+hxABKyKi Vy~ P b q )NM\9Z EFR 8h[ITMgW= ~g2 K$cČmniiVYQ !uyizy y FyX:MnZUTM ByJ6,S]yy  './TM[ ,M\ K \[HԢYvT~yJAy E *"X-n yaa[ysy ] . j 3=ыZ6eR.TN1UIYVp V=ݻyyyy&IFJfryyY mw  xZ Z;\?OSyoKC2yy 124`ubY4,Nj474U4Hub\4mNg4e4C4lub^ba4)BAYoyUXKZZMCy Jf IyS I K89y;@  w hZjۣC1R | qyY!YyPD 4hB V  Tq9hоѢ I  J } +>hyWIyd  Zy'hh\  IZEڦ[^\@V q  mW tetftdtcݮ .yFJԁҡԃҢPQ _H-yyq UUUUUw{wzw|43yاVJ]V} Tyއl  * tPGFyty0 pUq%غV i Z#RBZ$:Q\UpQx\ hhi1{SyS5OjL>ٝg`Oж Y6y yZPIV< yyNԫр]~]w]]]]"[] ^Ý*ۛ[Iy u i VRY IZh  *yyyp MyH yyyyi` h7\8L^@}) @Xfyȶ݂џՅOSLJFzؼ  JySK8 K N ʵUS$VsVؙ yUUWW / 4(xymZWESYc Y֚Ĝ~qX k   /iiyEWyXG; \*y@.yZWKW X KyKo]RkWyyyQXW yO_R7yׇ PWWZUWfX [yy[ QHAqhuϛ xTK+DzY[c~ D׉VvUO1 fQRH#ĞU \ f   ͈dʚƛžӇ)y=WY}IHXSXz   ZԋM]T_tŷr  y  ycTFIEOOy V#^V\y3|~}r(r&r#r)r+r%r$r'r*AAAAAAAAAAAA+PUyR, ilh vWyy%"'(y[ D = IyCR[x[UHBaB_B`BbzxwyeLeNeM___SRWTYVXUtU55555555qq"q!q qqqqq#qqq$qeihopfjmlnkg,/-0+. Lyyy yщ;Ħybʅ WO"RO$PoS E['yySFUKhIX]XZyyG0QOD\Ȕ$]ȕ5yLM LM~yywxXcbcMbcbbbcbc#bbbcDbcAc1c0cbbbbbbbbbbbbbbccFc!bcbbbbc>bc?bbbbcbbcKc=cOcLccPbbbc,bcbbbc)c"bbccc5c*ccbbbbc7bcNcRbbbbbcBcQbc<bbc bbccEbccc4bcWbbbcTbc-c cbc2bbbbcVbbbbbc:c%cGbbc8bcbc'bcJbbc;bc/bbbbbcIccbbbc.bbcc(bbc@bcHc cCbbbcbbbbcbc c&c$bbbcbbbbbc9cYcc3bccXcSbbbc6bbcUbbcc bc+bbbbbbc wwvvvvvvww w^vw'wCvvw"wTwKvvw0vvvvvw?vw\wRvw$vvvw3vwevwvvvvwlvw_w-wvvvwYwGwvvvw)vvwww4wQw<vvvw.wIww`vvw=vvvw6vvvwvwvvw2wwwvvvw9wvvwDwvvww w7vvvwHw1w@wOw,vvvvvvvwbwvvvvwEvvvvwAvw w&vvvwSvwvwJvvvwvvwUvvvvwwvwMwPwNwvwZwivvw5w[vwavwvw wVvvvvwvvvw/vvvw+wBvw]vwgwkvvwXvw;w wwFwhw>vwjwcwLw wdw%w*w8w#vvw:vw(wWww!wfvvi].}`Et;>Xc9~Bp\3H/TM7u{vC[R1:bFgyV=aloend0?f5-sA|I@K8DP4_JG2wkSLmUzrNQOxYh<Z^Wqj6qq # "$' % &(  !UUeUUTTUFTUU$UXUUU;UIUUfUUTUTUUuUtUSTTUAUU U'TTUU7U/TTUUYUUbTU[U"TU?U5UUUTTUUUGTTUU}UUUNUUBUTUoTURU<U+TUmUcUU UUU`UTUU4UUUTUU-TUCTUwU UpU\UUU~TUTU]TUZUsUTTTUTUWUTUdUU(TTUUTUUhUUU,UU#U2U U{UiUTTUyTUETUkTUTU)U|TUrUU%UUU UU^UPU6TTUqU.TUQUlTTUU8UUaUTTTUVU0U3U1UU_U=UKUjUgUU>UUDTTTTU9UzUUTUvTUOUUUTTUxU U&UU@TUHUMTUnU:TUTTU*UJU!UUL HVX L L Z\ X\hIi$h s L 9[j/ ˦İqG Ԉ GN4YFT@T"Tyyyky{  B K C Nyؐ@gF9KV&a K m ^Z^N \\J5vHehy 8\y <Zyt2ۇX٢X g["Xyy yY(Mkyyȁɽܑri@X?OFyi6T seyQ +\ [qYy^ј؍*6K #9yy ?] hWʋ? Zy\y9y ? Mӑ'XӒ(i+H<yVj ͹v8qy\J[H\VS y <Ɗ&BMJ|uW֦C]R /' 1>b\ЛK=0yTypK!U{ WOK R WQ ?y0E1ܸ  ?o ɓc $g7Tލc!V  @ yyh_i}htE%KZZZOyyEZUyh/}[ch8hiUhHii(h|hdi{hThh{hhhWaNR" 8kyhzVU Ű f V7r WYe\N!BݼPK?F[F(^+Ʃٽvy[ ih1Wu=yVyRU{PNy]VM1"hi< nVh}hDKh6WJX [ |Dٯyٱy۽ٲ ٳXrMDWW^ YybcST l |  =L Z 8Z   yqܱ \uZ|hWP'TXy\Y"RIK$RJpyY57Z$Yڙ e V9VZ\y]\y^$i^yn oE'/ Vyy* gV <EyX?y .zy9IOuOrOtOvOwOsOqvuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuxyCCCCCCCCCCCCCCCCCCCCCCCCCCCC8 888 8 88888888 888 5_fffffffffffffffffffffffsusvs{sysxswssstsz777777!      q|qyq{qzsKsFsBs?sHsIs>sGs@sDsCsLsEsAsJsMf^_eZab\]`dc[OXdD=M;ZP^\BUCQLYI`NSEAGFaH_WR@Kb][T?>JVc<31596.-/482:0,7+*c{ccxc|czc}cvcccwcccc~cyY_][WX^\ZUUUUUUUdqdodpwywxwtwswuwvww).20(-+/1*,D=D@DCD?DADBD>XxX{XzXywwwwwwwƒ€‡‚„†…($&%#"'DDDDgbg\gcg]g`g^g_gagggLJIHK@G@I@K@F@:@>@L@8@H@R@C@E@V@2@5@S@Y@9@D@T@M@4@U@J@?@X@[@<@W@@@P@N@6@Q@B@1@;@.@/@3@7@\@=@0@Z@O@AvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvcTPG|Ҧ]q y 0 k  LYM\`ZSP   !O]= QbO`Xy KX\izS"\~ _tttts|~{}B%B$B&B' d4(qyyhidRWKWL6QyλϰE˥V#Zty۶ayw_LNН}]TwKYY yƿV 2yYY̩Φ؟̫e cS: hU.vq3MBy Ϩ~ ? vP"  SiҀ҂ yyh + f tyhtKZ H[yVty/ZVM ŲhQr l  : WˈyyYZi[XyU ͤD - y]&VKZKACX ֧8@֍û [Y[Z R:=  HJLТSTX`LM? $Z-  n oك/σ"]_[\\\]^L[[[^\][\\H}YR yH hhyQ9U(p L y 5:ķUSyyyLO3YK7yZ }G gJ-MySgggggggg\Vyy @OX6Q OLOZ,yDţF4D ťۆܭ$Iȡ ( vY~9iXW uVyyM!ySKUkH{GcybdJ J XK,KvGR δ7z 2^#6إܦb{. JK[ryOJIkZy \ZCXFRQY|\LX LyZkQ3\r\Lf[yyy  GYQ[X{ISy[GVs xyfdž]|Y_ WLkM\ G G .y\#URKR[ K. _ `iUV$KV ZĐ<y4Q y !y  x  yt2t3t0t4t1pp p$p%p#p"pp!p&FGKNMEIJCLD@AOHBCF?EHA<=GD>@BBQBPBRLKHMCGDFENJIeeeeeeee     a a(aa3a$a%a*a,aa6a.a8a-aa&aa/aa7a4a+a0aa"aaa9a'a!aa)a#aa2a1a54444444444444444444444444444444444444444444444444444yhS DqqyyYZKy  DYOdYe1ݹPԞdzOh̛HyWyO.Z5ZIyykV~y Ryz|qry) LW*MmY\ ILi V T$T%Oy JUS>yWEb (egYyQZ\=VYZݲ Q| qSy ?yQjF$T7 \y[@yYH myY%ʐ'YUtyyhNF~NFySNIWw  =  X S MVz\YyЏ7ܘig WF L Gޱ޲d   + zV֭1S)4V>  0/* D /y H E8qyymWRQ^@VnY dyʹ cy[yW yyZ myyyh=5Y =W\S]UJy9U C WbRȯ:-  1WygMҙ ނܶ&Sy؛ . ώYWH ;yX3Nh mjF{ y-S.UiUWM# ۘ\bWY[yPhW3X.yyWy Y4ZXh]i|y W M3 ԭ܂EhOhiUcҐۗLyy BZvyqZyW[aVNIM lKAM\5 Y$Nm4^B؂Siyy% &W^  [ aWLULVK(uyuJyy yy w1~wy y r@yW3ҋg Y^S Wvиzy[    yN y \yyXEyaa ݝVզb[7&yId,=gyXV Xyh7@[?R  y [ҵ~,͏f EYyWhyyGe bԒӠǕ  yy΁~KL9 w&W&P=JG9 fgϓiX,հ"Tyi]EJ.%uW{m  *  D V [*8[+iUGHV0yJU n yy\ ^PVwN@GNzGr Zfy G 0P:k UQ ydt5t6BTBS__________ddPQ44gg~~gfe0eAe.e+e5e?e1e6e4e9e,e;e*e/e>e<e=e:e2e7e)e@e8e-e3eB,+*-4p3p-p0p/p5p2p4p6p1p.; yZky wR  .[4[oY2y[Ypy y$~~~ T yyfX'\yKFIy G}PI ]X[LW\y\Yy x:ĚH "W U' tyVy LJRXVhZxyyZ{Ua>y_ h UWfF'^$UW_X%\v VZQZW#ZW .WVh}s}q}rqpy W% NOO R5 2 >yyiIV P\\& /\'  f\#Pl%yyu!JKL f ghVAY ɤمF0 EJ*yhYyN.y7ON][V'YM^uv NhKiki\hi=  VZTE QKb\Ysyjւy4]ɨ3Z^yw g h VyyyyęþyyyVBIX+, B\B^B]{eJeEeDeCeKeIeHeFeGppppDppq pdqpWpnqpOpwp_pppKpppppNppppPp?pppp|pp}pcpopVpprpp:pqpZppappUpppppppp]pppppipppCqppqpppppp=pppyp\pAppqppqppppppppppppqpJpppbpppYpFppppq qpqp{pRpIqppppp8ppqpppsq pppppvp@ppLppppgppupBqpppqppkpfpMppphppp~ppqppxppmp^pppXpTpGpppppqpHppqpSppppq pqpjp`pp7pzp<q pp>ppEp[pppptpppp9ppppqpppplpqppQppep;_a[]db`\c^Z5 55555 55 55455 5 555+y ,  y \yhi7gyKcƻZNP2yyTUrW  eyhKB?$#MWy  Ep yh yPIryU:H \;Y[؋ iH8GWDV-X NFաh VyZ n>OZZ#O[ ylQzQ{ M$R4yy /hiSD y EhWyy~V_^u˶ Mdϴ@VTyV`W[Z.yy[njyτ Wpnz{mvx}|oluyt~swrqkXzP 3 a %op[ .  yyzF{ʈĻ.yk y.XZJZR\WVh8U~oXy'\,5yXuH^G!iSWDY ]?Y[Y[\^ ^E\&hVyyKwDy  zV TZn ò9UPʩô=y ? E|L* cy/MTPy * G[t%eeeeeeeet5a5b5`^\N G.h ! S  yPK7 !NjX *ZET"ZZZ[[ ZZ[ZZ[[[ Z[[ ZZZ[ ZZZ[[Z[Z[[ ZZ[ZYLX. R  hUT\tyX p ZIT  INZX@$   VDKUN+hKlU\1\xy {[YGG LyTEs7 [yXM A.A0A/|X|Y|Wccccccy^GKXX 8WZãZzXyY3VT }TZ%\Fy6N\yZx֊X0́Ѻ12yacP. a b@Aā z JBƄdW M}] L Zy?X=h Q)yuyXyNJ ^vu19 b D \ V YVKL V/yyEdhithyhoiUGѸ̬1V{ޭ Yy eee^/^1^-^.^0U h  +R.GK-|KoIbW׍ͩJ Zy֔,y z yZy|?~TPmcJZY.b[ejj{{{@@@@@@@@A@@@@@@A@_7_8_6@@@@@@|||cBcCcccccccccccccccccccccccqqqqqqqqqqqqqqqqqqqqtAAAAAAAAAAAAeNeFeHeDeKeCeMeJeEeGeLeOeI|||||||||||||||||ccccQORPffffffffffffffffffff]]]]]]]]]]]]]]^^^^^^^^a`b^^~G\[]h]R] [m]][\?][[k^\a^:\ x ? d \jD ۻ  ^y  VĈyP W 2 yiPypys pePD67yV mL(yG{ ^Q}y`] O L 1X qK7E_H7 ^bWdyh9 2We  2TTM_^ՊڼZ/yy@y#"iݨX u3pmJS %JU ayy Z8#alYnKRPNoUo5yyy yy ; F ޘ7p˞yHyhr8 ş$`Uбly[<{Ӱ Vy ֢]pK Y1 k y.[BG^7Q`7ԆL\[\\MP-$b  #! $  %')(" & hh{WJ7^^^^^^^^^^sqvumprotn^^^^^^^^^rytxzwuvspOpHpMpKpIpNpPpLpJybcdQ yKGV Py0YyKZ3xݷ~Ϻ g ɝݙW4 Xy jWqz\[y,W !yZ 3 kթ:իyyYجQ)xy@q7vwyXZ՛2X tEUOthWXXZyHL  ;S֕WdVzZ k \3[y\X yIZь KEAAAAAAAAAAAA A A A A AAy 1 Ty ixh\jyY=R ( % y%ZQy50 U+ޕ҇yeUCUDyiVrAc@+/1.*0,-^:^9^7^6^8 AAAAAAAAAAAAAqqqqqqqqqqqqemhikjglonfyy * yFKScKW Jy( yX?Q  _y z[5  IXP#~ː΋yǗΌ 9  gI YXmS^Ooy gV WIK _VG GSVyi;YyYʖɘhZ)yXX K y x "'L[  yyKХ7̝m yX* tҊXy;ŞVWn Qh[ ybWt NDKh0^QlN[#T8`y.ʒW4;J\ #  =Zy ճOŐWA?I>%HS*ێ]ш: `y ny yAūuQA Wy{B7yz mXO  'R yǧKXyyLM-Tq  $ V_yZ&d q  X& PyX1Ǽ;yV)r>TgU l] y/b   ;FX UJFryVnyGyyNy WS]a* )X!zU ~UހɇT1y\!\DEFRD\y MXVQ%WVi V Vy  -z$T \Ah c]]\m[[[[^..CF8[5W:#f# LNJ]  % Y>Y@yg_a___`dcebqqAAAAAAAAAAAAAAAA|cccccssssssssssssssssssssssssYa`\[^]_Zg}}gicfklenjmohd_________ WQW u  Nzy+Wxy)GYy^EZhg X>^bMO{MqjZ` (yqXOPD4oW777D+D,D*   b{bzbybxg:g/g.g1g0g9g-g8g7g;g<g6g5g3g+g*g,g'g)g2g4g(s^s]TTTT$&%7777777777JKdTdVdRdPdOdUdQdNdSXnXmvdv]vbvZvfvWv_v[v^vavVvUvTvev`v\vXvYvcwwwwwwwwwwwwfqhnomlgkpijDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD  ggggggggG?BACEF@D>???????vbv^v_vav]v`bbbbbbbbbbPOK҄֫lPPc^ 0CD 4FD4Q4LdVq$-'ǵxGyy;yydLdMJc   Sy 7yycyYWKBy@ ,U%  Bޥ;-ǩy@W:yyYmTSSwV:L NKqWHX9޶:\FUYFW4TyV} j yy  7' yu1\KXMy Hh: ;J" $ T >V V @ڌmѷ yY?yy| ; y ANUyH+hybɎ7ySZ9 qSy[rQ 4 ΐڨ\YhS4H!ayUn + RW/M9XYFSJQWyWNb4dBhK]2]mٕQ+ T *܊V  \ FG֤y7֥KhyS?K yU !R@T!yVy [\byFK[_G@J;X{yymfZ/y (y WN, BW0Qyyy[y i~iJU^y n yKZZy  Q˨у Y_ʥ^՗yؖ[ʳͯMBW~ .yQnyW VNxXHXI xeDž\Ќ.ØŒҿӆyy?gٌΙhyWoQ2X]O <GGFa IUp˫q{My oWα[\[V\-lj R4yyҜ|^)jjjj@a@`{{{{{{{cccccdd]@]B]?]A yW.E ؉[yLQyVy̴jSе9ȒǬy, yY XyV1Y\[ 0V2yZLVy.\^Z%\y`]_ba\^DaDdDbDcggggggggg1ggvvv vwcde               DeDhDgDfd??QcWC`[y)U 8y OSIy \JZOFy^OJ=]"yeeeeee????????????]4]9]5]8]6]7x]x^RQUSTssuuuuuuuuuuyxzvw^\^X^Z^Y^[B!B"B#gifhje  jjjjjjddd4$44&4'44!44"444#4 4%4ggggg~~~~.301/2___t_tbtat^t`@@@@@@@@@@@@@@BqBrBnBlBkBoBmBpeeeeers5e5d5f5c5gqtqvqwqrquqxqsz|{b3b'b*b2b/b%b+b0b5b7b$b6b&b-b,b1b(b.b)b4 ~  dddddddd{{{{c0c1c/OzOxOyuuuuuuuuuuuuCCCCCChgfie\\dddddddddddxxxxxxŠ‹ffffffffffgfffffffffffZZZZZZZZZZZZZZ]]7777sNwzyxv{^^p$p#p"iiii! #$"  ghij@@@@@@@|/|.|-cdcecfcc?@;>AB<=exeveuetew          ^%^'^&^#^"^$____^^__{{{{{{{{{{c c cc cccccc c cccccccccccccccccXGXHXKXJXLXIdddddddddddddd@]wwwwwwwwwpgpepkpiphpfpj876DUDWDVDXUTS8:9;<=76A-|F|S|U|B|R|E|J|N|H|C|P|T|I|O|M|Q|D|V|G|K|Lggyccc`h_TYckWajZfbUV[\gd^e]iX`^a_KIY4ȹK7  z aְ{8ӥ KV%EY[VTohi#hWy f yyWQԤ; }OP؏* lIPP+yy\{I4 y u ? X(C fR[v6 yU 0Qc2ZDKyyy f  X.eFhy @UHUu[U1\ yyyy{DW|֯E0$dZyM  qqqqqqqqqy  zy(qy4y4bMOYOeMXy d oy juXY-.Im6vNN\(PyX oyU\yF|E{׬ӷ̅ \D k  qѵ\E\[cydyIVHX]^yihey U# !"&$'%(Q HbdeyyZ[O\oWVlqO6LX\[ a  D  Qh7iA &W>KSIU\# iK1\p U o p ! Z а1yٞkyjy-Y>Tj 5Zb W 6 yyٍư` /P&?yIYDF W ( Ky L N (Ƿy7G uyyN;[pU3#yXydddÅA bViʴyT :y[YJy+E=UW s | 9WMKLX8   S) J  hiLS\V|Yy /.G]Z yyijy(٧V I \WnvNTy ŻơѦŔe=n\y y #y ZX .IT yV]yPT GEyR} ƙ5Sy >|!] uyyK."7ձ] y[hhh?jV y QWyVNPyHTa o VWty Jy y  F[:/0!~Jk /  Nyۂ޳Xo{XZE+K0VYGV KyS+ yȺyȻ `yfyyy\3Ұٚ %ԚTZ)IyIyɞɟ y 9 MyXXWYX K*ԶõԷ)y+WG5Y@H  IW yYMƔ۟qKTW L űlyYXkkWآ~"5أ MKWyEyy X9؁V7rws @ VgK ӚWIqy]ˢy܌ۙNΧ '^_ .QGQ y˻JMYRMZEy yy?XlhhUG^ yky݆ܤ[̦i.ifVFY) l|X~zH Иxa ,ɷYyN H 6yy H Y1|2\ dW yLyZZYVXYyKƋŪܐ]yi0W  ] WЁ0ǚZ yy hs1^[n\·t3VY \B[3,5WqHKxKy X y XNygA%QN hK..V-V ٭N/0J6,K yljyܲky\\/8͸qY Ь*W,Kƴ yԐƵy;ɢiy c mEc՝]^5T-SJYOWy[Voh7W. p^ yTYWc V-^|L!VqY\T nyG y wyWO~ i;TGyyXZgyV NZ ? =^y@=FRhyV 7ƍL&v y DbL4c4IDbM4W414qdb {G |vY\ZyXU U   a]]]\ C sFPHoQz{Y % fWyy .  *  .78:9   UCpCoCiCnCkCjCmCl~}|fsfuftSzy!yy$Sy # k SyWyى B@D4@D 4/49d hVyKEkxWyr*yjlmJiLiVVy ÈVNTL i[Kyc R >VyPpFM'HDyiyy~֣_z  yZ & D!yyN[ yT/ZA׼̾W 9N 7޻z$qX "#\lyyy[D V ^wqyp @ gA֬y yWU Ne4fNi4P4*dbLnXXqy[Y(y  \ Y<[cdhqyƀ(y 8yXyyP[LӼYC =yTh J^ \>U v F O   Yw Yx PkP<yy$ yyy bGbZ"NYNZZ% TP  tWe,kirh UH;bH3p#ry$tVW۴yy 2yZ n 6yS { %WOW֪y W #Z\ ?].&' yj  m kɛy ũςSyVy p   Z PES8yL + yyJEM5y q\dddddddddddddd____________cVe^dkpm\SUTq]X`_RYhZiojnWbg[alf44gg~~~~~~ғ8ōګҔ o[yH([JRW yq^BXjegUV6S,oFƥղ2hWZ\ b ,/y0Ӎ GMV8?ِ  k *X_ 'yHWN [iVY٫0 M[X#p ZGX qyyNdY7Y!yK l[CXSUՉW؇`yyKlGݞMԝ*TVaVtvԺšN| > h 15sϤAy ^yyV vyy ] iTVFB;ayy Vy]V V XYy`g hhXY.\   EZǃNV[6< 9ǜ<޷I7۩˕ O?LUzYdVVKhqYVZZsy S   P TVVy+ayyy[^[     u\2 DyFGyyyN[ U   VJNZh0d% y^HpǞZH /WyL 3 y S[&QFIVU [H ^yM,@s #kcG~(oeU ` WICZ5S6wYZe tZ  QG@HyKyOs W 1[~y[h 3 xVThhi-V-ѹsЭXyЮZ÷EQQRM G$Y7yF )y [yL/CL WV X [yyEiv SBYWYXyAb`=/ YiV+cyy WR{Ɉ|y W[yeDQQ>9yQ@YyWg}pEyC]nav%x8IO>Nm:qB|5xVQ+2ZSjMef y3 Y P\0#7RtF_~w(o@dUviHlX !w~r{D 1J*[<'{),}bcAK/T 6=.;LG^9szuz&?|4"k`-$hdhpuxbtgk{ywlj|em}o~szirqfvcnff3f fffeef=ff~ff"f5ffOffffeff>fwefiff feffQeef4fHeffeffEffJfffZfTff\ff eeef|fSf-fffff/fWfNffYeeff9efffeefff[ff%efff2fffeeff`ffef_ffffVffUeffreefXefffbeefffff0ff#feffCfffgffGfeffffeffeffLfKfjfMff:fffeffff'f$f,ef!flffefefef+f f;fcf6fhffefpffyfaf(f}fffefBfDfff7ffueeeefmf)efff*f]efeffxff<fff^fFf&ffRf fsf.effof{fIffftfPfqfzffeffvfkf f@ffeff1fAffffeffefffffdf?ef8ffffnffersU_Gb)JQFN`Z4  .kL1z }{ =RI8xpB<v$ ch0?wYf3a\X@Xtj^OyHE:;C[P"m+/6Kd~']AV*DiS%5!-Y&#,>(29gMWuTo|7ln qe|z}H|||Q|`|9||c}0||}j|@||L||8}L||}#}@|||H||a}<|Z}B||}U}O}}W||||||}N}|r|F|}}}R}G|}T|||})||||||||}V|*}||N|}"|=|#||||}]}d|}\|x|1|)}Q|}P||| ||}S|||d}_|||}|m|}|-} |||V}8|j|}e|}>|b||\|U|.|||W|||}D}C}k}E|p}+|^|J|||<|6|&}} }|} }m|(||}c|2|}|},}`}$}g|[|K|| |u|}^}||| |D|}7}:|f|}%||||||}n}|||]}}X||/||S||}.|4|n}[}=}|O}M|| }||}p|}A|X||}J| |||||+|}l} }2||%||l}!}6|G||T|||P|w||||!|t}b}1|}'|v}}}o|y|g|}I}h||'||||~}|| |_} |R|}-|||}|,|}}f|}||}||||"}&|k|?|3}?|B|}/|}||e|0}Y|||i}F}Z|:|$||>||}3}i}}*}4||}|} |A|s}K}||}a||o|}|}9|E|M||C||{|q|7||5|}|Y|||;|}(||I||}5};||hApADAjAWAbAMA1ASA@A9AhA2ARA\APALAEAdAZANAfA]AVA4A3A;A5ATArAQAJAXA[AHAGABAlAkAoA`AiA<ACAgAYA8AFA^AnAeAsA7AqA:AOAKAaA=AUA>A6AmA?AcAAAIA_|\|]||||||j|||||e||||{||b||s||x|l|||t|~|c|^||v|a||h|||p|f|n|_|z||i|`|g|m||||r|k|d||Z|o|q||}||[|u||y|||w|ccctH#iLR'`v_Tm:H]uP*YhX(G@NBn \p-2Iz`kK"1MdcQ&sX9Q4=c6J0jFGPWqaaV<g3J? {5ebmU_L+Ako|wW geOMx$E8VIh,OiK;U~ dno\TRfS^br).> N ZyY[[CD%/l7]}!lSjZ^fSI#?*DX7O8OQ / `p.khwZXy WXwTIyyDy\$Z\  eEHZY/ װͅvy wK>)ӳhuyQIVXfL:܇bL dW\1bX$ X k yySjGNWWP&W>yK >y  v RUqyQH]yyEWr҅ IDZXXyN[   K-WI\XX  `Kyyb1ELIQ:VaMrǺ)hMhiX ,yo y y[yBKX{Uyh>@VPU tyPX K=RWh[y IqZy WFyyKyyH9'yyq7:y 7hX"7W9Q϶R WvC hU ry  y\Yyy\d\e\fN?__s_r_u_j_t_k_o_n_q_l_p_m_id cd cddccdd ddcddd dcddd dduwrpzvqys{xtAAAAAAAAAAAAAAAAAAAr||||||||||||||||||| S PK[zRyOѶUycEy\yF *U:5ii)V>Pk yd?*\  [yUEDo[l[Ex0x.x/x14IYNm18yhVUUpyEyyy KV y yT = YK72VWynyX-YY0XOZˍҧ V C w\ Vب[U]  #y  !uv."fjfmfffifnfhfgfkfl% (#&"'$!TTTTTTTTTTvvv|vvnvsvvyvlvtvzvvvhvkvgvmvwvvv}vovxvpvjvvqv~vrvuv{vi !D-D/D.D1D0D277777777g=777slsksisfscsbsms`sdsesjshs_sasg)(,'+-.*MLNd[d\dgd^dhdddedadkdfd]d`djd_dbdZdcdiXeXdXiXlXbXcXjXhXfXkXgwwwwwwwwwwr{}|wvtzyxsuDDq/68+.;*,4793)01-:25gg:;=9<??????vVvYv[v\vXvZvWbbbbbbbbbb   yM>M)WVhX7UA [9@  = hȼ֐\KT OtϗWFopO#Fq%OX[>TIIy Kyy.F^]^d^a^^^c^_^b^`@@@{{^^c2c3opqddd]]]]]]]kk k kkW@8 D D BY ^,҉\6    V\w\q<WfiW[`1d[dydwd{dzdld|djdadZdsdVdmdidfd^drdqdTd`dndpd_d\dcdhdddSd~dXdbdgd]dkdYdudedtdodxd}dUdvdWY  nS<yVDbO4X4;~s݉@SI>7y  % z   KyLPOS wfyKyVupͷ67OTyKOUGsX1L JYdSHy%   HyKy˼Tӎ *G=y hib >y[BWe>?A@B%&('$)e ee e e_____4444444444444444444444444444t$t+t%t!tt/tt.t-t,t*tt t)tt#t&ttt"t(t'ttBKBIBMBLBNBJBOnZpZqyyXcU  >[Xy?yyHVyyԄyyhN-Wy.zyڀ Z.Ny\P-yy/R'0y M >0h4 YVϝ-mt ]]]i' yL\Vв:X+|qsV3YyZM  XaJ)V"ZOI y  y^yھӐ;yhhhRyyI^I_I`ȿe~~~~~~~~~~~~~~~~~~~________r}rrDr6qrrBr7rGrrqrrTrqrqqs"qrJrsrr_rqrrArrs r[s4r`r rrrrys=srrrrrIrrrs)r@rsqsrVsrbs$qsrrirrs2srmrsqr9rrrrrrhrs:rrs1rrr%r;rqr rrrrrvrus rrrssrr(rrrOr<sr"rXqsqrros9rs;rrkrKrs5rqrrsrrUrs-rPrrrrarrHrrRrrxqrrrrs7r rrr5rgs'rr&qrsr4rr!rr.rr0rrzrr-rrs,qrs/rs<qs8rs*rrNqrrrr]rs0sr rrs&rs rFrrrr)rerqqrEqr,s+s%rr qrr#s6srs.rrdrqs s3rrrrrr>qsr$rcrQrCrsrLrrqrs#rs rs!rsrr{rrrSrqrr2rjrrYsrrsrqrnrrrrrlrrrs r'rrrrfrtr\r=r|rwqqr^rqrrrMsrr rrqqrrr+s(r/srrZr?rrrrrrr8srr*srqrsqrrrrqrsr:rpsrr1rrr3r~rrrrWr~wy{|}xzuuuffffffffffBfBdBjBiBhBcBeBg|}~tYtZt]tVtWt\tXt[ifeklgjheZeYeXeWe[eVeTeU~{|}qeqhqlqkqfqgqiqjvsrtqwpu5Y5W5]5Z5X5^5\5[CCCCCCCCCCCCCbb!b"bbb b#bbbbOkOjOlOoOnOiOmOp77777S >VV O y"Y.άֵ^JMyX  y ?  y jUy Ljy v U\_[JyXf xȐӴ;y y yy\ h yZbbbbfpfrfofqcedf777877u{qqqq=?<>+),*b|bb~b}TTTTvvvv%$#"snsodmdnOYOZOXD3D5D4D6XvXwXu13/02RUOPSQT@ |y Z O&[[(}M ;OI16?h y^yyX`JYZ_ZSyQ -Ř Y 3BBA "')#(!&%$dQdPdRdOdNFE3333g~g}gg|g{~|#"!_____ VTKeqYXX yyZ  3[yI U o}