From 437762b2f652fb494f51a79f28694320722c0379 Mon Sep 17 00:00:00 2001 From: Martin Felis Date: Sun, 1 Dec 2024 21:12:45 +0100 Subject: [PATCH] Add GdUnit4 and ignore animation warning concerning invalid tracks. --- addons/gdUnit4/GdUnitRunner.cfg | 1 + addons/gdUnit4/LICENSE | 21 + addons/gdUnit4/bin/GdUnitBuildTool.gd | 111 ++ addons/gdUnit4/bin/GdUnitCmdTool.gd | 622 +++++++++++ addons/gdUnit4/bin/GdUnitCopyLog.gd | 141 +++ addons/gdUnit4/bin/ProjectScanner.gd | 99 ++ addons/gdUnit4/plugin.cfg | 7 + addons/gdUnit4/plugin.gd | 54 + addons/gdUnit4/runtest.cmd | 25 + addons/gdUnit4/runtest.sh | 15 + addons/gdUnit4/src/Comparator.gd | 12 + addons/gdUnit4/src/Fuzzers.gd | 34 + addons/gdUnit4/src/GdUnitArrayAssert.gd | 160 +++ addons/gdUnit4/src/GdUnitAssert.gd | 41 + addons/gdUnit4/src/GdUnitAwaiter.gd | 69 ++ addons/gdUnit4/src/GdUnitBoolAssert.gd | 41 + addons/gdUnit4/src/GdUnitConstants.gd | 6 + addons/gdUnit4/src/GdUnitDictionaryAssert.gd | 105 ++ addons/gdUnit4/src/GdUnitFailureAssert.gd | 31 + addons/gdUnit4/src/GdUnitFileAssert.gd | 19 + addons/gdUnit4/src/GdUnitFloatAssert.gd | 83 ++ addons/gdUnit4/src/GdUnitFuncAssert.gd | 56 + addons/gdUnit4/src/GdUnitGodotErrorAssert.gd | 46 + addons/gdUnit4/src/GdUnitIntAssert.gd | 87 ++ addons/gdUnit4/src/GdUnitObjectAssert.gd | 49 + addons/gdUnit4/src/GdUnitResultAssert.gd | 45 + addons/gdUnit4/src/GdUnitSceneRunner.gd | 286 +++++ addons/gdUnit4/src/GdUnitSignalAssert.gd | 38 + addons/gdUnit4/src/GdUnitStringAssert.gd | 79 ++ addons/gdUnit4/src/GdUnitTestSuite.gd | 620 +++++++++++ addons/gdUnit4/src/GdUnitTuple.gd | 28 + addons/gdUnit4/src/GdUnitValueExtractor.gd | 9 + addons/gdUnit4/src/GdUnitVectorAssert.gd | 57 + .../src/asserts/CallBackValueProvider.gd | 25 + .../src/asserts/DefaultValueProvider.gd | 13 + .../gdUnit4/src/asserts/GdAssertMessages.gd | 615 +++++++++++ addons/gdUnit4/src/asserts/GdAssertReports.gd | 55 + .../src/asserts/GdUnitArrayAssertImpl.gd | 350 +++++++ .../gdUnit4/src/asserts/GdUnitAssertImpl.gd | 72 ++ .../gdUnit4/src/asserts/GdUnitAssertions.gd | 64 ++ .../src/asserts/GdUnitBoolAssertImpl.gd | 76 ++ .../src/asserts/GdUnitDictionaryAssertImpl.gd | 182 ++++ .../src/asserts/GdUnitFailureAssertImpl.gd | 110 ++ .../src/asserts/GdUnitFileAssertImpl.gd | 95 ++ .../src/asserts/GdUnitFloatAssertImpl.gd | 144 +++ .../src/asserts/GdUnitFuncAssertImpl.gd | 159 +++ .../src/asserts/GdUnitGodotErrorAssertImpl.gd | 106 ++ .../src/asserts/GdUnitIntAssertImpl.gd | 153 +++ .../src/asserts/GdUnitObjectAssertImpl.gd | 109 ++ .../src/asserts/GdUnitResultAssertImpl.gd | 122 +++ .../src/asserts/GdUnitSignalAssertImpl.gd | 110 ++ .../src/asserts/GdUnitStringAssertImpl.gd | 173 +++ .../src/asserts/GdUnitVectorAssertImpl.gd | 172 +++ addons/gdUnit4/src/asserts/ValueProvider.gd | 6 + addons/gdUnit4/src/cmd/CmdArgumentParser.gd | 61 ++ addons/gdUnit4/src/cmd/CmdCommand.gd | 26 + addons/gdUnit4/src/cmd/CmdCommandHandler.gd | 104 ++ addons/gdUnit4/src/cmd/CmdConsole.gd | 145 +++ addons/gdUnit4/src/cmd/CmdOption.gd | 61 ++ addons/gdUnit4/src/cmd/CmdOptions.gd | 31 + addons/gdUnit4/src/core/GdArrayTools.gd | 101 ++ addons/gdUnit4/src/core/GdDiffTool.gd | 155 +++ addons/gdUnit4/src/core/GdFunctionDoubler.gd | 189 ++++ addons/gdUnit4/src/core/GdObjects.gd | 691 ++++++++++++ addons/gdUnit4/src/core/GdUnit4Version.gd | 57 + addons/gdUnit4/src/core/GdUnitClassDoubler.gd | 122 +++ addons/gdUnit4/src/core/GdUnitFileAccess.gd | 211 ++++ .../src/core/GdUnitObjectInteractions.gd | 42 + .../core/GdUnitObjectInteractionsTemplate.gd | 91 ++ addons/gdUnit4/src/core/GdUnitProperty.gd | 72 ++ addons/gdUnit4/src/core/GdUnitResult.gd | 104 ++ addons/gdUnit4/src/core/GdUnitRunner.gd | 169 +++ addons/gdUnit4/src/core/GdUnitRunner.tscn | 10 + addons/gdUnit4/src/core/GdUnitRunnerConfig.gd | 154 +++ .../gdUnit4/src/core/GdUnitSceneRunnerImpl.gd | 486 +++++++++ addons/gdUnit4/src/core/GdUnitScriptType.gd | 16 + addons/gdUnit4/src/core/GdUnitSettings.gd | 378 +++++++ .../gdUnit4/src/core/GdUnitSignalAwaiter.gd | 76 ++ .../gdUnit4/src/core/GdUnitSignalCollector.gd | 115 ++ addons/gdUnit4/src/core/GdUnitSignals.gd | 36 + addons/gdUnit4/src/core/GdUnitSingleton.gd | 53 + .../src/core/GdUnitTestSuiteBuilder.gd | 18 + .../src/core/GdUnitTestSuiteScanner.gd | 368 +++++++ addons/gdUnit4/src/core/GdUnitTools.gd | 115 ++ .../gdUnit4/src/core/GodotVersionFixures.gd | 29 + addons/gdUnit4/src/core/LocalTime.gd | 110 ++ addons/gdUnit4/src/core/_TestCase.gd | 238 +++++ .../gdUnit4/src/core/command/GdUnitCommand.gd | 41 + .../src/core/command/GdUnitCommandHandler.gd | 364 +++++++ .../src/core/command/GdUnitShortcut.gd | 58 + .../src/core/command/GdUnitShortcutAction.gd | 36 + .../core/discovery/GdUnitTestDiscoverGuard.gd | 86 ++ .../core/discovery/GdUnitTestDiscoverer.gd | 25 + addons/gdUnit4/src/core/event/GdUnitEvent.gd | 190 ++++ .../gdUnit4/src/core/event/GdUnitEventInit.gd | 19 + .../gdUnit4/src/core/event/GdUnitEventStop.gd | 6 + .../core/event/GdUnitEventTestDiscoverEnd.gd | 19 + .../event/GdUnitEventTestDiscoverStart.gd | 6 + .../event/GdUnitEventTestDiscoverTestAdded.gd | 17 + .../GdUnitEventTestDiscoverTestRemoved.gd | 9 + .../GdUnitEventTestDiscoverTestSuiteAdded.gd | 16 + .../core/execution/GdUnitExecutionContext.gd | 196 ++++ .../core/execution/GdUnitMemoryObserver.gd | 131 +++ .../execution/GdUnitTestReportCollector.gd | 70 ++ .../core/execution/GdUnitTestSuiteExecutor.gd | 26 + .../stages/GdUnitTestCaseAfterStage.gd | 100 ++ .../stages/GdUnitTestCaseBeforeStage.gd | 29 + .../stages/GdUnitTestCaseExecutionStage.gd | 31 + .../stages/GdUnitTestSuiteAfterStage.gd | 28 + .../stages/GdUnitTestSuiteBeforeStage.gd | 14 + .../stages/GdUnitTestSuiteExecutionStage.gd | 114 ++ .../execution/stages/IGdUnitExecutionStage.gd | 39 + .../GdUnitTestCaseFuzzedExecutionStage.gd | 21 + .../fuzzed/GdUnitTestCaseFuzzedTestStage.gd | 53 + ...UnitTestCaseParameterizedExecutionStage.gd | 22 + .../GdUnitTestCaseParameterizedTestStage.gd | 76 ++ .../GdUnitTestCaseSingleExecutionStage.gd | 22 + .../single/GdUnitTestCaseSingleTestStage.gd | 11 + .../src/core/parse/GdClassDescriptor.gd | 34 + .../src/core/parse/GdDefaultValueDecoder.gd | 255 +++++ .../src/core/parse/GdFunctionArgument.gd | 114 ++ .../src/core/parse/GdFunctionDescriptor.gd | 250 +++++ .../gdUnit4/src/core/parse/GdScriptParser.gd | 807 ++++++++++++++ .../src/core/parse/GdUnitExpressionRunner.gd | 26 + .../parse/GdUnitTestParameterSetResolver.gd | 193 ++++ .../gdUnit4/src/core/report/GdUnitReport.gd | 74 ++ .../GdUnitTestSuiteDefaultTemplate.gd | 36 + .../test_suite/GdUnitTestSuiteTemplate.gd | 142 +++ .../src/core/thread/GdUnitThreadContext.gd | 62 ++ .../src/core/thread/GdUnitThreadManager.gd | 62 ++ .../extractors/GdUnitFuncValueExtractor.gd | 69 ++ addons/gdUnit4/src/fuzzers/FloatFuzzer.gd | 13 + addons/gdUnit4/src/fuzzers/Fuzzer.gd | 39 + addons/gdUnit4/src/fuzzers/IntFuzzer.gd | 32 + addons/gdUnit4/src/fuzzers/StringFuzzer.gd | 64 ++ addons/gdUnit4/src/fuzzers/Vector2Fuzzer.gd | 18 + addons/gdUnit4/src/fuzzers/Vector3Fuzzer.gd | 19 + .../src/matchers/AnyArgumentMatcher.gd | 11 + .../matchers/AnyBuildInTypeArgumentMatcher.gd | 50 + .../src/matchers/AnyClazzArgumentMatcher.gd | 30 + .../src/matchers/ChainedArgumentMatcher.gd | 22 + .../src/matchers/EqualsArgumentMatcher.gd | 22 + .../src/matchers/GdUnitArgumentMatcher.gd | 8 + .../src/matchers/GdUnitArgumentMatchers.gd | 32 + addons/gdUnit4/src/mocking/GdUnitMock.gd | 40 + .../gdUnit4/src/mocking/GdUnitMockBuilder.gd | 167 +++ .../src/mocking/GdUnitMockFunctionDoubler.gd | 85 ++ addons/gdUnit4/src/mocking/GdUnitMockImpl.gd | 140 +++ addons/gdUnit4/src/monitor/ErrorLogEntry.gd | 61 ++ addons/gdUnit4/src/monitor/GdUnitMonitor.gd | 24 + .../src/monitor/GdUnitOrphanNodesMonitor.gd | 27 + .../src/monitor/GodotGdErrorMonitor.gd | 85 ++ addons/gdUnit4/src/mono/GdUnit4CSharpApi.cs | 50 + .../src/mono/GdUnit4CSharpApiLoader.gd | 64 ++ addons/gdUnit4/src/network/GdUnitServer.gd | 41 + addons/gdUnit4/src/network/GdUnitServer.tscn | 10 + .../src/network/GdUnitServerConstants.gd | 6 + addons/gdUnit4/src/network/GdUnitTask.gd | 25 + addons/gdUnit4/src/network/GdUnitTcpClient.gd | 132 +++ addons/gdUnit4/src/network/GdUnitTcpServer.gd | 164 +++ addons/gdUnit4/src/network/rpc/RPC.gd | 24 + .../src/network/rpc/RPCClientConnect.gd | 13 + .../src/network/rpc/RPCClientDisconnect.gd | 13 + .../gdUnit4/src/network/rpc/RPCGdUnitEvent.gd | 18 + .../src/network/rpc/RPCGdUnitTestSuite.gd | 18 + addons/gdUnit4/src/network/rpc/RPCMessage.gd | 18 + .../src/network/rpc/dtos/GdUnitResourceDto.gd | 26 + .../src/network/rpc/dtos/GdUnitTestCaseDto.gd | 33 + .../network/rpc/dtos/GdUnitTestSuiteDto.gd | 42 + .../gdUnit4/src/report/GdUnitByPathReport.gd | 49 + .../gdUnit4/src/report/GdUnitHtmlPatterns.gd | 94 ++ addons/gdUnit4/src/report/GdUnitHtmlReport.gd | 95 ++ .../gdUnit4/src/report/GdUnitReportSummary.gd | 143 +++ .../src/report/GdUnitTestCaseReport.gd | 58 + .../src/report/GdUnitTestSuiteReport.gd | 96 ++ addons/gdUnit4/src/report/JUnitXmlReport.gd | 143 +++ addons/gdUnit4/src/report/XmlElement.gd | 68 ++ .../src/report/template/css/breadcrumb.css | 67 ++ .../gdUnit4/src/report/template/css/icon.png | Bin 0 -> 13817 bytes .../src/report/template/css/icon.png.import | 34 + .../gdUnit4/src/report/template/css/style.css | 312 ++++++ .../src/report/template/folder_report.html | 99 ++ addons/gdUnit4/src/report/template/index.html | 123 +++ .../src/report/template/suite_report.html | 109 ++ addons/gdUnit4/src/spy/GdUnitSpyBuilder.gd | 112 ++ .../src/spy/GdUnitSpyFunctionDoubler.gd | 75 ++ addons/gdUnit4/src/spy/GdUnitSpyImpl.gd | 44 + .../src/ui/EditorFileSystemControls.gd | 25 + addons/gdUnit4/src/ui/GdUnitConsole.gd | 168 +++ addons/gdUnit4/src/ui/GdUnitConsole.tscn | 61 ++ addons/gdUnit4/src/ui/GdUnitFonts.gd | 43 + addons/gdUnit4/src/ui/GdUnitInspector.gd | 85 ++ addons/gdUnit4/src/ui/GdUnitInspector.tscn | 60 ++ .../src/ui/GdUnitInspectorTreeConstants.gd | 18 + addons/gdUnit4/src/ui/GdUnitUiTools.gd | 159 +++ addons/gdUnit4/src/ui/ScriptEditorControls.gd | 112 ++ .../EditorFileSystemContextMenuHandler.gd | 84 ++ .../src/ui/menu/GdUnitContextMenuItem.gd | 68 ++ .../ui/menu/ScriptEditorContextMenuHandler.gd | 82 ++ .../gdUnit4/src/ui/parts/InspectorMonitor.gd | 53 + .../src/ui/parts/InspectorMonitor.tscn | 94 ++ .../src/ui/parts/InspectorProgressBar.gd | 50 + .../src/ui/parts/InspectorProgressBar.tscn | 33 + .../src/ui/parts/InspectorStatusBar.gd | 173 +++ .../src/ui/parts/InspectorStatusBar.tscn | 257 +++++ .../gdUnit4/src/ui/parts/InspectorToolBar.gd | 110 ++ .../src/ui/parts/InspectorToolBar.tscn | 212 ++++ .../src/ui/parts/InspectorTreeMainPanel.gd | 990 ++++++++++++++++++ .../src/ui/parts/InspectorTreePanel.tscn | 273 +++++ .../src/ui/settings/GdUnitInputCapture.gd | 51 + .../src/ui/settings/GdUnitInputCapture.tscn | 33 + .../src/ui/settings/GdUnitSettingsDialog.gd | 288 +++++ .../src/ui/settings/GdUnitSettingsDialog.tscn | 645 ++++++++++++ addons/gdUnit4/src/ui/settings/logo.png | Bin 0 -> 49775 bytes .../gdUnit4/src/ui/settings/logo.png.import | 34 + .../src/ui/templates/TestSuiteTemplate.gd | 121 +++ .../src/ui/templates/TestSuiteTemplate.tscn | 127 +++ addons/gdUnit4/src/update/GdMarkDownReader.gd | 339 ++++++ addons/gdUnit4/src/update/GdUnitPatch.gd | 20 + addons/gdUnit4/src/update/GdUnitPatcher.gd | 71 ++ addons/gdUnit4/src/update/GdUnitUpdate.gd | 223 ++++ addons/gdUnit4/src/update/GdUnitUpdate.tscn | 74 ++ .../gdUnit4/src/update/GdUnitUpdateClient.gd | 83 ++ .../gdUnit4/src/update/GdUnitUpdateNotify.gd | 177 ++++ .../src/update/GdUnitUpdateNotify.tscn | 114 ++ .../src/update/assets/border_bottom.png | Bin 0 -> 1757 bytes .../update/assets/border_bottom.png.import | 34 + .../gdUnit4/src/update/assets/border_top.png | Bin 0 -> 1749 bytes .../src/update/assets/border_top.png.import | 34 + addons/gdUnit4/src/update/assets/dot1.png | Bin 0 -> 730 bytes .../gdUnit4/src/update/assets/dot1.png.import | 34 + addons/gdUnit4/src/update/assets/dot2.png | Bin 0 -> 883 bytes .../gdUnit4/src/update/assets/dot2.png.import | 34 + addons/gdUnit4/src/update/assets/embedded.png | Bin 0 -> 287 bytes .../src/update/assets/embedded.png.import | 34 + .../src/update/assets/fonts/LICENSE.txt | 202 ++++ .../src/update/assets/fonts/README.txt | 77 ++ .../assets/fonts/static/RobotoMono-Bold.ttf | Bin 0 -> 87008 bytes .../fonts/static/RobotoMono-Bold.ttf.import | 34 + .../fonts/static/RobotoMono-BoldItalic.ttf | Bin 0 -> 94148 bytes .../static/RobotoMono-BoldItalic.ttf.import | 34 + .../fonts/static/RobotoMono-ExtraLight.ttf | Bin 0 -> 87788 bytes .../static/RobotoMono-ExtraLight.ttf.import | 34 + .../static/RobotoMono-ExtraLightItalic.ttf | Bin 0 -> 93408 bytes .../RobotoMono-ExtraLightItalic.ttf.import | 34 + .../assets/fonts/static/RobotoMono-Italic.ttf | Bin 0 -> 93904 bytes .../fonts/static/RobotoMono-Italic.ttf.import | 34 + .../assets/fonts/static/RobotoMono-Light.ttf | Bin 0 -> 87592 bytes .../fonts/static/RobotoMono-Light.ttf.import | 34 + .../fonts/static/RobotoMono-LightItalic.ttf | Bin 0 -> 93760 bytes .../static/RobotoMono-LightItalic.ttf.import | 34 + .../assets/fonts/static/RobotoMono-Medium.ttf | Bin 0 -> 86820 bytes .../fonts/static/RobotoMono-Medium.ttf.import | 34 + .../fonts/static/RobotoMono-MediumItalic.ttf | Bin 0 -> 93948 bytes .../static/RobotoMono-MediumItalic.ttf.import | 34 + .../fonts/static/RobotoMono-Regular.ttf | Bin 0 -> 86908 bytes .../static/RobotoMono-Regular.ttf.import | 34 + .../fonts/static/RobotoMono-SemiBold.ttf | Bin 0 -> 87076 bytes .../static/RobotoMono-SemiBold.ttf.import | 34 + .../static/RobotoMono-SemiBoldItalic.ttf | Bin 0 -> 93940 bytes .../RobotoMono-SemiBoldItalic.ttf.import | 34 + .../assets/fonts/static/RobotoMono-Thin.ttf | Bin 0 -> 87872 bytes .../fonts/static/RobotoMono-Thin.ttf.import | 34 + .../fonts/static/RobotoMono-ThinItalic.ttf | Bin 0 -> 93056 bytes .../static/RobotoMono-ThinItalic.ttf.import | 34 + .../src/update/assets/horizontal-line2.png | Bin 0 -> 332 bytes .../update/assets/horizontal-line2.png.import | 34 + .../src/update/assets/progress-background.png | Bin 0 -> 1047 bytes .../assets/progress-background.png.import | 34 + .../141b5527-168a-4745-91ce-2c8d9112cda1.png | Bin 0 -> 227589 bytes ...527-168a-4745-91ce-2c8d9112cda1.png.import | 34 + .../fe90f750-e9c6-4ff9-b892-2885f00fd71c.png | Bin 0 -> 75380 bytes ...750-e9c6-4ff9-b892-2885f00fd71c.png.import | 34 + project.godot | 10 +- 274 files changed, 24728 insertions(+), 1 deletion(-) create mode 100644 addons/gdUnit4/GdUnitRunner.cfg create mode 100644 addons/gdUnit4/LICENSE create mode 100644 addons/gdUnit4/bin/GdUnitBuildTool.gd create mode 100644 addons/gdUnit4/bin/GdUnitCmdTool.gd create mode 100644 addons/gdUnit4/bin/GdUnitCopyLog.gd create mode 100644 addons/gdUnit4/bin/ProjectScanner.gd create mode 100644 addons/gdUnit4/plugin.cfg create mode 100644 addons/gdUnit4/plugin.gd create mode 100644 addons/gdUnit4/runtest.cmd create mode 100644 addons/gdUnit4/runtest.sh create mode 100644 addons/gdUnit4/src/Comparator.gd create mode 100644 addons/gdUnit4/src/Fuzzers.gd create mode 100644 addons/gdUnit4/src/GdUnitArrayAssert.gd create mode 100644 addons/gdUnit4/src/GdUnitAssert.gd create mode 100644 addons/gdUnit4/src/GdUnitAwaiter.gd create mode 100644 addons/gdUnit4/src/GdUnitBoolAssert.gd create mode 100644 addons/gdUnit4/src/GdUnitConstants.gd create mode 100644 addons/gdUnit4/src/GdUnitDictionaryAssert.gd create mode 100644 addons/gdUnit4/src/GdUnitFailureAssert.gd create mode 100644 addons/gdUnit4/src/GdUnitFileAssert.gd create mode 100644 addons/gdUnit4/src/GdUnitFloatAssert.gd create mode 100644 addons/gdUnit4/src/GdUnitFuncAssert.gd create mode 100644 addons/gdUnit4/src/GdUnitGodotErrorAssert.gd create mode 100644 addons/gdUnit4/src/GdUnitIntAssert.gd create mode 100644 addons/gdUnit4/src/GdUnitObjectAssert.gd create mode 100644 addons/gdUnit4/src/GdUnitResultAssert.gd create mode 100644 addons/gdUnit4/src/GdUnitSceneRunner.gd create mode 100644 addons/gdUnit4/src/GdUnitSignalAssert.gd create mode 100644 addons/gdUnit4/src/GdUnitStringAssert.gd create mode 100644 addons/gdUnit4/src/GdUnitTestSuite.gd create mode 100644 addons/gdUnit4/src/GdUnitTuple.gd create mode 100644 addons/gdUnit4/src/GdUnitValueExtractor.gd create mode 100644 addons/gdUnit4/src/GdUnitVectorAssert.gd create mode 100644 addons/gdUnit4/src/asserts/CallBackValueProvider.gd create mode 100644 addons/gdUnit4/src/asserts/DefaultValueProvider.gd create mode 100644 addons/gdUnit4/src/asserts/GdAssertMessages.gd create mode 100644 addons/gdUnit4/src/asserts/GdAssertReports.gd create mode 100644 addons/gdUnit4/src/asserts/GdUnitArrayAssertImpl.gd create mode 100644 addons/gdUnit4/src/asserts/GdUnitAssertImpl.gd create mode 100644 addons/gdUnit4/src/asserts/GdUnitAssertions.gd create mode 100644 addons/gdUnit4/src/asserts/GdUnitBoolAssertImpl.gd create mode 100644 addons/gdUnit4/src/asserts/GdUnitDictionaryAssertImpl.gd create mode 100644 addons/gdUnit4/src/asserts/GdUnitFailureAssertImpl.gd create mode 100644 addons/gdUnit4/src/asserts/GdUnitFileAssertImpl.gd create mode 100644 addons/gdUnit4/src/asserts/GdUnitFloatAssertImpl.gd create mode 100644 addons/gdUnit4/src/asserts/GdUnitFuncAssertImpl.gd create mode 100644 addons/gdUnit4/src/asserts/GdUnitGodotErrorAssertImpl.gd create mode 100644 addons/gdUnit4/src/asserts/GdUnitIntAssertImpl.gd create mode 100644 addons/gdUnit4/src/asserts/GdUnitObjectAssertImpl.gd create mode 100644 addons/gdUnit4/src/asserts/GdUnitResultAssertImpl.gd create mode 100644 addons/gdUnit4/src/asserts/GdUnitSignalAssertImpl.gd create mode 100644 addons/gdUnit4/src/asserts/GdUnitStringAssertImpl.gd create mode 100644 addons/gdUnit4/src/asserts/GdUnitVectorAssertImpl.gd create mode 100644 addons/gdUnit4/src/asserts/ValueProvider.gd create mode 100644 addons/gdUnit4/src/cmd/CmdArgumentParser.gd create mode 100644 addons/gdUnit4/src/cmd/CmdCommand.gd create mode 100644 addons/gdUnit4/src/cmd/CmdCommandHandler.gd create mode 100644 addons/gdUnit4/src/cmd/CmdConsole.gd create mode 100644 addons/gdUnit4/src/cmd/CmdOption.gd create mode 100644 addons/gdUnit4/src/cmd/CmdOptions.gd create mode 100644 addons/gdUnit4/src/core/GdArrayTools.gd create mode 100644 addons/gdUnit4/src/core/GdDiffTool.gd create mode 100644 addons/gdUnit4/src/core/GdFunctionDoubler.gd create mode 100644 addons/gdUnit4/src/core/GdObjects.gd create mode 100644 addons/gdUnit4/src/core/GdUnit4Version.gd create mode 100644 addons/gdUnit4/src/core/GdUnitClassDoubler.gd create mode 100644 addons/gdUnit4/src/core/GdUnitFileAccess.gd create mode 100644 addons/gdUnit4/src/core/GdUnitObjectInteractions.gd create mode 100644 addons/gdUnit4/src/core/GdUnitObjectInteractionsTemplate.gd create mode 100644 addons/gdUnit4/src/core/GdUnitProperty.gd create mode 100644 addons/gdUnit4/src/core/GdUnitResult.gd create mode 100644 addons/gdUnit4/src/core/GdUnitRunner.gd create mode 100644 addons/gdUnit4/src/core/GdUnitRunner.tscn create mode 100644 addons/gdUnit4/src/core/GdUnitRunnerConfig.gd create mode 100644 addons/gdUnit4/src/core/GdUnitSceneRunnerImpl.gd create mode 100644 addons/gdUnit4/src/core/GdUnitScriptType.gd create mode 100644 addons/gdUnit4/src/core/GdUnitSettings.gd create mode 100644 addons/gdUnit4/src/core/GdUnitSignalAwaiter.gd create mode 100644 addons/gdUnit4/src/core/GdUnitSignalCollector.gd create mode 100644 addons/gdUnit4/src/core/GdUnitSignals.gd create mode 100644 addons/gdUnit4/src/core/GdUnitSingleton.gd create mode 100644 addons/gdUnit4/src/core/GdUnitTestSuiteBuilder.gd create mode 100644 addons/gdUnit4/src/core/GdUnitTestSuiteScanner.gd create mode 100644 addons/gdUnit4/src/core/GdUnitTools.gd create mode 100644 addons/gdUnit4/src/core/GodotVersionFixures.gd create mode 100644 addons/gdUnit4/src/core/LocalTime.gd create mode 100644 addons/gdUnit4/src/core/_TestCase.gd create mode 100644 addons/gdUnit4/src/core/command/GdUnitCommand.gd create mode 100644 addons/gdUnit4/src/core/command/GdUnitCommandHandler.gd create mode 100644 addons/gdUnit4/src/core/command/GdUnitShortcut.gd create mode 100644 addons/gdUnit4/src/core/command/GdUnitShortcutAction.gd create mode 100644 addons/gdUnit4/src/core/discovery/GdUnitTestDiscoverGuard.gd create mode 100644 addons/gdUnit4/src/core/discovery/GdUnitTestDiscoverer.gd create mode 100644 addons/gdUnit4/src/core/event/GdUnitEvent.gd create mode 100644 addons/gdUnit4/src/core/event/GdUnitEventInit.gd create mode 100644 addons/gdUnit4/src/core/event/GdUnitEventStop.gd create mode 100644 addons/gdUnit4/src/core/event/GdUnitEventTestDiscoverEnd.gd create mode 100644 addons/gdUnit4/src/core/event/GdUnitEventTestDiscoverStart.gd create mode 100644 addons/gdUnit4/src/core/event/GdUnitEventTestDiscoverTestAdded.gd create mode 100644 addons/gdUnit4/src/core/event/GdUnitEventTestDiscoverTestRemoved.gd create mode 100644 addons/gdUnit4/src/core/event/GdUnitEventTestDiscoverTestSuiteAdded.gd create mode 100644 addons/gdUnit4/src/core/execution/GdUnitExecutionContext.gd create mode 100644 addons/gdUnit4/src/core/execution/GdUnitMemoryObserver.gd create mode 100644 addons/gdUnit4/src/core/execution/GdUnitTestReportCollector.gd create mode 100644 addons/gdUnit4/src/core/execution/GdUnitTestSuiteExecutor.gd create mode 100644 addons/gdUnit4/src/core/execution/stages/GdUnitTestCaseAfterStage.gd create mode 100644 addons/gdUnit4/src/core/execution/stages/GdUnitTestCaseBeforeStage.gd create mode 100644 addons/gdUnit4/src/core/execution/stages/GdUnitTestCaseExecutionStage.gd create mode 100644 addons/gdUnit4/src/core/execution/stages/GdUnitTestSuiteAfterStage.gd create mode 100644 addons/gdUnit4/src/core/execution/stages/GdUnitTestSuiteBeforeStage.gd create mode 100644 addons/gdUnit4/src/core/execution/stages/GdUnitTestSuiteExecutionStage.gd create mode 100644 addons/gdUnit4/src/core/execution/stages/IGdUnitExecutionStage.gd create mode 100644 addons/gdUnit4/src/core/execution/stages/fuzzed/GdUnitTestCaseFuzzedExecutionStage.gd create mode 100644 addons/gdUnit4/src/core/execution/stages/fuzzed/GdUnitTestCaseFuzzedTestStage.gd create mode 100644 addons/gdUnit4/src/core/execution/stages/parameterized/GdUnitTestCaseParameterizedExecutionStage.gd create mode 100644 addons/gdUnit4/src/core/execution/stages/parameterized/GdUnitTestCaseParameterizedTestStage.gd create mode 100644 addons/gdUnit4/src/core/execution/stages/single/GdUnitTestCaseSingleExecutionStage.gd create mode 100644 addons/gdUnit4/src/core/execution/stages/single/GdUnitTestCaseSingleTestStage.gd create mode 100644 addons/gdUnit4/src/core/parse/GdClassDescriptor.gd create mode 100644 addons/gdUnit4/src/core/parse/GdDefaultValueDecoder.gd create mode 100644 addons/gdUnit4/src/core/parse/GdFunctionArgument.gd create mode 100644 addons/gdUnit4/src/core/parse/GdFunctionDescriptor.gd create mode 100644 addons/gdUnit4/src/core/parse/GdScriptParser.gd create mode 100644 addons/gdUnit4/src/core/parse/GdUnitExpressionRunner.gd create mode 100644 addons/gdUnit4/src/core/parse/GdUnitTestParameterSetResolver.gd create mode 100644 addons/gdUnit4/src/core/report/GdUnitReport.gd create mode 100644 addons/gdUnit4/src/core/templates/test_suite/GdUnitTestSuiteDefaultTemplate.gd create mode 100644 addons/gdUnit4/src/core/templates/test_suite/GdUnitTestSuiteTemplate.gd create mode 100644 addons/gdUnit4/src/core/thread/GdUnitThreadContext.gd create mode 100644 addons/gdUnit4/src/core/thread/GdUnitThreadManager.gd create mode 100644 addons/gdUnit4/src/extractors/GdUnitFuncValueExtractor.gd create mode 100644 addons/gdUnit4/src/fuzzers/FloatFuzzer.gd create mode 100644 addons/gdUnit4/src/fuzzers/Fuzzer.gd create mode 100644 addons/gdUnit4/src/fuzzers/IntFuzzer.gd create mode 100644 addons/gdUnit4/src/fuzzers/StringFuzzer.gd create mode 100644 addons/gdUnit4/src/fuzzers/Vector2Fuzzer.gd create mode 100644 addons/gdUnit4/src/fuzzers/Vector3Fuzzer.gd create mode 100644 addons/gdUnit4/src/matchers/AnyArgumentMatcher.gd create mode 100644 addons/gdUnit4/src/matchers/AnyBuildInTypeArgumentMatcher.gd create mode 100644 addons/gdUnit4/src/matchers/AnyClazzArgumentMatcher.gd create mode 100644 addons/gdUnit4/src/matchers/ChainedArgumentMatcher.gd create mode 100644 addons/gdUnit4/src/matchers/EqualsArgumentMatcher.gd create mode 100644 addons/gdUnit4/src/matchers/GdUnitArgumentMatcher.gd create mode 100644 addons/gdUnit4/src/matchers/GdUnitArgumentMatchers.gd create mode 100644 addons/gdUnit4/src/mocking/GdUnitMock.gd create mode 100644 addons/gdUnit4/src/mocking/GdUnitMockBuilder.gd create mode 100644 addons/gdUnit4/src/mocking/GdUnitMockFunctionDoubler.gd create mode 100644 addons/gdUnit4/src/mocking/GdUnitMockImpl.gd create mode 100644 addons/gdUnit4/src/monitor/ErrorLogEntry.gd create mode 100644 addons/gdUnit4/src/monitor/GdUnitMonitor.gd create mode 100644 addons/gdUnit4/src/monitor/GdUnitOrphanNodesMonitor.gd create mode 100644 addons/gdUnit4/src/monitor/GodotGdErrorMonitor.gd create mode 100644 addons/gdUnit4/src/mono/GdUnit4CSharpApi.cs create mode 100644 addons/gdUnit4/src/mono/GdUnit4CSharpApiLoader.gd create mode 100644 addons/gdUnit4/src/network/GdUnitServer.gd create mode 100644 addons/gdUnit4/src/network/GdUnitServer.tscn create mode 100644 addons/gdUnit4/src/network/GdUnitServerConstants.gd create mode 100644 addons/gdUnit4/src/network/GdUnitTask.gd create mode 100644 addons/gdUnit4/src/network/GdUnitTcpClient.gd create mode 100644 addons/gdUnit4/src/network/GdUnitTcpServer.gd create mode 100644 addons/gdUnit4/src/network/rpc/RPC.gd create mode 100644 addons/gdUnit4/src/network/rpc/RPCClientConnect.gd create mode 100644 addons/gdUnit4/src/network/rpc/RPCClientDisconnect.gd create mode 100644 addons/gdUnit4/src/network/rpc/RPCGdUnitEvent.gd create mode 100644 addons/gdUnit4/src/network/rpc/RPCGdUnitTestSuite.gd create mode 100644 addons/gdUnit4/src/network/rpc/RPCMessage.gd create mode 100644 addons/gdUnit4/src/network/rpc/dtos/GdUnitResourceDto.gd create mode 100644 addons/gdUnit4/src/network/rpc/dtos/GdUnitTestCaseDto.gd create mode 100644 addons/gdUnit4/src/network/rpc/dtos/GdUnitTestSuiteDto.gd create mode 100644 addons/gdUnit4/src/report/GdUnitByPathReport.gd create mode 100644 addons/gdUnit4/src/report/GdUnitHtmlPatterns.gd create mode 100644 addons/gdUnit4/src/report/GdUnitHtmlReport.gd create mode 100644 addons/gdUnit4/src/report/GdUnitReportSummary.gd create mode 100644 addons/gdUnit4/src/report/GdUnitTestCaseReport.gd create mode 100644 addons/gdUnit4/src/report/GdUnitTestSuiteReport.gd create mode 100644 addons/gdUnit4/src/report/JUnitXmlReport.gd create mode 100644 addons/gdUnit4/src/report/XmlElement.gd create mode 100644 addons/gdUnit4/src/report/template/css/breadcrumb.css create mode 100644 addons/gdUnit4/src/report/template/css/icon.png create mode 100644 addons/gdUnit4/src/report/template/css/icon.png.import create mode 100644 addons/gdUnit4/src/report/template/css/style.css create mode 100644 addons/gdUnit4/src/report/template/folder_report.html create mode 100644 addons/gdUnit4/src/report/template/index.html create mode 100644 addons/gdUnit4/src/report/template/suite_report.html create mode 100644 addons/gdUnit4/src/spy/GdUnitSpyBuilder.gd create mode 100644 addons/gdUnit4/src/spy/GdUnitSpyFunctionDoubler.gd create mode 100644 addons/gdUnit4/src/spy/GdUnitSpyImpl.gd create mode 100644 addons/gdUnit4/src/ui/EditorFileSystemControls.gd create mode 100644 addons/gdUnit4/src/ui/GdUnitConsole.gd create mode 100644 addons/gdUnit4/src/ui/GdUnitConsole.tscn create mode 100644 addons/gdUnit4/src/ui/GdUnitFonts.gd create mode 100644 addons/gdUnit4/src/ui/GdUnitInspector.gd create mode 100644 addons/gdUnit4/src/ui/GdUnitInspector.tscn create mode 100644 addons/gdUnit4/src/ui/GdUnitInspectorTreeConstants.gd create mode 100644 addons/gdUnit4/src/ui/GdUnitUiTools.gd create mode 100644 addons/gdUnit4/src/ui/ScriptEditorControls.gd create mode 100644 addons/gdUnit4/src/ui/menu/EditorFileSystemContextMenuHandler.gd create mode 100644 addons/gdUnit4/src/ui/menu/GdUnitContextMenuItem.gd create mode 100644 addons/gdUnit4/src/ui/menu/ScriptEditorContextMenuHandler.gd create mode 100644 addons/gdUnit4/src/ui/parts/InspectorMonitor.gd create mode 100644 addons/gdUnit4/src/ui/parts/InspectorMonitor.tscn create mode 100644 addons/gdUnit4/src/ui/parts/InspectorProgressBar.gd create mode 100644 addons/gdUnit4/src/ui/parts/InspectorProgressBar.tscn create mode 100644 addons/gdUnit4/src/ui/parts/InspectorStatusBar.gd create mode 100644 addons/gdUnit4/src/ui/parts/InspectorStatusBar.tscn create mode 100644 addons/gdUnit4/src/ui/parts/InspectorToolBar.gd create mode 100644 addons/gdUnit4/src/ui/parts/InspectorToolBar.tscn create mode 100644 addons/gdUnit4/src/ui/parts/InspectorTreeMainPanel.gd create mode 100644 addons/gdUnit4/src/ui/parts/InspectorTreePanel.tscn create mode 100644 addons/gdUnit4/src/ui/settings/GdUnitInputCapture.gd create mode 100644 addons/gdUnit4/src/ui/settings/GdUnitInputCapture.tscn create mode 100644 addons/gdUnit4/src/ui/settings/GdUnitSettingsDialog.gd create mode 100644 addons/gdUnit4/src/ui/settings/GdUnitSettingsDialog.tscn create mode 100644 addons/gdUnit4/src/ui/settings/logo.png create mode 100644 addons/gdUnit4/src/ui/settings/logo.png.import create mode 100644 addons/gdUnit4/src/ui/templates/TestSuiteTemplate.gd create mode 100644 addons/gdUnit4/src/ui/templates/TestSuiteTemplate.tscn create mode 100644 addons/gdUnit4/src/update/GdMarkDownReader.gd create mode 100644 addons/gdUnit4/src/update/GdUnitPatch.gd create mode 100644 addons/gdUnit4/src/update/GdUnitPatcher.gd create mode 100644 addons/gdUnit4/src/update/GdUnitUpdate.gd create mode 100644 addons/gdUnit4/src/update/GdUnitUpdate.tscn create mode 100644 addons/gdUnit4/src/update/GdUnitUpdateClient.gd create mode 100644 addons/gdUnit4/src/update/GdUnitUpdateNotify.gd create mode 100644 addons/gdUnit4/src/update/GdUnitUpdateNotify.tscn create mode 100644 addons/gdUnit4/src/update/assets/border_bottom.png create mode 100644 addons/gdUnit4/src/update/assets/border_bottom.png.import create mode 100644 addons/gdUnit4/src/update/assets/border_top.png create mode 100644 addons/gdUnit4/src/update/assets/border_top.png.import create mode 100644 addons/gdUnit4/src/update/assets/dot1.png create mode 100644 addons/gdUnit4/src/update/assets/dot1.png.import create mode 100644 addons/gdUnit4/src/update/assets/dot2.png create mode 100644 addons/gdUnit4/src/update/assets/dot2.png.import create mode 100644 addons/gdUnit4/src/update/assets/embedded.png create mode 100644 addons/gdUnit4/src/update/assets/embedded.png.import create mode 100644 addons/gdUnit4/src/update/assets/fonts/LICENSE.txt create mode 100644 addons/gdUnit4/src/update/assets/fonts/README.txt create mode 100644 addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-Bold.ttf create mode 100644 addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-Bold.ttf.import create mode 100644 addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-BoldItalic.ttf create mode 100644 addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-BoldItalic.ttf.import create mode 100644 addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-ExtraLight.ttf create mode 100644 addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-ExtraLight.ttf.import create mode 100644 addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-ExtraLightItalic.ttf create mode 100644 addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-ExtraLightItalic.ttf.import create mode 100644 addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-Italic.ttf create mode 100644 addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-Italic.ttf.import create mode 100644 addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-Light.ttf create mode 100644 addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-Light.ttf.import create mode 100644 addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-LightItalic.ttf create mode 100644 addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-LightItalic.ttf.import create mode 100644 addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-Medium.ttf create mode 100644 addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-Medium.ttf.import create mode 100644 addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-MediumItalic.ttf create mode 100644 addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-MediumItalic.ttf.import create mode 100644 addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-Regular.ttf create mode 100644 addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-Regular.ttf.import create mode 100644 addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-SemiBold.ttf create mode 100644 addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-SemiBold.ttf.import create mode 100644 addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-SemiBoldItalic.ttf create mode 100644 addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-SemiBoldItalic.ttf.import create mode 100644 addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-Thin.ttf create mode 100644 addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-Thin.ttf.import create mode 100644 addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-ThinItalic.ttf create mode 100644 addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-ThinItalic.ttf.import create mode 100644 addons/gdUnit4/src/update/assets/horizontal-line2.png create mode 100644 addons/gdUnit4/src/update/assets/horizontal-line2.png.import create mode 100644 addons/gdUnit4/src/update/assets/progress-background.png create mode 100644 addons/gdUnit4/src/update/assets/progress-background.png.import create mode 100644 addons/gdUnit4/tmp-update/141b5527-168a-4745-91ce-2c8d9112cda1.png create mode 100644 addons/gdUnit4/tmp-update/141b5527-168a-4745-91ce-2c8d9112cda1.png.import create mode 100644 addons/gdUnit4/tmp-update/fe90f750-e9c6-4ff9-b892-2885f00fd71c.png create mode 100644 addons/gdUnit4/tmp-update/fe90f750-e9c6-4ff9-b892-2885f00fd71c.png.import diff --git a/addons/gdUnit4/GdUnitRunner.cfg b/addons/gdUnit4/GdUnitRunner.cfg new file mode 100644 index 0000000..b91a3d7 --- /dev/null +++ b/addons/gdUnit4/GdUnitRunner.cfg @@ -0,0 +1 @@ +{"included":{"res://tests/scenes/game_tests.gd":["test_save_game"]},"server_port":31002,"skipped":{},"version":"1.0"} \ No newline at end of file diff --git a/addons/gdUnit4/LICENSE b/addons/gdUnit4/LICENSE new file mode 100644 index 0000000..8c60d13 --- /dev/null +++ b/addons/gdUnit4/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023 Mike Schulze + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/addons/gdUnit4/bin/GdUnitBuildTool.gd b/addons/gdUnit4/bin/GdUnitBuildTool.gd new file mode 100644 index 0000000..c4ef66c --- /dev/null +++ b/addons/gdUnit4/bin/GdUnitBuildTool.gd @@ -0,0 +1,111 @@ +#!/usr/bin/env -S godot -s +extends SceneTree + +enum { + INIT, + PROCESSING, + EXIT +} + +const RETURN_SUCCESS = 0 +const RETURN_ERROR = 100 +const RETURN_WARNING = 101 + +var _console := CmdConsole.new() +var _cmd_options: = CmdOptions.new([ + CmdOption.new( + "-scp, --src_class_path", + "-scp ", + "The full class path of the source file.", + TYPE_STRING + ), + CmdOption.new( + "-scl, --src_class_line", + "-scl ", + "The selected line number to generate test case.", + TYPE_INT + ) +]) + +var _status := INIT +var _source_file :String = "" +var _source_line :int = -1 + + +func _init() -> void: + var cmd_parser := CmdArgumentParser.new(_cmd_options, "GdUnitBuildTool.gd") + var result := cmd_parser.parse(OS.get_cmdline_args()) + if result.is_error(): + show_options() + exit(RETURN_ERROR, result.error_message()); + return + + var cmd_options :Array[CmdCommand] = result.value() + for cmd in cmd_options: + if cmd.name() == '-scp': + _source_file = cmd.arguments()[0] + _source_file = ProjectSettings.localize_path(ProjectSettings.localize_path(_source_file)) + if cmd.name() == '-scl': + _source_line = int(cmd.arguments()[0]) + # verify required arguments + if _source_file == "": + exit(RETURN_ERROR, "missing required argument -scp ") + return + if _source_line == -1: + exit(RETURN_ERROR, "missing required argument -scl ") + return + _status = PROCESSING + + +func _idle(_delta :float) -> void: + if _status == PROCESSING: + var script := ResourceLoader.load(_source_file) as Script + if script == null: + exit(RETURN_ERROR, "Can't load source file %s!" % _source_file) + var result := GdUnitTestSuiteBuilder.create(script, _source_line) + if result.is_error(): + print_json_error(result.error_message()) + exit(RETURN_ERROR, result.error_message()) + return + _console.prints_color("Added testcase: %s" % result.value(), Color.CORNFLOWER_BLUE) + print_json_result(result.value()) + exit(RETURN_SUCCESS) + + +func exit(code :int, message :String = "") -> void: + _status = EXIT + if code == RETURN_ERROR: + if not message.is_empty(): + _console.prints_error(message) + _console.prints_error("Abnormal exit with %d" % code) + else: + _console.prints_color("Exit code: %d" % RETURN_SUCCESS, Color.DARK_SALMON) + quit(code) + + +func print_json_result(result :Dictionary) -> void: + # convert back to system path + var path := ProjectSettings.globalize_path(result["path"]); + var json := 'JSON_RESULT:{"TestCases" : [{"line":%d, "path": "%s"}]}' % [result["line"], path] + prints(json) + + +func print_json_error(error :String) -> void: + prints('JSON_RESULT:{"Error" : "%s"}' % error) + + +func show_options() -> void: + _console.prints_color(" Usage:", Color.DARK_SALMON) + _console.prints_color(" build -scp -scl ", Color.DARK_SALMON) + _console.prints_color("-- Options ---------------------------------------------------------------------------------------", + Color.DARK_SALMON).new_line() + for option in _cmd_options.default_options(): + descripe_option(option) + + +func descripe_option(cmd_option :CmdOption) -> void: + _console.print_color(" %-40s" % str(cmd_option.commands()), Color.CORNFLOWER_BLUE) + _console.prints_color(cmd_option.description(), Color.LIGHT_GREEN) + if not cmd_option.help().is_empty(): + _console.prints_color("%-4s %s" % ["", cmd_option.help()], Color.DARK_TURQUOISE) + _console.new_line() diff --git a/addons/gdUnit4/bin/GdUnitCmdTool.gd b/addons/gdUnit4/bin/GdUnitCmdTool.gd new file mode 100644 index 0000000..0919520 --- /dev/null +++ b/addons/gdUnit4/bin/GdUnitCmdTool.gd @@ -0,0 +1,622 @@ +#!/usr/bin/env -S godot -s +extends SceneTree + +const GdUnitTools := preload("res://addons/gdUnit4/src/core/GdUnitTools.gd") + + +#warning-ignore-all:return_value_discarded +class CLIRunner: + extends Node + + enum { + READY, + INIT, + RUN, + STOP, + EXIT + } + + const DEFAULT_REPORT_COUNT = 20 + const RETURN_SUCCESS = 0 + const RETURN_ERROR = 100 + const RETURN_ERROR_HEADLESS_NOT_SUPPORTED = 103 + const RETURN_ERROR_GODOT_VERSION_NOT_SUPPORTED = 104 + const RETURN_WARNING = 101 + + var _state := READY + var _test_suites_to_process: Array + var _executor :Variant + var _cs_executor :Variant + var _report: GdUnitHtmlReport + var _report_dir: String + var _report_max: int = DEFAULT_REPORT_COUNT + var _headless_mode_ignore := false + var _runner_config := GdUnitRunnerConfig.new() + var _runner_config_file := "" + var _console := CmdConsole.new() + var _cmd_options := CmdOptions.new([ + CmdOption.new( + "-a, --add", + "-a ", + "Adds the given test suite or directory to the execution pipeline.", + TYPE_STRING + ), + CmdOption.new( + "-i, --ignore", + "-i ", + "Adds the given test suite or test case to the ignore list.", + TYPE_STRING + ), + CmdOption.new( + "-c, --continue", + "", + """By default GdUnit will abort checked first test failure to be fail fast, + instead of stop after first failure you can use this option to run the complete test set.""".dedent() + ), + CmdOption.new( + "-conf, --config", + "-conf [testconfiguration.cfg]", + "Run all tests by given test configuration. Default is 'GdUnitRunner.cfg'", + TYPE_STRING, + true + ), + CmdOption.new( + "-help", "", + "Shows this help message." + ), + CmdOption.new("--help-advanced", "", + "Shows advanced options." + ) + ], + [ + # advanced options + CmdOption.new( + "-rd, --report-directory", + "-rd ", + "Specifies the output directory in which the reports are to be written. The default is res://reports/.", + TYPE_STRING, + true + ), + CmdOption.new( + "-rc, --report-count", + "-rc ", + "Specifies how many reports are saved before they are deleted. The default is %s." % str(DEFAULT_REPORT_COUNT), + TYPE_INT, + true + ), + #CmdOption.new("--list-suites", "--list-suites [directory]", "Lists all test suites located in the given directory.", TYPE_STRING), + #CmdOption.new("--describe-suite", "--describe-suite ", "Shows the description of selected test suite.", TYPE_STRING), + CmdOption.new( + "--info", "", + "Shows the GdUnit version info" + ), + CmdOption.new( + "--selftest", "", + "Runs the GdUnit self test" + ), + CmdOption.new( + "--ignoreHeadlessMode", + "--ignoreHeadlessMode", + "By default, running GdUnit4 in headless mode is not allowed. You can switch off the headless mode check by set this property." + ), + ]) + + + func _ready() -> void: + _state = INIT + _report_dir = GdUnitFileAccess.current_dir() + "reports" + _executor = load("res://addons/gdUnit4/src/core/execution/GdUnitTestSuiteExecutor.gd").new() + # stop checked first test failure to fail fast + _executor.fail_fast(true) + if GdUnit4CSharpApiLoader.is_mono_supported(): + prints("GdUnit4Net version '%s' loaded." % GdUnit4CSharpApiLoader.version()) + _cs_executor = GdUnit4CSharpApiLoader.create_executor(self) + var err := GdUnitSignals.instance().gdunit_event.connect(_on_gdunit_event) + if err != OK: + prints("gdUnitSignals failed") + push_error("Error checked startup, can't connect executor for 'send_event'") + quit(RETURN_ERROR) + + + func _notification(what: int) -> void: + if what == NOTIFICATION_PREDELETE: + prints("Finallize .. done") + + + func _process(_delta :float) -> void: + match _state: + INIT: + init_gd_unit() + _state = RUN + RUN: + # all test suites executed + if _test_suites_to_process.is_empty(): + _state = STOP + else: + set_process(false) + # process next test suite + var test_suite := _test_suites_to_process.pop_front() as Node + if _cs_executor != null and _cs_executor.IsExecutable(test_suite): + _cs_executor.Execute(test_suite) + await _cs_executor.ExecutionCompleted + else: + await _executor.execute(test_suite) + set_process(true) + STOP: + _state = EXIT + _on_gdunit_event(GdUnitStop.new()) + quit(report_exit_code(_report)) + + + func quit(code: int) -> void: + _cs_executor = null + GdUnitTools.dispose_all() + await GdUnitMemoryObserver.gc_on_guarded_instances() + await get_tree().physics_frame + get_tree().quit(code) + + + func set_report_dir(path: String) -> void: + _report_dir = ProjectSettings.globalize_path(GdUnitFileAccess.make_qualified_path(path)) + _console.prints_color( + "Set write reports to %s" % _report_dir, + Color.DEEP_SKY_BLUE + ) + + + func set_report_count(count: String) -> void: + var report_count := count.to_int() + if report_count < 1: + _console.prints_error( + "Invalid report history count '%s' set back to default %d" + % [count, DEFAULT_REPORT_COUNT] + ) + _report_max = DEFAULT_REPORT_COUNT + else: + _console.prints_color( + "Set report history count to %s" % count, + Color.DEEP_SKY_BLUE + ) + _report_max = report_count + + + func disable_fail_fast() -> void: + _console.prints_color( + "Disabled fail fast!", + Color.DEEP_SKY_BLUE + ) + _executor.fail_fast(false) + + + func run_self_test() -> void: + _console.prints_color( + "Run GdUnit4 self tests.", + Color.DEEP_SKY_BLUE + ) + disable_fail_fast() + _runner_config.self_test() + + + func show_version() -> void: + _console.prints_color( + "Godot %s" % Engine.get_version_info().get("string"), + Color.DARK_SALMON + ) + var config := ConfigFile.new() + config.load("addons/gdUnit4/plugin.cfg") + _console.prints_color( + "GdUnit4 %s" % config.get_value("plugin", "version"), + Color.DARK_SALMON + ) + quit(RETURN_SUCCESS) + + + func check_headless_mode() -> void: + _headless_mode_ignore = true + + + func show_options(show_advanced: bool = false) -> void: + _console.prints_color( + """ + Usage: + runtest -a + runtest -a -i + """.dedent(), + Color.DARK_SALMON + ).prints_color( + "-- Options ---------------------------------------------------------------------------------------", + Color.DARK_SALMON + ).new_line() + for option in _cmd_options.default_options(): + descripe_option(option) + if show_advanced: + _console.prints_color( + "-- Advanced options --------------------------------------------------------------------------", + Color.DARK_SALMON + ).new_line() + for option in _cmd_options.advanced_options(): + descripe_option(option) + + + func descripe_option(cmd_option: CmdOption) -> void: + _console.print_color( + " %-40s" % str(cmd_option.commands()), + Color.CORNFLOWER_BLUE + ) + _console.prints_color( + cmd_option.description(), + Color.LIGHT_GREEN + ) + if not cmd_option.help().is_empty(): + _console.prints_color( + "%-4s %s" % ["", cmd_option.help()], + Color.DARK_TURQUOISE + ) + _console.new_line() + + + func load_test_config(path := GdUnitRunnerConfig.CONFIG_FILE) -> void: + _console.print_color( + "Loading test configuration %s\n" % path, + Color.CORNFLOWER_BLUE + ) + _runner_config_file = path + _runner_config.load_config(path) + + + func show_help() -> void: + show_options() + quit(RETURN_SUCCESS) + + + func show_advanced_help() -> void: + show_options(true) + quit(RETURN_SUCCESS) + + + func init_gd_unit() -> void: + _console.prints_color( + """ + -------------------------------------------------------------------------------------------------- + GdUnit4 Comandline Tool + --------------------------------------------------------------------------------------------------""".dedent(), + Color.DARK_SALMON + ).new_line() + + var cmd_parser := CmdArgumentParser.new(_cmd_options, "GdUnitCmdTool.gd") + var result := cmd_parser.parse(OS.get_cmdline_args()) + if result.is_error(): + show_options() + _console.prints_error(result.error_message()) + _console.prints_error("Abnormal exit with %d" % RETURN_ERROR) + _state = STOP + quit(RETURN_ERROR) + return + if result.is_empty(): + show_help() + return + # build runner config by given commands + var commands :Array[CmdCommand] = [] + commands.append_array(result.value()) + result = ( + CmdCommandHandler.new(_cmd_options) + .register_cb("-help", Callable(self, "show_help")) + .register_cb("--help-advanced", Callable(self, "show_advanced_help")) + .register_cb("-a", Callable(_runner_config, "add_test_suite")) + .register_cbv("-a", Callable(_runner_config, "add_test_suites")) + .register_cb("-i", Callable(_runner_config, "skip_test_suite")) + .register_cbv("-i", Callable(_runner_config, "skip_test_suites")) + .register_cb("-rd", set_report_dir) + .register_cb("-rc", set_report_count) + .register_cb("--selftest", run_self_test) + .register_cb("-c", disable_fail_fast) + .register_cb("-conf", load_test_config) + .register_cb("--info", show_version) + .register_cb("--ignoreHeadlessMode", check_headless_mode) + .execute(commands) + ) + if result.is_error(): + _console.prints_error(result.error_message()) + _state = STOP + quit(RETURN_ERROR) + + if DisplayServer.get_name() == "headless": + if _headless_mode_ignore: + _console.prints_warning(""" + Headless mode is ignored by option '--ignoreHeadlessMode'" + + Please note that tests that use UI interaction do not work correctly in headless mode. + Godot 'InputEvents' are not transported by the Godot engine in headless mode and therefore + have no effect in the test! + """.dedent() + ).new_line() + else: + _console.prints_error(""" + Headless mode is not supported! + + Please note that tests that use UI interaction do not work correctly in headless mode. + Godot 'InputEvents' are not transported by the Godot engine in headless mode and therefore + have no effect in the test! + + You can run with '--ignoreHeadlessMode' to swtich off this check. + """.dedent() + ).prints_error( + "Abnormal exit with %d" % RETURN_ERROR_HEADLESS_NOT_SUPPORTED + ) + quit(RETURN_ERROR_HEADLESS_NOT_SUPPORTED) + return + + _test_suites_to_process = load_testsuites(_runner_config) + if _test_suites_to_process.is_empty(): + _console.prints_warning("No test suites found, abort test run!") + _console.prints_color("Exit code: %d" % RETURN_SUCCESS, Color.DARK_SALMON) + _state = STOP + quit(RETURN_SUCCESS) + var total_test_count := _collect_test_case_count(_test_suites_to_process) + _on_gdunit_event(GdUnitInit.new(_test_suites_to_process.size(), total_test_count)) + + + func load_testsuites(config: GdUnitRunnerConfig) -> Array[Node]: + var test_suites_to_process: Array[Node] = [] + # Dictionary[String, Dictionary[String, PackedStringArray]] + var to_execute := config.to_execute() + # scan for the requested test suites + var ts_scanner := GdUnitTestSuiteScanner.new() + for as_resource_path in to_execute.keys() as Array[String]: + var selected_tests: PackedStringArray = to_execute.get(as_resource_path) + var scaned_suites := ts_scanner.scan(as_resource_path) + skip_test_case(scaned_suites, selected_tests) + test_suites_to_process.append_array(scaned_suites) + skip_suites(test_suites_to_process, config) + return test_suites_to_process + + + func skip_test_case(test_suites: Array[Node], test_case_names: Array[String]) -> void: + if test_case_names.is_empty(): + return + for test_suite in test_suites: + for test_case in test_suite.get_children(): + if not test_case_names.has(test_case.get_name()): + test_suite.remove_child(test_case) + test_case.free() + + + func skip_suites(test_suites: Array[Node], config: GdUnitRunnerConfig) -> void: + var skipped := config.skipped() + if skipped.is_empty(): + return + _console.prints_warning("Found excluded test suite's configured at '%s'" % _runner_config_file) + for test_suite in test_suites: + # skipp c# testsuites for now + if test_suite.get_script() == null: + continue + skip_suite(test_suite, skipped) + + + # Dictionary[String, PackedStringArray] + func skip_suite(test_suite: Node, skipped: Dictionary) -> void: + var skipped_suites :Array[String] = skipped.keys() + var suite_name := test_suite.get_name() + var test_suite_path: String = ( + test_suite.get_meta("ResourcePath") if test_suite.get_script() == null + else test_suite.get_script().resource_path + ) + for suite_to_skip in skipped_suites: + # if suite skipped by path or name + if ( + suite_to_skip == test_suite_path + or (suite_to_skip.is_valid_filename() and suite_to_skip == suite_name) + ): + var skipped_tests: Array[String] = skipped.get(suite_to_skip) + var skip_reason := "Excluded by config '%s'" % _runner_config_file + # if no tests skipped test the complete suite is skipped + if skipped_tests.is_empty(): + _console.prints_warning("Mark test suite '%s' as skipped!" % suite_to_skip) + test_suite.__is_skipped = true + test_suite.__skip_reason = skip_reason + else: + # skip tests + for test_to_skip in skipped_tests: + var test_case: _TestCase = test_suite.find_child(test_to_skip, true, false) + if test_case: + test_case.skip(true, skip_reason) + _console.prints_warning("Mark test case '%s':%s as skipped" % [suite_to_skip, test_to_skip]) + else: + _console.prints_error( + "Can't skip test '%s' checked test suite '%s', no test with given name exists!" + % [test_to_skip, suite_to_skip] + ) + + + func _collect_test_case_count(test_suites: Array[Node]) -> int: + var total: int = 0 + for test_suite in test_suites: + total += test_suite.get_child_count() + return total + + + # gdlint: disable=function-name + func PublishEvent(data: Dictionary) -> void: + _on_gdunit_event(GdUnitEvent.new().deserialize(data)) + + + func _on_gdunit_event(event: GdUnitEvent) -> void: + match event.type(): + GdUnitEvent.INIT: + _report = GdUnitHtmlReport.new(_report_dir) + GdUnitEvent.STOP: + if _report == null: + _report = GdUnitHtmlReport.new(_report_dir) + var report_path := _report.write() + _report.delete_history(_report_max) + JUnitXmlReport.new(_report._report_path, _report.iteration()).write(_report) + _console.prints_color( + build_executed_test_suite_msg(_report.suite_executed_count(), _report.suite_count()), + Color.DARK_SALMON + ).prints_color( + build_executed_test_case_msg(_report.test_executed_count(), _report.test_count()), + Color.DARK_SALMON + ).prints_color( + "Total time: %s" % LocalTime.elapsed(_report.duration()), + Color.DARK_SALMON + ).prints_color( + "Open Report at: file://%s" % report_path, + Color.CORNFLOWER_BLUE + ) + GdUnitEvent.TESTSUITE_BEFORE: + _report.add_testsuite_report( + GdUnitTestSuiteReport.new(event.resource_path(), event.suite_name(), event.total_count()) + ) + GdUnitEvent.TESTSUITE_AFTER: + _report.update_test_suite_report( + event.resource_path(), + event.elapsed_time(), + event.is_error(), + event.is_failed(), + event.is_warning(), + event.is_skipped(), + event.skipped_count(), + event.failed_count(), + event.orphan_nodes(), + event.reports() + ) + GdUnitEvent.TESTCASE_BEFORE: + _report.add_testcase_report( + event.resource_path(), + GdUnitTestCaseReport.new( + event.resource_path(), + event.suite_name(), + event.test_name() + ) + ) + GdUnitEvent.TESTCASE_AFTER: + var test_report := GdUnitTestCaseReport.new( + event.resource_path(), + event.suite_name(), + event.test_name(), + event.is_error(), + event.is_failed(), + event.failed_count(), + event.orphan_nodes(), + event.is_skipped(), + event.reports(), + event.elapsed_time() + ) + _report.update_testcase_report(event.resource_path(), test_report) + print_status(event) + + + func build_executed_test_suite_msg(executed_count :int, total_count :int) -> String: + if executed_count == total_count: + return "Executed test suites: (%d/%d)" % [executed_count, total_count] + return "Executed test suites: (%d/%d), %d skipped" % [executed_count, total_count, (total_count - executed_count)] + + + func build_executed_test_case_msg(executed_count :int, total_count :int) -> String: + if executed_count == total_count: + return "Executed test cases: (%d/%d)" % [executed_count, total_count] + return "Executed test cases: (%d/%d), %d skipped" % [executed_count, total_count, (total_count - executed_count)] + + + func report_exit_code(report: GdUnitHtmlReport) -> int: + if report.error_count() + report.failure_count() > 0: + _console.prints_color("Exit code: %d" % RETURN_ERROR, Color.FIREBRICK) + return RETURN_ERROR + if report.orphan_count() > 0: + _console.prints_color("Exit code: %d" % RETURN_WARNING, Color.GOLDENROD) + return RETURN_WARNING + _console.prints_color("Exit code: %d" % RETURN_SUCCESS, Color.DARK_SALMON) + return RETURN_SUCCESS + + + func print_status(event: GdUnitEvent) -> void: + match event.type(): + GdUnitEvent.TESTSUITE_BEFORE: + _console.prints_color( + "Run Test Suite %s " % event.resource_path(), + Color.ANTIQUE_WHITE + ) + GdUnitEvent.TESTCASE_BEFORE: + _console.print_color( + " Run Test: %s > %s :" % [event.resource_path(), event.test_name()], + Color.ANTIQUE_WHITE + ).prints_color( + "STARTED", + Color.FOREST_GREEN + ).save_cursor() + GdUnitEvent.TESTCASE_AFTER: + #_console.restore_cursor() + _console.print_color( + " Run Test: %s > %s :" % [event.resource_path(), event.test_name()], + Color.ANTIQUE_WHITE + ) + _print_status(event) + _print_failure_report(event.reports()) + GdUnitEvent.TESTSUITE_AFTER: + _print_failure_report(event.reports()) + _print_status(event) + _console.prints_color( + "Statistics: | %d tests cases | %d error | %d failed | %d skipped | %d orphans |\n" + % [ + _report.test_count(), + _report.error_count(), + _report.failure_count(), + _report.skipped_count(), + _report.orphan_count() + ], + Color.ANTIQUE_WHITE + ) + + + func _print_failure_report(reports: Array[GdUnitReport]) -> void: + for report in reports: + if ( + report.is_failure() + or report.is_error() + or report.is_warning() + or report.is_skipped() + ): + _console.prints_color( + " Report:", + Color.DARK_TURQUOISE, CmdConsole.BOLD | CmdConsole.UNDERLINE + ) + var text := GdUnitTools.richtext_normalize(str(report)) + for line in text.split("\n"): + _console.prints_color(" %s" % line, Color.DARK_TURQUOISE) + _console.new_line() + + + func _print_status(event: GdUnitEvent) -> void: + if event.is_skipped(): + _console.print_color("SKIPPED", Color.GOLDENROD, CmdConsole.BOLD | CmdConsole.ITALIC) + elif event.is_failed() or event.is_error(): + _console.print_color("FAILED", Color.FIREBRICK, CmdConsole.BOLD) + elif event.orphan_nodes() > 0: + _console.print_color("PASSED", Color.GOLDENROD, CmdConsole.BOLD | CmdConsole.UNDERLINE) + else: + _console.print_color("PASSED", Color.FOREST_GREEN, CmdConsole.BOLD) + _console.prints_color( + " %s" % LocalTime.elapsed(event.elapsed_time()), Color.CORNFLOWER_BLUE + ) + + +var _cli_runner :CLIRunner + + +func _initialize() -> void: + if Engine.get_version_info().hex < 0x40200: + prints("GdUnit4 requires a minimum of Godot 4.2.x Version!") + quit(CLIRunner.RETURN_ERROR_GODOT_VERSION_NOT_SUPPORTED) + return + DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_MINIMIZED) + _cli_runner = CLIRunner.new() + root.add_child(_cli_runner) + + +# do not use print statements on _finalize it results in random crashes +func _finalize() -> void: + if OS.is_stdout_verbose(): + prints("Finallize ..") + prints("-Orphan nodes report-----------------------") + Window.print_orphan_nodes() + prints("Finallize .. done") diff --git a/addons/gdUnit4/bin/GdUnitCopyLog.gd b/addons/gdUnit4/bin/GdUnitCopyLog.gd new file mode 100644 index 0000000..2e037a6 --- /dev/null +++ b/addons/gdUnit4/bin/GdUnitCopyLog.gd @@ -0,0 +1,141 @@ +#!/usr/bin/env -S godot -s +extends MainLoop + +const GdUnitTools := preload("res://addons/gdUnit4/src/core/GdUnitTools.gd") + +# gdlint: disable=max-line-length +const NO_LOG_TEMPLATE = """ + + + + + + Logging + + + +
+

No logging available!

+
+

For logging to occur, you must check Enable File Logging in Project Settings.

+

You can enable Logging Project Settings > Logging > File Logging > Enable File Logging in the Project Settings.

+
+ +""" + +#warning-ignore-all:return_value_discarded +var _cmd_options := CmdOptions.new([ + CmdOption.new( + "-rd, --report-directory", + "-rd ", + "Specifies the output directory in which the reports are to be written. The default is res://reports/.", + TYPE_STRING, + true + ) + ]) + +var _report_root_path: String + + +func _init() -> void: + _report_root_path = GdUnitFileAccess.current_dir() + "reports" + + +func _process(_delta :float) -> bool: + # check if reports exists + if not reports_available(): + prints("no reports found") + return true + # scan for latest report path + var iteration := GdUnitFileAccess.find_last_path_index( + _report_root_path, GdUnitHtmlReport.REPORT_DIR_PREFIX + ) + var report_path := "%s/%s%d" % [_report_root_path, GdUnitHtmlReport.REPORT_DIR_PREFIX, iteration] + # only process if godot logging is enabled + if not GdUnitSettings.is_log_enabled(): + _patch_report(report_path, "") + return true + # parse possible custom report path, + var cmd_parser := CmdArgumentParser.new(_cmd_options, "GdUnitCmdTool.gd") + # ignore erros and exit quitly + if cmd_parser.parse(OS.get_cmdline_args(), true).is_error(): + return true + CmdCommandHandler.new(_cmd_options).register_cb("-rd", set_report_directory) + # scan for latest godot log and copy to report + var godot_log := _scan_latest_godot_log() + var result := _copy_and_pach(godot_log, report_path) + if result.is_error(): + push_error(result.error_message()) + return true + _patch_report(report_path, godot_log) + return true + + +func set_report_directory(path: String) -> void: + _report_root_path = path + + +func _scan_latest_godot_log() -> String: + var path := GdUnitSettings.get_log_path().get_base_dir() + var files_sorted := Array() + for file in GdUnitFileAccess.scan_dir(path): + var file_name := "%s/%s" % [path, file] + files_sorted.append(file_name) + # sort by name, the name contains the timestamp so we sort at the end by timestamp + files_sorted.sort() + return files_sorted[-1] + + +func _patch_report(report_path: String, godot_log: String) -> void: + var index_file := FileAccess.open("%s/index.html" % report_path, FileAccess.READ_WRITE) + if index_file == null: + push_error( + "Can't add log path to index.html. Error: %s" + % error_string(FileAccess.get_open_error()) + ) + return + # if no log file available than add a information howto enable it + if godot_log.is_empty(): + FileAccess.open( + "%s/logging_not_available.html" % report_path, + FileAccess.WRITE).store_string(NO_LOG_TEMPLATE) + var log_file := "logging_not_available.html" if godot_log.is_empty() else godot_log.get_file() + var content := index_file.get_as_text().replace("${log_file}", log_file) + # overide it + index_file.seek(0) + index_file.store_string(content) + + +func _copy_and_pach(from_file: String, to_dir: String) -> GdUnitResult: + var result := GdUnitFileAccess.copy_file(from_file, to_dir) + if result.is_error(): + return result + var file := FileAccess.open(from_file, FileAccess.READ) + if file == null: + return GdUnitResult.error( + "Can't find file '%s'. Error: %s" + % [from_file, error_string(FileAccess.get_open_error())] + ) + var content := file.get_as_text() + # patch out console format codes + for color_index in range(0, 256): + var to_replace := "[38;5;%dm" % color_index + content = content.replace(to_replace, "") + content = content\ + .replace("", "")\ + .replace(CmdConsole.CSI_BOLD, "")\ + .replace(CmdConsole.CSI_ITALIC, "")\ + .replace(CmdConsole.CSI_UNDERLINE, "") + var to_file := to_dir + "/" + from_file.get_file() + file = FileAccess.open(to_file, FileAccess.WRITE) + if file == null: + return GdUnitResult.error( + "Can't open to write '%s'. Error: %s" + % [to_file, error_string(FileAccess.get_open_error())] + ) + file.store_string(content) + return GdUnitResult.empty() + + +func reports_available() -> bool: + return DirAccess.dir_exists_absolute(_report_root_path) diff --git a/addons/gdUnit4/bin/ProjectScanner.gd b/addons/gdUnit4/bin/ProjectScanner.gd new file mode 100644 index 0000000..93c40de --- /dev/null +++ b/addons/gdUnit4/bin/ProjectScanner.gd @@ -0,0 +1,99 @@ +#!/usr/bin/env -S godot -s +@tool +extends SceneTree + +const CmdConsole = preload("res://addons/gdUnit4/src/cmd/CmdConsole.gd") + + +func _initialize() -> void: + set_auto_accept_quit(false) + var scanner := SourceScanner.new(self) + root.add_child(scanner) + + +# gdlint: disable=trailing-whitespace +class SourceScanner extends Node: + + enum { + INIT, + STARTUP, + SCAN, + QUIT, + DONE + } + + var _state := INIT + var _console := CmdConsole.new() + var _elapsed_time := 0.0 + var _plugin: EditorPlugin + var _fs: EditorFileSystem + var _scene: SceneTree + + + func _init(scene :SceneTree) -> void: + _scene = scene + _console.prints_color(""" + ======================================================================== + Running project scan:""".dedent(), + Color.CORNFLOWER_BLUE + ) + _state = INIT + + + func _process(delta :float) -> void: + _elapsed_time += delta + set_process(false) + await_inital_scan() + await scan_project() + set_process(true) + + + # !! don't use any await in this phase otherwise the editor will be instable !! + func await_inital_scan() -> void: + if _state == INIT: + _console.prints_color("Wait initial scanning ...", Color.DARK_GREEN) + _plugin = EditorPlugin.new() + _fs = _plugin.get_editor_interface().get_resource_filesystem() + _plugin.get_editor_interface().set_plugin_enabled("gdUnit4", false) + _state = STARTUP + + if _state == STARTUP: + if _fs.is_scanning(): + _console.progressBar(_fs.get_scanning_progress() * 100 as int) + # we wait 10s in addition to be on the save site the scanning is done + if _elapsed_time > 10.0: + _console.progressBar(100) + _console.new_line() + _console.prints_color("initial scanning ... done", Color.DARK_GREEN) + _state = SCAN + + + func scan_project() -> void: + if _state != SCAN: + return + _console.prints_color("Scan project: ", Color.SANDY_BROWN) + await get_tree().process_frame + _fs.scan_sources() + await get_tree().create_timer(5).timeout + _console.prints_color("Scan: ", Color.SANDY_BROWN) + _console.progressBar(0) + await get_tree().process_frame + _fs.scan() + while _fs.is_scanning(): + await get_tree().process_frame + _console.progressBar(_fs.get_scanning_progress() * 100 as int) + await get_tree().create_timer(10).timeout + _console.progressBar(100) + _console.new_line() + _plugin.free() + _console.prints_color(""" + Scan project done. + ========================================================================""".dedent(), + Color.CORNFLOWER_BLUE + ) + await get_tree().process_frame + await get_tree().physics_frame + queue_free() + # force quit editor + _state = DONE + _scene.quit(0) diff --git a/addons/gdUnit4/plugin.cfg b/addons/gdUnit4/plugin.cfg new file mode 100644 index 0000000..11f9d21 --- /dev/null +++ b/addons/gdUnit4/plugin.cfg @@ -0,0 +1,7 @@ +[plugin] + +name="gdUnit4" +description="Unit Testing Framework for Godot Scripts" +author="Mike Schulze" +version="4.3.1" +script="plugin.gd" diff --git a/addons/gdUnit4/plugin.gd b/addons/gdUnit4/plugin.gd new file mode 100644 index 0000000..c17fdc9 --- /dev/null +++ b/addons/gdUnit4/plugin.gd @@ -0,0 +1,54 @@ +@tool +extends EditorPlugin + +const GdUnitTools := preload("res://addons/gdUnit4/src/core/GdUnitTools.gd") +const GdUnitTestDiscoverGuard := preload("res://addons/gdUnit4/src/core/discovery/GdUnitTestDiscoverGuard.gd") + + +var _gd_inspector :Node +var _server_node :Node +var _gd_console :Node +var _guard: GdUnitTestDiscoverGuard + + +func _enter_tree() -> void: + if Engine.get_version_info().hex < 0x40200: + prints("GdUnit4 plugin requires a minimum of Godot 4.2.x Version!") + return + GdUnitSettings.setup() + # install the GdUnit inspector + _gd_inspector = load("res://addons/gdUnit4/src/ui/GdUnitInspector.tscn").instantiate() + add_control_to_dock(EditorPlugin.DOCK_SLOT_LEFT_UR, _gd_inspector) + # install the GdUnit Console + _gd_console = load("res://addons/gdUnit4/src/ui/GdUnitConsole.tscn").instantiate() + add_control_to_bottom_panel(_gd_console, "gdUnitConsole") + _server_node = load("res://addons/gdUnit4/src/network/GdUnitServer.tscn").instantiate() + Engine.get_main_loop().root.add_child.call_deferred(_server_node) + prints("Loading GdUnit4 Plugin success") + if GdUnitSettings.is_update_notification_enabled(): + var update_tool :Node = load("res://addons/gdUnit4/src/update/GdUnitUpdateNotify.tscn").instantiate() + Engine.get_main_loop().root.add_child.call_deferred(update_tool) + if GdUnit4CSharpApiLoader.is_mono_supported(): + prints("GdUnit4Net version '%s' loaded." % GdUnit4CSharpApiLoader.version()) + # connect to be notified for script changes to be able to discover new tests + _guard = GdUnitTestDiscoverGuard.new() + resource_saved.connect(_on_resource_saved) + + +func _exit_tree() -> void: + if is_instance_valid(_gd_inspector): + remove_control_from_docks(_gd_inspector) + GodotVersionFixures.free_fix(_gd_inspector) + if is_instance_valid(_gd_console): + remove_control_from_bottom_panel(_gd_console) + _gd_console.free() + if is_instance_valid(_server_node): + Engine.get_main_loop().root.remove_child.call_deferred(_server_node) + _server_node.queue_free() + GdUnitTools.dispose_all.call_deferred() + prints("Unload GdUnit4 Plugin success") + + +func _on_resource_saved(resource :Resource) -> void: + if resource is Script: + _guard.discover(resource) diff --git a/addons/gdUnit4/runtest.cmd b/addons/gdUnit4/runtest.cmd new file mode 100644 index 0000000..0c8fbc5 --- /dev/null +++ b/addons/gdUnit4/runtest.cmd @@ -0,0 +1,25 @@ +@ECHO OFF +CLS + +IF NOT DEFINED GODOT_BIN ( + ECHO "GODOT_BIN is not set." + ECHO "Please set the environment variable 'setx GODOT_BIN '" + EXIT /b -1 +) + +REM scan if Godot mono used and compile c# classes +for /f "tokens=5 delims=. " %%i in ('%GODOT_BIN% --version') do set GODOT_TYPE=%%i +IF "%GODOT_TYPE%" == "mono" ( + ECHO "Godot mono detected" + ECHO Compiling c# classes ... Please Wait + dotnet build --debug + ECHO done %errorlevel% +) + +%GODOT_BIN% -s -d res://addons/gdUnit4/bin/GdUnitCmdTool.gd %* +SET exit_code=%errorlevel% +%GODOT_BIN% --headless --quiet -s -d res://addons/gdUnit4/bin/GdUnitCopyLog.gd %* + +ECHO %exit_code% + +EXIT /B %exit_code% diff --git a/addons/gdUnit4/runtest.sh b/addons/gdUnit4/runtest.sh new file mode 100644 index 0000000..17ecb0d --- /dev/null +++ b/addons/gdUnit4/runtest.sh @@ -0,0 +1,15 @@ +#!/bin/sh + +if [ -z "$GODOT_BIN" ]; then + echo "'GODOT_BIN' is not set." + echo "Please set the environment variable 'export GODOT_BIN=/Applications/Godot.app/Contents/MacOS/Godot'" + exit 1 +fi + +"$GODOT_BIN" --path . -s -d res://addons/gdUnit4/bin/GdUnitCmdTool.gd $* +exit_code=$? +echo "Run tests ends with $exit_code" + +"$GODOT_BIN" --headless --path . --quiet -s -d res://addons/gdUnit4/bin/GdUnitCopyLog.gd $* > /dev/null +exit_code2=$? +exit $exit_code diff --git a/addons/gdUnit4/src/Comparator.gd b/addons/gdUnit4/src/Comparator.gd new file mode 100644 index 0000000..096088a --- /dev/null +++ b/addons/gdUnit4/src/Comparator.gd @@ -0,0 +1,12 @@ +class_name Comparator +extends Resource + +enum { + EQUAL, + LESS_THAN, + LESS_EQUAL, + GREATER_THAN, + GREATER_EQUAL, + BETWEEN_EQUAL, + NOT_BETWEEN_EQUAL, +} diff --git a/addons/gdUnit4/src/Fuzzers.gd b/addons/gdUnit4/src/Fuzzers.gd new file mode 100644 index 0000000..f61ba6e --- /dev/null +++ b/addons/gdUnit4/src/Fuzzers.gd @@ -0,0 +1,34 @@ +## A fuzzer implementation to provide default implementation +class_name Fuzzers +extends Resource + + +## Generates an random string with min/max length and given charset +static func rand_str(min_length: int, max_length :int, charset := StringFuzzer.DEFAULT_CHARSET) -> Fuzzer: + return StringFuzzer.new(min_length, max_length, charset) + + +## Generates an random integer in a range form to +static func rangei(from: int, to: int) -> Fuzzer: + return IntFuzzer.new(from, to) + +## Generates a randon float within in a given range +static func rangef(from: float, to: float) -> Fuzzer: + return FloatFuzzer.new(from, to) + +## Generates an random Vector2 in a range form to +static func rangev2(from: Vector2, to: Vector2) -> Fuzzer: + return Vector2Fuzzer.new(from, to) + + +## Generates an random Vector3 in a range form to +static func rangev3(from: Vector3, to: Vector3) -> Fuzzer: + return Vector3Fuzzer.new(from, to) + +## Generates an integer in a range form to that can be divided exactly by 2 +static func eveni(from: int, to: int) -> Fuzzer: + return IntFuzzer.new(from, to, IntFuzzer.EVEN) + +## Generates an integer in a range form to that cannot be divided exactly by 2 +static func oddi(from: int, to: int) -> Fuzzer: + return IntFuzzer.new(from, to, IntFuzzer.ODD) diff --git a/addons/gdUnit4/src/GdUnitArrayAssert.gd b/addons/gdUnit4/src/GdUnitArrayAssert.gd new file mode 100644 index 0000000..3fdaaca --- /dev/null +++ b/addons/gdUnit4/src/GdUnitArrayAssert.gd @@ -0,0 +1,160 @@ +## An Assertion Tool to verify array values +class_name GdUnitArrayAssert +extends GdUnitAssert + + +## Verifies that the current value is null. +func is_null() -> GdUnitArrayAssert: + return self + + +## Verifies that the current value is not null. +func is_not_null() -> GdUnitArrayAssert: + return self + + +## Verifies that the current Array is equal to the given one. +@warning_ignore("unused_parameter") +func is_equal(expected :Variant) -> GdUnitArrayAssert: + return self + + +## Verifies that the current Array is equal to the given one, ignoring case considerations. +@warning_ignore("unused_parameter") +func is_equal_ignoring_case(expected :Variant) -> GdUnitArrayAssert: + return self + + +## Verifies that the current Array is not equal to the given one. +@warning_ignore("unused_parameter") +func is_not_equal(expected :Variant) -> GdUnitArrayAssert: + return self + + +## Verifies that the current Array is not equal to the given one, ignoring case considerations. +@warning_ignore("unused_parameter") +func is_not_equal_ignoring_case(expected :Variant) -> GdUnitArrayAssert: + return self + + +## Verifies that the current Array is empty, it has a size of 0. +func is_empty() -> GdUnitArrayAssert: + return self + + +## Verifies that the current Array is not empty, it has a size of minimum 1. +func is_not_empty() -> GdUnitArrayAssert: + return self + +## Verifies that the current Array is the same. [br] +## Compares the current by object reference equals +@warning_ignore("unused_parameter", "shadowed_global_identifier") +func is_same(expected :Variant) -> GdUnitArrayAssert: + return self + + +## Verifies that the current Array is NOT the same. [br] +## Compares the current by object reference equals +@warning_ignore("unused_parameter", "shadowed_global_identifier") +func is_not_same(expected :Variant) -> GdUnitArrayAssert: + return self + + +## Verifies that the current Array has a size of given value. +@warning_ignore("unused_parameter") +func has_size(expectd: int) -> GdUnitArrayAssert: + return self + + +## Verifies that the current Array contains the given values, in any order.[br] +## The values are compared by deep parameter comparision, for object reference compare you have to use [method contains_same] +@warning_ignore("unused_parameter") +func contains(expected :Variant) -> GdUnitArrayAssert: + return self + + +## Verifies that the current Array contains exactly only the given values and nothing else, in same order.[br] +## The values are compared by deep parameter comparision, for object reference compare you have to use [method contains_same_exactly] +@warning_ignore("unused_parameter") +func contains_exactly(expected :Variant) -> GdUnitArrayAssert: + return self + + +## Verifies that the current Array contains exactly only the given values and nothing else, in any order.[br] +## The values are compared by deep parameter comparision, for object reference compare you have to use [method contains_same_exactly_in_any_order] +@warning_ignore("unused_parameter") +func contains_exactly_in_any_order(expected :Variant) -> GdUnitArrayAssert: + return self + + +## Verifies that the current Array contains the given values, in any order.[br] +## The values are compared by object reference, for deep parameter comparision use [method contains] +@warning_ignore("unused_parameter") +func contains_same(expected :Variant) -> GdUnitArrayAssert: + return self + + +## Verifies that the current Array contains exactly only the given values and nothing else, in same order.[br] +## The values are compared by object reference, for deep parameter comparision use [method contains_exactly] +@warning_ignore("unused_parameter") +func contains_same_exactly(expected :Variant) -> GdUnitArrayAssert: + return self + + +## Verifies that the current Array contains exactly only the given values and nothing else, in any order.[br] +## The values are compared by object reference, for deep parameter comparision use [method contains_exactly_in_any_order] +@warning_ignore("unused_parameter") +func contains_same_exactly_in_any_order(expected :Variant) -> GdUnitArrayAssert: + return self + + +## Verifies that the current Array do NOT contains the given values, in any order.[br] +## The values are compared by deep parameter comparision, for object reference compare you have to use [method not_contains_same] +## [b]Example:[/b] +## [codeblock] +## # will succeed +## assert_array([1, 2, 3, 4, 5]).not_contains([6]) +## # will fail +## assert_array([1, 2, 3, 4, 5]).not_contains([2, 6]) +## [/codeblock] +@warning_ignore("unused_parameter") +func not_contains(expected :Variant) -> GdUnitArrayAssert: + return self + + +## Verifies that the current Array do NOT contains the given values, in any order.[br] +## The values are compared by object reference, for deep parameter comparision use [method not_contains] +## [b]Example:[/b] +## [codeblock] +## # will succeed +## assert_array([1, 2, 3, 4, 5]).not_contains([6]) +## # will fail +## assert_array([1, 2, 3, 4, 5]).not_contains([2, 6]) +## [/codeblock] +@warning_ignore("unused_parameter") +func not_contains_same(expected :Variant) -> GdUnitArrayAssert: + return self + + +## Extracts all values by given function name and optional arguments into a new ArrayAssert. +## If the elements not accessible by `func_name` the value is converted to `"n.a"`, expecting null values +@warning_ignore("unused_parameter") +func extract(func_name: String, args := Array()) -> GdUnitArrayAssert: + return self + + +## Extracts all values by given extractor's into a new ArrayAssert. +## If the elements not extractable than the value is converted to `"n.a"`, expecting null values +@warning_ignore("unused_parameter") +func extractv( + extractor0 :GdUnitValueExtractor, + extractor1 :GdUnitValueExtractor = null, + extractor2 :GdUnitValueExtractor = null, + extractor3 :GdUnitValueExtractor = null, + extractor4 :GdUnitValueExtractor = null, + extractor5 :GdUnitValueExtractor = null, + extractor6 :GdUnitValueExtractor = null, + extractor7 :GdUnitValueExtractor = null, + extractor8 :GdUnitValueExtractor = null, + extractor9 :GdUnitValueExtractor = null) -> GdUnitArrayAssert: + return self diff --git a/addons/gdUnit4/src/GdUnitAssert.gd b/addons/gdUnit4/src/GdUnitAssert.gd new file mode 100644 index 0000000..d2a5fd0 --- /dev/null +++ b/addons/gdUnit4/src/GdUnitAssert.gd @@ -0,0 +1,41 @@ +## Base interface of all GdUnit asserts +class_name GdUnitAssert +extends RefCounted + + +## Verifies that the current value is null. +@warning_ignore("untyped_declaration") +func is_null(): + return self + + +## Verifies that the current value is not null. +@warning_ignore("untyped_declaration") +func is_not_null(): + return self + + +## Verifies that the current value is equal to expected one. +@warning_ignore("unused_parameter") +@warning_ignore("untyped_declaration") +func is_equal(expected): + return self + + +## Verifies that the current value is not equal to expected one. +@warning_ignore("unused_parameter") +@warning_ignore("untyped_declaration") +func is_not_equal(expected): + return self + + +@warning_ignore("untyped_declaration") +func test_fail(): + return self + + +## Overrides the default failure message by given custom message. +@warning_ignore("unused_parameter") +@warning_ignore("untyped_declaration") +func override_failure_message(message :String): + return self diff --git a/addons/gdUnit4/src/GdUnitAwaiter.gd b/addons/gdUnit4/src/GdUnitAwaiter.gd new file mode 100644 index 0000000..fc2e487 --- /dev/null +++ b/addons/gdUnit4/src/GdUnitAwaiter.gd @@ -0,0 +1,69 @@ +class_name GdUnitAwaiter +extends RefCounted + +const GdUnitAssertImpl = preload("res://addons/gdUnit4/src/asserts/GdUnitAssertImpl.gd") + + +# Waits for a specified signal in an interval of 50ms sent from the , and terminates with an error after the specified timeout has elapsed. +# source: the object from which the signal is emitted +# signal_name: signal name +# args: the expected signal arguments as an array +# timeout: the timeout in ms, default is set to 2000ms +func await_signal_on(source :Object, signal_name :String, args :Array = [], timeout_millis :int = 2000) -> Variant: + # fail fast if the given source instance invalid + var assert_that := GdUnitAssertImpl.new(signal_name) + var line_number := GdUnitAssertions.get_line_number() + if not is_instance_valid(source): + assert_that.report_error(GdAssertMessages.error_await_signal_on_invalid_instance(source, signal_name, args), line_number) + return await Engine.get_main_loop().process_frame + # fail fast if the given source instance invalid + if not is_instance_valid(source): + assert_that.report_error(GdAssertMessages.error_await_signal_on_invalid_instance(source, signal_name, args), line_number) + return await await_idle_frame() + var awaiter := GdUnitSignalAwaiter.new(timeout_millis) + var value :Variant = await awaiter.on_signal(source, signal_name, args) + if awaiter.is_interrupted(): + var failure := "await_signal_on(%s, %s) timed out after %sms" % [signal_name, args, timeout_millis] + assert_that.report_error(failure, line_number) + return value + + +# Waits for a specified signal sent from the between idle frames and aborts with an error after the specified timeout has elapsed +# source: the object from which the signal is emitted +# signal_name: signal name +# args: the expected signal arguments as an array +# timeout: the timeout in ms, default is set to 2000ms +func await_signal_idle_frames(source :Object, signal_name :String, args :Array = [], timeout_millis :int = 2000) -> Variant: + var line_number := GdUnitAssertions.get_line_number() + # fail fast if the given source instance invalid + if not is_instance_valid(source): + GdUnitAssertImpl.new(signal_name)\ + .report_error(GdAssertMessages.error_await_signal_on_invalid_instance(source, signal_name, args), line_number) + return await await_idle_frame() + var awaiter := GdUnitSignalAwaiter.new(timeout_millis, true) + var value :Variant = await awaiter.on_signal(source, signal_name, args) + if awaiter.is_interrupted(): + var failure := "await_signal_idle_frames(%s, %s) timed out after %sms" % [signal_name, args, timeout_millis] + GdUnitAssertImpl.new(signal_name).report_error(failure, line_number) + return value + + +# Waits for for a given amount of milliseconds +# example: +# # waits for 100ms +# await GdUnitAwaiter.await_millis(myNode, 100).completed +# use this waiter and not `await get_tree().create_timer().timeout to prevent errors when a test case is timed out +func await_millis(milliSec :int) -> void: + var timer :Timer = Timer.new() + timer.set_name("gdunit_await_millis_timer_%d" % timer.get_instance_id()) + Engine.get_main_loop().root.add_child(timer) + timer.add_to_group("GdUnitTimers") + timer.set_one_shot(true) + timer.start(milliSec / 1000.0) + await timer.timeout + timer.queue_free() + + +# Waits until the next idle frame +func await_idle_frame() -> void: + await Engine.get_main_loop().process_frame diff --git a/addons/gdUnit4/src/GdUnitBoolAssert.gd b/addons/gdUnit4/src/GdUnitBoolAssert.gd new file mode 100644 index 0000000..de67a94 --- /dev/null +++ b/addons/gdUnit4/src/GdUnitBoolAssert.gd @@ -0,0 +1,41 @@ +## An Assertion Tool to verify boolean values +class_name GdUnitBoolAssert +extends GdUnitAssert + + +## Verifies that the current value is null. +func is_null() -> GdUnitBoolAssert: + return self + + +## Verifies that the current value is not null. +func is_not_null() -> GdUnitBoolAssert: + return self + + +## Verifies that the current value is equal to the given one. +@warning_ignore("unused_parameter") +func is_equal(expected :Variant) -> GdUnitBoolAssert: + return self + + +## Verifies that the current value is not equal to the given one. +@warning_ignore("unused_parameter") +func is_not_equal(expected :Variant) -> GdUnitBoolAssert: + return self + + +## Verifies that the current value is true. +func is_true() -> GdUnitBoolAssert: + return self + + +## Verifies that the current value is false. +func is_false() -> GdUnitBoolAssert: + return self + + +## Overrides the default failure message by given custom message. +@warning_ignore("unused_parameter") +func override_failure_message(message :String) -> GdUnitBoolAssert: + return self diff --git a/addons/gdUnit4/src/GdUnitConstants.gd b/addons/gdUnit4/src/GdUnitConstants.gd new file mode 100644 index 0000000..0445894 --- /dev/null +++ b/addons/gdUnit4/src/GdUnitConstants.gd @@ -0,0 +1,6 @@ +class_name GdUnitConstants +extends RefCounted + +const NO_ARG :Variant = "<--null-->" + +const EXPECT_ASSERT_REPORT_FAILURES := "expect_assert_report_failures" diff --git a/addons/gdUnit4/src/GdUnitDictionaryAssert.gd b/addons/gdUnit4/src/GdUnitDictionaryAssert.gd new file mode 100644 index 0000000..49dd305 --- /dev/null +++ b/addons/gdUnit4/src/GdUnitDictionaryAssert.gd @@ -0,0 +1,105 @@ +## An Assertion Tool to verify dictionary +class_name GdUnitDictionaryAssert +extends GdUnitAssert + + +## Verifies that the current value is null. +func is_null() -> GdUnitDictionaryAssert: + return self + + +## Verifies that the current value is not null. +func is_not_null() -> GdUnitDictionaryAssert: + return self + + +## Verifies that the current dictionary is equal to the given one, ignoring order. +@warning_ignore("unused_parameter") +func is_equal(expected :Variant) -> GdUnitDictionaryAssert: + return self + + +## Verifies that the current dictionary is not equal to the given one, ignoring order. +@warning_ignore("unused_parameter") +func is_not_equal(expected :Variant) -> GdUnitDictionaryAssert: + return self + + +## Verifies that the current dictionary is empty, it has a size of 0. +func is_empty() -> GdUnitDictionaryAssert: + return self + + +## Verifies that the current dictionary is not empty, it has a size of minimum 1. +func is_not_empty() -> GdUnitDictionaryAssert: + return self + + +## Verifies that the current dictionary is the same. [br] +## Compares the current by object reference equals +@warning_ignore("unused_parameter", "shadowed_global_identifier") +func is_same(expected :Variant) -> GdUnitDictionaryAssert: + return self + + +## Verifies that the current dictionary is NOT the same. [br] +## Compares the current by object reference equals +@warning_ignore("unused_parameter") +func is_not_same(expected :Variant) -> GdUnitDictionaryAssert: + return self + + +## Verifies that the current dictionary has a size of given value. +@warning_ignore("unused_parameter") +func has_size(expected: int) -> GdUnitDictionaryAssert: + return self + + +## Verifies that the current dictionary contains the given key(s).[br] +## The keys are compared by deep parameter comparision, for object reference compare you have to use [method contains_same_keys] +@warning_ignore("unused_parameter") +func contains_keys(expected :Array) -> GdUnitDictionaryAssert: + return self + + +## Verifies that the current dictionary contains the given key and value.[br] +## The key and value are compared by deep parameter comparision, for object reference compare you have to use [method contains_same_key_value] +@warning_ignore("unused_parameter") +func contains_key_value(key :Variant, value :Variant) -> GdUnitDictionaryAssert: + return self + + +## Verifies that the current dictionary not contains the given key(s).[br] +## This function is [b]deprecated[/b] you have to use [method not_contains_keys] instead +@warning_ignore("unused_parameter") +func contains_not_keys(expected :Array) -> GdUnitDictionaryAssert: + push_warning("Deprecated: 'contains_not_keys' is deprectated and will be removed soon, use `not_contains_keys` instead!") + return not_contains_keys(expected) + + +## Verifies that the current dictionary not contains the given key(s).[br] +## The keys are compared by deep parameter comparision, for object reference compare you have to use [method not_contains_same_keys] +@warning_ignore("unused_parameter") +func not_contains_keys(expected :Array) -> GdUnitDictionaryAssert: + return self + + +## Verifies that the current dictionary contains the given key(s).[br] +## The keys are compared by object reference, for deep parameter comparision use [method contains_keys] +@warning_ignore("unused_parameter") +func contains_same_keys(expected :Array) -> GdUnitDictionaryAssert: + return self + + +## Verifies that the current dictionary contains the given key and value.[br] +## The key and value are compared by object reference, for deep parameter comparision use [method contains_key_value] +@warning_ignore("unused_parameter") +func contains_same_key_value(key :Variant, value :Variant) -> GdUnitDictionaryAssert: + return self + + +## Verifies that the current dictionary not contains the given key(s). +## The keys are compared by object reference, for deep parameter comparision use [method not_contains_keys] +@warning_ignore("unused_parameter") +func not_contains_same_keys(expected :Array) -> GdUnitDictionaryAssert: + return self diff --git a/addons/gdUnit4/src/GdUnitFailureAssert.gd b/addons/gdUnit4/src/GdUnitFailureAssert.gd new file mode 100644 index 0000000..64ff965 --- /dev/null +++ b/addons/gdUnit4/src/GdUnitFailureAssert.gd @@ -0,0 +1,31 @@ +## An assertion tool to verify GDUnit asserts. +## This assert is for internal use only, to verify that failed asserts work as expected. +class_name GdUnitFailureAssert +extends GdUnitAssert + + +## Verifies if the executed assert was successful +func is_success() -> GdUnitFailureAssert: + return self + +## Verifies if the executed assert has failed +func is_failed() -> GdUnitFailureAssert: + return self + + +## Verifies the failure line is equal to expected one. +@warning_ignore("unused_parameter") +func has_line(expected :int) -> GdUnitFailureAssert: + return self + + +## Verifies the failure message is equal to expected one. +@warning_ignore("unused_parameter") +func has_message(expected: String) -> GdUnitFailureAssert: + return self + + +## Verifies that the failure message starts with the expected message. +@warning_ignore("unused_parameter") +func starts_with_message(expected: String) -> GdUnitFailureAssert: + return self diff --git a/addons/gdUnit4/src/GdUnitFileAssert.gd b/addons/gdUnit4/src/GdUnitFileAssert.gd new file mode 100644 index 0000000..21bf21a --- /dev/null +++ b/addons/gdUnit4/src/GdUnitFileAssert.gd @@ -0,0 +1,19 @@ +class_name GdUnitFileAssert +extends GdUnitAssert + + +func is_file() -> GdUnitFileAssert: + return self + + +func exists() -> GdUnitFileAssert: + return self + + +func is_script() -> GdUnitFileAssert: + return self + + +@warning_ignore("unused_parameter") +func contains_exactly(expected_rows :Array) -> GdUnitFileAssert: + return self diff --git a/addons/gdUnit4/src/GdUnitFloatAssert.gd b/addons/gdUnit4/src/GdUnitFloatAssert.gd new file mode 100644 index 0000000..8f24f56 --- /dev/null +++ b/addons/gdUnit4/src/GdUnitFloatAssert.gd @@ -0,0 +1,83 @@ +## An Assertion Tool to verify float values +class_name GdUnitFloatAssert +extends GdUnitAssert + + +## Verifies that the current value is equal to expected one. +@warning_ignore("unused_parameter") +func is_equal(expected :float) -> GdUnitFloatAssert: + return self + + +## Verifies that the current value is not equal to expected one. +@warning_ignore("unused_parameter") +func is_not_equal(expected :float) -> GdUnitFloatAssert: + return self + + +## Verifies that the current and expected value are approximately equal. +@warning_ignore("unused_parameter", "shadowed_global_identifier") +func is_equal_approx(expected :float, approx :float) -> GdUnitFloatAssert: + return self + + +## Verifies that the current value is less than the given one. +@warning_ignore("unused_parameter") +func is_less(expected :float) -> GdUnitFloatAssert: + return self + + +## Verifies that the current value is less than or equal the given one. +@warning_ignore("unused_parameter") +func is_less_equal(expected :float) -> GdUnitFloatAssert: + return self + + +## Verifies that the current value is greater than the given one. +@warning_ignore("unused_parameter") +func is_greater(expected :float) -> GdUnitFloatAssert: + return self + + +## Verifies that the current value is greater than or equal the given one. +@warning_ignore("unused_parameter") +func is_greater_equal(expected :float) -> GdUnitFloatAssert: + return self + + +## Verifies that the current value is negative. +func is_negative() -> GdUnitFloatAssert: + return self + + +## Verifies that the current value is not negative. +func is_not_negative() -> GdUnitFloatAssert: + return self + + +## Verifies that the current value is equal to zero. +func is_zero() -> GdUnitFloatAssert: + return self + + +## Verifies that the current value is not equal to zero. +func is_not_zero() -> GdUnitFloatAssert: + return self + + +## Verifies that the current value is in the given set of values. +@warning_ignore("unused_parameter") +func is_in(expected :Array) -> GdUnitFloatAssert: + return self + + +## Verifies that the current value is not in the given set of values. +@warning_ignore("unused_parameter") +func is_not_in(expected :Array) -> GdUnitFloatAssert: + return self + + +## Verifies that the current value is between the given boundaries (inclusive). +@warning_ignore("unused_parameter") +func is_between(from :float, to :float) -> GdUnitFloatAssert: + return self diff --git a/addons/gdUnit4/src/GdUnitFuncAssert.gd b/addons/gdUnit4/src/GdUnitFuncAssert.gd new file mode 100644 index 0000000..c5e0e5f --- /dev/null +++ b/addons/gdUnit4/src/GdUnitFuncAssert.gd @@ -0,0 +1,56 @@ +## An Assertion Tool to verify function callback values +class_name GdUnitFuncAssert +extends GdUnitAssert + + +## Verifies that the current value is null. +func is_null() -> GdUnitFuncAssert: + await Engine.get_main_loop().process_frame + return self + + +## Verifies that the current value is not null. +func is_not_null() -> GdUnitFuncAssert: + await Engine.get_main_loop().process_frame + return self + + +## Verifies that the current value is equal to the given one. +@warning_ignore("unused_parameter") +func is_equal(expected :Variant) -> GdUnitFuncAssert: + await Engine.get_main_loop().process_frame + return self + + +## Verifies that the current value is not equal to the given one. +@warning_ignore("unused_parameter") +func is_not_equal(expected :Variant) -> GdUnitFuncAssert: + await Engine.get_main_loop().process_frame + return self + + +## Verifies that the current value is true. +func is_true() -> GdUnitFuncAssert: + await Engine.get_main_loop().process_frame + return self + + +## Verifies that the current value is false. +func is_false() -> GdUnitFuncAssert: + await Engine.get_main_loop().process_frame + return self + + +## Overrides the default failure message by given custom message. +@warning_ignore("unused_parameter") +func override_failure_message(message :String) -> GdUnitFuncAssert: + return self + + +## Sets the timeout in ms to wait the function returnd the expected value, if the time over a failure is emitted.[br] +## e.g.[br] +## do wait until 5s the function `is_state` is returns 10 [br] +## [code]assert_func(instance, "is_state").wait_until(5000).is_equal(10)[/code] +@warning_ignore("unused_parameter") +func wait_until(timeout :int) -> GdUnitFuncAssert: + return self diff --git a/addons/gdUnit4/src/GdUnitGodotErrorAssert.gd b/addons/gdUnit4/src/GdUnitGodotErrorAssert.gd new file mode 100644 index 0000000..d689625 --- /dev/null +++ b/addons/gdUnit4/src/GdUnitGodotErrorAssert.gd @@ -0,0 +1,46 @@ +## An assertion tool to verify for Godot runtime errors like assert() and push notifications like push_error(). +class_name GdUnitGodotErrorAssert +extends GdUnitAssert + + +## Verifies if the executed code runs without any runtime errors +## Usage: +## [codeblock] +## await assert_error().is_success() +## [/codeblock] +func is_success() -> GdUnitGodotErrorAssert: + await Engine.get_main_loop().process_frame + return self + + +## Verifies if the executed code runs into a runtime error +## Usage: +## [codeblock] +## await assert_error().is_runtime_error() +## [/codeblock] +@warning_ignore("unused_parameter") +func is_runtime_error(expected_error :String) -> GdUnitGodotErrorAssert: + await Engine.get_main_loop().process_frame + return self + + +## Verifies if the executed code has a push_warning() used +## Usage: +## [codeblock] +## await assert_error().is_push_warning() +## [/codeblock] +@warning_ignore("unused_parameter") +func is_push_warning(expected_warning :String) -> GdUnitGodotErrorAssert: + await Engine.get_main_loop().process_frame + return self + + +## Verifies if the executed code has a push_error() used +## Usage: +## [codeblock] +## await assert_error().is_push_error() +## [/codeblock] +@warning_ignore("unused_parameter") +func is_push_error(expected_error :String) -> GdUnitGodotErrorAssert: + await Engine.get_main_loop().process_frame + return self diff --git a/addons/gdUnit4/src/GdUnitIntAssert.gd b/addons/gdUnit4/src/GdUnitIntAssert.gd new file mode 100644 index 0000000..584788f --- /dev/null +++ b/addons/gdUnit4/src/GdUnitIntAssert.gd @@ -0,0 +1,87 @@ +## An Assertion Tool to verify integer values +class_name GdUnitIntAssert +extends GdUnitAssert + + +## Verifies that the current value is equal to expected one. +@warning_ignore("unused_parameter") +func is_equal(expected :int) -> GdUnitIntAssert: + return self + + +## Verifies that the current value is not equal to expected one. +@warning_ignore("unused_parameter") +func is_not_equal(expected :int) -> GdUnitIntAssert: + return self + + +## Verifies that the current value is less than the given one. +@warning_ignore("unused_parameter") +func is_less(expected :int) -> GdUnitIntAssert: + return self + + +## Verifies that the current value is less than or equal the given one. +@warning_ignore("unused_parameter") +func is_less_equal(expected :int) -> GdUnitIntAssert: + return self + + +## Verifies that the current value is greater than the given one. +@warning_ignore("unused_parameter") +func is_greater(expected :int) -> GdUnitIntAssert: + return self + + +## Verifies that the current value is greater than or equal the given one. +@warning_ignore("unused_parameter") +func is_greater_equal(expected :int) -> GdUnitIntAssert: + return self + + +## Verifies that the current value is even. +func is_even() -> GdUnitIntAssert: + return self + + +## Verifies that the current value is odd. +func is_odd() -> GdUnitIntAssert: + return self + + +## Verifies that the current value is negative. +func is_negative() -> GdUnitIntAssert: + return self + + +## Verifies that the current value is not negative. +func is_not_negative() -> GdUnitIntAssert: + return self + + +## Verifies that the current value is equal to zero. +func is_zero() -> GdUnitIntAssert: + return self + + +## Verifies that the current value is not equal to zero. +func is_not_zero() -> GdUnitIntAssert: + return self + + +## Verifies that the current value is in the given set of values. +@warning_ignore("unused_parameter") +func is_in(expected :Array) -> GdUnitIntAssert: + return self + + +## Verifies that the current value is not in the given set of values. +@warning_ignore("unused_parameter") +func is_not_in(expected :Array) -> GdUnitIntAssert: + return self + + +## Verifies that the current value is between the given boundaries (inclusive). +@warning_ignore("unused_parameter") +func is_between(from :int, to :int) -> GdUnitIntAssert: + return self diff --git a/addons/gdUnit4/src/GdUnitObjectAssert.gd b/addons/gdUnit4/src/GdUnitObjectAssert.gd new file mode 100644 index 0000000..f2068e5 --- /dev/null +++ b/addons/gdUnit4/src/GdUnitObjectAssert.gd @@ -0,0 +1,49 @@ +## An Assertion Tool to verify Object values +class_name GdUnitObjectAssert +extends GdUnitAssert + + +## Verifies that the current value is equal to expected one. +@warning_ignore("unused_parameter") +func is_equal(expected :Variant) -> GdUnitObjectAssert: + return self + + +## Verifies that the current value is not equal to expected one. +@warning_ignore("unused_parameter") +func is_not_equal(expected :Variant) -> GdUnitObjectAssert: + return self + + +## Verifies that the current value is null. +func is_null() -> GdUnitObjectAssert: + return self + + +## Verifies that the current value is not null. +func is_not_null() -> GdUnitObjectAssert: + return self + + +## Verifies that the current value is the same as the given one. +@warning_ignore("unused_parameter", "shadowed_global_identifier") +func is_same(expected :Variant) -> GdUnitObjectAssert: + return self + + +## Verifies that the current value is not the same as the given one. +@warning_ignore("unused_parameter") +func is_not_same(expected :Variant) -> GdUnitObjectAssert: + return self + + +## Verifies that the current value is an instance of the given type. +@warning_ignore("unused_parameter") +func is_instanceof(expected :Object) -> GdUnitObjectAssert: + return self + + +## Verifies that the current value is not an instance of the given type. +@warning_ignore("unused_parameter") +func is_not_instanceof(expected :Variant) -> GdUnitObjectAssert: + return self diff --git a/addons/gdUnit4/src/GdUnitResultAssert.gd b/addons/gdUnit4/src/GdUnitResultAssert.gd new file mode 100644 index 0000000..347e637 --- /dev/null +++ b/addons/gdUnit4/src/GdUnitResultAssert.gd @@ -0,0 +1,45 @@ +## An Assertion Tool to verify Results +class_name GdUnitResultAssert +extends GdUnitAssert + + +## Verifies that the current value is null. +func is_null() -> GdUnitResultAssert: + return self + + +## Verifies that the current value is not null. +func is_not_null() -> GdUnitResultAssert: + return self + + +## Verifies that the result is ends up with empty +func is_empty() -> GdUnitResultAssert: + return self + + +## Verifies that the result is ends up with success +func is_success() -> GdUnitResultAssert: + return self + + +## Verifies that the result is ends up with warning +func is_warning() -> GdUnitResultAssert: + return self + + +## Verifies that the result is ends up with error +func is_error() -> GdUnitResultAssert: + return self + + +## Verifies that the result contains the given message +@warning_ignore("unused_parameter") +func contains_message(expected :String) -> GdUnitResultAssert: + return self + + +## Verifies that the result contains the given value +@warning_ignore("unused_parameter") +func is_value(expected :Variant) -> GdUnitResultAssert: + return self diff --git a/addons/gdUnit4/src/GdUnitSceneRunner.gd b/addons/gdUnit4/src/GdUnitSceneRunner.gd new file mode 100644 index 0000000..5707a6a --- /dev/null +++ b/addons/gdUnit4/src/GdUnitSceneRunner.gd @@ -0,0 +1,286 @@ +## The scene runner for GdUnit to simmulate scene interactions +class_name GdUnitSceneRunner +extends RefCounted + +const NO_ARG = GdUnitConstants.NO_ARG + + +## Sets the mouse cursor to given position relative to the viewport. +@warning_ignore("unused_parameter") +func set_mouse_pos(pos :Vector2) -> GdUnitSceneRunner: + return self + + +## Gets the current mouse position of the current viewport +func get_mouse_position() -> Vector2: + return Vector2.ZERO + + +## Gets the current global mouse position of the current window +func get_global_mouse_position() -> Vector2: + return Vector2.ZERO + + +## Simulates that an action has been pressed.[br] +## [member action] : the action e.g. [code]"ui_up"[/code][br] +@warning_ignore("unused_parameter") +func simulate_action_pressed(action :String) -> GdUnitSceneRunner: + return self + + +## Simulates that an action is pressed.[br] +## [member action] : the action e.g. [code]"ui_up"[/code][br] +@warning_ignore("unused_parameter") +func simulate_action_press(action :String) -> GdUnitSceneRunner: + return self + + +## Simulates that an action has been released.[br] +## [member action] : the action e.g. [code]"ui_up"[/code][br] +@warning_ignore("unused_parameter") +func simulate_action_release(action :String) -> GdUnitSceneRunner: + return self + + +## Simulates that a key has been pressed.[br] +## [member key_code] : the key code e.g. [constant KEY_ENTER][br] +## [member shift_pressed] : false by default set to true if simmulate shift is press[br] +## [member ctrl_pressed] : false by default set to true if simmulate control is press[br] +@warning_ignore("unused_parameter") +func simulate_key_pressed(key_code :int, shift_pressed := false, ctrl_pressed := false) -> GdUnitSceneRunner: + return self + + +## Simulates that a key is pressed.[br] +## [member key_code] : the key code e.g. [constant KEY_ENTER][br] +## [member shift_pressed] : false by default set to true if simmulate shift is press[br] +## [member ctrl_pressed] : false by default set to true if simmulate control is press[br] +@warning_ignore("unused_parameter") +func simulate_key_press(key_code :int, shift_pressed := false, ctrl_pressed := false) -> GdUnitSceneRunner: + return self + + +## Simulates that a key has been released.[br] +## [member key_code] : the key code e.g. [constant KEY_ENTER][br] +## [member shift_pressed] : false by default set to true if simmulate shift is press[br] +## [member ctrl_pressed] : false by default set to true if simmulate control is press[br] +@warning_ignore("unused_parameter") +func simulate_key_release(key_code :int, shift_pressed := false, ctrl_pressed := false) -> GdUnitSceneRunner: + return self + + +## Simulates a mouse moved to final position.[br] +## [member pos] : The final mouse position +@warning_ignore("unused_parameter") +func simulate_mouse_move(pos :Vector2) -> GdUnitSceneRunner: + return self + + +## Simulates a mouse move to the relative coordinates (offset).[br] +## [color=yellow]You must use [b]await[/b] to wait until the simulated mouse movement is complete.[/color][br] +## [br] +## [member relative] : The relative position, indicating the mouse position offset.[br] +## [member time] : The time to move the mouse by the relative position in seconds (default is 1 second).[br] +## [member trans_type] : Sets the type of transition used (default is TRANS_LINEAR).[br] +## [codeblock] +## func test_move_mouse(): +## var runner = scene_runner("res://scenes/simple_scene.tscn") +## await runner.simulate_mouse_move_relative(Vector2(100,100)) +## [/codeblock] +@warning_ignore("unused_parameter") +func simulate_mouse_move_relative(relative: Vector2, time: float = 1.0, trans_type: Tween.TransitionType = Tween.TRANS_LINEAR) -> GdUnitSceneRunner: + await Engine.get_main_loop().process_frame + return self + + +## Simulates a mouse move to the absolute coordinates.[br] +## [color=yellow]You must use [b]await[/b] to wait until the simulated mouse movement is complete.[/color][br] +## [br] +## [member position] : The final position of the mouse.[br] +## [member time] : The time to move the mouse to the final position in seconds (default is 1 second).[br] +## [member trans_type] : Sets the type of transition used (default is TRANS_LINEAR).[br] +## [codeblock] +## func test_move_mouse(): +## var runner = scene_runner("res://scenes/simple_scene.tscn") +## await runner.simulate_mouse_move_absolute(Vector2(100,100)) +## [/codeblock] +@warning_ignore("unused_parameter") +func simulate_mouse_move_absolute(position: Vector2, time: float = 1.0, trans_type: Tween.TransitionType = Tween.TRANS_LINEAR) -> GdUnitSceneRunner: + await Engine.get_main_loop().process_frame + return self + + +## Simulates a mouse button pressed.[br] +## [member buttonIndex] : The mouse button identifier, one of the [enum MouseButton] or button wheel constants. +@warning_ignore("unused_parameter") +func simulate_mouse_button_pressed(buttonIndex :MouseButton, double_click := false) -> GdUnitSceneRunner: + return self + + +## Simulates a mouse button press (holding)[br] +## [member buttonIndex] : The mouse button identifier, one of the [enum MouseButton] or button wheel constants. +@warning_ignore("unused_parameter") +func simulate_mouse_button_press(buttonIndex :MouseButton, double_click := false) -> GdUnitSceneRunner: + return self + + +## Simulates a mouse button released.[br] +## [member buttonIndex] : The mouse button identifier, one of the [enum MouseButton] or button wheel constants. +@warning_ignore("unused_parameter") +func simulate_mouse_button_release(buttonIndex :MouseButton) -> GdUnitSceneRunner: + return self + + +## Sets how fast or slow the scene simulation is processed (clock ticks versus the real).[br] +## It defaults to 1.0. A value of 2.0 means the game moves twice as fast as real life, +## whilst a value of 0.5 means the game moves at half the regular speed. +@warning_ignore("unused_parameter") +func set_time_factor(time_factor := 1.0) -> GdUnitSceneRunner: + return self + + +## Simulates scene processing for a certain number of frames.[br] +## [member frames] : amount of frames to process[br] +## [member delta_milli] : the time delta between a frame in milliseconds +@warning_ignore("unused_parameter") +func simulate_frames(frames: int, delta_milli :int = -1) -> GdUnitSceneRunner: + await Engine.get_main_loop().process_frame + return self + + +## Simulates scene processing until the given signal is emitted by the scene.[br] +## [member signal_name] : the signal to stop the simulation[br] +## [member args] : optional signal arguments to be matched for stop[br] +@warning_ignore("unused_parameter") +func simulate_until_signal( + signal_name :String, + arg0 :Variant = NO_ARG, + arg1 :Variant = NO_ARG, + arg2 :Variant = NO_ARG, + arg3 :Variant = NO_ARG, + arg4 :Variant = NO_ARG, + arg5 :Variant = NO_ARG, + arg6 :Variant = NO_ARG, + arg7 :Variant = NO_ARG, + arg8 :Variant = NO_ARG, + arg9 :Variant = NO_ARG) -> GdUnitSceneRunner: + await Engine.get_main_loop().process_frame + return self + + +## Simulates scene processing until the given signal is emitted by the given object.[br] +## [member source] : the object that should emit the signal[br] +## [member signal_name] : the signal to stop the simulation[br] +## [member args] : optional signal arguments to be matched for stop +@warning_ignore("unused_parameter") +func simulate_until_object_signal( + source :Object, + signal_name :String, + arg0 :Variant = NO_ARG, + arg1 :Variant = NO_ARG, + arg2 :Variant = NO_ARG, + arg3 :Variant = NO_ARG, + arg4 :Variant = NO_ARG, + arg5 :Variant = NO_ARG, + arg6 :Variant = NO_ARG, + arg7 :Variant = NO_ARG, + arg8 :Variant = NO_ARG, + arg9 :Variant = NO_ARG) -> GdUnitSceneRunner: + await Engine.get_main_loop().process_frame + return self + + +### Waits for all input events are processed +func await_input_processed() -> void: + await Engine.get_main_loop().process_frame + await Engine.get_main_loop().physics_frame + + +## Waits for the function return value until specified timeout or fails.[br] +## [member args] : optional function arguments +@warning_ignore("unused_parameter") +func await_func(func_name :String, args := []) -> GdUnitFuncAssert: + return null + + +## Waits for the function return value of specified source until specified timeout or fails.[br] +## [member source : the object where implements the function[br] +## [member args] : optional function arguments +@warning_ignore("unused_parameter") +func await_func_on(source :Object, func_name :String, args := []) -> GdUnitFuncAssert: + return null + + +## Waits for given signal is emited by the scene until a specified timeout to fail.[br] +## [member signal_name] : signal name[br] +## [member args] : the expected signal arguments as an array[br] +## [member timeout] : the timeout in ms, default is set to 2000ms +@warning_ignore("unused_parameter") +func await_signal(signal_name :String, args := [], timeout := 2000 ) -> void: + await Engine.get_main_loop().process_frame + pass + + +## Waits for given signal is emited by the until a specified timeout to fail.[br] +## [member source] : the object from which the signal is emitted[br] +## [member signal_name] : signal name[br] +## [member args] : the expected signal arguments as an array[br] +## [member timeout] : the timeout in ms, default is set to 2000ms +@warning_ignore("unused_parameter") +func await_signal_on(source :Object, signal_name :String, args := [], timeout := 2000 ) -> void: + pass + + +## maximizes the window to bring the scene visible +func maximize_view() -> GdUnitSceneRunner: + return self + + +## Return the current value of the property with the name .[br] +## [member name] : name of property[br] +## [member return] : the value of the property +@warning_ignore("unused_parameter") +func get_property(name :String) -> Variant: + return null + +## Set the value of the property with the name .[br] +## [member name] : name of property[br] +## [member value] : value of property[br] +## [member return] : true|false depending on valid property name. +@warning_ignore("unused_parameter") +func set_property(name :String, value :Variant) -> bool: + return false + + +## executes the function specified by in the scene and returns the result.[br] +## [member name] : the name of the function to execute[br] +## [member args] : optional function arguments[br] +## [member return] : the function result +@warning_ignore("unused_parameter") +func invoke( + name :String, + arg0 :Variant = NO_ARG, + arg1 :Variant = NO_ARG, + arg2 :Variant = NO_ARG, + arg3 :Variant = NO_ARG, + arg4 :Variant = NO_ARG, + arg5 :Variant = NO_ARG, + arg6 :Variant = NO_ARG, + arg7 :Variant = NO_ARG, + arg8 :Variant = NO_ARG, + arg9 :Variant = NO_ARG) -> Variant: + return null + + +## Searches for the specified node with the name in the current scene and returns it, otherwise null.[br] +## [member name] : the name of the node to find[br] +## [member recursive] : enables/disables seraching recursive[br] +## [member return] : the node if find otherwise null +@warning_ignore("unused_parameter") +func find_child(name :String, recursive :bool = true, owned :bool = false) -> Node: + return null + + +## Access to current running scene +func scene() -> Node: + return null diff --git a/addons/gdUnit4/src/GdUnitSignalAssert.gd b/addons/gdUnit4/src/GdUnitSignalAssert.gd new file mode 100644 index 0000000..8150df2 --- /dev/null +++ b/addons/gdUnit4/src/GdUnitSignalAssert.gd @@ -0,0 +1,38 @@ +## An Assertion Tool to verify for emitted signals until a waiting time +class_name GdUnitSignalAssert +extends GdUnitAssert + + +## Verifies that given signal is emitted until waiting time +@warning_ignore("unused_parameter") +func is_emitted(name :String, args := []) -> GdUnitSignalAssert: + await Engine.get_main_loop().process_frame + return self + + +## Verifies that given signal is NOT emitted until waiting time +@warning_ignore("unused_parameter") +func is_not_emitted(name :String, args := []) -> GdUnitSignalAssert: + await Engine.get_main_loop().process_frame + return self + + +## Verifies the signal exists checked the emitter +@warning_ignore("unused_parameter") +func is_signal_exists(name :String) -> GdUnitSignalAssert: + return self + + +## Overrides the default failure message by given custom message. +@warning_ignore("unused_parameter") +func override_failure_message(message :String) -> GdUnitSignalAssert: + return self + + +## Sets the assert signal timeout in ms, if the time over a failure is reported.[br] +## e.g.[br] +## do wait until 5s the instance has emitted the signal `signal_a`[br] +## [code]assert_signal(instance).wait_until(5000).is_emitted("signal_a")[/code] +@warning_ignore("unused_parameter") +func wait_until(timeout :int) -> GdUnitSignalAssert: + return self diff --git a/addons/gdUnit4/src/GdUnitStringAssert.gd b/addons/gdUnit4/src/GdUnitStringAssert.gd new file mode 100644 index 0000000..5b4a6a1 --- /dev/null +++ b/addons/gdUnit4/src/GdUnitStringAssert.gd @@ -0,0 +1,79 @@ +## An Assertion Tool to verify String values +class_name GdUnitStringAssert +extends GdUnitAssert + + +## Verifies that the current String is equal to the given one. +@warning_ignore("unused_parameter") +func is_equal(expected :Variant) -> GdUnitStringAssert: + return self + + +## Verifies that the current String is equal to the given one, ignoring case considerations. +@warning_ignore("unused_parameter") +func is_equal_ignoring_case(expected :Variant) -> GdUnitStringAssert: + return self + + +## Verifies that the current String is not equal to the given one. +@warning_ignore("unused_parameter") +func is_not_equal(expected :Variant) -> GdUnitStringAssert: + return self + + +## Verifies that the current String is not equal to the given one, ignoring case considerations. +@warning_ignore("unused_parameter") +func is_not_equal_ignoring_case(expected :Variant) -> GdUnitStringAssert: + return self + + +## Verifies that the current String is empty, it has a length of 0. +func is_empty() -> GdUnitStringAssert: + return self + + +## Verifies that the current String is not empty, it has a length of minimum 1. +func is_not_empty() -> GdUnitStringAssert: + return self + + +## Verifies that the current String contains the given String. +@warning_ignore("unused_parameter") +func contains(expected: String) -> GdUnitStringAssert: + return self + + +## Verifies that the current String does not contain the given String. +@warning_ignore("unused_parameter") +func not_contains(expected: String) -> GdUnitStringAssert: + return self + + +## Verifies that the current String does not contain the given String, ignoring case considerations. +@warning_ignore("unused_parameter") +func contains_ignoring_case(expected: String) -> GdUnitStringAssert: + return self + + +## Verifies that the current String does not contain the given String, ignoring case considerations. +@warning_ignore("unused_parameter") +func not_contains_ignoring_case(expected: String) -> GdUnitStringAssert: + return self + + +## Verifies that the current String starts with the given prefix. +@warning_ignore("unused_parameter") +func starts_with(expected: String) -> GdUnitStringAssert: + return self + + +## Verifies that the current String ends with the given suffix. +@warning_ignore("unused_parameter") +func ends_with(expected: String) -> GdUnitStringAssert: + return self + + +## Verifies that the current String has the expected length by used comparator. +@warning_ignore("unused_parameter") +func has_length(length: int, comparator: int = Comparator.EQUAL) -> GdUnitStringAssert: + return self diff --git a/addons/gdUnit4/src/GdUnitTestSuite.gd b/addons/gdUnit4/src/GdUnitTestSuite.gd new file mode 100644 index 0000000..7d689f6 --- /dev/null +++ b/addons/gdUnit4/src/GdUnitTestSuite.gd @@ -0,0 +1,620 @@ +## The main class for all GdUnit test suites[br] +## This class is the main class to implement your unit tests[br] +## You have to extend and implement your test cases as described[br] +## e.g MyTests.gd [br] +## [codeblock] +## extends GdUnitTestSuite +## # testcase +## func test_case_a(): +## assert_that("value").is_equal("value") +## [/codeblock] +## @tutorial: https://mikeschulze.github.io/gdUnit4/faq/test-suite/ + +@icon("res://addons/gdUnit4/src/ui/assets/TestSuite.svg") +class_name GdUnitTestSuite +extends Node + +const NO_ARG :Variant = GdUnitConstants.NO_ARG + +### internal runtime variables that must not be overwritten!!! +@warning_ignore("unused_private_class_variable") +var __is_skipped := false +@warning_ignore("unused_private_class_variable") +var __skip_reason :String = "Unknow." +var __active_test_case :String +var __awaiter := __gdunit_awaiter() +# holds the actual execution context +var __execution_context :RefCounted + + +### We now load all used asserts and tool scripts into the cache according to the principle of "lazy loading" +### in order to noticeably reduce the loading time of the test suite. +# We go this hard way to increase the loading performance to avoid reparsing all the used scripts +# for more detailed info -> https://github.com/godotengine/godot/issues/67400 +func __lazy_load(script_path :String) -> GDScript: + return GdUnitAssertions.__lazy_load(script_path) + + +func __gdunit_assert() -> GDScript: + return __lazy_load("res://addons/gdUnit4/src/asserts/GdUnitAssertImpl.gd") + + +func __gdunit_tools() -> GDScript: + return __lazy_load("res://addons/gdUnit4/src/core/GdUnitTools.gd") + + +func __gdunit_file_access() -> GDScript: + return __lazy_load("res://addons/gdUnit4/src/core/GdUnitFileAccess.gd") + + +func __gdunit_awaiter() -> Object: + return __lazy_load("res://addons/gdUnit4/src/GdUnitAwaiter.gd").new() + + +func __gdunit_argument_matchers() -> GDScript: + return __lazy_load("res://addons/gdUnit4/src/matchers/GdUnitArgumentMatchers.gd") + + +func __gdunit_object_interactions() -> GDScript: + return __lazy_load("res://addons/gdUnit4/src/core/GdUnitObjectInteractions.gd") + + +## This function is called before a test suite starts[br] +## You can overwrite to prepare test data or initalizize necessary variables +func before() -> void: + pass + + +## This function is called at least when a test suite is finished[br] +## You can overwrite to cleanup data created during test running +func after() -> void: + pass + + +## This function is called before a test case starts[br] +## You can overwrite to prepare test case specific data +func before_test() -> void: + pass + + +## This function is called after the test case is finished[br] +## You can overwrite to cleanup your test case specific data +func after_test() -> void: + pass + + +func is_failure(_expected_failure :String = NO_ARG) -> bool: + return Engine.get_meta("GD_TEST_FAILURE") if Engine.has_meta("GD_TEST_FAILURE") else false + + +func set_active_test_case(test_case :String) -> void: + __active_test_case = test_case + + +# === Tools ==================================================================== +# Mapps Godot error number to a readable error message. See at ERROR +# https://docs.godotengine.org/de/stable/classes/class_@globalscope.html#enum-globalscope-error +func error_as_string(error_number :int) -> String: + return error_string(error_number) + + +## A litle helper to auto freeing your created objects after test execution +func auto_free(obj :Variant) -> Variant: + if __execution_context != null: + return __execution_context.register_auto_free(obj) + else: + if is_instance_valid(obj): + obj.queue_free() + return obj + + +@warning_ignore("native_method_override") +func add_child(node :Node, force_readable_name := false, internal := Node.INTERNAL_MODE_DISABLED) -> void: + super.add_child(node, force_readable_name, internal) + if __execution_context != null: + __execution_context.orphan_monitor_start() + + +## Discard the error message triggered by a timeout (interruption).[br] +## By default, an interrupted test is reported as an error.[br] +## This function allows you to change the message to Success when an interrupted error is reported. +func discard_error_interupted_by_timeout() -> void: + __gdunit_tools().register_expect_interupted_by_timeout(self, __active_test_case) + + +## Creates a new directory under the temporary directory *user://tmp*[br] +## Useful for storing data during test execution. [br] +## The directory is automatically deleted after test suite execution +func create_temp_dir(relative_path :String) -> String: + return __gdunit_file_access().create_temp_dir(relative_path) + + +## Deletes the temporary base directory[br] +## Is called automatically after each execution of the test suite +func clean_temp_dir() -> void: + __gdunit_file_access().clear_tmp() + + +## Creates a new file under the temporary directory *user://tmp* + [br] +## with given name and given file (default = File.WRITE)[br] +## If success the returned File is automatically closed after the execution of the test suite +func create_temp_file(relative_path :String, file_name :String, mode := FileAccess.WRITE) -> FileAccess: + return __gdunit_file_access().create_temp_file(relative_path, file_name, mode) + + +## Reads a resource by given path into a PackedStringArray. +func resource_as_array(resource_path :String) -> PackedStringArray: + return __gdunit_file_access().resource_as_array(resource_path) + + +## Reads a resource by given path and returned the content as String. +func resource_as_string(resource_path :String) -> String: + return __gdunit_file_access().resource_as_string(resource_path) + + +## Reads a resource by given path and return Variand translated by str_to_var +func resource_as_var(resource_path :String) -> Variant: + return str_to_var(__gdunit_file_access().resource_as_string(resource_path)) + + +## clears the debuger error list[br] +## PROTOTYPE!!!! Don't use it for now +func clear_push_errors() -> void: + __gdunit_tools().clear_push_errors() + + +## Waits for given signal is emited by the until a specified timeout to fail[br] +## source: the object from which the signal is emitted[br] +## signal_name: signal name[br] +## args: the expected signal arguments as an array[br] +## timeout: the timeout in ms, default is set to 2000ms +func await_signal_on(source :Object, signal_name :String, args :Array = [], timeout :int = 2000) -> Variant: + return await __awaiter.await_signal_on(source, signal_name, args, timeout) + + +## Waits until the next idle frame +func await_idle_frame() -> void: + await __awaiter.await_idle_frame() + + +## Waits for for a given amount of milliseconds[br] +## example:[br] +## [codeblock] +## # waits for 100ms +## await await_millis(myNode, 100).completed +## [/codeblock][br] +## use this waiter and not `await get_tree().create_timer().timeout to prevent errors when a test case is timed out +func await_millis(timeout :int) -> void: + await __awaiter.await_millis(timeout) + + +## Creates a new scene runner to allow simulate interactions checked a scene.[br] +## The runner will manage the scene instance and release after the runner is released[br] +## example:[br] +## [codeblock] +## # creates a runner by using a instanciated scene +## var scene = load("res://foo/my_scne.tscn").instantiate() +## var runner := scene_runner(scene) +## +## # or simply creates a runner by using the scene resource path +## var runner := scene_runner("res://foo/my_scne.tscn") +## [/codeblock] +func scene_runner(scene :Variant, verbose := false) -> GdUnitSceneRunner: + return auto_free(__lazy_load("res://addons/gdUnit4/src/core/GdUnitSceneRunnerImpl.gd").new(scene, verbose)) + + +# === Mocking & Spy =========================================================== + +## do return a default value for primitive types or null +const RETURN_DEFAULTS = GdUnitMock.RETURN_DEFAULTS +## do call the real implementation +const CALL_REAL_FUNC = GdUnitMock.CALL_REAL_FUNC +## do return a default value for primitive types and a fully mocked value for Object types +## builds full deep mocked object +const RETURN_DEEP_STUB = GdUnitMock.RETURN_DEEP_STUB + + +## Creates a mock for given class name +func mock(clazz :Variant, mock_mode := RETURN_DEFAULTS) -> Variant: + return __lazy_load("res://addons/gdUnit4/src/mocking/GdUnitMockBuilder.gd").build(clazz, mock_mode) + + +## Creates a spy checked given object instance +func spy(instance :Variant) -> Variant: + return __lazy_load("res://addons/gdUnit4/src/spy/GdUnitSpyBuilder.gd").build(instance) + + +## Configures a return value for the specified function and used arguments.[br] +## [b]Example: +## [codeblock] +## # overrides the return value of myMock.is_selected() to false +## do_return(false).on(myMock).is_selected() +## [/codeblock] +func do_return(value :Variant) -> GdUnitMock: + return GdUnitMock.new(value) + + +## Verifies certain behavior happened at least once or exact number of times +func verify(obj :Variant, times := 1) -> Variant: + return __gdunit_object_interactions().verify(obj, times) + + +## Verifies no interactions is happen checked this mock or spy +func verify_no_interactions(obj :Variant) -> GdUnitAssert: + return __gdunit_object_interactions().verify_no_interactions(obj) + + +## Verifies the given mock or spy has any unverified interaction. +func verify_no_more_interactions(obj :Variant) -> GdUnitAssert: + return __gdunit_object_interactions().verify_no_more_interactions(obj) + + +## Resets the saved function call counters checked a mock or spy +func reset(obj :Variant) -> void: + __gdunit_object_interactions().reset(obj) + + +## Starts monitoring the specified source to collect all transmitted signals.[br] +## The collected signals can then be checked with 'assert_signal'.[br] +## By default, the specified source is automatically released when the test ends. +## You can control this behavior by setting auto_free to false if you do not want the source to be automatically freed.[br] +## Usage: +## [codeblock] +## var emitter := monitor_signals(MyEmitter.new()) +## # call the function to send the signal +## emitter.do_it() +## # verify the signial is emitted +## await assert_signal(emitter).is_emitted('my_signal') +## [/codeblock] +func monitor_signals(source :Object, _auto_free := true) -> Object: + __lazy_load("res://addons/gdUnit4/src/core/thread/GdUnitThreadManager.gd")\ + .get_current_context()\ + .get_signal_collector()\ + .register_emitter(source) + return auto_free(source) if _auto_free else source + + +# === Argument matchers ======================================================== +## Argument matcher to match any argument +func any() -> GdUnitArgumentMatcher: + return __gdunit_argument_matchers().any() + + +## Argument matcher to match any boolean value +func any_bool() -> GdUnitArgumentMatcher: + return __gdunit_argument_matchers().by_type(TYPE_BOOL) + + +## Argument matcher to match any integer value +func any_int() -> GdUnitArgumentMatcher: + return __gdunit_argument_matchers().by_type(TYPE_INT) + + +## Argument matcher to match any float value +func any_float() -> GdUnitArgumentMatcher: + return __gdunit_argument_matchers().by_type(TYPE_FLOAT) + + +## Argument matcher to match any string value +func any_string() -> GdUnitArgumentMatcher: + return __gdunit_argument_matchers().by_type(TYPE_STRING) + + +## Argument matcher to match any Color value +func any_color() -> GdUnitArgumentMatcher: + return __gdunit_argument_matchers().by_type(TYPE_COLOR) + + +## Argument matcher to match any Vector typed value +func any_vector() -> GdUnitArgumentMatcher: + return __gdunit_argument_matchers().by_types([ + TYPE_VECTOR2, + TYPE_VECTOR2I, + TYPE_VECTOR3, + TYPE_VECTOR3I, + TYPE_VECTOR4, + TYPE_VECTOR4I, + ]) + + +## Argument matcher to match any Vector2 value +func any_vector2() -> GdUnitArgumentMatcher: + return __gdunit_argument_matchers().by_type(TYPE_VECTOR2) + + +## Argument matcher to match any Vector2i value +func any_vector2i() -> GdUnitArgumentMatcher: + return __gdunit_argument_matchers().by_type(TYPE_VECTOR2I) + + +## Argument matcher to match any Vector3 value +func any_vector3() -> GdUnitArgumentMatcher: + return __gdunit_argument_matchers().by_type(TYPE_VECTOR3) + + +## Argument matcher to match any Vector3i value +func any_vector3i() -> GdUnitArgumentMatcher: + return __gdunit_argument_matchers().by_type(TYPE_VECTOR3I) + + +## Argument matcher to match any Vector4 value +func any_vector4() -> GdUnitArgumentMatcher: + return __gdunit_argument_matchers().by_type(TYPE_VECTOR4) + + +## Argument matcher to match any Vector3i value +func any_vector4i() -> GdUnitArgumentMatcher: + return __gdunit_argument_matchers().by_type(TYPE_VECTOR4I) + + +## Argument matcher to match any Rect2 value +func any_rect2() -> GdUnitArgumentMatcher: + return __gdunit_argument_matchers().by_type(TYPE_RECT2) + + +## Argument matcher to match any Plane value +func any_plane() -> GdUnitArgumentMatcher: + return __gdunit_argument_matchers().by_type(TYPE_PLANE) + + +## Argument matcher to match any Quaternion value +func any_quat() -> GdUnitArgumentMatcher: + return __gdunit_argument_matchers().by_type(TYPE_QUATERNION) + + +## Argument matcher to match any AABB value +func any_aabb() -> GdUnitArgumentMatcher: + return __gdunit_argument_matchers().by_type(TYPE_AABB) + + +## Argument matcher to match any Basis value +func any_basis() -> GdUnitArgumentMatcher: + return __gdunit_argument_matchers().by_type(TYPE_BASIS) + + +## Argument matcher to match any Transform2D value +func any_transform_2d() -> GdUnitArgumentMatcher: + return __gdunit_argument_matchers().by_type(TYPE_TRANSFORM2D) + + +## Argument matcher to match any Transform3D value +func any_transform_3d() -> GdUnitArgumentMatcher: + return __gdunit_argument_matchers().by_type(TYPE_TRANSFORM3D) + + +## Argument matcher to match any NodePath value +func any_node_path() -> GdUnitArgumentMatcher: + return __gdunit_argument_matchers().by_type(TYPE_NODE_PATH) + + +## Argument matcher to match any RID value +func any_rid() -> GdUnitArgumentMatcher: + return __gdunit_argument_matchers().by_type(TYPE_RID) + + +## Argument matcher to match any Object value +func any_object() -> GdUnitArgumentMatcher: + return __gdunit_argument_matchers().by_type(TYPE_OBJECT) + + +## Argument matcher to match any Dictionary value +func any_dictionary() -> GdUnitArgumentMatcher: + return __gdunit_argument_matchers().by_type(TYPE_DICTIONARY) + + +## Argument matcher to match any Array value +func any_array() -> GdUnitArgumentMatcher: + return __gdunit_argument_matchers().by_type(TYPE_ARRAY) + + +## Argument matcher to match any PackedByteArray value +func any_packed_byte_array() -> GdUnitArgumentMatcher: + return __gdunit_argument_matchers().by_type(TYPE_PACKED_BYTE_ARRAY) + + +## Argument matcher to match any PackedInt32Array value +func any_packed_int32_array() -> GdUnitArgumentMatcher: + return __gdunit_argument_matchers().by_type(TYPE_PACKED_INT32_ARRAY) + + +## Argument matcher to match any PackedInt64Array value +func any_packed_int64_array() -> GdUnitArgumentMatcher: + return __gdunit_argument_matchers().by_type(TYPE_PACKED_INT64_ARRAY) + + +## Argument matcher to match any PackedFloat32Array value +func any_packed_float32_array() -> GdUnitArgumentMatcher: + return __gdunit_argument_matchers().by_type(TYPE_PACKED_FLOAT32_ARRAY) + + +## Argument matcher to match any PackedFloat64Array value +func any_packed_float64_array() -> GdUnitArgumentMatcher: + return __gdunit_argument_matchers().by_type(TYPE_PACKED_FLOAT64_ARRAY) + + +## Argument matcher to match any PackedStringArray value +func any_packed_string_array() -> GdUnitArgumentMatcher: + return __gdunit_argument_matchers().by_type(TYPE_PACKED_STRING_ARRAY) + + +## Argument matcher to match any PackedVector2Array value +func any_packed_vector2_array() -> GdUnitArgumentMatcher: + return __gdunit_argument_matchers().by_type(TYPE_PACKED_VECTOR2_ARRAY) + + +## Argument matcher to match any PackedVector3Array value +func any_packed_vector3_array() -> GdUnitArgumentMatcher: + return __gdunit_argument_matchers().by_type(TYPE_PACKED_VECTOR3_ARRAY) + + +## Argument matcher to match any PackedColorArray value +func any_packed_color_array() -> GdUnitArgumentMatcher: + return __gdunit_argument_matchers().by_type(TYPE_PACKED_COLOR_ARRAY) + + +## Argument matcher to match any instance of given class +func any_class(clazz :Object) -> GdUnitArgumentMatcher: + return __gdunit_argument_matchers().any_class(clazz) + + +# === value extract utils ====================================================== +## Builds an extractor by given function name and optional arguments +func extr(func_name :String, args := Array()) -> GdUnitValueExtractor: + return __lazy_load("res://addons/gdUnit4/src/extractors/GdUnitFuncValueExtractor.gd").new(func_name, args) + + +## Constructs a tuple by given arguments +func tuple(arg0 :Variant, + arg1 :Variant=NO_ARG, + arg2 :Variant=NO_ARG, + arg3 :Variant=NO_ARG, + arg4 :Variant=NO_ARG, + arg5 :Variant=NO_ARG, + arg6 :Variant=NO_ARG, + arg7 :Variant=NO_ARG, + arg8 :Variant=NO_ARG, + arg9 :Variant=NO_ARG) -> GdUnitTuple: + return GdUnitTuple.new(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9) + + +# === Asserts ================================================================== + +## The common assertion tool to verify values. +## It checks the given value by type to fit to the best assert +func assert_that(current :Variant) -> GdUnitAssert: + match typeof(current): + TYPE_BOOL: + return assert_bool(current) + TYPE_INT: + return assert_int(current) + TYPE_FLOAT: + return assert_float(current) + TYPE_STRING: + return assert_str(current) + TYPE_VECTOR2, TYPE_VECTOR2I, TYPE_VECTOR3, TYPE_VECTOR3I, TYPE_VECTOR4, TYPE_VECTOR4I: + return assert_vector(current) + TYPE_DICTIONARY: + return assert_dict(current) + TYPE_ARRAY, TYPE_PACKED_BYTE_ARRAY, TYPE_PACKED_INT32_ARRAY, TYPE_PACKED_INT64_ARRAY,\ + TYPE_PACKED_FLOAT32_ARRAY, TYPE_PACKED_FLOAT64_ARRAY, TYPE_PACKED_STRING_ARRAY,\ + TYPE_PACKED_VECTOR2_ARRAY, TYPE_PACKED_VECTOR3_ARRAY, TYPE_PACKED_COLOR_ARRAY: + return assert_array(current) + TYPE_OBJECT, TYPE_NIL: + return assert_object(current) + _: + return __gdunit_assert().new(current) + + +## An assertion tool to verify boolean values. +func assert_bool(current :Variant) -> GdUnitBoolAssert: + return __lazy_load("res://addons/gdUnit4/src/asserts/GdUnitBoolAssertImpl.gd").new(current) + + +## An assertion tool to verify String values. +func assert_str(current :Variant) -> GdUnitStringAssert: + return __lazy_load("res://addons/gdUnit4/src/asserts/GdUnitStringAssertImpl.gd").new(current) + + +## An assertion tool to verify integer values. +func assert_int(current :Variant) -> GdUnitIntAssert: + return __lazy_load("res://addons/gdUnit4/src/asserts/GdUnitIntAssertImpl.gd").new(current) + + +## An assertion tool to verify float values. +func assert_float(current :Variant) -> GdUnitFloatAssert: + return __lazy_load("res://addons/gdUnit4/src/asserts/GdUnitFloatAssertImpl.gd").new(current) + + +## An assertion tool to verify Vector values.[br] +## This assertion supports all vector types.[br] +## Usage: +## [codeblock] +## assert_vector(Vector2(1.2, 1.000001)).is_equal(Vector2(1.2, 1.000001)) +## [/codeblock] +func assert_vector(current :Variant) -> GdUnitVectorAssert: + return __lazy_load("res://addons/gdUnit4/src/asserts/GdUnitVectorAssertImpl.gd").new(current) + + +## An assertion tool to verify arrays. +func assert_array(current :Variant) -> GdUnitArrayAssert: + return __lazy_load("res://addons/gdUnit4/src/asserts/GdUnitArrayAssertImpl.gd").new(current) + + +## An assertion tool to verify dictionaries. +func assert_dict(current :Variant) -> GdUnitDictionaryAssert: + return __lazy_load("res://addons/gdUnit4/src/asserts/GdUnitDictionaryAssertImpl.gd").new(current) + + +## An assertion tool to verify FileAccess. +func assert_file(current :Variant) -> GdUnitFileAssert: + return __lazy_load("res://addons/gdUnit4/src/asserts/GdUnitFileAssertImpl.gd").new(current) + + +## An assertion tool to verify Objects. +func assert_object(current :Variant) -> GdUnitObjectAssert: + return __lazy_load("res://addons/gdUnit4/src/asserts/GdUnitObjectAssertImpl.gd").new(current) + + +func assert_result(current :Variant) -> GdUnitResultAssert: + return __lazy_load("res://addons/gdUnit4/src/asserts/GdUnitResultAssertImpl.gd").new(current) + + +## An assertion tool that waits until a certain time for an expected function return value +func assert_func(instance :Object, func_name :String, args := Array()) -> GdUnitFuncAssert: + return __lazy_load("res://addons/gdUnit4/src/asserts/GdUnitFuncAssertImpl.gd").new(instance, func_name, args) + + +## An Assertion Tool to verify for emitted signals until a certain time. +func assert_signal(instance :Object) -> GdUnitSignalAssert: + return __lazy_load("res://addons/gdUnit4/src/asserts/GdUnitSignalAssertImpl.gd").new(instance) + + +## An assertion tool to test for failing assertions.[br] +## This assert is only designed for internal use to verify failing asserts working as expected.[br] +## Usage: +## [codeblock] +## assert_failure(func(): assert_bool(true).is_not_equal(true)) \ +## .has_message("Expecting:\n 'true'\n not equal to\n 'true'") +## [/codeblock] +func assert_failure(assertion :Callable) -> GdUnitFailureAssert: + return __lazy_load("res://addons/gdUnit4/src/asserts/GdUnitFailureAssertImpl.gd").new().execute(assertion) + + +## An assertion tool to test for failing assertions.[br] +## This assert is only designed for internal use to verify failing asserts working as expected.[br] +## Usage: +## [codeblock] +## await assert_failure_await(func(): assert_bool(true).is_not_equal(true)) \ +## .has_message("Expecting:\n 'true'\n not equal to\n 'true'") +## [/codeblock] +func assert_failure_await(assertion :Callable) -> GdUnitFailureAssert: + return await __lazy_load("res://addons/gdUnit4/src/asserts/GdUnitFailureAssertImpl.gd").new().execute_and_await(assertion) + + +## An assertion tool to verify for Godot errors.[br] +## You can use to verify for certain Godot erros like failing assertions, push_error, push_warn.[br] +## Usage: +## [codeblock] +## # tests no error was occured during execution the code +## await assert_error(func (): return 0 )\ +## .is_success() +## +## # tests an push_error('test error') was occured during execution the code +## await assert_error(func (): push_error('test error') )\ +## .is_push_error('test error') +## [/codeblock] +func assert_error(current :Callable) -> GdUnitGodotErrorAssert: + return __lazy_load("res://addons/gdUnit4/src/asserts/GdUnitGodotErrorAssertImpl.gd").new(current) + + +func assert_not_yet_implemented() -> void: + __gdunit_assert().new(null).test_fail() + + +func fail(message :String) -> void: + __gdunit_assert().new(null).report_error(message) + + +# --- internal stuff do not override!!! +func ResourcePath() -> String: + return get_script().resource_path diff --git a/addons/gdUnit4/src/GdUnitTuple.gd b/addons/gdUnit4/src/GdUnitTuple.gd new file mode 100644 index 0000000..6c91002 --- /dev/null +++ b/addons/gdUnit4/src/GdUnitTuple.gd @@ -0,0 +1,28 @@ +## A tuple implementation to hold two or many values +class_name GdUnitTuple +extends RefCounted + +const NO_ARG :Variant = GdUnitConstants.NO_ARG + +var __values :Array = Array() + + +func _init(arg0:Variant, + arg1 :Variant=NO_ARG, + arg2 :Variant=NO_ARG, + arg3 :Variant=NO_ARG, + arg4 :Variant=NO_ARG, + arg5 :Variant=NO_ARG, + arg6 :Variant=NO_ARG, + arg7 :Variant=NO_ARG, + arg8 :Variant=NO_ARG, + arg9 :Variant=NO_ARG) -> void: + __values = GdArrayTools.filter_value([arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9], NO_ARG) + + +func values() -> Array: + return __values + + +func _to_string() -> String: + return "tuple(%s)" % str(__values) diff --git a/addons/gdUnit4/src/GdUnitValueExtractor.gd b/addons/gdUnit4/src/GdUnitValueExtractor.gd new file mode 100644 index 0000000..1a34445 --- /dev/null +++ b/addons/gdUnit4/src/GdUnitValueExtractor.gd @@ -0,0 +1,9 @@ +## This is the base interface for value extraction +class_name GdUnitValueExtractor +extends RefCounted + + +## Extracts a value by given implementation +func extract_value(value :Variant) -> Variant: + push_error("Uninplemented func 'extract_value'") + return value diff --git a/addons/gdUnit4/src/GdUnitVectorAssert.gd b/addons/gdUnit4/src/GdUnitVectorAssert.gd new file mode 100644 index 0000000..915fd3b --- /dev/null +++ b/addons/gdUnit4/src/GdUnitVectorAssert.gd @@ -0,0 +1,57 @@ +## An Assertion Tool to verify Vector values +class_name GdUnitVectorAssert +extends GdUnitAssert + + +## Verifies that the current value is equal to expected one. +@warning_ignore("unused_parameter") +func is_equal(expected :Variant) -> GdUnitVectorAssert: + return self + + +## Verifies that the current value is not equal to expected one. +@warning_ignore("unused_parameter") +func is_not_equal(expected :Variant) -> GdUnitVectorAssert: + return self + + +## Verifies that the current and expected value are approximately equal. +@warning_ignore("unused_parameter", "shadowed_global_identifier") +func is_equal_approx(expected :Variant, approx :Variant) -> GdUnitVectorAssert: + return self + + +## Verifies that the current value is less than the given one. +@warning_ignore("unused_parameter") +func is_less(expected :Variant) -> GdUnitVectorAssert: + return self + + +## Verifies that the current value is less than or equal the given one. +@warning_ignore("unused_parameter") +func is_less_equal(expected :Variant) -> GdUnitVectorAssert: + return self + + +## Verifies that the current value is greater than the given one. +@warning_ignore("unused_parameter") +func is_greater(expected :Variant) -> GdUnitVectorAssert: + return self + + +## Verifies that the current value is greater than or equal the given one. +@warning_ignore("unused_parameter") +func is_greater_equal(expected :Variant) -> GdUnitVectorAssert: + return self + + +## Verifies that the current value is between the given boundaries (inclusive). +@warning_ignore("unused_parameter") +func is_between(from :Variant, to :Variant) -> GdUnitVectorAssert: + return self + + +## Verifies that the current value is not between the given boundaries (inclusive). +@warning_ignore("unused_parameter") +func is_not_between(from :Variant, to :Variant) -> GdUnitVectorAssert: + return self diff --git a/addons/gdUnit4/src/asserts/CallBackValueProvider.gd b/addons/gdUnit4/src/asserts/CallBackValueProvider.gd new file mode 100644 index 0000000..6be4b3e --- /dev/null +++ b/addons/gdUnit4/src/asserts/CallBackValueProvider.gd @@ -0,0 +1,25 @@ +# a value provider unsing a callback to get `next` value from a certain function +class_name CallBackValueProvider +extends ValueProvider + +var _cb :Callable +var _args :Array + + +func _init(instance :Object, func_name :String, args :Array = Array(), force_error := true) -> void: + _cb = Callable(instance, func_name); + _args = args + if force_error and not _cb.is_valid(): + push_error("Can't find function '%s' checked instance %s" % [func_name, instance]) + + +func get_value() -> Variant: + if not _cb.is_valid(): + return null + if _args.is_empty(): + return await _cb.call() + return await _cb.callv(_args) + + +func dispose() -> void: + _cb = Callable() diff --git a/addons/gdUnit4/src/asserts/DefaultValueProvider.gd b/addons/gdUnit4/src/asserts/DefaultValueProvider.gd new file mode 100644 index 0000000..2f828fa --- /dev/null +++ b/addons/gdUnit4/src/asserts/DefaultValueProvider.gd @@ -0,0 +1,13 @@ +# default value provider, simple returns the initial value +class_name DefaultValueProvider +extends ValueProvider + +var _value: Variant + + +func _init(value: Variant) -> void: + _value = value + + +func get_value() -> Variant: + return _value diff --git a/addons/gdUnit4/src/asserts/GdAssertMessages.gd b/addons/gdUnit4/src/asserts/GdAssertMessages.gd new file mode 100644 index 0000000..01402ff --- /dev/null +++ b/addons/gdUnit4/src/asserts/GdAssertMessages.gd @@ -0,0 +1,615 @@ +class_name GdAssertMessages +extends Resource + +const WARN_COLOR = "#EFF883" +const ERROR_COLOR = "#CD5C5C" +const VALUE_COLOR = "#1E90FF" +const SUB_COLOR := Color(1, 0, 0, .3) +const ADD_COLOR := Color(0, 1, 0, .3) + + +static func format_dict(value :Dictionary) -> String: + if value.is_empty(): + return "{ }" + var as_rows := var_to_str(value).split("\n") + for index in range( 1, as_rows.size()-1): + as_rows[index] = " " + as_rows[index] + as_rows[-1] = " " + as_rows[-1] + return "\n".join(as_rows) + + +# improved version of InputEvent as text +static func input_event_as_text(event :InputEvent) -> String: + var text := "" + if event is InputEventKey: + text += "InputEventKey : key='%s', pressed=%s, keycode=%d, physical_keycode=%s" % [ + event.as_text(), event.pressed, event.keycode, event.physical_keycode] + else: + text += event.as_text() + if event is InputEventMouse: + text += ", global_position %s" % event.global_position + if event is InputEventWithModifiers: + text += ", shift=%s, alt=%s, control=%s, meta=%s, command=%s" % [ + event.shift_pressed, event.alt_pressed, event.ctrl_pressed, event.meta_pressed, event.command_or_control_autoremap] + return text + + +static func _colored_string_div(characters :String) -> String: + return colored_array_div(characters.to_utf8_buffer()) + + +static func colored_array_div(characters :PackedByteArray) -> String: + if characters.is_empty(): + return "" + var result := PackedByteArray() + var index := 0 + var missing_chars := PackedByteArray() + var additional_chars := PackedByteArray() + + while index < characters.size(): + var character := characters[index] + match character: + GdDiffTool.DIV_ADD: + index += 1 + additional_chars.append(characters[index]) + GdDiffTool.DIV_SUB: + index += 1 + missing_chars.append(characters[index]) + _: + if not missing_chars.is_empty(): + result.append_array(format_chars(missing_chars, SUB_COLOR)) + missing_chars = PackedByteArray() + if not additional_chars.is_empty(): + result.append_array(format_chars(additional_chars, ADD_COLOR)) + additional_chars = PackedByteArray() + result.append(character) + index += 1 + + result.append_array(format_chars(missing_chars, SUB_COLOR)) + result.append_array(format_chars(additional_chars, ADD_COLOR)) + return result.get_string_from_utf8() + + +static func _typed_value(value :Variant) -> String: + return GdDefaultValueDecoder.decode(value) + + +static func _warning(error :String) -> String: + return "[color=%s]%s[/color]" % [WARN_COLOR, error] + + +static func _error(error :String) -> String: + return "[color=%s]%s[/color]" % [ERROR_COLOR, error] + + +static func _nerror(number :Variant) -> String: + match typeof(number): + TYPE_INT: + return "[color=%s]%d[/color]" % [ERROR_COLOR, number] + TYPE_FLOAT: + return "[color=%s]%f[/color]" % [ERROR_COLOR, number] + _: + return "[color=%s]%s[/color]" % [ERROR_COLOR, str(number)] + + +static func _colored_value(value :Variant) -> String: + match typeof(value): + TYPE_STRING, TYPE_STRING_NAME: + return "'[color=%s]%s[/color]'" % [VALUE_COLOR, _colored_string_div(value)] + TYPE_INT: + return "'[color=%s]%d[/color]'" % [VALUE_COLOR, value] + TYPE_FLOAT: + return "'[color=%s]%s[/color]'" % [VALUE_COLOR, _typed_value(value)] + TYPE_COLOR: + return "'[color=%s]%s[/color]'" % [VALUE_COLOR, _typed_value(value)] + TYPE_OBJECT: + if value == null: + return "'[color=%s][/color]'" % [VALUE_COLOR] + if value is InputEvent: + return "[color=%s]<%s>[/color]" % [VALUE_COLOR, input_event_as_text(value)] + if value.has_method("_to_string"): + return "[color=%s]<%s>[/color]" % [VALUE_COLOR, str(value)] + return "[color=%s]<%s>[/color]" % [VALUE_COLOR, value.get_class()] + TYPE_DICTIONARY: + return "'[color=%s]%s[/color]'" % [VALUE_COLOR, format_dict(value)] + _: + if GdArrayTools.is_array_type(value): + return "'[color=%s]%s[/color]'" % [VALUE_COLOR, _typed_value(value)] + return "'[color=%s]%s[/color]'" % [VALUE_COLOR, value] + + + +static func _index_report_as_table(index_reports :Array) -> String: + var table := "[table=3]$cells[/table]" + var header := "[cell][right][b]$text[/b][/right]\t[/cell]" + var cell := "[cell][right]$text[/right]\t[/cell]" + var cells := header.replace("$text", "Index") + header.replace("$text", "Current") + header.replace("$text", "Expected") + for report :Variant in index_reports: + var index :String = str(report["index"]) + var current :String = str(report["current"]) + var expected :String = str(report["expected"]) + cells += cell.replace("$text", index) + cell.replace("$text", current) + cell.replace("$text", expected) + return table.replace("$cells", cells) + + +static func orphan_detected_on_suite_setup(count :int) -> String: + return "%s\n Detected <%d> orphan nodes during test suite setup stage! [b]Check before() and after()![/b]" % [ + _warning("WARNING:"), count] + + +static func orphan_detected_on_test_setup(count :int) -> String: + return "%s\n Detected <%d> orphan nodes during test setup! [b]Check before_test() and after_test()![/b]" % [ + _warning("WARNING:"), count] + + +static func orphan_detected_on_test(count :int) -> String: + return "%s\n Detected <%d> orphan nodes during test execution!" % [ + _warning("WARNING:"), count] + + +static func fuzzer_interuped(iterations: int, error: String) -> String: + return "%s %s %s\n %s" % [ + _error("Found an error after"), + _colored_value(iterations + 1), + _error("test iterations"), + error] + + +static func test_timeout(timeout :int) -> String: + return "%s\n %s" % [_error("Timeout !"), _colored_value("Test timed out after %s" % LocalTime.elapsed(timeout))] + + +# gdlint:disable = mixed-tabs-and-spaces +static func test_suite_skipped(hint :String, skip_count :int) -> String: + return """ + %s + Tests skipped: %s + Reason: %s + """.dedent().trim_prefix("\n")\ + % [_error("Entire test-suite is skipped!"), _colored_value(skip_count), _colored_value(hint)] + + +static func test_skipped(hint :String) -> String: + return """ + %s + Reason: %s + """.dedent().trim_prefix("\n")\ + % [_error("This test is skipped!"), _colored_value(hint)] + + +static func error_not_implemented() -> String: + return _error("Test not implemented!") + + +static func error_is_null(current :Variant) -> String: + return "%s %s but was %s" % [_error("Expecting:"), _colored_value(null), _colored_value(current)] + + +static func error_is_not_null() -> String: + return "%s %s" % [_error("Expecting: not to be"), _colored_value(null)] + + +static func error_equal(current :Variant, expected :Variant, index_reports :Array = []) -> String: + var report := """ + %s + %s + but was + %s""".dedent().trim_prefix("\n") % [_error("Expecting:"), _colored_value(expected), _colored_value(current)] + if not index_reports.is_empty(): + report += "\n\n%s\n%s" % [_error("Differences found:"), _index_report_as_table(index_reports)] + return report + + +static func error_not_equal(current :Variant, expected :Variant) -> String: + return "%s\n %s\n not equal to\n %s" % [_error("Expecting:"), _colored_value(expected), _colored_value(current)] + + +static func error_not_equal_case_insensetiv(current :Variant, expected :Variant) -> String: + return "%s\n %s\n not equal to (case insensitiv)\n %s" % [ + _error("Expecting:"), _colored_value(expected), _colored_value(current)] + + +static func error_is_empty(current :Variant) -> String: + return "%s\n must be empty but was\n %s" % [_error("Expecting:"), _colored_value(current)] + + +static func error_is_not_empty() -> String: + return "%s\n must not be empty" % [_error("Expecting:")] + + +static func error_is_same(current :Variant, expected :Variant) -> String: + return "%s\n %s\n to refer to the same object\n %s" % [_error("Expecting:"), _colored_value(expected), _colored_value(current)] + + +@warning_ignore("unused_parameter") +static func error_not_same(_current :Variant, expected :Variant) -> String: + return "%s\n %s" % [_error("Expecting not same:"), _colored_value(expected)] + + +static func error_not_same_error(current :Variant, expected :Variant) -> String: + return "%s\n %s\n but was\n %s" % [_error("Expecting error message:"), _colored_value(expected), _colored_value(current)] + + +static func error_is_instanceof(current: GdUnitResult, expected :GdUnitResult) -> String: + return "%s\n %s\n But it was %s" % [_error("Expected instance of:"),\ + _colored_value(expected.or_else(null)), _colored_value(current.or_else(null))] + + +# -- Boolean Assert specific messages ----------------------------------------------------- +static func error_is_true(current :Variant) -> String: + return "%s %s but is %s" % [_error("Expecting:"), _colored_value(true), _colored_value(current)] + + +static func error_is_false(current :Variant) -> String: + return "%s %s but is %s" % [_error("Expecting:"), _colored_value(false), _colored_value(current)] + + +# - Integer/Float Assert specific messages ----------------------------------------------------- + +static func error_is_even(current :Variant) -> String: + return "%s\n %s must be even" % [_error("Expecting:"), _colored_value(current)] + + +static func error_is_odd(current :Variant) -> String: + return "%s\n %s must be odd" % [_error("Expecting:"), _colored_value(current)] + + +static func error_is_negative(current :Variant) -> String: + return "%s\n %s be negative" % [_error("Expecting:"), _colored_value(current)] + + +static func error_is_not_negative(current :Variant) -> String: + return "%s\n %s be not negative" % [_error("Expecting:"), _colored_value(current)] + + +static func error_is_zero(current :Variant) -> String: + return "%s\n equal to 0 but is %s" % [_error("Expecting:"), _colored_value(current)] + + +static func error_is_not_zero() -> String: + return "%s\n not equal to 0" % [_error("Expecting:")] + + +static func error_is_wrong_type(current_type :Variant.Type, expected_type :Variant.Type) -> String: + return "%s\n Expecting type %s but is %s" % [ + _error("Unexpected type comparison:"), + _colored_value(GdObjects.type_as_string(current_type)), + _colored_value(GdObjects.type_as_string(expected_type))] + + +static func error_is_value(operation :int, current :Variant, expected :Variant, expected2 :Variant = null) -> String: + match operation: + Comparator.EQUAL: + return "%s\n %s but was '%s'" % [_error("Expecting:"), _colored_value(expected), _nerror(current)] + Comparator.LESS_THAN: + return "%s\n %s but was '%s'" % [_error("Expecting to be less than:"), _colored_value(expected), _nerror(current)] + Comparator.LESS_EQUAL: + return "%s\n %s but was '%s'" % [_error("Expecting to be less than or equal:"), _colored_value(expected), _nerror(current)] + Comparator.GREATER_THAN: + return "%s\n %s but was '%s'" % [_error("Expecting to be greater than:"), _colored_value(expected), _nerror(current)] + Comparator.GREATER_EQUAL: + return "%s\n %s but was '%s'" % [_error("Expecting to be greater than or equal:"), _colored_value(expected), _nerror(current)] + Comparator.BETWEEN_EQUAL: + return "%s\n %s\n in range between\n %s <> %s" % [ + _error("Expecting:"), _colored_value(current), _colored_value(expected), _colored_value(expected2)] + Comparator.NOT_BETWEEN_EQUAL: + return "%s\n %s\n not in range between\n %s <> %s" % [ + _error("Expecting:"), _colored_value(current), _colored_value(expected), _colored_value(expected2)] + return "TODO create expected message" + + +static func error_is_in(current :Variant, expected :Array) -> String: + return "%s\n %s\n is in\n %s" % [_error("Expecting:"), _colored_value(current), _colored_value(str(expected))] + + +static func error_is_not_in(current :Variant, expected :Array) -> String: + return "%s\n %s\n is not in\n %s" % [_error("Expecting:"), _colored_value(current), _colored_value(str(expected))] + + +# - StringAssert --------------------------------------------------------------------------------- +static func error_equal_ignoring_case(current :Variant, expected :Variant) -> String: + return "%s\n %s\n but was\n %s (ignoring case)" % [_error("Expecting:"), _colored_value(expected), _colored_value(current)] + + +static func error_contains(current :Variant, expected :Variant) -> String: + return "%s\n %s\n do contains\n %s" % [_error("Expecting:"), _colored_value(current), _colored_value(expected)] + + +static func error_not_contains(current :Variant, expected :Variant) -> String: + return "%s\n %s\n not do contain\n %s" % [_error("Expecting:"), _colored_value(current), _colored_value(expected)] + + +static func error_contains_ignoring_case(current :Variant, expected :Variant) -> String: + return "%s\n %s\n contains\n %s\n (ignoring case)" % [_error("Expecting:"), _colored_value(current), _colored_value(expected)] + + +static func error_not_contains_ignoring_case(current :Variant, expected :Variant) -> String: + return "%s\n %s\n not do contains\n %s\n (ignoring case)" % [_error("Expecting:"), _colored_value(current), _colored_value(expected)] + + +static func error_starts_with(current :Variant, expected :Variant) -> String: + return "%s\n %s\n to start with\n %s" % [_error("Expecting:"), _colored_value(current), _colored_value(expected)] + + +static func error_ends_with(current :Variant, expected :Variant) -> String: + return "%s\n %s\n to end with\n %s" % [_error("Expecting:"), _colored_value(current), _colored_value(expected)] + + +static func error_has_length(current :Variant, expected: int, compare_operator :int) -> String: + var current_length :Variant = current.length() if current != null else null + match compare_operator: + Comparator.EQUAL: + return "%s\n %s but was '%s' in\n %s" % [ + _error("Expecting size:"), _colored_value(expected), _nerror(current_length), _colored_value(current)] + Comparator.LESS_THAN: + return "%s\n %s but was '%s' in\n %s" % [ + _error("Expecting size to be less than:"), _colored_value(expected), _nerror(current_length), _colored_value(current)] + Comparator.LESS_EQUAL: + return "%s\n %s but was '%s' in\n %s" % [ + _error("Expecting size to be less than or equal:"), _colored_value(expected), + _nerror(current_length), _colored_value(current)] + Comparator.GREATER_THAN: + return "%s\n %s but was '%s' in\n %s" % [ + _error("Expecting size to be greater than:"), _colored_value(expected), + _nerror(current_length), _colored_value(current)] + Comparator.GREATER_EQUAL: + return "%s\n %s but was '%s' in\n %s" % [ + _error("Expecting size to be greater than or equal:"), _colored_value(expected), + _nerror(current_length), _colored_value(current)] + return "TODO create expected message" + + +# - ArrayAssert specific messgaes --------------------------------------------------- + +static func error_arr_contains(current :Variant, expected :Array, not_expect :Array, not_found :Array, by_reference :bool) -> String: + var failure_message := "Expecting contains SAME elements:" if by_reference else "Expecting contains elements:" + var error := "%s\n %s\n do contains (in any order)\n %s" % [ + _error(failure_message), _colored_value(current), _colored_value(expected)] + if not not_expect.is_empty(): + error += "\nbut some elements where not expected:\n %s" % _colored_value(not_expect) + if not not_found.is_empty(): + var prefix := "but" if not_expect.is_empty() else "and" + error += "\n%s could not find elements:\n %s" % [prefix, _colored_value(not_found)] + return error + + +static func error_arr_contains_exactly( + current :Variant, + expected :Variant, + not_expect :Variant, + not_found :Variant, compare_mode :GdObjects.COMPARE_MODE) -> String: + var failure_message := ( + "Expecting contains exactly elements:" if compare_mode == GdObjects.COMPARE_MODE.PARAMETER_DEEP_TEST + else "Expecting contains SAME exactly elements:" + ) + if not_expect.is_empty() and not_found.is_empty(): + var diff := _find_first_diff(current, expected) + return "%s\n %s\n do contains (in same order)\n %s\n but has different order %s" % [ + _error(failure_message), _colored_value(current), _colored_value(expected), diff] + + var error := "%s\n %s\n do contains (in same order)\n %s" % [ + _error(failure_message), _colored_value(current), _colored_value(expected)] + if not not_expect.is_empty(): + error += "\nbut some elements where not expected:\n %s" % _colored_value(not_expect) + if not not_found.is_empty(): + var prefix := "but" if not_expect.is_empty() else "and" + error += "\n%s could not find elements:\n %s" % [prefix, _colored_value(not_found)] + return error + + +static func error_arr_contains_exactly_in_any_order( + current :Variant, + expected :Array, + not_expect :Array, + not_found :Array, + compare_mode :GdObjects.COMPARE_MODE) -> String: + + var failure_message := ( + "Expecting contains exactly elements:" if compare_mode == GdObjects.COMPARE_MODE.PARAMETER_DEEP_TEST + else "Expecting contains SAME exactly elements:" + ) + var error := "%s\n %s\n do contains exactly (in any order)\n %s" % [ + _error(failure_message), _colored_value(current), _colored_value(expected)] + if not not_expect.is_empty(): + error += "\nbut some elements where not expected:\n %s" % _colored_value(not_expect) + if not not_found.is_empty(): + var prefix := "but" if not_expect.is_empty() else "and" + error += "\n%s could not find elements:\n %s" % [prefix, _colored_value(not_found)] + return error + + +static func error_arr_not_contains(current :Array, expected :Array, found :Array, compare_mode :GdObjects.COMPARE_MODE) -> String: + var failure_message := "Expecting:" if compare_mode == GdObjects.COMPARE_MODE.PARAMETER_DEEP_TEST else "Expecting SAME:" + var error := "%s\n %s\n do not contains\n %s" % [ + _error(failure_message), _colored_value(current), _colored_value(expected)] + if not found.is_empty(): + error += "\n but found elements:\n %s" % _colored_value(found) + return error + + +# - DictionaryAssert specific messages ---------------------------------------------- +static func error_contains_keys(current :Array, expected :Array, keys_not_found :Array, compare_mode :GdObjects.COMPARE_MODE) -> String: + var failure := ( + "Expecting contains keys:" if compare_mode == GdObjects.COMPARE_MODE.PARAMETER_DEEP_TEST + else "Expecting contains SAME keys:" + ) + return "%s\n %s\n to contains:\n %s\n but can't find key's:\n %s" % [ + _error(failure), _colored_value(current), _colored_value(expected), _colored_value(keys_not_found)] + + +static func error_not_contains_keys(current :Array, expected :Array, keys_not_found :Array, compare_mode :GdObjects.COMPARE_MODE) -> String: + var failure := ( + "Expecting NOT contains keys:" if compare_mode == GdObjects.COMPARE_MODE.PARAMETER_DEEP_TEST + else "Expecting NOT contains SAME keys" + ) + return "%s\n %s\n do not contains:\n %s\n but contains key's:\n %s" % [ + _error(failure), _colored_value(current), _colored_value(expected), _colored_value(keys_not_found)] + + +static func error_contains_key_value(key :Variant, value :Variant, current_value :Variant, compare_mode :GdObjects.COMPARE_MODE) -> String: + var failure := ( + "Expecting contains key and value:" if compare_mode == GdObjects.COMPARE_MODE.PARAMETER_DEEP_TEST + else "Expecting contains SAME key and value:" + ) + return "%s\n %s : %s\n but contains\n %s : %s" % [ + _error(failure), _colored_value(key), _colored_value(value), _colored_value(key), _colored_value(current_value)] + + +# - ResultAssert specific errors ---------------------------------------------------- +static func error_result_is_empty(current :GdUnitResult) -> String: + return _result_error_message(current, GdUnitResult.EMPTY) + + +static func error_result_is_success(current :GdUnitResult) -> String: + return _result_error_message(current, GdUnitResult.SUCCESS) + + +static func error_result_is_warning(current :GdUnitResult) -> String: + return _result_error_message(current, GdUnitResult.WARN) + + +static func error_result_is_error(current :GdUnitResult) -> String: + return _result_error_message(current, GdUnitResult.ERROR) + + +static func error_result_has_message(current :String, expected :String) -> String: + return "%s\n %s\n but was\n %s." % [_error("Expecting:"), _colored_value(expected), _colored_value(current)] + + +static func error_result_has_message_on_success(expected :String) -> String: + return "%s\n %s\n but the GdUnitResult is a success." % [_error("Expecting:"), _colored_value(expected)] + + +static func error_result_is_value(current :Variant, expected :Variant) -> String: + return "%s\n %s\n but was\n %s." % [_error("Expecting to contain same value:"), _colored_value(expected), _colored_value(current)] + + +static func _result_error_message(current :GdUnitResult, expected_type :int) -> String: + if current == null: + return _error("Expecting the result must be a %s but was ." % result_type(expected_type)) + if current.is_success(): + return _error("Expecting the result must be a %s but was SUCCESS." % result_type(expected_type)) + var error := "Expecting the result must be a %s but was %s:" % [result_type(expected_type), result_type(current._state)] + return "%s\n %s" % [_error(error), _colored_value(result_message(current))] + + +static func error_interrupted(func_name :String, expected :Variant, elapsed :String) -> String: + func_name = humanized(func_name) + if expected == null: + return "%s %s but timed out after %s" % [_error("Expected:"), func_name, elapsed] + return "%s %s %s but timed out after %s" % [_error("Expected:"), func_name, _colored_value(expected), elapsed] + + +static func error_wait_signal(signal_name :String, args :Array, elapsed :String) -> String: + if args.is_empty(): + return "%s %s but timed out after %s" % [ + _error("Expecting emit signal:"), _colored_value(signal_name + "()"), elapsed] + return "%s %s but timed out after %s" % [ + _error("Expecting emit signal:"), _colored_value(signal_name + "(" + str(args) + ")"), elapsed] + + +static func error_signal_emitted(signal_name :String, args :Array, elapsed :String) -> String: + if args.is_empty(): + return "%s %s but is emitted after %s" % [ + _error("Expecting do not emit signal:"), _colored_value(signal_name + "()"), elapsed] + return "%s %s but is emitted after %s" % [ + _error("Expecting do not emit signal:"), _colored_value(signal_name + "(" + str(args) + ")"), elapsed] + + +static func error_await_signal_on_invalid_instance(source :Variant, signal_name :String, args :Array) -> String: + return "%s\n await_signal_on(%s, %s, %s)" % [ + _error("Invalid source! Can't await on signal:"), _colored_value(source), signal_name, args] + + +static func result_type(type :int) -> String: + match type: + GdUnitResult.SUCCESS: return "SUCCESS" + GdUnitResult.WARN: return "WARNING" + GdUnitResult.ERROR: return "ERROR" + GdUnitResult.EMPTY: return "EMPTY" + return "UNKNOWN" + + +static func result_message(result :GdUnitResult) -> String: + match result._state: + GdUnitResult.SUCCESS: return "" + GdUnitResult.WARN: return result.warn_message() + GdUnitResult.ERROR: return result.error_message() + GdUnitResult.EMPTY: return "" + return "UNKNOWN" +# ----------------------------------------------------------------------------------- + +# - Spy|Mock specific errors ---------------------------------------------------- +static func error_no_more_interactions(summary :Dictionary) -> String: + var interactions := PackedStringArray() + for args :Variant in summary.keys(): + var times :int = summary[args] + interactions.append(_format_arguments(args, times)) + return "%s\n%s\n%s" % [_error("Expecting no more interactions!"), _error("But found interactions on:"), "\n".join(interactions)] + + +static func error_validate_interactions(current_interactions :Dictionary, expected_interactions :Dictionary) -> String: + var interactions := PackedStringArray() + for args :Variant in current_interactions.keys(): + var times :int = current_interactions[args] + interactions.append(_format_arguments(args, times)) + var expected_interaction := _format_arguments(expected_interactions.keys()[0], expected_interactions.values()[0]) + return "%s\n%s\n%s\n%s" % [ + _error("Expecting interaction on:"), expected_interaction, _error("But found interactions on:"), "\n".join(interactions)] + + +static func _format_arguments(args :Array, times :int) -> String: + var fname :String = args[0] + var fargs := args.slice(1) as Array + var typed_args := _to_typed_args(fargs) + var fsignature := _colored_value("%s(%s)" % [fname, ", ".join(typed_args)]) + return " %s %d time's" % [fsignature, times] + + +static func _to_typed_args(args :Array) -> PackedStringArray: + var typed := PackedStringArray() + for arg :Variant in args: + typed.append(_format_arg(arg) + " :" + GdObjects.type_as_string(typeof(arg))) + return typed + + +static func _format_arg(arg :Variant) -> String: + if arg is InputEvent: + return input_event_as_text(arg) + return str(arg) + + +static func _find_first_diff(left :Array, right :Array) -> String: + for index in left.size(): + var l :Variant = left[index] + var r :Variant = "" if index >= right.size() else right[index] + if not GdObjects.equals(l, r): + return "at position %s\n '%s' vs '%s'" % [_colored_value(index), _typed_value(l), _typed_value(r)] + return "" + + +static func error_has_size(current :Variant, expected: int) -> String: + var current_size :Variant = null if current == null else current.size() + return "%s\n %s\n but was\n %s" % [_error("Expecting size:"), _colored_value(expected), _colored_value(current_size)] + + +static func error_contains_exactly(current: Array, expected: Array) -> String: + return "%s\n %s\n but was\n %s" % [_error("Expecting exactly equal:"), _colored_value(expected), _colored_value(current)] + + +static func format_chars(characters :PackedByteArray, type :Color) -> PackedByteArray: + if characters.size() == 0:# or characters[0] == 10: + return characters + var result := PackedByteArray() + var message := "[bgcolor=#%s][color=with]%s[/color][/bgcolor]" % [ + type.to_html(), characters.get_string_from_utf8().replace("\n", "")] + result.append_array(message.to_utf8_buffer()) + return result + + +static func format_invalid(value :String) -> String: + return "[bgcolor=#%s][color=with]%s[/color][/bgcolor]" % [SUB_COLOR.to_html(), value] + + +static func humanized(value :String) -> String: + return value.replace("_", " ") diff --git a/addons/gdUnit4/src/asserts/GdAssertReports.gd b/addons/gdUnit4/src/asserts/GdAssertReports.gd new file mode 100644 index 0000000..1ac9e04 --- /dev/null +++ b/addons/gdUnit4/src/asserts/GdAssertReports.gd @@ -0,0 +1,55 @@ +class_name GdAssertReports +extends RefCounted + +const LAST_ERROR = "last_assert_error_message" +const LAST_ERROR_LINE = "last_assert_error_line" + + +static func report_success() -> void: + GdUnitSignals.instance().gdunit_set_test_failed.emit(false) + GdAssertReports.set_last_error_line_number(-1) + Engine.remove_meta(LAST_ERROR) + + +static func report_warning(message :String, line_number :int) -> void: + GdUnitSignals.instance().gdunit_set_test_failed.emit(false) + send_report(GdUnitReport.new().create(GdUnitReport.WARN, line_number, message)) + + +static func report_error(message:String, line_number :int) -> void: + GdUnitSignals.instance().gdunit_set_test_failed.emit(true) + GdAssertReports.set_last_error_line_number(line_number) + Engine.set_meta(LAST_ERROR, message) + # if we expect to fail we handle as success test + if _do_expect_assert_failing(): + return + send_report(GdUnitReport.new().create(GdUnitReport.FAILURE, line_number, message)) + + +static func reset_last_error_line_number() -> void: + Engine.remove_meta(LAST_ERROR_LINE) + + +static func set_last_error_line_number(line_number :int) -> void: + Engine.set_meta(LAST_ERROR_LINE, line_number) + + +static func get_last_error_line_number() -> int: + if Engine.has_meta(LAST_ERROR_LINE): + return Engine.get_meta(LAST_ERROR_LINE) + return -1 + + +static func _do_expect_assert_failing() -> bool: + if Engine.has_meta(GdUnitConstants.EXPECT_ASSERT_REPORT_FAILURES): + return Engine.get_meta(GdUnitConstants.EXPECT_ASSERT_REPORT_FAILURES) + return false + + +static func current_failure() -> String: + return Engine.get_meta(LAST_ERROR) + + +static func send_report(report :GdUnitReport) -> void: + var execution_context_id := GdUnitThreadManager.get_current_context().get_execution_context_id() + GdUnitSignals.instance().gdunit_report.emit(execution_context_id, report) diff --git a/addons/gdUnit4/src/asserts/GdUnitArrayAssertImpl.gd b/addons/gdUnit4/src/asserts/GdUnitArrayAssertImpl.gd new file mode 100644 index 0000000..8b71105 --- /dev/null +++ b/addons/gdUnit4/src/asserts/GdUnitArrayAssertImpl.gd @@ -0,0 +1,350 @@ +extends GdUnitArrayAssert + + +var _base :GdUnitAssert +var _current_value_provider :ValueProvider + + +func _init(current :Variant) -> void: + _current_value_provider = DefaultValueProvider.new(current) + _base = ResourceLoader.load("res://addons/gdUnit4/src/asserts/GdUnitAssertImpl.gd", "GDScript", + ResourceLoader.CACHE_MODE_REUSE).new(current) + # save the actual assert instance on the current thread context + GdUnitThreadManager.get_current_context().set_assert(self) + if not _validate_value_type(current): + report_error("GdUnitArrayAssert inital error, unexpected type <%s>" % GdObjects.typeof_as_string(current)) + + +func _notification(event :int) -> void: + if event == NOTIFICATION_PREDELETE: + if _base != null: + _base.notification(event) + _base = null + + +func report_success() -> GdUnitArrayAssert: + _base.report_success() + return self + + +func report_error(error :String) -> GdUnitArrayAssert: + _base.report_error(error) + return self + + +func failure_message() -> String: + return _base._current_error_message + + +func override_failure_message(message :String) -> GdUnitArrayAssert: + _base.override_failure_message(message) + return self + + +func _validate_value_type(value :Variant) -> bool: + return value == null or GdArrayTools.is_array_type(value) + + +func get_current_value() -> Variant: + return _current_value_provider.get_value() + + +func max_length(left :Variant, right :Variant) -> int: + var ls := str(left).length() + var rs := str(right).length() + return rs if ls < rs else ls + + +func _array_equals_div(current :Array, expected :Array, case_sensitive :bool = false) -> Array: + var current_value := PackedStringArray(current) + var expected_value := PackedStringArray(expected) + var index_report := Array() + for index in current_value.size(): + var c := current_value[index] + if index < expected_value.size(): + var e := expected_value[index] + if not GdObjects.equals(c, e, case_sensitive): + var length := max_length(c, e) + current_value[index] = GdAssertMessages.format_invalid(c.lpad(length)) + expected_value[index] = e.lpad(length) + index_report.push_back({"index" : index, "current" :c, "expected": e}) + else: + current_value[index] = GdAssertMessages.format_invalid(c) + index_report.push_back({"index" : index, "current" :c, "expected": ""}) + + for index in range(current.size(), expected_value.size()): + var value := expected_value[index] + expected_value[index] = GdAssertMessages.format_invalid(value) + index_report.push_back({"index" : index, "current" : "", "expected": value}) + return [current_value, expected_value, index_report] + + +func _array_div(compare_mode :GdObjects.COMPARE_MODE, left :Array[Variant], right :Array[Variant], _same_order := false) -> Array[Variant]: + var not_expect := left.duplicate(true) + var not_found := right.duplicate(true) + for index_c in left.size(): + var c :Variant = left[index_c] + for index_e in right.size(): + var e :Variant = right[index_e] + if GdObjects.equals(c, e, false, compare_mode): + GdArrayTools.erase_value(not_expect, e) + GdArrayTools.erase_value(not_found, c) + break + return [not_expect, not_found] + + +func _contains(expected :Variant, compare_mode :GdObjects.COMPARE_MODE) -> GdUnitArrayAssert: + if not _validate_value_type(expected): + return report_error("ERROR: expected value: <%s>\n is not a Array Type!" % GdObjects.typeof_as_string(expected)) + var by_reference := compare_mode == GdObjects.COMPARE_MODE.OBJECT_REFERENCE + var current_value :Variant = get_current_value() + if current_value == null: + return report_error(GdAssertMessages.error_arr_contains(current_value, expected, [], expected, by_reference)) + var diffs := _array_div(compare_mode, current_value, expected) + #var not_expect := diffs[0] as Array + var not_found := diffs[1] as Array + if not not_found.is_empty(): + return report_error(GdAssertMessages.error_arr_contains(current_value, expected, [], not_found, by_reference)) + return report_success() + + +func _contains_exactly(expected :Variant, compare_mode :GdObjects.COMPARE_MODE) -> GdUnitArrayAssert: + if not _validate_value_type(expected): + return report_error("ERROR: expected value: <%s>\n is not a Array Type!" % GdObjects.typeof_as_string(expected)) + var current_value :Variant = get_current_value() + if current_value == null: + return report_error(GdAssertMessages.error_arr_contains_exactly(current_value, expected, [], expected, compare_mode)) + # has same content in same order + if GdObjects.equals(Array(current_value), Array(expected), false, compare_mode): + return report_success() + # check has same elements but in different order + if GdObjects.equals_sorted(Array(current_value), Array(expected), false, compare_mode): + return report_error(GdAssertMessages.error_arr_contains_exactly(current_value, expected, [], [], compare_mode)) + # find the difference + var diffs := _array_div(compare_mode, current_value, expected, GdObjects.COMPARE_MODE.PARAMETER_DEEP_TEST) + var not_expect := diffs[0] as Array[Variant] + var not_found := diffs[1] as Array[Variant] + return report_error(GdAssertMessages.error_arr_contains_exactly(current_value, expected, not_expect, not_found, compare_mode)) + + +func _contains_exactly_in_any_order(expected :Variant, compare_mode :GdObjects.COMPARE_MODE) -> GdUnitArrayAssert: + if not _validate_value_type(expected): + return report_error("ERROR: expected value: <%s>\n is not a Array Type!" % GdObjects.typeof_as_string(expected)) + var current_value :Variant = get_current_value() + if current_value == null: + return report_error(GdAssertMessages.error_arr_contains_exactly_in_any_order(current_value, expected, [], expected, compare_mode)) + # find the difference + var diffs := _array_div(compare_mode, current_value, expected, false) + var not_expect := diffs[0] as Array + var not_found := diffs[1] as Array + if not_expect.is_empty() and not_found.is_empty(): + return report_success() + return report_error(GdAssertMessages.error_arr_contains_exactly_in_any_order(current_value, expected, not_expect, not_found, compare_mode)) + + +func _not_contains(expected :Variant, compare_mode :GdObjects.COMPARE_MODE) -> GdUnitArrayAssert: + if not _validate_value_type(expected): + return report_error("ERROR: expected value: <%s>\n is not a Array Type!" % GdObjects.typeof_as_string(expected)) + var current_value :Variant = get_current_value() + if current_value == null: + return report_error(GdAssertMessages.error_arr_contains_exactly_in_any_order(current_value, expected, [], expected, compare_mode)) + var diffs := _array_div(compare_mode, current_value, expected) + var found := diffs[0] as Array + if found.size() == current_value.size(): + return report_success() + var diffs2 := _array_div(compare_mode, expected, diffs[1]) + return report_error(GdAssertMessages.error_arr_not_contains(current_value, expected, diffs2[0], compare_mode)) + + +func is_null() -> GdUnitArrayAssert: + _base.is_null() + return self + + +func is_not_null() -> GdUnitArrayAssert: + _base.is_not_null() + return self + + +# Verifies that the current String is equal to the given one. +func is_equal(expected :Variant) -> GdUnitArrayAssert: + if not _validate_value_type(expected): + return report_error("ERROR: expected value: <%s>\n is not a Array Type!" % GdObjects.typeof_as_string(expected)) + var current_value :Variant = get_current_value() + if current_value == null and expected != null: + return report_error(GdAssertMessages.error_equal(null, expected)) + if not GdObjects.equals(current_value, expected): + var diff := _array_equals_div(current_value, expected) + var expected_as_list := GdArrayTools.as_string(diff[0], false) + var current_as_list := GdArrayTools.as_string(diff[1], false) + var index_report :Variant = diff[2] + return report_error(GdAssertMessages.error_equal(expected_as_list, current_as_list, index_report)) + return report_success() + + +# Verifies that the current Array is equal to the given one, ignoring case considerations. +func is_equal_ignoring_case(expected :Variant) -> GdUnitArrayAssert: + if not _validate_value_type(expected): + return report_error("ERROR: expected value: <%s>\n is not a Array Type!" % GdObjects.typeof_as_string(expected)) + var current_value :Variant = get_current_value() + if current_value == null and expected != null: + return report_error(GdAssertMessages.error_equal(null, GdArrayTools.as_string(expected))) + if not GdObjects.equals(current_value, expected, true): + var diff := _array_equals_div(current_value, expected, true) + var expected_as_list := GdArrayTools.as_string(diff[0]) + var current_as_list := GdArrayTools.as_string(diff[1]) + var index_report :Variant = diff[2] + return report_error(GdAssertMessages.error_equal(expected_as_list, current_as_list, index_report)) + return report_success() + + +func is_not_equal(expected :Variant) -> GdUnitArrayAssert: + if not _validate_value_type(expected): + return report_error("ERROR: expected value: <%s>\n is not a Array Type!" % GdObjects.typeof_as_string(expected)) + var current_value :Variant = get_current_value() + if GdObjects.equals(current_value, expected): + return report_error(GdAssertMessages.error_not_equal(current_value, expected)) + return report_success() + + +func is_not_equal_ignoring_case(expected :Variant) -> GdUnitArrayAssert: + if not _validate_value_type(expected): + return report_error("ERROR: expected value: <%s>\n is not a Array Type!" % GdObjects.typeof_as_string(expected)) + var current_value :Variant = get_current_value() + if GdObjects.equals(current_value, expected, true): + var c := GdArrayTools.as_string(current_value) + var e := GdArrayTools.as_string(expected) + return report_error(GdAssertMessages.error_not_equal_case_insensetiv(c, e)) + return report_success() + + +func is_empty() -> GdUnitArrayAssert: + var current_value :Variant = get_current_value() + if current_value == null or current_value.size() > 0: + return report_error(GdAssertMessages.error_is_empty(current_value)) + return report_success() + + +func is_not_empty() -> GdUnitArrayAssert: + var current_value :Variant = get_current_value() + if current_value != null and current_value.size() == 0: + return report_error(GdAssertMessages.error_is_not_empty()) + return report_success() + + +@warning_ignore("unused_parameter", "shadowed_global_identifier") +func is_same(expected :Variant) -> GdUnitArrayAssert: + if not _validate_value_type(expected): + return report_error("ERROR: expected value: <%s>\n is not a Array Type!" % GdObjects.typeof_as_string(expected)) + var current :Variant = get_current_value() + if not is_same(current, expected): + report_error(GdAssertMessages.error_is_same(current, expected)) + return self + + +func is_not_same(expected :Variant) -> GdUnitArrayAssert: + if not _validate_value_type(expected): + return report_error("ERROR: expected value: <%s>\n is not a Array Type!" % GdObjects.typeof_as_string(expected)) + var current :Variant = get_current_value() + if is_same(current, expected): + report_error(GdAssertMessages.error_not_same(current, expected)) + return self + + +func has_size(expected: int) -> GdUnitArrayAssert: + var current_value :Variant= get_current_value() + if current_value == null or current_value.size() != expected: + return report_error(GdAssertMessages.error_has_size(current_value, expected)) + return report_success() + + +func contains(expected :Variant) -> GdUnitArrayAssert: + return _contains(expected, GdObjects.COMPARE_MODE.PARAMETER_DEEP_TEST) + + +func contains_exactly(expected :Variant) -> GdUnitArrayAssert: + return _contains_exactly(expected, GdObjects.COMPARE_MODE.PARAMETER_DEEP_TEST) + + +func contains_exactly_in_any_order(expected :Variant) -> GdUnitArrayAssert: + return _contains_exactly_in_any_order(expected, GdObjects.COMPARE_MODE.PARAMETER_DEEP_TEST) + + +func contains_same(expected :Variant) -> GdUnitArrayAssert: + return _contains(expected, GdObjects.COMPARE_MODE.OBJECT_REFERENCE) + + +func contains_same_exactly(expected :Variant) -> GdUnitArrayAssert: + return _contains_exactly(expected, GdObjects.COMPARE_MODE.OBJECT_REFERENCE) + + +func contains_same_exactly_in_any_order(expected :Variant) -> GdUnitArrayAssert: + return _contains_exactly_in_any_order(expected, GdObjects.COMPARE_MODE.OBJECT_REFERENCE) + + +func not_contains(expected :Variant) -> GdUnitArrayAssert: + return _not_contains(expected, GdObjects.COMPARE_MODE.PARAMETER_DEEP_TEST) + + +func not_contains_same(expected :Variant) -> GdUnitArrayAssert: + return _not_contains(expected, GdObjects.COMPARE_MODE.OBJECT_REFERENCE) + + +func is_instanceof(expected :Variant) -> GdUnitAssert: + _base.is_instanceof(expected) + return self + + +func extract(func_name :String, args := Array()) -> GdUnitArrayAssert: + var extracted_elements := Array() + var extractor :GdUnitValueExtractor = ResourceLoader.load("res://addons/gdUnit4/src/extractors/GdUnitFuncValueExtractor.gd", + "GDScript", ResourceLoader.CACHE_MODE_REUSE).new(func_name, args) + var current :Variant = get_current_value() + if current == null: + _current_value_provider = DefaultValueProvider.new(null) + else: + for element :Variant in current: + extracted_elements.append(extractor.extract_value(element)) + _current_value_provider = DefaultValueProvider.new(extracted_elements) + return self + + +func extractv( + extr0 :GdUnitValueExtractor, + extr1 :GdUnitValueExtractor = null, + extr2 :GdUnitValueExtractor = null, + extr3 :GdUnitValueExtractor = null, + extr4 :GdUnitValueExtractor = null, + extr5 :GdUnitValueExtractor = null, + extr6 :GdUnitValueExtractor = null, + extr7 :GdUnitValueExtractor = null, + extr8 :GdUnitValueExtractor = null, + extr9 :GdUnitValueExtractor = null) -> GdUnitArrayAssert: + var extractors :Variant = GdArrayTools.filter_value([extr0, extr1, extr2, extr3, extr4, extr5, extr6, extr7, extr8, extr9], null) + var extracted_elements := Array() + var current :Variant = get_current_value() + if current == null: + _current_value_provider = DefaultValueProvider.new(null) + else: + for element: Variant in current: + var ev :Array[Variant] = [ + GdUnitTuple.NO_ARG, + GdUnitTuple.NO_ARG, + GdUnitTuple.NO_ARG, + GdUnitTuple.NO_ARG, + GdUnitTuple.NO_ARG, + GdUnitTuple.NO_ARG, + GdUnitTuple.NO_ARG, + GdUnitTuple.NO_ARG, + GdUnitTuple.NO_ARG, + GdUnitTuple.NO_ARG + ] + for index :int in extractors.size(): + var extractor :GdUnitValueExtractor = extractors[index] + ev[index] = extractor.extract_value(element) + if extractors.size() > 1: + extracted_elements.append(GdUnitTuple.new(ev[0], ev[1], ev[2], ev[3], ev[4], ev[5], ev[6], ev[7], ev[8], ev[9])) + else: + extracted_elements.append(ev[0]) + _current_value_provider = DefaultValueProvider.new(extracted_elements) + return self diff --git a/addons/gdUnit4/src/asserts/GdUnitAssertImpl.gd b/addons/gdUnit4/src/asserts/GdUnitAssertImpl.gd new file mode 100644 index 0000000..2755285 --- /dev/null +++ b/addons/gdUnit4/src/asserts/GdUnitAssertImpl.gd @@ -0,0 +1,72 @@ +extends GdUnitAssert + + +var _current :Variant +var _current_error_message :String = "" +var _custom_failure_message :String = "" + + +func _init(current :Variant) -> void: + _current = current + # save the actual assert instance on the current thread context + GdUnitThreadManager.get_current_context().set_assert(self) + GdAssertReports.reset_last_error_line_number() + + +func failure_message() -> String: + return _current_error_message + + +func current_value() -> Variant: + return _current + + +func report_success() -> GdUnitAssert: + GdAssertReports.report_success() + return self + + +func report_error(error_message :String, failure_line_number: int = -1) -> GdUnitAssert: + var line_number := failure_line_number if failure_line_number != -1 else GdUnitAssertions.get_line_number() + GdAssertReports.set_last_error_line_number(line_number) + _current_error_message = error_message if _custom_failure_message.is_empty() else _custom_failure_message + GdAssertReports.report_error(_current_error_message, line_number) + Engine.set_meta("GD_TEST_FAILURE", true) + return self + + +func test_fail() -> GdUnitAssert: + return report_error(GdAssertMessages.error_not_implemented()) + + +func override_failure_message(message :String) -> GdUnitAssert: + _custom_failure_message = message + return self + + +func is_equal(expected :Variant) -> GdUnitAssert: + var current :Variant = current_value() + if not GdObjects.equals(current, expected): + return report_error(GdAssertMessages.error_equal(current, expected)) + return report_success() + + +func is_not_equal(expected :Variant) -> GdUnitAssert: + var current :Variant = current_value() + if GdObjects.equals(current, expected): + return report_error(GdAssertMessages.error_not_equal(current, expected)) + return report_success() + + +func is_null() -> GdUnitAssert: + var current :Variant = current_value() + if current != null: + return report_error(GdAssertMessages.error_is_null(current)) + return report_success() + + +func is_not_null() -> GdUnitAssert: + var current :Variant = current_value() + if current == null: + return report_error(GdAssertMessages.error_is_not_null()) + return report_success() diff --git a/addons/gdUnit4/src/asserts/GdUnitAssertions.gd b/addons/gdUnit4/src/asserts/GdUnitAssertions.gd new file mode 100644 index 0000000..a1b12ca --- /dev/null +++ b/addons/gdUnit4/src/asserts/GdUnitAssertions.gd @@ -0,0 +1,64 @@ +# Preloads all GdUnit assertions +class_name GdUnitAssertions +extends RefCounted + + +func _init() -> void: + # preload all gdunit assertions to speedup testsuite loading time + # gdlint:disable=private-method-call + GdUnitAssertions.__lazy_load("res://addons/gdUnit4/src/asserts/GdUnitAssertImpl.gd") + GdUnitAssertions.__lazy_load("res://addons/gdUnit4/src/asserts/GdUnitBoolAssertImpl.gd") + GdUnitAssertions.__lazy_load("res://addons/gdUnit4/src/asserts/GdUnitStringAssertImpl.gd") + GdUnitAssertions.__lazy_load("res://addons/gdUnit4/src/asserts/GdUnitIntAssertImpl.gd") + GdUnitAssertions.__lazy_load("res://addons/gdUnit4/src/asserts/GdUnitFloatAssertImpl.gd") + GdUnitAssertions.__lazy_load("res://addons/gdUnit4/src/asserts/GdUnitVectorAssertImpl.gd") + GdUnitAssertions.__lazy_load("res://addons/gdUnit4/src/asserts/GdUnitArrayAssertImpl.gd") + GdUnitAssertions.__lazy_load("res://addons/gdUnit4/src/asserts/GdUnitDictionaryAssertImpl.gd") + GdUnitAssertions.__lazy_load("res://addons/gdUnit4/src/asserts/GdUnitFileAssertImpl.gd") + GdUnitAssertions.__lazy_load("res://addons/gdUnit4/src/asserts/GdUnitObjectAssertImpl.gd") + GdUnitAssertions.__lazy_load("res://addons/gdUnit4/src/asserts/GdUnitResultAssertImpl.gd") + GdUnitAssertions.__lazy_load("res://addons/gdUnit4/src/asserts/GdUnitFuncAssertImpl.gd") + GdUnitAssertions.__lazy_load("res://addons/gdUnit4/src/asserts/GdUnitSignalAssertImpl.gd") + GdUnitAssertions.__lazy_load("res://addons/gdUnit4/src/asserts/GdUnitFailureAssertImpl.gd") + GdUnitAssertions.__lazy_load("res://addons/gdUnit4/src/asserts/GdUnitGodotErrorAssertImpl.gd") + + +### We now load all used asserts and tool scripts into the cache according to the principle of "lazy loading" +### in order to noticeably reduce the loading time of the test suite. +# We go this hard way to increase the loading performance to avoid reparsing all the used scripts +# for more detailed info -> https://github.com/godotengine/godot/issues/67400 +# gdlint:disable=function-name +static func __lazy_load(script_path :String) -> GDScript: + return ResourceLoader.load(script_path, "GDScript", ResourceLoader.CACHE_MODE_REUSE) + + +static func validate_value_type(value :Variant, type :Variant.Type) -> bool: + return value == null or typeof(value) == type + + +# Scans the current stack trace for the root cause to extract the line number +static func get_line_number() -> int: + var stack_trace := get_stack() + if stack_trace == null or stack_trace.is_empty(): + return -1 + for index in stack_trace.size(): + var stack_info :Dictionary = stack_trace[index] + var function :String = stack_info.get("function") + # we catch helper asserts to skip over to return the correct line number + if function.begins_with("assert_"): + continue + if function.begins_with("test_"): + return stack_info.get("line") + var source :String = stack_info.get("source") + if source.is_empty() \ + or source.begins_with("user://") \ + or source.ends_with("GdUnitAssert.gd") \ + or source.ends_with("GdUnitAssertions.gd") \ + or source.ends_with("AssertImpl.gd") \ + or source.ends_with("GdUnitTestSuite.gd") \ + or source.ends_with("GdUnitSceneRunnerImpl.gd") \ + or source.ends_with("GdUnitObjectInteractions.gd") \ + or source.ends_with("GdUnitAwaiter.gd"): + continue + return stack_info.get("line") + return -1 diff --git a/addons/gdUnit4/src/asserts/GdUnitBoolAssertImpl.gd b/addons/gdUnit4/src/asserts/GdUnitBoolAssertImpl.gd new file mode 100644 index 0000000..d25c6eb --- /dev/null +++ b/addons/gdUnit4/src/asserts/GdUnitBoolAssertImpl.gd @@ -0,0 +1,76 @@ +extends GdUnitBoolAssert + +var _base: GdUnitAssert + + +func _init(current :Variant) -> void: + _base = ResourceLoader.load("res://addons/gdUnit4/src/asserts/GdUnitAssertImpl.gd", "GDScript", + ResourceLoader.CACHE_MODE_REUSE).new(current) + # save the actual assert instance on the current thread context + GdUnitThreadManager.get_current_context().set_assert(self) + if not GdUnitAssertions.validate_value_type(current, TYPE_BOOL): + report_error("GdUnitBoolAssert inital error, unexpected type <%s>" % GdObjects.typeof_as_string(current)) + + +func _notification(event :int) -> void: + if event == NOTIFICATION_PREDELETE: + if _base != null: + _base.notification(event) + _base = null + + +func current_value() -> Variant: + return _base.current_value() + + +func report_success() -> GdUnitBoolAssert: + _base.report_success() + return self + + +func report_error(error :String) -> GdUnitBoolAssert: + _base.report_error(error) + return self + + +func failure_message() -> String: + return _base._current_error_message + + +func override_failure_message(message :String) -> GdUnitBoolAssert: + _base.override_failure_message(message) + return self + + +# Verifies that the current value is null. +func is_null() -> GdUnitBoolAssert: + _base.is_null() + return self + + +# Verifies that the current value is not null. +func is_not_null() -> GdUnitBoolAssert: + _base.is_not_null() + return self + + +func is_equal(expected :Variant) -> GdUnitBoolAssert: + _base.is_equal(expected) + return self + + +func is_not_equal(expected :Variant) -> GdUnitBoolAssert: + _base.is_not_equal(expected) + return self + + +func is_true() -> GdUnitBoolAssert: + if current_value() != true: + return report_error(GdAssertMessages.error_is_true(current_value())) + return report_success() + + +func is_false() -> GdUnitBoolAssert: + if current_value() == true || current_value() == null: + return report_error(GdAssertMessages.error_is_false(current_value())) + return report_success() diff --git a/addons/gdUnit4/src/asserts/GdUnitDictionaryAssertImpl.gd b/addons/gdUnit4/src/asserts/GdUnitDictionaryAssertImpl.gd new file mode 100644 index 0000000..87f77d1 --- /dev/null +++ b/addons/gdUnit4/src/asserts/GdUnitDictionaryAssertImpl.gd @@ -0,0 +1,182 @@ +extends GdUnitDictionaryAssert + +var _base :GdUnitAssert + + +func _init(current :Variant) -> void: + _base = ResourceLoader.load("res://addons/gdUnit4/src/asserts/GdUnitAssertImpl.gd", "GDScript", + ResourceLoader.CACHE_MODE_REUSE).new(current) + # save the actual assert instance on the current thread context + GdUnitThreadManager.get_current_context().set_assert(self) + if not GdUnitAssertions.validate_value_type(current, TYPE_DICTIONARY): + report_error("GdUnitDictionaryAssert inital error, unexpected type <%s>" % GdObjects.typeof_as_string(current)) + + +func _notification(event :int) -> void: + if event == NOTIFICATION_PREDELETE: + if _base != null: + _base.notification(event) + _base = null + + +func report_success() -> GdUnitDictionaryAssert: + _base.report_success() + return self + + +func report_error(error :String) -> GdUnitDictionaryAssert: + _base.report_error(error) + return self + + +func failure_message() -> String: + return _base._current_error_message + + +func override_failure_message(message :String) -> GdUnitDictionaryAssert: + _base.override_failure_message(message) + return self + + +func current_value() -> Variant: + return _base.current_value() + + +func is_null() -> GdUnitDictionaryAssert: + _base.is_null() + return self + + +func is_not_null() -> GdUnitDictionaryAssert: + _base.is_not_null() + return self + + +func is_equal(expected :Variant) -> GdUnitDictionaryAssert: + var current :Variant = current_value() + if current == null: + return report_error(GdAssertMessages.error_equal(null, GdAssertMessages.format_dict(expected))) + if not GdObjects.equals(current, expected): + var c := GdAssertMessages.format_dict(current) + var e := GdAssertMessages.format_dict(expected) + var diff := GdDiffTool.string_diff(c, e) + var curent_diff := GdAssertMessages.colored_array_div(diff[1]) + return report_error(GdAssertMessages.error_equal(curent_diff, e)) + return report_success() + + +func is_not_equal(expected :Variant) -> GdUnitDictionaryAssert: + var current :Variant = current_value() + if GdObjects.equals(current, expected): + return report_error(GdAssertMessages.error_not_equal(current, expected)) + return report_success() + + +@warning_ignore("unused_parameter", "shadowed_global_identifier") +func is_same(expected :Variant) -> GdUnitDictionaryAssert: + var current :Variant = current_value() + if current == null: + return report_error(GdAssertMessages.error_equal(null, GdAssertMessages.format_dict(expected))) + if not is_same(current, expected): + var c := GdAssertMessages.format_dict(current) + var e := GdAssertMessages.format_dict(expected) + var diff := GdDiffTool.string_diff(c, e) + var curent_diff := GdAssertMessages.colored_array_div(diff[1]) + return report_error(GdAssertMessages.error_is_same(curent_diff, e)) + return report_success() + + +@warning_ignore("unused_parameter", "shadowed_global_identifier") +func is_not_same(expected :Variant) -> GdUnitDictionaryAssert: + var current :Variant = current_value() + if is_same(current, expected): + return report_error(GdAssertMessages.error_not_same(current, expected)) + return report_success() + + +func is_empty() -> GdUnitDictionaryAssert: + var current :Variant = current_value() + if current == null or not current.is_empty(): + return report_error(GdAssertMessages.error_is_empty(current)) + return report_success() + + +func is_not_empty() -> GdUnitDictionaryAssert: + var current :Variant = current_value() + if current == null or current.is_empty(): + return report_error(GdAssertMessages.error_is_not_empty()) + return report_success() + + +func has_size(expected: int) -> GdUnitDictionaryAssert: + var current :Variant = current_value() + if current == null: + return report_error(GdAssertMessages.error_is_not_null()) + if current.size() != expected: + return report_error(GdAssertMessages.error_has_size(current, expected)) + return report_success() + + +func _contains_keys(expected :Array, compare_mode :GdObjects.COMPARE_MODE) -> GdUnitDictionaryAssert: + var current :Variant = current_value() + if current == null: + return report_error(GdAssertMessages.error_is_not_null()) + # find expected keys + var keys_not_found :Array = expected.filter(_filter_by_key.bind(current.keys(), compare_mode)) + if not keys_not_found.is_empty(): + return report_error(GdAssertMessages.error_contains_keys(current.keys(), expected, keys_not_found, compare_mode)) + return report_success() + + +func _contains_key_value(key :Variant, value :Variant, compare_mode :GdObjects.COMPARE_MODE) -> GdUnitDictionaryAssert: + var current :Variant = current_value() + var expected := [key] + if current == null: + return report_error(GdAssertMessages.error_is_not_null()) + var keys_not_found :Array = expected.filter(_filter_by_key.bind(current.keys(), compare_mode)) + if not keys_not_found.is_empty(): + return report_error(GdAssertMessages.error_contains_keys(current.keys(), expected, keys_not_found, compare_mode)) + if not GdObjects.equals(current[key], value, false, compare_mode): + return report_error(GdAssertMessages.error_contains_key_value(key, value, current[key], compare_mode)) + return report_success() + + +func _not_contains_keys(expected :Array, compare_mode :GdObjects.COMPARE_MODE) -> GdUnitDictionaryAssert: + var current :Variant = current_value() + if current == null: + return report_error(GdAssertMessages.error_is_not_null()) + var keys_found :Array = current.keys().filter(_filter_by_key.bind(expected, compare_mode, true)) + if not keys_found.is_empty(): + return report_error(GdAssertMessages.error_not_contains_keys(current.keys(), expected, keys_found, compare_mode)) + return report_success() + + +func contains_keys(expected :Array) -> GdUnitDictionaryAssert: + return _contains_keys(expected, GdObjects.COMPARE_MODE.PARAMETER_DEEP_TEST) + + +func contains_key_value(key :Variant, value :Variant) -> GdUnitDictionaryAssert: + return _contains_key_value(key, value, GdObjects.COMPARE_MODE.PARAMETER_DEEP_TEST) + + +func not_contains_keys(expected :Array) -> GdUnitDictionaryAssert: + return _not_contains_keys(expected, GdObjects.COMPARE_MODE.PARAMETER_DEEP_TEST) + + +func contains_same_keys(expected :Array) -> GdUnitDictionaryAssert: + return _contains_keys(expected, GdObjects.COMPARE_MODE.OBJECT_REFERENCE) + + +func contains_same_key_value(key :Variant, value :Variant) -> GdUnitDictionaryAssert: + return _contains_key_value(key, value, GdObjects.COMPARE_MODE.OBJECT_REFERENCE) + + +func not_contains_same_keys(expected :Array) -> GdUnitDictionaryAssert: + return _not_contains_keys(expected, GdObjects.COMPARE_MODE.OBJECT_REFERENCE) + + +func _filter_by_key(element :Variant, values :Array, compare_mode :GdObjects.COMPARE_MODE, is_not :bool = false) -> bool: + for key :Variant in values: + if GdObjects.equals(key, element, false, compare_mode): + return is_not + return !is_not diff --git a/addons/gdUnit4/src/asserts/GdUnitFailureAssertImpl.gd b/addons/gdUnit4/src/asserts/GdUnitFailureAssertImpl.gd new file mode 100644 index 0000000..88a3062 --- /dev/null +++ b/addons/gdUnit4/src/asserts/GdUnitFailureAssertImpl.gd @@ -0,0 +1,110 @@ +extends GdUnitFailureAssert + +const GdUnitTools := preload("res://addons/gdUnit4/src/core/GdUnitTools.gd") + +var _is_failed := false +var _failure_message :String + + +func _set_do_expect_fail(enabled :bool = true) -> void: + Engine.set_meta(GdUnitConstants.EXPECT_ASSERT_REPORT_FAILURES, enabled) + + +func execute_and_await(assertion :Callable, do_await := true) -> GdUnitFailureAssert: + # do not report any failure from the original assertion we want to test + _set_do_expect_fail(true) + var thread_context := GdUnitThreadManager.get_current_context() + thread_context.set_assert(null) + GdUnitSignals.instance().gdunit_set_test_failed.connect(_on_test_failed) + # execute the given assertion as callable + if do_await: + await assertion.call() + else: + assertion.call() + _set_do_expect_fail(false) + # get the assert instance from current tread context + var current_assert := thread_context.get_assert() + if not is_instance_of(current_assert, GdUnitAssert): + _is_failed = true + _failure_message = "Invalid Callable! It must be a callable of 'GdUnitAssert'" + return self + _failure_message = current_assert.failure_message() + return self + + +func execute(assertion :Callable) -> GdUnitFailureAssert: + execute_and_await(assertion, false) + return self + + +func _on_test_failed(value :bool) -> void: + _is_failed = value + + +@warning_ignore("unused_parameter") +func is_equal(_expected :GdUnitAssert) -> GdUnitFailureAssert: + return _report_error("Not implemented") + + +@warning_ignore("unused_parameter") +func is_not_equal(_expected :GdUnitAssert) -> GdUnitFailureAssert: + return _report_error("Not implemented") + + +func is_null() -> GdUnitFailureAssert: + return _report_error("Not implemented") + + +func is_not_null() -> GdUnitFailureAssert: + return _report_error("Not implemented") + + +func is_success() -> GdUnitFailureAssert: + if _is_failed: + return _report_error("Expect: assertion ends successfully.") + return self + + +func is_failed() -> GdUnitFailureAssert: + if not _is_failed: + return _report_error("Expect: assertion fails.") + return self + + +func has_line(expected :int) -> GdUnitFailureAssert: + var current := GdAssertReports.get_last_error_line_number() + if current != expected: + return _report_error("Expect: to failed on line '%d'\n but was '%d'." % [expected, current]) + return self + + +func has_message(expected :String) -> GdUnitFailureAssert: + is_failed() + var expected_error := GdUnitTools.normalize_text(GdUnitTools.richtext_normalize(expected)) + var current_error := GdUnitTools.normalize_text(GdUnitTools.richtext_normalize(_failure_message)) + if current_error != expected_error: + var diffs := GdDiffTool.string_diff(current_error, expected_error) + var current := GdAssertMessages.colored_array_div(diffs[1]) + _report_error(GdAssertMessages.error_not_same_error(current, expected_error)) + return self + + +func starts_with_message(expected :String) -> GdUnitFailureAssert: + var expected_error := GdUnitTools.normalize_text(expected) + var current_error := GdUnitTools.normalize_text(GdUnitTools.richtext_normalize(_failure_message)) + if current_error.find(expected_error) != 0: + var diffs := GdDiffTool.string_diff(current_error, expected_error) + var current := GdAssertMessages.colored_array_div(diffs[1]) + _report_error(GdAssertMessages.error_not_same_error(current, expected_error)) + return self + + +func _report_error(error_message :String, failure_line_number: int = -1) -> GdUnitAssert: + var line_number := failure_line_number if failure_line_number != -1 else GdUnitAssertions.get_line_number() + GdAssertReports.report_error(error_message, line_number) + return self + + +func _report_success() -> GdUnitFailureAssert: + GdAssertReports.report_success() + return self diff --git a/addons/gdUnit4/src/asserts/GdUnitFileAssertImpl.gd b/addons/gdUnit4/src/asserts/GdUnitFileAssertImpl.gd new file mode 100644 index 0000000..f511879 --- /dev/null +++ b/addons/gdUnit4/src/asserts/GdUnitFileAssertImpl.gd @@ -0,0 +1,95 @@ +extends GdUnitFileAssert + +const GdUnitTools := preload("res://addons/gdUnit4/src/core/GdUnitTools.gd") + +var _base: GdUnitAssert + + +func _init(current :Variant) -> void: + _base = ResourceLoader.load("res://addons/gdUnit4/src/asserts/GdUnitAssertImpl.gd", "GDScript", + ResourceLoader.CACHE_MODE_REUSE).new(current) + # save the actual assert instance on the current thread context + GdUnitThreadManager.get_current_context().set_assert(self) + if not GdUnitAssertions.validate_value_type(current, TYPE_STRING): + report_error("GdUnitFileAssert inital error, unexpected type <%s>" % GdObjects.typeof_as_string(current)) + + +func _notification(event :int) -> void: + if event == NOTIFICATION_PREDELETE: + if _base != null: + _base.notification(event) + _base = null + + +func current_value() -> String: + return _base.current_value() as String + + +func report_success() -> GdUnitFileAssert: + _base.report_success() + return self + + +func report_error(error :String) -> GdUnitFileAssert: + _base.report_error(error) + return self + + +func failure_message() -> String: + return _base._current_error_message + + +func override_failure_message(message :String) -> GdUnitFileAssert: + _base.override_failure_message(message) + return self + + +func is_equal(expected :Variant) -> GdUnitFileAssert: + _base.is_equal(expected) + return self + + +func is_not_equal(expected :Variant) -> GdUnitFileAssert: + _base.is_not_equal(expected) + return self + + +func is_file() -> GdUnitFileAssert: + var current := current_value() + if FileAccess.open(current, FileAccess.READ) == null: + return report_error("Is not a file '%s', error code %s" % [current, FileAccess.get_open_error()]) + return report_success() + + +func exists() -> GdUnitFileAssert: + var current := current_value() + if not FileAccess.file_exists(current): + return report_error("The file '%s' not exists" %current) + return report_success() + + +func is_script() -> GdUnitFileAssert: + var current := current_value() + if FileAccess.open(current, FileAccess.READ) == null: + return report_error("Can't acces the file '%s'! Error code %s" % [current, FileAccess.get_open_error()]) + + var script := load(current) + if not script is GDScript: + return report_error("The file '%s' is not a GdScript" % current) + return report_success() + + +func contains_exactly(expected_rows :Array) -> GdUnitFileAssert: + var current := current_value() + if FileAccess.open(current, FileAccess.READ) == null: + return report_error("Can't acces the file '%s'! Error code %s" % [current, FileAccess.get_open_error()]) + + var script := load(current) + if script is GDScript: + var instance :Variant = script.new() + var source_code := GdScriptParser.to_unix_format(instance.get_script().source_code) + GdUnitTools.free_instance(instance) + var rows := Array(source_code.split("\n")) + ResourceLoader.load("res://addons/gdUnit4/src/asserts/GdUnitArrayAssertImpl.gd", "GDScript", + ResourceLoader.CACHE_MODE_REUSE).new(rows).contains_exactly(expected_rows) + return self diff --git a/addons/gdUnit4/src/asserts/GdUnitFloatAssertImpl.gd b/addons/gdUnit4/src/asserts/GdUnitFloatAssertImpl.gd new file mode 100644 index 0000000..5920d9d --- /dev/null +++ b/addons/gdUnit4/src/asserts/GdUnitFloatAssertImpl.gd @@ -0,0 +1,144 @@ +extends GdUnitFloatAssert + +var _base: GdUnitAssert + + +func _init(current :Variant) -> void: + _base = ResourceLoader.load("res://addons/gdUnit4/src/asserts/GdUnitAssertImpl.gd", "GDScript", + ResourceLoader.CACHE_MODE_REUSE).new(current) + # save the actual assert instance on the current thread context + GdUnitThreadManager.get_current_context().set_assert(self) + if not GdUnitAssertions.validate_value_type(current, TYPE_FLOAT): + report_error("GdUnitFloatAssert inital error, unexpected type <%s>" % GdObjects.typeof_as_string(current)) + + +func _notification(event :int) -> void: + if event == NOTIFICATION_PREDELETE: + if _base != null: + _base.notification(event) + _base = null + + +func current_value() -> Variant: + return _base.current_value() + + +func report_success() -> GdUnitFloatAssert: + _base.report_success() + return self + + +func report_error(error :String) -> GdUnitFloatAssert: + _base.report_error(error) + return self + + +func failure_message() -> String: + return _base._current_error_message + + +func override_failure_message(message :String) -> GdUnitFloatAssert: + _base.override_failure_message(message) + return self + + +func is_null() -> GdUnitFloatAssert: + _base.is_null() + return self + + +func is_not_null() -> GdUnitFloatAssert: + _base.is_not_null() + return self + + +func is_equal(expected :float) -> GdUnitFloatAssert: + _base.is_equal(expected) + return self + + +func is_not_equal(expected :float) -> GdUnitFloatAssert: + _base.is_not_equal(expected) + return self + + +@warning_ignore("shadowed_global_identifier") +func is_equal_approx(expected :float, approx :float) -> GdUnitFloatAssert: + return is_between(expected-approx, expected+approx) + + +func is_less(expected :float) -> GdUnitFloatAssert: + var current :Variant = current_value() + if current == null or current >= expected: + return report_error(GdAssertMessages.error_is_value(Comparator.LESS_THAN, current, expected)) + return report_success() + + +func is_less_equal(expected :float) -> GdUnitFloatAssert: + var current :Variant = current_value() + if current == null or current > expected: + return report_error(GdAssertMessages.error_is_value(Comparator.LESS_EQUAL, current, expected)) + return report_success() + + +func is_greater(expected :float) -> GdUnitFloatAssert: + var current :Variant = current_value() + if current == null or current <= expected: + return report_error(GdAssertMessages.error_is_value(Comparator.GREATER_THAN, current, expected)) + return report_success() + + +func is_greater_equal(expected :float) -> GdUnitFloatAssert: + var current :Variant = current_value() + if current == null or current < expected: + return report_error(GdAssertMessages.error_is_value(Comparator.GREATER_EQUAL, current, expected)) + return report_success() + + +func is_negative() -> GdUnitFloatAssert: + var current :Variant = current_value() + if current == null or current >= 0.0: + return report_error(GdAssertMessages.error_is_negative(current)) + return report_success() + + +func is_not_negative() -> GdUnitFloatAssert: + var current :Variant = current_value() + if current == null or current < 0.0: + return report_error(GdAssertMessages.error_is_not_negative(current)) + return report_success() + + +func is_zero() -> GdUnitFloatAssert: + var current :Variant = current_value() + if current == null or not is_equal_approx(0.00000000, current): + return report_error(GdAssertMessages.error_is_zero(current)) + return report_success() + + +func is_not_zero() -> GdUnitFloatAssert: + var current :Variant = current_value() + if current == null or is_equal_approx(0.00000000, current): + return report_error(GdAssertMessages.error_is_not_zero()) + return report_success() + + +func is_in(expected :Array) -> GdUnitFloatAssert: + var current :Variant = current_value() + if not expected.has(current): + return report_error(GdAssertMessages.error_is_in(current, expected)) + return report_success() + + +func is_not_in(expected :Array) -> GdUnitFloatAssert: + var current :Variant = current_value() + if expected.has(current): + return report_error(GdAssertMessages.error_is_not_in(current, expected)) + return report_success() + + +func is_between(from :float, to :float) -> GdUnitFloatAssert: + var current :Variant = current_value() + if current == null or current < from or current > to: + return report_error(GdAssertMessages.error_is_value(Comparator.BETWEEN_EQUAL, current, from, to)) + return report_success() diff --git a/addons/gdUnit4/src/asserts/GdUnitFuncAssertImpl.gd b/addons/gdUnit4/src/asserts/GdUnitFuncAssertImpl.gd new file mode 100644 index 0000000..ccd2a11 --- /dev/null +++ b/addons/gdUnit4/src/asserts/GdUnitFuncAssertImpl.gd @@ -0,0 +1,159 @@ +extends GdUnitFuncAssert + + +const GdUnitTools := preload("res://addons/gdUnit4/src/core/GdUnitTools.gd") +const DEFAULT_TIMEOUT := 2000 + + +var _current_value_provider :ValueProvider +var _current_error_message :String = "" +var _custom_failure_message :String = "" +var _line_number := -1 +var _timeout := DEFAULT_TIMEOUT +var _interrupted := false +var _sleep_timer :Timer = null + + +func _init(instance :Object, func_name :String, args := Array()) -> void: + _line_number = GdUnitAssertions.get_line_number() + GdAssertReports.reset_last_error_line_number() + # save the actual assert instance on the current thread context + GdUnitThreadManager.get_current_context().set_assert(self) + # verify at first the function name exists + if not instance.has_method(func_name): + report_error("The function '%s' do not exists checked instance '%s'." % [func_name, instance]) + _interrupted = true + else: + _current_value_provider = CallBackValueProvider.new(instance, func_name, args) + + +func _notification(_what :int) -> void: + if is_instance_valid(_current_value_provider): + _current_value_provider.dispose() + _current_value_provider = null + if is_instance_valid(_sleep_timer): + Engine.get_main_loop().root.remove_child(_sleep_timer) + _sleep_timer.stop() + _sleep_timer.free() + _sleep_timer = null + + +func report_success() -> GdUnitFuncAssert: + GdAssertReports.report_success() + return self + + +func report_error(error_message :String) -> GdUnitFuncAssert: + _current_error_message = error_message if _custom_failure_message == "" else _custom_failure_message + GdAssertReports.report_error(_current_error_message, _line_number) + return self + + +func failure_message() -> String: + return _current_error_message + + +func send_report(report :GdUnitReport)-> void: + GdUnitSignals.instance().gdunit_report.emit(report) + + +func override_failure_message(message :String) -> GdUnitFuncAssert: + _custom_failure_message = message + return self + + +func wait_until(timeout := 2000) -> GdUnitFuncAssert: + if timeout <= 0: + push_warning("Invalid timeout param, alloed timeouts must be grater than 0. Use default timeout instead") + _timeout = DEFAULT_TIMEOUT + else: + _timeout = timeout + return self + + +func is_null() -> GdUnitFuncAssert: + await _validate_callback(cb_is_null) + return self + + +func is_not_null() -> GdUnitFuncAssert: + await _validate_callback(cb_is_not_null) + return self + + +func is_false() -> GdUnitFuncAssert: + await _validate_callback(cb_is_false) + return self + + +func is_true() -> GdUnitFuncAssert: + await _validate_callback(cb_is_true) + return self + + +func is_equal(expected :Variant) -> GdUnitFuncAssert: + await _validate_callback(cb_is_equal, expected) + return self + + +func is_not_equal(expected :Variant) -> GdUnitFuncAssert: + await _validate_callback(cb_is_not_equal, expected) + return self + + +# we need actually to define this Callable as functions otherwise we results into leaked scripts here +# this is actually a Godot bug and needs this kind of workaround +func cb_is_null(c :Variant, _e :Variant) -> bool: return c == null +func cb_is_not_null(c :Variant, _e :Variant) -> bool: return c != null +func cb_is_false(c :Variant, _e :Variant) -> bool: return c == false +func cb_is_true(c :Variant, _e :Variant) -> bool: return c == true +func cb_is_equal(c :Variant, e :Variant) -> bool: return GdObjects.equals(c,e) +func cb_is_not_equal(c :Variant, e :Variant) -> bool: return not GdObjects.equals(c, e) + + +func _validate_callback(predicate :Callable, expected :Variant = null) -> void: + if _interrupted: + return + GdUnitMemoryObserver.guard_instance(self) + var time_scale := Engine.get_time_scale() + var timer := Timer.new() + timer.set_name("gdunit_funcassert_interrupt_timer_%d" % timer.get_instance_id()) + Engine.get_main_loop().root.add_child(timer) + timer.add_to_group("GdUnitTimers") + timer.timeout.connect(func do_interrupt() -> void: + _interrupted = true + , CONNECT_DEFERRED) + timer.set_one_shot(true) + timer.start((_timeout/1000.0)*time_scale) + _sleep_timer = Timer.new() + _sleep_timer.set_name("gdunit_funcassert_sleep_timer_%d" % _sleep_timer.get_instance_id() ) + Engine.get_main_loop().root.add_child(_sleep_timer) + + while true: + var current :Variant = await next_current_value() + # is interupted or predicate success + if _interrupted or predicate.call(current, expected): + break + if is_instance_valid(_sleep_timer): + _sleep_timer.start(0.05) + await _sleep_timer.timeout + + _sleep_timer.stop() + await Engine.get_main_loop().process_frame + if _interrupted: + # https://github.com/godotengine/godot/issues/73052 + #var predicate_name = predicate.get_method() + var predicate_name :String = str(predicate).split('::')[1] + report_error(GdAssertMessages.error_interrupted(predicate_name.strip_edges().trim_prefix("cb_"), expected, LocalTime.elapsed(_timeout))) + else: + report_success() + _sleep_timer.free() + timer.free() + GdUnitMemoryObserver.unguard_instance(self) + + +func next_current_value() -> Variant: + @warning_ignore("redundant_await") + if is_instance_valid(_current_value_provider): + return await _current_value_provider.get_value() + return "invalid value" diff --git a/addons/gdUnit4/src/asserts/GdUnitGodotErrorAssertImpl.gd b/addons/gdUnit4/src/asserts/GdUnitGodotErrorAssertImpl.gd new file mode 100644 index 0000000..f08da5b --- /dev/null +++ b/addons/gdUnit4/src/asserts/GdUnitGodotErrorAssertImpl.gd @@ -0,0 +1,106 @@ +extends GdUnitGodotErrorAssert + +var _current_error_message :String +var _callable :Callable + + +func _init(callable :Callable) -> void: + # we only support Godot 4.1.x+ because of await issue https://github.com/godotengine/godot/issues/80292 + assert(Engine.get_version_info().hex >= 0x40100, + "This assertion is not supported for Godot 4.0.x. Please upgrade to the minimum version Godot 4.1.0!") + # save the actual assert instance on the current thread context + GdUnitThreadManager.get_current_context().set_assert(self) + GdAssertReports.reset_last_error_line_number() + _callable = callable + + +func _execute() -> Array[ErrorLogEntry]: + # execute the given code and monitor for runtime errors + if _callable == null or not _callable.is_valid(): + _report_error("Invalid Callable '%s'" % _callable) + else: + await _callable.call() + return await _error_monitor().scan(true) + + +func _error_monitor() -> GodotGdErrorMonitor: + return GdUnitThreadManager.get_current_context().get_execution_context().error_monitor + + +func failure_message() -> String: + return _current_error_message + + +func _report_success() -> GdUnitAssert: + GdAssertReports.report_success() + return self + + +func _report_error(error_message :String, failure_line_number: int = -1) -> GdUnitAssert: + var line_number := failure_line_number if failure_line_number != -1 else GdUnitAssertions.get_line_number() + _current_error_message = error_message + GdAssertReports.report_error(error_message, line_number) + return self + + +func _has_log_entry(log_entries :Array[ErrorLogEntry], type :ErrorLogEntry.TYPE, error :String) -> bool: + for entry in log_entries: + if entry._type == type and entry._message == error: + # Erase the log entry we already handled it by this assertion, otherwise it will report at twice + _error_monitor().erase_log_entry(entry) + return true + return false + + +func _to_list(log_entries :Array[ErrorLogEntry]) -> String: + if log_entries.is_empty(): + return "no errors" + if log_entries.size() == 1: + return log_entries[0]._message + var value := "" + for entry in log_entries: + value += "'%s'\n" % entry._message + return value + + +func is_success() -> GdUnitGodotErrorAssert: + var log_entries := await _execute() + if log_entries.is_empty(): + return _report_success() + return _report_error(""" + Expecting: no error's are ocured. + but found: '%s' + """.dedent().trim_prefix("\n") % _to_list(log_entries)) + + +func is_runtime_error(expected_error :String) -> GdUnitGodotErrorAssert: + var log_entries := await _execute() + if _has_log_entry(log_entries, ErrorLogEntry.TYPE.SCRIPT_ERROR, expected_error): + return _report_success() + return _report_error(""" + Expecting: a runtime error is triggered. + message: '%s' + found: %s + """.dedent().trim_prefix("\n") % [expected_error, _to_list(log_entries)]) + + +func is_push_warning(expected_warning :String) -> GdUnitGodotErrorAssert: + var log_entries := await _execute() + if _has_log_entry(log_entries, ErrorLogEntry.TYPE.PUSH_WARNING, expected_warning): + return _report_success() + return _report_error(""" + Expecting: push_warning() is called. + message: '%s' + found: %s + """.dedent().trim_prefix("\n") % [expected_warning, _to_list(log_entries)]) + + +func is_push_error(expected_error :String) -> GdUnitGodotErrorAssert: + var log_entries := await _execute() + if _has_log_entry(log_entries, ErrorLogEntry.TYPE.PUSH_ERROR, expected_error): + return _report_success() + return _report_error(""" + Expecting: push_error() is called. + message: '%s' + found: %s + """.dedent().trim_prefix("\n") % [expected_error, _to_list(log_entries)]) diff --git a/addons/gdUnit4/src/asserts/GdUnitIntAssertImpl.gd b/addons/gdUnit4/src/asserts/GdUnitIntAssertImpl.gd new file mode 100644 index 0000000..98fd445 --- /dev/null +++ b/addons/gdUnit4/src/asserts/GdUnitIntAssertImpl.gd @@ -0,0 +1,153 @@ +extends GdUnitIntAssert + +var _base: GdUnitAssert + + +func _init(current :Variant) -> void: + _base = ResourceLoader.load("res://addons/gdUnit4/src/asserts/GdUnitAssertImpl.gd", "GDScript", + ResourceLoader.CACHE_MODE_REUSE).new(current) + # save the actual assert instance on the current thread context + GdUnitThreadManager.get_current_context().set_assert(self) + if not GdUnitAssertions.validate_value_type(current, TYPE_INT): + report_error("GdUnitIntAssert inital error, unexpected type <%s>" % GdObjects.typeof_as_string(current)) + + +func _notification(event :int) -> void: + if event == NOTIFICATION_PREDELETE: + if _base != null: + _base.notification(event) + _base = null + + +func current_value() -> Variant: + return _base.current_value() + + +func report_success() -> GdUnitIntAssert: + _base.report_success() + return self + + +func report_error(error :String) -> GdUnitIntAssert: + _base.report_error(error) + return self + + +func failure_message() -> String: + return _base._current_error_message + + +func override_failure_message(message :String) -> GdUnitIntAssert: + _base.override_failure_message(message) + return self + + +func is_null() -> GdUnitIntAssert: + _base.is_null() + return self + + +func is_not_null() -> GdUnitIntAssert: + _base.is_not_null() + return self + + +func is_equal(expected :int) -> GdUnitIntAssert: + _base.is_equal(expected) + return self + + +func is_not_equal(expected :int) -> GdUnitIntAssert: + _base.is_not_equal(expected) + return self + + +func is_less(expected :int) -> GdUnitIntAssert: + var current :Variant = current_value() + if current == null or current >= expected: + return report_error(GdAssertMessages.error_is_value(Comparator.LESS_THAN, current, expected)) + return report_success() + + +func is_less_equal(expected :int) -> GdUnitIntAssert: + var current :Variant = current_value() + if current == null or current > expected: + return report_error(GdAssertMessages.error_is_value(Comparator.LESS_EQUAL, current, expected)) + return report_success() + + +func is_greater(expected :int) -> GdUnitIntAssert: + var current :Variant = current_value() + if current == null or current <= expected: + return report_error(GdAssertMessages.error_is_value(Comparator.GREATER_THAN, current, expected)) + return report_success() + + +func is_greater_equal(expected :int) -> GdUnitIntAssert: + var current :Variant = current_value() + if current == null or current < expected: + return report_error(GdAssertMessages.error_is_value(Comparator.GREATER_EQUAL, current, expected)) + return report_success() + + +func is_even() -> GdUnitIntAssert: + var current :Variant = current_value() + if current == null or current % 2 != 0: + return report_error(GdAssertMessages.error_is_even(current)) + return report_success() + + +func is_odd() -> GdUnitIntAssert: + var current :Variant = current_value() + if current == null or current % 2 == 0: + return report_error(GdAssertMessages.error_is_odd(current)) + return report_success() + + +func is_negative() -> GdUnitIntAssert: + var current :Variant = current_value() + if current == null or current >= 0: + return report_error(GdAssertMessages.error_is_negative(current)) + return report_success() + + +func is_not_negative() -> GdUnitIntAssert: + var current :Variant = current_value() + if current == null or current < 0: + return report_error(GdAssertMessages.error_is_not_negative(current)) + return report_success() + + +func is_zero() -> GdUnitIntAssert: + var current :Variant = current_value() + if current != 0: + return report_error(GdAssertMessages.error_is_zero(current)) + return report_success() + + +func is_not_zero() -> GdUnitIntAssert: + var current :Variant= current_value() + if current == 0: + return report_error(GdAssertMessages.error_is_not_zero()) + return report_success() + + +func is_in(expected :Array) -> GdUnitIntAssert: + var current :Variant = current_value() + if not expected.has(current): + return report_error(GdAssertMessages.error_is_in(current, expected)) + return report_success() + + +func is_not_in(expected :Array) -> GdUnitIntAssert: + var current :Variant = current_value() + if expected.has(current): + return report_error(GdAssertMessages.error_is_not_in(current, expected)) + return report_success() + + +func is_between(from :int, to :int) -> GdUnitIntAssert: + var current :Variant = current_value() + if current == null or current < from or current > to: + return report_error(GdAssertMessages.error_is_value(Comparator.BETWEEN_EQUAL, current, from, to)) + return report_success() diff --git a/addons/gdUnit4/src/asserts/GdUnitObjectAssertImpl.gd b/addons/gdUnit4/src/asserts/GdUnitObjectAssertImpl.gd new file mode 100644 index 0000000..b4090af --- /dev/null +++ b/addons/gdUnit4/src/asserts/GdUnitObjectAssertImpl.gd @@ -0,0 +1,109 @@ +extends GdUnitObjectAssert + +var _base :GdUnitAssert + + +func _init(current :Variant) -> void: + _base = ResourceLoader.load("res://addons/gdUnit4/src/asserts/GdUnitAssertImpl.gd", "GDScript", + ResourceLoader.CACHE_MODE_REUSE).new(current) + # save the actual assert instance on the current thread context + GdUnitThreadManager.get_current_context().set_assert(self) + if (current != null + and (GdUnitAssertions.validate_value_type(current, TYPE_BOOL) + or GdUnitAssertions.validate_value_type(current, TYPE_INT) + or GdUnitAssertions.validate_value_type(current, TYPE_FLOAT) + or GdUnitAssertions.validate_value_type(current, TYPE_STRING))): + report_error("GdUnitObjectAssert inital error, unexpected type <%s>" % GdObjects.typeof_as_string(current)) + + +func _notification(event :int) -> void: + if event == NOTIFICATION_PREDELETE: + if _base != null: + _base.notification(event) + _base = null + + +func current_value() -> Variant: + return _base.current_value() + + +func report_success() -> GdUnitObjectAssert: + _base.report_success() + return self + + +func report_error(error :String) -> GdUnitObjectAssert: + _base.report_error(error) + return self + + +func failure_message() -> String: + return _base._current_error_message + + +func override_failure_message(message :String) -> GdUnitObjectAssert: + _base.override_failure_message(message) + return self + + +func is_equal(expected :Variant) -> GdUnitObjectAssert: + _base.is_equal(expected) + return self + + +func is_not_equal(expected :Variant) -> GdUnitObjectAssert: + _base.is_not_equal(expected) + return self + + +func is_null() -> GdUnitObjectAssert: + _base.is_null() + return self + + +func is_not_null() -> GdUnitObjectAssert: + _base.is_not_null() + return self + + +@warning_ignore("shadowed_global_identifier") +func is_same(expected :Variant) -> GdUnitObjectAssert: + var current :Variant = current_value() + if not is_same(current, expected): + report_error(GdAssertMessages.error_is_same(current, expected)) + return self + report_success() + return self + + +func is_not_same(expected :Variant) -> GdUnitObjectAssert: + var current :Variant = current_value() + if is_same(current, expected): + report_error(GdAssertMessages.error_not_same(current, expected)) + return self + report_success() + return self + + +func is_instanceof(type :Object) -> GdUnitObjectAssert: + var current :Variant = current_value() + if current == null or not is_instance_of(current, type): + var result_expected: = GdObjects.extract_class_name(type) + var result_current: = GdObjects.extract_class_name(current) + report_error(GdAssertMessages.error_is_instanceof(result_current, result_expected)) + return self + report_success() + return self + + +func is_not_instanceof(type :Variant) -> GdUnitObjectAssert: + var current :Variant = current_value() + if is_instance_of(current, type): + var result: = GdObjects.extract_class_name(type) + if result.is_success(): + report_error("Expected not be a instance of <%s>" % result.value()) + else: + push_error("Internal ERROR: %s" % result.error_message()) + return self + report_success() + return self diff --git a/addons/gdUnit4/src/asserts/GdUnitResultAssertImpl.gd b/addons/gdUnit4/src/asserts/GdUnitResultAssertImpl.gd new file mode 100644 index 0000000..e246039 --- /dev/null +++ b/addons/gdUnit4/src/asserts/GdUnitResultAssertImpl.gd @@ -0,0 +1,122 @@ +extends GdUnitResultAssert + +var _base :GdUnitAssert + + +func _init(current :Variant) -> void: + _base = ResourceLoader.load("res://addons/gdUnit4/src/asserts/GdUnitAssertImpl.gd", "GDScript", + ResourceLoader.CACHE_MODE_REUSE).new(current) + # save the actual assert instance on the current thread context + GdUnitThreadManager.get_current_context().set_assert(self) + if not validate_value_type(current): + report_error("GdUnitResultAssert inital error, unexpected type <%s>" % GdObjects.typeof_as_string(current)) + + +func _notification(event :int) -> void: + if event == NOTIFICATION_PREDELETE: + if _base != null: + _base.notification(event) + _base = null + + +func validate_value_type(value :Variant) -> bool: + return value == null or value is GdUnitResult + + +func current_value() -> GdUnitResult: + return _base.current_value() as GdUnitResult + + +func report_success() -> GdUnitResultAssert: + _base.report_success() + return self + + +func report_error(error :String) -> GdUnitResultAssert: + _base.report_error(error) + return self + + +func failure_message() -> String: + return _base._current_error_message + + +func override_failure_message(message :String) -> GdUnitResultAssert: + _base.override_failure_message(message) + return self + + +func is_null() -> GdUnitResultAssert: + _base.is_null() + return self + + +func is_not_null() -> GdUnitResultAssert: + _base.is_not_null() + return self + + +func is_empty() -> GdUnitResultAssert: + var result := current_value() + if result == null or not result.is_empty(): + report_error(GdAssertMessages.error_result_is_empty(result)) + else: + report_success() + return self + + +func is_success() -> GdUnitResultAssert: + var result := current_value() + if result == null or not result.is_success(): + report_error(GdAssertMessages.error_result_is_success(result)) + else: + report_success() + return self + + +func is_warning() -> GdUnitResultAssert: + var result := current_value() + if result == null or not result.is_warn(): + report_error(GdAssertMessages.error_result_is_warning(result)) + else: + report_success() + return self + + +func is_error() -> GdUnitResultAssert: + var result := current_value() + if result == null or not result.is_error(): + report_error(GdAssertMessages.error_result_is_error(result)) + else: + report_success() + return self + + +func contains_message(expected :String) -> GdUnitResultAssert: + var result := current_value() + if result == null: + report_error(GdAssertMessages.error_result_has_message("", expected)) + return self + if result.is_success(): + report_error(GdAssertMessages.error_result_has_message_on_success(expected)) + elif result.is_error() and result.error_message() != expected: + report_error(GdAssertMessages.error_result_has_message(result.error_message(), expected)) + elif result.is_warn() and result.warn_message() != expected: + report_error(GdAssertMessages.error_result_has_message(result.warn_message(), expected)) + else: + report_success() + return self + + +func is_value(expected :Variant) -> GdUnitResultAssert: + var result := current_value() + var value :Variant = null if result == null else result.value() + if not GdObjects.equals(value, expected): + report_error(GdAssertMessages.error_result_is_value(value, expected)) + else: + report_success() + return self + + +func is_equal(expected :Variant) -> GdUnitResultAssert: + return is_value(expected) diff --git a/addons/gdUnit4/src/asserts/GdUnitSignalAssertImpl.gd b/addons/gdUnit4/src/asserts/GdUnitSignalAssertImpl.gd new file mode 100644 index 0000000..9c0ea62 --- /dev/null +++ b/addons/gdUnit4/src/asserts/GdUnitSignalAssertImpl.gd @@ -0,0 +1,110 @@ +extends GdUnitSignalAssert + +const DEFAULT_TIMEOUT := 2000 + +var _signal_collector :GdUnitSignalCollector +var _emitter :Object +var _current_error_message :String = "" +var _custom_failure_message :String = "" +var _line_number := -1 +var _timeout := DEFAULT_TIMEOUT +var _interrupted := false + + +func _init(emitter :Object) -> void: + # save the actual assert instance on the current thread context + var context := GdUnitThreadManager.get_current_context() + context.set_assert(self) + _signal_collector = context.get_signal_collector() + _line_number = GdUnitAssertions.get_line_number() + _emitter = emitter + GdAssertReports.reset_last_error_line_number() + + +func report_success() -> GdUnitAssert: + GdAssertReports.report_success() + return self + + +func report_warning(message :String) -> GdUnitAssert: + GdAssertReports.report_warning(message, GdUnitAssertions.get_line_number()) + return self + + +func report_error(error_message :String) -> GdUnitAssert: + _current_error_message = error_message if _custom_failure_message == "" else _custom_failure_message + GdAssertReports.report_error(_current_error_message, _line_number) + return self + + +func failure_message() -> String: + return _current_error_message + + +func send_report(report :GdUnitReport)-> void: + GdUnitSignals.instance().gdunit_report.emit(report) + + +func override_failure_message(message :String) -> GdUnitSignalAssert: + _custom_failure_message = message + return self + + +func wait_until(timeout := 2000) -> GdUnitSignalAssert: + if timeout <= 0: + report_warning("Invalid timeout parameter, allowed timeouts must be greater than 0, use default timeout instead!") + _timeout = DEFAULT_TIMEOUT + else: + _timeout = timeout + return self + + +# Verifies the signal exists checked the emitter +func is_signal_exists(signal_name :String) -> GdUnitSignalAssert: + if not _emitter.has_signal(signal_name): + report_error("The signal '%s' not exists checked object '%s'." % [signal_name, _emitter.get_class()]) + return self + + +# Verifies that given signal is emitted until waiting time +func is_emitted(name :String, args := []) -> GdUnitSignalAssert: + _line_number = GdUnitAssertions.get_line_number() + return await _wail_until_signal(name, args, false) + + +# Verifies that given signal is NOT emitted until waiting time +func is_not_emitted(name :String, args := []) -> GdUnitSignalAssert: + _line_number = GdUnitAssertions.get_line_number() + return await _wail_until_signal(name, args, true) + + +func _wail_until_signal(signal_name :String, expected_args :Array, expect_not_emitted: bool) -> GdUnitSignalAssert: + if _emitter == null: + report_error("Can't wait for signal checked a NULL object.") + return self + # first verify the signal is defined + if not _emitter.has_signal(signal_name): + report_error("Can't wait for non-existion signal '%s' checked object '%s'." % [signal_name,_emitter.get_class()]) + return self + _signal_collector.register_emitter(_emitter) + var time_scale := Engine.get_time_scale() + var timer := Timer.new() + Engine.get_main_loop().root.add_child(timer) + timer.add_to_group("GdUnitTimers") + timer.set_one_shot(true) + timer.timeout.connect(func on_timeout() -> void: _interrupted = true) + timer.start((_timeout/1000.0)*time_scale) + var is_signal_emitted := false + while not _interrupted and not is_signal_emitted: + await Engine.get_main_loop().process_frame + if is_instance_valid(_emitter): + is_signal_emitted = _signal_collector.match(_emitter, signal_name, expected_args) + if is_signal_emitted and expect_not_emitted: + report_error(GdAssertMessages.error_signal_emitted(signal_name, expected_args, LocalTime.elapsed(int(_timeout-timer.time_left*1000)))) + + if _interrupted and not expect_not_emitted: + report_error(GdAssertMessages.error_wait_signal(signal_name, expected_args, LocalTime.elapsed(_timeout))) + timer.free() + if is_instance_valid(_emitter): + _signal_collector.reset_received_signals(_emitter, signal_name, expected_args) + return self diff --git a/addons/gdUnit4/src/asserts/GdUnitStringAssertImpl.gd b/addons/gdUnit4/src/asserts/GdUnitStringAssertImpl.gd new file mode 100644 index 0000000..6168aaa --- /dev/null +++ b/addons/gdUnit4/src/asserts/GdUnitStringAssertImpl.gd @@ -0,0 +1,173 @@ +extends GdUnitStringAssert + +var _base :GdUnitAssert + + +func _init(current :Variant) -> void: + _base = ResourceLoader.load("res://addons/gdUnit4/src/asserts/GdUnitAssertImpl.gd", "GDScript", + ResourceLoader.CACHE_MODE_REUSE).new(current) + # save the actual assert instance on the current thread context + GdUnitThreadManager.get_current_context().set_assert(self) + if current != null and typeof(current) != TYPE_STRING and typeof(current) != TYPE_STRING_NAME: + report_error("GdUnitStringAssert inital error, unexpected type <%s>" % GdObjects.typeof_as_string(current)) + + +func _notification(event :int) -> void: + if event == NOTIFICATION_PREDELETE: + if _base != null: + _base.notification(event) + _base = null + + +func failure_message() -> String: + return _base._current_error_message + + +func current_value() -> Variant: + return _base.current_value() + + +func report_success() -> GdUnitStringAssert: + _base.report_success() + return self + + +func report_error(error :String) -> GdUnitStringAssert: + _base.report_error(error) + return self + + +func override_failure_message(message :String) -> GdUnitStringAssert: + _base.override_failure_message(message) + return self + + +func is_null() -> GdUnitStringAssert: + _base.is_null() + return self + + +func is_not_null() -> GdUnitStringAssert: + _base.is_not_null() + return self + + +func is_equal(expected :Variant) -> GdUnitStringAssert: + var current :Variant = current_value() + if current == null: + return report_error(GdAssertMessages.error_equal(current, expected)) + if not GdObjects.equals(current, expected): + var diffs := GdDiffTool.string_diff(current, expected) + var formatted_current := GdAssertMessages.colored_array_div(diffs[1]) + return report_error(GdAssertMessages.error_equal(formatted_current, expected)) + return report_success() + + +func is_equal_ignoring_case(expected :Variant) -> GdUnitStringAssert: + var current :Variant = current_value() + if current == null: + return report_error(GdAssertMessages.error_equal_ignoring_case(current, expected)) + if not GdObjects.equals(str(current), expected, true): + var diffs := GdDiffTool.string_diff(current, expected) + var formatted_current := GdAssertMessages.colored_array_div(diffs[1]) + return report_error(GdAssertMessages.error_equal_ignoring_case(formatted_current, expected)) + return report_success() + + +func is_not_equal(expected :Variant) -> GdUnitStringAssert: + var current :Variant = current_value() + if GdObjects.equals(current, expected): + return report_error(GdAssertMessages.error_not_equal(current, expected)) + return report_success() + + +func is_not_equal_ignoring_case(expected :Variant) -> GdUnitStringAssert: + var current :Variant = current_value() + if GdObjects.equals(current, expected, true): + return report_error(GdAssertMessages.error_not_equal(current, expected)) + return report_success() + + +func is_empty() -> GdUnitStringAssert: + var current :Variant = current_value() + if current == null or not current.is_empty(): + return report_error(GdAssertMessages.error_is_empty(current)) + return report_success() + + +func is_not_empty() -> GdUnitStringAssert: + var current :Variant = current_value() + if current == null or current.is_empty(): + return report_error(GdAssertMessages.error_is_not_empty()) + return report_success() + + +func contains(expected :String) -> GdUnitStringAssert: + var current :Variant = current_value() + if current == null or current.find(expected) == -1: + return report_error(GdAssertMessages.error_contains(current, expected)) + return report_success() + + +func not_contains(expected :String) -> GdUnitStringAssert: + var current :Variant = current_value() + if current != null and current.find(expected) != -1: + return report_error(GdAssertMessages.error_not_contains(current, expected)) + return report_success() + + +func contains_ignoring_case(expected :String) -> GdUnitStringAssert: + var current :Variant = current_value() + if current == null or current.findn(expected) == -1: + return report_error(GdAssertMessages.error_contains_ignoring_case(current, expected)) + return report_success() + + +func not_contains_ignoring_case(expected :String) -> GdUnitStringAssert: + var current :Variant = current_value() + if current != null and current.findn(expected) != -1: + return report_error(GdAssertMessages.error_not_contains_ignoring_case(current, expected)) + return report_success() + + +func starts_with(expected :String) -> GdUnitStringAssert: + var current :Variant = current_value() + if current == null or current.find(expected) != 0: + return report_error(GdAssertMessages.error_starts_with(current, expected)) + return report_success() + + +func ends_with(expected :String) -> GdUnitStringAssert: + var current :Variant = current_value() + if current == null: + return report_error(GdAssertMessages.error_ends_with(current, expected)) + var find :int = current.length() - expected.length() + if current.rfind(expected) != find: + return report_error(GdAssertMessages.error_ends_with(current, expected)) + return report_success() + + +# gdlint:disable=max-returns +func has_length(expected :int, comparator := Comparator.EQUAL) -> GdUnitStringAssert: + var current :Variant = current_value() + if current == null: + return report_error(GdAssertMessages.error_has_length(current, expected, comparator)) + match comparator: + Comparator.EQUAL: + if current.length() != expected: + return report_error(GdAssertMessages.error_has_length(current, expected, comparator)) + Comparator.LESS_THAN: + if current.length() >= expected: + return report_error(GdAssertMessages.error_has_length(current, expected, comparator)) + Comparator.LESS_EQUAL: + if current.length() > expected: + return report_error(GdAssertMessages.error_has_length(current, expected, comparator)) + Comparator.GREATER_THAN: + if current.length() <= expected: + return report_error(GdAssertMessages.error_has_length(current, expected, comparator)) + Comparator.GREATER_EQUAL: + if current.length() < expected: + return report_error(GdAssertMessages.error_has_length(current, expected, comparator)) + _: + return report_error("Comparator '%d' not implemented!" % comparator) + return report_success() diff --git a/addons/gdUnit4/src/asserts/GdUnitVectorAssertImpl.gd b/addons/gdUnit4/src/asserts/GdUnitVectorAssertImpl.gd new file mode 100644 index 0000000..048cc3f --- /dev/null +++ b/addons/gdUnit4/src/asserts/GdUnitVectorAssertImpl.gd @@ -0,0 +1,172 @@ +extends GdUnitVectorAssert + +var _base: GdUnitAssert +var _current_type :int + + +func _init(current :Variant) -> void: + _base = ResourceLoader.load("res://addons/gdUnit4/src/asserts/GdUnitAssertImpl.gd", "GDScript", + ResourceLoader.CACHE_MODE_REUSE).new(current) + # save the actual assert instance on the current thread context + GdUnitThreadManager.get_current_context().set_assert(self) + if not _validate_value_type(current): + report_error("GdUnitVectorAssert error, the type <%s> is not supported." % GdObjects.typeof_as_string(current)) + _current_type = typeof(current) + + +func _notification(event :int) -> void: + if event == NOTIFICATION_PREDELETE: + if _base != null: + _base.notification(event) + _base = null + + +func _validate_value_type(value :Variant) -> bool: + return ( + value == null + or typeof(value) in [ + TYPE_VECTOR2, + TYPE_VECTOR2I, + TYPE_VECTOR3, + TYPE_VECTOR3I, + TYPE_VECTOR4, + TYPE_VECTOR4I + ] + ) + + +func _validate_is_vector_type(value :Variant) -> bool: + var type := typeof(value) + if type == _current_type or _current_type == TYPE_NIL: + return true + report_error(GdAssertMessages.error_is_wrong_type(_current_type, type)) + return false + + +func current_value() -> Variant: + return _base.current_value() + + +func report_success() -> GdUnitVectorAssert: + _base.report_success() + return self + + +func report_error(error :String) -> GdUnitVectorAssert: + _base.report_error(error) + return self + + +func failure_message() -> String: + return _base._current_error_message + + +func override_failure_message(message :String) -> GdUnitVectorAssert: + _base.override_failure_message(message) + return self + + +func is_null() -> GdUnitVectorAssert: + _base.is_null() + return self + + +func is_not_null() -> GdUnitVectorAssert: + _base.is_not_null() + return self + + +func is_equal(expected :Variant) -> GdUnitVectorAssert: + if not _validate_is_vector_type(expected): + return self + _base.is_equal(expected) + return self + + +func is_not_equal(expected :Variant) -> GdUnitVectorAssert: + if not _validate_is_vector_type(expected): + return self + _base.is_not_equal(expected) + return self + + +@warning_ignore("shadowed_global_identifier") +func is_equal_approx(expected :Variant, approx :Variant) -> GdUnitVectorAssert: + if not _validate_is_vector_type(expected) or not _validate_is_vector_type(approx): + return self + var current :Variant = current_value() + var from :Variant = expected - approx + var to :Variant = expected + approx + if current == null or (not _is_equal_approx(current, from, to)): + return report_error(GdAssertMessages.error_is_value(Comparator.BETWEEN_EQUAL, current, from, to)) + return report_success() + + +func _is_equal_approx(current :Variant, from :Variant, to :Variant) -> bool: + match typeof(current): + TYPE_VECTOR2, TYPE_VECTOR2I: + return ((current.x >= from.x and current.y >= from.y) + and (current.x <= to.x and current.y <= to.y)) + TYPE_VECTOR3, TYPE_VECTOR3I: + return ((current.x >= from.x and current.y >= from.y and current.z >= from.z) + and (current.x <= to.x and current.y <= to.y and current.z <= to.z)) + TYPE_VECTOR4, TYPE_VECTOR4I: + return ((current.x >= from.x and current.y >= from.y and current.z >= from.z and current.w >= from.w) + and (current.x <= to.x and current.y <= to.y and current.z <= to.z and current.w <= to.w)) + _: + push_error("Missing implementation '_is_equal_approx' for vector type %s" % typeof(current)) + return false + + +func is_less(expected :Variant) -> GdUnitVectorAssert: + if not _validate_is_vector_type(expected): + return self + var current :Variant = current_value() + if current == null or current >= expected: + return report_error(GdAssertMessages.error_is_value(Comparator.LESS_THAN, current, expected)) + return report_success() + + +func is_less_equal(expected :Variant) -> GdUnitVectorAssert: + if not _validate_is_vector_type(expected): + return self + var current :Variant = current_value() + if current == null or current > expected: + return report_error(GdAssertMessages.error_is_value(Comparator.LESS_EQUAL, current, expected)) + return report_success() + + +func is_greater(expected :Variant) -> GdUnitVectorAssert: + if not _validate_is_vector_type(expected): + return self + var current :Variant = current_value() + if current == null or current <= expected: + return report_error(GdAssertMessages.error_is_value(Comparator.GREATER_THAN, current, expected)) + return report_success() + + +func is_greater_equal(expected :Variant) -> GdUnitVectorAssert: + if not _validate_is_vector_type(expected): + return self + var current :Variant = current_value() + if current == null or current < expected: + return report_error(GdAssertMessages.error_is_value(Comparator.GREATER_EQUAL, current, expected)) + return report_success() + + +func is_between(from :Variant, to :Variant) -> GdUnitVectorAssert: + if not _validate_is_vector_type(from) or not _validate_is_vector_type(to): + return self + var current :Variant = current_value() + if current == null or not (current >= from and current <= to): + return report_error(GdAssertMessages.error_is_value(Comparator.BETWEEN_EQUAL, current, from, to)) + return report_success() + + +func is_not_between(from :Variant, to :Variant) -> GdUnitVectorAssert: + if not _validate_is_vector_type(from) or not _validate_is_vector_type(to): + return self + var current :Variant = current_value() + if (current != null and current >= from and current <= to): + return report_error(GdAssertMessages.error_is_value(Comparator.NOT_BETWEEN_EQUAL, current, from, to)) + return report_success() diff --git a/addons/gdUnit4/src/asserts/ValueProvider.gd b/addons/gdUnit4/src/asserts/ValueProvider.gd new file mode 100644 index 0000000..a94aa91 --- /dev/null +++ b/addons/gdUnit4/src/asserts/ValueProvider.gd @@ -0,0 +1,6 @@ +# base interface for assert value provider +class_name ValueProvider +extends RefCounted + +func get_value() -> Variant: + return null diff --git a/addons/gdUnit4/src/cmd/CmdArgumentParser.gd b/addons/gdUnit4/src/cmd/CmdArgumentParser.gd new file mode 100644 index 0000000..1abe67f --- /dev/null +++ b/addons/gdUnit4/src/cmd/CmdArgumentParser.gd @@ -0,0 +1,61 @@ +class_name CmdArgumentParser +extends RefCounted + +var _options :CmdOptions +var _tool_name :String +var _parsed_commands :Dictionary = Dictionary() + + +func _init(p_options :CmdOptions, p_tool_name :String) -> void: + _options = p_options + _tool_name = p_tool_name + + +func parse(args :Array, ignore_unknown_cmd := false) -> GdUnitResult: + _parsed_commands.clear() + + # parse until first program argument + while not args.is_empty(): + var arg :String = args.pop_front() + if arg.find(_tool_name) != -1: + break + + if args.is_empty(): + return GdUnitResult.empty() + + # now parse all arguments + while not args.is_empty(): + var cmd :String = args.pop_front() + var option := _options.get_option(cmd) + + if option: + if _parse_cmd_arguments(option, args) == -1: + return GdUnitResult.error("The '%s' command requires an argument!" % option.short_command()) + elif not ignore_unknown_cmd: + return GdUnitResult.error("Unknown '%s' command!" % cmd) + return GdUnitResult.success(_parsed_commands.values()) + + +func options() -> CmdOptions: + return _options + + +func _parse_cmd_arguments(option :CmdOption, args :Array) -> int: + var command_name := option.short_command() + var command :CmdCommand = _parsed_commands.get(command_name, CmdCommand.new(command_name)) + + if option.has_argument(): + if not option.is_argument_optional() and args.is_empty(): + return -1 + if _is_next_value_argument(args): + command.add_argument(args.pop_front()) + elif not option.is_argument_optional(): + return -1 + _parsed_commands[command_name] = command + return 0 + + +func _is_next_value_argument(args :Array) -> bool: + if args.is_empty(): + return false + return _options.get_option(args[0]) == null diff --git a/addons/gdUnit4/src/cmd/CmdCommand.gd b/addons/gdUnit4/src/cmd/CmdCommand.gd new file mode 100644 index 0000000..58f0915 --- /dev/null +++ b/addons/gdUnit4/src/cmd/CmdCommand.gd @@ -0,0 +1,26 @@ +class_name CmdCommand +extends RefCounted + +var _name: String +var _arguments: PackedStringArray + + +func _init(p_name :String, p_arguments := []) -> void: + _name = p_name + _arguments = PackedStringArray(p_arguments) + + +func name() -> String: + return _name + + +func arguments() -> PackedStringArray: + return _arguments + + +func add_argument(arg :String) -> void: + _arguments.append(arg) + + +func _to_string() -> String: + return "%s:%s" % [_name, ", ".join(_arguments)] diff --git a/addons/gdUnit4/src/cmd/CmdCommandHandler.gd b/addons/gdUnit4/src/cmd/CmdCommandHandler.gd new file mode 100644 index 0000000..5b3b1cd --- /dev/null +++ b/addons/gdUnit4/src/cmd/CmdCommandHandler.gd @@ -0,0 +1,104 @@ +class_name CmdCommandHandler +extends RefCounted + +const CB_SINGLE_ARG = 0 +const CB_MULTI_ARGS = 1 +const NO_CB := Callable() + +var _cmd_options :CmdOptions +# holds the command callbacks by key::String and value: [, ]:Array +# Dictionary[String, Array[Callback] +var _command_cbs :Dictionary + +# we only able to check cb function name since Godot 3.3.x +var _enhanced_fr_test := false + + +func _init(cmd_options: CmdOptions) -> void: + _cmd_options = cmd_options + var major: int = Engine.get_version_info()["major"] + var minor: int = Engine.get_version_info()["minor"] + if major == 3 and minor == 3: + _enhanced_fr_test = true + + +# register a callback function for given command +# cmd_name short name of the command +# fr_arg a funcref to a function with a single argument +func register_cb(cmd_name: String, cb: Callable = NO_CB) -> CmdCommandHandler: + var registered_cb: Array = _command_cbs.get(cmd_name, [NO_CB, NO_CB]) + if registered_cb[CB_SINGLE_ARG]: + push_error("A function for command '%s' is already registered!" % cmd_name) + return self + registered_cb[CB_SINGLE_ARG] = cb + _command_cbs[cmd_name] = registered_cb + return self + + +# register a callback function for given command +# cb a funcref to a function with a variable number of arguments but expects all parameters to be passed via a single Array. +func register_cbv(cmd_name: String, cb: Callable) -> CmdCommandHandler: + var registered_cb: Array = _command_cbs.get(cmd_name, [NO_CB, NO_CB]) + if registered_cb[CB_MULTI_ARGS]: + push_error("A function for command '%s' is already registered!" % cmd_name) + return self + registered_cb[CB_MULTI_ARGS] = cb + _command_cbs[cmd_name] = registered_cb + return self + + +func _validate() -> GdUnitResult: + var errors: = PackedStringArray() + # Dictionary[StringName, String] + var registered_cbs: = Dictionary() + + for cmd_name in _command_cbs.keys() as Array[String]: + var cb: Callable = (_command_cbs[cmd_name][CB_SINGLE_ARG] + if _command_cbs[cmd_name][CB_SINGLE_ARG] + else _command_cbs[cmd_name][CB_MULTI_ARGS]) + if cb != NO_CB and not cb.is_valid(): + errors.append("Invalid function reference for command '%s', Check the function reference!" % cmd_name) + if _cmd_options.get_option(cmd_name) == null: + errors.append("The command '%s' is unknown, verify your CmdOptions!" % cmd_name) + # verify for multiple registered command callbacks + if _enhanced_fr_test and cb != NO_CB: + var cb_method: = cb.get_method() + if registered_cbs.has(cb_method): + var already_registered_cmd :String = registered_cbs[cb_method] + errors.append("The function reference '%s' already registerd for command '%s'!" % [cb_method, already_registered_cmd]) + else: + registered_cbs[cb_method] = cmd_name + if errors.is_empty(): + return GdUnitResult.success(true) + return GdUnitResult.error("\n".join(errors)) + + +func execute(commands :Array[CmdCommand]) -> GdUnitResult: + var result := _validate() + if result.is_error(): + return result + for cmd in commands: + var cmd_name := cmd.name() + if _command_cbs.has(cmd_name): + var cb_s :Callable = _command_cbs.get(cmd_name)[CB_SINGLE_ARG] + var arguments := cmd.arguments() + var cmd_option := _cmd_options.get_option(cmd_name) + if cb_s and arguments.size() == 0: + cb_s.call() + elif cb_s: + if cmd_option.type() == TYPE_BOOL: + cb_s.call(true if arguments[0] == "true" else false) + else: + cb_s.call(arguments[0]) + else: + var cb_m :Callable = _command_cbs.get(cmd_name)[CB_MULTI_ARGS] + # we need to find the method and determin the arguments to call the right function + for m in cb_m.get_object().get_method_list(): + if m["name"] == cb_m.get_method(): + if m["args"].size() > 1: + cb_m.callv(arguments) + break + else: + cb_m.call(arguments) + break + return GdUnitResult.success(true) diff --git a/addons/gdUnit4/src/cmd/CmdConsole.gd b/addons/gdUnit4/src/cmd/CmdConsole.gd new file mode 100644 index 0000000..62a2949 --- /dev/null +++ b/addons/gdUnit4/src/cmd/CmdConsole.gd @@ -0,0 +1,145 @@ +# prototype of console with CSI support +# https://notes.burke.libbey.me/ansi-escape-codes/ +class_name CmdConsole +extends RefCounted + +enum { + COLOR_TABLE, + COLOR_RGB +} + +const BOLD = 0x1 +const ITALIC = 0x2 +const UNDERLINE = 0x4 + +const CSI_BOLD = "" +const CSI_ITALIC = "" +const CSI_UNDERLINE = "" + +# Control Sequence Introducer +var _debug_show_color_codes := false +var _color_mode := COLOR_TABLE + + +func color(p_color :Color) -> CmdConsole: + # using color table 16 - 231 a 6 x 6 x 6 RGB color cube (16 + R * 36 + G * 6 + B) + if _color_mode == COLOR_TABLE: + @warning_ignore("integer_division") + var c2 := 16 + (int(p_color.r8/42) * 36) + (int(p_color.g8/42) * 6) + int(p_color.b8/42) + if _debug_show_color_codes: + printraw("%6d" % [c2]) + printraw("[38;5;%dm" % c2 ) + else: + printraw("[38;2;%d;%d;%dm" % [p_color.r8, p_color.g8, p_color.b8] ) + return self + + +func save_cursor() -> CmdConsole: + printraw("") + return self + + +func restore_cursor() -> CmdConsole: + printraw("") + return self + + +func end_color() -> CmdConsole: + printraw("") + return self + + +func row_pos(row :int) -> CmdConsole: + printraw("[%d;0H" % row ) + return self + + +func scroll_area(from :int, to :int) -> CmdConsole: + printraw("[%d;%dr" % [from ,to]) + return self + + +func progress_bar(p_progress :int, p_color :Color = Color.POWDER_BLUE) -> CmdConsole: + if p_progress < 0: + p_progress = 0 + if p_progress > 100: + p_progress = 100 + color(p_color) + printraw("[%-50s] %-3d%%\r" % ["".lpad(int(p_progress/2.0), "■").rpad(50, "-"), p_progress]) + end_color() + return self + + +func printl(value :String) -> CmdConsole: + printraw(value) + return self + + +func new_line() -> CmdConsole: + prints() + return self + + +func reset() -> CmdConsole: + return self + + +func bold(enable :bool) -> CmdConsole: + if enable: + printraw(CSI_BOLD) + return self + + +func italic(enable :bool) -> CmdConsole: + if enable: + printraw(CSI_ITALIC) + return self + + +func underline(enable :bool) -> CmdConsole: + if enable: + printraw(CSI_UNDERLINE) + return self + + +func prints_error(message :String) -> CmdConsole: + return color(Color.CRIMSON).printl(message).end_color().new_line() + + +func prints_warning(message :String) -> CmdConsole: + return color(Color.GOLDENROD).printl(message).end_color().new_line() + + +func prints_color(p_message :String, p_color :Color, p_flags := 0) -> CmdConsole: + return print_color(p_message, p_color, p_flags).new_line() + + +func print_color(p_message :String, p_color :Color, p_flags := 0) -> CmdConsole: + return color(p_color)\ + .bold(p_flags&BOLD == BOLD)\ + .italic(p_flags&ITALIC == ITALIC)\ + .underline(p_flags&UNDERLINE == UNDERLINE)\ + .printl(p_message)\ + .end_color() + + +func print_color_table() -> void: + prints_color("Color Table 6x6x6", Color.ANTIQUE_WHITE) + _debug_show_color_codes = true + for green in range(0, 6): + for red in range(0, 6): + for blue in range(0, 6): + print_color("████████ ", Color8(red*42, green*42, blue*42)) + new_line() + new_line() + + prints_color("Color Table RGB", Color.ANTIQUE_WHITE) + _color_mode = COLOR_RGB + for green in range(0, 6): + for red in range(0, 6): + for blue in range(0, 6): + print_color("████████ ", Color8(red*42, green*42, blue*42)) + new_line() + new_line() + _color_mode = COLOR_TABLE + _debug_show_color_codes = false diff --git a/addons/gdUnit4/src/cmd/CmdOption.gd b/addons/gdUnit4/src/cmd/CmdOption.gd new file mode 100644 index 0000000..a4982de --- /dev/null +++ b/addons/gdUnit4/src/cmd/CmdOption.gd @@ -0,0 +1,61 @@ +class_name CmdOption +extends RefCounted + + +var _commands :PackedStringArray +var _help :String +var _description :String +var _type :int +var _arg_optional :bool = false + + +# constructs a command option by given arguments +# commands : a string with comma separated list of available commands begining with the short form +# help: a help text show howto use +# description: a full description of the command +# type: the argument type +# arg_optional: defines of the argument optional +func _init(p_commands :String, p_help :String, p_description :String, p_type :int = TYPE_NIL, p_arg_optional :bool = false) -> void: + _commands = p_commands.replace(" ", "").replace("\t", "").split(",") + _help = p_help + _description = p_description + _type = p_type + _arg_optional = p_arg_optional + + +func commands() -> PackedStringArray: + return _commands + + +func short_command() -> String: + return _commands[0] + + +func help() -> String: + return _help + + +func description() -> String: + return _description + + +func type() -> int: + return _type + + +func is_argument_optional() -> bool: + return _arg_optional + + +func has_argument() -> bool: + return _type != TYPE_NIL + + +func describe() -> String: + if help().is_empty(): + return " %-32s %s \n" % [commands(), description()] + return " %-32s %s \n %-32s %s\n" % [commands(), description(), "", help()] + + +func _to_string() -> String: + return describe() diff --git a/addons/gdUnit4/src/cmd/CmdOptions.gd b/addons/gdUnit4/src/cmd/CmdOptions.gd new file mode 100644 index 0000000..c610529 --- /dev/null +++ b/addons/gdUnit4/src/cmd/CmdOptions.gd @@ -0,0 +1,31 @@ +class_name CmdOptions +extends RefCounted + + +var _default_options :Array[CmdOption] +var _advanced_options :Array[CmdOption] + + +func _init(p_options :Array[CmdOption] = [], p_advanced_options :Array[CmdOption] = []) -> void: + # default help options + _default_options = p_options + _advanced_options = p_advanced_options + + +func default_options() -> Array[CmdOption]: + return _default_options + + +func advanced_options() -> Array[CmdOption]: + return _advanced_options + + +func options() -> Array[CmdOption]: + return default_options() + advanced_options() + + +func get_option(cmd :String) -> CmdOption: + for option in options(): + if Array(option.commands()).has(cmd): + return option + return null diff --git a/addons/gdUnit4/src/core/GdArrayTools.gd b/addons/gdUnit4/src/core/GdArrayTools.gd new file mode 100644 index 0000000..3e3d3a9 --- /dev/null +++ b/addons/gdUnit4/src/core/GdArrayTools.gd @@ -0,0 +1,101 @@ +## Small helper tool to work with Godot Arrays +class_name GdArrayTools +extends RefCounted + + +const max_elements := 32 +const ARRAY_TYPES := [ + TYPE_ARRAY, + TYPE_PACKED_BYTE_ARRAY, + TYPE_PACKED_INT32_ARRAY, + TYPE_PACKED_INT64_ARRAY, + TYPE_PACKED_FLOAT32_ARRAY, + TYPE_PACKED_FLOAT64_ARRAY, + TYPE_PACKED_STRING_ARRAY, + TYPE_PACKED_VECTOR2_ARRAY, + TYPE_PACKED_VECTOR3_ARRAY, + TYPE_PACKED_COLOR_ARRAY +] + + +static func is_array_type(value :Variant) -> bool: + return is_type_array(typeof(value)) + + +static func is_type_array(type :int) -> bool: + return type in ARRAY_TYPES + + +## Filters an array by given value[br] +## If the given value not an array it returns null, will remove all occurence of given value. +static func filter_value(array :Variant, value :Variant) -> Variant: + if not is_array_type(array): + return null + var filtered_array :Variant = array.duplicate() + var index :int = filtered_array.find(value) + while index != -1: + filtered_array.remove_at(index) + index = filtered_array.find(value) + return filtered_array + + +## Erases a value from given array by using equals(l,r) to find the element to erase +static func erase_value(array :Array, value :Variant) -> void: + for element :Variant in array: + if GdObjects.equals(element, value): + array.erase(element) + + +## Scans for the array build in type on a untyped array[br] +## Returns the buildin type by scan all values and returns the type if all values has the same type. +## If the values has different types TYPE_VARIANT is returend +static func scan_typed(array :Array) -> int: + if array.is_empty(): + return TYPE_NIL + var actual_type := GdObjects.TYPE_VARIANT + for value :Variant in array: + var current_type := typeof(value) + if not actual_type in [GdObjects.TYPE_VARIANT, current_type]: + return GdObjects.TYPE_VARIANT + actual_type = current_type + return actual_type + + +## Converts given array into a string presentation.[br] +## This function is different to the original Godot str() implementation. +## The string presentaion contains fullquallified typed informations. +##[br] +## Examples: +## [codeblock] +## # will result in PackedString(["a", "b"]) +## GdArrayTools.as_string(PackedStringArray("a", "b")) +## # will result in PackedString(["a", "b"]) +## GdArrayTools.as_string(PackedColorArray(Color.RED, COLOR.GREEN)) +## [/codeblock] +static func as_string(elements :Variant, encode_value := true) -> String: + if not is_array_type(elements): + return "ERROR: Not an Array Type!" + var delemiter := ", " + if elements == null: + return "" + if elements.is_empty(): + return "" + var prefix := _typeof_as_string(elements) if encode_value else "" + var formatted := "" + var index := 0 + for element :Variant in elements: + if max_elements != -1 and index > max_elements: + return prefix + "[" + formatted + delemiter + "...]" + if formatted.length() > 0 : + formatted += delemiter + formatted += GdDefaultValueDecoder.decode(element) if encode_value else str(element) + index += 1 + return prefix + "[" + formatted + "]" + + +static func _typeof_as_string(value :Variant) -> String: + var type := typeof(value) + # for untyped array we retun empty string + if type == TYPE_ARRAY: + return "" + return GdObjects.typeof_as_string(value) diff --git a/addons/gdUnit4/src/core/GdDiffTool.gd b/addons/gdUnit4/src/core/GdDiffTool.gd new file mode 100644 index 0000000..a918a99 --- /dev/null +++ b/addons/gdUnit4/src/core/GdDiffTool.gd @@ -0,0 +1,155 @@ +# A tool to find differences between two objects +class_name GdDiffTool +extends RefCounted + + +const DIV_ADD :int = 214 +const DIV_SUB :int = 215 + + +static func _diff(lb: PackedByteArray, rb: PackedByteArray, lookup: Array, ldiff: Array, rdiff: Array) -> void: + var loffset := lb.size() + var roffset := rb.size() + + while true: + #if last character of X and Y matches + if loffset > 0 && roffset > 0 && lb[loffset - 1] == rb[roffset - 1]: + loffset -= 1 + roffset -= 1 + ldiff.push_front(lb[loffset]) + rdiff.push_front(rb[roffset]) + continue + #current character of Y is not present in X + else: if (roffset > 0 && (loffset == 0 || lookup[loffset][roffset - 1] >= lookup[loffset - 1][roffset])): + roffset -= 1 + ldiff.push_front(rb[roffset]) + ldiff.push_front(DIV_ADD) + rdiff.push_front(rb[roffset]) + rdiff.push_front(DIV_SUB) + continue + #current character of X is not present in Y + else: if (loffset > 0 && (roffset == 0 || lookup[loffset][roffset - 1] < lookup[loffset - 1][roffset])): + loffset -= 1 + ldiff.push_front(lb[loffset]) + ldiff.push_front(DIV_SUB) + rdiff.push_front(lb[loffset]) + rdiff.push_front(DIV_ADD) + continue + break + + +# lookup[i][j] stores the length of LCS of substring X[0..i-1], Y[0..j-1] +static func _createLookUp(lb: PackedByteArray, rb: PackedByteArray) -> Array: + var lookup := Array() + lookup.resize(lb.size() + 1) + for i in lookup.size(): + var x := [] + x.resize(rb.size() + 1) + lookup[i] = x + return lookup + + +static func _buildLookup(lb: PackedByteArray, rb: PackedByteArray) -> Array: + var lookup := _createLookUp(lb, rb) + # first column of the lookup table will be all 0 + for i in lookup.size(): + lookup[i][0] = 0 + # first row of the lookup table will be all 0 + for j :int in lookup[0].size(): + lookup[0][j] = 0 + + # fill the lookup table in bottom-up manner + for i in range(1, lookup.size()): + for j in range(1, lookup[0].size()): + # if current character of left and right matches + if lb[i - 1] == rb[j - 1]: + lookup[i][j] = lookup[i - 1][j - 1] + 1; + # else if current character of left and right don't match + else: + lookup[i][j] = max(lookup[i - 1][j], lookup[i][j - 1]); + return lookup + + +static func string_diff(left :Variant, right :Variant) -> Array[PackedByteArray]: + var lb := PackedByteArray() if left == null else str(left).to_utf8_buffer() + var rb := PackedByteArray() if right == null else str(right).to_utf8_buffer() + var ldiff := Array() + var rdiff := Array() + var lookup := _buildLookup(lb, rb); + _diff(lb, rb, lookup, ldiff, rdiff) + return [PackedByteArray(ldiff), PackedByteArray(rdiff)] + + +# prototype +static func longestCommonSubsequence(text1 :String, text2 :String) -> PackedStringArray: + var text1Words := text1.split(" ") + var text2Words := text2.split(" ") + var text1WordCount := text1Words.size() + var text2WordCount := text2Words.size() + var solutionMatrix := Array() + for i in text1WordCount+1: + var ar := Array() + for n in text2WordCount+1: + ar.append(0) + solutionMatrix.append(ar) + + for i in range(text1WordCount-1, 0, -1): + for j in range(text2WordCount-1, 0, -1): + if text1Words[i] == text2Words[j]: + solutionMatrix[i][j] = solutionMatrix[i + 1][j + 1] + 1; + else: + solutionMatrix[i][j] = max(solutionMatrix[i + 1][j], solutionMatrix[i][j + 1]); + + var i := 0 + var j := 0 + var lcsResultList := PackedStringArray(); + while (i < text1WordCount && j < text2WordCount): + if text1Words[i] == text2Words[j]: + lcsResultList.append(text2Words[j]) + i += 1 + j += 1 + else: if (solutionMatrix[i + 1][j] >= solutionMatrix[i][j + 1]): + i += 1 + else: + j += 1 + return lcsResultList + + +static func markTextDifferences(text1 :String, text2 :String, lcsList :PackedStringArray, insertColor :Color, deleteColor:Color) -> String: + var stringBuffer := "" + if text1 == null and lcsList == null: + return stringBuffer + + var text1Words := text1.split(" ") + var text2Words := text2.split(" ") + var i := 0 + var j := 0 + var word1LastIndex := 0 + var word2LastIndex := 0 + for k in lcsList.size(): + while i < text1Words.size() and j < text2Words.size(): + if text1Words[i] == lcsList[k] and text2Words[j] == lcsList[k]: + stringBuffer += "" + lcsList[k] + " " + word1LastIndex = i + 1 + word2LastIndex = j + 1 + i = text1Words.size() + j = text2Words.size() + + else: if text1Words[i] != lcsList[k]: + while i < text1Words.size() and text1Words[i] != lcsList[k]: + stringBuffer += "" + text1Words[i] + " " + i += 1 + else: if text2Words[j] != lcsList[k]: + while j < text2Words.size() and text2Words[j] != lcsList[k]: + stringBuffer += "" + text2Words[j] + " " + j += 1 + i = word1LastIndex + j = word2LastIndex + + while word1LastIndex < text1Words.size(): + stringBuffer += "" + text1Words[word1LastIndex] + " " + word1LastIndex += 1 + while word2LastIndex < text2Words.size(): + stringBuffer += "" + text2Words[word2LastIndex] + " " + word2LastIndex += 1 + return stringBuffer diff --git a/addons/gdUnit4/src/core/GdFunctionDoubler.gd b/addons/gdUnit4/src/core/GdFunctionDoubler.gd new file mode 100644 index 0000000..aafe866 --- /dev/null +++ b/addons/gdUnit4/src/core/GdFunctionDoubler.gd @@ -0,0 +1,189 @@ +class_name GdFunctionDoubler +extends RefCounted + +const DEFAULT_TYPED_RETURN_VALUES := { + TYPE_NIL: "null", + TYPE_BOOL: "false", + TYPE_INT: "0", + TYPE_FLOAT: "0.0", + TYPE_STRING: "\"\"", + TYPE_STRING_NAME: "&\"\"", + TYPE_VECTOR2: "Vector2.ZERO", + TYPE_VECTOR2I: "Vector2i.ZERO", + TYPE_RECT2: "Rect2()", + TYPE_RECT2I: "Rect2i()", + TYPE_VECTOR3: "Vector3.ZERO", + TYPE_VECTOR3I: "Vector3i.ZERO", + TYPE_VECTOR4: "Vector4.ZERO", + TYPE_VECTOR4I: "Vector4i.ZERO", + TYPE_TRANSFORM2D: "Transform2D()", + TYPE_PLANE: "Plane()", + TYPE_QUATERNION: "Quaternion()", + TYPE_AABB: "AABB()", + TYPE_BASIS: "Basis()", + TYPE_TRANSFORM3D: "Transform3D()", + TYPE_PROJECTION: "Projection()", + TYPE_COLOR: "Color()", + TYPE_NODE_PATH: "NodePath()", + TYPE_RID: "RID()", + TYPE_OBJECT: "null", + TYPE_CALLABLE: "Callable()", + TYPE_SIGNAL: "Signal()", + TYPE_DICTIONARY: "Dictionary()", + TYPE_ARRAY: "Array()", + TYPE_PACKED_BYTE_ARRAY: "PackedByteArray()", + TYPE_PACKED_INT32_ARRAY: "PackedInt32Array()", + TYPE_PACKED_INT64_ARRAY: "PackedInt64Array()", + TYPE_PACKED_FLOAT32_ARRAY: "PackedFloat32Array()", + TYPE_PACKED_FLOAT64_ARRAY: "PackedFloat64Array()", + TYPE_PACKED_STRING_ARRAY: "PackedStringArray()", + TYPE_PACKED_VECTOR2_ARRAY: "PackedVector2Array()", + TYPE_PACKED_VECTOR3_ARRAY: "PackedVector3Array()", + TYPE_PACKED_COLOR_ARRAY: "PackedColorArray()", + GdObjects.TYPE_VARIANT: "null", + GdObjects.TYPE_ENUM: "0" +} + +# @GlobalScript enums +# needs to manually map because of https://github.com/godotengine/godot/issues/73835 +const DEFAULT_ENUM_RETURN_VALUES = { + "Side" : "SIDE_LEFT", + "Corner" : "CORNER_TOP_LEFT", + "Orientation" : "HORIZONTAL", + "ClockDirection" : "CLOCKWISE", + "HorizontalAlignment" : "HORIZONTAL_ALIGNMENT_LEFT", + "VerticalAlignment" : "VERTICAL_ALIGNMENT_TOP", + "InlineAlignment" : "INLINE_ALIGNMENT_TOP_TO", + "EulerOrder" : "EULER_ORDER_XYZ", + "Key" : "KEY_NONE", + "KeyModifierMask" : "KEY_CODE_MASK", + "MouseButton" : "MOUSE_BUTTON_NONE", + "MouseButtonMask" : "MOUSE_BUTTON_MASK_LEFT", + "JoyButton" : "JOY_BUTTON_INVALID", + "JoyAxis" : "JOY_AXIS_INVALID", + "MIDIMessage" : "MIDI_MESSAGE_NONE", + "Error" : "OK", + "PropertyHint" : "PROPERTY_HINT_NONE", + "Variant.Type" : "TYPE_NIL", +} + +var _push_errors :String + + +# Determine the enum default by reflection +static func get_enum_default(value :String) -> Variant: + var script := GDScript.new() + script.source_code = """ + extends Resource + + static func get_enum_default() -> Variant: + return %s.values()[0] + + """.dedent() % value + script.reload() + return script.new().call("get_enum_default") + + +static func default_return_value(func_descriptor :GdFunctionDescriptor) -> String: + var return_type :Variant = func_descriptor.return_type() + if return_type == GdObjects.TYPE_ENUM: + var enum_class := func_descriptor._return_class + var enum_path := enum_class.split(".") + if enum_path.size() >= 2: + var keys := ClassDB.class_get_enum_constants(enum_path[0], enum_path[1]) + if not keys.is_empty(): + return "%s.%s" % [enum_path[0], keys[0]] + var enum_value :Variant = get_enum_default(enum_class) + if enum_value != null: + return str(enum_value) + # we need fallback for @GlobalScript enums, + return DEFAULT_ENUM_RETURN_VALUES.get(func_descriptor._return_class, "0") + return DEFAULT_TYPED_RETURN_VALUES.get(return_type, "invalid") + + +func _init(push_errors :bool = false) -> void: + _push_errors = "true" if push_errors else "false" + for type_key in TYPE_MAX: + if not DEFAULT_TYPED_RETURN_VALUES.has(type_key): + push_error("missing default definitions! Expexting %d bud is %d" % [DEFAULT_TYPED_RETURN_VALUES.size(), TYPE_MAX]) + prints("missing default definition for type", type_key) + assert(DEFAULT_TYPED_RETURN_VALUES.has(type_key), "Missing Type default definition!") + + +@warning_ignore("unused_parameter") +func get_template(return_type :Variant, is_vararg :bool) -> String: + push_error("Must be implemented!") + return "" + +func double(func_descriptor :GdFunctionDescriptor) -> PackedStringArray: + var func_signature := func_descriptor.typeless() + var is_static := func_descriptor.is_static() + var is_vararg := func_descriptor.is_vararg() + var is_coroutine := func_descriptor.is_coroutine() + var func_name := func_descriptor.name() + var args := func_descriptor.args() + var varargs := func_descriptor.varargs() + var return_value := GdFunctionDoubler.default_return_value(func_descriptor) + var arg_names := extract_arg_names(args) + var vararg_names := extract_arg_names(varargs) + + # save original constructor arguments + if func_name == "_init": + var constructor_args := ",".join(GdFunctionDoubler.extract_constructor_args(args)) + var constructor := "func _init(%s) -> void:\n super(%s)\n pass\n" % [constructor_args, ", ".join(arg_names)] + return constructor.split("\n") + + var double_src := "" + double_src += '@warning_ignore("untyped_declaration")\n' if Engine.get_version_info().hex >= 0x40200 else '\n' + if func_descriptor.is_engine(): + double_src += '@warning_ignore("native_method_override")\n' + if func_descriptor.return_type() == GdObjects.TYPE_ENUM: + double_src += '@warning_ignore("int_as_enum_without_match")\n' + double_src += '@warning_ignore("int_as_enum_without_cast")\n' + double_src += '@warning_ignore("shadowed_variable")\n' + double_src += func_signature + # fix to unix format, this is need when the template is edited under windows than the template is stored with \r\n + var func_template := get_template(func_descriptor.return_type(), is_vararg).replace("\r\n", "\n") + double_src += func_template\ + .replace("$(arguments)", ", ".join(arg_names))\ + .replace("$(varargs)", ", ".join(vararg_names))\ + .replace("$(await)", GdFunctionDoubler.await_is_coroutine(is_coroutine)) \ + .replace("$(func_name)", func_name )\ + .replace("${default_return_value}", return_value)\ + .replace("$(push_errors)", _push_errors) + + if is_static: + double_src = double_src.replace("$(instance)", "__instance().") + else: + double_src = double_src.replace("$(instance)", "") + return double_src.split("\n") + + +func extract_arg_names(argument_signatures :Array[GdFunctionArgument]) -> PackedStringArray: + var arg_names := PackedStringArray() + for arg in argument_signatures: + arg_names.append(arg._name) + return arg_names + + +static func extract_constructor_args(args :Array[GdFunctionArgument]) -> PackedStringArray: + var constructor_args := PackedStringArray() + for arg in args: + var arg_name := arg._name + var default_value := get_default(arg) + if default_value == "null": + constructor_args.append(arg_name + ":Variant=" + default_value) + else: + constructor_args.append(arg_name + ":=" + default_value) + return constructor_args + + +static func get_default(arg :GdFunctionArgument) -> String: + if arg.has_default(): + return arg.value_as_string() + else: + return DEFAULT_TYPED_RETURN_VALUES.get(arg.type(), "null") + + +static func await_is_coroutine(is_coroutine :bool) -> String: + return "await " if is_coroutine else "" diff --git a/addons/gdUnit4/src/core/GdObjects.gd b/addons/gdUnit4/src/core/GdObjects.gd new file mode 100644 index 0000000..eadb79b --- /dev/null +++ b/addons/gdUnit4/src/core/GdObjects.gd @@ -0,0 +1,691 @@ +# This is a helper class to compare two objects by equals +class_name GdObjects +extends Resource + +const GdUnitTools := preload("res://addons/gdUnit4/src/core/GdUnitTools.gd") + +const TYPE_VOID = TYPE_MAX + 1000 +const TYPE_VARARG = TYPE_MAX + 1001 +const TYPE_VARIANT = TYPE_MAX + 1002 +const TYPE_FUNC = TYPE_MAX + 1003 +const TYPE_FUZZER = TYPE_MAX + 1004 + +const TYPE_NODE = TYPE_MAX + 2001 +# missing Godot types +const TYPE_CONTROL = TYPE_MAX + 2002 +const TYPE_CANVAS = TYPE_MAX + 2003 +const TYPE_ENUM = TYPE_MAX + 2004 + + +# used as default value for varargs +const TYPE_VARARG_PLACEHOLDER_VALUE = "__null__" + + +const TYPE_AS_STRING_MAPPINGS := { + TYPE_NIL: "null", + TYPE_BOOL: "bool", + TYPE_INT: "int", + TYPE_FLOAT: "float", + TYPE_STRING: "String", + TYPE_VECTOR2: "Vector2", + TYPE_VECTOR2I: "Vector2i", + TYPE_RECT2: "Rect2", + TYPE_RECT2I: "Rect2i", + TYPE_VECTOR3: "Vector3", + TYPE_VECTOR3I: "Vector3i", + TYPE_TRANSFORM2D: "Transform2D", + TYPE_VECTOR4: "Vector4", + TYPE_VECTOR4I: "Vector4i", + TYPE_PLANE: "Plane", + TYPE_QUATERNION: "Quaternion", + TYPE_AABB: "AABB", + TYPE_BASIS: "Basis", + TYPE_TRANSFORM3D: "Transform3D", + TYPE_PROJECTION: "Projection", + TYPE_COLOR: "Color", + TYPE_STRING_NAME: "StringName", + TYPE_NODE_PATH: "NodePath", + TYPE_RID: "RID", + TYPE_OBJECT: "Object", + TYPE_CALLABLE: "Callable", + TYPE_SIGNAL: "Signal", + TYPE_DICTIONARY: "Dictionary", + TYPE_ARRAY: "Array", + TYPE_PACKED_BYTE_ARRAY: "PackedByteArray", + TYPE_PACKED_INT32_ARRAY: "PackedInt32Array", + TYPE_PACKED_INT64_ARRAY: "PackedInt64Array", + TYPE_PACKED_FLOAT32_ARRAY: "PackedFloat32Array", + TYPE_PACKED_FLOAT64_ARRAY: "PackedFloat64Array", + TYPE_PACKED_STRING_ARRAY: "PackedStringArray", + TYPE_PACKED_VECTOR2_ARRAY: "PackedVector2Array", + TYPE_PACKED_VECTOR3_ARRAY: "PackedVector3Array", + TYPE_PACKED_COLOR_ARRAY: "PackedColorArray", + TYPE_VOID: "void", + TYPE_VARARG: "VarArg", + TYPE_FUNC: "Func", + TYPE_FUZZER: "Fuzzer", + TYPE_VARIANT: "Variant" +} + + +const NOTIFICATION_AS_STRING_MAPPINGS := { + TYPE_OBJECT: { + Object.NOTIFICATION_POSTINITIALIZE : "POSTINITIALIZE", + Object.NOTIFICATION_PREDELETE: "PREDELETE", + EditorSettings.NOTIFICATION_EDITOR_SETTINGS_CHANGED: "EDITOR_SETTINGS_CHANGED", + }, + TYPE_NODE: { + Node.NOTIFICATION_ENTER_TREE : "ENTER_TREE", + Node.NOTIFICATION_EXIT_TREE: "EXIT_TREE", + Node.NOTIFICATION_CHILD_ORDER_CHANGED: "CHILD_ORDER_CHANGED", + Node.NOTIFICATION_READY: "READY", + Node.NOTIFICATION_PAUSED: "PAUSED", + Node.NOTIFICATION_UNPAUSED: "UNPAUSED", + Node.NOTIFICATION_PHYSICS_PROCESS: "PHYSICS_PROCESS", + Node.NOTIFICATION_PROCESS: "PROCESS", + Node.NOTIFICATION_PARENTED: "PARENTED", + Node.NOTIFICATION_UNPARENTED: "UNPARENTED", + Node.NOTIFICATION_SCENE_INSTANTIATED: "INSTANCED", + Node.NOTIFICATION_DRAG_BEGIN: "DRAG_BEGIN", + Node.NOTIFICATION_DRAG_END: "DRAG_END", + Node.NOTIFICATION_PATH_RENAMED: "PATH_CHANGED", + Node.NOTIFICATION_INTERNAL_PROCESS: "INTERNAL_PROCESS", + Node.NOTIFICATION_INTERNAL_PHYSICS_PROCESS: "INTERNAL_PHYSICS_PROCESS", + Node.NOTIFICATION_POST_ENTER_TREE: "POST_ENTER_TREE", + Node.NOTIFICATION_WM_MOUSE_ENTER: "WM_MOUSE_ENTER", + Node.NOTIFICATION_WM_MOUSE_EXIT: "WM_MOUSE_EXIT", + Node.NOTIFICATION_APPLICATION_FOCUS_IN: "WM_FOCUS_IN", + Node.NOTIFICATION_APPLICATION_FOCUS_OUT: "WM_FOCUS_OUT", + #Node.NOTIFICATION_WM_QUIT_REQUEST: "WM_QUIT_REQUEST", + Node.NOTIFICATION_WM_GO_BACK_REQUEST: "WM_GO_BACK_REQUEST", + Node.NOTIFICATION_WM_WINDOW_FOCUS_OUT: "WM_UNFOCUS_REQUEST", + Node.NOTIFICATION_OS_MEMORY_WARNING: "OS_MEMORY_WARNING", + Node.NOTIFICATION_TRANSLATION_CHANGED: "TRANSLATION_CHANGED", + Node.NOTIFICATION_WM_ABOUT: "WM_ABOUT", + Node.NOTIFICATION_CRASH: "CRASH", + Node.NOTIFICATION_OS_IME_UPDATE: "OS_IME_UPDATE", + Node.NOTIFICATION_APPLICATION_RESUMED: "APP_RESUMED", + Node.NOTIFICATION_APPLICATION_PAUSED: "APP_PAUSED", + Node3D.NOTIFICATION_TRANSFORM_CHANGED: "TRANSFORM_CHANGED", + Node3D.NOTIFICATION_ENTER_WORLD: "ENTER_WORLD", + Node3D.NOTIFICATION_EXIT_WORLD: "EXIT_WORLD", + Node3D.NOTIFICATION_VISIBILITY_CHANGED: "VISIBILITY_CHANGED", + Skeleton3D.NOTIFICATION_UPDATE_SKELETON: "UPDATE_SKELETON", + CanvasItem.NOTIFICATION_DRAW: "DRAW", + CanvasItem.NOTIFICATION_VISIBILITY_CHANGED: "VISIBILITY_CHANGED", + CanvasItem.NOTIFICATION_ENTER_CANVAS: "ENTER_CANVAS", + CanvasItem.NOTIFICATION_EXIT_CANVAS: "EXIT_CANVAS", + #Popup.NOTIFICATION_POST_POPUP: "POST_POPUP", + #Popup.NOTIFICATION_POPUP_HIDE: "POPUP_HIDE", + }, + TYPE_CONTROL : { + Object.NOTIFICATION_PREDELETE: "PREDELETE", + Container.NOTIFICATION_SORT_CHILDREN: "SORT_CHILDREN", + Control.NOTIFICATION_RESIZED: "RESIZED", + Control.NOTIFICATION_MOUSE_ENTER: "MOUSE_ENTER", + Control.NOTIFICATION_MOUSE_EXIT: "MOUSE_EXIT", + Control.NOTIFICATION_FOCUS_ENTER: "FOCUS_ENTER", + Control.NOTIFICATION_FOCUS_EXIT: "FOCUS_EXIT", + Control.NOTIFICATION_THEME_CHANGED: "THEME_CHANGED", + #Control.NOTIFICATION_MODAL_CLOSE: "MODAL_CLOSE", + Control.NOTIFICATION_SCROLL_BEGIN: "SCROLL_BEGIN", + Control.NOTIFICATION_SCROLL_END: "SCROLL_END", + } +} + + +enum COMPARE_MODE { + OBJECT_REFERENCE, + PARAMETER_DEEP_TEST +} + + +# prototype of better object to dictionary +static func obj2dict(obj :Object, hashed_objects := Dictionary()) -> Dictionary: + if obj == null: + return {} + var clazz_name := obj.get_class() + var dict := Dictionary() + var clazz_path := "" + + if is_instance_valid(obj) and obj.get_script() != null: + var d := inst_to_dict(obj) + clazz_path = d["@path"] + if d["@subpath"] != NodePath(""): + clazz_name = d["@subpath"] + dict["@inner_class"] = true + else: + clazz_name = clazz_path.get_file().replace(".gd", "") + dict["@path"] = clazz_path + + for property in obj.get_property_list(): + var property_name :String = property["name"] + var property_type :int = property["type"] + var property_value :Variant = obj.get(property_name) + if property_value is GDScript or property_value is Callable or property_value is RegEx: + continue + if (property["usage"] & PROPERTY_USAGE_SCRIPT_VARIABLE|PROPERTY_USAGE_DEFAULT + and not property["usage"] & PROPERTY_USAGE_CATEGORY + and not property["usage"] == 0): + if property_type == TYPE_OBJECT: + # prevent recursion + if hashed_objects.has(obj): + dict[property_name] = str(property_value) + continue + hashed_objects[obj] = true + dict[property_name] = obj2dict(property_value, hashed_objects) + else: + dict[property_name] = property_value + if obj.has_method("get_children"): + var childrens :Array = obj.get_children() + dict["childrens"] = childrens.map(func (child :Object) -> Dictionary: return obj2dict(child, hashed_objects)) + + return {"%s" % clazz_name : dict} + + +static func equals(obj_a :Variant, obj_b :Variant, case_sensitive :bool = false, compare_mode :COMPARE_MODE = COMPARE_MODE.PARAMETER_DEEP_TEST) -> bool: + return _equals(obj_a, obj_b, case_sensitive, compare_mode, [], 0) + + +static func equals_sorted(obj_a :Array, obj_b :Array, case_sensitive :bool = false, compare_mode :COMPARE_MODE = COMPARE_MODE.PARAMETER_DEEP_TEST) -> bool: + var a := obj_a.duplicate() + var b := obj_b.duplicate() + a.sort() + b.sort() + return equals(a, b, case_sensitive, compare_mode) + + +static func _equals(obj_a :Variant, obj_b :Variant, case_sensitive :bool, compare_mode :COMPARE_MODE, deep_stack :Array, stack_depth :int ) -> bool: + var type_a := typeof(obj_a) + var type_b := typeof(obj_b) + if stack_depth > 32: + prints("stack_depth", stack_depth, deep_stack) + push_error("GdUnit equals has max stack deep reached!") + return false + + # use argument matcher if requested + if is_instance_valid(obj_a) and obj_a is GdUnitArgumentMatcher: + return (obj_a as GdUnitArgumentMatcher).is_match(obj_b) + if is_instance_valid(obj_b) and obj_b is GdUnitArgumentMatcher: + return (obj_b as GdUnitArgumentMatcher).is_match(obj_a) + + stack_depth += 1 + # fast fail is different types + if not _is_type_equivalent(type_a, type_b): + return false + # is same instance + if obj_a == obj_b: + return true + # handle null values + if obj_a == null and obj_b != null: + return false + if obj_b == null and obj_a != null: + return false + + match type_a: + TYPE_OBJECT: + if deep_stack.has(obj_a) or deep_stack.has(obj_b): + return true + deep_stack.append(obj_a) + deep_stack.append(obj_b) + if compare_mode == COMPARE_MODE.PARAMETER_DEEP_TEST: + # fail fast + if not is_instance_valid(obj_a) or not is_instance_valid(obj_b): + return false + if obj_a.get_class() != obj_b.get_class(): + return false + var a := obj2dict(obj_a) + var b := obj2dict(obj_b) + return _equals(a, b, case_sensitive, compare_mode, deep_stack, stack_depth) + return obj_a == obj_b + + TYPE_ARRAY: + if obj_a.size() != obj_b.size(): + return false + for index :int in obj_a.size(): + if not _equals(obj_a[index], obj_b[index], case_sensitive, compare_mode, deep_stack, stack_depth): + return false + return true + + TYPE_DICTIONARY: + if obj_a.size() != obj_b.size(): + return false + for key :Variant in obj_a.keys(): + var value_a :Variant = obj_a[key] if obj_a.has(key) else null + var value_b :Variant = obj_b[key] if obj_b.has(key) else null + if not _equals(value_a, value_b, case_sensitive, compare_mode, deep_stack, stack_depth): + return false + return true + + TYPE_STRING: + if case_sensitive: + return obj_a.to_lower() == obj_b.to_lower() + else: + return obj_a == obj_b + return obj_a == obj_b + + +@warning_ignore("shadowed_variable_base_class") +static func notification_as_string(instance :Variant, notification :int) -> String: + var error := "Unknown notification: '%s' at instance: %s" % [notification, instance] + if instance is Node and NOTIFICATION_AS_STRING_MAPPINGS[TYPE_NODE].has(notification): + return NOTIFICATION_AS_STRING_MAPPINGS[TYPE_NODE].get(notification, error) + if instance is Control and NOTIFICATION_AS_STRING_MAPPINGS[TYPE_CONTROL].has(notification): + return NOTIFICATION_AS_STRING_MAPPINGS[TYPE_CONTROL].get(notification, error) + return NOTIFICATION_AS_STRING_MAPPINGS[TYPE_OBJECT].get(notification, error) + + +static func string_to_type(value :String) -> int: + for type :int in TYPE_AS_STRING_MAPPINGS.keys(): + if TYPE_AS_STRING_MAPPINGS.get(type) == value: + return type + return TYPE_NIL + + +static func to_camel_case(value :String) -> String: + var p := to_pascal_case(value) + if not p.is_empty(): + p[0] = p[0].to_lower() + return p + + +static func to_pascal_case(value :String) -> String: + return value.capitalize().replace(" ", "") + + +static func to_snake_case(value :String) -> String: + var result := PackedStringArray() + for ch in value: + var lower_ch := ch.to_lower() + if ch != lower_ch and result.size() > 1: + result.append('_') + result.append(lower_ch) + return ''.join(result) + + +static func is_snake_case(value :String) -> bool: + for ch in value: + if ch == '_': + continue + if ch == ch.to_upper(): + return false + return true + + +static func type_as_string(type :int) -> String: + return TYPE_AS_STRING_MAPPINGS.get(type, "Variant") + + +static func typeof_as_string(value :Variant) -> String: + return TYPE_AS_STRING_MAPPINGS.get(typeof(value), "Unknown type") + + +static func all_types() -> PackedInt32Array: + return PackedInt32Array(TYPE_AS_STRING_MAPPINGS.keys()) + + +static func string_as_typeof(type_name :String) -> int: + var type :Variant = TYPE_AS_STRING_MAPPINGS.find_key(type_name) + return type if type != null else TYPE_VARIANT + + +static func is_primitive_type(value :Variant) -> bool: + return typeof(value) in [TYPE_BOOL, TYPE_STRING, TYPE_STRING_NAME, TYPE_INT, TYPE_FLOAT] + + +static func _is_type_equivalent(type_a :int, type_b :int) -> bool: + # don't test for TYPE_STRING_NAME equivalenz + if type_a == TYPE_STRING_NAME or type_b == TYPE_STRING_NAME: + return true + if GdUnitSettings.is_strict_number_type_compare(): + return type_a == type_b + return ( + (type_a == TYPE_FLOAT and type_b == TYPE_INT) + or (type_a == TYPE_INT and type_b == TYPE_FLOAT) + or type_a == type_b) + + +static func is_engine_type(value :Object) -> bool: + if value is GDScript or value is ScriptExtension: + return false + return value.is_class("GDScriptNativeClass") + + +static func is_type(value :Variant) -> bool: + # is an build-in type + if typeof(value) != TYPE_OBJECT: + return false + # is a engine class type + if is_engine_type(value): + return true + # is a custom class type + if value is GDScript and value.can_instantiate(): + return true + return false + + +static func _is_same(left :Variant, right :Variant) -> bool: + var left_type := -1 if left == null else typeof(left) + var right_type := -1 if right == null else typeof(right) + + # if typ different can't be the same + if left_type != right_type: + return false + if left_type == TYPE_OBJECT and right_type == TYPE_OBJECT: + return left.get_instance_id() == right.get_instance_id() + return equals(left, right) + + +static func is_object(value :Variant) -> bool: + return typeof(value) == TYPE_OBJECT + + +static func is_script(value :Variant) -> bool: + return is_object(value) and value is Script + + +static func is_test_suite(script :Script) -> bool: + return is_gd_testsuite(script) or GdUnit4CSharpApiLoader.is_test_suite(script.resource_path) + + +static func is_native_class(value :Variant) -> bool: + return is_object(value) and is_engine_type(value) + + +static func is_scene(value :Variant) -> bool: + return is_object(value) and value is PackedScene + + +static func is_scene_resource_path(value :Variant) -> bool: + return value is String and value.ends_with(".tscn") + + +static func is_gd_script(script :Script) -> bool: + return script is GDScript + + +static func is_cs_script(script :Script) -> bool: + # we need to check by stringify name because checked non mono Godot the class CSharpScript is not available + return str(script).find("CSharpScript") != -1 + + +static func is_gd_testsuite(script :Script) -> bool: + if is_gd_script(script): + var stack := [script] + while not stack.is_empty(): + var current := stack.pop_front() as Script + var base := current.get_base_script() as Script + if base != null: + if base.resource_path.find("GdUnitTestSuite") != -1: + return true + stack.push_back(base) + return false + + +static func is_singleton(value :Variant) -> bool: + if not is_instance_valid(value) or is_native_class(value): + return false + for name in Engine.get_singleton_list(): + if value.is_class(name): + return true + return false + + +static func is_instance(value :Variant) -> bool: + if not is_instance_valid(value) or is_native_class(value): + return false + if is_script(value) and value.get_instance_base_type() == "": + return true + if is_scene(value): + return true + return not value.has_method('new') and not value.has_method('instance') + + +# only object form type Node and attached filename +static func is_instance_scene(instance :Variant) -> bool: + if instance is Node: + var node := instance as Node + return node.get_scene_file_path() != null and not node.get_scene_file_path().is_empty() + return false + + +static func can_be_instantiate(obj :Variant) -> bool: + if not obj or is_engine_type(obj): + return false + return obj.has_method("new") + + +static func create_instance(clazz :Variant) -> GdUnitResult: + match typeof(clazz): + TYPE_OBJECT: + # test is given clazz already an instance + if is_instance(clazz): + return GdUnitResult.success(clazz) + return GdUnitResult.success(clazz.new()) + TYPE_STRING: + if ClassDB.class_exists(clazz): + if Engine.has_singleton(clazz): + return GdUnitResult.error("Not allowed to create a instance for singelton '%s'." % clazz) + if not ClassDB.can_instantiate(clazz): + return GdUnitResult.error("Can't instance Engine class '%s'." % clazz) + return GdUnitResult.success(ClassDB.instantiate(clazz)) + else: + var clazz_path :String = extract_class_path(clazz)[0] + if not FileAccess.file_exists(clazz_path): + return GdUnitResult.error("Class '%s' not found." % clazz) + var script := load(clazz_path) + if script != null: + return GdUnitResult.success(script.new()) + else: + return GdUnitResult.error("Can't create instance for '%s'." % clazz) + return GdUnitResult.error("Can't create instance for class '%s'." % clazz) + + +static func extract_class_path(clazz :Variant) -> PackedStringArray: + var clazz_path := PackedStringArray() + if clazz is String: + clazz_path.append(clazz) + return clazz_path + if is_instance(clazz): + # is instance a script instance? + var script := clazz.script as GDScript + if script != null: + return extract_class_path(script) + return clazz_path + + if clazz is GDScript: + if not clazz.resource_path.is_empty(): + clazz_path.append(clazz.resource_path) + return clazz_path + # if not found we go the expensive way and extract the path form the script by creating an instance + var arg_list := build_function_default_arguments(clazz, "_init") + var instance :Variant = clazz.callv("new", arg_list) + var clazz_info := inst_to_dict(instance) + GdUnitTools.free_instance(instance) + clazz_path.append(clazz_info["@path"]) + if clazz_info.has("@subpath"): + var sub_path :String = clazz_info["@subpath"] + if not sub_path.is_empty(): + var sub_paths := sub_path.split("/") + clazz_path += sub_paths + return clazz_path + return clazz_path + + +static func extract_class_name_from_class_path(clazz_path :PackedStringArray) -> String: + var base_clazz := clazz_path[0] + # return original class name if engine class + if ClassDB.class_exists(base_clazz): + return base_clazz + var clazz_name := to_pascal_case(base_clazz.get_basename().get_file()) + for path_index in range(1, clazz_path.size()): + clazz_name += "." + clazz_path[path_index] + return clazz_name + + +static func extract_class_name(clazz :Variant) -> GdUnitResult: + if clazz == null: + return GdUnitResult.error("Can't extract class name form a null value.") + + if is_instance(clazz): + # is instance a script instance? + var script := clazz.script as GDScript + if script != null: + return extract_class_name(script) + return GdUnitResult.success(clazz.get_class()) + + # extract name form full qualified class path + if clazz is String: + if ClassDB.class_exists(clazz): + return GdUnitResult.success(clazz) + var source_sript :Script = load(clazz) + var clazz_name :String = load("res://addons/gdUnit4/src/core/parse/GdScriptParser.gd").new().get_class_name(source_sript) + return GdUnitResult.success(to_pascal_case(clazz_name)) + + if is_primitive_type(clazz): + return GdUnitResult.error("Can't extract class name for an primitive '%s'" % type_as_string(typeof(clazz))) + + if is_script(clazz): + if clazz.resource_path.is_empty(): + var class_path := extract_class_name_from_class_path(extract_class_path(clazz)) + return GdUnitResult.success(class_path); + return extract_class_name(clazz.resource_path) + + # need to create an instance for a class typ the extract the class name + var instance :Variant = clazz.new() + if instance == null: + return GdUnitResult.error("Can't create a instance for class '%s'" % clazz) + var result := extract_class_name(instance) + GdUnitTools.free_instance(instance) + return result + + +static func extract_inner_clazz_names(clazz_name :String, script_path :PackedStringArray) -> PackedStringArray: + var inner_classes := PackedStringArray() + + if ClassDB.class_exists(clazz_name): + return inner_classes + var script :GDScript = load(script_path[0]) + var map := script.get_script_constant_map() + for key :String in map.keys(): + var value :Variant = map.get(key) + if value is GDScript: + var class_path := extract_class_path(value) + inner_classes.append(class_path[1]) + return inner_classes + + +static func extract_class_functions(clazz_name :String, script_path :PackedStringArray) -> Array: + if ClassDB.class_get_method_list(clazz_name): + return ClassDB.class_get_method_list(clazz_name) + + if not FileAccess.file_exists(script_path[0]): + return Array() + var script :GDScript = load(script_path[0]) + if script is GDScript: + # if inner class on class path we have to load the script from the script_constant_map + if script_path.size() == 2 and script_path[1] != "": + var inner_classes := script_path[1] + var map := script.get_script_constant_map() + script = map[inner_classes] + var clazz_functions :Array = script.get_method_list() + var base_clazz :String = script.get_instance_base_type() + if base_clazz: + return extract_class_functions(base_clazz, script_path) + return clazz_functions + return Array() + + +# scans all registert script classes for given +# if the class is public in the global space than return true otherwise false +# public class means the script class is defined by 'class_name ' +static func is_public_script_class(clazz_name :String) -> bool: + var script_classes:Array[Dictionary] = ProjectSettings.get_global_class_list() + for class_info in script_classes: + if class_info.has("class"): + if class_info["class"] == clazz_name: + return true + return false + + +static func build_function_default_arguments(script :GDScript, func_name :String) -> Array: + var arg_list := Array() + for func_sig in script.get_script_method_list(): + if func_sig["name"] == func_name: + var args :Array[Dictionary] = func_sig["args"] + for arg in args: + var value_type :int = arg["type"] + var default_value :Variant = default_value_by_type(value_type) + arg_list.append(default_value) + return arg_list + return arg_list + + +static func default_value_by_type(type :int) -> Variant: + assert(type < TYPE_MAX) + assert(type >= 0) + + match type: + TYPE_NIL: return null + TYPE_BOOL: return false + TYPE_INT: return 0 + TYPE_FLOAT: return 0.0 + TYPE_STRING: return "" + TYPE_VECTOR2: return Vector2.ZERO + TYPE_VECTOR2I: return Vector2i.ZERO + TYPE_VECTOR3: return Vector3.ZERO + TYPE_VECTOR3I: return Vector3i.ZERO + TYPE_VECTOR4: return Vector4.ZERO + TYPE_VECTOR4I: return Vector4i.ZERO + TYPE_RECT2: return Rect2() + TYPE_RECT2I: return Rect2i() + TYPE_TRANSFORM2D: return Transform2D() + TYPE_PLANE: return Plane() + TYPE_QUATERNION: return Quaternion() + TYPE_AABB: return AABB() + TYPE_BASIS: return Basis() + TYPE_TRANSFORM3D: return Transform3D() + TYPE_COLOR: return Color() + TYPE_NODE_PATH: return NodePath() + TYPE_RID: return RID() + TYPE_OBJECT: return null + TYPE_ARRAY: return [] + TYPE_DICTIONARY: return {} + TYPE_PACKED_BYTE_ARRAY: return PackedByteArray() + TYPE_PACKED_COLOR_ARRAY: return PackedColorArray() + TYPE_PACKED_INT32_ARRAY: return PackedInt32Array() + TYPE_PACKED_INT64_ARRAY: return PackedInt64Array() + TYPE_PACKED_FLOAT32_ARRAY: return PackedFloat32Array() + TYPE_PACKED_FLOAT64_ARRAY: return PackedFloat64Array() + TYPE_PACKED_STRING_ARRAY: return PackedStringArray() + TYPE_PACKED_VECTOR2_ARRAY: return PackedVector2Array() + TYPE_PACKED_VECTOR3_ARRAY: return PackedVector3Array() + + push_error("Can't determine a default value for type: '%s', Please create a Bug issue and attach the stacktrace please." % type) + return null + + +static func find_nodes_by_class(root: Node, cls: String, recursive: bool = false) -> Array[Node]: + if not recursive: + return _find_nodes_by_class_no_rec(root, cls) + return _find_nodes_by_class(root, cls) + + +static func _find_nodes_by_class_no_rec(parent: Node, cls: String) -> Array[Node]: + var result :Array[Node] = [] + for ch in parent.get_children(): + if ch.get_class() == cls: + result.append(ch) + return result + + +static func _find_nodes_by_class(root: Node, cls: String) -> Array[Node]: + var result :Array[Node] = [] + var stack :Array[Node] = [root] + while stack: + var node :Node = stack.pop_back() + if node.get_class() == cls: + result.append(node) + for ch in node.get_children(): + stack.push_back(ch) + return result diff --git a/addons/gdUnit4/src/core/GdUnit4Version.gd b/addons/gdUnit4/src/core/GdUnit4Version.gd new file mode 100644 index 0000000..5918353 --- /dev/null +++ b/addons/gdUnit4/src/core/GdUnit4Version.gd @@ -0,0 +1,57 @@ +class_name GdUnit4Version +extends RefCounted + +const VERSION_PATTERN = "[center][color=#9887c4]gd[/color][color=#7a57d6]Unit[/color][color=#9887c4]4[/color] [color=#9887c4]${version}[/color][/center]" + +var _major :int +var _minor :int +var _patch :int + + +func _init(major :int, minor :int, patch :int) -> void: + _major = major + _minor = minor + _patch = patch + + +static func parse(value :String) -> GdUnit4Version: + var regex := RegEx.new() + regex.compile("[a-zA-Z:,-]+") + var cleaned := regex.sub(value, "", true) + var parts := cleaned.split(".") + var major := parts[0].to_int() + var minor := parts[1].to_int() + var patch := parts[2].to_int() if parts.size() > 2 else 0 + return GdUnit4Version.new(major, minor, patch) + + +static func current() -> GdUnit4Version: + var config := ConfigFile.new() + config.load('addons/gdUnit4/plugin.cfg') + return parse(config.get_value('plugin', 'version')) + + +func equals(other :GdUnit4Version) -> bool: + return _major == other._major and _minor == other._minor and _patch == other._patch + + +func is_greater(other :GdUnit4Version) -> bool: + if _major > other._major: + return true + if _major == other._major and _minor > other._minor: + return true + return _major == other._major and _minor == other._minor and _patch > other._patch + + +static func init_version_label(label :Control) -> void: + var config := ConfigFile.new() + config.load('addons/gdUnit4/plugin.cfg') + var version :String = config.get_value('plugin', 'version') + if label is RichTextLabel: + label.text = VERSION_PATTERN.replace('${version}', version) + else: + label.text = "gdUnit4 " + version + + +func _to_string() -> String: + return "v%d.%d.%d" % [_major, _minor, _patch] diff --git a/addons/gdUnit4/src/core/GdUnitClassDoubler.gd b/addons/gdUnit4/src/core/GdUnitClassDoubler.gd new file mode 100644 index 0000000..4f0d2bb --- /dev/null +++ b/addons/gdUnit4/src/core/GdUnitClassDoubler.gd @@ -0,0 +1,122 @@ +# A class doubler used to mock and spy checked implementations +class_name GdUnitClassDoubler +extends RefCounted + + +const DOUBLER_INSTANCE_ID_PREFIX := "gdunit_doubler_instance_id_" +const DOUBLER_TEMPLATE :GDScript = preload("res://addons/gdUnit4/src/core/GdUnitObjectInteractionsTemplate.gd") +const EXCLUDE_VIRTUAL_FUNCTIONS = [ + # we have to exclude notifications because NOTIFICATION_PREDELETE is try + # to delete already freed spy/mock resources and will result in a conflict + "_notification", + # https://github.com/godotengine/godot/issues/67461 + "get_name", + "get_path", + "duplicate", + ] +# define functions to be exclude when spy or mock checked a scene +const EXLCUDE_SCENE_FUNCTIONS = [ + # needs to exclude get/set script functions otherwise it endsup in recursive endless loop + "set_script", + "get_script", + # needs to exclude otherwise verify fails checked collection arguments checked calling to string + "_to_string", +] +const EXCLUDE_FUNCTIONS = ["new", "free", "get_instance_id", "get_tree"] + + +static func check_leaked_instances() -> void: + ## we check that all registered spy/mock instances are removed from the engine meta data + for key in Engine.get_meta_list(): + if key.begins_with(DOUBLER_INSTANCE_ID_PREFIX): + var instance :Variant = Engine.get_meta(key) + push_error("GdUnit internal error: an spy/mock instance '%s', class:'%s' is not removed from the engine and will lead in a leaked instance!" % [instance, instance.__SOURCE_CLASS]) + + +# loads the doubler template +# class_info = { "class_name": <>, "class_path" : <>} +static func load_template(template :String, class_info :Dictionary, instance :Object) -> PackedStringArray: + # store instance id + var source_code := template\ + .replace("${instance_id}", "%s%d" % [DOUBLER_INSTANCE_ID_PREFIX, abs(instance.get_instance_id())])\ + .replace("${source_class}", class_info.get("class_name")) + var lines := GdScriptParser.to_unix_format(source_code).split("\n") + # replace template class_name with Doubled name and extends form source class + lines.insert(0, "class_name Doubled%s" % class_info.get("class_name").replace(".", "_")) + lines.insert(1, extends_clazz(class_info)) + # append Object interactions stuff + lines.append_array(GdScriptParser.to_unix_format(DOUBLER_TEMPLATE.source_code).split("\n")) + return lines + + +static func extends_clazz(class_info :Dictionary) -> String: + var clazz_name :String = class_info.get("class_name") + var clazz_path :PackedStringArray = class_info.get("class_path", []) + # is inner class? + if clazz_path.size() > 1: + return "extends %s" % clazz_name + if clazz_path.size() == 1 and clazz_path[0].ends_with(".gd"): + return "extends '%s'" % clazz_path[0] + return "extends %s" % clazz_name + + +# double all functions of given instance +static func double_functions(instance :Object, clazz_name :String, clazz_path :PackedStringArray, func_doubler: GdFunctionDoubler, exclude_functions :Array) -> PackedStringArray: + var doubled_source := PackedStringArray() + var parser := GdScriptParser.new() + var exclude_override_functions := EXCLUDE_VIRTUAL_FUNCTIONS + EXCLUDE_FUNCTIONS + exclude_functions + var functions := Array() + + # double script functions + if not ClassDB.class_exists(clazz_name): + var result := parser.parse(clazz_name, clazz_path) + if result.is_error(): + push_error(result.error_message()) + return PackedStringArray() + var class_descriptor :GdClassDescriptor = result.value() + while class_descriptor != null: + for func_descriptor in class_descriptor.functions(): + if instance != null and not instance.has_method(func_descriptor.name()): + #prints("no virtual func implemented",clazz_name, func_descriptor.name() ) + continue + if functions.has(func_descriptor.name()) or exclude_override_functions.has(func_descriptor.name()): + continue + doubled_source += func_doubler.double(func_descriptor) + functions.append(func_descriptor.name()) + class_descriptor = class_descriptor.parent() + + # double regular class functions + var clazz_functions := GdObjects.extract_class_functions(clazz_name, clazz_path) + for method : Dictionary in clazz_functions: + var func_descriptor := GdFunctionDescriptor.extract_from(method) + # exclude private core functions + if func_descriptor.is_private(): + continue + if functions.has(func_descriptor.name()) or exclude_override_functions.has(func_descriptor.name()): + continue + # GD-110: Hotfix do not double invalid engine functions + if is_invalid_method_descriptior(method): + #prints("'%s': invalid method descriptor found! %s" % [clazz_name, method]) + continue + # do not double on not implemented virtual functions + if instance != null and not instance.has_method(func_descriptor.name()): + #prints("no virtual func implemented",clazz_name, func_descriptor.name() ) + continue + functions.append(func_descriptor.name()) + doubled_source.append_array(func_doubler.double(func_descriptor)) + return doubled_source + + +# GD-110 +static func is_invalid_method_descriptior(method :Dictionary) -> bool: + var return_info :Dictionary = method["return"] + var type :int = return_info["type"] + var usage :int = return_info["usage"] + var clazz_name :String = return_info["class_name"] + # is method returning a type int with a given 'class_name' we have an enum + # and the PROPERTY_USAGE_CLASS_IS_ENUM must be set + if type == TYPE_INT and not clazz_name.is_empty() and not (usage & PROPERTY_USAGE_CLASS_IS_ENUM): + return true + if clazz_name == "Variant.Type": + return true + return false diff --git a/addons/gdUnit4/src/core/GdUnitFileAccess.gd b/addons/gdUnit4/src/core/GdUnitFileAccess.gd new file mode 100644 index 0000000..01022dd --- /dev/null +++ b/addons/gdUnit4/src/core/GdUnitFileAccess.gd @@ -0,0 +1,211 @@ +class_name GdUnitFileAccess +extends RefCounted + +const GDUNIT_TEMP := "user://tmp" + + +static func current_dir() -> String: + return ProjectSettings.globalize_path("res://") + + +static func clear_tmp() -> void: + delete_directory(GDUNIT_TEMP) + + +# Creates a new file under +static func create_temp_file(relative_path :String, file_name :String, mode := FileAccess.WRITE) -> FileAccess: + var file_path := create_temp_dir(relative_path) + "/" + file_name + var file := FileAccess.open(file_path, mode) + if file == null: + push_error("Error creating temporary file at: %s, %s" % [file_path, error_string(FileAccess.get_open_error())]) + return file + + +static func temp_dir() -> String: + if not DirAccess.dir_exists_absolute(GDUNIT_TEMP): + DirAccess.make_dir_recursive_absolute(GDUNIT_TEMP) + return GDUNIT_TEMP + + +static func create_temp_dir(folder_name :String) -> String: + var new_folder := temp_dir() + "/" + folder_name + if not DirAccess.dir_exists_absolute(new_folder): + DirAccess.make_dir_recursive_absolute(new_folder) + return new_folder + + +static func copy_file(from_file :String, to_dir :String) -> GdUnitResult: + var dir := DirAccess.open(to_dir) + if dir != null: + var to_file := to_dir + "/" + from_file.get_file() + prints("Copy %s to %s" % [from_file, to_file]) + var error := dir.copy(from_file, to_file) + if error != OK: + return GdUnitResult.error("Can't copy file form '%s' to '%s'. Error: '%s'" % [from_file, to_file, error_string(error)]) + return GdUnitResult.success(to_file) + return GdUnitResult.error("Directory not found: " + to_dir) + + +static func copy_directory(from_dir :String, to_dir :String, recursive :bool = false) -> bool: + if not DirAccess.dir_exists_absolute(from_dir): + push_error("Source directory not found '%s'" % from_dir) + return false + + # check if destination exists + if not DirAccess.dir_exists_absolute(to_dir): + # create it + var err := DirAccess.make_dir_recursive_absolute(to_dir) + if err != OK: + push_error("Can't create directory '%s'. Error: %s" % [to_dir, error_string(err)]) + return false + var source_dir := DirAccess.open(from_dir) + var dest_dir := DirAccess.open(to_dir) + if source_dir != null: + source_dir.list_dir_begin() + var next := "." + + while next != "": + next = source_dir.get_next() + if next == "" or next == "." or next == "..": + continue + var source := source_dir.get_current_dir() + "/" + next + var dest := dest_dir.get_current_dir() + "/" + next + if source_dir.current_is_dir(): + if recursive: + copy_directory(source + "/", dest, recursive) + continue + var err := source_dir.copy(source, dest) + if err != OK: + push_error("Error checked copy file '%s' to '%s'" % [source, dest]) + return false + + return true + else: + push_error("Directory not found: " + from_dir) + return false + + +static func delete_directory(path :String, only_content := false) -> void: + var dir := DirAccess.open(path) + if dir != null: + dir.list_dir_begin() + var file_name := "." + while file_name != "": + file_name = dir.get_next() + if file_name.is_empty() or file_name == "." or file_name == "..": + continue + var next := path + "/" +file_name + if dir.current_is_dir(): + delete_directory(next) + else: + # delete file + var err := dir.remove(next) + if err: + push_error("Delete %s failed: %s" % [next, error_string(err)]) + if not only_content: + var err := dir.remove(path) + if err: + push_error("Delete %s failed: %s" % [path, error_string(err)]) + + +static func delete_path_index_lower_equals_than(path :String, prefix :String, index :int) -> int: + var dir := DirAccess.open(path) + if dir == null: + return 0 + var deleted := 0 + dir.list_dir_begin() + var next := "." + while next != "": + next = dir.get_next() + if next.is_empty() or next == "." or next == "..": + continue + if next.begins_with(prefix): + var current_index := next.split("_")[1].to_int() + if current_index <= index: + deleted += 1 + delete_directory(path + "/" + next) + return deleted + + +# scans given path for sub directories by given prefix and returns the highest index numer +# e.g. +static func find_last_path_index(path :String, prefix :String) -> int: + var dir := DirAccess.open(path) + if dir == null: + return 0 + var last_iteration := 0 + dir.list_dir_begin() + var next := "." + while next != "": + next = dir.get_next() + if next.is_empty() or next == "." or next == "..": + continue + if next.begins_with(prefix): + var iteration := next.split("_")[1].to_int() + if iteration > last_iteration: + last_iteration = iteration + return last_iteration + + +static func scan_dir(path :String) -> PackedStringArray: + var dir := DirAccess.open(path) + if dir == null or not dir.dir_exists(path): + return PackedStringArray() + var content := PackedStringArray() + dir.list_dir_begin() + var next := "." + while next != "": + next = dir.get_next() + if next.is_empty() or next == "." or next == "..": + continue + content.append(next) + return content + + +static func resource_as_array(resource_path :String) -> PackedStringArray: + var file := FileAccess.open(resource_path, FileAccess.READ) + if file == null: + push_error("ERROR: Can't read resource '%s'. %s" % [resource_path, error_string(FileAccess.get_open_error())]) + return PackedStringArray() + var file_content := PackedStringArray() + while not file.eof_reached(): + file_content.append(file.get_line()) + return file_content + + +static func resource_as_string(resource_path :String) -> String: + var file := FileAccess.open(resource_path, FileAccess.READ) + if file == null: + push_error("ERROR: Can't read resource '%s'. %s" % [resource_path, error_string(FileAccess.get_open_error())]) + return "" + return file.get_as_text(true) + + +static func make_qualified_path(path :String) -> String: + if not path.begins_with("res://"): + if path.begins_with("//"): + return path.replace("//", "res://") + if path.begins_with("/"): + return "res:/" + path + return path + + +static func extract_zip(zip_package :String, dest_path :String) -> GdUnitResult: + var zip: ZIPReader = ZIPReader.new() + var err := zip.open(zip_package) + if err != OK: + return GdUnitResult.error("Extracting `%s` failed! Please collect the error log and report this. Error Code: %s" % [zip_package, err]) + var zip_entries: PackedStringArray = zip.get_files() + # Get base path and step over archive folder + var archive_path := zip_entries[0] + zip_entries.remove_at(0) + + for zip_entry in zip_entries: + var new_file_path: String = dest_path + "/" + zip_entry.replace(archive_path, "") + if zip_entry.ends_with("/"): + DirAccess.make_dir_recursive_absolute(new_file_path) + continue + var file: FileAccess = FileAccess.open(new_file_path, FileAccess.WRITE) + file.store_buffer(zip.read_file(zip_entry)) + zip.close() + return GdUnitResult.success(dest_path) diff --git a/addons/gdUnit4/src/core/GdUnitObjectInteractions.gd b/addons/gdUnit4/src/core/GdUnitObjectInteractions.gd new file mode 100644 index 0000000..36930fc --- /dev/null +++ b/addons/gdUnit4/src/core/GdUnitObjectInteractions.gd @@ -0,0 +1,42 @@ +class_name GdUnitObjectInteractions +extends RefCounted + + +static func verify(interaction_object :Object, interactions_times :int) -> Variant: + if not _is_mock_or_spy(interaction_object, "__verify"): + return interaction_object + return interaction_object.__do_verify_interactions(interactions_times) + + +static func verify_no_interactions(interaction_object :Object) -> GdUnitAssert: + var __gd_assert :GdUnitAssert = ResourceLoader.load("res://addons/gdUnit4/src/asserts/GdUnitAssertImpl.gd", "GDScript", ResourceLoader.CACHE_MODE_REUSE).new("") + if not _is_mock_or_spy(interaction_object, "__verify"): + return __gd_assert.report_success() + var __summary :Dictionary = interaction_object.__verify_no_interactions() + if __summary.is_empty(): + return __gd_assert.report_success() + return __gd_assert.report_error(GdAssertMessages.error_no_more_interactions(__summary)) + + +static func verify_no_more_interactions(interaction_object :Object) -> GdUnitAssert: + var __gd_assert :GdUnitAssert = ResourceLoader.load("res://addons/gdUnit4/src/asserts/GdUnitAssertImpl.gd", "GDScript", ResourceLoader.CACHE_MODE_REUSE).new("") + if not _is_mock_or_spy(interaction_object, "__verify_no_more_interactions"): + return __gd_assert + var __summary :Dictionary = interaction_object.__verify_no_more_interactions() + if __summary.is_empty(): + return __gd_assert + return __gd_assert.report_error(GdAssertMessages.error_no_more_interactions(__summary)) + + +static func reset(interaction_object :Object) -> Object: + if not _is_mock_or_spy(interaction_object, "__reset"): + return interaction_object + interaction_object.__reset_interactions() + return interaction_object + + +static func _is_mock_or_spy(interaction_object :Object, mock_function_signature :String) -> bool: + if interaction_object is GDScript and not interaction_object.get_script().has_script_method(mock_function_signature): + push_error("Error: You try to use a non mock or spy!") + return false + return true diff --git a/addons/gdUnit4/src/core/GdUnitObjectInteractionsTemplate.gd b/addons/gdUnit4/src/core/GdUnitObjectInteractionsTemplate.gd new file mode 100644 index 0000000..c06b1d4 --- /dev/null +++ b/addons/gdUnit4/src/core/GdUnitObjectInteractionsTemplate.gd @@ -0,0 +1,91 @@ +const GdUnitAssertImpl := preload("res://addons/gdUnit4/src/asserts/GdUnitAssertImpl.gd") + +var __expected_interactions :int = -1 +var __saved_interactions := Dictionary() +var __verified_interactions := Array() + + +func __save_function_interaction(function_args :Array[Variant]) -> void: + var __matcher := GdUnitArgumentMatchers.to_matcher(function_args, true) + for __index in __saved_interactions.keys().size(): + var __key :Variant = __saved_interactions.keys()[__index] + if __matcher.is_match(__key): + __saved_interactions[__key] += 1 + return + __saved_interactions[function_args] = 1 + + +func __is_verify_interactions() -> bool: + return __expected_interactions != -1 + + +func __do_verify_interactions(interactions_times :int = 1) -> Object: + __expected_interactions = interactions_times + return self + + +func __verify_interactions(function_args :Array[Variant]) -> void: + var __summary := Dictionary() + var __total_interactions := 0 + var __matcher := GdUnitArgumentMatchers.to_matcher(function_args, true) + for __index in __saved_interactions.keys().size(): + var __key :Variant = __saved_interactions.keys()[__index] + if __matcher.is_match(__key): + var __interactions :int = __saved_interactions.get(__key, 0) + __total_interactions += __interactions + __summary[__key] = __interactions + # add as verified + __verified_interactions.append(__key) + + var __gd_assert := GdUnitAssertImpl.new("") + if __total_interactions != __expected_interactions: + var __expected_summary := {function_args : __expected_interactions} + var __error_message :String + # if no __interactions macht collect not verified __interactions for failure report + if __summary.is_empty(): + var __current_summary := __verify_no_more_interactions() + __error_message = GdAssertMessages.error_validate_interactions(__current_summary, __expected_summary) + else: + __error_message = GdAssertMessages.error_validate_interactions(__summary, __expected_summary) + __gd_assert.report_error(__error_message) + else: + __gd_assert.report_success() + __expected_interactions = -1 + + +func __verify_no_interactions() -> Dictionary: + var __summary := Dictionary() + if not __saved_interactions.is_empty(): + for __index in __saved_interactions.keys().size(): + var func_call :Variant = __saved_interactions.keys()[__index] + __summary[func_call] = __saved_interactions[func_call] + return __summary + + +func __verify_no_more_interactions() -> Dictionary: + var __summary := Dictionary() + var called_functions :Array[Variant] = __saved_interactions.keys() + if called_functions != __verified_interactions: + # collect the not verified functions + var called_but_not_verified := called_functions.duplicate() + for __index in __verified_interactions.size(): + called_but_not_verified.erase(__verified_interactions[__index]) + + for __index in called_but_not_verified.size(): + var not_verified :Variant = called_but_not_verified[__index] + __summary[not_verified] = __saved_interactions[not_verified] + return __summary + + +func __reset_interactions() -> void: + __saved_interactions.clear() + + +func __filter_vargs(arg_values :Array[Variant]) -> Array[Variant]: + var filtered :Array[Variant] = [] + for __index in arg_values.size(): + var arg :Variant = arg_values[__index] + if typeof(arg) == TYPE_STRING and arg == GdObjects.TYPE_VARARG_PLACEHOLDER_VALUE: + continue + filtered.append(arg) + return filtered diff --git a/addons/gdUnit4/src/core/GdUnitProperty.gd b/addons/gdUnit4/src/core/GdUnitProperty.gd new file mode 100644 index 0000000..6e338a3 --- /dev/null +++ b/addons/gdUnit4/src/core/GdUnitProperty.gd @@ -0,0 +1,72 @@ +class_name GdUnitProperty +extends RefCounted + + +var _name :String +var _help :String +var _type :int +var _value :Variant +var _value_set :PackedStringArray +var _default :Variant + + +func _init(p_name :String, p_type :int, p_value :Variant, p_default_value :Variant, p_help :="", p_value_set := PackedStringArray()) -> void: + _name = p_name + _type = p_type + _value = p_value + _value_set = p_value_set + _default = p_default_value + _help = p_help + + +func name() -> String: + return _name + + +func type() -> int: + return _type + + +func value() -> Variant: + return _value + + +func value_set() -> PackedStringArray: + return _value_set + + +func is_selectable_value() -> bool: + return not _value_set.is_empty() + + +func set_value(p_value :Variant) -> void: + match _type: + TYPE_STRING: + _value = str(p_value) + TYPE_BOOL: + _value = bool(p_value) + TYPE_INT: + _value = int(p_value) + TYPE_FLOAT: + _value = float(p_value) + _: + _value = p_value + + +func default() -> Variant: + return _default + + +func category() -> String: + var elements := _name.split("/") + if elements.size() > 3: + return elements[2] + return "" + + +func help() -> String: + return _help + + +func _to_string() -> String: + return "%-64s %-10s %-10s (%s) help:%s set:%s" % [name(), type(), value(), default(), help(), _value_set] diff --git a/addons/gdUnit4/src/core/GdUnitResult.gd b/addons/gdUnit4/src/core/GdUnitResult.gd new file mode 100644 index 0000000..f2d297f --- /dev/null +++ b/addons/gdUnit4/src/core/GdUnitResult.gd @@ -0,0 +1,104 @@ +class_name GdUnitResult +extends RefCounted + +enum { + SUCCESS, + WARN, + ERROR, + EMPTY +} + +var _state :Variant +var _warn_message := "" +var _error_message := "" +var _value :Variant = null + + +static func empty() -> GdUnitResult: + var result := GdUnitResult.new() + result._state = EMPTY + return result + + +static func success(p_value :Variant) -> GdUnitResult: + assert(p_value != null, "The value must not be NULL") + var result := GdUnitResult.new() + result._value = p_value + result._state = SUCCESS + return result + + +static func warn(p_warn_message :String, p_value :Variant = null) -> GdUnitResult: + assert(not p_warn_message.is_empty()) #,"The message must not be empty") + var result := GdUnitResult.new() + result._value = p_value + result._warn_message = p_warn_message + result._state = WARN + return result + + +static func error(p_error_message :String) -> GdUnitResult: + assert(not p_error_message.is_empty(), "The message must not be empty") + var result := GdUnitResult.new() + result._value = null + result._error_message = p_error_message + result._state = ERROR + return result + + +func is_success() -> bool: + return _state == SUCCESS + + +func is_warn() -> bool: + return _state == WARN + + +func is_error() -> bool: + return _state == ERROR + + +func is_empty() -> bool: + return _state == EMPTY + + +func value() -> Variant: + return _value + + +func or_else(p_value :Variant) -> Variant: + if not is_success(): + return p_value + return value() + + +func error_message() -> String: + return _error_message + + +func warn_message() -> String: + return _warn_message + + +func _to_string() -> String: + return str(GdUnitResult.serialize(self)) + + +static func serialize(result :GdUnitResult) -> Dictionary: + if result == null: + push_error("Can't serialize a Null object from type GdUnitResult") + return { + "state" : result._state, + "value" : var_to_str(result._value), + "warn_msg" : result._warn_message, + "err_msg" : result._error_message + } + + +static func deserialize(config :Dictionary) -> GdUnitResult: + var result := GdUnitResult.new() + result._value = str_to_var(config.get("value", "")) + result._warn_message = config.get("warn_msg", null) + result._error_message = config.get("err_msg", null) + result._state = config.get("state") + return result diff --git a/addons/gdUnit4/src/core/GdUnitRunner.gd b/addons/gdUnit4/src/core/GdUnitRunner.gd new file mode 100644 index 0000000..1c12f3f --- /dev/null +++ b/addons/gdUnit4/src/core/GdUnitRunner.gd @@ -0,0 +1,169 @@ +extends Node + +signal sync_rpc_id_result_received + + +@onready var _client :GdUnitTcpClient = $GdUnitTcpClient +@onready var _executor :GdUnitTestSuiteExecutor = GdUnitTestSuiteExecutor.new() + +enum { + INIT, + RUN, + STOP, + EXIT +} + +const GDUNIT_RUNNER = "GdUnitRunner" + +var _config := GdUnitRunnerConfig.new() +var _test_suites_to_process :Array[Node] +var _state :int = INIT +var _cs_executor :RefCounted + + +func _init() -> void: + # minimize scene window checked debug mode + if OS.get_cmdline_args().size() == 1: + DisplayServer.window_set_title("GdUnit4 Runner (Debug Mode)") + else: + DisplayServer.window_set_title("GdUnit4 Runner (Release Mode)") + DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_MINIMIZED) + # store current runner instance to engine meta data to can be access in as a singleton + Engine.set_meta(GDUNIT_RUNNER, self) + _cs_executor = GdUnit4CSharpApiLoader.create_executor(self) + + +func _ready() -> void: + var config_result := _config.load_config() + if config_result.is_error(): + push_error(config_result.error_message()) + _state = EXIT + return + _client.connect("connection_failed", _on_connection_failed) + GdUnitSignals.instance().gdunit_event.connect(_on_gdunit_event) + var result := _client.start("127.0.0.1", _config.server_port()) + if result.is_error(): + push_error(result.error_message()) + return + _state = INIT + + +func _on_connection_failed(message :String) -> void: + prints("_on_connection_failed", message, _test_suites_to_process) + _state = STOP + + +func _notification(what :int) -> void: + #prints("GdUnitRunner", self, GdObjects.notification_as_string(what)) + if what == NOTIFICATION_PREDELETE: + Engine.remove_meta(GDUNIT_RUNNER) + + +func _process(_delta :float) -> void: + match _state: + INIT: + # wait until client is connected to the GdUnitServer + if _client.is_client_connected(): + var time := LocalTime.now() + prints("Scan for test suites.") + _test_suites_to_process = load_test_suits() + prints("Scanning of %d test suites took" % _test_suites_to_process.size(), time.elapsed_since()) + gdUnitInit() + _state = RUN + RUN: + # all test suites executed + if _test_suites_to_process.is_empty(): + _state = STOP + else: + # process next test suite + set_process(false) + var test_suite :Node = _test_suites_to_process.pop_front() + if _cs_executor != null and _cs_executor.IsExecutable(test_suite): + _cs_executor.Execute(test_suite) + await _cs_executor.ExecutionCompleted + else: + await _executor.execute(test_suite) + set_process(true) + STOP: + _state = EXIT + # give the engine small amount time to finish the rpc + _on_gdunit_event(GdUnitStop.new()) + await get_tree().create_timer(0.1).timeout + await get_tree().process_frame + get_tree().quit(0) + + +func load_test_suits() -> Array[Node]: + var to_execute := _config.to_execute() + if to_execute.is_empty(): + prints("No tests selected to execute!") + _state = EXIT + return [] + # scan for the requested test suites + var test_suites :Array[Node] = [] + var _scanner := GdUnitTestSuiteScanner.new() + for resource_path :String in to_execute.keys(): + var selected_tests :PackedStringArray = to_execute.get(resource_path) + var scaned_suites := _scanner.scan(resource_path) + _filter_test_case(scaned_suites, selected_tests) + test_suites += scaned_suites + return test_suites + + +func gdUnitInit() -> void: + #enable_manuall_polling() + send_message("Scaned %d test suites" % _test_suites_to_process.size()) + var total_count := _collect_test_case_count(_test_suites_to_process) + _on_gdunit_event(GdUnitInit.new(_test_suites_to_process.size(), total_count)) + if not GdUnitSettings.is_test_discover_enabled(): + for test_suite in _test_suites_to_process: + send_test_suite(test_suite) + + +func _filter_test_case(test_suites :Array[Node], included_tests :PackedStringArray) -> void: + if included_tests.is_empty(): + return + for test_suite in test_suites: + for test_case in test_suite.get_children(): + _do_filter_test_case(test_suite, test_case, included_tests) + + +func _do_filter_test_case(test_suite :Node, test_case :Node, included_tests :PackedStringArray) -> void: + for included_test in included_tests: + var test_meta :PackedStringArray = included_test.split(":") + var test_name := test_meta[0] + if test_case.get_name() == test_name: + # we have a paremeterized test selection + if test_meta.size() > 1: + var test_param_index := test_meta[1] + test_case.set_test_parameter_index(test_param_index.to_int()) + return + # the test is filtered out + test_suite.remove_child(test_case) + test_case.free() + + +func _collect_test_case_count(testSuites :Array[Node]) -> int: + var total :int = 0 + for test_suite in testSuites: + total += test_suite.get_child_count() + return total + + +# RPC send functions +func send_message(message :String) -> void: + _client.rpc_send(RPCMessage.of(message)) + + +func send_test_suite(test_suite :Node) -> void: + _client.rpc_send(RPCGdUnitTestSuite.of(test_suite)) + + +func _on_gdunit_event(event :GdUnitEvent) -> void: + _client.rpc_send(RPCGdUnitEvent.of(event)) + + +# Event bridge from C# GdUnit4.ITestEventListener.cs +func PublishEvent(data :Dictionary) -> void: + var event := GdUnitEvent.new().deserialize(data) + _client.rpc_send(RPCGdUnitEvent.of(event)) diff --git a/addons/gdUnit4/src/core/GdUnitRunner.tscn b/addons/gdUnit4/src/core/GdUnitRunner.tscn new file mode 100644 index 0000000..c1f67b1 --- /dev/null +++ b/addons/gdUnit4/src/core/GdUnitRunner.tscn @@ -0,0 +1,10 @@ +[gd_scene load_steps=3 format=3 uid="uid://belidlfknh74r"] + +[ext_resource type="Script" path="res://addons/gdUnit4/src/core/GdUnitRunner.gd" id="1"] +[ext_resource type="Script" path="res://addons/gdUnit4/src/network/GdUnitTcpClient.gd" id="2"] + +[node name="Control" type="Node"] +script = ExtResource("1") + +[node name="GdUnitTcpClient" type="Node" parent="."] +script = ExtResource("2") diff --git a/addons/gdUnit4/src/core/GdUnitRunnerConfig.gd b/addons/gdUnit4/src/core/GdUnitRunnerConfig.gd new file mode 100644 index 0000000..173b536 --- /dev/null +++ b/addons/gdUnit4/src/core/GdUnitRunnerConfig.gd @@ -0,0 +1,154 @@ +class_name GdUnitRunnerConfig +extends Resource + +const GdUnitTools := preload("res://addons/gdUnit4/src/core/GdUnitTools.gd") + +const CONFIG_VERSION = "1.0" +const VERSION = "version" +const INCLUDED = "included" +const SKIPPED = "skipped" +const SERVER_PORT = "server_port" +const EXIT_FAIL_FAST ="exit_on_first_fail" + +const CONFIG_FILE = "res://addons/gdUnit4/GdUnitRunner.cfg" + +var _config := { + VERSION : CONFIG_VERSION, + # a set of directories or testsuite paths as key and a optional set of testcases as values + INCLUDED : Dictionary(), + # a set of skipped directories or testsuite paths + SKIPPED : Dictionary(), + # the port of running test server for this session + SERVER_PORT : -1 + } + + +func clear() -> GdUnitRunnerConfig: + _config[INCLUDED] = Dictionary() + _config[SKIPPED] = Dictionary() + return self + + +func set_server_port(port :int) -> GdUnitRunnerConfig: + _config[SERVER_PORT] = port + return self + + +func server_port() -> int: + return _config.get(SERVER_PORT, -1) + + +func self_test() -> GdUnitRunnerConfig: + add_test_suite("res://addons/gdUnit4/test/") + add_test_suite("res://addons/gdUnit4/mono/test/") + return self + + +func add_test_suite(p_resource_path :String) -> GdUnitRunnerConfig: + var to_execute_ := to_execute() + to_execute_[p_resource_path] = to_execute_.get(p_resource_path, PackedStringArray()) + return self + + +func add_test_suites(resource_paths :PackedStringArray) -> GdUnitRunnerConfig: + for resource_path_ in resource_paths: + add_test_suite(resource_path_) + return self + + +func add_test_case(p_resource_path :String, test_name :StringName, test_param_index :int = -1) -> GdUnitRunnerConfig: + var to_execute_ := to_execute() + var test_cases :PackedStringArray = to_execute_.get(p_resource_path, PackedStringArray()) + if test_param_index != -1: + test_cases.append("%s:%d" % [test_name, test_param_index]) + else: + test_cases.append(test_name) + to_execute_[p_resource_path] = test_cases + return self + + +# supports full path or suite name with optional test case name +# [:] +# '/path/path', res://path/path', 'res://path/path/testsuite.gd' or 'testsuite' +# 'res://path/path/testsuite.gd:test_case' or 'testsuite:test_case' +func skip_test_suite(value :StringName) -> GdUnitRunnerConfig: + var parts :Array = GdUnitFileAccess.make_qualified_path(value).rsplit(":") + if parts[0] == "res": + parts.pop_front() + parts[0] = GdUnitFileAccess.make_qualified_path(parts[0]) + match parts.size(): + 1: skipped()[parts[0]] = PackedStringArray() + 2: skip_test_case(parts[0], parts[1]) + return self + + +func skip_test_suites(resource_paths :PackedStringArray) -> GdUnitRunnerConfig: + for resource_path_ in resource_paths: + skip_test_suite(resource_path_) + return self + + +func skip_test_case(p_resource_path :String, test_name :StringName) -> GdUnitRunnerConfig: + var to_ignore := skipped() + var test_cases :PackedStringArray = to_ignore.get(p_resource_path, PackedStringArray()) + test_cases.append(test_name) + to_ignore[p_resource_path] = test_cases + return self + + +# Dictionary[String, Dictionary[String, PackedStringArray]] +func to_execute() -> Dictionary: + return _config.get(INCLUDED, {"res://" : PackedStringArray()}) + + +func skipped() -> Dictionary: + return _config.get(SKIPPED, {}) + + +func save_config(path :String = CONFIG_FILE) -> GdUnitResult: + var file := FileAccess.open(path, FileAccess.WRITE) + if file == null: + var error := FileAccess.get_open_error() + return GdUnitResult.error("Can't write test runner configuration '%s'! %s" % [path, error_string(error)]) + _config[VERSION] = CONFIG_VERSION + file.store_string(JSON.stringify(_config)) + return GdUnitResult.success(path) + + +func load_config(path :String = CONFIG_FILE) -> GdUnitResult: + if not FileAccess.file_exists(path): + return GdUnitResult.error("Can't find test runner configuration '%s'! Please select a test to run." % path) + var file := FileAccess.open(path, FileAccess.READ) + if file == null: + var error := FileAccess.get_open_error() + return GdUnitResult.error("Can't load test runner configuration '%s'! ERROR: %s." % [path, error_string(error)]) + var content := file.get_as_text() + if not content.is_empty() and content[0] == '{': + # Parse as json + var test_json_conv := JSON.new() + var error := test_json_conv.parse(content) + if error != OK: + return GdUnitResult.error("The runner configuration '%s' is invalid! The format is changed please delete it manually and start a new test run." % path) + _config = test_json_conv.get_data() as Dictionary + if not _config.has(VERSION): + return GdUnitResult.error("The runner configuration '%s' is invalid! The format is changed please delete it manually and start a new test run." % path) + fix_value_types() + return GdUnitResult.success(path) + + +func fix_value_types() -> void: + # fix float value to int json stores all numbers as float + var server_port_ :int = _config.get(SERVER_PORT, -1) + _config[SERVER_PORT] = server_port_ + convert_Array_to_PackedStringArray(_config[INCLUDED]) + convert_Array_to_PackedStringArray(_config[SKIPPED]) + + +func convert_Array_to_PackedStringArray(data :Dictionary) -> void: + for key in data.keys() as Array[String]: + var values :Array = data[key] + data[key] = PackedStringArray(values) + + +func _to_string() -> String: + return str(_config) diff --git a/addons/gdUnit4/src/core/GdUnitSceneRunnerImpl.gd b/addons/gdUnit4/src/core/GdUnitSceneRunnerImpl.gd new file mode 100644 index 0000000..bd2da3c --- /dev/null +++ b/addons/gdUnit4/src/core/GdUnitSceneRunnerImpl.gd @@ -0,0 +1,486 @@ +# This class provides a runner for scense to simulate interactions like keyboard or mouse +class_name GdUnitSceneRunnerImpl +extends GdUnitSceneRunner + + +var GdUnitFuncAssertImpl := ResourceLoader.load("res://addons/gdUnit4/src/asserts/GdUnitFuncAssertImpl.gd", "GDScript", ResourceLoader.CACHE_MODE_REUSE) + + +# mapping of mouse buttons and his masks +const MAP_MOUSE_BUTTON_MASKS := { + MOUSE_BUTTON_LEFT : MOUSE_BUTTON_MASK_LEFT, + MOUSE_BUTTON_RIGHT : MOUSE_BUTTON_MASK_RIGHT, + MOUSE_BUTTON_MIDDLE : MOUSE_BUTTON_MASK_MIDDLE, + # https://github.com/godotengine/godot/issues/73632 + MOUSE_BUTTON_WHEEL_UP : 1 << (MOUSE_BUTTON_WHEEL_UP - 1), + MOUSE_BUTTON_WHEEL_DOWN : 1 << (MOUSE_BUTTON_WHEEL_DOWN - 1), + MOUSE_BUTTON_XBUTTON1 : MOUSE_BUTTON_MASK_MB_XBUTTON1, + MOUSE_BUTTON_XBUTTON2 : MOUSE_BUTTON_MASK_MB_XBUTTON2, +} + +var _is_disposed := false +var _current_scene :Node = null +var _awaiter :GdUnitAwaiter = GdUnitAwaiter.new() +var _verbose :bool +var _simulate_start_time :LocalTime +var _last_input_event :InputEvent = null +var _mouse_button_on_press := [] +var _key_on_press := [] +var _action_on_press := [] +var _curent_mouse_position :Vector2 + +# time factor settings +var _time_factor := 1.0 +var _saved_iterations_per_second :float +var _scene_auto_free := false + + +func _init(p_scene :Variant, p_verbose :bool, p_hide_push_errors := false) -> void: + _verbose = p_verbose + _saved_iterations_per_second = Engine.get_physics_ticks_per_second() + set_time_factor(1) + # handle scene loading by resource path + if typeof(p_scene) == TYPE_STRING: + if !ResourceLoader.exists(p_scene): + if not p_hide_push_errors: + push_error("GdUnitSceneRunner: Can't load scene by given resource path: '%s'. The resource does not exists." % p_scene) + return + if !str(p_scene).ends_with(".tscn") and !str(p_scene).ends_with(".scn") and !str(p_scene).begins_with("uid://"): + if not p_hide_push_errors: + push_error("GdUnitSceneRunner: The given resource: '%s'. is not a scene." % p_scene) + return + _current_scene = load(p_scene).instantiate() + _scene_auto_free = true + else: + # verify we have a node instance + if not p_scene is Node: + if not p_hide_push_errors: + push_error("GdUnitSceneRunner: The given instance '%s' is not a Node." % p_scene) + return + _current_scene = p_scene + if _current_scene == null: + if not p_hide_push_errors: + push_error("GdUnitSceneRunner: Scene must be not null!") + return + _scene_tree().root.add_child(_current_scene) + # do finally reset all open input events when the scene is removed + _scene_tree().root.child_exiting_tree.connect(func f(child :Node) -> void: + if child == _current_scene: + _reset_input_to_default() + ) + _simulate_start_time = LocalTime.now() + # we need to set inital a valid window otherwise the warp_mouse() is not handled + DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_WINDOWED) + # set inital mouse pos to 0,0 + var max_iteration_to_wait := 0 + while get_global_mouse_position() != Vector2.ZERO and max_iteration_to_wait < 100: + Input.warp_mouse(Vector2.ZERO) + max_iteration_to_wait += 1 + + +func _notification(what :int) -> void: + if what == NOTIFICATION_PREDELETE and is_instance_valid(self): + # reset time factor to normal + __deactivate_time_factor() + if is_instance_valid(_current_scene): + _scene_tree().root.remove_child(_current_scene) + # do only free scenes instanciated by this runner + if _scene_auto_free: + _current_scene.free() + _is_disposed = true + _current_scene = null + # we hide the scene/main window after runner is finished + DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_MINIMIZED) + + +func _scene_tree() -> SceneTree: + return Engine.get_main_loop() as SceneTree + + +func simulate_action_pressed(action :String) -> GdUnitSceneRunner: + simulate_action_press(action) + simulate_action_release(action) + return self + + +func simulate_action_press(action :String) -> GdUnitSceneRunner: + __print_current_focus() + var event := InputEventAction.new() + event.pressed = true + event.action = action + _action_on_press.append(action) + return _handle_input_event(event) + + +func simulate_action_release(action :String) -> GdUnitSceneRunner: + __print_current_focus() + var event := InputEventAction.new() + event.pressed = false + event.action = action + _action_on_press.erase(action) + return _handle_input_event(event) + + +func simulate_key_pressed(key_code :int, shift_pressed := false, ctrl_pressed := false) -> GdUnitSceneRunner: + simulate_key_press(key_code, shift_pressed, ctrl_pressed) + simulate_key_release(key_code, shift_pressed, ctrl_pressed) + return self + + +func simulate_key_press(key_code :int, shift_pressed := false, ctrl_pressed := false) -> GdUnitSceneRunner: + __print_current_focus() + var event := InputEventKey.new() + event.pressed = true + event.keycode = key_code as Key + event.physical_keycode = key_code as Key + event.alt_pressed = key_code == KEY_ALT + event.shift_pressed = shift_pressed or key_code == KEY_SHIFT + event.ctrl_pressed = ctrl_pressed or key_code == KEY_CTRL + _apply_input_modifiers(event) + _key_on_press.append(key_code) + return _handle_input_event(event) + + +func simulate_key_release(key_code :int, shift_pressed := false, ctrl_pressed := false) -> GdUnitSceneRunner: + __print_current_focus() + var event := InputEventKey.new() + event.pressed = false + event.keycode = key_code as Key + event.physical_keycode = key_code as Key + event.alt_pressed = key_code == KEY_ALT + event.shift_pressed = shift_pressed or key_code == KEY_SHIFT + event.ctrl_pressed = ctrl_pressed or key_code == KEY_CTRL + _apply_input_modifiers(event) + _key_on_press.erase(key_code) + return _handle_input_event(event) + + +func set_mouse_pos(pos :Vector2) -> GdUnitSceneRunner: + var event := InputEventMouseMotion.new() + event.position = pos + event.global_position = get_global_mouse_position() + _apply_input_modifiers(event) + return _handle_input_event(event) + + +func get_mouse_position() -> Vector2: + if _last_input_event is InputEventMouse: + return _last_input_event.position + var current_scene := scene() + if current_scene != null: + return current_scene.get_viewport().get_mouse_position() + return Vector2.ZERO + + +func get_global_mouse_position() -> Vector2: + return Engine.get_main_loop().root.get_mouse_position() + + +func simulate_mouse_move(pos :Vector2) -> GdUnitSceneRunner: + var event := InputEventMouseMotion.new() + event.position = pos + event.relative = pos - get_mouse_position() + event.global_position = get_global_mouse_position() + _apply_input_mouse_mask(event) + _apply_input_modifiers(event) + return _handle_input_event(event) + + +func simulate_mouse_move_relative(relative: Vector2, time: float = 1.0, trans_type: Tween.TransitionType = Tween.TRANS_LINEAR) -> GdUnitSceneRunner: + var tween := _scene_tree().create_tween() + _curent_mouse_position = get_mouse_position() + var final_position := _curent_mouse_position + relative + tween.tween_property(self, "_curent_mouse_position", final_position, time).set_trans(trans_type) + tween.play() + + while not get_mouse_position().is_equal_approx(final_position): + simulate_mouse_move(_curent_mouse_position) + await _scene_tree().process_frame + return self + + +func simulate_mouse_move_absolute(position: Vector2, time: float = 1.0, trans_type: Tween.TransitionType = Tween.TRANS_LINEAR) -> GdUnitSceneRunner: + var tween := _scene_tree().create_tween() + _curent_mouse_position = get_mouse_position() + tween.tween_property(self, "_curent_mouse_position", position, time).set_trans(trans_type) + tween.play() + + while not get_mouse_position().is_equal_approx(position): + simulate_mouse_move(_curent_mouse_position) + await _scene_tree().process_frame + return self + + +func simulate_mouse_button_pressed(buttonIndex :MouseButton, double_click := false) -> GdUnitSceneRunner: + simulate_mouse_button_press(buttonIndex, double_click) + simulate_mouse_button_release(buttonIndex) + return self + + +func simulate_mouse_button_press(buttonIndex :MouseButton, double_click := false) -> GdUnitSceneRunner: + var event := InputEventMouseButton.new() + event.button_index = buttonIndex + event.pressed = true + event.double_click = double_click + _apply_input_mouse_position(event) + _apply_input_mouse_mask(event) + _apply_input_modifiers(event) + _mouse_button_on_press.append(buttonIndex) + return _handle_input_event(event) + + +func simulate_mouse_button_release(buttonIndex :MouseButton) -> GdUnitSceneRunner: + var event := InputEventMouseButton.new() + event.button_index = buttonIndex + event.pressed = false + _apply_input_mouse_position(event) + _apply_input_mouse_mask(event) + _apply_input_modifiers(event) + _mouse_button_on_press.erase(buttonIndex) + return _handle_input_event(event) + + +func set_time_factor(time_factor := 1.0) -> GdUnitSceneRunner: + _time_factor = min(9.0, time_factor) + __activate_time_factor() + __print("set time factor: %f" % _time_factor) + __print("set physics physics_ticks_per_second: %d" % (_saved_iterations_per_second*_time_factor)) + return self + + +func simulate_frames(frames: int, delta_milli :int = -1) -> GdUnitSceneRunner: + var time_shift_frames :int = max(1, frames / _time_factor) + for frame in time_shift_frames: + if delta_milli == -1: + await _scene_tree().process_frame + else: + await _scene_tree().create_timer(delta_milli * 0.001).timeout + return self + + +func simulate_until_signal( + signal_name :String, + arg0 :Variant = NO_ARG, + arg1 :Variant = NO_ARG, + arg2 :Variant = NO_ARG, + arg3 :Variant = NO_ARG, + arg4 :Variant = NO_ARG, + arg5 :Variant = NO_ARG, + arg6 :Variant = NO_ARG, + arg7 :Variant = NO_ARG, + arg8 :Variant = NO_ARG, + arg9 :Variant = NO_ARG) -> GdUnitSceneRunner: + var args :Array = GdArrayTools.filter_value([arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9], NO_ARG) + await _awaiter.await_signal_idle_frames(scene(), signal_name, args, 10000) + return self + + +func simulate_until_object_signal( + source :Object, + signal_name :String, + arg0 :Variant = NO_ARG, + arg1 :Variant = NO_ARG, + arg2 :Variant = NO_ARG, + arg3 :Variant = NO_ARG, + arg4 :Variant = NO_ARG, + arg5 :Variant = NO_ARG, + arg6 :Variant = NO_ARG, + arg7 :Variant = NO_ARG, + arg8 :Variant = NO_ARG, + arg9 :Variant = NO_ARG) -> GdUnitSceneRunner: + var args :Array = GdArrayTools.filter_value([arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9], NO_ARG) + await _awaiter.await_signal_idle_frames(source, signal_name, args, 10000) + return self + + +func await_func(func_name :String, args := []) -> GdUnitFuncAssert: + return GdUnitFuncAssertImpl.new(scene(), func_name, args) + + +func await_func_on(instance :Object, func_name :String, args := []) -> GdUnitFuncAssert: + return GdUnitFuncAssertImpl.new(instance, func_name, args) + + +func await_signal(signal_name :String, args := [], timeout := 2000 ) -> void: + await _awaiter.await_signal_on(scene(), signal_name, args, timeout) + + +func await_signal_on(source :Object, signal_name :String, args := [], timeout := 2000 ) -> void: + await _awaiter.await_signal_on(source, signal_name, args, timeout) + + +# maximizes the window to bring the scene visible +func maximize_view() -> GdUnitSceneRunner: + DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_WINDOWED) + DisplayServer.window_move_to_foreground() + return self + + +func _property_exists(name :String) -> bool: + return scene().get_property_list().any(func(properties :Dictionary) -> bool: return properties["name"] == name) + + +func get_property(name :String) -> Variant: + if not _property_exists(name): + return "The property '%s' not exist checked loaded scene." % name + return scene().get(name) + + +func set_property(name :String, value :Variant) -> bool: + if not _property_exists(name): + push_error("The property named '%s' cannot be set, it does not exist!" % name) + return false; + scene().set(name, value) + return true + + +func invoke( + name :String, + arg0 :Variant = NO_ARG, + arg1 :Variant = NO_ARG, + arg2 :Variant = NO_ARG, + arg3 :Variant = NO_ARG, + arg4 :Variant = NO_ARG, + arg5 :Variant = NO_ARG, + arg6 :Variant = NO_ARG, + arg7 :Variant = NO_ARG, + arg8 :Variant = NO_ARG, + arg9 :Variant = NO_ARG) -> Variant: + var args :Array = GdArrayTools.filter_value([arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9], NO_ARG) + if scene().has_method(name): + return scene().callv(name, args) + return "The method '%s' not exist checked loaded scene." % name + + +func find_child(name :String, recursive :bool = true, owned :bool = false) -> Node: + return scene().find_child(name, recursive, owned) + + +func _scene_name() -> String: + var scene_script :GDScript = scene().get_script() + var scene_name :String = scene().get_name() + if not scene_script: + return scene_name + if not scene_name.begins_with("@"): + return scene_name + return scene_script.resource_name.get_basename() + + +func __activate_time_factor() -> void: + Engine.set_time_scale(_time_factor) + Engine.set_physics_ticks_per_second((_saved_iterations_per_second * _time_factor) as int) + + +func __deactivate_time_factor() -> void: + Engine.set_time_scale(1) + Engine.set_physics_ticks_per_second(_saved_iterations_per_second as int) + + +# copy over current active modifiers +func _apply_input_modifiers(event :InputEvent) -> void: + if _last_input_event is InputEventWithModifiers and event is InputEventWithModifiers: + event.meta_pressed = event.meta_pressed or _last_input_event.meta_pressed + event.alt_pressed = event.alt_pressed or _last_input_event.alt_pressed + event.shift_pressed = event.shift_pressed or _last_input_event.shift_pressed + event.ctrl_pressed = event.ctrl_pressed or _last_input_event.ctrl_pressed + # this line results into reset the control_pressed state!!! + #event.command_or_control_autoremap = event.command_or_control_autoremap or _last_input_event.command_or_control_autoremap + + +# copy over current active mouse mask and combine with curren mask +func _apply_input_mouse_mask(event :InputEvent) -> void: + # first apply last mask + if _last_input_event is InputEventMouse and event is InputEventMouse: + event.button_mask |= _last_input_event.button_mask + if event is InputEventMouseButton: + var button_mask :int = MAP_MOUSE_BUTTON_MASKS.get(event.get_button_index(), 0) + if event.is_pressed(): + event.button_mask |= button_mask + else: + event.button_mask ^= button_mask + + +# copy over last mouse position if need +func _apply_input_mouse_position(event :InputEvent) -> void: + if _last_input_event is InputEventMouse and event is InputEventMouseButton: + event.position = _last_input_event.position + + +## handle input action via Input modifieres +func _handle_actions(event :InputEventAction) -> bool: + if not InputMap.event_is_action(event, event.action, true): + return false + __print(" process action %s (%s) <- %s" % [scene(), _scene_name(), event.as_text()]) + if event.is_pressed(): + Input.action_press(event.action, InputMap.action_get_deadzone(event.action)) + else: + Input.action_release(event.action) + return true + + +# for handling read https://docs.godotengine.org/en/stable/tutorials/inputs/inputevent.html?highlight=inputevent#how-does-it-work +func _handle_input_event(event :InputEvent) -> GdUnitSceneRunner: + if event is InputEventMouse: + Input.warp_mouse(event.position) + Input.parse_input_event(event) + + if event is InputEventAction: + _handle_actions(event) + + Input.flush_buffered_events() + var current_scene := scene() + if is_instance_valid(current_scene): + __print(" process event %s (%s) <- %s" % [current_scene, _scene_name(), event.as_text()]) + if(current_scene.has_method("_gui_input")): + current_scene._gui_input(event) + if(current_scene.has_method("_unhandled_input")): + current_scene._unhandled_input(event) + current_scene.get_viewport().set_input_as_handled() + + # save last input event needs to be merged with next InputEventMouseButton + _last_input_event = event + return self + + +func _reset_input_to_default() -> void: + # reset all mouse button to inital state if need + for m_button :int in _mouse_button_on_press.duplicate(): + if Input.is_mouse_button_pressed(m_button): + simulate_mouse_button_release(m_button) + _mouse_button_on_press.clear() + + for key_scancode :int in _key_on_press.duplicate(): + if Input.is_key_pressed(key_scancode): + simulate_key_release(key_scancode) + _key_on_press.clear() + + for action :String in _action_on_press.duplicate(): + if Input.is_action_pressed(action): + simulate_action_release(action) + _action_on_press.clear() + + Input.flush_buffered_events() + _last_input_event = null + + +func __print(message :String) -> void: + if _verbose: + prints(message) + + +func __print_current_focus() -> void: + if not _verbose: + return + var focused_node := scene().get_viewport().gui_get_focus_owner() + if focused_node: + prints(" focus checked %s" % focused_node) + else: + prints(" no focus set") + + +func scene() -> Node: + if is_instance_valid(_current_scene): + return _current_scene + if not _is_disposed: + push_error("The current scene instance is not valid anymore! check your test is valid. e.g. check for missing awaits.") + return null diff --git a/addons/gdUnit4/src/core/GdUnitScriptType.gd b/addons/gdUnit4/src/core/GdUnitScriptType.gd new file mode 100644 index 0000000..7e1be51 --- /dev/null +++ b/addons/gdUnit4/src/core/GdUnitScriptType.gd @@ -0,0 +1,16 @@ +class_name GdUnitScriptType +extends RefCounted + +const UNKNOWN := "" +const CS := "cs" +const GD := "gd" + + +static func type_of(script :Script) -> String: + if script == null: + return UNKNOWN + if GdObjects.is_gd_script(script): + return GD + if GdObjects.is_cs_script(script): + return CS + return UNKNOWN diff --git a/addons/gdUnit4/src/core/GdUnitSettings.gd b/addons/gdUnit4/src/core/GdUnitSettings.gd new file mode 100644 index 0000000..cbb6abc --- /dev/null +++ b/addons/gdUnit4/src/core/GdUnitSettings.gd @@ -0,0 +1,378 @@ +@tool +class_name GdUnitSettings +extends RefCounted + + +const MAIN_CATEGORY = "gdunit4" +# Common Settings +const COMMON_SETTINGS = MAIN_CATEGORY + "/settings" + +const GROUP_COMMON = COMMON_SETTINGS + "/common" +const UPDATE_NOTIFICATION_ENABLED = GROUP_COMMON + "/update_notification_enabled" +const SERVER_TIMEOUT = GROUP_COMMON + "/server_connection_timeout_minutes" + +const GROUP_TEST = COMMON_SETTINGS + "/test" +const TEST_TIMEOUT = GROUP_TEST + "/test_timeout_seconds" +const TEST_LOOKUP_FOLDER = GROUP_TEST + "/test_lookup_folder" +const TEST_SITE_NAMING_CONVENTION = GROUP_TEST + "/test_suite_naming_convention" +const TEST_DISCOVER_ENABLED = GROUP_TEST + "/test_discovery" + + +# Report Setiings +const REPORT_SETTINGS = MAIN_CATEGORY + "/report" +const GROUP_GODOT = REPORT_SETTINGS + "/godot" +const REPORT_PUSH_ERRORS = GROUP_GODOT + "/push_error" +const REPORT_SCRIPT_ERRORS = GROUP_GODOT + "/script_error" +const REPORT_ORPHANS = REPORT_SETTINGS + "/verbose_orphans" +const GROUP_ASSERT = REPORT_SETTINGS + "/assert" +const REPORT_ASSERT_WARNINGS = GROUP_ASSERT + "/verbose_warnings" +const REPORT_ASSERT_ERRORS = GROUP_ASSERT + "/verbose_errors" +const REPORT_ASSERT_STRICT_NUMBER_TYPE_COMPARE = GROUP_ASSERT + "/strict_number_type_compare" + +# Godot debug stdout/logging settings +const CATEGORY_LOGGING := "debug/file_logging/" +const STDOUT_ENABLE_TO_FILE = CATEGORY_LOGGING + "enable_file_logging" +const STDOUT_WITE_TO_FILE = CATEGORY_LOGGING + "log_path" + + +# GdUnit Templates +const TEMPLATES = MAIN_CATEGORY + "/templates" +const TEMPLATES_TS = TEMPLATES + "/testsuite" +const TEMPLATE_TS_GD = TEMPLATES_TS + "/GDScript" +const TEMPLATE_TS_CS = TEMPLATES_TS + "/CSharpScript" + + +# UI Setiings +const UI_SETTINGS = MAIN_CATEGORY + "/ui" +const GROUP_UI_INSPECTOR = UI_SETTINGS + "/inspector" +const INSPECTOR_NODE_COLLAPSE = GROUP_UI_INSPECTOR + "/node_collapse" +const INSPECTOR_TREE_VIEW_MODE = GROUP_UI_INSPECTOR + "/tree_view_mode" +const INSPECTOR_TREE_SORT_MODE = GROUP_UI_INSPECTOR + "/tree_sort_mode" + + +# Shortcut Setiings +const SHORTCUT_SETTINGS = MAIN_CATEGORY + "/Shortcuts" +const GROUP_SHORTCUT_INSPECTOR = SHORTCUT_SETTINGS + "/inspector" +const SHORTCUT_INSPECTOR_RERUN_TEST = GROUP_SHORTCUT_INSPECTOR + "/rerun_test" +const SHORTCUT_INSPECTOR_RERUN_TEST_DEBUG = GROUP_SHORTCUT_INSPECTOR + "/rerun_test_debug" +const SHORTCUT_INSPECTOR_RUN_TEST_OVERALL = GROUP_SHORTCUT_INSPECTOR + "/run_test_overall" +const SHORTCUT_INSPECTOR_RUN_TEST_STOP = GROUP_SHORTCUT_INSPECTOR + "/run_test_stop" + +const GROUP_SHORTCUT_EDITOR = SHORTCUT_SETTINGS + "/editor" +const SHORTCUT_EDITOR_RUN_TEST = GROUP_SHORTCUT_EDITOR + "/run_test" +const SHORTCUT_EDITOR_RUN_TEST_DEBUG = GROUP_SHORTCUT_EDITOR + "/run_test_debug" +const SHORTCUT_EDITOR_CREATE_TEST = GROUP_SHORTCUT_EDITOR + "/create_test" + +const GROUP_SHORTCUT_FILESYSTEM = SHORTCUT_SETTINGS + "/filesystem" +const SHORTCUT_FILESYSTEM_RUN_TEST = GROUP_SHORTCUT_FILESYSTEM + "/run_test" +const SHORTCUT_FILESYSTEM_RUN_TEST_DEBUG = GROUP_SHORTCUT_FILESYSTEM + "/run_test_debug" + + +# Toolbar Setiings +const GROUP_UI_TOOLBAR = UI_SETTINGS + "/toolbar" +const INSPECTOR_TOOLBAR_BUTTON_RUN_OVERALL = GROUP_UI_TOOLBAR + "/run_overall" + +# defaults +# server connection timeout in minutes +const DEFAULT_SERVER_TIMEOUT :int = 30 +# test case runtime timeout in seconds +const DEFAULT_TEST_TIMEOUT :int = 60*5 +# the folder to create new test-suites +const DEFAULT_TEST_LOOKUP_FOLDER := "test" + +# help texts +const HELP_TEST_LOOKUP_FOLDER := "Sets the subfolder for the search/creation of test suites. (leave empty to use source folder)" + +enum NAMING_CONVENTIONS { + AUTO_DETECT, + SNAKE_CASE, + PASCAL_CASE, +} + + +static func setup() -> void: + create_property_if_need(UPDATE_NOTIFICATION_ENABLED, true, "Enables/Disables the update notification checked startup.") + create_property_if_need(SERVER_TIMEOUT, DEFAULT_SERVER_TIMEOUT, "Sets the server connection timeout in minutes.") + create_property_if_need(TEST_TIMEOUT, DEFAULT_TEST_TIMEOUT, "Sets the test case runtime timeout in seconds.") + create_property_if_need(TEST_LOOKUP_FOLDER, DEFAULT_TEST_LOOKUP_FOLDER, HELP_TEST_LOOKUP_FOLDER) + create_property_if_need(TEST_SITE_NAMING_CONVENTION, NAMING_CONVENTIONS.AUTO_DETECT, "Sets test-suite genrate script name convention.", NAMING_CONVENTIONS.keys()) + create_property_if_need(TEST_DISCOVER_ENABLED, false, "Enables/Disables the automatic detection of tests by finding tests in test lookup folders at runtime.") + create_property_if_need(REPORT_PUSH_ERRORS, false, "Enables/Disables report of push_error() as failure!") + create_property_if_need(REPORT_SCRIPT_ERRORS, true, "Enables/Disables report of script errors as failure!") + create_property_if_need(REPORT_ORPHANS, true, "Enables/Disables orphan reporting.") + create_property_if_need(REPORT_ASSERT_ERRORS, true, "Enables/Disables error reporting checked asserts.") + create_property_if_need(REPORT_ASSERT_WARNINGS, true, "Enables/Disables warning reporting checked asserts") + create_property_if_need(REPORT_ASSERT_STRICT_NUMBER_TYPE_COMPARE, true, "Enabled/disabled number values will be compared strictly by type. (real vs int)") + # inspector + create_property_if_need(INSPECTOR_NODE_COLLAPSE, true, + "Enables/Disables that the testsuite node is closed after a successful test run.") + create_property_if_need(INSPECTOR_TREE_VIEW_MODE, GdUnitInspectorTreeConstants.TREE_VIEW_MODE.TREE, + "Sets the inspector panel presentation.", GdUnitInspectorTreeConstants.TREE_VIEW_MODE.keys()) + create_property_if_need(INSPECTOR_TREE_SORT_MODE, GdUnitInspectorTreeConstants.SORT_MODE.UNSORTED, + "Sets the inspector panel presentation.", GdUnitInspectorTreeConstants.SORT_MODE.keys()) + create_property_if_need(INSPECTOR_TOOLBAR_BUTTON_RUN_OVERALL, false, + "Shows/Hides the 'Run overall Tests' button in the inspector toolbar.") + create_property_if_need(TEMPLATE_TS_GD, GdUnitTestSuiteTemplate.default_GD_template(), "Defines the test suite template") + create_shortcut_properties_if_need() + migrate_properties() + + +static func migrate_properties() -> void: + var TEST_ROOT_FOLDER := "gdunit4/settings/test/test_root_folder" + if get_property(TEST_ROOT_FOLDER) != null: + migrate_property(TEST_ROOT_FOLDER,\ + TEST_LOOKUP_FOLDER,\ + DEFAULT_TEST_LOOKUP_FOLDER,\ + HELP_TEST_LOOKUP_FOLDER,\ + func(value :Variant) -> String: return DEFAULT_TEST_LOOKUP_FOLDER if value == null else value) + + +static func create_shortcut_properties_if_need() -> void: + # inspector + create_property_if_need(SHORTCUT_INSPECTOR_RERUN_TEST, GdUnitShortcut.default_keys(GdUnitShortcut.ShortCut.RERUN_TESTS), "Rerun of the last tests performed.") + create_property_if_need(SHORTCUT_INSPECTOR_RERUN_TEST_DEBUG, GdUnitShortcut.default_keys(GdUnitShortcut.ShortCut.RERUN_TESTS_DEBUG), "Rerun of the last tests performed (Debug).") + create_property_if_need(SHORTCUT_INSPECTOR_RUN_TEST_OVERALL, GdUnitShortcut.default_keys(GdUnitShortcut.ShortCut.RUN_TESTS_OVERALL), "Runs all tests (Debug).") + create_property_if_need(SHORTCUT_INSPECTOR_RUN_TEST_STOP, GdUnitShortcut.default_keys(GdUnitShortcut.ShortCut.STOP_TEST_RUN), "Stops the current test execution.") + # script editor + create_property_if_need(SHORTCUT_EDITOR_RUN_TEST, GdUnitShortcut.default_keys(GdUnitShortcut.ShortCut.RUN_TESTCASE), "Runs the currently selected test.") + create_property_if_need(SHORTCUT_EDITOR_RUN_TEST_DEBUG, GdUnitShortcut.default_keys(GdUnitShortcut.ShortCut.RUN_TESTCASE_DEBUG), "Runs the currently selected test (Debug).") + create_property_if_need(SHORTCUT_EDITOR_CREATE_TEST, GdUnitShortcut.default_keys(GdUnitShortcut.ShortCut.CREATE_TEST), "Creates a new test case for the currently selected function.") + # filesystem + create_property_if_need(SHORTCUT_FILESYSTEM_RUN_TEST, GdUnitShortcut.default_keys(GdUnitShortcut.ShortCut.NONE), "Runs all test suites on the selected folder or file.") + create_property_if_need(SHORTCUT_FILESYSTEM_RUN_TEST_DEBUG, GdUnitShortcut.default_keys(GdUnitShortcut.ShortCut.NONE), "Runs all test suites on the selected folder or file (Debug).") + + +static func create_property_if_need(name :String, default :Variant, help :="", value_set := PackedStringArray()) -> void: + if not ProjectSettings.has_setting(name): + #prints("GdUnit4: Set inital settings '%s' to '%s'." % [name, str(default)]) + ProjectSettings.set_setting(name, default) + + ProjectSettings.set_initial_value(name, default) + help += "" if value_set.is_empty() else " %s" % value_set + set_help(name, default, help) + + +static func set_help(property_name :String, value :Variant, help :String) -> void: + ProjectSettings.add_property_info({ + "name": property_name, + "type": typeof(value), + "hint": PROPERTY_HINT_TYPE_STRING, + "hint_string": help + }) + + +static func get_setting(name :String, default :Variant) -> Variant: + if ProjectSettings.has_setting(name): + return ProjectSettings.get_setting(name) + return default + + +static func is_update_notification_enabled() -> bool: + if ProjectSettings.has_setting(UPDATE_NOTIFICATION_ENABLED): + return ProjectSettings.get_setting(UPDATE_NOTIFICATION_ENABLED) + return false + + +static func set_update_notification(enable :bool) -> void: + ProjectSettings.set_setting(UPDATE_NOTIFICATION_ENABLED, enable) + ProjectSettings.save() + + +static func get_log_path() -> String: + return ProjectSettings.get_setting(STDOUT_WITE_TO_FILE) + + +static func set_log_path(path :String) -> void: + ProjectSettings.set_setting(STDOUT_ENABLE_TO_FILE, true) + ProjectSettings.set_setting(STDOUT_WITE_TO_FILE, path) + ProjectSettings.save() + + +static func set_inspector_tree_sort_mode(sort_mode: GdUnitInspectorTreeConstants.SORT_MODE) -> void: + var property := get_property(INSPECTOR_TREE_SORT_MODE) + property.set_value(sort_mode) + update_property(property) + + +static func get_inspector_tree_sort_mode() -> GdUnitInspectorTreeConstants.SORT_MODE: + var property := get_property(INSPECTOR_TREE_SORT_MODE) + return property.value() if property != null else GdUnitInspectorTreeConstants.SORT_MODE.UNSORTED + + +static func set_inspector_tree_view_mode(tree_view_mode: GdUnitInspectorTreeConstants.TREE_VIEW_MODE) -> void: + var property := get_property(INSPECTOR_TREE_VIEW_MODE) + property.set_value(tree_view_mode) + update_property(property) + + +static func get_inspector_tree_view_mode() -> GdUnitInspectorTreeConstants.TREE_VIEW_MODE: + var property := get_property(INSPECTOR_TREE_VIEW_MODE) + return property.value() if property != null else GdUnitInspectorTreeConstants.TREE_VIEW_MODE.TREE + + +# the configured server connection timeout in ms +static func server_timeout() -> int: + return get_setting(SERVER_TIMEOUT, DEFAULT_SERVER_TIMEOUT) * 60 * 1000 + + +# the configured test case timeout in ms +static func test_timeout() -> int: + return get_setting(TEST_TIMEOUT, DEFAULT_TEST_TIMEOUT) * 1000 + + +# the root folder to store/generate test-suites +static func test_root_folder() -> String: + return get_setting(TEST_LOOKUP_FOLDER, DEFAULT_TEST_LOOKUP_FOLDER) + + +static func is_verbose_assert_warnings() -> bool: + return get_setting(REPORT_ASSERT_WARNINGS, true) + + +static func is_verbose_assert_errors() -> bool: + return get_setting(REPORT_ASSERT_ERRORS, true) + + +static func is_verbose_orphans() -> bool: + return get_setting(REPORT_ORPHANS, true) + + +static func is_strict_number_type_compare() -> bool: + return get_setting(REPORT_ASSERT_STRICT_NUMBER_TYPE_COMPARE, true) + + +static func is_report_push_errors() -> bool: + return get_setting(REPORT_PUSH_ERRORS, false) + + +static func is_report_script_errors() -> bool: + return get_setting(REPORT_SCRIPT_ERRORS, true) + + +static func is_inspector_node_collapse() -> bool: + return get_setting(INSPECTOR_NODE_COLLAPSE, true) + + +static func is_inspector_toolbar_button_show() -> bool: + return get_setting(INSPECTOR_TOOLBAR_BUTTON_RUN_OVERALL, true) + + +static func is_test_discover_enabled() -> bool: + return get_setting(TEST_DISCOVER_ENABLED, false) + + +static func set_test_discover_enabled(enable :bool) -> void: + var property := get_property(TEST_DISCOVER_ENABLED) + property.set_value(enable) + update_property(property) + + +static func is_log_enabled() -> bool: + return ProjectSettings.get_setting(STDOUT_ENABLE_TO_FILE) + + +static func list_settings(category :String) -> Array[GdUnitProperty]: + var settings :Array[GdUnitProperty] = [] + for property in ProjectSettings.get_property_list(): + var property_name :String = property["name"] + if property_name.begins_with(category): + var value :Variant = ProjectSettings.get_setting(property_name) + var default :Variant = ProjectSettings.property_get_revert(property_name) + var help :String = property["hint_string"] + var value_set := extract_value_set_from_help(help) + settings.append(GdUnitProperty.new(property_name, property["type"], value, default, help, value_set)) + return settings + + +static func extract_value_set_from_help(value :String) -> PackedStringArray: + var regex := RegEx.new() + regex.compile("\\[(.+)\\]") + var matches := regex.search_all(value) + if matches.is_empty(): + return PackedStringArray() + var values :String = matches[0].get_string(1) + return values.replacen(" ", "").replacen("\"", "").split(",", false) + + +static func update_property(property :GdUnitProperty) -> Variant: + var current_value :Variant = ProjectSettings.get_setting(property.name()) + if current_value != property.value(): + var error :Variant = validate_property_value(property) + if error != null: + return error + ProjectSettings.set_setting(property.name(), property.value()) + GdUnitSignals.instance().gdunit_settings_changed.emit(property) + _save_settings() + return null + + +static func reset_property(property :GdUnitProperty) -> void: + ProjectSettings.set_setting(property.name(), property.default()) + GdUnitSignals.instance().gdunit_settings_changed.emit(property) + _save_settings() + + +static func validate_property_value(property :GdUnitProperty) -> Variant: + match property.name(): + TEST_LOOKUP_FOLDER: + return validate_lookup_folder(property.value()) + _: return null + + +static func validate_lookup_folder(value :String) -> Variant: + if value.is_empty() or value == "/": + return null + if value.contains("res:"): + return "Test Lookup Folder: do not allowed to contains 'res://'" + if not value.is_valid_filename(): + return "Test Lookup Folder: contains invalid characters! e.g (: / \\ ? * \" | % < >)" + return null + + +static func save_property(name :String, value :Variant) -> void: + ProjectSettings.set_setting(name, value) + _save_settings() + + +static func _save_settings() -> void: + var err := ProjectSettings.save() + if err != OK: + push_error("Save GdUnit4 settings failed : %s" % error_string(err)) + return + + +static func has_property(name :String) -> bool: + return ProjectSettings.get_property_list().any(func(property :Dictionary) -> bool: return property["name"] == name) + + +static func get_property(name :String) -> GdUnitProperty: + for property in ProjectSettings.get_property_list(): + var property_name :String = property["name"] + if property_name == name: + var value :Variant = ProjectSettings.get_setting(property_name) + var default :Variant = ProjectSettings.property_get_revert(property_name) + var help :String = property["hint_string"] + var value_set := extract_value_set_from_help(help) + return GdUnitProperty.new(property_name, property["type"], value, default, help, value_set) + return null + + +static func migrate_property(old_property :String, new_property :String, default_value :Variant, help :String, converter := Callable()) -> void: + var property := get_property(old_property) + if property == null: + prints("Migration not possible, property '%s' not found" % old_property) + return + var value :Variant = converter.call(property.value()) if converter.is_valid() else property.value() + ProjectSettings.set_setting(new_property, value) + ProjectSettings.set_initial_value(new_property, default_value) + set_help(new_property, value, help) + ProjectSettings.clear(old_property) + prints("Succesfull migrated property '%s' -> '%s' value: %s" % [old_property, new_property, value]) + + +static func dump_to_tmp() -> void: + ProjectSettings.save_custom("user://project_settings.godot") + + +static func restore_dump_from_tmp() -> void: + DirAccess.copy_absolute("user://project_settings.godot", "res://project.godot") diff --git a/addons/gdUnit4/src/core/GdUnitSignalAwaiter.gd b/addons/gdUnit4/src/core/GdUnitSignalAwaiter.gd new file mode 100644 index 0000000..b2bb834 --- /dev/null +++ b/addons/gdUnit4/src/core/GdUnitSignalAwaiter.gd @@ -0,0 +1,76 @@ +class_name GdUnitSignalAwaiter +extends RefCounted + +signal signal_emitted(action :Variant) + +const NO_ARG :Variant = GdUnitConstants.NO_ARG + +var _wait_on_idle_frame := false +var _interrupted := false +var _time_left :float = 0 +var _timeout_millis :int + + +func _init(timeout_millis :int, wait_on_idle_frame := false) -> void: + _timeout_millis = timeout_millis + _wait_on_idle_frame = wait_on_idle_frame + + +func _on_signal_emmited( + arg0 :Variant = NO_ARG, + arg1 :Variant = NO_ARG, + arg2 :Variant = NO_ARG, + arg3 :Variant = NO_ARG, + arg4 :Variant = NO_ARG, + arg5 :Variant = NO_ARG, + arg6 :Variant = NO_ARG, + arg7 :Variant = NO_ARG, + arg8 :Variant = NO_ARG, + arg9 :Variant = NO_ARG) -> void: + var signal_args :Variant = GdArrayTools.filter_value([arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9], NO_ARG) + signal_emitted.emit(signal_args) + + +func is_interrupted() -> bool: + return _interrupted + + +func elapsed_time() -> float: + return _time_left + + +func on_signal(source :Object, signal_name :String, expected_signal_args :Array) -> Variant: + # register checked signal to wait for + source.connect(signal_name, _on_signal_emmited) + # install timeout timer + var timer := Timer.new() + Engine.get_main_loop().root.add_child(timer) + timer.add_to_group("GdUnitTimers") + timer.set_one_shot(true) + timer.timeout.connect(_do_interrupt, CONNECT_DEFERRED) + timer.start(_timeout_millis * 0.001 * Engine.get_time_scale()) + + # holds the emited value + var value :Variant + # wait for signal is emitted or a timeout is happen + while true: + value = await signal_emitted + if _interrupted: + break + if not (value is Array): + value = [value] + if expected_signal_args.size() == 0 or GdObjects.equals(value, expected_signal_args): + break + await Engine.get_main_loop().process_frame + + source.disconnect(signal_name, _on_signal_emmited) + _time_left = timer.time_left + await Engine.get_main_loop().process_frame + if value is Array and value.size() == 1: + return value[0] + return value + + +func _do_interrupt() -> void: + _interrupted = true + signal_emitted.emit(null) diff --git a/addons/gdUnit4/src/core/GdUnitSignalCollector.gd b/addons/gdUnit4/src/core/GdUnitSignalCollector.gd new file mode 100644 index 0000000..12e22b0 --- /dev/null +++ b/addons/gdUnit4/src/core/GdUnitSignalCollector.gd @@ -0,0 +1,115 @@ +# It connects to all signals of given emitter and collects received signals and arguments +# The collected signals are cleand finally when the emitter is freed. +class_name GdUnitSignalCollector +extends RefCounted + +const NO_ARG :Variant = GdUnitConstants.NO_ARG +const SIGNAL_BLACK_LIST = []#["tree_exiting", "tree_exited", "child_exiting_tree"] + +# { +# emitter : { +# signal_name : [signal_args], +# ... +# } +# } +var _collected_signals :Dictionary = {} + + +func clear() -> void: + for emitter :Object in _collected_signals.keys(): + if is_instance_valid(emitter): + unregister_emitter(emitter) + + +# connect to all possible signals defined by the emitter +# prepares the signal collection to store received signals and arguments +func register_emitter(emitter :Object) -> void: + if is_instance_valid(emitter): + # check emitter is already registerd + if _collected_signals.has(emitter): + return + _collected_signals[emitter] = Dictionary() + # connect to 'tree_exiting' of the emitter to finally release all acquired resources/connections. + if emitter is Node and !emitter.tree_exiting.is_connected(unregister_emitter): + emitter.tree_exiting.connect(unregister_emitter.bind(emitter)) + # connect to all signals of the emitter we want to collect + for signal_def in emitter.get_signal_list(): + var signal_name :String = signal_def["name"] + # set inital collected to empty + if not is_signal_collecting(emitter, signal_name): + _collected_signals[emitter][signal_name] = Array() + if SIGNAL_BLACK_LIST.find(signal_name) != -1: + continue + if !emitter.is_connected(signal_name, _on_signal_emmited): + var err := emitter.connect(signal_name, _on_signal_emmited.bind(emitter, signal_name)) + if err != OK: + push_error("Can't connect to signal %s on %s. Error: %s" % [signal_name, emitter, error_string(err)]) + + +# unregister all acquired resources/connections, otherwise it ends up in orphans +# is called when the emitter is removed from the parent +func unregister_emitter(emitter :Object) -> void: + if is_instance_valid(emitter): + for signal_def in emitter.get_signal_list(): + var signal_name :String = signal_def["name"] + if emitter.is_connected(signal_name, _on_signal_emmited): + emitter.disconnect(signal_name, _on_signal_emmited.bind(emitter, signal_name)) + _collected_signals.erase(emitter) + + +# receives the signal from the emitter with all emitted signal arguments and additional the emitter and signal_name as last two arguements +func _on_signal_emmited( + arg0 :Variant= NO_ARG, + arg1 :Variant= NO_ARG, + arg2 :Variant= NO_ARG, + arg3 :Variant= NO_ARG, + arg4 :Variant= NO_ARG, + arg5 :Variant= NO_ARG, + arg6 :Variant= NO_ARG, + arg7 :Variant= NO_ARG, + arg8 :Variant= NO_ARG, + arg9 :Variant= NO_ARG, + arg10 :Variant= NO_ARG, + arg11 :Variant= NO_ARG) -> void: + var signal_args :Array = GdArrayTools.filter_value([arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11], NO_ARG) + # extract the emitter and signal_name from the last two arguments (see line 61 where is added) + var signal_name :String = signal_args.pop_back() + var emitter :Object = signal_args.pop_back() + #prints("_on_signal_emmited:", emitter, signal_name, signal_args) + if is_signal_collecting(emitter, signal_name): + _collected_signals[emitter][signal_name].append(signal_args) + + +func reset_received_signals(emitter :Object, signal_name: String, signal_args :Array) -> void: + #_debug_signal_list("before claer"); + if _collected_signals.has(emitter): + var signals_by_emitter :Dictionary = _collected_signals[emitter] + if signals_by_emitter.has(signal_name): + _collected_signals[emitter][signal_name].erase(signal_args) + #_debug_signal_list("after claer"); + + +func is_signal_collecting(emitter :Object, signal_name :String) -> bool: + return _collected_signals.has(emitter) and _collected_signals[emitter].has(signal_name) + + +func match(emitter :Object, signal_name :String, args :Array) -> bool: + #prints("match", signal_name, _collected_signals[emitter][signal_name]); + if _collected_signals.is_empty() or not _collected_signals.has(emitter): + return false + for received_args :Variant in _collected_signals[emitter][signal_name]: + #prints("testing", signal_name, received_args, "vs", args) + if GdObjects.equals(received_args, args): + return true + return false + + +func _debug_signal_list(message :String) -> void: + prints("-----", message, "-------") + prints("senders {") + for emitter :Object in _collected_signals: + prints("\t", emitter) + for signal_name :String in _collected_signals[emitter]: + var args :Variant = _collected_signals[emitter][signal_name] + prints("\t\t", signal_name, args) + prints("}") diff --git a/addons/gdUnit4/src/core/GdUnitSignals.gd b/addons/gdUnit4/src/core/GdUnitSignals.gd new file mode 100644 index 0000000..a21c795 --- /dev/null +++ b/addons/gdUnit4/src/core/GdUnitSignals.gd @@ -0,0 +1,36 @@ +class_name GdUnitSignals +extends RefCounted + +signal gdunit_client_connected(client_id :int) +signal gdunit_client_disconnected(client_id :int) +signal gdunit_client_terminated() + +signal gdunit_event(event :GdUnitEvent) +signal gdunit_event_debug(event :GdUnitEvent) +signal gdunit_add_test_suite(test_suite :GdUnitTestSuiteDto) +signal gdunit_message(message :String) +signal gdunit_report(execution_context_id :int, report :GdUnitReport) +signal gdunit_set_test_failed(is_failed :bool) + +signal gdunit_settings_changed(property :GdUnitProperty) + +const META_KEY := "GdUnitSignals" + + +static func instance() -> GdUnitSignals: + if Engine.has_meta(META_KEY): + return Engine.get_meta(META_KEY) + var instance_ := GdUnitSignals.new() + Engine.set_meta(META_KEY, instance_) + return instance_ + + +static func dispose() -> void: + var signals := instance() + # cleanup connected signals + for signal_ in signals.get_signal_list(): + for connection in signals.get_signal_connection_list(signal_["name"]): + connection["signal"].disconnect(connection["callable"]) + Engine.remove_meta(META_KEY) + while signals.get_reference_count() > 0: + signals.unreference() diff --git a/addons/gdUnit4/src/core/GdUnitSingleton.gd b/addons/gdUnit4/src/core/GdUnitSingleton.gd new file mode 100644 index 0000000..fc63b48 --- /dev/null +++ b/addons/gdUnit4/src/core/GdUnitSingleton.gd @@ -0,0 +1,53 @@ +################################################################################ +# Provides access to a global accessible singleton +# +# This is a workarount to the existing auto load singleton because of some bugs +# around plugin handling +################################################################################ +class_name GdUnitSingleton +extends Object + + +const GdUnitTools := preload("res://addons/gdUnit4/src/core/GdUnitTools.gd") +const MEATA_KEY := "GdUnitSingletons" + + +static func instance(name :String, clazz :Callable) -> Variant: + if Engine.has_meta(name): + return Engine.get_meta(name) + var singleton :Variant = clazz.call() + if is_instance_of(singleton, RefCounted): + push_error("Invalid singleton implementation detected for '%s' is `%s`!" % [name, singleton.get_class()]) + return + + Engine.set_meta(name, singleton) + GdUnitTools.prints_verbose("Register singleton '%s:%s'" % [name, singleton]) + var singletons :PackedStringArray = Engine.get_meta(MEATA_KEY, PackedStringArray()) + singletons.append(name) + Engine.set_meta(MEATA_KEY, singletons) + return singleton + + +static func unregister(p_singleton :String) -> void: + var singletons :PackedStringArray = Engine.get_meta(MEATA_KEY, PackedStringArray()) + if singletons.has(p_singleton): + GdUnitTools.prints_verbose("\n Unregister singleton '%s'" % p_singleton); + var index := singletons.find(p_singleton) + singletons.remove_at(index) + var instance_ :Object = Engine.get_meta(p_singleton) + GdUnitTools.prints_verbose(" Free singleton instance '%s:%s'" % [p_singleton, instance_]) + GdUnitTools.free_instance(instance_) + Engine.remove_meta(p_singleton) + GdUnitTools.prints_verbose(" Successfully freed '%s'" % p_singleton) + Engine.set_meta(MEATA_KEY, singletons) + + +static func dispose() -> void: + # use a copy because unregister is modify the singletons array + var singletons := PackedStringArray(Engine.get_meta(MEATA_KEY, PackedStringArray())) + GdUnitTools.prints_verbose("----------------------------------------------------------------") + GdUnitTools.prints_verbose("Cleanup singletons %s" % singletons) + for singleton in singletons: + unregister(singleton) + Engine.remove_meta(MEATA_KEY) + GdUnitTools.prints_verbose("----------------------------------------------------------------") diff --git a/addons/gdUnit4/src/core/GdUnitTestSuiteBuilder.gd b/addons/gdUnit4/src/core/GdUnitTestSuiteBuilder.gd new file mode 100644 index 0000000..6cd2ee4 --- /dev/null +++ b/addons/gdUnit4/src/core/GdUnitTestSuiteBuilder.gd @@ -0,0 +1,18 @@ +class_name GdUnitTestSuiteBuilder +extends RefCounted + + +static func create(source :Script, line_number :int) -> GdUnitResult: + var test_suite_path := GdUnitTestSuiteScanner.resolve_test_suite_path(source.resource_path, GdUnitSettings.test_root_folder()) + # we need to save and close the testsuite and source if is current opened before modify + ScriptEditorControls.save_an_open_script(source.resource_path) + ScriptEditorControls.save_an_open_script(test_suite_path, true) + if GdObjects.is_cs_script(source): + return GdUnit4CSharpApiLoader.create_test_suite(source.resource_path, line_number+1, test_suite_path) + var parser := GdScriptParser.new() + var lines := source.source_code.split("\n") + var current_line := lines[line_number] + var func_name := parser.parse_func_name(current_line) + if func_name.is_empty(): + return GdUnitResult.error("No function found at line: %d." % line_number) + return GdUnitTestSuiteScanner.create_test_case(test_suite_path, func_name, source.resource_path) diff --git a/addons/gdUnit4/src/core/GdUnitTestSuiteScanner.gd b/addons/gdUnit4/src/core/GdUnitTestSuiteScanner.gd new file mode 100644 index 0000000..0f88209 --- /dev/null +++ b/addons/gdUnit4/src/core/GdUnitTestSuiteScanner.gd @@ -0,0 +1,368 @@ +class_name GdUnitTestSuiteScanner +extends RefCounted + +const TEST_FUNC_TEMPLATE =""" + +func test_${func_name}() -> void: + # remove this line and complete your test + assert_not_yet_implemented() +""" + + +# we exclude the gdunit source directorys by default +const exclude_scan_directories = [ + "res://addons/gdUnit4/bin", + "res://addons/gdUnit4/src", + "res://reports"] + + +var _script_parser := GdScriptParser.new() +var _included_resources :PackedStringArray = [] +var _excluded_resources :PackedStringArray = [] +var _expression_runner := GdUnitExpressionRunner.new() +var _regex_extends_clazz_name := RegEx.create_from_string("extends[\\s]+([\\S]+)") + + +func prescan_testsuite_classes() -> void: + # scan and cache extends GdUnitTestSuite by class name an resource paths + var script_classes :Array[Dictionary] = ProjectSettings.get_global_class_list() + for script_meta in script_classes: + var base_class :String = script_meta["base"] + var resource_path :String = script_meta["path"] + if base_class == "GdUnitTestSuite": + _included_resources.append(resource_path) + elif ClassDB.class_exists(base_class): + _excluded_resources.append(resource_path) + + +func scan(resource_path :String) -> Array[Node]: + prescan_testsuite_classes() + # if single testsuite requested + if FileAccess.file_exists(resource_path): + var test_suite := _parse_is_test_suite(resource_path) + if test_suite != null: + return [test_suite] + return [] as Array[Node] + var base_dir := DirAccess.open(resource_path) + if base_dir == null: + prints("Given directory or file does not exists:", resource_path) + return [] + return _scan_test_suites(base_dir, []) + + +func _scan_test_suites(dir :DirAccess, collected_suites :Array[Node]) -> Array[Node]: + if exclude_scan_directories.has(dir.get_current_dir()): + return collected_suites + prints("Scanning for test suites in:", dir.get_current_dir()) + dir.list_dir_begin() # TODOGODOT4 fill missing arguments https://github.com/godotengine/godot/pull/40547 + var file_name := dir.get_next() + while file_name != "": + var resource_path := GdUnitTestSuiteScanner._file(dir, file_name) + if dir.current_is_dir(): + var sub_dir := DirAccess.open(resource_path) + if sub_dir != null: + _scan_test_suites(sub_dir, collected_suites) + else: + var time := LocalTime.now() + var test_suite := _parse_is_test_suite(resource_path) + if test_suite: + collected_suites.append(test_suite) + if OS.is_stdout_verbose() and time.elapsed_since_ms() > 300: + push_warning("Scanning of test-suite '%s' took more than 300ms: " % resource_path, time.elapsed_since()) + file_name = dir.get_next() + return collected_suites + + +static func _file(dir :DirAccess, file_name :String) -> String: + var current_dir := dir.get_current_dir() + if current_dir.ends_with("/"): + return current_dir + file_name + return current_dir + "/" + file_name + + +func _parse_is_test_suite(resource_path :String) -> Node: + if not GdUnitTestSuiteScanner._is_script_format_supported(resource_path): + return null + if GdUnit4CSharpApiLoader.is_test_suite(resource_path): + return GdUnit4CSharpApiLoader.parse_test_suite(resource_path) + + # We use the global cache to fast scan for test suites. + if _excluded_resources.has(resource_path): + return null + # Check in the global class cache whether the GdUnitTestSuite class has been extended. + if _included_resources.has(resource_path): + return _parse_test_suite(ResourceLoader.load(resource_path)) + + # Otherwise we need to scan manual, we need to exclude classes where direct extends form Godot classes + # the resource loader can fail to load e.g. plugin classes with do preload other scripts + var extends_from := get_extends_classname(resource_path) + # If not extends is defined or extends from a Godot class + if extends_from.is_empty() or ClassDB.class_exists(extends_from): + return null + # Finally, we need to load the class to determine it is a test suite + var script := ResourceLoader.load(resource_path) + if not GdObjects.is_test_suite(script): + return null + return _parse_test_suite(ResourceLoader.load(resource_path)) + + +static func _is_script_format_supported(resource_path :String) -> bool: + var ext := resource_path.get_extension() + if ext == "gd": + return true + return GdUnit4CSharpApiLoader.is_csharp_file(resource_path) + + +func _parse_test_suite(script :GDScript) -> GdUnitTestSuite: + if not GdObjects.is_test_suite(script): + return null + + var test_suite :GdUnitTestSuite = script.new() + test_suite.set_name(GdUnitTestSuiteScanner.parse_test_suite_name(script)) + # add test cases to test suite and parse test case line nummber + var test_case_names := _extract_test_case_names(script) + _parse_and_add_test_cases(test_suite, script, test_case_names) + # not all test case parsed? + # we have to scan the base class to + if not test_case_names.is_empty(): + var base_script :GDScript = test_suite.get_script().get_base_script() + while base_script is GDScript: + # do not parse testsuite itself + if base_script.resource_path.find("GdUnitTestSuite") == -1: + _parse_and_add_test_cases(test_suite, base_script, test_case_names) + base_script = base_script.get_base_script() + return test_suite + + +func _extract_test_case_names(script :GDScript) -> PackedStringArray: + var names := PackedStringArray() + for method in script.get_script_method_list(): + var funcName :String = method["name"] + if funcName.begins_with("test"): + names.append(funcName) + return names + + +static func parse_test_suite_name(script :Script) -> String: + return script.resource_path.get_file().replace(".gd", "") + + +func _handle_test_suite_arguments(test_suite :Node, script :GDScript, fd :GdFunctionDescriptor) -> void: + for arg in fd.args(): + match arg.name(): + _TestCase.ARGUMENT_SKIP: + var result :Variant = _expression_runner.execute(script, arg.value_as_string()) + if result is bool: + test_suite.__is_skipped = result + else: + push_error("Test expression '%s' cannot be evaluated because it is not of type bool!" % arg.value_as_string()) + _TestCase.ARGUMENT_SKIP_REASON: + test_suite.__skip_reason = arg.value_as_string() + _: + push_error("Unsuported argument `%s` found on before() at '%s'!" % [arg.name(), script.resource_path]) + + +func _handle_test_case_arguments(test_suite :Node, script :GDScript, fd :GdFunctionDescriptor) -> void: + var timeout := _TestCase.DEFAULT_TIMEOUT + var iterations := Fuzzer.ITERATION_DEFAULT_COUNT + var seed_value := -1 + var is_skipped := false + var skip_reason := "Unknown." + var fuzzers :Array[GdFunctionArgument] = [] + var test := _TestCase.new() + + for arg in fd.args(): + # verify argument is allowed + # is test using fuzzers? + if arg.type() == GdObjects.TYPE_FUZZER: + fuzzers.append(arg) + elif arg.has_default(): + match arg.name(): + _TestCase.ARGUMENT_TIMEOUT: + timeout = arg.default() + _TestCase.ARGUMENT_SKIP: + var result :Variant = _expression_runner.execute(script, arg.value_as_string()) + if result is bool: + is_skipped = result + else: + push_error("Test expression '%s' cannot be evaluated because it is not of type bool!" % arg.value_as_string()) + _TestCase.ARGUMENT_SKIP_REASON: + skip_reason = arg.value_as_string() + Fuzzer.ARGUMENT_ITERATIONS: + iterations = arg.default() + Fuzzer.ARGUMENT_SEED: + seed_value = arg.default() + # create new test + test.configure(fd.name(), fd.line_number(), script.resource_path, timeout, fuzzers, iterations, seed_value) + test.set_function_descriptor(fd) + test.skip(is_skipped, skip_reason) + _validate_argument(fd, test) + test_suite.add_child(test) + + +func _parse_and_add_test_cases(test_suite :Node, script :GDScript, test_case_names :PackedStringArray) -> void: + var test_cases_to_find := Array(test_case_names) + var functions_to_scan := test_case_names.duplicate() + functions_to_scan.append("before") + var source := _script_parser.load_source_code(script, [script.resource_path]) + var function_descriptors := _script_parser.parse_functions(source, "", [script.resource_path], functions_to_scan) + for fd in function_descriptors: + if fd.name() == "before": + _handle_test_suite_arguments(test_suite, script, fd) + if test_cases_to_find.has(fd.name()): + _handle_test_case_arguments(test_suite, script, fd) + + +const TEST_CASE_ARGUMENTS = [_TestCase.ARGUMENT_TIMEOUT, _TestCase.ARGUMENT_SKIP, _TestCase.ARGUMENT_SKIP_REASON, Fuzzer.ARGUMENT_ITERATIONS, Fuzzer.ARGUMENT_SEED] + +func _validate_argument(fd :GdFunctionDescriptor, test_case :_TestCase) -> void: + if fd.is_parameterized(): + return + for argument in fd.args(): + if argument.type() == GdObjects.TYPE_FUZZER or argument.name() in TEST_CASE_ARGUMENTS: + continue + test_case.skip(true, "Unknown test case argument '%s' found." % argument.name()) + + +# converts given file name by configured naming convention +static func _to_naming_convention(file_name :String) -> String: + var nc :int = GdUnitSettings.get_setting(GdUnitSettings.TEST_SITE_NAMING_CONVENTION, 0) + match nc: + GdUnitSettings.NAMING_CONVENTIONS.AUTO_DETECT: + if GdObjects.is_snake_case(file_name): + return GdObjects.to_snake_case(file_name + "Test") + return GdObjects.to_pascal_case(file_name + "Test") + GdUnitSettings.NAMING_CONVENTIONS.SNAKE_CASE: + return GdObjects.to_snake_case(file_name + "Test") + GdUnitSettings.NAMING_CONVENTIONS.PASCAL_CASE: + return GdObjects.to_pascal_case(file_name + "Test") + push_error("Unexpected case") + return "--" + + +static func resolve_test_suite_path(source_script_path :String, test_root_folder :String = "test") -> String: + var file_name := source_script_path.get_basename().get_file() + var suite_name := _to_naming_convention(file_name) + if test_root_folder.is_empty() or test_root_folder == "/": + return source_script_path.replace(file_name, suite_name) + + # is user tmp + if source_script_path.begins_with("user://tmp"): + return normalize_path(source_script_path.replace("user://tmp", "user://tmp/" + test_root_folder)).replace(file_name, suite_name) + + # at first look up is the script under a "src" folder located + var test_suite_path :String + var src_folder := source_script_path.find("/src/") + if src_folder != -1: + test_suite_path = source_script_path.replace("/src/", "/"+test_root_folder+"/") + else: + var paths := source_script_path.split("/", false) + # is a plugin script? + if paths[1] == "addons": + test_suite_path = "%s//addons/%s/%s" % [paths[0], paths[2], test_root_folder] + # rebuild plugin path + for index in range(3, paths.size()): + test_suite_path += "/" + paths[index] + else: + test_suite_path = paths[0] + "//" + test_root_folder + for index in range(1, paths.size()): + test_suite_path += "/" + paths[index] + return normalize_path(test_suite_path).replace(file_name, suite_name) + + +static func normalize_path(path :String) -> String: + return path.replace("///", "/") + + +static func create_test_suite(test_suite_path :String, source_path :String) -> GdUnitResult: + # create directory if not exists + if not DirAccess.dir_exists_absolute(test_suite_path.get_base_dir()): + var error_ := DirAccess.make_dir_recursive_absolute(test_suite_path.get_base_dir()) + if error_ != OK: + return GdUnitResult.error("Can't create directoy at: %s. Error code %s" % [test_suite_path.get_base_dir(), error_]) + var script := GDScript.new() + script.source_code = GdUnitTestSuiteTemplate.build_template(source_path) + var error := ResourceSaver.save(script, test_suite_path) + if error != OK: + return GdUnitResult.error("Can't create test suite at: %s. Error code %s" % [test_suite_path, error]) + return GdUnitResult.success(test_suite_path) + + +static func get_test_case_line_number(resource_path :String, func_name :String) -> int: + var file := FileAccess.open(resource_path, FileAccess.READ) + if file != null: + var script_parser := GdScriptParser.new() + var line_number := 0 + while not file.eof_reached(): + var row := GdScriptParser.clean_up_row(file.get_line()) + line_number += 1 + # ignore comments and empty lines and not test functions + if row.begins_with("#") || row.length() == 0 || row.find("functest") == -1: + continue + # abort if test case name found + if script_parser.parse_func_name(row) == "test_" + func_name: + return line_number + return -1 + + +func get_extends_classname(resource_path :String) -> String: + var file := FileAccess.open(resource_path, FileAccess.READ) + if file != null: + while not file.eof_reached(): + var row := file.get_line() + # skip comments and empty lines + if row.begins_with("#") || row.length() == 0: + continue + # Stop at first function + if row.contains("func"): + return "" + var result := _regex_extends_clazz_name.search(row) + if result != null: + return result.get_string(1) + return "" + + +static func add_test_case(resource_path :String, func_name :String) -> GdUnitResult: + var script := load(resource_path) as GDScript + # count all exiting lines and add two as space to add new test case + var line_number := count_lines(script) + 2 + var func_body := TEST_FUNC_TEMPLATE.replace("${func_name}", func_name) + if Engine.is_editor_hint(): + var settings := EditorInterface.get_editor_settings() + var ident_type :int = settings.get_setting("text_editor/behavior/indent/type") + var ident_size :int = settings.get_setting("text_editor/behavior/indent/size") + if ident_type == 1: + func_body = func_body.replace(" ", "".lpad(ident_size, " ")) + script.source_code += func_body + var error := ResourceSaver.save(script, resource_path) + if error != OK: + return GdUnitResult.error("Can't add test case at: %s to '%s'. Error code %s" % [func_name, resource_path, error]) + return GdUnitResult.success({ "path" : resource_path, "line" : line_number}) + + +static func count_lines(script : GDScript) -> int: + return script.source_code.split("\n").size() + + +static func test_suite_exists(test_suite_path :String) -> bool: + return FileAccess.file_exists(test_suite_path) + +static func test_case_exists(test_suite_path :String, func_name :String) -> bool: + if not test_suite_exists(test_suite_path): + return false + var script := ResourceLoader.load(test_suite_path) as GDScript + for f in script.get_script_method_list(): + if f["name"] == "test_" + func_name: + return true + return false + +static func create_test_case(test_suite_path :String, func_name :String, source_script_path :String) -> GdUnitResult: + if test_case_exists(test_suite_path, func_name): + var line_number := get_test_case_line_number(test_suite_path, func_name) + return GdUnitResult.success({ "path" : test_suite_path, "line" : line_number}) + + if not test_suite_exists(test_suite_path): + var result := create_test_suite(test_suite_path, source_script_path) + if result.is_error(): + return result + return add_test_case(test_suite_path, func_name) diff --git a/addons/gdUnit4/src/core/GdUnitTools.gd b/addons/gdUnit4/src/core/GdUnitTools.gd new file mode 100644 index 0000000..a9bba12 --- /dev/null +++ b/addons/gdUnit4/src/core/GdUnitTools.gd @@ -0,0 +1,115 @@ +extends RefCounted + + +static var _richtext_normalize: RegEx + + +static func normalize_text(text :String) -> String: + return text.replace("\r", ""); + + +static func richtext_normalize(input :String) -> String: + if _richtext_normalize == null: + _richtext_normalize = to_regex("\\[/?(b|color|bgcolor|right|table|cell).*?\\]") + return _richtext_normalize.sub(input, "", true).replace("\r", "") + + +static func to_regex(pattern :String) -> RegEx: + var regex := RegEx.new() + var err := regex.compile(pattern) + if err != OK: + push_error("Can't compiling regx '%s'.\n ERROR: %s" % [pattern, error_string(err)]) + return regex + + +static func prints_verbose(message :String) -> void: + if OS.is_stdout_verbose(): + prints(message) + + +static func free_instance(instance :Variant, is_stdout_verbose :=false) -> bool: + if instance is Array: + for element :Variant in instance: + free_instance(element) + instance.clear() + return true + # do not free an already freed instance + if not is_instance_valid(instance): + return false + # do not free a class refernece + if typeof(instance) == TYPE_OBJECT and (instance as Object).is_class("GDScriptNativeClass"): + return false + if is_stdout_verbose: + print_verbose("GdUnit4:gc():free instance ", instance) + release_double(instance) + if instance is RefCounted: + instance.notification(Object.NOTIFICATION_PREDELETE) + return true + else: + # is instance already freed? + #if not is_instance_valid(instance) or ClassDB.class_get_property(instance, "new"): + # return false + #release_connections(instance) + if instance is Timer: + instance.stop() + instance.call_deferred("free") + await Engine.get_main_loop().process_frame + return true + if instance is Node and instance.get_parent() != null: + if is_stdout_verbose: + print_verbose("GdUnit4:gc():remove node from parent ", instance.get_parent(), instance) + instance.get_parent().remove_child(instance) + instance.set_owner(null) + instance.free() + return !is_instance_valid(instance) + + +static func _release_connections(instance :Object) -> void: + if is_instance_valid(instance): + # disconnect from all connected signals to force freeing, otherwise it ends up in orphans + for connection in instance.get_incoming_connections(): + var signal_ :Signal = connection["signal"] + var callable_ :Callable = connection["callable"] + #prints(instance, connection) + #prints("signal", signal_.get_name(), signal_.get_object()) + #prints("callable", callable_.get_object()) + if instance.has_signal(signal_.get_name()) and instance.is_connected(signal_.get_name(), callable_): + #prints("disconnect signal", signal_.get_name(), callable_) + instance.disconnect(signal_.get_name(), callable_) + release_timers() + + +static func release_timers() -> void: + # we go the new way to hold all gdunit timers in group 'GdUnitTimers' + if Engine.get_main_loop().root == null: + return + for node :Node in Engine.get_main_loop().root.get_children(): + if is_instance_valid(node) and node.is_in_group("GdUnitTimers"): + if is_instance_valid(node): + Engine.get_main_loop().root.remove_child(node) + node.stop() + node.free() + + +# the finally cleaup unfreed resources and singletons +static func dispose_all() -> void: + release_timers() + GdUnitSignals.dispose() + GdUnitSingleton.dispose() + + +# if instance an mock or spy we need manually freeing the self reference +static func release_double(instance :Object) -> void: + if instance.has_method("__release_double"): + instance.call("__release_double") + + +static func clear_push_errors() -> void: + var runner :Node = Engine.get_meta("GdUnitRunner") + if runner != null: + runner.clear_push_errors() + + +static func register_expect_interupted_by_timeout(test_suite :Node, test_case_name :String) -> void: + var test_case :Node = test_suite.find_child(test_case_name, false, false) + test_case.expect_to_interupt() diff --git a/addons/gdUnit4/src/core/GodotVersionFixures.gd b/addons/gdUnit4/src/core/GodotVersionFixures.gd new file mode 100644 index 0000000..a34cd83 --- /dev/null +++ b/addons/gdUnit4/src/core/GodotVersionFixures.gd @@ -0,0 +1,29 @@ +## This service class contains helpers to wrap Godot functions and handle them carefully depending on the current Godot version +class_name GodotVersionFixures +extends RefCounted + + +@warning_ignore("shadowed_global_identifier") +static func type_convert(value: Variant, type: int) -> Variant: + return convert(value, type) + + +@warning_ignore("shadowed_global_identifier") +static func convert(value: Variant, type: int) -> Variant: + return type_convert(value, type) + + +# handle global_position fixed by https://github.com/godotengine/godot/pull/88473 +static func set_event_global_position(event: InputEventMouseMotion, global_position: Vector2) -> void: + if Engine.get_version_info().hex >= 0x40202 or Engine.get_version_info().hex == 0x40104: + event.global_position = event.position + else: + event.global_position = global_position + + +# we crash on macOS when using free() inside the plugin _exit_tree +static func free_fix(instance: Object) -> void: + if OS.get_distribution_name().contains("mac"): + instance.queue_free() + else: + instance.free() diff --git a/addons/gdUnit4/src/core/LocalTime.gd b/addons/gdUnit4/src/core/LocalTime.gd new file mode 100644 index 0000000..68900b5 --- /dev/null +++ b/addons/gdUnit4/src/core/LocalTime.gd @@ -0,0 +1,110 @@ +# This class provides Date/Time functionallity to Godot +class_name LocalTime +extends Resource + +enum TimeUnit { + MILLIS = 1, + SECOND = 2, + MINUTE = 3, + HOUR = 4, + DAY = 5, + MONTH = 6, + YEAR = 7 +} + +const SECONDS_PER_MINUTE:int = 60 +const MINUTES_PER_HOUR:int = 60 +const HOURS_PER_DAY:int = 24 +const MILLIS_PER_SECOND:int = 1000 +const MILLIS_PER_MINUTE:int = MILLIS_PER_SECOND * SECONDS_PER_MINUTE +const MILLIS_PER_HOUR:int = MILLIS_PER_MINUTE * MINUTES_PER_HOUR + +var _time :int +var _hour :int +var _minute :int +var _second :int +var _millisecond :int + + +static func now() -> LocalTime: + return LocalTime.new(_get_system_time_msecs()) + + +static func of_unix_time(time_ms :int) -> LocalTime: + return LocalTime.new(time_ms) + + +static func local_time(hours :int, minutes :int, seconds :int, milliseconds :int) -> LocalTime: + return LocalTime.new(MILLIS_PER_HOUR * hours\ + + MILLIS_PER_MINUTE * minutes\ + + MILLIS_PER_SECOND * seconds\ + + milliseconds) + + +func elapsed_since() -> String: + return LocalTime.elapsed(LocalTime._get_system_time_msecs() - _time) + + +func elapsed_since_ms() -> int: + return LocalTime._get_system_time_msecs() - _time + + +func plus(time_unit :TimeUnit, value :int) -> LocalTime: + var addValue:int = 0 + match time_unit: + TimeUnit.MILLIS: + addValue = value + TimeUnit.SECOND: + addValue = value * MILLIS_PER_SECOND + TimeUnit.MINUTE: + addValue = value * MILLIS_PER_MINUTE + TimeUnit.HOUR: + addValue = value * MILLIS_PER_HOUR + _init(_time + addValue) + return self + + +static func elapsed(p_time_ms :int) -> String: + var local_time_ := LocalTime.new(p_time_ms) + if local_time_._hour > 0: + return "%dh %dmin %ds %dms" % [local_time_._hour, local_time_._minute, local_time_._second, local_time_._millisecond] + if local_time_._minute > 0: + return "%dmin %ds %dms" % [local_time_._minute, local_time_._second, local_time_._millisecond] + if local_time_._second > 0: + return "%ds %dms" % [local_time_._second, local_time_._millisecond] + return "%dms" % local_time_._millisecond + + +@warning_ignore("integer_division") +# create from epoch timestamp in ms +func _init(time :int) -> void: + _time = time + _hour = (time / MILLIS_PER_HOUR) % 24 + _minute = (time / MILLIS_PER_MINUTE) % 60 + _second = (time / MILLIS_PER_SECOND) % 60 + _millisecond = time % 1000 + + +func hour() -> int: + return _hour + + +func minute() -> int: + return _minute + + +func second() -> int: + return _second + + +func millis() -> int: + return _millisecond + + +func _to_string() -> String: + return "%02d:%02d:%02d.%03d" % [_hour, _minute, _second, _millisecond] + + +# wraper to old OS.get_system_time_msecs() function +static func _get_system_time_msecs() -> int: + return Time.get_unix_time_from_system() * 1000 as int diff --git a/addons/gdUnit4/src/core/_TestCase.gd b/addons/gdUnit4/src/core/_TestCase.gd new file mode 100644 index 0000000..31be781 --- /dev/null +++ b/addons/gdUnit4/src/core/_TestCase.gd @@ -0,0 +1,238 @@ +class_name _TestCase +extends Node + +signal completed() + +# default timeout 5min +const DEFAULT_TIMEOUT := -1 +const ARGUMENT_TIMEOUT := "timeout" +const ARGUMENT_SKIP := "do_skip" +const ARGUMENT_SKIP_REASON := "skip_reason" + +var _iterations: int = 1 +var _current_iteration: int = -1 +var _seed: int +var _fuzzers: Array[GdFunctionArgument] = [] +var _test_param_index := -1 +var _line_number: int = -1 +var _script_path: String +var _skipped := false +var _skip_reason := "" +var _expect_to_interupt := false +var _timer: Timer +var _interupted: bool = false +var _failed := false +var _report: GdUnitReport = null +var _parameter_set_resolver: GdUnitTestParameterSetResolver +var _is_disposed := false + +var timeout: int = DEFAULT_TIMEOUT: + set(value): + timeout = value + get: + if timeout == DEFAULT_TIMEOUT: + timeout = GdUnitSettings.test_timeout() + return timeout + + +@warning_ignore("shadowed_variable_base_class") +func configure(p_name: String, p_line_number: int, p_script_path: String, p_timeout: int=DEFAULT_TIMEOUT, p_fuzzers: Array[GdFunctionArgument]=[], p_iterations: int=1, p_seed: int=-1) -> _TestCase: + set_name(p_name) + _line_number = p_line_number + _fuzzers = p_fuzzers + _iterations = p_iterations + _seed = p_seed + _script_path = p_script_path + timeout = p_timeout + return self + + +func execute(p_test_parameter := Array(), p_iteration := 0) -> void: + _failure_received(false) + _current_iteration = p_iteration - 1 + if _current_iteration == - 1: + _set_failure_handler() + set_timeout() + if not p_test_parameter.is_empty(): + update_fuzzers(p_test_parameter, p_iteration) + _execute_test_case(name, p_test_parameter) + else: + _execute_test_case(name, []) + await completed + + +func execute_paramaterized(p_test_parameter: Array) -> void: + _failure_received(false) + set_timeout() + # We need here to add a empty array to override the `test_parameters` to prevent initial "default" parameters from being used. + # This prevents objects in the argument list from being unnecessarily re-instantiated. + var test_parameters := p_test_parameter.duplicate() # is strictly need to duplicate the paramters before extend + test_parameters.append([]) + _execute_test_case(name, test_parameters) + await completed + + +func dispose() -> void: + if _is_disposed: + return + _is_disposed = true + Engine.remove_meta("GD_TEST_FAILURE") + stop_timer() + _remove_failure_handler() + _fuzzers.clear() + _report = null + + +@warning_ignore("shadowed_variable_base_class", "redundant_await") +func _execute_test_case(name: String, test_parameter: Array) -> void: + # needs at least on await otherwise it breaks the awaiting chain + await get_parent().callv(name, test_parameter) + await Engine.get_main_loop().process_frame + completed.emit() + + +func update_fuzzers(input_values: Array, iteration: int) -> void: + for fuzzer :Variant in input_values: + if fuzzer is Fuzzer: + fuzzer._iteration_index = iteration + 1 + + +func set_timeout() -> void: + if is_instance_valid(_timer): + return + var time: float = timeout / 1000.0 + _timer = Timer.new() + add_child(_timer) + _timer.set_name("gdunit_test_case_timer_%d" % _timer.get_instance_id()) + _timer.timeout.connect(func do_interrupt() -> void: + if is_fuzzed(): + _report = GdUnitReport.new().create(GdUnitReport.INTERUPTED, line_number(), GdAssertMessages.fuzzer_interuped(_current_iteration, "timedout")) + else: + _report = GdUnitReport.new().create(GdUnitReport.INTERUPTED, line_number(), GdAssertMessages.test_timeout(timeout)) + _interupted = true + completed.emit() + , CONNECT_DEFERRED) + _timer.set_one_shot(true) + _timer.set_wait_time(time) + _timer.set_autostart(false) + _timer.start() + + +func _set_failure_handler() -> void: + if not GdUnitSignals.instance().gdunit_set_test_failed.is_connected(_failure_received): + GdUnitSignals.instance().gdunit_set_test_failed.connect(_failure_received) + + +func _remove_failure_handler() -> void: + if GdUnitSignals.instance().gdunit_set_test_failed.is_connected(_failure_received): + GdUnitSignals.instance().gdunit_set_test_failed.disconnect(_failure_received) + + +func _failure_received(is_failed: bool) -> void: + # is already failed? + if _failed: + return + _failed = is_failed + Engine.set_meta("GD_TEST_FAILURE", is_failed) + + +func stop_timer() -> void: + # finish outstanding timeouts + if is_instance_valid(_timer): + _timer.stop() + _timer.call_deferred("free") + _timer = null + + +func expect_to_interupt() -> void: + _expect_to_interupt = true + + +func is_interupted() -> bool: + return _interupted + + +func is_expect_interupted() -> bool: + return _expect_to_interupt + + +func is_parameterized() -> bool: + return _parameter_set_resolver.is_parameterized() + + +func is_skipped() -> bool: + return _skipped + + +func report() -> GdUnitReport: + return _report + + +func skip_info() -> String: + return _skip_reason + + +func line_number() -> int: + return _line_number + + +func iterations() -> int: + return _iterations + + +func seed_value() -> int: + return _seed + + +func is_fuzzed() -> bool: + return not _fuzzers.is_empty() + + +func fuzzer_arguments() -> Array[GdFunctionArgument]: + return _fuzzers + + +func script_path() -> String: + return _script_path + + +func ResourcePath() -> String: + return _script_path + + +func generate_seed() -> void: + if _seed != -1: + seed(_seed) + + +func skip(skipped: bool, reason: String="") -> void: + _skipped = skipped + _skip_reason = reason + + +func set_function_descriptor(fd: GdFunctionDescriptor) -> void: + _parameter_set_resolver = GdUnitTestParameterSetResolver.new(fd) + + +func set_test_parameter_index(index: int) -> void: + _test_param_index = index + + +func test_parameter_index() -> int: + return _test_param_index + + +func test_case_names() -> PackedStringArray: + return _parameter_set_resolver.build_test_case_names(self) + + +func load_parameter_sets() -> Array: + return _parameter_set_resolver.load_parameter_sets(self, true) + + +func parameter_set_resolver() -> GdUnitTestParameterSetResolver: + return _parameter_set_resolver + + +func _to_string() -> String: + return "%s :%d (%dms)" % [get_name(), _line_number, timeout] diff --git a/addons/gdUnit4/src/core/command/GdUnitCommand.gd b/addons/gdUnit4/src/core/command/GdUnitCommand.gd new file mode 100644 index 0000000..659b6a3 --- /dev/null +++ b/addons/gdUnit4/src/core/command/GdUnitCommand.gd @@ -0,0 +1,41 @@ +class_name GdUnitCommand +extends RefCounted + + +func _init(p_name :String, p_is_enabled: Callable, p_runnable: Callable, p_shortcut :GdUnitShortcut.ShortCut = GdUnitShortcut.ShortCut.NONE) -> void: + assert(p_name != null, "(%s) missing parameter 'name'" % p_name) + assert(p_is_enabled != null, "(%s) missing parameter 'is_enabled'" % p_name) + assert(p_runnable != null, "(%s) missing parameter 'runnable'" % p_name) + assert(p_shortcut != null, "(%s) missing parameter 'shortcut'" % p_name) + self.name = p_name + self.is_enabled = p_is_enabled + self.shortcut = p_shortcut + self.runnable = p_runnable + + +var name: String: + set(value): + name = value + get: + return name + + +var shortcut: GdUnitShortcut.ShortCut: + set(value): + shortcut = value + get: + return shortcut + + +var is_enabled: Callable: + set(value): + is_enabled = value + get: + return is_enabled + + +var runnable: Callable: + set(value): + runnable = value + get: + return runnable diff --git a/addons/gdUnit4/src/core/command/GdUnitCommandHandler.gd b/addons/gdUnit4/src/core/command/GdUnitCommandHandler.gd new file mode 100644 index 0000000..4ee99cf --- /dev/null +++ b/addons/gdUnit4/src/core/command/GdUnitCommandHandler.gd @@ -0,0 +1,364 @@ +class_name GdUnitCommandHandler +extends Object + +signal gdunit_runner_start() +signal gdunit_runner_stop(client_id :int) + + +const GdUnitTools := preload("res://addons/gdUnit4/src/core/GdUnitTools.gd") + +const CMD_RUN_OVERALL = "Debug Overall TestSuites" +const CMD_RUN_TESTCASE = "Run TestCases" +const CMD_RUN_TESTCASE_DEBUG = "Run TestCases (Debug)" +const CMD_RUN_TESTSUITE = "Run TestSuites" +const CMD_RUN_TESTSUITE_DEBUG = "Run TestSuites (Debug)" +const CMD_RERUN_TESTS = "ReRun Tests" +const CMD_RERUN_TESTS_DEBUG = "ReRun Tests (Debug)" +const CMD_STOP_TEST_RUN = "Stop Test Run" +const CMD_CREATE_TESTCASE = "Create TestCase" + +const SETTINGS_SHORTCUT_MAPPING := { + "N/A" : GdUnitShortcut.ShortCut.NONE, + GdUnitSettings.SHORTCUT_INSPECTOR_RERUN_TEST : GdUnitShortcut.ShortCut.RERUN_TESTS, + GdUnitSettings.SHORTCUT_INSPECTOR_RERUN_TEST_DEBUG : GdUnitShortcut.ShortCut.RERUN_TESTS_DEBUG, + GdUnitSettings.SHORTCUT_INSPECTOR_RUN_TEST_OVERALL : GdUnitShortcut.ShortCut.RUN_TESTS_OVERALL, + GdUnitSettings.SHORTCUT_INSPECTOR_RUN_TEST_STOP : GdUnitShortcut.ShortCut.STOP_TEST_RUN, + GdUnitSettings.SHORTCUT_EDITOR_RUN_TEST : GdUnitShortcut.ShortCut.RUN_TESTCASE, + GdUnitSettings.SHORTCUT_EDITOR_RUN_TEST_DEBUG : GdUnitShortcut.ShortCut.RUN_TESTCASE_DEBUG, + GdUnitSettings.SHORTCUT_EDITOR_CREATE_TEST : GdUnitShortcut.ShortCut.CREATE_TEST, + GdUnitSettings.SHORTCUT_FILESYSTEM_RUN_TEST : GdUnitShortcut.ShortCut.RUN_TESTCASE, + GdUnitSettings.SHORTCUT_FILESYSTEM_RUN_TEST_DEBUG : GdUnitShortcut.ShortCut.RUN_TESTCASE_DEBUG +} + +# the current test runner config +var _runner_config := GdUnitRunnerConfig.new() + +# holds the current connected gdUnit runner client id +var _client_id :int +# if no debug mode we have an process id +var _current_runner_process_id :int = 0 +# hold is current an test running +var _is_running :bool = false +# holds if the current running tests started in debug mode +var _running_debug_mode :bool + +var _commands := {} +var _shortcuts := {} + + +static func instance() -> GdUnitCommandHandler: + return GdUnitSingleton.instance("GdUnitCommandHandler", func() -> GdUnitCommandHandler: return GdUnitCommandHandler.new()) + + +func _init() -> void: + assert_shortcut_mappings(SETTINGS_SHORTCUT_MAPPING) + + GdUnitSignals.instance().gdunit_event.connect(_on_event) + GdUnitSignals.instance().gdunit_client_connected.connect(_on_client_connected) + GdUnitSignals.instance().gdunit_client_disconnected.connect(_on_client_disconnected) + GdUnitSignals.instance().gdunit_settings_changed.connect(_on_settings_changed) + # preload previous test execution + _runner_config.load_config() + + init_shortcuts() + var is_running := func(_script :Script) -> bool: return _is_running + var is_not_running := func(_script :Script) -> bool: return !_is_running + register_command(GdUnitCommand.new(CMD_RUN_OVERALL, is_not_running, cmd_run_overall.bind(true), GdUnitShortcut.ShortCut.RUN_TESTS_OVERALL)) + register_command(GdUnitCommand.new(CMD_RUN_TESTCASE, is_not_running, cmd_editor_run_test.bind(false), GdUnitShortcut.ShortCut.RUN_TESTCASE)) + register_command(GdUnitCommand.new(CMD_RUN_TESTCASE_DEBUG, is_not_running, cmd_editor_run_test.bind(true), GdUnitShortcut.ShortCut.RUN_TESTCASE_DEBUG)) + register_command(GdUnitCommand.new(CMD_RUN_TESTSUITE, is_not_running, cmd_run_test_suites.bind(false))) + register_command(GdUnitCommand.new(CMD_RUN_TESTSUITE_DEBUG, is_not_running, cmd_run_test_suites.bind(true))) + register_command(GdUnitCommand.new(CMD_RERUN_TESTS, is_not_running, cmd_run.bind(false), GdUnitShortcut.ShortCut.RERUN_TESTS)) + register_command(GdUnitCommand.new(CMD_RERUN_TESTS_DEBUG, is_not_running, cmd_run.bind(true), GdUnitShortcut.ShortCut.RERUN_TESTS_DEBUG)) + register_command(GdUnitCommand.new(CMD_CREATE_TESTCASE, is_not_running, cmd_create_test, GdUnitShortcut.ShortCut.CREATE_TEST)) + register_command(GdUnitCommand.new(CMD_STOP_TEST_RUN, is_running, cmd_stop.bind(_client_id), GdUnitShortcut.ShortCut.STOP_TEST_RUN)) + + + # do not reschedule inside of test run (called on GdUnitCommandHandlerTest) + if Engine.has_meta("GdUnitRunner"): + return + # schedule discover tests if enabled + if GdUnitSettings.is_test_discover_enabled(): + var timer :SceneTreeTimer = Engine.get_main_loop().create_timer(5) + timer.timeout.connect(cmd_discover_tests) + + +func _notification(what :int) -> void: + if what == NOTIFICATION_PREDELETE: + _commands.clear() + _shortcuts.clear() + + +func _do_process() -> void: + check_test_run_stopped_manually() + + +# is checking if the user has press the editor stop scene +func check_test_run_stopped_manually() -> void: + if is_test_running_but_stop_pressed(): + if GdUnitSettings.is_verbose_assert_warnings(): + push_warning("Test Runner scene was stopped manually, force stopping the current test run!") + cmd_stop(_client_id) + + +func is_test_running_but_stop_pressed() -> bool: + return _running_debug_mode and _is_running and not EditorInterface.is_playing_scene() + + +func assert_shortcut_mappings(mappings :Dictionary) -> void: + for shortcut :int in GdUnitShortcut.ShortCut.values(): + assert(mappings.values().has(shortcut), "missing settings mapping for shortcut '%s'!" % GdUnitShortcut.ShortCut.keys()[shortcut]) + + +func init_shortcuts() -> void: + for shortcut :int in GdUnitShortcut.ShortCut.values(): + if shortcut == GdUnitShortcut.ShortCut.NONE: + continue + var property_name :String = SETTINGS_SHORTCUT_MAPPING.find_key(shortcut) + var property := GdUnitSettings.get_property(property_name) + var keys := GdUnitShortcut.default_keys(shortcut) + if property != null: + keys = property.value() + var inputEvent := create_shortcut_input_even(keys) + register_shortcut(shortcut, inputEvent) + + +func create_shortcut_input_even(key_codes : PackedInt32Array) -> InputEventKey: + var inputEvent :InputEventKey = InputEventKey.new() + inputEvent.pressed = true + for key_code in key_codes: + match key_code: + KEY_ALT: + inputEvent.alt_pressed = true + KEY_SHIFT: + inputEvent.shift_pressed = true + KEY_CTRL: + inputEvent.ctrl_pressed = true + _: + inputEvent.keycode = key_code as Key + inputEvent.physical_keycode = key_code as Key + return inputEvent + + +func register_shortcut(p_shortcut :GdUnitShortcut.ShortCut, p_input_event :InputEvent) -> void: + GdUnitTools.prints_verbose("register shortcut: '%s' to '%s'" % [GdUnitShortcut.ShortCut.keys()[p_shortcut], p_input_event.as_text()]) + var shortcut := Shortcut.new() + shortcut.set_events([p_input_event]) + var command_name :String = get_shortcut_command(p_shortcut) + _shortcuts[p_shortcut] = GdUnitShortcutAction.new(p_shortcut, shortcut, command_name) + + +func get_shortcut(shortcut_type :GdUnitShortcut.ShortCut) -> Shortcut: + return get_shortcut_action(shortcut_type).shortcut + + +func get_shortcut_action(shortcut_type :GdUnitShortcut.ShortCut) -> GdUnitShortcutAction: + return _shortcuts.get(shortcut_type) + + +func get_shortcut_command(p_shortcut :GdUnitShortcut.ShortCut) -> String: + return GdUnitShortcut.CommandMapping.get(p_shortcut, "unknown command") + + +func register_command(p_command :GdUnitCommand) -> void: + _commands[p_command.name] = p_command + + +func command(cmd_name :String) -> GdUnitCommand: + return _commands.get(cmd_name) + + +func cmd_run_test_suites(test_suite_paths :PackedStringArray, debug :bool, rerun := false) -> void: + # create new runner runner_config for fresh run otherwise use saved one + if not rerun: + var result := _runner_config.clear()\ + .add_test_suites(test_suite_paths)\ + .save_config() + if result.is_error(): + push_error(result.error_message()) + return + cmd_run(debug) + + +func cmd_run_test_case(test_suite_resource_path :String, test_case :String, test_param_index :int, debug :bool, rerun := false) -> void: + # create new runner config for fresh run otherwise use saved one + if not rerun: + var result := _runner_config.clear()\ + .add_test_case(test_suite_resource_path, test_case, test_param_index)\ + .save_config() + if result.is_error(): + push_error(result.error_message()) + return + cmd_run(debug) + + +func cmd_run_overall(debug :bool) -> void: + var test_suite_paths :PackedStringArray = GdUnitCommandHandler.scan_test_directorys("res://" , GdUnitSettings.test_root_folder(), []) + var result := _runner_config.clear()\ + .add_test_suites(test_suite_paths)\ + .save_config() + if result.is_error(): + push_error(result.error_message()) + return + cmd_run(debug) + + +func cmd_run(debug :bool) -> void: + # don't start is already running + if _is_running: + return + # save current selected excution config + var result := _runner_config.set_server_port(Engine.get_meta("gdunit_server_port")).save_config() + if result.is_error(): + push_error(result.error_message()) + return + # before start we have to save all changes + ScriptEditorControls.save_all_open_script() + gdunit_runner_start.emit() + _current_runner_process_id = -1 + _running_debug_mode = debug + if debug: + run_debug_mode() + else: + run_release_mode() + + +func cmd_stop(client_id :int) -> void: + # don't stop if is already stopped + if not _is_running: + return + _is_running = false + gdunit_runner_stop.emit(client_id) + if _running_debug_mode: + EditorInterface.stop_playing_scene() + else: if _current_runner_process_id > 0: + var result := OS.kill(_current_runner_process_id) + if result != OK: + push_error("ERROR checked stopping GdUnit Test Runner. error code: %s" % result) + _current_runner_process_id = -1 + + +func cmd_editor_run_test(debug :bool) -> void: + var cursor_line := active_base_editor().get_caret_line() + #run test case? + var regex := RegEx.new() + regex.compile("(^func[ ,\t])(test_[a-zA-Z0-9_]*)") + var result := regex.search(active_base_editor().get_line(cursor_line)) + if result: + var func_name := result.get_string(2).strip_edges() + prints("Run test:", func_name, "debug", debug) + if func_name.begins_with("test_"): + cmd_run_test_case(active_script().resource_path, func_name, -1, debug) + return + # otherwise run the full test suite + var selected_test_suites := [active_script().resource_path] + cmd_run_test_suites(selected_test_suites, debug) + + +func cmd_create_test() -> void: + var cursor_line := active_base_editor().get_caret_line() + var result := GdUnitTestSuiteBuilder.create(active_script(), cursor_line) + if result.is_error(): + # show error dialog + push_error("Failed to create test case: %s" % result.error_message()) + return + var info := result.value() as Dictionary + ScriptEditorControls.edit_script(info.get("path"), info.get("line")) + + +func cmd_discover_tests() -> void: + await GdUnitTestDiscoverer.run() + + +static func scan_test_directorys(base_directory :String, test_directory: String, test_suite_paths :PackedStringArray) -> PackedStringArray: + print_verbose("Scannning for test directory '%s' at %s" % [test_directory, base_directory]) + for directory in DirAccess.get_directories_at(base_directory): + if directory.begins_with("."): + continue + var current_directory := normalize_path(base_directory + "/" + directory) + if GdUnitTestSuiteScanner.exclude_scan_directories.has(current_directory): + continue + if match_test_directory(directory, test_directory): + test_suite_paths.append(current_directory) + else: + scan_test_directorys(current_directory, test_directory, test_suite_paths) + return test_suite_paths + + +static func normalize_path(path :String) -> String: + return path.replace("///", "//") + + +static func match_test_directory(directory :String, test_directory: String) -> bool: + return directory == test_directory or test_directory.is_empty() or test_directory == "/" or test_directory == "res://" + + +func run_debug_mode() -> void: + EditorInterface.play_custom_scene("res://addons/gdUnit4/src/core/GdUnitRunner.tscn") + _is_running = true + + +func run_release_mode() -> void: + var arguments := Array() + if OS.is_stdout_verbose(): + arguments.append("--verbose") + arguments.append("--no-window") + arguments.append("--path") + arguments.append(ProjectSettings.globalize_path("res://")) + arguments.append("res://addons/gdUnit4/src/core/GdUnitRunner.tscn") + _current_runner_process_id = OS.create_process(OS.get_executable_path(), arguments, false); + _is_running = true + + +func active_base_editor() -> TextEdit: + return EditorInterface.get_script_editor().get_current_editor().get_base_editor() + + +func active_script() -> Script: + return EditorInterface.get_script_editor().get_current_script() + + + +################################################################################ +# signals handles +################################################################################ +func _on_event(event :GdUnitEvent) -> void: + if event.type() == GdUnitEvent.STOP: + cmd_stop(_client_id) + + +func _on_stop_pressed() -> void: + cmd_stop(_client_id) + + +func _on_run_pressed(debug := false) -> void: + cmd_run(debug) + + +func _on_run_overall_pressed(_debug := false) -> void: + cmd_run_overall(true) + + +func _on_settings_changed(property :GdUnitProperty) -> void: + if SETTINGS_SHORTCUT_MAPPING.has(property.name()): + var shortcut :GdUnitShortcut.ShortCut = SETTINGS_SHORTCUT_MAPPING.get(property.name()) + var input_event := create_shortcut_input_even(property.value()) + prints("Shortcut changed: '%s' to '%s'" % [GdUnitShortcut.ShortCut.keys()[shortcut], input_event.as_text()]) + register_shortcut(shortcut, input_event) + if property.name() == GdUnitSettings.TEST_DISCOVER_ENABLED: + var timer :SceneTreeTimer = Engine.get_main_loop().create_timer(3) + timer.timeout.connect(cmd_discover_tests) + + +################################################################################ +# Network stuff +################################################################################ +func _on_client_connected(client_id :int) -> void: + _client_id = client_id + + +func _on_client_disconnected(client_id :int) -> void: + # only stops is not in debug mode running and the current client + if not _running_debug_mode and _client_id == client_id: + cmd_stop(client_id) + _client_id = -1 diff --git a/addons/gdUnit4/src/core/command/GdUnitShortcut.gd b/addons/gdUnit4/src/core/command/GdUnitShortcut.gd new file mode 100644 index 0000000..bf8ac83 --- /dev/null +++ b/addons/gdUnit4/src/core/command/GdUnitShortcut.gd @@ -0,0 +1,58 @@ +class_name GdUnitShortcut +extends RefCounted + + +enum ShortCut { + NONE, + RUN_TESTS_OVERALL, + RUN_TESTCASE, + RUN_TESTCASE_DEBUG, + RERUN_TESTS, + RERUN_TESTS_DEBUG, + STOP_TEST_RUN, + CREATE_TEST, +} + + +const CommandMapping = { + ShortCut.RUN_TESTS_OVERALL: GdUnitCommandHandler.CMD_RUN_OVERALL, + ShortCut.RUN_TESTCASE: GdUnitCommandHandler.CMD_RUN_TESTCASE, + ShortCut.RUN_TESTCASE_DEBUG: GdUnitCommandHandler.CMD_RUN_TESTCASE_DEBUG, + ShortCut.RERUN_TESTS: GdUnitCommandHandler.CMD_RERUN_TESTS, + ShortCut.RERUN_TESTS_DEBUG: GdUnitCommandHandler.CMD_RERUN_TESTS_DEBUG, + ShortCut.STOP_TEST_RUN: GdUnitCommandHandler.CMD_STOP_TEST_RUN, + ShortCut.CREATE_TEST: GdUnitCommandHandler.CMD_CREATE_TESTCASE, +} + + +const DEFAULTS_MACOS := { + ShortCut.NONE : [], + ShortCut.RUN_TESTCASE : [Key.KEY_META, Key.KEY_ALT, Key.KEY_F5], + ShortCut.RUN_TESTCASE_DEBUG : [Key.KEY_META, Key.KEY_ALT, Key.KEY_F6], + ShortCut.RUN_TESTS_OVERALL : [Key.KEY_META, Key.KEY_F7], + ShortCut.STOP_TEST_RUN : [Key.KEY_META, Key.KEY_F8], + ShortCut.RERUN_TESTS : [Key.KEY_META, Key.KEY_F5], + ShortCut.RERUN_TESTS_DEBUG : [Key.KEY_META, Key.KEY_F6], + ShortCut.CREATE_TEST : [Key.KEY_META, Key.KEY_ALT, Key.KEY_F10], +} + +const DEFAULTS_WINDOWS := { + ShortCut.NONE : [], + ShortCut.RUN_TESTCASE : [Key.KEY_CTRL, Key.KEY_ALT, Key.KEY_F5], + ShortCut.RUN_TESTCASE_DEBUG : [Key.KEY_CTRL,Key.KEY_ALT, Key.KEY_F6], + ShortCut.RUN_TESTS_OVERALL : [Key.KEY_CTRL, Key.KEY_F7], + ShortCut.STOP_TEST_RUN : [Key.KEY_CTRL, Key.KEY_F8], + ShortCut.RERUN_TESTS : [Key.KEY_CTRL, Key.KEY_F5], + ShortCut.RERUN_TESTS_DEBUG : [Key.KEY_CTRL, Key.KEY_F6], + ShortCut.CREATE_TEST : [Key.KEY_CTRL, Key.KEY_ALT, Key.KEY_F10], +} + + +static func default_keys(shortcut :ShortCut) -> PackedInt32Array: + match OS.get_name().to_lower(): + 'windows': + return DEFAULTS_WINDOWS[shortcut] + 'macos': + return DEFAULTS_MACOS[shortcut] + _: + return DEFAULTS_WINDOWS[shortcut] diff --git a/addons/gdUnit4/src/core/command/GdUnitShortcutAction.gd b/addons/gdUnit4/src/core/command/GdUnitShortcutAction.gd new file mode 100644 index 0000000..94b082e --- /dev/null +++ b/addons/gdUnit4/src/core/command/GdUnitShortcutAction.gd @@ -0,0 +1,36 @@ +class_name GdUnitShortcutAction +extends RefCounted + + +func _init(p_type :GdUnitShortcut.ShortCut, p_shortcut :Shortcut, p_command :String) -> void: + assert(p_type != null, "missing parameter 'type'") + assert(p_shortcut != null, "missing parameter 'shortcut'") + assert(p_command != null, "missing parameter 'command'") + self.type = p_type + self.shortcut = p_shortcut + self.command = p_command + + +var type: GdUnitShortcut.ShortCut: + set(value): + type = value + get: + return type + + +var shortcut: Shortcut: + set(value): + shortcut = value + get: + return shortcut + + +var command: String: + set(value): + command = value + get: + return command + + +func _to_string() -> String: + return "GdUnitShortcutAction: %s (%s) -> %s" % [GdUnitShortcut.ShortCut.keys()[type], shortcut.get_as_text(), command] diff --git a/addons/gdUnit4/src/core/discovery/GdUnitTestDiscoverGuard.gd b/addons/gdUnit4/src/core/discovery/GdUnitTestDiscoverGuard.gd new file mode 100644 index 0000000..fa9a65c --- /dev/null +++ b/addons/gdUnit4/src/core/discovery/GdUnitTestDiscoverGuard.gd @@ -0,0 +1,86 @@ +extends RefCounted + +# contains all tracked test suites where discovered since editor start +# key : test suite resource_path +# value: the list of discovered test case names +var _discover_cache := {} + + +func _init() -> void: + # Register for discovery events to sync the cache + GdUnitSignals.instance().gdunit_add_test_suite.connect(sync_cache) + + +func sync_cache(dto :GdUnitTestSuiteDto) -> void: + var resource_path := dto.path() + var discovered_test_cases :Array[String] = [] + for test_case in dto.test_cases(): + discovered_test_cases.append(test_case.name()) + _discover_cache[resource_path] = discovered_test_cases + + +func discover(script: Script) -> void: + if GdObjects.is_test_suite(script): + # a new test suite is discovered + if not _discover_cache.has(script.resource_path): + var scanner := GdUnitTestSuiteScanner.new() + var test_suite := scanner._parse_test_suite(script) + var dto :GdUnitTestSuiteDto = GdUnitTestSuiteDto.of(test_suite) + GdUnitSignals.instance().gdunit_event.emit(GdUnitEventTestDiscoverTestSuiteAdded.new(script.resource_path, test_suite.get_name(), dto)) + sync_cache(dto) + test_suite.queue_free() + return + + var tests_added :Array[String] = [] + var tests_removed := PackedStringArray() + var script_test_cases := extract_test_functions(script) + var discovered_test_cases :Array[String] = _discover_cache.get(script.resource_path, [] as Array[String]) + + # first detect removed/renamed tests + for test_case in discovered_test_cases: + if not script_test_cases.has(test_case): + tests_removed.append(test_case) + # second detect new added tests + for test_case in script_test_cases: + if not discovered_test_cases.has(test_case): + tests_added.append(test_case) + + # finally notify changes to the inspector + if not tests_removed.is_empty() or not tests_added.is_empty(): + var scanner := GdUnitTestSuiteScanner.new() + var test_suite := scanner._parse_test_suite(script) + var suite_name := test_suite.get_name() + + # emit deleted tests + for test_name in tests_removed: + discovered_test_cases.erase(test_name) + GdUnitSignals.instance().gdunit_event.emit(GdUnitEventTestDiscoverTestRemoved.new(script.resource_path, suite_name, test_name)) + + # emit new discovered tests + for test_name in tests_added: + discovered_test_cases.append(test_name) + var test_case := test_suite.find_child(test_name, false, false) + var dto := GdUnitTestCaseDto.new() + dto = dto.deserialize(dto.serialize(test_case)) + GdUnitSignals.instance().gdunit_event.emit(GdUnitEventTestDiscoverTestAdded.new(script.resource_path, suite_name, dto)) + # update the cache + _discover_cache[script.resource_path] = discovered_test_cases + test_suite.queue_free() + + +func extract_test_functions(script :Script) -> PackedStringArray: + return script.get_script_method_list()\ + .map(map_func_names)\ + .filter(filter_test_cases) + + +func map_func_names(method_info :Dictionary) -> String: + return method_info["name"] + + +func filter_test_cases(value :String) -> bool: + return value.begins_with("test_") + + +func filter_by_test_cases(method_info :Dictionary, value :String) -> bool: + return method_info["name"] == value diff --git a/addons/gdUnit4/src/core/discovery/GdUnitTestDiscoverer.gd b/addons/gdUnit4/src/core/discovery/GdUnitTestDiscoverer.gd new file mode 100644 index 0000000..1e92a4d --- /dev/null +++ b/addons/gdUnit4/src/core/discovery/GdUnitTestDiscoverer.gd @@ -0,0 +1,25 @@ +class_name GdUnitTestDiscoverer +extends RefCounted + + +static func run() -> void: + prints("Running test discovery ..") + GdUnitSignals.instance().gdunit_event.emit(GdUnitEventTestDiscoverStart.new()) + await Engine.get_main_loop().create_timer(.5).timeout + + var test_suite_directories :PackedStringArray = GdUnitCommandHandler.scan_test_directorys("res://" , GdUnitSettings.test_root_folder(), []) + var scanner := GdUnitTestSuiteScanner.new() + var _test_suites_to_process :Array[Node] = [] + for test_suite_dir in test_suite_directories: + _test_suites_to_process.append_array(scanner.scan(test_suite_dir)) + + var test_case_count :int = _test_suites_to_process.reduce(func (accum :int, test_suite :Node) -> int: + return accum + test_suite.get_child_count(), 0) + + for test_suite in _test_suites_to_process: + var ts_dto := GdUnitTestSuiteDto.of(test_suite) + GdUnitSignals.instance().gdunit_add_test_suite.emit(ts_dto) + + prints("%d test suites discovered." % _test_suites_to_process.size()) + GdUnitSignals.instance().gdunit_event.emit(GdUnitEventTestDiscoverEnd.new(_test_suites_to_process.size(), test_case_count)) + await Engine.get_main_loop().process_frame diff --git a/addons/gdUnit4/src/core/event/GdUnitEvent.gd b/addons/gdUnit4/src/core/event/GdUnitEvent.gd new file mode 100644 index 0000000..0f8ad7d --- /dev/null +++ b/addons/gdUnit4/src/core/event/GdUnitEvent.gd @@ -0,0 +1,190 @@ +class_name GdUnitEvent +extends Resource + +const WARNINGS = "warnings" +const FAILED = "failed" +const ERRORS = "errors" +const SKIPPED = "skipped" +const ELAPSED_TIME = "elapsed_time" +const ORPHAN_NODES = "orphan_nodes" +const ERROR_COUNT = "error_count" +const FAILED_COUNT = "failed_count" +const SKIPPED_COUNT = "skipped_count" + +enum { + INIT, + STOP, + TESTSUITE_BEFORE, + TESTSUITE_AFTER, + TESTCASE_BEFORE, + TESTCASE_AFTER, + DISCOVER_START, + DISCOVER_END, + DISCOVER_SUITE_ADDED, + DISCOVER_TEST_ADDED, + DISCOVER_TEST_REMOVED, +} + +var _event_type :int +var _resource_path :String +var _suite_name :String +var _test_name :String +var _total_count :int = 0 +var _statistics := Dictionary() +var _reports :Array[GdUnitReport] = [] + + +func suite_before(p_resource_path :String, p_suite_name :String, p_total_count :int) -> GdUnitEvent: + _event_type = TESTSUITE_BEFORE + _resource_path = p_resource_path + _suite_name = p_suite_name + _test_name = "before" + _total_count = p_total_count + return self + + +func suite_after(p_resource_path :String, p_suite_name :String, p_statistics :Dictionary = {}, p_reports :Array[GdUnitReport] = []) -> GdUnitEvent: + _event_type = TESTSUITE_AFTER + _resource_path = p_resource_path + _suite_name = p_suite_name + _test_name = "after" + _statistics = p_statistics + _reports = p_reports + return self + + +func test_before(p_resource_path :String, p_suite_name :String, p_test_name :String) -> GdUnitEvent: + _event_type = TESTCASE_BEFORE + _resource_path = p_resource_path + _suite_name = p_suite_name + _test_name = p_test_name + return self + + +func test_after(p_resource_path :String, p_suite_name :String, p_test_name :String, p_statistics :Dictionary = {}, p_reports :Array[GdUnitReport] = []) -> GdUnitEvent: + _event_type = TESTCASE_AFTER + _resource_path = p_resource_path + _suite_name = p_suite_name + _test_name = p_test_name + _statistics = p_statistics + _reports = p_reports + return self + + +func type() -> int: + return _event_type + + +func suite_name() -> String: + return _suite_name + + +func test_name() -> String: + return _test_name + + +func elapsed_time() -> int: + return _statistics.get(ELAPSED_TIME, 0) + + +func orphan_nodes() -> int: + return _statistics.get(ORPHAN_NODES, 0) + + +func statistic(p_type :String) -> int: + return _statistics.get(p_type, 0) + + +func total_count() -> int: + return _total_count + + +func success_count() -> int: + return total_count() - error_count() - failed_count() - skipped_count() + + +func error_count() -> int: + return _statistics.get(ERROR_COUNT, 0) + + +func failed_count() -> int: + return _statistics.get(FAILED_COUNT, 0) + + +func skipped_count() -> int: + return _statistics.get(SKIPPED_COUNT, 0) + + +func resource_path() -> String: + return _resource_path + + +func is_success() -> bool: + return not is_warning() and not is_failed() and not is_error() and not is_skipped() + + +func is_warning() -> bool: + return _statistics.get(WARNINGS, false) + + +func is_failed() -> bool: + return _statistics.get(FAILED, false) + + +func is_error() -> bool: + return _statistics.get(ERRORS, false) + + +func is_skipped() -> bool: + return _statistics.get(SKIPPED, false) + + +func reports() -> Array[GdUnitReport]: + return _reports + + +func _to_string() -> String: + return "Event: %s %s:%s, %s, %s" % [_event_type, _suite_name, _test_name, _statistics, _reports] + + +func serialize() -> Dictionary: + var serialized := { + "type" : _event_type, + "resource_path": _resource_path, + "suite_name" : _suite_name, + "test_name" : _test_name, + "total_count" : _total_count, + "statistics" : _statistics + } + serialized["reports"] = _serialize_TestReports() + return serialized + + +func deserialize(serialized :Dictionary) -> GdUnitEvent: + _event_type = serialized.get("type", null) + _resource_path = serialized.get("resource_path", null) + _suite_name = serialized.get("suite_name", null) + _test_name = serialized.get("test_name", "unknown") + _total_count = serialized.get("total_count", 0) + _statistics = serialized.get("statistics", Dictionary()) + if serialized.has("reports"): + # needs this workaround to copy typed values in the array + var reports_to_deserializ :Array[Dictionary] = [] + reports_to_deserializ.append_array(serialized.get("reports")) + _reports = _deserialize_reports(reports_to_deserializ) + return self + + +func _serialize_TestReports() -> Array[Dictionary]: + var serialized_reports :Array[Dictionary] = [] + for report in _reports: + serialized_reports.append(report.serialize()) + return serialized_reports + + +func _deserialize_reports(p_reports :Array[Dictionary]) -> Array[GdUnitReport]: + var deserialized_reports :Array[GdUnitReport] = [] + for report in p_reports: + var test_report := GdUnitReport.new().deserialize(report) + deserialized_reports.append(test_report) + return deserialized_reports diff --git a/addons/gdUnit4/src/core/event/GdUnitEventInit.gd b/addons/gdUnit4/src/core/event/GdUnitEventInit.gd new file mode 100644 index 0000000..8bb1d49 --- /dev/null +++ b/addons/gdUnit4/src/core/event/GdUnitEventInit.gd @@ -0,0 +1,19 @@ +class_name GdUnitInit +extends GdUnitEvent + + +var _total_testsuites :int + + +func _init(p_total_testsuites :int, p_total_count :int) -> void: + _event_type = INIT + _total_testsuites = p_total_testsuites + _total_count = p_total_count + + +func total_test_suites() -> int: + return _total_testsuites + + +func total_tests() -> int: + return _total_count diff --git a/addons/gdUnit4/src/core/event/GdUnitEventStop.gd b/addons/gdUnit4/src/core/event/GdUnitEventStop.gd new file mode 100644 index 0000000..d7a3c11 --- /dev/null +++ b/addons/gdUnit4/src/core/event/GdUnitEventStop.gd @@ -0,0 +1,6 @@ +class_name GdUnitStop +extends GdUnitEvent + + +func _init() -> void: + _event_type = STOP diff --git a/addons/gdUnit4/src/core/event/GdUnitEventTestDiscoverEnd.gd b/addons/gdUnit4/src/core/event/GdUnitEventTestDiscoverEnd.gd new file mode 100644 index 0000000..c6194ef --- /dev/null +++ b/addons/gdUnit4/src/core/event/GdUnitEventTestDiscoverEnd.gd @@ -0,0 +1,19 @@ +class_name GdUnitEventTestDiscoverEnd +extends GdUnitEvent + + +var _total_testsuites: int + + +func _init(testsuite_count: int, test_count: int) -> void: + _event_type = DISCOVER_END + _total_testsuites = testsuite_count + _total_count = test_count + + +func total_test_suites() -> int: + return _total_testsuites + + +func total_tests() -> int: + return _total_count diff --git a/addons/gdUnit4/src/core/event/GdUnitEventTestDiscoverStart.gd b/addons/gdUnit4/src/core/event/GdUnitEventTestDiscoverStart.gd new file mode 100644 index 0000000..c7dd36f --- /dev/null +++ b/addons/gdUnit4/src/core/event/GdUnitEventTestDiscoverStart.gd @@ -0,0 +1,6 @@ +class_name GdUnitEventTestDiscoverStart +extends GdUnitEvent + + +func _init() -> void: + _event_type = DISCOVER_START diff --git a/addons/gdUnit4/src/core/event/GdUnitEventTestDiscoverTestAdded.gd b/addons/gdUnit4/src/core/event/GdUnitEventTestDiscoverTestAdded.gd new file mode 100644 index 0000000..c5f4459 --- /dev/null +++ b/addons/gdUnit4/src/core/event/GdUnitEventTestDiscoverTestAdded.gd @@ -0,0 +1,17 @@ +class_name GdUnitEventTestDiscoverTestAdded +extends GdUnitEvent + + +var _test_case_dto: GdUnitTestCaseDto + + +func _init(arg_resource_path: String, arg_suite_name: String, arg_test_case_dto: GdUnitTestCaseDto) -> void: + _event_type = DISCOVER_TEST_ADDED + _resource_path = arg_resource_path + _suite_name = arg_suite_name + _test_name = arg_test_case_dto.name() + _test_case_dto = arg_test_case_dto + + +func test_case_dto() -> GdUnitTestCaseDto: + return _test_case_dto diff --git a/addons/gdUnit4/src/core/event/GdUnitEventTestDiscoverTestRemoved.gd b/addons/gdUnit4/src/core/event/GdUnitEventTestDiscoverTestRemoved.gd new file mode 100644 index 0000000..77617d0 --- /dev/null +++ b/addons/gdUnit4/src/core/event/GdUnitEventTestDiscoverTestRemoved.gd @@ -0,0 +1,9 @@ +class_name GdUnitEventTestDiscoverTestRemoved +extends GdUnitEvent + + +func _init(arg_resource_path: String, arg_suite_name: String, arg_test_name: String) -> void: + _event_type = DISCOVER_TEST_REMOVED + _resource_path = arg_resource_path + _suite_name = arg_suite_name + _test_name = arg_test_name diff --git a/addons/gdUnit4/src/core/event/GdUnitEventTestDiscoverTestSuiteAdded.gd b/addons/gdUnit4/src/core/event/GdUnitEventTestDiscoverTestSuiteAdded.gd new file mode 100644 index 0000000..b0e23f5 --- /dev/null +++ b/addons/gdUnit4/src/core/event/GdUnitEventTestDiscoverTestSuiteAdded.gd @@ -0,0 +1,16 @@ +class_name GdUnitEventTestDiscoverTestSuiteAdded +extends GdUnitEvent + + +var _dto: GdUnitTestSuiteDto + + +func _init(arg_resource_path: String, arg_suite_name: String, arg_dto: GdUnitTestSuiteDto) -> void: + _event_type = DISCOVER_SUITE_ADDED + _resource_path = arg_resource_path + _suite_name = arg_suite_name + _dto = arg_dto + + +func suite_dto() -> GdUnitTestSuiteDto: + return _dto diff --git a/addons/gdUnit4/src/core/execution/GdUnitExecutionContext.gd b/addons/gdUnit4/src/core/execution/GdUnitExecutionContext.gd new file mode 100644 index 0000000..25d69b0 --- /dev/null +++ b/addons/gdUnit4/src/core/execution/GdUnitExecutionContext.gd @@ -0,0 +1,196 @@ +## The execution context +## It contains all the necessary information about the executed stage, such as memory observers, reports, orphan monitor +class_name GdUnitExecutionContext + +var _parent_context :GdUnitExecutionContext +var _sub_context :Array[GdUnitExecutionContext] = [] +var _orphan_monitor :GdUnitOrphanNodesMonitor +var _memory_observer :GdUnitMemoryObserver +var _report_collector :GdUnitTestReportCollector +var _timer :LocalTime +var _test_case_name: StringName +var _name :String + + +var error_monitor : GodotGdErrorMonitor = null: + set (value): + error_monitor = value + get: + if _parent_context != null: + return _parent_context.error_monitor + return error_monitor + + +var test_suite : GdUnitTestSuite = null: + set (value): + test_suite = value + get: + if _parent_context != null: + return _parent_context.test_suite + return test_suite + + +var test_case : _TestCase = null: + get: + if _test_case_name.is_empty(): + return null + return test_suite.find_child(_test_case_name, false, false) + + +func _init(name :String, parent_context :GdUnitExecutionContext = null) -> void: + _name = name + _parent_context = parent_context + _timer = LocalTime.now() + _orphan_monitor = GdUnitOrphanNodesMonitor.new(name) + _orphan_monitor.start() + _memory_observer = GdUnitMemoryObserver.new() + error_monitor = GodotGdErrorMonitor.new() + _report_collector = GdUnitTestReportCollector.new(get_instance_id()) + if parent_context != null: + parent_context._sub_context.append(self) + + +func dispose() -> void: + _timer = null + _orphan_monitor = null + _report_collector = null + _memory_observer = null + _parent_context = null + test_suite = null + test_case = null + for context in _sub_context: + context.dispose() + _sub_context.clear() + + +func set_active() -> void: + test_suite.__execution_context = self + GdUnitThreadManager.get_current_context().set_execution_context(self) + + +static func of_test_suite(test_suite_ :GdUnitTestSuite) -> GdUnitExecutionContext: + assert(test_suite_, "test_suite is null") + var context := GdUnitExecutionContext.new(test_suite_.get_name()) + context.test_suite = test_suite_ + context.set_active() + return context + + +static func of_test_case(pe :GdUnitExecutionContext, test_case_name :StringName) -> GdUnitExecutionContext: + var context := GdUnitExecutionContext.new(test_case_name, pe) + context._test_case_name = test_case_name + context.set_active() + return context + + +static func of(pe :GdUnitExecutionContext) -> GdUnitExecutionContext: + var context := GdUnitExecutionContext.new(pe._test_case_name, pe) + context._test_case_name = pe._test_case_name + context.set_active() + return context + + +func test_failed() -> bool: + return has_failures() or has_errors() + + +func error_monitor_start() -> void: + error_monitor.start() + + +func error_monitor_stop() -> void: + await error_monitor.scan() + for error_report in error_monitor.to_reports(): + if error_report.is_error(): + _report_collector._reports.append(error_report) + + +func orphan_monitor_start() -> void: + _orphan_monitor.start() + + +func orphan_monitor_stop() -> void: + _orphan_monitor.stop() + + +func reports() -> Array[GdUnitReport]: + return _report_collector.reports() + + +func build_report_statistics(orphans :int, recursive := true) -> Dictionary: + return { + GdUnitEvent.ORPHAN_NODES: orphans, + GdUnitEvent.ELAPSED_TIME: _timer.elapsed_since_ms(), + GdUnitEvent.FAILED: has_failures(), + GdUnitEvent.ERRORS: has_errors(), + GdUnitEvent.WARNINGS: has_warnings(), + GdUnitEvent.SKIPPED: has_skipped(), + GdUnitEvent.FAILED_COUNT: count_failures(recursive), + GdUnitEvent.ERROR_COUNT: count_errors(recursive), + GdUnitEvent.SKIPPED_COUNT: count_skipped(recursive) + } + + +func has_failures() -> bool: + return _sub_context.any(func(c :GdUnitExecutionContext) -> bool: + return c.has_failures()) or _report_collector.has_failures() + + +func has_errors() -> bool: + return _sub_context.any(func(c :GdUnitExecutionContext) -> bool: + return c.has_errors()) or _report_collector.has_errors() + + +func has_warnings() -> bool: + return _sub_context.any(func(c :GdUnitExecutionContext) -> bool: + return c.has_warnings()) or _report_collector.has_warnings() + + +func has_skipped() -> bool: + return _sub_context.any(func(c :GdUnitExecutionContext) -> bool: + return c.has_skipped()) or _report_collector.has_skipped() + + +func count_failures(recursive :bool) -> int: + if not recursive: + return _report_collector.count_failures() + return _sub_context\ + .map(func(c :GdUnitExecutionContext) -> int: + return c.count_failures(recursive)).reduce(sum, _report_collector.count_failures()) + + +func count_errors(recursive :bool) -> int: + if not recursive: + return _report_collector.count_errors() + return _sub_context\ + .map(func(c :GdUnitExecutionContext) -> int: + return c.count_errors(recursive)).reduce(sum, _report_collector.count_errors()) + + +func count_skipped(recursive :bool) -> int: + if not recursive: + return _report_collector.count_skipped() + return _sub_context\ + .map(func(c :GdUnitExecutionContext) -> int: + return c.count_skipped(recursive)).reduce(sum, _report_collector.count_skipped()) + + +func count_orphans() -> int: + var orphans := 0 + for c in _sub_context: + orphans += c._orphan_monitor.orphan_nodes() + return _orphan_monitor.orphan_nodes() - orphans + + +func sum(accum :int, number :int) -> int: + return accum + number + + +func register_auto_free(obj :Variant) -> Variant: + return _memory_observer.register_auto_free(obj) + + +## Runs the gdunit garbage collector to free registered object +func gc() -> void: + await _memory_observer.gc() + orphan_monitor_stop() diff --git a/addons/gdUnit4/src/core/execution/GdUnitMemoryObserver.gd b/addons/gdUnit4/src/core/execution/GdUnitMemoryObserver.gd new file mode 100644 index 0000000..69b15f8 --- /dev/null +++ b/addons/gdUnit4/src/core/execution/GdUnitMemoryObserver.gd @@ -0,0 +1,131 @@ +## The memory watcher for objects that have been registered and are released when 'gc' is called. +class_name GdUnitMemoryObserver +extends RefCounted + +const TAG_OBSERVE_INSTANCE := "GdUnit4_observe_instance_" +const TAG_AUTO_FREE = "GdUnit4_marked_auto_free" +const GdUnitTools = preload("res://addons/gdUnit4/src/core/GdUnitTools.gd") + + +var _store :Array[Variant] = [] +# enable for debugging purposes +var _is_stdout_verbose := false +const _show_debug := false + + +## Registration of an instance to be released when an execution phase is completed +func register_auto_free(obj :Variant) -> Variant: + if not is_instance_valid(obj): + return obj + # do not register on GDScriptNativeClass + if typeof(obj) == TYPE_OBJECT and (obj as Object).is_class("GDScriptNativeClass") : + return obj + #if obj is GDScript or obj is ScriptExtension: + # return obj + if obj is MainLoop: + push_error("GdUnit4: Avoid to add mainloop to auto_free queue %s" % obj) + return + if _is_stdout_verbose: + print_verbose("GdUnit4:gc():register auto_free(%s)" % obj) + # only register pure objects + if obj is GdUnitSceneRunner: + _store.push_back(obj) + else: + _store.append(obj) + _tag_object(obj) + return obj + + +# to disable instance guard when run into issues. +static func _is_instance_guard_enabled() -> bool: + return false + + +static func debug_observe(name :String, obj :Object, indent :int = 0) -> void: + if not _show_debug: + return + var script :GDScript= obj if obj is GDScript else obj.get_script() + if script: + var base_script :GDScript = script.get_base_script() + prints("".lpad(indent, " "), name, obj, obj.get_class(), "reference_count:", obj.get_reference_count() if obj is RefCounted else 0, "script:", script, script.resource_path) + if base_script: + debug_observe("+", base_script, indent+1) + else: + prints(name, obj, obj.get_class(), obj.get_name()) + + +static func guard_instance(obj :Object) -> Object: + if not _is_instance_guard_enabled(): + return + var tag := TAG_OBSERVE_INSTANCE + str(abs(obj.get_instance_id())) + if Engine.has_meta(tag): + return + debug_observe("Gard on instance", obj) + Engine.set_meta(tag, obj) + return obj + + +static func unguard_instance(obj :Object, verbose := true) -> void: + if not _is_instance_guard_enabled(): + return + var tag := TAG_OBSERVE_INSTANCE + str(abs(obj.get_instance_id())) + if verbose: + debug_observe("unguard instance", obj) + if Engine.has_meta(tag): + Engine.remove_meta(tag) + + +static func gc_guarded_instance(name :String, instance :Object) -> void: + if not _is_instance_guard_enabled(): + return + await Engine.get_main_loop().process_frame + unguard_instance(instance, false) + if is_instance_valid(instance) and instance is RefCounted: + # finally do this very hacky stuff + # we need to manually unreferece to avoid leaked scripts + # but still leaked GDScriptFunctionState exists + #var script :GDScript = instance.get_script() + #if script: + # var base_script :GDScript = script.get_base_script() + # if base_script: + # base_script.unreference() + debug_observe(name, instance) + instance.unreference() + await Engine.get_main_loop().process_frame + + +static func gc_on_guarded_instances() -> void: + if not _is_instance_guard_enabled(): + return + for tag in Engine.get_meta_list(): + if tag.begins_with(TAG_OBSERVE_INSTANCE): + var instance :Object = Engine.get_meta(tag) + await gc_guarded_instance("Leaked instance detected:", instance) + await GdUnitTools.free_instance(instance, false) + + +# store the object into global store aswell to be verified by 'is_marked_auto_free' +func _tag_object(obj :Variant) -> void: + var tagged_object := Engine.get_meta(TAG_AUTO_FREE, []) as Array + tagged_object.append(obj) + Engine.set_meta(TAG_AUTO_FREE, tagged_object) + + +## Runs over all registered objects and releases them +func gc() -> void: + if _store.is_empty(): + return + # give engine time to free objects to process objects marked by queue_free() + await Engine.get_main_loop().process_frame + if _is_stdout_verbose: + print_verbose("GdUnit4:gc():running", " freeing %d objects .." % _store.size()) + var tagged_objects := Engine.get_meta(TAG_AUTO_FREE, []) as Array + while not _store.is_empty(): + var value :Variant = _store.pop_front() + tagged_objects.erase(value) + await GdUnitTools.free_instance(value, _is_stdout_verbose) + + +## Checks whether the specified object is registered for automatic release +static func is_marked_auto_free(obj :Object) -> bool: + return Engine.get_meta(TAG_AUTO_FREE, []).has(obj) diff --git a/addons/gdUnit4/src/core/execution/GdUnitTestReportCollector.gd b/addons/gdUnit4/src/core/execution/GdUnitTestReportCollector.gd new file mode 100644 index 0000000..8484f0d --- /dev/null +++ b/addons/gdUnit4/src/core/execution/GdUnitTestReportCollector.gd @@ -0,0 +1,70 @@ +# Collects all reports seperated as warnings, failures and errors +class_name GdUnitTestReportCollector +extends RefCounted + + +var _execution_context_id :int +var _reports :Array[GdUnitReport] = [] + + +static func __filter_is_error(report :GdUnitReport) -> bool: + return report.is_error() + + +static func __filter_is_failure(report :GdUnitReport) -> bool: + return report.is_failure() + + +static func __filter_is_warning(report :GdUnitReport) -> bool: + return report.is_warning() + + +static func __filter_is_skipped(report :GdUnitReport) -> bool: + return report.is_skipped() + + +func _init(execution_context_id :int) -> void: + _execution_context_id = execution_context_id + GdUnitSignals.instance().gdunit_report.connect(on_reports) + + +func count_failures() -> int: + return _reports.filter(__filter_is_failure).size() + + +func count_errors() -> int: + return _reports.filter(__filter_is_error).size() + + +func count_warnings() -> int: + return _reports.filter(__filter_is_warning).size() + + +func count_skipped() -> int: + return _reports.filter(__filter_is_skipped).size() + + +func has_failures() -> bool: + return _reports.any(__filter_is_failure) + + +func has_errors() -> bool: + return _reports.any(__filter_is_error) + + +func has_warnings() -> bool: + return _reports.any(__filter_is_warning) + + +func has_skipped() -> bool: + return _reports.any(__filter_is_skipped) + + +func reports() -> Array[GdUnitReport]: + return _reports + + +# Consumes reports emitted by tests +func on_reports(execution_context_id :int, report :GdUnitReport) -> void: + if execution_context_id == _execution_context_id: + _reports.append(report) diff --git a/addons/gdUnit4/src/core/execution/GdUnitTestSuiteExecutor.gd b/addons/gdUnit4/src/core/execution/GdUnitTestSuiteExecutor.gd new file mode 100644 index 0000000..c919469 --- /dev/null +++ b/addons/gdUnit4/src/core/execution/GdUnitTestSuiteExecutor.gd @@ -0,0 +1,26 @@ +## The executor to run a test-suite +class_name GdUnitTestSuiteExecutor + + +# preload all asserts here +@warning_ignore("unused_private_class_variable") +var _assertions := GdUnitAssertions.new() +var _executeStage :IGdUnitExecutionStage = GdUnitTestSuiteExecutionStage.new() + + +func _init(debug_mode :bool = false) -> void: + _executeStage.set_debug_mode(debug_mode) + + +func execute(test_suite :GdUnitTestSuite) -> void: + var orphan_detection_enabled := GdUnitSettings.is_verbose_orphans() + if not orphan_detection_enabled: + prints("!!! Reporting orphan nodes is disabled. Please check GdUnit settings.") + + Engine.get_main_loop().root.call_deferred("add_child", test_suite) + await Engine.get_main_loop().process_frame + await _executeStage.execute(GdUnitExecutionContext.of_test_suite(test_suite)) + + +func fail_fast(enabled :bool) -> void: + _executeStage.fail_fast(enabled) diff --git a/addons/gdUnit4/src/core/execution/stages/GdUnitTestCaseAfterStage.gd b/addons/gdUnit4/src/core/execution/stages/GdUnitTestCaseAfterStage.gd new file mode 100644 index 0000000..5069975 --- /dev/null +++ b/addons/gdUnit4/src/core/execution/stages/GdUnitTestCaseAfterStage.gd @@ -0,0 +1,100 @@ +## The test case shutdown hook implementation.[br] +## It executes the 'test_after()' block from the test-suite. +class_name GdUnitTestCaseAfterStage +extends IGdUnitExecutionStage + + +var _test_name :StringName = "" +var _call_stage :bool + + +func _init(call_stage := true) -> void: + _call_stage = call_stage + + +func _execute(context :GdUnitExecutionContext) -> void: + var test_suite := context.test_suite + if _call_stage: + @warning_ignore("redundant_await") + await test_suite.after_test() + # unreference last used assert form the test to prevent memory leaks + GdUnitThreadManager.get_current_context().set_assert(null) + await context.gc() + await context.error_monitor_stop() + if context.test_case.is_skipped(): + fire_test_skipped(context) + else: + fire_test_ended(context) + if is_instance_valid(context.test_case): + context.test_case.dispose() + + +func set_test_name(test_name :StringName) -> void: + _test_name = test_name + + +func fire_test_ended(context :GdUnitExecutionContext) -> void: + var test_suite := context.test_suite + var test_name := context._test_case_name if _test_name.is_empty() else _test_name + var reports := collect_reports(context) + var orphans := collect_orphans(context, reports) + + fire_event(GdUnitEvent.new()\ + .test_after(test_suite.get_script().resource_path, test_suite.get_name(), test_name, context.build_report_statistics(orphans), reports)) + + +func collect_orphans(context :GdUnitExecutionContext, reports :Array[GdUnitReport]) -> int: + var orphans := 0 + if not context._sub_context.is_empty(): + orphans += add_orphan_report_test(context._sub_context[0], reports) + orphans += add_orphan_report_teststage(context, reports) + return orphans + + +func collect_reports(context :GdUnitExecutionContext) -> Array[GdUnitReport]: + var reports := context.reports() + var test_case := context.test_case + if test_case.is_interupted() and not test_case.is_expect_interupted() and test_case.report() != null: + reports.push_back(test_case.report()) + # we combine the reports of test_before(), test_after() and test() to be reported by `fire_test_ended` + if not context._sub_context.is_empty(): + reports.append_array(context._sub_context[0].reports()) + # needs finally to clean the test reports to avoid counting twice + context._sub_context[0].reports().clear() + return reports + + +func add_orphan_report_test(context :GdUnitExecutionContext, reports :Array[GdUnitReport]) -> int: + var orphans := context.count_orphans() + if orphans > 0: + reports.push_front(GdUnitReport.new()\ + .create(GdUnitReport.WARN, context.test_case.line_number(), GdAssertMessages.orphan_detected_on_test(orphans))) + return orphans + + +func add_orphan_report_teststage(context :GdUnitExecutionContext, reports :Array[GdUnitReport]) -> int: + var orphans := context.count_orphans() + if orphans > 0: + reports.push_front(GdUnitReport.new()\ + .create(GdUnitReport.WARN, context.test_case.line_number(), GdAssertMessages.orphan_detected_on_test_setup(orphans))) + return orphans + + +func fire_test_skipped(context :GdUnitExecutionContext) -> void: + var test_suite := context.test_suite + var test_case := context.test_case + var test_case_name := context._test_case_name if _test_name.is_empty() else _test_name + var statistics := { + GdUnitEvent.ORPHAN_NODES: 0, + GdUnitEvent.ELAPSED_TIME: 0, + GdUnitEvent.WARNINGS: false, + GdUnitEvent.ERRORS: false, + GdUnitEvent.ERROR_COUNT: 0, + GdUnitEvent.FAILED: false, + GdUnitEvent.FAILED_COUNT: 0, + GdUnitEvent.SKIPPED: true, + GdUnitEvent.SKIPPED_COUNT: 1, + } + var report := GdUnitReport.new().create(GdUnitReport.SKIPPED, test_case.line_number(), GdAssertMessages.test_skipped(test_case.skip_info())) + fire_event(GdUnitEvent.new()\ + .test_after(test_suite.get_script().resource_path, test_suite.get_name(), test_case_name, statistics, [report])) diff --git a/addons/gdUnit4/src/core/execution/stages/GdUnitTestCaseBeforeStage.gd b/addons/gdUnit4/src/core/execution/stages/GdUnitTestCaseBeforeStage.gd new file mode 100644 index 0000000..ebbd6d5 --- /dev/null +++ b/addons/gdUnit4/src/core/execution/stages/GdUnitTestCaseBeforeStage.gd @@ -0,0 +1,29 @@ +## The test case startup hook implementation.[br] +## It executes the 'test_before()' block from the test-suite. +class_name GdUnitTestCaseBeforeStage +extends IGdUnitExecutionStage + + +var _test_name :StringName = "" +var _call_stage :bool + + +func _init(call_stage := true) -> void: + _call_stage = call_stage + + +func _execute(context :GdUnitExecutionContext) -> void: + var test_suite := context.test_suite + var test_case_name := context._test_case_name if _test_name.is_empty() else _test_name + + fire_event(GdUnitEvent.new()\ + .test_before(test_suite.get_script().resource_path, test_suite.get_name(), test_case_name)) + + if _call_stage: + @warning_ignore("redundant_await") + await test_suite.before_test() + context.error_monitor_start() + + +func set_test_name(test_name :StringName) -> void: + _test_name = test_name diff --git a/addons/gdUnit4/src/core/execution/stages/GdUnitTestCaseExecutionStage.gd b/addons/gdUnit4/src/core/execution/stages/GdUnitTestCaseExecutionStage.gd new file mode 100644 index 0000000..148d9af --- /dev/null +++ b/addons/gdUnit4/src/core/execution/stages/GdUnitTestCaseExecutionStage.gd @@ -0,0 +1,31 @@ +## The test case execution stage.[br] +class_name GdUnitTestCaseExecutionStage +extends IGdUnitExecutionStage + + +var _stage_single_test :IGdUnitExecutionStage = GdUnitTestCaseSingleExecutionStage.new() +var _stage_fuzzer_test :IGdUnitExecutionStage = GdUnitTestCaseFuzzedExecutionStage.new() +var _stage_parameterized_test :IGdUnitExecutionStage= GdUnitTestCaseParameterizedExecutionStage.new() + + +## Executes the test case 'test_()'.[br] +## It executes synchronized following stages[br] +## -> test_before() [br] +## -> test_case() [br] +## -> test_after() [br] +@warning_ignore("redundant_await") +func _execute(context :GdUnitExecutionContext) -> void: + var test_case := context.test_case + if test_case.is_parameterized(): + await _stage_parameterized_test.execute(context) + elif test_case.is_fuzzed(): + await _stage_fuzzer_test.execute(context) + else: + await _stage_single_test.execute(context) + + +func set_debug_mode(debug_mode :bool = false) -> void: + super.set_debug_mode(debug_mode) + _stage_single_test.set_debug_mode(debug_mode) + _stage_fuzzer_test.set_debug_mode(debug_mode) + _stage_parameterized_test.set_debug_mode(debug_mode) diff --git a/addons/gdUnit4/src/core/execution/stages/GdUnitTestSuiteAfterStage.gd b/addons/gdUnit4/src/core/execution/stages/GdUnitTestSuiteAfterStage.gd new file mode 100644 index 0000000..a6de318 --- /dev/null +++ b/addons/gdUnit4/src/core/execution/stages/GdUnitTestSuiteAfterStage.gd @@ -0,0 +1,28 @@ +## The test suite shutdown hook implementation.[br] +## It executes the 'after()' block from the test-suite. +class_name GdUnitTestSuiteAfterStage +extends IGdUnitExecutionStage + + +const GdUnitTools := preload("res://addons/gdUnit4/src/core/GdUnitTools.gd") + + +func _execute(context :GdUnitExecutionContext) -> void: + var test_suite := context.test_suite + + @warning_ignore("redundant_await") + await test_suite.after() + # unreference last used assert form the test to prevent memory leaks + GdUnitThreadManager.get_current_context().set_assert(null) + await context.gc() + + var reports := context.reports() + var orphans := context.count_orphans() + if orphans > 0: + reports.push_front(GdUnitReport.new() \ + .create(GdUnitReport.WARN, 1, GdAssertMessages.orphan_detected_on_suite_setup(orphans))) + fire_event(GdUnitEvent.new().suite_after(test_suite.get_script().resource_path, test_suite.get_name(), context.build_report_statistics(orphans, false), reports)) + + GdUnitFileAccess.clear_tmp() + # Guard that checks if all doubled (spy/mock) objects are released + GdUnitClassDoubler.check_leaked_instances() diff --git a/addons/gdUnit4/src/core/execution/stages/GdUnitTestSuiteBeforeStage.gd b/addons/gdUnit4/src/core/execution/stages/GdUnitTestSuiteBeforeStage.gd new file mode 100644 index 0000000..2260edb --- /dev/null +++ b/addons/gdUnit4/src/core/execution/stages/GdUnitTestSuiteBeforeStage.gd @@ -0,0 +1,14 @@ +## The test suite startup hook implementation.[br] +## It executes the 'before()' block from the test-suite. +class_name GdUnitTestSuiteBeforeStage +extends IGdUnitExecutionStage + + +func _execute(context :GdUnitExecutionContext) -> void: + var test_suite := context.test_suite + + fire_event(GdUnitEvent.new()\ + .suite_before(test_suite.get_script().resource_path, test_suite.get_name(), test_suite.get_child_count())) + + @warning_ignore("redundant_await") + await test_suite.before() diff --git a/addons/gdUnit4/src/core/execution/stages/GdUnitTestSuiteExecutionStage.gd b/addons/gdUnit4/src/core/execution/stages/GdUnitTestSuiteExecutionStage.gd new file mode 100644 index 0000000..ba22391 --- /dev/null +++ b/addons/gdUnit4/src/core/execution/stages/GdUnitTestSuiteExecutionStage.gd @@ -0,0 +1,114 @@ +## The test suite main execution stage.[br] +class_name GdUnitTestSuiteExecutionStage +extends IGdUnitExecutionStage + +const GdUnitTools := preload("res://addons/gdUnit4/src/core/GdUnitTools.gd") + +var _stage_before :IGdUnitExecutionStage = GdUnitTestSuiteBeforeStage.new() +var _stage_after :IGdUnitExecutionStage = GdUnitTestSuiteAfterStage.new() +var _stage_test :IGdUnitExecutionStage = GdUnitTestCaseExecutionStage.new() +var _fail_fast := false + + +## Executes all tests of an test suite.[br] +## It executes synchronized following stages[br] +## -> before() [br] +## -> run all test cases [br] +## -> after() [br] +func _execute(context :GdUnitExecutionContext) -> void: + if context.test_suite.__is_skipped: + await fire_test_suite_skipped(context) + else: + GdUnitMemoryObserver.guard_instance(context.test_suite.__awaiter) + await _stage_before.execute(context) + for test_case_index in context.test_suite.get_child_count(): + # iterate only over test cases + var test_case := context.test_suite.get_child(test_case_index) as _TestCase + if not is_instance_valid(test_case): + continue + context.test_suite.set_active_test_case(test_case.get_name()) + await _stage_test.execute(GdUnitExecutionContext.of_test_case(context, test_case.get_name())) + # stop on first error or if fail fast is enabled + if _fail_fast and context.test_failed(): + break + if test_case.is_interupted(): + # it needs to go this hard way to kill the outstanding awaits of a test case when the test timed out + # we delete the current test suite where is execute the current test case to kill the function state + # and replace it by a clone without function state + context.test_suite = await clone_test_suite(context.test_suite) + await _stage_after.execute(context) + GdUnitMemoryObserver.unguard_instance(context.test_suite.__awaiter) + await Engine.get_main_loop().process_frame + context.test_suite.free() + context.dispose() + + +# clones a test suite and moves the test cases to new instance +func clone_test_suite(test_suite :GdUnitTestSuite) -> GdUnitTestSuite: + await Engine.get_main_loop().process_frame + dispose_timers(test_suite) + await GdUnitMemoryObserver.gc_guarded_instance("Manually free on awaiter", test_suite.__awaiter) + var parent := test_suite.get_parent() + var _test_suite := GdUnitTestSuite.new() + parent.remove_child(test_suite) + copy_properties(test_suite, _test_suite) + for child in test_suite.get_children(): + test_suite.remove_child(child) + _test_suite.add_child(child) + parent.add_child(_test_suite) + GdUnitMemoryObserver.guard_instance(_test_suite.__awaiter) + # finally free current test suite instance + test_suite.free() + await Engine.get_main_loop().process_frame + return _test_suite + + +func dispose_timers(test_suite :GdUnitTestSuite) -> void: + GdUnitTools.release_timers() + for child in test_suite.get_children(): + if child is Timer: + child.stop() + test_suite.remove_child(child) + child.free() + + +func copy_properties(source :Object, target :Object) -> void: + if not source is _TestCase and not source is GdUnitTestSuite: + return + for property in source.get_property_list(): + var property_name :String = property["name"] + if property_name == "__awaiter": + continue + target.set(property_name, source.get(property_name)) + + +func fire_test_suite_skipped(context :GdUnitExecutionContext) -> void: + var test_suite := context.test_suite + var skip_count := test_suite.get_child_count() + fire_event(GdUnitEvent.new()\ + .suite_before(test_suite.get_script().resource_path, test_suite.get_name(), skip_count)) + var statistics := { + GdUnitEvent.ORPHAN_NODES: 0, + GdUnitEvent.ELAPSED_TIME: 0, + GdUnitEvent.WARNINGS: false, + GdUnitEvent.ERRORS: false, + GdUnitEvent.ERROR_COUNT: 0, + GdUnitEvent.FAILED: false, + GdUnitEvent.FAILED_COUNT: 0, + GdUnitEvent.SKIPPED_COUNT: skip_count, + GdUnitEvent.SKIPPED: true + } + var report := GdUnitReport.new().create(GdUnitReport.SKIPPED, -1, GdAssertMessages.test_suite_skipped(test_suite.__skip_reason, skip_count)) + fire_event(GdUnitEvent.new().suite_after(test_suite.get_script().resource_path, test_suite.get_name(), statistics, [report])) + await Engine.get_main_loop().process_frame + + +func set_debug_mode(debug_mode :bool = false) -> void: + super.set_debug_mode(debug_mode) + _stage_before.set_debug_mode(debug_mode) + _stage_after.set_debug_mode(debug_mode) + _stage_test.set_debug_mode(debug_mode) + + +func fail_fast(enabled :bool) -> void: + _fail_fast = enabled diff --git a/addons/gdUnit4/src/core/execution/stages/IGdUnitExecutionStage.gd b/addons/gdUnit4/src/core/execution/stages/IGdUnitExecutionStage.gd new file mode 100644 index 0000000..0f6ae93 --- /dev/null +++ b/addons/gdUnit4/src/core/execution/stages/IGdUnitExecutionStage.gd @@ -0,0 +1,39 @@ +## The interface of execution stage.[br] +## An execution stage is defined as an encapsulated task that can execute 1-n substages covered by its own execution context.[br] +## Execution stage are always called synchronously. +class_name IGdUnitExecutionStage +extends RefCounted + +var _debug_mode := false + + +## Executes synchronized the implemented stage in its own execution context.[br] +## example:[br] +## [codeblock] +## # waits for 100ms +## await MyExecutionStage.new().execute() +## [/codeblock][br] +func execute(context :GdUnitExecutionContext) -> void: + context.set_active() + @warning_ignore("redundant_await") + await _execute(context) + + +## Sends the event to registered listeners +func fire_event(event :GdUnitEvent) -> void: + if _debug_mode: + GdUnitSignals.instance().gdunit_event_debug.emit(event) + else: + GdUnitSignals.instance().gdunit_event.emit(event) + + +## Internal testing stuff.[br] +## Sets the executor into debug mode to emit `GdUnitEvent` via signal `gdunit_event_debug` +func set_debug_mode(debug_mode :bool) -> void: + _debug_mode = debug_mode + + +## The execution phase to be carried out. +func _execute(_context :GdUnitExecutionContext) -> void: + @warning_ignore("assert_always_false") + assert(false, "The execution stage is not implemented") diff --git a/addons/gdUnit4/src/core/execution/stages/fuzzed/GdUnitTestCaseFuzzedExecutionStage.gd b/addons/gdUnit4/src/core/execution/stages/fuzzed/GdUnitTestCaseFuzzedExecutionStage.gd new file mode 100644 index 0000000..d438b57 --- /dev/null +++ b/addons/gdUnit4/src/core/execution/stages/fuzzed/GdUnitTestCaseFuzzedExecutionStage.gd @@ -0,0 +1,21 @@ +## The test case execution stage.[br] +class_name GdUnitTestCaseFuzzedExecutionStage +extends IGdUnitExecutionStage + +var _stage_before :IGdUnitExecutionStage = GdUnitTestCaseBeforeStage.new(false) +var _stage_after :IGdUnitExecutionStage = GdUnitTestCaseAfterStage.new(false) +var _stage_test :IGdUnitExecutionStage = GdUnitTestCaseFuzzedTestStage.new() + + +func _execute(context :GdUnitExecutionContext) -> void: + await _stage_before.execute(context) + if not context.test_case.is_skipped(): + await _stage_test.execute(GdUnitExecutionContext.of(context)) + await _stage_after.execute(context) + + +func set_debug_mode(debug_mode :bool = false) -> void: + super.set_debug_mode(debug_mode) + _stage_before.set_debug_mode(debug_mode) + _stage_after.set_debug_mode(debug_mode) + _stage_test.set_debug_mode(debug_mode) diff --git a/addons/gdUnit4/src/core/execution/stages/fuzzed/GdUnitTestCaseFuzzedTestStage.gd b/addons/gdUnit4/src/core/execution/stages/fuzzed/GdUnitTestCaseFuzzedTestStage.gd new file mode 100644 index 0000000..e6d9852 --- /dev/null +++ b/addons/gdUnit4/src/core/execution/stages/fuzzed/GdUnitTestCaseFuzzedTestStage.gd @@ -0,0 +1,53 @@ +## The fuzzed test case execution stage.[br] +class_name GdUnitTestCaseFuzzedTestStage +extends IGdUnitExecutionStage + +var _expression_runner := GdUnitExpressionRunner.new() + + +## Executes a test case with given fuzzers 'test_()' iterative.[br] +## It executes synchronized following stages[br] +## -> test_case() [br] +func _execute(context :GdUnitExecutionContext) -> void: + var test_suite := context.test_suite + var test_case := context.test_case + var fuzzers := create_fuzzers(test_suite, test_case) + + # guard on fuzzers + for fuzzer in fuzzers: + GdUnitMemoryObserver.guard_instance(fuzzer) + + for iteration in test_case.iterations(): + @warning_ignore("redundant_await") + await test_suite.before_test() + await test_case.execute(fuzzers, iteration) + @warning_ignore("redundant_await") + await test_suite.after_test() + if test_case.is_interupted(): + break + # interrupt at first failure + var reports := context.reports() + if not reports.is_empty(): + var report :GdUnitReport = reports.pop_front() + reports.append(GdUnitReport.new() \ + .create(GdUnitReport.FAILURE, report.line_number(), GdAssertMessages.fuzzer_interuped(iteration, report.message()))) + break + await context.gc() + + # unguard on fuzzers + if not test_case.is_interupted(): + for fuzzer in fuzzers: + GdUnitMemoryObserver.unguard_instance(fuzzer) + + +func create_fuzzers(test_suite :GdUnitTestSuite, test_case :_TestCase) -> Array[Fuzzer]: + if not test_case.is_fuzzed(): + return Array() + test_case.generate_seed() + var fuzzers :Array[Fuzzer] = [] + for fuzzer_arg in test_case.fuzzer_arguments(): + var fuzzer := _expression_runner.to_fuzzer(test_suite.get_script(), fuzzer_arg.value_as_string()) + fuzzer._iteration_index = 0 + fuzzer._iteration_limit = test_case.iterations() + fuzzers.append(fuzzer) + return fuzzers diff --git a/addons/gdUnit4/src/core/execution/stages/parameterized/GdUnitTestCaseParameterizedExecutionStage.gd b/addons/gdUnit4/src/core/execution/stages/parameterized/GdUnitTestCaseParameterizedExecutionStage.gd new file mode 100644 index 0000000..eb0dc27 --- /dev/null +++ b/addons/gdUnit4/src/core/execution/stages/parameterized/GdUnitTestCaseParameterizedExecutionStage.gd @@ -0,0 +1,22 @@ +## The test case execution stage.[br] +class_name GdUnitTestCaseParameterizedExecutionStage +extends IGdUnitExecutionStage + + +var _stage_before :IGdUnitExecutionStage = GdUnitTestCaseBeforeStage.new(false) +var _stage_after :IGdUnitExecutionStage = GdUnitTestCaseAfterStage.new(false) +var _stage_test :IGdUnitExecutionStage = GdUnitTestCaseParamaterizedTestStage.new() + + +func _execute(context :GdUnitExecutionContext) -> void: + await _stage_before.execute(context) + if not context.test_case.is_skipped(): + await _stage_test.execute(GdUnitExecutionContext.of(context)) + await _stage_after.execute(context) + + +func set_debug_mode(debug_mode :bool = false) -> void: + super.set_debug_mode(debug_mode) + _stage_before.set_debug_mode(debug_mode) + _stage_after.set_debug_mode(debug_mode) + _stage_test.set_debug_mode(debug_mode) diff --git a/addons/gdUnit4/src/core/execution/stages/parameterized/GdUnitTestCaseParameterizedTestStage.gd b/addons/gdUnit4/src/core/execution/stages/parameterized/GdUnitTestCaseParameterizedTestStage.gd new file mode 100644 index 0000000..99d616e --- /dev/null +++ b/addons/gdUnit4/src/core/execution/stages/parameterized/GdUnitTestCaseParameterizedTestStage.gd @@ -0,0 +1,76 @@ +## The parameterized test case execution stage.[br] +class_name GdUnitTestCaseParamaterizedTestStage +extends IGdUnitExecutionStage + +var _stage_before: IGdUnitExecutionStage = GdUnitTestCaseBeforeStage.new() +var _stage_after: IGdUnitExecutionStage = GdUnitTestCaseAfterStage.new() + + +## Executes a parameterized test case.[br] +## It executes synchronized following stages[br] +## -> test_case( ) [br] +func _execute(context: GdUnitExecutionContext) -> void: + var test_case := context.test_case + var test_parameter_index := test_case.test_parameter_index() + var is_fail := false + var is_error := false + var failing_index := 0 + var parameter_set_resolver := test_case.parameter_set_resolver() + var test_names := parameter_set_resolver.build_test_case_names(test_case) + + # if all parameter sets has static values we can preload and reuse it for better performance + var parameter_sets :Array = [] + if parameter_set_resolver.is_parameter_sets_static(): + parameter_sets = parameter_set_resolver.load_parameter_sets(test_case, true) + + for parameter_set_index in test_names.size(): + # is test_parameter_index is set, we run this parameterized test only + if test_parameter_index != -1 and test_parameter_index != parameter_set_index: + continue + var current_test_case_name := test_names[parameter_set_index] + _stage_before.set_test_name(current_test_case_name) + _stage_after.set_test_name(current_test_case_name) + + var test_context := GdUnitExecutionContext.of(context) + await _stage_before.execute(test_context) + var current_parameter_set :Array + if parameter_set_resolver.is_parameter_set_static(parameter_set_index): + current_parameter_set = parameter_sets[parameter_set_index] + else: + current_parameter_set = _load_parameter_set(context, parameter_set_index) + if not test_case.is_interupted(): + await test_case.execute_paramaterized(current_parameter_set) + await _stage_after.execute(test_context) + # we need to clean up the reports here so they are not reported twice + is_fail = is_fail or test_context.count_failures(false) > 0 + is_error = is_error or test_context.count_errors(false) > 0 + failing_index = parameter_set_index - 1 + test_context.reports().clear() + if test_case.is_interupted(): + break + # add report to parent execution context if failed or an error is found + if is_fail: + context.reports().append(GdUnitReport.new().create(GdUnitReport.FAILURE, test_case.line_number(), "Test failed at parameterized index %d." % failing_index)) + if is_error: + context.reports().append(GdUnitReport.new().create(GdUnitReport.ABORT, test_case.line_number(), "Test aborted at parameterized index %d." % failing_index)) + await context.gc() + + +func _load_parameter_set(context: GdUnitExecutionContext, parameter_set_index: int) -> Array: + var test_case := context.test_case + var test_suite := context.test_suite + # we need to exchange temporary for parameter resolving the execution context + # this is necessary because of possible usage of `auto_free` and needs to run in the parent execution context + var save_execution_context: GdUnitExecutionContext = test_suite.__execution_context + context.set_active() + var parameters := test_case.load_parameter_sets() + # restore the original execution context and restart the orphan monitor to get new instances into account + save_execution_context.set_active() + save_execution_context.orphan_monitor_start() + return parameters[parameter_set_index] + + +func set_debug_mode(debug_mode: bool=false) -> void: + super.set_debug_mode(debug_mode) + _stage_before.set_debug_mode(debug_mode) + _stage_after.set_debug_mode(debug_mode) diff --git a/addons/gdUnit4/src/core/execution/stages/single/GdUnitTestCaseSingleExecutionStage.gd b/addons/gdUnit4/src/core/execution/stages/single/GdUnitTestCaseSingleExecutionStage.gd new file mode 100644 index 0000000..b54d6a5 --- /dev/null +++ b/addons/gdUnit4/src/core/execution/stages/single/GdUnitTestCaseSingleExecutionStage.gd @@ -0,0 +1,22 @@ +## The test case execution stage.[br] +class_name GdUnitTestCaseSingleExecutionStage +extends IGdUnitExecutionStage + + +var _stage_before :IGdUnitExecutionStage = GdUnitTestCaseBeforeStage.new() +var _stage_after :IGdUnitExecutionStage = GdUnitTestCaseAfterStage.new() +var _stage_test :IGdUnitExecutionStage = GdUnitTestCaseSingleTestStage.new() + + +func _execute(context :GdUnitExecutionContext) -> void: + await _stage_before.execute(context) + if not context.test_case.is_skipped(): + await _stage_test.execute(GdUnitExecutionContext.of(context)) + await _stage_after.execute(context) + + +func set_debug_mode(debug_mode :bool = false) -> void: + super.set_debug_mode(debug_mode) + _stage_before.set_debug_mode(debug_mode) + _stage_after.set_debug_mode(debug_mode) + _stage_test.set_debug_mode(debug_mode) diff --git a/addons/gdUnit4/src/core/execution/stages/single/GdUnitTestCaseSingleTestStage.gd b/addons/gdUnit4/src/core/execution/stages/single/GdUnitTestCaseSingleTestStage.gd new file mode 100644 index 0000000..6882fe2 --- /dev/null +++ b/addons/gdUnit4/src/core/execution/stages/single/GdUnitTestCaseSingleTestStage.gd @@ -0,0 +1,11 @@ +## The single test case execution stage.[br] +class_name GdUnitTestCaseSingleTestStage +extends IGdUnitExecutionStage + + +## Executes a single test case 'test_()'.[br] +## It executes synchronized following stages[br] +## -> test_case() [br] +func _execute(context :GdUnitExecutionContext) -> void: + await context.test_case.execute() + await context.gc() diff --git a/addons/gdUnit4/src/core/parse/GdClassDescriptor.gd b/addons/gdUnit4/src/core/parse/GdClassDescriptor.gd new file mode 100644 index 0000000..87b1aeb --- /dev/null +++ b/addons/gdUnit4/src/core/parse/GdClassDescriptor.gd @@ -0,0 +1,34 @@ +class_name GdClassDescriptor +extends RefCounted + + +var _name :String +var _parent :GdClassDescriptor = null +var _is_inner_class :bool +var _functions :Array[GdFunctionDescriptor] + + +func _init(p_name :String, p_is_inner_class :bool, p_functions :Array[GdFunctionDescriptor]) -> void: + _name = p_name + _is_inner_class = p_is_inner_class + _functions = p_functions + + +func set_parent_clazz(p_parent :GdClassDescriptor) -> void: + _parent = p_parent + + +func name() -> String: + return _name + + +func parent() -> GdClassDescriptor: + return _parent + + +func is_inner_class() -> bool: + return _is_inner_class + + +func functions() -> Array[GdFunctionDescriptor]: + return _functions diff --git a/addons/gdUnit4/src/core/parse/GdDefaultValueDecoder.gd b/addons/gdUnit4/src/core/parse/GdDefaultValueDecoder.gd new file mode 100644 index 0000000..b504530 --- /dev/null +++ b/addons/gdUnit4/src/core/parse/GdDefaultValueDecoder.gd @@ -0,0 +1,255 @@ +# holds all decodings for default values +class_name GdDefaultValueDecoder +extends GdUnitSingleton + + +@warning_ignore("unused_parameter") +var _decoders := { + TYPE_NIL: func(value :Variant) -> String: return "null", + TYPE_STRING: func(value :Variant) -> String: return '"%s"' % value, + TYPE_STRING_NAME: _on_type_StringName, + TYPE_BOOL: func(value :Variant) -> String: return str(value).to_lower(), + TYPE_FLOAT: func(value :Variant) -> String: return '%f' % value, + TYPE_COLOR: _on_type_Color, + TYPE_ARRAY: _on_type_Array.bind(TYPE_ARRAY), + TYPE_PACKED_BYTE_ARRAY: _on_type_Array.bind(TYPE_PACKED_BYTE_ARRAY), + TYPE_PACKED_STRING_ARRAY: _on_type_Array.bind(TYPE_PACKED_STRING_ARRAY), + TYPE_PACKED_FLOAT32_ARRAY: _on_type_Array.bind(TYPE_PACKED_FLOAT32_ARRAY), + TYPE_PACKED_FLOAT64_ARRAY: _on_type_Array.bind(TYPE_PACKED_FLOAT64_ARRAY), + TYPE_PACKED_INT32_ARRAY: _on_type_Array.bind(TYPE_PACKED_INT32_ARRAY), + TYPE_PACKED_INT64_ARRAY: _on_type_Array.bind(TYPE_PACKED_INT64_ARRAY), + TYPE_PACKED_COLOR_ARRAY: _on_type_Array.bind(TYPE_PACKED_COLOR_ARRAY), + TYPE_PACKED_VECTOR2_ARRAY: _on_type_Array.bind(TYPE_PACKED_VECTOR2_ARRAY), + TYPE_PACKED_VECTOR3_ARRAY: _on_type_Array.bind(TYPE_PACKED_VECTOR3_ARRAY), + TYPE_DICTIONARY: _on_type_Dictionary, + TYPE_RID: _on_type_RID, + TYPE_NODE_PATH: _on_type_NodePath, + TYPE_VECTOR2: _on_type_Vector.bind(TYPE_VECTOR2), + TYPE_VECTOR2I: _on_type_Vector.bind(TYPE_VECTOR2I), + TYPE_VECTOR3: _on_type_Vector.bind(TYPE_VECTOR3), + TYPE_VECTOR3I: _on_type_Vector.bind(TYPE_VECTOR3I), + TYPE_VECTOR4: _on_type_Vector.bind(TYPE_VECTOR4), + TYPE_VECTOR4I: _on_type_Vector.bind(TYPE_VECTOR4I), + TYPE_RECT2: _on_type_Rect2, + TYPE_RECT2I: _on_type_Rect2i, + TYPE_PLANE: _on_type_Plane, + TYPE_QUATERNION: _on_type_Quaternion, + TYPE_AABB: _on_type_AABB, + TYPE_BASIS: _on_type_Basis, + TYPE_CALLABLE: _on_type_Callable, + TYPE_SIGNAL: _on_type_Signal, + TYPE_TRANSFORM2D: _on_type_Transform2D, + TYPE_TRANSFORM3D: _on_type_Transform3D, + TYPE_PROJECTION: _on_type_Projection, + TYPE_OBJECT: _on_type_Object +} + +static func _regex(pattern :String) -> RegEx: + var regex := RegEx.new() + var err := regex.compile(pattern) + if err != OK: + push_error("error '%s' checked pattern '%s'" % [err, pattern]) + return null + return regex + + +func get_decoder(type :int) -> Callable: + return _decoders.get(type, func(value :Variant) -> String: return '%s' % value) + + +func _on_type_StringName(value :StringName) -> String: + if value.is_empty(): + return 'StringName()' + return 'StringName("%s")' % value + + +func _on_type_Object(value :Object, type :int) -> String: + return str(value) + + +func _on_type_Color(color :Color) -> String: + if color == Color.BLACK: + return "Color()" + return "Color%s" % color + + +func _on_type_NodePath(path :NodePath) -> String: + if path.is_empty(): + return 'NodePath()' + return 'NodePath("%s")' % path + + +func _on_type_Callable(cb :Callable) -> String: + return 'Callable()' + + +func _on_type_Signal(s :Signal) -> String: + return 'Signal()' + + +func _on_type_Dictionary(dict :Dictionary) -> String: + if dict.is_empty(): + return '{}' + return str(dict) + + +func _on_type_Array(value :Variant, type :int) -> String: + match type: + TYPE_ARRAY: + return str(value) + + TYPE_PACKED_COLOR_ARRAY: + var colors := PackedStringArray() + for color in value as PackedColorArray: + colors.append(_on_type_Color(color)) + if colors.is_empty(): + return "PackedColorArray()" + return "PackedColorArray([%s])" % ", ".join(colors) + + TYPE_PACKED_VECTOR2_ARRAY: + var vectors := PackedStringArray() + for vector in value as PackedVector2Array: + vectors.append(_on_type_Vector(vector, TYPE_VECTOR2)) + if vectors.is_empty(): + return "PackedVector2Array()" + return "PackedVector2Array([%s])" % ", ".join(vectors) + + TYPE_PACKED_VECTOR3_ARRAY: + var vectors := PackedStringArray() + for vector in value as PackedVector3Array: + vectors.append(_on_type_Vector(vector, TYPE_VECTOR3)) + if vectors.is_empty(): + return "PackedVector3Array()" + return "PackedVector3Array([%s])" % ", ".join(vectors) + + TYPE_PACKED_STRING_ARRAY: + var values := PackedStringArray() + for v in value as PackedStringArray: + values.append('"%s"' % v) + if values.is_empty(): + return "PackedStringArray()" + return "PackedStringArray([%s])" % ", ".join(values) + + TYPE_PACKED_BYTE_ARRAY,\ + TYPE_PACKED_FLOAT32_ARRAY,\ + TYPE_PACKED_FLOAT64_ARRAY,\ + TYPE_PACKED_INT32_ARRAY,\ + TYPE_PACKED_INT64_ARRAY: + var vectors := PackedStringArray() + for vector :Variant in value as Array: + vectors.append(str(vector)) + if vectors.is_empty(): + return GdObjects.type_as_string(type) + "()" + return "%s([%s])" % [GdObjects.type_as_string(type), ", ".join(vectors)] + return "unknown array type %d" % type + + +func _on_type_Vector(value :Variant, type :int) -> String: + match type: + TYPE_VECTOR2: + if value == Vector2(): + return "Vector2()" + return "Vector2%s" % value + TYPE_VECTOR2I: + if value == Vector2i(): + return "Vector2i()" + return "Vector2i%s" % value + TYPE_VECTOR3: + if value == Vector3(): + return "Vector3()" + return "Vector3%s" % value + TYPE_VECTOR3I: + if value == Vector3i(): + return "Vector3i()" + return "Vector3i%s" % value + TYPE_VECTOR4: + if value == Vector4(): + return "Vector4()" + return "Vector4%s" % value + TYPE_VECTOR4I: + if value == Vector4i(): + return "Vector4i()" + return "Vector4i%s" % value + return "unknown vector type %d" % type + + +func _on_type_Transform2D(transform :Transform2D) -> String: + if transform == Transform2D(): + return "Transform2D()" + return "Transform2D(Vector2%s, Vector2%s, Vector2%s)" % [transform.x, transform.y, transform.origin] + + +func _on_type_Transform3D(transform :Transform3D) -> String: + if transform == Transform3D(): + return "Transform3D()" + return "Transform3D(Vector3%s, Vector3%s, Vector3%s, Vector3%s)" % [transform.basis.x, transform.basis.y, transform.basis.z, transform.origin] + + +func _on_type_Projection(projection :Projection) -> String: + return "Projection(Vector4%s, Vector4%s, Vector4%s, Vector4%s)" % [projection.x, projection.y, projection.z, projection.w] + + +@warning_ignore("unused_parameter") +func _on_type_RID(value :RID) -> String: + return "RID()" + + +func _on_type_Rect2(rect :Rect2) -> String: + if rect == Rect2(): + return "Rect2()" + return "Rect2(Vector2%s, Vector2%s)" % [rect.position, rect.size] + + +func _on_type_Rect2i(rect :Variant) -> String: + if rect == Rect2i(): + return "Rect2i()" + return "Rect2i(Vector2i%s, Vector2i%s)" % [rect.position, rect.size] + + +func _on_type_Plane(plane :Plane) -> String: + if plane == Plane(): + return "Plane()" + return "Plane(%d, %d, %d, %d)" % [plane.x, plane.y, plane.z, plane.d] + + +func _on_type_Quaternion(quaternion :Quaternion) -> String: + if quaternion == Quaternion(): + return "Quaternion()" + return "Quaternion(%d, %d, %d, %d)" % [quaternion.x, quaternion.y, quaternion.z, quaternion.w] + + +func _on_type_AABB(aabb :AABB) -> String: + if aabb == AABB(): + return "AABB()" + return "AABB(Vector3%s, Vector3%s)" % [aabb.position, aabb.size] + + +func _on_type_Basis(basis :Basis) -> String: + if basis == Basis(): + return "Basis()" + return "Basis(Vector3%s, Vector3%s, Vector3%s)" % [basis.x, basis.y, basis.z] + + +static func decode(value :Variant) -> String: + var type := typeof(value) + if GdArrayTools.is_type_array(type) and value.is_empty(): + return "" + var decoder :Callable = instance("GdUnitDefaultValueDecoders", func() -> GdDefaultValueDecoder: return GdDefaultValueDecoder.new()).get_decoder(type) + if decoder == null: + push_error("No value decoder registered for type '%d'! Please open a Bug issue at 'https://github.com/MikeSchulze/gdUnit4/issues/new/choose'." % type) + return "null" + if type == TYPE_OBJECT: + return decoder.call(value, type) + return decoder.call(value) + + +static func decode_typed(type :int, value :Variant) -> String: + if value == null: + return "null" + var decoder :Callable = instance("GdUnitDefaultValueDecoders", func() -> GdDefaultValueDecoder: return GdDefaultValueDecoder.new()).get_decoder(type) + if decoder == null: + push_error("No value decoder registered for type '%d'! Please open a Bug issue at 'https://github.com/MikeSchulze/gdUnit4/issues/new/choose'." % type) + return "null" + if type == TYPE_OBJECT: + return decoder.call(value, type) + return decoder.call(value) diff --git a/addons/gdUnit4/src/core/parse/GdFunctionArgument.gd b/addons/gdUnit4/src/core/parse/GdFunctionArgument.gd new file mode 100644 index 0000000..5789186 --- /dev/null +++ b/addons/gdUnit4/src/core/parse/GdFunctionArgument.gd @@ -0,0 +1,114 @@ +class_name GdFunctionArgument +extends RefCounted + + +var _cleanup_leading_spaces := RegEx.create_from_string("(?m)^[ \t]+") +var _fix_comma_space := RegEx.create_from_string(""", {0,}\t{0,}(?=(?:[^"]*"[^"]*")*[^"]*$)(?!\\s)""") +var _name: String +var _type: int +var _default_value :Variant +var _parameter_sets :PackedStringArray = [] + +const UNDEFINED :Variant = "<-NO_ARG->" +const ARG_PARAMETERIZED_TEST := "test_parameters" + + +func _init(p_name :String, p_type :int = TYPE_MAX, value :Variant = UNDEFINED) -> void: + _name = p_name + _type = p_type + if p_name == ARG_PARAMETERIZED_TEST: + _parameter_sets = _parse_parameter_set(value) + _default_value = value + + +func name() -> String: + return _name + + +func default() -> Variant: + return GodotVersionFixures.convert(_default_value, _type) + + +func value_as_string() -> String: + if has_default(): + return str(_default_value) + return "" + + +func type() -> int: + return _type + + +func has_default() -> bool: + return not is_same(_default_value, UNDEFINED) + + +func is_parameter_set() -> bool: + return _name == ARG_PARAMETERIZED_TEST + + +func parameter_sets() -> PackedStringArray: + return _parameter_sets + + +static func get_parameter_set(parameters :Array[GdFunctionArgument]) -> GdFunctionArgument: + for current in parameters: + if current != null and current.is_parameter_set(): + return current + return null + + +func _to_string() -> String: + var s := _name + if _type != TYPE_MAX: + s += ":" + GdObjects.type_as_string(_type) + if _default_value != UNDEFINED: + s += "=" + str(_default_value) + return s + + +func _parse_parameter_set(input :String) -> PackedStringArray: + if not input.contains("["): + return [] + + input = _cleanup_leading_spaces.sub(input, "", true) + input = input.replace("\n", "").strip_edges().trim_prefix("[").trim_suffix("]").trim_prefix("]") + var single_quote := false + var double_quote := false + var array_end := 0 + var current_index := 0 + var output :PackedStringArray = [] + var buf := input.to_utf8_buffer() + var collected_characters: = PackedByteArray() + var matched :bool = false + + for c in buf: + current_index += 1 + matched = current_index == buf.size() + collected_characters.push_back(c) + + match c: + # ' ': ignore spaces between array elements + 32: if array_end == 0 and (not double_quote and not single_quote): + collected_characters.remove_at(collected_characters.size()-1) + # ',': step over array element seperator ',' + 44: if array_end == 0: + matched = true + collected_characters.remove_at(collected_characters.size()-1) + # '`': + 39: single_quote = !single_quote + # '"': + 34: if not single_quote: double_quote = !double_quote + # '[' + 91: if not double_quote and not single_quote: array_end +=1 # counts array open + # ']' + 93: if not double_quote and not single_quote: array_end -=1 # counts array closed + + # if array closed than collect the element + if matched: + var parameters := _fix_comma_space.sub(collected_characters.get_string_from_utf8(), ", ", true) + if not parameters.is_empty(): + output.append(parameters) + collected_characters.clear() + matched = false + return output diff --git a/addons/gdUnit4/src/core/parse/GdFunctionDescriptor.gd b/addons/gdUnit4/src/core/parse/GdFunctionDescriptor.gd new file mode 100644 index 0000000..2633016 --- /dev/null +++ b/addons/gdUnit4/src/core/parse/GdFunctionDescriptor.gd @@ -0,0 +1,250 @@ +class_name GdFunctionDescriptor +extends RefCounted + +var _is_virtual :bool +var _is_static :bool +var _is_engine :bool +var _is_coroutine :bool +var _name :String +var _line_number :int +var _return_type :int +var _return_class :String +var _args : Array[GdFunctionArgument] +var _varargs :Array[GdFunctionArgument] + + +func _init(p_name :String, + p_line_number :int, + p_is_virtual :bool, + p_is_static :bool, + p_is_engine :bool, + p_return_type :int, + p_return_class :String, + p_args : Array[GdFunctionArgument], + p_varargs :Array[GdFunctionArgument] = []) -> void: + _name = p_name + _line_number = p_line_number + _return_type = p_return_type + _return_class = p_return_class + _is_virtual = p_is_virtual + _is_static = p_is_static + _is_engine = p_is_engine + _is_coroutine = false + _args = p_args + _varargs = p_varargs + + +func name() -> String: + return _name + + +func line_number() -> int: + return _line_number + + +func is_virtual() -> bool: + return _is_virtual + + +func is_static() -> bool: + return _is_static + + +func is_engine() -> bool: + return _is_engine + + +func is_vararg() -> bool: + return not _varargs.is_empty() + + +func is_coroutine() -> bool: + return _is_coroutine + + +func is_parameterized() -> bool: + for current in _args: + var arg :GdFunctionArgument = current + if arg.name() == GdFunctionArgument.ARG_PARAMETERIZED_TEST: + return true + return false + + +func is_private() -> bool: + return name().begins_with("_") and not is_virtual() + + +func return_type() -> Variant: + return _return_type + + +func return_type_as_string() -> String: + if (return_type() == TYPE_OBJECT or return_type() == GdObjects.TYPE_ENUM) and not _return_class.is_empty(): + return _return_class + return GdObjects.type_as_string(return_type()) + + +func args() -> Array[GdFunctionArgument]: + return _args + + +func varargs() -> Array[GdFunctionArgument]: + return _varargs + + +func typeless() -> String: + var func_signature := "" + if _return_type == TYPE_NIL: + func_signature = "func %s(%s) -> void:" % [name(), typeless_args()] + elif _return_type == GdObjects.TYPE_VARIANT: + func_signature = "func %s(%s) -> Variant:" % [name(), typeless_args()] + else: + func_signature = "func %s(%s) -> %s:" % [name(), typeless_args(), return_type_as_string()] + return "static " + func_signature if is_static() else func_signature + + +func typeless_args() -> String: + var collect := PackedStringArray() + for arg in args(): + if arg.has_default(): + collect.push_back( arg.name() + "=" + arg.value_as_string()) + else: + collect.push_back(arg.name()) + for arg in varargs(): + collect.push_back(arg.name() + "=" + arg.value_as_string()) + return ", ".join(collect) + + +func typed_args() -> String: + var collect := PackedStringArray() + for arg in args(): + collect.push_back(arg._to_string()) + for arg in varargs(): + collect.push_back(arg._to_string()) + return ", ".join(collect) + + +func _to_string() -> String: + var fsignature := "virtual " if is_virtual() else "" + if _return_type == TYPE_NIL: + return fsignature + "[Line:%s] func %s(%s):" % [line_number(), name(), typed_args()] + var func_template := fsignature + "[Line:%s] func %s(%s) -> %s:" + if is_static(): + func_template= "[Line:%s] static func %s(%s) -> %s:" + return func_template % [line_number(), name(), typed_args(), return_type_as_string()] + + +# extract function description given by Object.get_method_list() +static func extract_from(descriptor :Dictionary) -> GdFunctionDescriptor: + var function_flags :int = descriptor["flags"] + var is_virtual_ :bool = function_flags & METHOD_FLAG_VIRTUAL + var is_static_ :bool = function_flags & METHOD_FLAG_STATIC + var is_vararg_ :bool = function_flags & METHOD_FLAG_VARARG + #var is_const :bool = function_flags & METHOD_FLAG_CONST + #var is_core :bool = function_flags & METHOD_FLAG_OBJECT_CORE + #var is_default :bool = function_flags & METHOD_FLAGS_DEFAULT + #prints("is_virtual: ", is_virtual) + #prints("is_static: ", is_static) + #prints("is_const: ", is_const) + #prints("is_core: ", is_core) + #prints("is_default: ", is_default) + #prints("is_vararg: ", is_vararg) + return GdFunctionDescriptor.new( + descriptor["name"], + -1, + is_virtual_, + is_static_, + true, + _extract_return_type(descriptor["return"]), + descriptor["return"]["class_name"], + _extract_args(descriptor), + _build_varargs(is_vararg_) + ) + +# temporary exclude GlobalScope enums +const enum_fix := [ + "Side", + "Corner", + "Orientation", + "ClockDirection", + "HorizontalAlignment", + "VerticalAlignment", + "InlineAlignment", + "EulerOrder", + "Error", + "Key", + "MIDIMessage", + "MouseButton", + "MouseButtonMask", + "JoyButton", + "JoyAxis", + "PropertyHint", + "PropertyUsageFlags", + "MethodFlags", + "Variant.Type", + "Control.LayoutMode"] + + +static func _extract_return_type(return_info :Dictionary) -> Variant: + var type :int = return_info["type"] + var usage :int = return_info["usage"] + if type == TYPE_INT and usage & PROPERTY_USAGE_CLASS_IS_ENUM: + return GdObjects.TYPE_ENUM + if type == TYPE_NIL and usage & PROPERTY_USAGE_NIL_IS_VARIANT: + return GdObjects.TYPE_VARIANT + return type + + +static func _extract_args(descriptor :Dictionary) -> Array[GdFunctionArgument]: + var args_ :Array[GdFunctionArgument] = [] + var arguments :Array = descriptor["args"] + var defaults :Array = descriptor["default_args"] + # iterate backwards because the default values are stored from right to left + while not arguments.is_empty(): + var arg :Dictionary = arguments.pop_back() + var arg_name := _argument_name(arg) + var arg_type := _argument_type(arg) + var arg_default :Variant = GdFunctionArgument.UNDEFINED + if not defaults.is_empty(): + var default_value :Variant = defaults.pop_back() + arg_default = GdDefaultValueDecoder.decode_typed(arg_type, default_value) + args_.push_front(GdFunctionArgument.new(arg_name, arg_type, arg_default)) + return args_ + + +static func _build_varargs(p_is_vararg :bool) -> Array[GdFunctionArgument]: + var varargs_ :Array[GdFunctionArgument] = [] + if not p_is_vararg: + return varargs_ + # if function has vararg we need to handle this manually by adding 10 default arguments + var type := GdObjects.TYPE_VARARG + for index in 10: + varargs_.push_back(GdFunctionArgument.new("vararg%d_" % index, type, "\"%s\"" % GdObjects.TYPE_VARARG_PLACEHOLDER_VALUE)) + return varargs_ + + +static func _argument_name(arg :Dictionary) -> String: + # add suffix to the name to prevent clash with reserved names + return (arg["name"] + "_") as String + + +static func _argument_type(arg :Dictionary) -> int: + var type :int = arg["type"] + if type == TYPE_OBJECT: + if arg["class_name"] == "Node": + return GdObjects.TYPE_NODE + return type + + +static func _argument_type_as_string(arg :Dictionary) -> String: + var type := _argument_type(arg) + match type: + TYPE_NIL: + return "" + TYPE_OBJECT: + var clazz_name :String = arg["class_name"] + if not clazz_name.is_empty(): + return clazz_name + return "" + _: + return GdObjects.type_as_string(type) diff --git a/addons/gdUnit4/src/core/parse/GdScriptParser.gd b/addons/gdUnit4/src/core/parse/GdScriptParser.gd new file mode 100644 index 0000000..38468f3 --- /dev/null +++ b/addons/gdUnit4/src/core/parse/GdScriptParser.gd @@ -0,0 +1,807 @@ +class_name GdScriptParser +extends RefCounted + +const GdUnitTools := preload("res://addons/gdUnit4/src/core/GdUnitTools.gd") + +const ALLOWED_CHARACTERS := "0123456789_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\"" + +var TOKEN_NOT_MATCH := Token.new("") +var TOKEN_SPACE := SkippableToken.new(" ") +var TOKEN_TABULATOR := SkippableToken.new("\t") +var TOKEN_NEW_LINE := SkippableToken.new("\n") +var TOKEN_COMMENT := SkippableToken.new("#") +var TOKEN_CLASS_NAME := Token.new("class_name") +var TOKEN_INNER_CLASS := Token.new("class") +var TOKEN_EXTENDS := Token.new("extends") +var TOKEN_ENUM := Token.new("enum") +var TOKEN_FUNCTION_STATIC_DECLARATION := Token.new("staticfunc") +var TOKEN_FUNCTION_DECLARATION := Token.new("func") +var TOKEN_FUNCTION := Token.new(".") +var TOKEN_FUNCTION_RETURN_TYPE := Token.new("->") +var TOKEN_FUNCTION_END := Token.new("):") +var TOKEN_ARGUMENT_ASIGNMENT := Token.new("=") +var TOKEN_ARGUMENT_TYPE_ASIGNMENT := Token.new(":=") +var TOKEN_ARGUMENT_FUZZER := FuzzerToken.new(GdUnitTools.to_regex("((?!(fuzzer_(seed|iterations)))fuzzer?\\w+)( ?+= ?+| ?+:= ?+| ?+:Fuzzer ?+= ?+|)")) +var TOKEN_ARGUMENT_TYPE := Token.new(":") +var TOKEN_ARGUMENT_SEPARATOR := Token.new(",") +var TOKEN_BRACKET_OPEN := Token.new("(") +var TOKEN_BRACKET_CLOSE := Token.new(")") +var TOKEN_ARRAY_OPEN := Token.new("[") +var TOKEN_ARRAY_CLOSE := Token.new("]") + +var OPERATOR_ADD := Operator.new("+") +var OPERATOR_SUB := Operator.new("-") +var OPERATOR_MUL := Operator.new("*") +var OPERATOR_DIV := Operator.new("/") +var OPERATOR_REMAINDER := Operator.new("%") + +var TOKENS :Array[Token] = [ + TOKEN_SPACE, + TOKEN_TABULATOR, + TOKEN_NEW_LINE, + TOKEN_COMMENT, + TOKEN_BRACKET_OPEN, + TOKEN_BRACKET_CLOSE, + TOKEN_ARRAY_OPEN, + TOKEN_ARRAY_CLOSE, + TOKEN_CLASS_NAME, + TOKEN_INNER_CLASS, + TOKEN_EXTENDS, + TOKEN_ENUM, + TOKEN_FUNCTION_STATIC_DECLARATION, + TOKEN_FUNCTION_DECLARATION, + TOKEN_ARGUMENT_FUZZER, + TOKEN_ARGUMENT_TYPE_ASIGNMENT, + TOKEN_ARGUMENT_ASIGNMENT, + TOKEN_ARGUMENT_TYPE, + TOKEN_FUNCTION, + TOKEN_ARGUMENT_SEPARATOR, + TOKEN_FUNCTION_RETURN_TYPE, + OPERATOR_ADD, + OPERATOR_SUB, + OPERATOR_MUL, + OPERATOR_DIV, + OPERATOR_REMAINDER, +] + +var _regex_clazz_name :RegEx +var _regex_strip_comments := GdUnitTools.to_regex("^([^#\"']|'[^']*'|\"[^\"]*\")*\\K#.*") +var _base_clazz :String +var _scanned_inner_classes := PackedStringArray() +var _script_constants := {} + + +static func clean_up_row(row :String) -> String: + return to_unix_format(row.replace(" ", "").replace("\t", "")) + + +static func to_unix_format(input :String) -> String: + return input.replace("\r\n", "\n") + + +class Token extends RefCounted: + var _token: String + var _consumed: int + var _is_operator: bool + var _regex :RegEx + + + func _init(p_token: String, p_is_operator := false, p_regex :RegEx = null) -> void: + _token = p_token + _is_operator = p_is_operator + _consumed = p_token.length() + _regex = p_regex + + func match(input: String, pos: int) -> bool: + if _regex: + var result := _regex.search(input, pos) + if result == null: + return false + _consumed = result.get_end() - result.get_start() + return pos == result.get_start() + return input.findn(_token, pos) == pos + + func is_operator() -> bool: + return _is_operator + + func is_inner_class() -> bool: + return _token == "class" + + func is_variable() -> bool: + return false + + func is_token(token_name :String) -> bool: + return _token == token_name + + func is_skippable() -> bool: + return false + + func _to_string() -> String: + return "Token{" + _token + "}" + + +class Operator extends Token: + func _init(value: String) -> void: + super(value, true) + + func _to_string() -> String: + return "OperatorToken{%s}" % [_token] + + +# A skippable token, is just a placeholder like space or tabs +class SkippableToken extends Token: + + func _init(p_token: String) -> void: + super(p_token) + + func is_skippable() -> bool: + return true + + +# Token to parse Fuzzers +class FuzzerToken extends Token: + var _name: String + + + func _init(regex: RegEx) -> void: + super("", false, regex) + + + func match(input: String, pos: int) -> bool: + if _regex: + var result := _regex.search(input, pos) + if result == null: + return false + _name = result.strings[1] + _consumed = result.get_end() - result.get_start() + return pos == result.get_start() + return input.findn(_token, pos) == pos + + + func name() -> String: + return _name + + + func type() -> int: + return GdObjects.TYPE_FUZZER + + + func _to_string() -> String: + return "FuzzerToken{%s: '%s'}" % [_name, _token] + + +# Token to parse function arguments +class Variable extends Token: + var _plain_value :String + var _typed_value :Variant + var _type :int = TYPE_NIL + + + func _init(p_value: String) -> void: + super(p_value) + _type = _scan_type(p_value) + _plain_value = p_value + _typed_value = _cast_to_type(p_value, _type) + + + func _scan_type(p_value: String) -> int: + if p_value.begins_with("\"") and p_value.ends_with("\""): + return TYPE_STRING + var type_ := GdObjects.string_to_type(p_value) + if type_ != TYPE_NIL: + return type_ + if p_value.is_valid_int(): + return TYPE_INT + if p_value.is_valid_float(): + return TYPE_FLOAT + if p_value.is_valid_hex_number(): + return TYPE_INT + return TYPE_OBJECT + + + func _cast_to_type(p_value :String, p_type: int) -> Variant: + match p_type: + TYPE_STRING: + return p_value#.substr(1, p_value.length() - 2) + TYPE_INT: + return p_value.to_int() + TYPE_FLOAT: + return p_value.to_float() + return p_value + + + func is_variable() -> bool: + return true + + + func type() -> int: + return _type + + + func value() -> Variant: + return _typed_value + + + func plain_value() -> String: + return _plain_value + + + func _to_string() -> String: + return "Variable{%s: %s : '%s'}" % [_plain_value, GdObjects.type_as_string(_type), _token] + + +class TokenInnerClass extends Token: + var _clazz_name :String + var _content := PackedStringArray() + + + static func _strip_leading_spaces(input :String) -> String: + var characters := input.to_utf8_buffer() + while not characters.is_empty(): + if characters[0] != 0x20: + break + characters.remove_at(0) + return characters.get_string_from_utf8() + + + static func _consumed_bytes(row :String) -> int: + return row.replace(" ", "").replace(" ", "").length() + + + func _init(clazz_name :String) -> void: + super("class") + _clazz_name = clazz_name + + + func is_class_name(clazz_name :String) -> bool: + return _clazz_name == clazz_name + + + func content() -> PackedStringArray: + return _content + + + func parse(source_rows :PackedStringArray, offset :int) -> void: + # add class signature + _content.append(source_rows[offset]) + # parse class content + for row_index in range(offset+1, source_rows.size()): + # scan until next non tab + var source_row := source_rows[row_index] + var row := TokenInnerClass._strip_leading_spaces(source_row) + if row.is_empty() or row.begins_with("\t") or row.begins_with("#"): + # fold all line to left by removing leading tabs and spaces + if source_row.begins_with("\t"): + source_row = source_row.trim_prefix("\t") + # refomat invalid empty lines + if source_row.dedent().is_empty(): + _content.append("") + else: + _content.append(source_row) + continue + break + _consumed += TokenInnerClass._consumed_bytes("".join(_content)) + + + func _to_string() -> String: + return "TokenInnerClass{%s}" % [_clazz_name] + + +func _init() -> void: + _regex_clazz_name = GdUnitTools.to_regex("(class)([a-zA-Z0-9]+)(extends[a-zA-Z]+:)|(class)([a-zA-Z0-9]+)(:)") + + +func get_token(input :String, current_index :int) -> Token: + for t in TOKENS: + if t.match(input, current_index): + return t + return TOKEN_NOT_MATCH + + +func next_token(input: String, current_index: int, ignore_tokens :Array[Token] = []) -> Token: + var token := TOKEN_NOT_MATCH + for t :Token in TOKENS.filter(func(t :Token) -> bool: return not ignore_tokens.has(t)): + if t.match(input, current_index): + token = t + break + if token == OPERATOR_SUB: + token = tokenize_value(input, current_index, token) + if token == TOKEN_INNER_CLASS: + token = tokenize_inner_class(input, current_index, token) + if token == TOKEN_NOT_MATCH: + return tokenize_value(input, current_index, token, ignore_tokens.has(TOKEN_FUNCTION)) + return token + + +func tokenize_value(input: String, current: int, token: Token, ignore_dots := false) -> Token: + var next := 0 + var current_token := "" + # test for '--', '+-', '*-', '/-', '%-', or at least '-x' + var test_for_sign := (token == null or token.is_operator()) and input[current] == "-" + while current + next < len(input): + var character := input[current + next] as String + # if first charater a sign + # or allowend charset + # or is a float value + if (test_for_sign and next==0) \ + or character in ALLOWED_CHARACTERS \ + or (character == "." and (ignore_dots or current_token.is_valid_int())): + current_token += character + next += 1 + continue + break + if current_token != "": + return Variable.new(current_token) + return TOKEN_NOT_MATCH + + +func extract_clazz_name(value :String) -> String: + var result := _regex_clazz_name.search(value) + if result == null: + push_error("Can't extract class name from '%s'" % value) + return "" + if result.get_string(2).is_empty(): + return result.get_string(5) + else: + return result.get_string(2) + + +@warning_ignore("unused_parameter") +func tokenize_inner_class(source_code: String, current: int, token: Token) -> Token: + var clazz_name := extract_clazz_name(source_code.substr(current, 64)) + return TokenInnerClass.new(clazz_name) + + +@warning_ignore("assert_always_false") +func _process_values(left: Token, token_stack: Array, operator: Token) -> Token: + # precheck + if left.is_variable() and operator.is_operator(): + var lvalue :Variant = left.value() + var value :Variant = null + var next_token_ := token_stack.pop_front() as Token + match operator: + OPERATOR_ADD: + value = lvalue + next_token_.value() + OPERATOR_SUB: + value = lvalue - next_token_.value() + OPERATOR_MUL: + value = lvalue * next_token_.value() + OPERATOR_DIV: + value = lvalue / next_token_.value() + OPERATOR_REMAINDER: + value = lvalue & next_token_.value() + _: + assert(false, "Unsupported operator %s" % operator) + return Variable.new( str(value)) + return operator + + +func parse_func_return_type(row: String) -> int: + var token := parse_return_token(row) + if token == TOKEN_NOT_MATCH: + return TYPE_NIL + return token.type() + + +func parse_return_token(input: String) -> Token: + var index := input.rfind(TOKEN_FUNCTION_RETURN_TYPE._token) + if index == -1: + return TOKEN_NOT_MATCH + index += TOKEN_FUNCTION_RETURN_TYPE._consumed + # We scan for the return value exclusive '.' token because it could be referenced to a + # external or internal class e.g. 'func foo() -> InnerClass.Bar:' + var token := next_token(input, index, [TOKEN_FUNCTION]) + while !token.is_variable() and token != TOKEN_NOT_MATCH: + index += token._consumed + token = next_token(input, index, [TOKEN_FUNCTION]) + return token + + +# Parses the argument into a argument signature +# e.g. func foo(arg1 :int, arg2 = 20) -> [arg1, arg2] +func parse_arguments(input: String) -> Array[GdFunctionArgument]: + var args :Array[GdFunctionArgument] = [] + var current_index := 0 + var token :Token = null + var bracket := 0 + var in_function := false + while current_index < len(input): + token = next_token(input, current_index) + # fallback to not end in a endless loop + if token == TOKEN_NOT_MATCH: + var error : = """ + Parsing Error: Invalid token at pos %d found. + Please report this error! + source_code: + -------------------------------------------------------------- + %s + -------------------------------------------------------------- + """.dedent() % [current_index, input] + push_error(error) + current_index += 1 + continue + current_index += token._consumed + if token.is_skippable(): + continue + if token == TOKEN_BRACKET_OPEN: + in_function = true + bracket += 1 + continue + if token == TOKEN_BRACKET_CLOSE: + bracket -= 1 + # if function end? + if in_function and bracket == 0: + return args + # is function + if token == TOKEN_FUNCTION_DECLARATION: + token = next_token(input, current_index) + current_index += token._consumed + continue + # is fuzzer argument + if token is FuzzerToken: + var arg_value := _parse_end_function(input.substr(current_index), true) + current_index += arg_value.length() + args.append(GdFunctionArgument.new(token.name(), token.type(), arg_value)) + continue + # is value argument + if in_function and token.is_variable(): + var arg_name :String = token.plain_value() + var arg_type :int = TYPE_NIL + var arg_value :Variant = GdFunctionArgument.UNDEFINED + # parse type and default value + while current_index < len(input): + token = next_token(input, current_index) + current_index += token._consumed + if token.is_skippable(): + continue + match token: + TOKEN_ARGUMENT_TYPE: + token = next_token(input, current_index) + if token == TOKEN_SPACE: + current_index += token._consumed + token = next_token(input, current_index) + arg_type = GdObjects.string_as_typeof(token._token) + # handle enum detection as argument + if arg_type == GdObjects.TYPE_VARIANT and is_class_enum_type(token._token): + arg_type = GdObjects.TYPE_ENUM + TOKEN_ARGUMENT_TYPE_ASIGNMENT: + arg_value = _parse_end_function(input.substr(current_index), true) + current_index += arg_value.length() + TOKEN_ARGUMENT_ASIGNMENT: + token = next_token(input, current_index) + arg_value = _parse_end_function(input.substr(current_index), true) + current_index += arg_value.length() + TOKEN_BRACKET_OPEN: + bracket += 1 + # if value a function? + if bracket > 1: + # complete the argument value + var func_begin := input.substr(current_index-TOKEN_BRACKET_OPEN._consumed) + var func_body := _parse_end_function(func_begin) + arg_value += func_body + # fix parse index to end of value + current_index += func_body.length() - TOKEN_BRACKET_OPEN._consumed - TOKEN_BRACKET_CLOSE._consumed + TOKEN_BRACKET_CLOSE: + bracket -= 1 + # end of function + if bracket == 0: + break + TOKEN_ARGUMENT_SEPARATOR: + if bracket <= 1: + break + arg_value = arg_value.lstrip(" ") + if arg_type == TYPE_NIL and arg_value != GdFunctionArgument.UNDEFINED: + if arg_value.begins_with("Color."): + arg_type = TYPE_COLOR + elif arg_value.begins_with("Vector2."): + arg_type = TYPE_VECTOR2 + elif arg_value.begins_with("Vector3."): + arg_type = TYPE_VECTOR3 + elif arg_value.begins_with("AABB("): + arg_type = TYPE_AABB + elif arg_value.begins_with("["): + arg_type = TYPE_ARRAY + elif arg_value.begins_with("{"): + arg_type = TYPE_DICTIONARY + else: + arg_type = typeof(str_to_var(arg_value)) + if arg_value.rfind(")") == arg_value.length()-1: + arg_type = GdObjects.TYPE_FUNC + elif arg_type == TYPE_NIL: + arg_type = TYPE_STRING + args.append(GdFunctionArgument.new(arg_name, arg_type, arg_value)) + return args + + +func _parse_end_function(input: String, remove_trailing_char := false) -> String: + # find end of function + var current_index := 0 + var bracket_count := 0 + var in_array := 0 + var end_of_func := false + + while current_index < len(input) and not end_of_func: + var character := input[current_index] + # step over strings + if character == "'" : + current_index = input.find("'", current_index+1) + 1 + if current_index == 0: + push_error("Parsing error on '%s', can't evaluate end of string." % input) + return "" + continue + if character == '"' : + # test for string blocks + if input.find('"""', current_index) == current_index: + current_index = input.find('"""', current_index+3) + 3 + else: + current_index = input.find('"', current_index+1) + 1 + if current_index == 0: + push_error("Parsing error on '%s', can't evaluate end of string." % input) + return "" + continue + + match character: + # count if inside an array + "[": in_array += 1 + "]": in_array -= 1 + # count if inside a function + "(": bracket_count += 1 + ")": + bracket_count -= 1 + if bracket_count < 0 and in_array <= 0: + end_of_func = true + ",": + if bracket_count == 0 and in_array == 0: + end_of_func = true + current_index += 1 + if remove_trailing_char: + # check if the parsed value ends with comma or end of doubled breaked + # `,` or `())` + var trailing_char := input[current_index-1] + if trailing_char == ',' or (bracket_count < 0 and trailing_char == ')'): + return input.substr(0, current_index-1) + return input.substr(0, current_index) + + +func extract_inner_class(source_rows: PackedStringArray, clazz_name :String) -> PackedStringArray: + for row_index in source_rows.size(): + var input := GdScriptParser.clean_up_row(source_rows[row_index]) + var token := next_token(input, 0) + if token.is_inner_class(): + if token.is_class_name(clazz_name): + token.parse(source_rows, row_index) + return token.content() + return PackedStringArray() + + +func extract_source_code(script_path :PackedStringArray) -> PackedStringArray: + if script_path.is_empty(): + push_error("Invalid script path '%s'" % script_path) + return PackedStringArray() + #load the source code + var resource_path := script_path[0] + var script :GDScript = load(resource_path) + var source_code := load_source_code(script, script_path) + var base_script := script.get_base_script() + if base_script: + _base_clazz = GdObjects.extract_class_name_from_class_path([base_script.resource_path]) + source_code += load_source_code(base_script, script_path) + return source_code + + +func extract_func_signature(rows :PackedStringArray, index :int) -> String: + var signature := "" + + for rowIndex in range(index, rows.size()): + var row := rows[rowIndex] + row = _regex_strip_comments.sub(row, "").strip_edges(false) + if row.is_empty(): + continue + signature += row + "\n" + if is_func_end(row): + return signature.strip_edges() + push_error("Can't fully extract function signature of '%s'" % rows[index]) + return "" + + +func load_source_code(script :GDScript, script_path :PackedStringArray) -> PackedStringArray: + var map := script.get_script_constant_map() + for key :String in map.keys(): + var value :Variant = map.get(key) + if value is GDScript: + var class_path := GdObjects.extract_class_path(value) + if class_path.size() > 1: + _scanned_inner_classes.append(class_path[1]) + + var source_code := GdScriptParser.to_unix_format(script.source_code) + var source_rows := source_code.split("\n") + # extract all inner class names + # want to extract an inner class? + if script_path.size() > 1: + var inner_clazz := script_path[1] + source_rows = extract_inner_class(source_rows, inner_clazz) + return PackedStringArray(source_rows) + + +func get_class_name(script :GDScript) -> String: + var source_code := GdScriptParser.to_unix_format(script.source_code) + var source_rows := source_code.split("\n") + + for index :int in min(10, source_rows.size()): + var input := source_rows[index] + var token := next_token(input, 0) + if token == TOKEN_CLASS_NAME: + var current_index := token._consumed + token = next_token(input, current_index) + current_index += token._consumed + token = tokenize_value(input, current_index, token) + return token.value() + # if no class_name found extract from file name + return GdObjects.to_pascal_case(script.resource_path.get_basename().get_file()) + + +func parse_func_name(row :String) -> String: + var input := GdScriptParser.clean_up_row(row) + var current_index := 0 + var token := next_token(input, current_index) + current_index += token._consumed + if token != TOKEN_FUNCTION_STATIC_DECLARATION and token != TOKEN_FUNCTION_DECLARATION: + return "" + while not token is Variable: + token = next_token(input, current_index) + current_index += token._consumed + return token._token + + +func parse_functions(rows :PackedStringArray, clazz_name :String, clazz_path :PackedStringArray, included_functions := PackedStringArray()) -> Array[GdFunctionDescriptor]: + var func_descriptors :Array[GdFunctionDescriptor] = [] + for rowIndex in rows.size(): + var row := rows[rowIndex] + # step over inner class functions + if row.begins_with("\t"): + continue + var input := GdScriptParser.clean_up_row(row) + # skip comments and empty lines + if input.begins_with("#") or input.length() == 0: + continue + var token := next_token(input, 0) + if token == TOKEN_FUNCTION_STATIC_DECLARATION or token == TOKEN_FUNCTION_DECLARATION: + if _is_func_included(input, included_functions): + var func_signature := extract_func_signature(rows, rowIndex) + var fd := parse_func_description(func_signature, clazz_name, clazz_path, rowIndex+1) + fd._is_coroutine = is_func_coroutine(rows, rowIndex) + func_descriptors.append(fd) + return func_descriptors + + +func is_func_coroutine(rows :PackedStringArray, index :int) -> bool: + var is_coroutine := false + for rowIndex in range( index+1, rows.size()): + var row := rows[rowIndex] + is_coroutine = row.contains("await") + if is_coroutine: + return true + var input := GdScriptParser.clean_up_row(row) + var token := next_token(input, 0) + if token == TOKEN_FUNCTION_STATIC_DECLARATION or token == TOKEN_FUNCTION_DECLARATION: + break + return is_coroutine + + +func _is_func_included(row :String, included_functions :PackedStringArray) -> bool: + if included_functions.is_empty(): + return true + for name in included_functions: + if row.find(name) != -1: + return true + return false + + +func parse_func_description(func_signature :String, clazz_name :String, clazz_path :PackedStringArray, line_number :int) -> GdFunctionDescriptor: + var name := parse_func_name(func_signature) + var return_type :int + var return_clazz := "" + var token := parse_return_token(func_signature) + if token == TOKEN_NOT_MATCH: + return_type = GdObjects.TYPE_VARIANT + else: + return_type = token.type() + if token.type() == TYPE_OBJECT: + return_clazz = _patch_inner_class_names(token.value(), clazz_name) + # is return type an enum? + if is_class_enum_type(return_clazz): + return_type = GdObjects.TYPE_ENUM + + return GdFunctionDescriptor.new( + name, + line_number, + is_virtual_func(clazz_name, clazz_path, name), + is_static_func(func_signature), + false, + return_type, + return_clazz, + parse_arguments(func_signature) + ) + + +# caches already parsed classes for virtual functions +# key: value: a Array of virtual function names +var _virtual_func_cache := Dictionary() + +func is_virtual_func(clazz_name :String, clazz_path :PackedStringArray, func_name :String) -> bool: + if _virtual_func_cache.has(clazz_name): + return _virtual_func_cache[clazz_name].has(func_name) + var virtual_functions := Array() + var method_list := GdObjects.extract_class_functions(clazz_name, clazz_path) + for method_descriptor :Dictionary in method_list: + var is_virtual_function :bool = method_descriptor["flags"] & METHOD_FLAG_VIRTUAL + if is_virtual_function: + virtual_functions.append(method_descriptor["name"]) + _virtual_func_cache[clazz_name] = virtual_functions + return _virtual_func_cache[clazz_name].has(func_name) + + +func is_static_func(func_signature :String) -> bool: + var input := GdScriptParser.clean_up_row(func_signature) + var token := next_token(input, 0) + return token == TOKEN_FUNCTION_STATIC_DECLARATION + + +func is_inner_class(clazz_path :PackedStringArray) -> bool: + return clazz_path.size() > 1 + + +func is_func_end(row :String) -> bool: + return row.strip_edges(false, true).ends_with(":") + + +func is_class_enum_type(value :String) -> bool: + if value == "Variant": + return false + # first check is given value a enum from the current class + if _script_constants.has(value): + return true + # otherwise we need to determie it by reflection + var script := GDScript.new() + script.source_code = """ + extends Resource + + static func is_class_enum_type() -> bool: + return typeof(%s) == TYPE_DICTIONARY + + """.dedent() % value + script.reload() + return script.call("is_class_enum_type") + + +func _patch_inner_class_names(clazz :String, clazz_name :String) -> String: + var base_clazz := clazz_name.split(".")[0] + var inner_clazz_name := clazz.split(".")[0] + if _scanned_inner_classes.has(inner_clazz_name): + return base_clazz + "." + clazz + if _script_constants.has(clazz): + return clazz_name + "." + clazz + return clazz + + +func extract_functions(script :GDScript, clazz_name :String, clazz_path :PackedStringArray) -> Array[GdFunctionDescriptor]: + var source_code := load_source_code(script, clazz_path) + _script_constants = script.get_script_constant_map() + return parse_functions(source_code, clazz_name, clazz_path) + + +func parse(clazz_name :String, clazz_path :PackedStringArray) -> GdUnitResult: + if clazz_path.is_empty(): + return GdUnitResult.error("Invalid script path '%s'" % clazz_path) + var is_inner_class_ := is_inner_class(clazz_path) + var script :GDScript = load(clazz_path[0]) + var function_descriptors := extract_functions(script, clazz_name, clazz_path) + var gd_class := GdClassDescriptor.new(clazz_name, is_inner_class_, function_descriptors) + # iterate over class dependencies + script = script.get_base_script() + while script != null: + clazz_name = GdObjects.extract_class_name_from_class_path([script.resource_path]) + function_descriptors = extract_functions(script, clazz_name, clazz_path) + gd_class.set_parent_clazz(GdClassDescriptor.new(clazz_name, is_inner_class_, function_descriptors)) + script = script.get_base_script() + return GdUnitResult.success(gd_class) diff --git a/addons/gdUnit4/src/core/parse/GdUnitExpressionRunner.gd b/addons/gdUnit4/src/core/parse/GdUnitExpressionRunner.gd new file mode 100644 index 0000000..f3130a0 --- /dev/null +++ b/addons/gdUnit4/src/core/parse/GdUnitExpressionRunner.gd @@ -0,0 +1,26 @@ +class_name GdUnitExpressionRunner +extends RefCounted + +const CLASS_TEMPLATE = """ +class_name _ExpressionRunner extends '${clazz_path}' + +func __run_expression() -> Variant: + return $expression + +""" + +func execute(src_script :GDScript, expression :String) -> Variant: + var script := GDScript.new() + var resource_path := "res://addons/gdUnit4/src/Fuzzers.gd" if src_script.resource_path.is_empty() else src_script.resource_path + script.source_code = CLASS_TEMPLATE.dedent()\ + .replace("${clazz_path}", resource_path)\ + .replace("$expression", expression) + script.reload(false) + var runner :Variant = script.new() + if runner.has_method("queue_free"): + runner.queue_free() + return runner.__run_expression() + + +func to_fuzzer(src_script :GDScript, expression :String) -> Fuzzer: + return execute(src_script, expression) as Fuzzer diff --git a/addons/gdUnit4/src/core/parse/GdUnitTestParameterSetResolver.gd b/addons/gdUnit4/src/core/parse/GdUnitTestParameterSetResolver.gd new file mode 100644 index 0000000..d67ee25 --- /dev/null +++ b/addons/gdUnit4/src/core/parse/GdUnitTestParameterSetResolver.gd @@ -0,0 +1,193 @@ +class_name GdUnitTestParameterSetResolver +extends RefCounted + +const CLASS_TEMPLATE = """ +class_name _ParameterExtractor extends '${clazz_path}' + +func __extract_test_parameters() -> Array: + return ${test_params} + +""" + +const EXCLUDE_PROPERTIES_TO_COPY = [ + "script", + "type", + "Node", + "_import_path"] + + +var _fd: GdFunctionDescriptor +var _test_case_names_cache := PackedStringArray() +var _static_sets_by_index := {} +var _is_static := true + +func _init(fd: GdFunctionDescriptor) -> void: + _fd = fd + + +func is_parameterized() -> bool: + return _fd.is_parameterized() + + +func is_parameter_sets_static() -> bool: + return _is_static + + +func is_parameter_set_static(index: int) -> bool: + return _is_static and _static_sets_by_index.get(index, false) + + +# validates the given arguments are complete and matches to required input fields of the test function +func validate(input_value_set: Array) -> String: + var input_arguments := _fd.args() + # check given parameter set with test case arguments + var expected_arg_count := input_arguments.size() - 1 + for input_values :Variant in input_value_set: + var parameter_set_index := input_value_set.find(input_values) + if input_values is Array: + var current_arg_count :int = input_values.size() + if current_arg_count != expected_arg_count: + return "\n The parameter set at index [%d] does not match the expected input parameters!\n The test case requires [%d] input parameters, but the set contains [%d]" % [parameter_set_index, expected_arg_count, current_arg_count] + var error := GdUnitTestParameterSetResolver.validate_parameter_types(input_arguments, input_values, parameter_set_index) + if not error.is_empty(): + return error + else: + return "\n The parameter set at index [%d] does not match the expected input parameters!\n Expecting an array of input values." % parameter_set_index + return "" + + +static func validate_parameter_types(input_arguments: Array, input_values: Array, parameter_set_index: int) -> String: + for i in input_arguments.size(): + var input_param: GdFunctionArgument = input_arguments[i] + # only check the test input arguments + if input_param.is_parameter_set(): + continue + var input_param_type := input_param.type() + var input_value :Variant = input_values[i] + var input_value_type := typeof(input_value) + # input parameter is not typed or is Variant we skip the type test + if input_param_type == TYPE_NIL or input_param_type == GdObjects.TYPE_VARIANT: + continue + # is input type enum allow int values + if input_param_type == GdObjects.TYPE_VARIANT and input_value_type == TYPE_INT: + continue + # allow only equal types and object == null + if input_param_type == TYPE_OBJECT and input_value_type == TYPE_NIL: + continue + if input_param_type != input_value_type: + return "\n The parameter set at index [%d] does not match the expected input parameters!\n The value '%s' does not match the required input parameter <%s>." % [parameter_set_index, input_value, input_param] + return "" + + +func build_test_case_names(test_case: _TestCase) -> PackedStringArray: + if not is_parameterized(): + return [] + # if test names already resolved? + if not _test_case_names_cache.is_empty(): + return _test_case_names_cache + + var fa := GdFunctionArgument.get_parameter_set(_fd.args()) + var parameter_sets := fa.parameter_sets() + # if no parameter set detected we need to resolve it by using reflection + if parameter_sets.size() == 0: + _test_case_names_cache = _extract_test_names_by_reflection(test_case) + _is_static = false + else: + var property_names := _extract_property_names(test_case.get_parent()) + for parameter_set_index in parameter_sets.size(): + var parameter_set := parameter_sets[parameter_set_index] + _static_sets_by_index[parameter_set_index] = _is_static_parameter_set(parameter_set, property_names) + _test_case_names_cache.append(GdUnitTestParameterSetResolver._build_test_case_name(test_case, parameter_set, parameter_set_index)) + parameter_set_index += 1 + return _test_case_names_cache + + +func _extract_property_names(node :Node) -> PackedStringArray: + return node.get_property_list()\ + .map(func(property :Dictionary) -> String: return property["name"])\ + .filter(func(property :String) -> bool: return !EXCLUDE_PROPERTIES_TO_COPY.has(property)) + + +# tests if the test property set contains an property reference by name, if not the parameter set holds only static values +func _is_static_parameter_set(parameters :String, property_names :PackedStringArray) -> bool: + for property_name in property_names: + if parameters.contains(property_name): + _is_static = false + return false + return true + + +func _extract_test_names_by_reflection(test_case: _TestCase) -> PackedStringArray: + var parameter_sets := load_parameter_sets(test_case) + var test_case_names: PackedStringArray = [] + for index in parameter_sets.size(): + test_case_names.append(GdUnitTestParameterSetResolver._build_test_case_name(test_case, str(parameter_sets[index]), index)) + return test_case_names + + +static func _build_test_case_name(test_case: _TestCase, test_parameter: String, parameter_set_index: int) -> String: + if not test_parameter.begins_with("["): + test_parameter = "[" + test_parameter + return "%s:%d %s" % [test_case.get_name(), parameter_set_index, test_parameter.replace("\t", "").replace('"', "'").replace("&'", "'")] + + +# extracts the arguments from the given test case, using kind of reflection solution +# to restore the parameters from a string representation to real instance type +func load_parameter_sets(test_case: _TestCase, do_validate := false) -> Array: + var source_script :Script = test_case.get_parent().get_script() + var parameter_arg := GdFunctionArgument.get_parameter_set(_fd.args()) + var source_code := CLASS_TEMPLATE \ + .replace("${clazz_path}", source_script.resource_path) \ + .replace("${test_params}", parameter_arg.value_as_string()) + var script := GDScript.new() + script.source_code = source_code + # enable this lines only for debuging + #script.resource_path = GdUnitFileAccess.create_temp_dir("parameter_extract") + "/%s__.gd" % test_case.get_name() + #DirAccess.remove_absolute(script.resource_path) + #ResourceSaver.save(script, script.resource_path) + var result := script.reload() + if result != OK: + push_error("Extracting test parameters failed! Script loading error: %s" % result) + return [] + var instance :Variant = script.new() + GdUnitTestParameterSetResolver.copy_properties(test_case.get_parent(), instance) + instance.queue_free() + var parameter_sets :Variant = instance.call("__extract_test_parameters") + if not do_validate: + return parameter_sets + # validate the parameter set + var error := validate(parameter_sets) + if not error.is_empty(): + test_case.skip(true, error) + test_case._interupted = true + if parameter_sets.size() != _test_case_names_cache.size(): + push_error("Internal Error: The resolved test_case names has invalid size!") + error = """ + %s: + The resolved test_case names has invalid size! + %s + """.dedent().trim_prefix("\n") % [ + GdAssertMessages._error("Internal Error"), + GdAssertMessages._error("Please report this issue as a bug!")] + test_case.get_parent().__execution_context\ + .reports()\ + .append(GdUnitReport.new().create(GdUnitReport.INTERUPTED, test_case.line_number(), error)) + test_case.skip(true, error) + test_case._interupted = true + return parameter_sets + + +static func copy_properties(source: Object, dest: Object) -> void: + for property in source.get_property_list(): + var property_name :String = property["name"] + var property_value :Variant = source.get(property_name) + if EXCLUDE_PROPERTIES_TO_COPY.has(property_name): + continue + #if dest.get(property_name) == null: + # prints("|%s|" % property_name, source.get(property_name)) + + # check for invalid name property + if property_name == "name" and property_value == "": + dest.set(property_name, ""); + continue + dest.set(property_name, property_value) diff --git a/addons/gdUnit4/src/core/report/GdUnitReport.gd b/addons/gdUnit4/src/core/report/GdUnitReport.gd new file mode 100644 index 0000000..eb7ed2e --- /dev/null +++ b/addons/gdUnit4/src/core/report/GdUnitReport.gd @@ -0,0 +1,74 @@ +class_name GdUnitReport +extends Resource + +# report type +enum { + SUCCESS, + WARN, + FAILURE, + ORPHAN, + TERMINATED, + INTERUPTED, + ABORT, + SKIPPED, +} + +var _type :int +var _line_number :int +var _message :String + + +func create(p_type :int, p_line_number :int, p_message :String) -> GdUnitReport: + _type = p_type + _line_number = p_line_number + _message = p_message + return self + + +func type() -> int: + return _type + + +func line_number() -> int: + return _line_number + + +func message() -> String: + return _message + + +func is_skipped() -> bool: + return _type == SKIPPED + + +func is_warning() -> bool: + return _type == WARN + + +func is_failure() -> bool: + return _type == FAILURE + + +func is_error() -> bool: + return _type == TERMINATED or _type == INTERUPTED or _type == ABORT + + +func _to_string() -> String: + if _line_number == -1: + return "[color=green]line [/color][color=aqua]:[/color] %s" % [_message] + return "[color=green]line [/color][color=aqua]%d:[/color] %s" % [_line_number, _message] + + +func serialize() -> Dictionary: + return { + "type" :_type, + "line_number" :_line_number, + "message" :_message + } + + +func deserialize(serialized :Dictionary) -> GdUnitReport: + _type = serialized["type"] + _line_number = serialized["line_number"] + _message = serialized["message"] + return self diff --git a/addons/gdUnit4/src/core/templates/test_suite/GdUnitTestSuiteDefaultTemplate.gd b/addons/gdUnit4/src/core/templates/test_suite/GdUnitTestSuiteDefaultTemplate.gd new file mode 100644 index 0000000..f7802d2 --- /dev/null +++ b/addons/gdUnit4/src/core/templates/test_suite/GdUnitTestSuiteDefaultTemplate.gd @@ -0,0 +1,36 @@ +class_name GdUnitTestSuiteDefaultTemplate +extends RefCounted + + +const DEFAULT_TEMP_TS_GD =""" + # GdUnit generated TestSuite + class_name ${suite_class_name} + extends GdUnitTestSuite + @warning_ignore('unused_parameter') + @warning_ignore('return_value_discarded') + + # TestSuite generated from + const __source = '${source_resource_path}' +""" + + +const DEFAULT_TEMP_TS_CS = """ + // GdUnit generated TestSuite + + using Godot; + using GdUnit3; + + namespace ${name_space} + { + using static Assertions; + using static Utils; + + [TestSuite] + public class ${suite_class_name} + { + // TestSuite generated from + private const string sourceClazzPath = "${source_resource_path}"; + + } + } +""" diff --git a/addons/gdUnit4/src/core/templates/test_suite/GdUnitTestSuiteTemplate.gd b/addons/gdUnit4/src/core/templates/test_suite/GdUnitTestSuiteTemplate.gd new file mode 100644 index 0000000..3e241f3 --- /dev/null +++ b/addons/gdUnit4/src/core/templates/test_suite/GdUnitTestSuiteTemplate.gd @@ -0,0 +1,142 @@ +class_name GdUnitTestSuiteTemplate +extends RefCounted + +const TEMPLATE_ID_GD = 1000 +const TEMPLATE_ID_CS = 2000 + +const SUPPORTED_TAGS_GD = """ + GdScript Tags are replaced when the test-suite is created. + + # The class name of the test-suite, formed from the source script. + ${suite_class_name} + # is used to build the test suite class name + class_name ${suite_class_name} + extends GdUnitTestSuite + + + # The class name in pascal case, formed from the source script. + ${source_class} + # can be used to create the class e.g. for source 'MyClass' + var my_test_class := ${source_class}.new() + # will be result in + var my_test_class := MyClass.new() + + # The class as variable name in snake case, formed from the source script. + ${source_var} + # Can be used to build the variable name e.g. for source 'MyClass' + var ${source_var} := ${source_class}.new() + # will be result in + var my_class := MyClass.new() + + # The full resource path from which the file was created. + ${source_resource_path} + # Can be used to load the script in your test + var my_script := load(${source_resource_path}) + # will be result in + var my_script := load("res://folder/my_class.gd") +""" + +const SUPPORTED_TAGS_CS = """ + C# Tags are replaced when the test-suite is created. + + // The namespace name of the test-suite + ${name_space} + namespace ${name_space} + + // The class name of the test-suite, formed from the source class. + ${suite_class_name} + // is used to build the test suite class name + [TestSuite] + public class ${suite_class_name} + + // The class name formed from the source class. + ${source_class} + // can be used to create the class e.g. for source 'MyClass' + private string myTestClass = new ${source_class}(); + // will be result in + private string myTestClass = new MyClass(); + + // The class as variable name in camelCase, formed from the source class. + ${source_var} + // Can be used to build the variable name e.g. for source 'MyClass' + private object ${source_var} = new ${source_class}(); + // will be result in + private object myClass = new MyClass(); + + // The full resource path from which the file was created. + ${source_resource_path} + // Can be used to load the script in your test + private object myScript = GD.Load(${source_resource_path}); + // will be result in + private object myScript = GD.Load("res://folder/MyClass.cs"); +""" + +const TAG_TEST_SUITE_CLASS = "${suite_class_name}" +const TAG_SOURCE_CLASS_NAME = "${source_class}" +const TAG_SOURCE_CLASS_VARNAME = "${source_var}" +const TAG_SOURCE_RESOURCE_PATH = "${source_resource_path}" + + +static func default_GD_template() -> String: + return GdUnitTestSuiteDefaultTemplate.DEFAULT_TEMP_TS_GD.dedent().trim_prefix("\n") + + +static func default_CS_template() -> String: + return GdUnitTestSuiteDefaultTemplate.DEFAULT_TEMP_TS_CS.dedent().trim_prefix("\n") + + +static func build_template(source_path: String) -> String: + var clazz_name :String = GdObjects.to_pascal_case(GdObjects.extract_class_name(source_path).value() as String) + return GdUnitSettings.get_setting(GdUnitSettings.TEMPLATE_TS_GD, default_GD_template())\ + .replace(TAG_TEST_SUITE_CLASS, clazz_name+"Test")\ + .replace(TAG_SOURCE_RESOURCE_PATH, source_path)\ + .replace(TAG_SOURCE_CLASS_NAME, clazz_name)\ + .replace(TAG_SOURCE_CLASS_VARNAME, GdObjects.to_snake_case(clazz_name)) + + +static func default_template(template_id :int) -> String: + if template_id != TEMPLATE_ID_GD and template_id != TEMPLATE_ID_CS: + push_error("Invalid template '%d' id! Cant load testsuite template" % template_id) + return "" + if template_id == TEMPLATE_ID_GD: + return default_GD_template() + return default_CS_template() + + +static func load_template(template_id :int) -> String: + if template_id != TEMPLATE_ID_GD and template_id != TEMPLATE_ID_CS: + push_error("Invalid template '%d' id! Cant load testsuite template" % template_id) + return "" + if template_id == TEMPLATE_ID_GD: + return GdUnitSettings.get_setting(GdUnitSettings.TEMPLATE_TS_GD, default_GD_template()) + return GdUnitSettings.get_setting(GdUnitSettings.TEMPLATE_TS_CS, default_CS_template()) + + +static func save_template(template_id :int, template :String) -> void: + if template_id != TEMPLATE_ID_GD and template_id != TEMPLATE_ID_CS: + push_error("Invalid template '%d' id! Cant load testsuite template" % template_id) + return + if template_id == TEMPLATE_ID_GD: + GdUnitSettings.save_property(GdUnitSettings.TEMPLATE_TS_GD, template.dedent().trim_prefix("\n")) + elif template_id == TEMPLATE_ID_CS: + GdUnitSettings.save_property(GdUnitSettings.TEMPLATE_TS_CS, template.dedent().trim_prefix("\n")) + + +static func reset_to_default(template_id :int) -> void: + if template_id != TEMPLATE_ID_GD and template_id != TEMPLATE_ID_CS: + push_error("Invalid template '%d' id! Cant load testsuite template" % template_id) + return + if template_id == TEMPLATE_ID_GD: + GdUnitSettings.save_property(GdUnitSettings.TEMPLATE_TS_GD, default_GD_template()) + else: + GdUnitSettings.save_property(GdUnitSettings.TEMPLATE_TS_CS, default_CS_template()) + + +static func load_tags(template_id :int) -> String: + if template_id != TEMPLATE_ID_GD and template_id != TEMPLATE_ID_CS: + push_error("Invalid template '%d' id! Cant load testsuite template" % template_id) + return "Error checked loading tags" + if template_id == TEMPLATE_ID_GD: + return SUPPORTED_TAGS_GD + else: + return SUPPORTED_TAGS_CS diff --git a/addons/gdUnit4/src/core/thread/GdUnitThreadContext.gd b/addons/gdUnit4/src/core/thread/GdUnitThreadContext.gd new file mode 100644 index 0000000..fe326a6 --- /dev/null +++ b/addons/gdUnit4/src/core/thread/GdUnitThreadContext.gd @@ -0,0 +1,62 @@ +class_name GdUnitThreadContext +extends RefCounted + +var _thread :Thread +var _thread_name :String +var _thread_id :int +var _assert :GdUnitAssert +var _signal_collector :GdUnitSignalCollector +var _execution_context :GdUnitExecutionContext + + +func _init(thread :Thread = null) -> void: + if thread != null: + _thread = thread + _thread_name = thread.get_meta("name") + _thread_id = thread.get_id() as int + else: + _thread_name = "main" + _thread_id = OS.get_main_thread_id() + _signal_collector = GdUnitSignalCollector.new() + + +func dispose() -> void: + _assert = null + if is_instance_valid(_signal_collector): + _signal_collector.clear() + _signal_collector = null + _execution_context = null + _thread = null + + +func set_assert(value :GdUnitAssert) -> GdUnitThreadContext: + _assert = value + return self + + +func get_assert() -> GdUnitAssert: + return _assert + + +func set_execution_context(context :GdUnitExecutionContext) -> void: + _execution_context = context + + +func get_execution_context() -> GdUnitExecutionContext: + return _execution_context + + +func get_execution_context_id() -> int: + return _execution_context.get_instance_id() + + +func get_signal_collector() -> GdUnitSignalCollector: + return _signal_collector + + +func thread_id() -> int: + return _thread_id + + +func _to_string() -> String: + return "ThreadContext <%s>: %s " % [_thread_name, _thread_id] diff --git a/addons/gdUnit4/src/core/thread/GdUnitThreadManager.gd b/addons/gdUnit4/src/core/thread/GdUnitThreadManager.gd new file mode 100644 index 0000000..ad124ce --- /dev/null +++ b/addons/gdUnit4/src/core/thread/GdUnitThreadManager.gd @@ -0,0 +1,62 @@ +## A manager to run new thread and crate a ThreadContext shared over the actual test run +class_name GdUnitThreadManager +extends Object + +## { = } +var _thread_context_by_id := {} +## holds the current thread id +var _current_thread_id :int = -1 + +func _init() -> void: + # add initail the main thread + _current_thread_id = OS.get_thread_caller_id() + _thread_context_by_id[OS.get_main_thread_id()] = GdUnitThreadContext.new() + + +static func instance() -> GdUnitThreadManager: + return GdUnitSingleton.instance("GdUnitThreadManager", func() -> GdUnitThreadManager: return GdUnitThreadManager.new()) + + +## Runs a new thread by given name and Callable.[br] +## A new GdUnitThreadContext is created, which is used for the actual test execution.[br] +## We need this custom implementation while this bug is not solved +## Godot issue https://github.com/godotengine/godot/issues/79637 +static func run(name :String, cb :Callable) -> Variant: + return await instance()._run(name, cb) + + +## Returns the current valid thread context +static func get_current_context() -> GdUnitThreadContext: + return instance()._get_current_context() + + +func _run(name :String, cb :Callable) -> Variant: + # we do this hack because of `OS.get_thread_caller_id()` not returns the current id + # when await process_frame is called inside the fread + var save_current_thread_id := _current_thread_id + var thread := Thread.new() + thread.set_meta("name", name) + thread.start(cb) + _current_thread_id = thread.get_id() as int + _register_thread(thread, _current_thread_id) + var result :Variant = await thread.wait_to_finish() + _unregister_thread(_current_thread_id) + # restore original thread id + _current_thread_id = save_current_thread_id + return result + + +func _register_thread(thread :Thread, thread_id :int) -> void: + var context := GdUnitThreadContext.new(thread) + _thread_context_by_id[thread_id] = context + + +func _unregister_thread(thread_id :int) -> void: + var context := _thread_context_by_id.get(thread_id) as GdUnitThreadContext + if context: + _thread_context_by_id.erase(thread_id) + context.dispose() + + +func _get_current_context() -> GdUnitThreadContext: + return _thread_context_by_id.get(_current_thread_id) diff --git a/addons/gdUnit4/src/extractors/GdUnitFuncValueExtractor.gd b/addons/gdUnit4/src/extractors/GdUnitFuncValueExtractor.gd new file mode 100644 index 0000000..29cc62b --- /dev/null +++ b/addons/gdUnit4/src/extractors/GdUnitFuncValueExtractor.gd @@ -0,0 +1,69 @@ +# This class defines a value extractor by given function name and args +extends GdUnitValueExtractor + +var _func_names :PackedStringArray +var _args :Array + +func _init(func_name :String, p_args :Array) -> void: + _func_names = func_name.split(".") + _args = p_args + + +func func_names() -> PackedStringArray: + return _func_names + + +func args() -> Array: + return _args + + +# Extracts a value by given `func_name` and `args`, +# Allows to use a chained list of functions setarated ba a dot. +# e.g. "func_a.func_b.name" +# do calls instance.func_a().func_b().name() and returns finally the name +# If a function returns an array, all elements will by collected in a array +# e.g. "get_children.get_name" checked a node +# do calls node.get_children() for all childs get_name() and returns all names in an array +# +# if the value not a Object or not accesible be `func_name` the value is converted to `"n.a."` +# expecing null values +func extract_value(value :Variant) -> Variant: + if value == null: + return null + for func_name in func_names(): + if GdArrayTools.is_array_type(value): + var values := Array() + for element :Variant in Array(value): + values.append(_call_func(element, func_name)) + value = values + else: + value = _call_func(value, func_name) + var type := typeof(value) + if type == TYPE_STRING_NAME: + return str(value) + if type == TYPE_STRING and value == "n.a.": + return value + return value + + +func _call_func(value :Variant, func_name :String) -> Variant: + # for array types we need to call explicit by function name, using funcref is only supported for Objects + # TODO extend to all array functions + if GdArrayTools.is_array_type(value) and func_name == "empty": + return value.is_empty() + + if is_instance_valid(value): + # extract from function + if value.has_method(func_name): + var extract := Callable(value, func_name) + if extract.is_valid(): + return value.call(func_name) if args().is_empty() else value.callv(func_name, args()) + else: + # if no function exists than try to extract form parmeters + var parameter :Variant = value.get(func_name) + if parameter != null: + return parameter + # nothing found than return 'n.a.' + if GdUnitSettings.is_verbose_assert_warnings(): + push_warning("Extracting value from element '%s' by func '%s' failed! Converting to \"n.a.\"" % [value, func_name]) + return "n.a." diff --git a/addons/gdUnit4/src/fuzzers/FloatFuzzer.gd b/addons/gdUnit4/src/fuzzers/FloatFuzzer.gd new file mode 100644 index 0000000..347513f --- /dev/null +++ b/addons/gdUnit4/src/fuzzers/FloatFuzzer.gd @@ -0,0 +1,13 @@ +class_name FloatFuzzer +extends Fuzzer + +var _from: float = 0 +var _to: float = 0 + +func _init(from: float, to: float) -> void: + assert(from <= to, "Invalid range!") + _from = from + _to = to + +func next_value() -> float: + return randf_range(_from, _to) diff --git a/addons/gdUnit4/src/fuzzers/Fuzzer.gd b/addons/gdUnit4/src/fuzzers/Fuzzer.gd new file mode 100644 index 0000000..7cd6a58 --- /dev/null +++ b/addons/gdUnit4/src/fuzzers/Fuzzer.gd @@ -0,0 +1,39 @@ +# Base interface for fuzz testing +# https://en.wikipedia.org/wiki/Fuzzing +class_name Fuzzer +extends RefCounted +# To run a test with a specific fuzzer you have to add defailt argument checked your test case +# all arguments are optional [] +# syntax: +# func test_foo([fuzzer = ], [fuzzer_iterations=], [fuzzer_seed=]) +# example: +# # runs the test 'test_foo' 10 times with a random int value generated by the IntFuzzer +# func test_foo(fuzzer = Fuzzers.randomInt(), fuzzer_iterations=10) +# +# # runs the test 'test_foo2' 1000 times as default with a random seed='101010101' +# func test_foo2(fuzzer = Fuzzers.randomInt(), fuzzer_seed=101010101) + +const ITERATION_DEFAULT_COUNT = 1000 +const ARGUMENT_FUZZER_INSTANCE := "fuzzer" +const ARGUMENT_ITERATIONS := "fuzzer_iterations" +const ARGUMENT_SEED := "fuzzer_seed" + +var _iteration_index :int = 0 +var _iteration_limit :int = ITERATION_DEFAULT_COUNT + + +# generates the next fuzz value +# needs to be implement +func next_value() -> Variant: + push_error("Invalid vall. Fuzzer not implemented 'next_value()'") + return null + + +# returns the current iteration index +func iteration_index() -> int: + return _iteration_index + + +# returns the amount of iterations where the fuzzer will be run +func iteration_limit() -> int: + return _iteration_limit diff --git a/addons/gdUnit4/src/fuzzers/IntFuzzer.gd b/addons/gdUnit4/src/fuzzers/IntFuzzer.gd new file mode 100644 index 0000000..064dc20 --- /dev/null +++ b/addons/gdUnit4/src/fuzzers/IntFuzzer.gd @@ -0,0 +1,32 @@ +class_name IntFuzzer +extends Fuzzer + +enum { + NORMAL, + EVEN, + ODD +} + +var _from :int = 0 +var _to : int = 0 +var _mode : int = NORMAL + + +func _init(from: int, to: int, mode :int = NORMAL) -> void: + assert(from <= to, "Invalid range!") + _from = from + _to = to + _mode = mode + + +func next_value() -> int: + var value := randi_range(_from, _to) + match _mode: + NORMAL: + return value + EVEN: + return int((value / 2.0) * 2) + ODD: + return int((value / 2.0) * 2 + 1) + _: + return value diff --git a/addons/gdUnit4/src/fuzzers/StringFuzzer.gd b/addons/gdUnit4/src/fuzzers/StringFuzzer.gd new file mode 100644 index 0000000..9b13e8a --- /dev/null +++ b/addons/gdUnit4/src/fuzzers/StringFuzzer.gd @@ -0,0 +1,64 @@ +class_name StringFuzzer +extends Fuzzer + + +const DEFAULT_CHARSET = "a-zA-Z0-9+-_" + +var _min_length :int +var _max_length :int +var _charset :PackedByteArray + + +func _init(min_length :int, max_length :int, pattern :String = DEFAULT_CHARSET) -> void: + assert(min_length>0 and min_length < max_length) + assert(not null or not pattern.is_empty()) + _min_length = min_length + _max_length = max_length + _charset = StringFuzzer.extract_charset(pattern) + + +static func extract_charset(pattern :String) -> PackedByteArray: + var reg := RegEx.new() + if reg.compile(pattern) != OK: + push_error("Invalid pattern to generate Strings! Use e.g 'a-zA-Z0-9+-_'") + return PackedByteArray() + + var charset := Array() + var char_before := -1 + var index := 0 + while index < pattern.length(): + var char_current := pattern.unicode_at(index) + # - range token at first or last pos? + if char_current == 45 and (index == 0 or index == pattern.length()-1): + charset.append(char_current) + index += 1 + continue + index += 1 + # range starts + if char_current == 45 and char_before != -1: + var char_next := pattern.unicode_at(index) + var characters := build_chars(char_before, char_next) + for character in characters: + charset.append(character) + char_before = -1 + index += 1 + continue + char_before = char_current + charset.append(char_current) + return PackedByteArray(charset) + + +static func build_chars(from :int, to :int) -> Array[int]: + var characters :Array[int] = [] + for character in range(from+1, to+1): + characters.append(character) + return characters + + +func next_value() -> String: + var value := PackedByteArray() + var max_char := len(_charset) + var length :int = max(_min_length, randi() % _max_length) + for i in length: + value.append(_charset[randi() % max_char]) + return value.get_string_from_utf8() diff --git a/addons/gdUnit4/src/fuzzers/Vector2Fuzzer.gd b/addons/gdUnit4/src/fuzzers/Vector2Fuzzer.gd new file mode 100644 index 0000000..855cf6a --- /dev/null +++ b/addons/gdUnit4/src/fuzzers/Vector2Fuzzer.gd @@ -0,0 +1,18 @@ +class_name Vector2Fuzzer +extends Fuzzer + + +var _from :Vector2 +var _to : Vector2 + + +func _init(from: Vector2, to: Vector2) -> void: + assert(from <= to, "Invalid range!") + _from = from + _to = to + + +func next_value() -> Vector2: + var x := randf_range(_from.x, _to.x) + var y := randf_range(_from.y, _to.y) + return Vector2(x, y) diff --git a/addons/gdUnit4/src/fuzzers/Vector3Fuzzer.gd b/addons/gdUnit4/src/fuzzers/Vector3Fuzzer.gd new file mode 100644 index 0000000..c773ab5 --- /dev/null +++ b/addons/gdUnit4/src/fuzzers/Vector3Fuzzer.gd @@ -0,0 +1,19 @@ +class_name Vector3Fuzzer +extends Fuzzer + + +var _from :Vector3 +var _to : Vector3 + + +func _init(from: Vector3, to: Vector3) -> void: + assert(from <= to, "Invalid range!") + _from = from + _to = to + + +func next_value() -> Vector3: + var x := randf_range(_from.x, _to.x) + var y := randf_range(_from.y, _to.y) + var z := randf_range(_from.z, _to.z) + return Vector3(x, y, z) diff --git a/addons/gdUnit4/src/matchers/AnyArgumentMatcher.gd b/addons/gdUnit4/src/matchers/AnyArgumentMatcher.gd new file mode 100644 index 0000000..bd50313 --- /dev/null +++ b/addons/gdUnit4/src/matchers/AnyArgumentMatcher.gd @@ -0,0 +1,11 @@ +class_name AnyArgumentMatcher +extends GdUnitArgumentMatcher + + +@warning_ignore("unused_parameter") +func is_match(value :Variant) -> bool: + return true + + +func _to_string() -> String: + return "any()" diff --git a/addons/gdUnit4/src/matchers/AnyBuildInTypeArgumentMatcher.gd b/addons/gdUnit4/src/matchers/AnyBuildInTypeArgumentMatcher.gd new file mode 100644 index 0000000..ba34431 --- /dev/null +++ b/addons/gdUnit4/src/matchers/AnyBuildInTypeArgumentMatcher.gd @@ -0,0 +1,50 @@ +class_name AnyBuildInTypeArgumentMatcher +extends GdUnitArgumentMatcher + +var _type : PackedInt32Array = [] + + +func _init(type :PackedInt32Array) -> void: + _type = type + + +func is_match(value :Variant) -> bool: + return _type.has(typeof(value)) + + +func _to_string() -> String: + match _type[0]: + TYPE_BOOL: return "any_bool()" + TYPE_STRING, TYPE_STRING_NAME: return "any_string()" + TYPE_INT: return "any_int()" + TYPE_FLOAT: return "any_float()" + TYPE_COLOR: return "any_color()" + TYPE_VECTOR2: return "any_vector2()" if _type.size() == 1 else "any_vector()" + TYPE_VECTOR2I: return "any_vector2i()" + TYPE_VECTOR3: return "any_vector3()" + TYPE_VECTOR3I: return "any_vector3i()" + TYPE_VECTOR4: return "any_vector4()" + TYPE_VECTOR4I: return "any_vector4i()" + TYPE_RECT2: return "any_rect2()" + TYPE_RECT2I: return "any_rect2i()" + TYPE_PLANE: return "any_plane()" + TYPE_QUATERNION: return "any_quat()" + TYPE_AABB: return "any_aabb()" + TYPE_BASIS: return "any_basis()" + TYPE_TRANSFORM2D: return "any_transform_2d()" + TYPE_TRANSFORM3D: return "any_transform_3d()" + TYPE_NODE_PATH: return "any_node_path()" + TYPE_RID: return "any_rid()" + TYPE_OBJECT: return "any_object()" + TYPE_DICTIONARY: return "any_dictionary()" + TYPE_ARRAY: return "any_array()" + TYPE_PACKED_BYTE_ARRAY: return "any_packed_byte_array()" + TYPE_PACKED_INT32_ARRAY: return "any_packed_int32_array()" + TYPE_PACKED_INT64_ARRAY: return "any_packed_int64_array()" + TYPE_PACKED_FLOAT32_ARRAY: return "any_packed_float32_array()" + TYPE_PACKED_FLOAT64_ARRAY: return "any_packed_float64_array()" + TYPE_PACKED_STRING_ARRAY: return "any_packed_string_array()" + TYPE_PACKED_VECTOR2_ARRAY: return "any_packed_vector2_array()" + TYPE_PACKED_VECTOR3_ARRAY: return "any_packed_vector3_array()" + TYPE_PACKED_COLOR_ARRAY: return "any_packed_color_array()" + _: return "any()" diff --git a/addons/gdUnit4/src/matchers/AnyClazzArgumentMatcher.gd b/addons/gdUnit4/src/matchers/AnyClazzArgumentMatcher.gd new file mode 100644 index 0000000..2cf0790 --- /dev/null +++ b/addons/gdUnit4/src/matchers/AnyClazzArgumentMatcher.gd @@ -0,0 +1,30 @@ +class_name AnyClazzArgumentMatcher +extends GdUnitArgumentMatcher + +var _clazz :Object + + +func _init(clazz :Object) -> void: + _clazz = clazz + + +func is_match(value :Variant) -> bool: + if typeof(value) != TYPE_OBJECT: + return false + if is_instance_valid(value) and GdObjects.is_script(_clazz): + return value.get_script() == _clazz + return is_instance_of(value, _clazz) + + +func _to_string() -> String: + if (_clazz as Object).is_class("GDScriptNativeClass"): + var instance :Object = _clazz.new() + var clazz_name := instance.get_class() + if not instance is RefCounted: + instance.free() + return "any_class(<"+clazz_name+">)"; + if _clazz is GDScript: + var result := GdObjects.extract_class_name(_clazz) + if result.is_success(): + return "any_class(<"+ result.value() + ">)" + return "any_class()" diff --git a/addons/gdUnit4/src/matchers/ChainedArgumentMatcher.gd b/addons/gdUnit4/src/matchers/ChainedArgumentMatcher.gd new file mode 100644 index 0000000..ec62ecf --- /dev/null +++ b/addons/gdUnit4/src/matchers/ChainedArgumentMatcher.gd @@ -0,0 +1,22 @@ +class_name ChainedArgumentMatcher +extends GdUnitArgumentMatcher + +var _matchers :Array + + +func _init(matchers :Array) -> void: + _matchers = matchers + + +func is_match(arguments :Variant) -> bool: + var arg_array := arguments as Array + if arg_array.size() != _matchers.size(): + return false + + for index in arg_array.size(): + var arg :Variant = arg_array[index] + var matcher := _matchers[index] as GdUnitArgumentMatcher + + if not matcher.is_match(arg): + return false + return true diff --git a/addons/gdUnit4/src/matchers/EqualsArgumentMatcher.gd b/addons/gdUnit4/src/matchers/EqualsArgumentMatcher.gd new file mode 100644 index 0000000..2d387ed --- /dev/null +++ b/addons/gdUnit4/src/matchers/EqualsArgumentMatcher.gd @@ -0,0 +1,22 @@ +class_name EqualsArgumentMatcher +extends GdUnitArgumentMatcher + +var _current :Variant +var _auto_deep_check_mode :bool + + +func _init(current :Variant, auto_deep_check_mode := false) -> void: + _current = current + _auto_deep_check_mode = auto_deep_check_mode + + +func is_match(value :Variant) -> bool: + var case_sensitive_check := true + return GdObjects.equals(_current, value, case_sensitive_check, compare_mode(value)) + + +func compare_mode(value :Variant) -> GdObjects.COMPARE_MODE: + if _auto_deep_check_mode and is_instance_valid(value): + # we do deep check on all InputEvent's + return GdObjects.COMPARE_MODE.PARAMETER_DEEP_TEST if value is InputEvent else GdObjects.COMPARE_MODE.OBJECT_REFERENCE + return GdObjects.COMPARE_MODE.OBJECT_REFERENCE diff --git a/addons/gdUnit4/src/matchers/GdUnitArgumentMatcher.gd b/addons/gdUnit4/src/matchers/GdUnitArgumentMatcher.gd new file mode 100644 index 0000000..aa43b80 --- /dev/null +++ b/addons/gdUnit4/src/matchers/GdUnitArgumentMatcher.gd @@ -0,0 +1,8 @@ +## The base class of all argument matchers +class_name GdUnitArgumentMatcher +extends RefCounted + + +@warning_ignore("unused_parameter") +func is_match(value :Variant) -> bool: + return true diff --git a/addons/gdUnit4/src/matchers/GdUnitArgumentMatchers.gd b/addons/gdUnit4/src/matchers/GdUnitArgumentMatchers.gd new file mode 100644 index 0000000..a40eace --- /dev/null +++ b/addons/gdUnit4/src/matchers/GdUnitArgumentMatchers.gd @@ -0,0 +1,32 @@ +class_name GdUnitArgumentMatchers +extends RefCounted + +const TYPE_ANY = TYPE_MAX + 100 + + +static func to_matcher(arguments :Array[Variant], auto_deep_check_mode := false) -> ChainedArgumentMatcher: + var matchers :Array[Variant] = [] + for arg :Variant in arguments: + # argument is already a matcher + if arg is GdUnitArgumentMatcher: + matchers.append(arg) + else: + # pass argument into equals matcher + matchers.append(EqualsArgumentMatcher.new(arg, auto_deep_check_mode)) + return ChainedArgumentMatcher.new(matchers) + + +static func any() -> GdUnitArgumentMatcher: + return AnyArgumentMatcher.new() + + +static func by_type(type :int) -> GdUnitArgumentMatcher: + return AnyBuildInTypeArgumentMatcher.new([type]) + + +static func by_types(types :PackedInt32Array) -> GdUnitArgumentMatcher: + return AnyBuildInTypeArgumentMatcher.new(types) + + +static func any_class(clazz :Object) -> GdUnitArgumentMatcher: + return AnyClazzArgumentMatcher.new(clazz) diff --git a/addons/gdUnit4/src/mocking/GdUnitMock.gd b/addons/gdUnit4/src/mocking/GdUnitMock.gd new file mode 100644 index 0000000..bb50e5e --- /dev/null +++ b/addons/gdUnit4/src/mocking/GdUnitMock.gd @@ -0,0 +1,40 @@ +class_name GdUnitMock +extends RefCounted + +## do call the real implementation +const CALL_REAL_FUNC = "CALL_REAL_FUNC" +## do return a default value for primitive types or null +const RETURN_DEFAULTS = "RETURN_DEFAULTS" +## do return a default value for primitive types and a fully mocked value for Object types +## builds full deep mocked object +const RETURN_DEEP_STUB = "RETURN_DEEP_STUB" + +var _value :Variant + + +func _init(value :Variant) -> void: + _value = value + + +## Selects the mock to work on, used in combination with [method GdUnitTestSuite.do_return][br] +## Example: +## [codeblock] +## do_return(false).on(myMock).is_selected() +## [/codeblock] +func on(obj :Object) -> Object: + if not GdUnitMock._is_mock_or_spy( obj, "__do_return"): + return obj + return obj.__do_return(_value) + + +## [color=yellow]`checked` is obsolete, use `on` instead [/color] +func checked(obj :Object) -> Object: + push_warning("Using a deprecated function 'checked' use `on` instead") + return on(obj) + + +static func _is_mock_or_spy(obj :Object, func_sig :String) -> bool: + if obj is GDScript and not obj.get_script().has_script_method(func_sig): + push_error("Error: You try to use a non mock or spy!") + return false + return true diff --git a/addons/gdUnit4/src/mocking/GdUnitMockBuilder.gd b/addons/gdUnit4/src/mocking/GdUnitMockBuilder.gd new file mode 100644 index 0000000..b3bb41a --- /dev/null +++ b/addons/gdUnit4/src/mocking/GdUnitMockBuilder.gd @@ -0,0 +1,167 @@ +class_name GdUnitMockBuilder +extends GdUnitClassDoubler + +const GdUnitTools := preload("res://addons/gdUnit4/src/core/GdUnitTools.gd") +const MOCK_TEMPLATE :GDScript = preload("res://addons/gdUnit4/src/mocking/GdUnitMockImpl.gd") + + +static func is_push_errors() -> bool: + return GdUnitSettings.is_report_push_errors() + + +static func build(clazz :Variant, mock_mode :String, debug_write := false) -> Variant: + var push_errors := is_push_errors() + if not is_mockable(clazz, push_errors): + return null + # mocking a scene? + if GdObjects.is_scene(clazz): + return mock_on_scene(clazz as PackedScene, debug_write) + elif typeof(clazz) == TYPE_STRING and clazz.ends_with(".tscn"): + return mock_on_scene(load(clazz), debug_write) + # mocking a script + var instance := create_instance(clazz) + var mock := mock_on_script(instance, clazz, [ "get_script"], debug_write) + if not instance is RefCounted: + instance.free() + if mock == null: + return null + var mock_instance :Variant = mock.new() + mock_instance.__set_script(mock) + mock_instance.__set_singleton() + mock_instance.__set_mode(mock_mode) + return register_auto_free(mock_instance) + + +static func create_instance(clazz :Variant) -> Object: + if typeof(clazz) == TYPE_OBJECT and (clazz as Object).is_class("GDScriptNativeClass"): + return clazz.new() + elif (clazz is GDScript) || (typeof(clazz) == TYPE_STRING and clazz.ends_with(".gd")): + var script :GDScript = null + if clazz is GDScript: + script = clazz + else: + script = load(clazz) + + var args := GdObjects.build_function_default_arguments(script, "_init") + return script.callv("new", args) + elif typeof(clazz) == TYPE_STRING and ClassDB.can_instantiate(clazz): + return ClassDB.instantiate(clazz) + push_error("Can't create a mock validation instance from class: `%s`" % clazz) + return null + + +static func mock_on_scene(scene :PackedScene, debug_write :bool) -> Object: + var push_errors := is_push_errors() + if not scene.can_instantiate(): + if push_errors: + push_error("Can't instanciate scene '%s'" % scene.resource_path) + return null + var scene_instance := scene.instantiate() + # we can only mock checked a scene with attached script + if scene_instance.get_script() == null: + if push_errors: + push_error("Can't create a mockable instance for a scene without script '%s'" % scene.resource_path) + GdUnitTools.free_instance(scene_instance) + return null + + var script_path :String = scene_instance.get_script().get_path() + var mock := mock_on_script(scene_instance, script_path, GdUnitClassDoubler.EXLCUDE_SCENE_FUNCTIONS, debug_write) + if mock == null: + return null + scene_instance.set_script(mock) + scene_instance.__set_singleton() + scene_instance.__set_mode(GdUnitMock.CALL_REAL_FUNC) + return register_auto_free(scene_instance) + + +static func get_class_info(clazz :Variant) -> Dictionary: + var clazz_name :String = GdObjects.extract_class_name(clazz).value() + var clazz_path := GdObjects.extract_class_path(clazz) + return { + "class_name" : clazz_name, + "class_path" : clazz_path + } + + +static func mock_on_script(instance :Object, clazz :Variant, function_excludes :PackedStringArray, debug_write :bool) -> GDScript: + var push_errors := is_push_errors() + var function_doubler := GdUnitMockFunctionDoubler.new(push_errors) + var class_info := get_class_info(clazz) + var lines := load_template(MOCK_TEMPLATE.source_code, class_info, instance) + + var clazz_name :String = class_info.get("class_name") + var clazz_path :PackedStringArray = class_info.get("class_path", [clazz_name]) + lines += double_functions(instance, clazz_name, clazz_path, function_doubler, function_excludes) + + var mock := GDScript.new() + mock.source_code = "\n".join(lines) + mock.resource_name = "Mock%s.gd" % clazz_name + mock.resource_path = GdUnitFileAccess.create_temp_dir("mock") + "/Mock%s_%d.gd" % [clazz_name, Time.get_ticks_msec()] + + if debug_write: + DirAccess.remove_absolute(mock.resource_path) + ResourceSaver.save(mock, mock.resource_path) + var error := mock.reload(true) + if error != OK: + push_error("Critical!!!, MockBuilder error, please contact the developer.") + return null + return mock + + +static func is_mockable(clazz :Variant, push_errors :bool=false) -> bool: + var clazz_type := typeof(clazz) + if clazz_type != TYPE_OBJECT and clazz_type != TYPE_STRING: + push_error("Invalid clazz type is used") + return false + # is PackedScene + if GdObjects.is_scene(clazz): + return true + if GdObjects.is_native_class(clazz): + return true + # verify class type + if GdObjects.is_object(clazz): + if GdObjects.is_instance(clazz): + if push_errors: + push_error("It is not allowed to mock an instance '%s', use class name instead, Read 'Mocker' documentation for details" % clazz) + return false + + if not GdObjects.can_be_instantiate(clazz): + if push_errors: + push_error("Can't create a mockable instance for class '%s'" % clazz) + return false + return true + # verify by class name checked registered classes + var clazz_name := clazz as String + if ClassDB.class_exists(clazz_name): + if Engine.has_singleton(clazz_name): + if push_errors: + push_error("Mocking a singelton class '%s' is not allowed! Read 'Mocker' documentation for details" % clazz_name) + return false + if not ClassDB.can_instantiate(clazz_name): + if push_errors: + push_error("Mocking class '%s' is not allowed it cannot be instantiated!" % clazz_name) + return false + # exclude classes where name starts with a underscore + if clazz_name.find("_") == 0: + if push_errors: + push_error("Can't create a mockable instance for protected class '%s'" % clazz_name) + return false + return true + # at least try to load as a script + var clazz_path := clazz_name + if not FileAccess.file_exists(clazz_path): + if push_errors: + push_error("'%s' cannot be mocked for the specified resource path, the resource does not exist" % clazz_name) + return false + # finally verify is a script resource + var resource := load(clazz_path) + if resource == null: + if push_errors: + push_error("'%s' cannot be mocked the script cannot be loaded." % clazz_name) + return false + # finally check is extending from script + return GdObjects.is_script(resource) or GdObjects.is_scene(resource) + + +static func register_auto_free(obj :Variant) -> Variant: + return GdUnitThreadManager.get_current_context().get_execution_context().register_auto_free(obj) diff --git a/addons/gdUnit4/src/mocking/GdUnitMockFunctionDoubler.gd b/addons/gdUnit4/src/mocking/GdUnitMockFunctionDoubler.gd new file mode 100644 index 0000000..4d8d300 --- /dev/null +++ b/addons/gdUnit4/src/mocking/GdUnitMockFunctionDoubler.gd @@ -0,0 +1,85 @@ +class_name GdUnitMockFunctionDoubler +extends GdFunctionDoubler + + +const TEMPLATE_FUNC_WITH_RETURN_VALUE = """ + var args :Array = ["$(func_name)", $(arguments)] + + if $(instance)__is_prepare_return_value(): + $(instance)__save_function_return_value(args) + return ${default_return_value} + if $(instance)__is_verify_interactions(): + $(instance)__verify_interactions(args) + return ${default_return_value} + else: + $(instance)__save_function_interaction(args) + + if $(instance)__do_call_real_func("$(func_name)", args): + return $(await)super($(arguments)) + return $(instance)__get_mocked_return_value_or_default(args, ${default_return_value}) + +""" + + +const TEMPLATE_FUNC_WITH_RETURN_VOID = """ + var args :Array = ["$(func_name)", $(arguments)] + + if $(instance)__is_prepare_return_value(): + if $(push_errors): + push_error(\"Mocking a void function '$(func_name)() -> void:' is not allowed.\") + return + if $(instance)__is_verify_interactions(): + $(instance)__verify_interactions(args) + return + else: + $(instance)__save_function_interaction(args) + + if $(instance)__do_call_real_func("$(func_name)"): + $(await)super($(arguments)) + +""" + + +const TEMPLATE_FUNC_VARARG_RETURN_VALUE = """ + var varargs :Array = __filter_vargs([$(varargs)]) + var args :Array = ["$(func_name)", $(arguments)] + varargs + + if $(instance)__is_prepare_return_value(): + if $(push_errors): + push_error(\"Mocking a void function '$(func_name)() -> void:' is not allowed.\") + $(instance)__save_function_return_value(args) + return ${default_return_value} + if $(instance)__is_verify_interactions(): + $(instance)__verify_interactions(args) + return ${default_return_value} + else: + $(instance)__save_function_interaction(args) + + if $(instance)__do_call_real_func("$(func_name)", args): + match varargs.size(): + 0: return $(await)super($(arguments)) + 1: return $(await)super($(arguments), varargs[0]) + 2: return $(await)super($(arguments), varargs[0], varargs[1]) + 3: return $(await)super($(arguments), varargs[0], varargs[1], varargs[2]) + 4: return $(await)super($(arguments), varargs[0], varargs[1], varargs[2], varargs[3]) + 5: return $(await)super($(arguments), varargs[0], varargs[1], varargs[2], varargs[3], varargs[4]) + 6: return $(await)super($(arguments), varargs[0], varargs[1], varargs[2], varargs[3], varargs[4], varargs[5]) + 7: return $(await)super($(arguments), varargs[0], varargs[1], varargs[2], varargs[3], varargs[4], varargs[5], varargs[6]) + 8: return $(await)super($(arguments), varargs[0], varargs[1], varargs[2], varargs[3], varargs[4], varargs[5], varargs[6], varargs[7]) + 9: return $(await)super($(arguments), varargs[0], varargs[1], varargs[2], varargs[3], varargs[4], varargs[5], varargs[6], varargs[7], varargs[8]) + 10: return $(await)super($(arguments), varargs[0], varargs[1], varargs[2], varargs[3], varargs[4], varargs[5], varargs[6], varargs[7], varargs[8], varargs[9]) + return __get_mocked_return_value_or_default(args, ${default_return_value}) + +""" + + +func _init(push_errors :bool = false) -> void: + super._init(push_errors) + + +func get_template(return_type :Variant, is_vararg :bool) -> String: + if is_vararg: + return TEMPLATE_FUNC_VARARG_RETURN_VALUE + if return_type is StringName: + return TEMPLATE_FUNC_WITH_RETURN_VALUE + return TEMPLATE_FUNC_WITH_RETURN_VOID if (return_type == TYPE_NIL or return_type == GdObjects.TYPE_VOID) else TEMPLATE_FUNC_WITH_RETURN_VALUE diff --git a/addons/gdUnit4/src/mocking/GdUnitMockImpl.gd b/addons/gdUnit4/src/mocking/GdUnitMockImpl.gd new file mode 100644 index 0000000..cbeb782 --- /dev/null +++ b/addons/gdUnit4/src/mocking/GdUnitMockImpl.gd @@ -0,0 +1,140 @@ + +################################################################################ +# internal mocking stuff +################################################################################ +const __INSTANCE_ID = "${instance_id}" +const __SOURCE_CLASS = "${source_class}" + +var __mock_working_mode := GdUnitMock.RETURN_DEFAULTS +var __excluded_methods :PackedStringArray = [] +var __do_return_value :Variant = null +var __prepare_return_value := false + +#{ = { +# = +# } +#} +var __mocked_return_values := Dictionary() + + +static func __instance() -> Object: + return Engine.get_meta(__INSTANCE_ID) + + +func _notification(what :int) -> void: + if what == NOTIFICATION_PREDELETE: + if Engine.has_meta(__INSTANCE_ID): + Engine.remove_meta(__INSTANCE_ID) + + +func __instance_id() -> String: + return __INSTANCE_ID + + +func __set_singleton() -> void: + # store self need to mock static functions + Engine.set_meta(__INSTANCE_ID, self) + + +func __release_double() -> void: + # we need to release the self reference manually to prevent orphan nodes + Engine.remove_meta(__INSTANCE_ID) + + +func __is_prepare_return_value() -> bool: + return __prepare_return_value + + +func __sort_by_argument_matcher(__left_args :Array, __right_args :Array) -> bool: + for __index in __left_args.size(): + var __larg :Variant = __left_args[__index] + if __larg is GdUnitArgumentMatcher: + return false + return true + + +# we need to sort by matcher arguments so that they are all at the end of the list +func __sort_dictionary(__unsorted_args :Dictionary) -> Dictionary: + # only need to sort if contains more than one entry + if __unsorted_args.size() <= 1: + return __unsorted_args + var __sorted_args := __unsorted_args.keys() + __sorted_args.sort_custom(__sort_by_argument_matcher) + var __sorted_result := {} + for __index in __sorted_args.size(): + var key :Variant = __sorted_args[__index] + __sorted_result[key] = __unsorted_args[key] + return __sorted_result + + +func __save_function_return_value(__fuction_args :Array) -> void: + var __func_name :String = __fuction_args[0] + var __func_args :Array = __fuction_args.slice(1) + var __mocked_return_value_by_args :Dictionary = __mocked_return_values.get(__func_name, {}) + __mocked_return_value_by_args[__func_args] = __do_return_value + __mocked_return_values[__func_name] = __sort_dictionary(__mocked_return_value_by_args) + __do_return_value = null + __prepare_return_value = false + + +func __is_mocked_args_match(__func_args :Array, __mocked_args :Array) -> bool: + var __is_matching := false + for __index in __mocked_args.size(): + var __fuction_args :Variant = __mocked_args[__index] + if __func_args.size() != __fuction_args.size(): + continue + __is_matching = true + for __arg_index in __func_args.size(): + var __func_arg :Variant = __func_args[__arg_index] + var __mock_arg :Variant = __fuction_args[__arg_index] + if __mock_arg is GdUnitArgumentMatcher: + __is_matching = __is_matching and __mock_arg.is_match(__func_arg) + else: + __is_matching = __is_matching and typeof(__func_arg) == typeof(__mock_arg) and __func_arg == __mock_arg + if not __is_matching: + break + if __is_matching: + break + return __is_matching + + +func __get_mocked_return_value_or_default(__fuction_args :Array, __default_return_value :Variant) -> Variant: + var __func_name :String = __fuction_args[0] + if not __mocked_return_values.has(__func_name): + return __default_return_value + var __func_args :Array = __fuction_args.slice(1) + var __mocked_args :Array = __mocked_return_values.get(__func_name).keys() + for __index in __mocked_args.size(): + var __margs :Variant = __mocked_args[__index] + if __is_mocked_args_match(__func_args, [__margs]): + return __mocked_return_values[__func_name][__margs] + return __default_return_value + + +func __set_script(__script :GDScript) -> void: + super.set_script(__script) + + +func __set_mode(mock_working_mode :String) -> Object: + __mock_working_mode = mock_working_mode + return self + + +func __do_call_real_func(__func_name :String, __func_args := []) -> bool: + var __is_call_real_func := __mock_working_mode == GdUnitMock.CALL_REAL_FUNC and not __excluded_methods.has(__func_name) + # do not call real funcions for mocked functions + if __is_call_real_func and __mocked_return_values.has(__func_name): + var __fuction_args :Array = __func_args.slice(1) + var __mocked_args :Array = __mocked_return_values.get(__func_name).keys() + return not __is_mocked_args_match(__fuction_args, __mocked_args) + return __is_call_real_func + + +func __exclude_method_call(exluded_methods :PackedStringArray) -> void: + __excluded_methods.append_array(exluded_methods) + + +func __do_return(mock_do_return_value :Variant) -> Object: + __do_return_value = mock_do_return_value + __prepare_return_value = true + return self diff --git a/addons/gdUnit4/src/monitor/ErrorLogEntry.gd b/addons/gdUnit4/src/monitor/ErrorLogEntry.gd new file mode 100644 index 0000000..4f767bb --- /dev/null +++ b/addons/gdUnit4/src/monitor/ErrorLogEntry.gd @@ -0,0 +1,61 @@ +extends RefCounted +class_name ErrorLogEntry + + +enum TYPE { + SCRIPT_ERROR, + PUSH_ERROR, + PUSH_WARNING +} + + +const GdUnitTools := preload("res://addons/gdUnit4/src/core/GdUnitTools.gd") + +const PATTERN_SCRIPT_ERROR := "USER SCRIPT ERROR:" +const PATTERN_PUSH_ERROR := "USER ERROR:" +const PATTERN_PUSH_WARNING := "USER WARNING:" + +static var _regex_parse_error_line_number: RegEx + +var _type :TYPE +var _line :int +var _message :String +var _details :String + + +func _init(type :TYPE, line :int, message :String, details :String) -> void: + _type = type + _line = line + _message = message + _details = details + + +static func extract_push_warning(records :PackedStringArray, index :int) -> ErrorLogEntry: + return _extract(records, index, TYPE.PUSH_WARNING, PATTERN_PUSH_WARNING) + + +static func extract_push_error(records :PackedStringArray, index :int) -> ErrorLogEntry: + return _extract(records, index, TYPE.PUSH_ERROR, PATTERN_PUSH_ERROR) + + +static func extract_error(records :PackedStringArray, index :int) -> ErrorLogEntry: + return _extract(records, index, TYPE.SCRIPT_ERROR, PATTERN_SCRIPT_ERROR) + + +static func _extract(records :PackedStringArray, index :int, type :TYPE, pattern :String) -> ErrorLogEntry: + var message := records[index] + if message.contains(pattern): + var error := message.replace(pattern, "").strip_edges() + var details := records[index+1].strip_edges() + var line := _parse_error_line_number(details) + return ErrorLogEntry.new(type, line, error, details) + return null + + +static func _parse_error_line_number(record :String) -> int: + if _regex_parse_error_line_number == null: + _regex_parse_error_line_number = GdUnitTools.to_regex("at: .*res://.*:(\\d+)") + var matches := _regex_parse_error_line_number.search(record) + if matches != null: + return matches.get_string(1).to_int() + return -1 diff --git a/addons/gdUnit4/src/monitor/GdUnitMonitor.gd b/addons/gdUnit4/src/monitor/GdUnitMonitor.gd new file mode 100644 index 0000000..b6429ca --- /dev/null +++ b/addons/gdUnit4/src/monitor/GdUnitMonitor.gd @@ -0,0 +1,24 @@ +# GdUnit Monitoring Base Class +class_name GdUnitMonitor +extends RefCounted + +var _id :String + +# constructs new Monitor with given id +func _init(p_id :String) -> void: + _id = p_id + + +# Returns the id of the monitor to uniqe identify +func id() -> String: + return _id + + +# starts monitoring +func start() -> void: + pass + + +# stops monitoring +func stop() -> void: + pass diff --git a/addons/gdUnit4/src/monitor/GdUnitOrphanNodesMonitor.gd b/addons/gdUnit4/src/monitor/GdUnitOrphanNodesMonitor.gd new file mode 100644 index 0000000..725dd1f --- /dev/null +++ b/addons/gdUnit4/src/monitor/GdUnitOrphanNodesMonitor.gd @@ -0,0 +1,27 @@ +class_name GdUnitOrphanNodesMonitor +extends GdUnitMonitor + +var _initial_count := 0 +var _orphan_count := 0 +var _orphan_detection_enabled :bool + + +func _init(name :String = "") -> void: + super("OrphanNodesMonitor:" + name) + _orphan_detection_enabled = GdUnitSettings.is_verbose_orphans() + + +func start() -> void: + _initial_count = _orphans() + + +func stop() -> void: + _orphan_count = max(0, _orphans() - _initial_count) + + +func _orphans() -> int: + return Performance.get_monitor(Performance.OBJECT_ORPHAN_NODE_COUNT) as int + + +func orphan_nodes() -> int: + return _orphan_count if _orphan_detection_enabled else 0 diff --git a/addons/gdUnit4/src/monitor/GodotGdErrorMonitor.gd b/addons/gdUnit4/src/monitor/GodotGdErrorMonitor.gd new file mode 100644 index 0000000..720fe5c --- /dev/null +++ b/addons/gdUnit4/src/monitor/GodotGdErrorMonitor.gd @@ -0,0 +1,85 @@ +class_name GodotGdErrorMonitor +extends GdUnitMonitor + +var _godot_log_file :String +var _eof :int +var _report_enabled := false +var _entries: Array[ErrorLogEntry] = [] + + +func _init() -> void: + super("GodotGdErrorMonitor") + _godot_log_file = GdUnitSettings.get_log_path() + _report_enabled = _is_reporting_enabled() + + +func start() -> void: + var file := FileAccess.open(_godot_log_file, FileAccess.READ) + if file: + file.seek_end(0) + _eof = file.get_length() + + +func stop() -> void: + pass + + +func to_reports() -> Array[GdUnitReport]: + var reports_ :Array[GdUnitReport] = [] + if _report_enabled: + reports_.assign(_entries.map(_to_report)) + _entries.clear() + return reports_ + + +static func _to_report(errorLog :ErrorLogEntry) -> GdUnitReport: + var failure := "%s\n\t%s\n%s %s" % [ + GdAssertMessages._error("Godot Runtime Error !"), + GdAssertMessages._colored_value(errorLog._details), + GdAssertMessages._error("Error:"), + GdAssertMessages._colored_value(errorLog._message)] + return GdUnitReport.new().create(GdUnitReport.ABORT, errorLog._line, failure) + + +func scan(force_collect_reports := false) -> Array[ErrorLogEntry]: + await Engine.get_main_loop().process_frame + await Engine.get_main_loop().physics_frame + _entries.append_array(_collect_log_entries(force_collect_reports)) + return _entries + + +func erase_log_entry(entry :ErrorLogEntry) -> void: + _entries.erase(entry) + + +func _collect_log_entries(force_collect_reports :bool) -> Array[ErrorLogEntry]: + var file := FileAccess.open(_godot_log_file, FileAccess.READ) + file.seek(_eof) + var records := PackedStringArray() + while not file.eof_reached(): + records.append(file.get_line()) + file.seek_end(0) + _eof = file.get_length() + var log_entries :Array[ErrorLogEntry]= [] + var is_report_errors := force_collect_reports or _is_report_push_errors() + var is_report_script_errors := force_collect_reports or _is_report_script_errors() + for index in records.size(): + if force_collect_reports: + log_entries.append(ErrorLogEntry.extract_push_warning(records, index)) + if is_report_errors: + log_entries.append(ErrorLogEntry.extract_push_error(records, index)) + if is_report_script_errors: + log_entries.append(ErrorLogEntry.extract_error(records, index)) + return log_entries.filter(func(value :ErrorLogEntry) -> bool: return value != null ) + + +func _is_reporting_enabled() -> bool: + return _is_report_script_errors() or _is_report_push_errors() + + +func _is_report_push_errors() -> bool: + return GdUnitSettings.is_report_push_errors() + + +func _is_report_script_errors() -> bool: + return GdUnitSettings.is_report_script_errors() diff --git a/addons/gdUnit4/src/mono/GdUnit4CSharpApi.cs b/addons/gdUnit4/src/mono/GdUnit4CSharpApi.cs new file mode 100644 index 0000000..557cc01 --- /dev/null +++ b/addons/gdUnit4/src/mono/GdUnit4CSharpApi.cs @@ -0,0 +1,50 @@ +using System; +using System.Reflection; +using System.Linq; + +using Godot; +using Godot.Collections; +using GdUnit4; + + +// GdUnit4 GDScript - C# API wrapper +public partial class GdUnit4CSharpApi : Godot.GodotObject +{ + private static Type? apiType; + + private static Type GetApiType() + { + if (apiType == null) + { + var assembly = Assembly.Load("gdUnit4Api"); + apiType = GdUnit4NetVersion() < new Version(4, 2, 2) ? + assembly.GetType("GdUnit4.GdUnit4MonoAPI") : + assembly.GetType("GdUnit4.GdUnit4NetAPI"); + Godot.GD.PrintS($"GdUnit4CSharpApi type:{apiType} loaded."); + } + return apiType!; + } + + private static Version GdUnit4NetVersion() + { + var assembly = Assembly.Load("gdUnit4Api"); + return assembly.GetName().Version!; + } + + private static T InvokeApiMethod(string methodName, params object[] args) + { + var method = GetApiType().GetMethod(methodName)!; + return (T)method.Invoke(null, args)!; + } + + public static string Version() => GdUnit4NetVersion().ToString(); + + public static bool IsTestSuite(string classPath) => InvokeApiMethod("IsTestSuite", classPath); + + public static RefCounted Executor(Node listener) => InvokeApiMethod("Executor", listener); + + public static CsNode? ParseTestSuite(string classPath) => InvokeApiMethod("ParseTestSuite", classPath); + + public static Dictionary CreateTestSuite(string sourcePath, int lineNumber, string testSuitePath) => + InvokeApiMethod("CreateTestSuite", sourcePath, lineNumber, testSuitePath); +} diff --git a/addons/gdUnit4/src/mono/GdUnit4CSharpApiLoader.gd b/addons/gdUnit4/src/mono/GdUnit4CSharpApiLoader.gd new file mode 100644 index 0000000..e828a9e --- /dev/null +++ b/addons/gdUnit4/src/mono/GdUnit4CSharpApiLoader.gd @@ -0,0 +1,64 @@ +extends RefCounted +class_name GdUnit4CSharpApiLoader + + +static func instance() -> Object: + return GdUnitSingleton.instance("GdUnit4CSharpApi", func() -> Object: + if not GdUnit4CSharpApiLoader.is_mono_supported(): + return null + return load("res://addons/gdUnit4/src/mono/GdUnit4CSharpApi.cs").new() + ) + + +static func is_engine_version_supported(engine_version :int = Engine.get_version_info().hex) -> bool: + return engine_version >= 0x40200 + + +# test is Godot mono running +static func is_mono_supported() -> bool: + return ClassDB.class_exists("CSharpScript") and is_engine_version_supported() + + +static func version() -> String: + if not GdUnit4CSharpApiLoader.is_mono_supported(): + return "unknown" + return instance().Version() + + +static func create_test_suite(source_path :String, line_number :int, test_suite_path :String) -> GdUnitResult: + if not GdUnit4CSharpApiLoader.is_mono_supported(): + return GdUnitResult.error("Can't create test suite. No C# support found.") + var result := instance().CreateTestSuite(source_path, line_number, test_suite_path) as Dictionary + if result.has("error"): + return GdUnitResult.error(result.get("error")) + return GdUnitResult.success(result) + + +static func is_test_suite(resource_path :String) -> bool: + if not is_csharp_file(resource_path) or not GdUnit4CSharpApiLoader.is_mono_supported(): + return false + + if resource_path.is_empty(): + if GdUnitSettings.is_report_push_errors(): + push_error("Can't create test suite. Missing resource path.") + return false + return instance().IsTestSuite(resource_path) + + +static func parse_test_suite(source_path :String) -> Node: + if not GdUnit4CSharpApiLoader.is_mono_supported(): + if GdUnitSettings.is_report_push_errors(): + push_error("Can't create test suite. No c# support found.") + return null + return instance().ParseTestSuite(source_path) + + +static func create_executor(listener :Node) -> RefCounted: + if not GdUnit4CSharpApiLoader.is_mono_supported(): + return null + return instance().Executor(listener) + + +static func is_csharp_file(resource_path :String) -> bool: + var ext := resource_path.get_extension() + return ext == "cs" and GdUnit4CSharpApiLoader.is_mono_supported() diff --git a/addons/gdUnit4/src/network/GdUnitServer.gd b/addons/gdUnit4/src/network/GdUnitServer.gd new file mode 100644 index 0000000..9e6cf6b --- /dev/null +++ b/addons/gdUnit4/src/network/GdUnitServer.gd @@ -0,0 +1,41 @@ +@tool +extends Node + +@onready var _server :GdUnitTcpServer = $TcpServer + + +func _ready() -> void: + var result := _server.start() + if result.is_error(): + push_error(result.error_message()) + return + var server_port :int = result.value() + Engine.set_meta("gdunit_server_port", server_port) + _server.client_connected.connect(_on_client_connected) + _server.client_disconnected.connect(_on_client_disconnected) + _server.rpc_data.connect(_receive_rpc_data) + GdUnitCommandHandler.instance().gdunit_runner_stop.connect(_on_gdunit_runner_stop) + + +func _on_client_connected(client_id :int) -> void: + GdUnitSignals.instance().gdunit_client_connected.emit(client_id) + + +func _on_client_disconnected(client_id :int) -> void: + GdUnitSignals.instance().gdunit_client_disconnected.emit(client_id) + + +func _on_gdunit_runner_stop(client_id :int) -> void: + if _server: + _server.disconnect_client(client_id) + + +func _receive_rpc_data(p_rpc :RPC) -> void: + if p_rpc is RPCMessage: + GdUnitSignals.instance().gdunit_message.emit(p_rpc.message()) + return + if p_rpc is RPCGdUnitEvent: + GdUnitSignals.instance().gdunit_event.emit(p_rpc.event()) + return + if p_rpc is RPCGdUnitTestSuite: + GdUnitSignals.instance().gdunit_add_test_suite.emit(p_rpc.dto()) diff --git a/addons/gdUnit4/src/network/GdUnitServer.tscn b/addons/gdUnit4/src/network/GdUnitServer.tscn new file mode 100644 index 0000000..4c7645c --- /dev/null +++ b/addons/gdUnit4/src/network/GdUnitServer.tscn @@ -0,0 +1,10 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://addons/gdUnit4/src/network/GdUnitServer.gd" type="Script" id=1] +[ext_resource path="res://addons/gdUnit4/src/network/GdUnitTcpServer.gd" type="Script" id=2] + +[node name="Control" type="Node"] +script = ExtResource( 1 ) + +[node name="TcpServer" type="Node" parent="."] +script = ExtResource( 2 ) diff --git a/addons/gdUnit4/src/network/GdUnitServerConstants.gd b/addons/gdUnit4/src/network/GdUnitServerConstants.gd new file mode 100644 index 0000000..d31eee7 --- /dev/null +++ b/addons/gdUnit4/src/network/GdUnitServerConstants.gd @@ -0,0 +1,6 @@ +class_name GdUnitServerConstants +extends RefCounted + +const DEFAULT_SERVER_START_RETRY_TIMES :int = 5 +const GD_TEST_SERVER_PORT :int = 31002 +const JSON_RESPONSE_DELIMITER :String = "<>" diff --git a/addons/gdUnit4/src/network/GdUnitTask.gd b/addons/gdUnit4/src/network/GdUnitTask.gd new file mode 100644 index 0000000..e0188a0 --- /dev/null +++ b/addons/gdUnit4/src/network/GdUnitTask.gd @@ -0,0 +1,25 @@ +class_name GdUnitTask +extends RefCounted + +const TASK_NAME = "task_name" +const TASK_ARGS = "task_args" + +var _task_name :String +var _fref :Callable + + +func _init(task_name :String,instance :Object,func_name :String) -> void: + _task_name = task_name + if not instance.has_method(func_name): + push_error("Can't create GdUnitTask, Invalid func name '%s' for instance '%s'" % [instance, func_name]) + _fref = Callable(instance, func_name) + + +func name() -> String: + return _task_name + + +func execute(args :Array) -> GdUnitResult: + if args.is_empty(): + return _fref.call() + return _fref.callv(args) diff --git a/addons/gdUnit4/src/network/GdUnitTcpClient.gd b/addons/gdUnit4/src/network/GdUnitTcpClient.gd new file mode 100644 index 0000000..9239d9d --- /dev/null +++ b/addons/gdUnit4/src/network/GdUnitTcpClient.gd @@ -0,0 +1,132 @@ +class_name GdUnitTcpClient +extends Node + +signal connection_succeeded(message :String) +signal connection_failed(message :String) + + +var _host :String +var _port :int +var _client_id :int +var _connected :bool +var _stream :StreamPeerTCP + + +func _ready() -> void: + _connected = false + _stream = StreamPeerTCP.new() + _stream.set_big_endian(true) + + +func stop() -> void: + console("Client: disconnect from server") + if _stream != null: + rpc_send(RPCClientDisconnect.new().with_id(_client_id)) + if _stream != null: + _stream.disconnect_from_host() + _connected = false + + +func start(host :String, port :int) -> GdUnitResult: + _host = host + _port = port + if _connected: + return GdUnitResult.warn("Client already connected ... %s:%d" % [_host, _port]) + + # Connect client to server + if _stream.get_status() != StreamPeerTCP.STATUS_CONNECTED: + var err := _stream.connect_to_host(host, port) + #prints("connect_to_host", host, port, err) + if err != OK: + return GdUnitResult.error("GdUnit3: Can't establish client, error code: %s" % err) + return GdUnitResult.success("GdUnit3: Client connected checked port %d" % port) + + +func _process(_delta :float) -> void: + match _stream.get_status(): + StreamPeerTCP.STATUS_NONE: + return + + StreamPeerTCP.STATUS_CONNECTING: + set_process(false) + # wait until client is connected to server + for retry in 10: + _stream.poll() + console("wait to connect ..") + if _stream.get_status() == StreamPeerTCP.STATUS_CONNECTING: + await get_tree().create_timer(0.500).timeout + if _stream.get_status() == StreamPeerTCP.STATUS_CONNECTED: + set_process(true) + return + set_process(true) + _stream.disconnect_from_host() + console("connection failed") + connection_failed.emit("Connect to TCP Server %s:%d faild!" % [_host, _port]) + + StreamPeerTCP.STATUS_CONNECTED: + if not _connected: + var rpc_ :RPC = null + set_process(false) + while rpc_ == null: + await get_tree().create_timer(0.500).timeout + rpc_ = rpc_receive() + set_process(true) + _client_id = rpc_.client_id() + console("Connected to Server: %d" % _client_id) + connection_succeeded.emit("Connect to TCP Server %s:%d success." % [_host, _port]) + _connected = true + process_rpc() + + StreamPeerTCP.STATUS_ERROR: + console("connection failed") + _stream.disconnect_from_host() + connection_failed.emit("Connect to TCP Server %s:%d faild!" % [_host, _port]) + return + + +func is_client_connected() -> bool: + return _connected + + +func process_rpc() -> void: + if _stream.get_available_bytes() > 0: + var rpc_ := rpc_receive() + if rpc_ is RPCClientDisconnect: + stop() + + +func rpc_send(p_rpc :RPC) -> void: + if _stream != null: + var data := GdUnitServerConstants.JSON_RESPONSE_DELIMITER + p_rpc.serialize() + GdUnitServerConstants.JSON_RESPONSE_DELIMITER + _stream.put_data(data.to_utf8_buffer()) + + +func rpc_receive() -> RPC: + if _stream != null: + while _stream.get_available_bytes() > 0: + var available_bytes := _stream.get_available_bytes() + var data := _stream.get_data(available_bytes) + var received_data := data[1] as PackedByteArray + # data send by Godot has this magic header of 12 bytes + var header := Array(received_data.slice(0, 4)) + if header == [0, 0, 0, 124]: + received_data = received_data.slice(12, available_bytes) + var decoded := received_data.get_string_from_utf8() + if decoded == "": + #prints("decoded is empty", available_bytes, received_data.get_string_from_utf8()) + return null + return RPC.deserialize(decoded) + return null + + +func console(message :String) -> void: + prints("TCP Client:", message) + pass + + +func _on_connection_failed(message :String) -> void: + console("connection faild: " + message) + + +func _on_connection_succeeded(message :String) -> void: + console("connected: " + message) diff --git a/addons/gdUnit4/src/network/GdUnitTcpServer.gd b/addons/gdUnit4/src/network/GdUnitTcpServer.gd new file mode 100644 index 0000000..5ab3f83 --- /dev/null +++ b/addons/gdUnit4/src/network/GdUnitTcpServer.gd @@ -0,0 +1,164 @@ +@tool +class_name GdUnitTcpServer +extends Node + +signal client_connected(client_id :int) +signal client_disconnected(client_id :int) +signal rpc_data(rpc_data :RPC) + +var _server :TCPServer + + +class TcpConnection extends Node: + var _id :int + # we do use untyped here because we using a mock for testing and the static type is break the mock + @warning_ignore("untyped_declaration") + var _stream + var _readBuffer :String = "" + + + func _init(p_server :Variant) -> void: + assert(p_server is TCPServer) + _stream = p_server.take_connection() + _stream.set_big_endian(true) + _id = _stream.get_instance_id() + rpc_send(RPCClientConnect.new().with_id(_id)) + + + func _ready() -> void: + server().client_connected.emit(_id) + + + func close() -> void: + rpc_send(RPCClientDisconnect.new().with_id(_id)) + server().client_disconnected.emit(_id) + _stream.disconnect_from_host() + _readBuffer = "" + + + func id() -> int: + return _id + + + func server() -> GdUnitTcpServer: + return get_parent() + + + func rpc_send(p_rpc :RPC) -> void: + _stream.put_var(p_rpc.serialize(), true) + + + func _process(_delta :float) -> void: + if _stream.get_status() != StreamPeerTCP.STATUS_CONNECTED: + return + receive_packages() + + + func receive_packages() -> void: + var available_bytes :int = _stream.get_available_bytes() + if available_bytes > 0: + var partial_data :Array = _stream.get_partial_data(available_bytes) + # Check for read error. + if partial_data[0] != OK: + push_error("Error getting data from stream: %s " % partial_data[0]) + return + else: + var received_data := partial_data[1] as PackedByteArray + for package in _read_next_data_packages(received_data): + var rpc_ := RPC.deserialize(package) + if rpc_ is RPCClientDisconnect: + close() + server().rpc_data.emit(rpc_) + + + func _read_next_data_packages(data_package :PackedByteArray) -> PackedStringArray: + _readBuffer += data_package.get_string_from_utf8() + var json_array := _readBuffer.split(GdUnitServerConstants.JSON_RESPONSE_DELIMITER) + # We need to check if the current data is terminated by the delemiter (data packets can be split unspecifically). + # If not, store the last part in _readBuffer and complete it on the next data packet that is received + if not _readBuffer.ends_with(GdUnitServerConstants.JSON_RESPONSE_DELIMITER): + _readBuffer = json_array[-1] + json_array.remove_at(json_array.size()-1) + else: + # Reset the buffer if a completely terminated packet was received + _readBuffer = "" + # remove empty packages + for index in json_array.size(): + if index < json_array.size() and json_array[index].is_empty(): + json_array.remove_at(index) + return json_array + + + func console(_message :String) -> void: + #print_debug("TCP Connection:", _message) + pass + + +func _ready() -> void: + _server = TCPServer.new() + client_connected.connect(_on_client_connected) + client_disconnected.connect(_on_client_disconnected) + + +func _notification(what :int) -> void: + if what == NOTIFICATION_PREDELETE: + stop() + + +func start() -> GdUnitResult: + var server_port := GdUnitServerConstants.GD_TEST_SERVER_PORT + var err := OK + for retry in GdUnitServerConstants.DEFAULT_SERVER_START_RETRY_TIMES: + err = _server.listen(server_port, "127.0.0.1") + if err != OK: + prints("GdUnit4: Can't establish server checked port: %d, Error: %s" % [server_port, error_string(err)]) + server_port += 1 + prints("GdUnit4: Retry (%d) ..." % retry) + else: + break + if err != OK: + if err == ERR_ALREADY_IN_USE: + return GdUnitResult.error("GdUnit3: Can't establish server, the server is already in use. Error: %s, " % error_string(err)) + return GdUnitResult.error("GdUnit3: Can't establish server. Error: %s." % error_string(err)) + prints("GdUnit4: Test server successfully started checked port: %d" % server_port) + return GdUnitResult.success(server_port) + + +func stop() -> void: + if _server: + _server.stop() + for connection in get_children(): + if connection is TcpConnection: + connection.close() + remove_child(connection) + + +func disconnect_client(client_id :int) -> void: + for connection in get_children(): + if connection is TcpConnection and connection.id() == client_id: + connection.close() + + +func _process(_delta :float) -> void: + if not _server.is_listening(): + return + # check if connection is ready to be used + if _server.is_connection_available(): + add_child(TcpConnection.new(_server)) + + +func _on_client_connected(client_id :int) -> void: + console("Client connected %d" % client_id) + + +func _on_client_disconnected(client_id :int) -> void: + console("Client disconnected %d" % client_id) + for connection in get_children(): + if connection is TcpConnection and connection.id() == client_id: + remove_child(connection) + + + +func console(_message :String) -> void: + #print_debug("TCP Server:", _message) + pass diff --git a/addons/gdUnit4/src/network/rpc/RPC.gd b/addons/gdUnit4/src/network/rpc/RPC.gd new file mode 100644 index 0000000..190b05a --- /dev/null +++ b/addons/gdUnit4/src/network/rpc/RPC.gd @@ -0,0 +1,24 @@ +class_name RPC +extends RefCounted + + +func serialize() -> String: + return JSON.stringify(inst_to_dict(self)) + + +# using untyped version see comments below +static func deserialize(json_value :String) -> Object: + var json := JSON.new() + var err := json.parse(json_value) + if err != OK: + push_error("Can't deserialize JSON, error at line %d: %s \n json: '%s'" % [json.get_error_line(), json.get_error_message(), json_value]) + return null + var result := json.get_data() as Dictionary + if not typeof(result) == TYPE_DICTIONARY: + push_error("Can't deserialize JSON, error at line %d: %s \n json: '%s'" % [result.error_line, result.error_string, json_value]) + return null + return dict_to_inst(result) + +# this results in orpan node, for more details https://github.com/godotengine/godot/issues/50069 +#func deserialize2(data :Dictionary) -> RPC: +# return dict_to_inst(data) as RPC diff --git a/addons/gdUnit4/src/network/rpc/RPCClientConnect.gd b/addons/gdUnit4/src/network/rpc/RPCClientConnect.gd new file mode 100644 index 0000000..115fea2 --- /dev/null +++ b/addons/gdUnit4/src/network/rpc/RPCClientConnect.gd @@ -0,0 +1,13 @@ +class_name RPCClientConnect +extends RPC + +var _client_id :int + + +func with_id(p_client_id :int) -> RPCClientConnect: + _client_id = p_client_id + return self + + +func client_id() -> int: + return _client_id diff --git a/addons/gdUnit4/src/network/rpc/RPCClientDisconnect.gd b/addons/gdUnit4/src/network/rpc/RPCClientDisconnect.gd new file mode 100644 index 0000000..52ef259 --- /dev/null +++ b/addons/gdUnit4/src/network/rpc/RPCClientDisconnect.gd @@ -0,0 +1,13 @@ +class_name RPCClientDisconnect +extends RPC + +var _client_id :int + + +func with_id(p_client_id :int) -> RPCClientDisconnect: + _client_id = p_client_id + return self + + +func client_id() -> int: + return _client_id diff --git a/addons/gdUnit4/src/network/rpc/RPCGdUnitEvent.gd b/addons/gdUnit4/src/network/rpc/RPCGdUnitEvent.gd new file mode 100644 index 0000000..e692aff --- /dev/null +++ b/addons/gdUnit4/src/network/rpc/RPCGdUnitEvent.gd @@ -0,0 +1,18 @@ +class_name RPCGdUnitEvent +extends RPC + +var _event :Dictionary + + +static func of(p_event :GdUnitEvent) -> RPCGdUnitEvent: + var rpc := RPCGdUnitEvent.new() + rpc._event = p_event.serialize() + return rpc + + +func event() -> GdUnitEvent: + return GdUnitEvent.new().deserialize(_event) + + +func _to_string() -> String: + return "RPCGdUnitEvent: " + str(_event) diff --git a/addons/gdUnit4/src/network/rpc/RPCGdUnitTestSuite.gd b/addons/gdUnit4/src/network/rpc/RPCGdUnitTestSuite.gd new file mode 100644 index 0000000..96c4d96 --- /dev/null +++ b/addons/gdUnit4/src/network/rpc/RPCGdUnitTestSuite.gd @@ -0,0 +1,18 @@ +class_name RPCGdUnitTestSuite +extends RPC + +var _data :Dictionary + + +static func of(test_suite :Node) -> RPCGdUnitTestSuite: + var rpc := RPCGdUnitTestSuite.new() + rpc._data = GdUnitTestSuiteDto.new().serialize(test_suite) + return rpc + + +func dto() -> GdUnitResourceDto: + return GdUnitTestSuiteDto.new().deserialize(_data) + + +func _to_string() -> String: + return "RPCGdUnitTestSuite: " + str(_data) diff --git a/addons/gdUnit4/src/network/rpc/RPCMessage.gd b/addons/gdUnit4/src/network/rpc/RPCMessage.gd new file mode 100644 index 0000000..ddc4925 --- /dev/null +++ b/addons/gdUnit4/src/network/rpc/RPCMessage.gd @@ -0,0 +1,18 @@ +class_name RPCMessage +extends RPC + +var _message :String + + +static func of(p_message :String) -> RPCMessage: + var rpc := RPCMessage.new() + rpc._message = p_message + return rpc + + +func message() -> String: + return _message + + +func _to_string() -> String: + return "RPCMessage: " + _message diff --git a/addons/gdUnit4/src/network/rpc/dtos/GdUnitResourceDto.gd b/addons/gdUnit4/src/network/rpc/dtos/GdUnitResourceDto.gd new file mode 100644 index 0000000..9152c8d --- /dev/null +++ b/addons/gdUnit4/src/network/rpc/dtos/GdUnitResourceDto.gd @@ -0,0 +1,26 @@ +class_name GdUnitResourceDto +extends Resource + +var _name :String +var _path :String + + +func serialize(resource :Node) -> Dictionary: + var serialized := Dictionary() + serialized["name"] = resource.get_name() + serialized["resource_path"] = resource.ResourcePath() + return serialized + + +func deserialize(data :Dictionary) -> GdUnitResourceDto: + _name = data.get("name", "n.a.") + _path = data.get("resource_path", "") + return self + + +func name() -> String: + return _name + + +func path() -> String: + return _path diff --git a/addons/gdUnit4/src/network/rpc/dtos/GdUnitTestCaseDto.gd b/addons/gdUnit4/src/network/rpc/dtos/GdUnitTestCaseDto.gd new file mode 100644 index 0000000..26f5dda --- /dev/null +++ b/addons/gdUnit4/src/network/rpc/dtos/GdUnitTestCaseDto.gd @@ -0,0 +1,33 @@ +class_name GdUnitTestCaseDto +extends GdUnitResourceDto + +var _line_number :int = -1 +var _test_case_names :PackedStringArray = [] + + +func serialize(test_case :Node) -> Dictionary: + var serialized := super.serialize(test_case) + if test_case.has_method("line_number"): + serialized["line_number"] = test_case.line_number() + else: + serialized["line_number"] = test_case.get("LineNumber") + if test_case.has_method("test_case_names"): + serialized["test_case_names"] = test_case.test_case_names() + elif test_case.has_method("TestCaseNames"): + serialized["test_case_names"] = test_case.TestCaseNames() + return serialized + + +func deserialize(data :Dictionary) -> GdUnitResourceDto: + super.deserialize(data) + _line_number = data.get("line_number", -1) + _test_case_names = data.get("test_case_names", []) + return self + + +func line_number() -> int: + return _line_number + + +func test_case_names() -> PackedStringArray: + return _test_case_names diff --git a/addons/gdUnit4/src/network/rpc/dtos/GdUnitTestSuiteDto.gd b/addons/gdUnit4/src/network/rpc/dtos/GdUnitTestSuiteDto.gd new file mode 100644 index 0000000..edbae38 --- /dev/null +++ b/addons/gdUnit4/src/network/rpc/dtos/GdUnitTestSuiteDto.gd @@ -0,0 +1,42 @@ +class_name GdUnitTestSuiteDto +extends GdUnitResourceDto + + +# Dictionary[String, GdUnitTestCaseDto] +var _test_cases_by_name := Dictionary() + + +static func of(test_suite :Node) -> GdUnitTestSuiteDto: + var dto := GdUnitTestSuiteDto.new() + return dto.deserialize(dto.serialize(test_suite)) + + +func serialize(test_suite :Node) -> Dictionary: + var serialized := super.serialize(test_suite) + var test_cases_ := Array() + serialized["test_cases"] = test_cases_ + for test_case in test_suite.get_children(): + test_cases_.append(GdUnitTestCaseDto.new().serialize(test_case)) + return serialized + + +func deserialize(data :Dictionary) -> GdUnitResourceDto: + super.deserialize(data) + var test_cases_ :Array = data.get("test_cases", []) + for test_case :Dictionary in test_cases_: + add_test_case(GdUnitTestCaseDto.new().deserialize(test_case)) + return self + + +func add_test_case(test_case :GdUnitTestCaseDto) -> void: + _test_cases_by_name[test_case.name()] = test_case + + +func test_case_count() -> int: + return _test_cases_by_name.size() + + +func test_cases() -> Array[GdUnitTestCaseDto]: + var test_cases_ :Array[GdUnitTestCaseDto] = [] + test_cases_.append_array(_test_cases_by_name.values()) + return test_cases_ diff --git a/addons/gdUnit4/src/report/GdUnitByPathReport.gd b/addons/gdUnit4/src/report/GdUnitByPathReport.gd new file mode 100644 index 0000000..d08600e --- /dev/null +++ b/addons/gdUnit4/src/report/GdUnitByPathReport.gd @@ -0,0 +1,49 @@ +class_name GdUnitByPathReport +extends GdUnitReportSummary + + +func _init(path :String, report_summaries :Array[GdUnitReportSummary]) -> void: + _resource_path = path + _reports = report_summaries + + +# -> Dictionary[String, Array[GdUnitReportSummary]] +static func sort_reports_by_path(report_summaries :Array[GdUnitReportSummary]) -> Dictionary: + var by_path := Dictionary() + for report in report_summaries: + var suite_path :String = report.path() + var suite_report :Array[GdUnitReportSummary] = by_path.get(suite_path, [] as Array[GdUnitReportSummary]) + suite_report.append(report) + by_path[suite_path] = suite_report + return by_path + + +func path() -> String: + return _resource_path.replace("res://", "") + + +func create_record(report_link :String) -> String: + return GdUnitHtmlPatterns.build(GdUnitHtmlPatterns.TABLE_RECORD_PATH, self, report_link) + + +func write(report_dir :String) -> String: + var template := GdUnitHtmlPatterns.load_template("res://addons/gdUnit4/src/report/template/folder_report.html") + var path_report := GdUnitHtmlPatterns.build(template, self, "") + path_report = apply_testsuite_reports(report_dir, path_report, _reports) + + var output_path := "%s/path/%s.html" % [report_dir, path().replace("/", ".")] + var dir := output_path.get_base_dir() + if not DirAccess.dir_exists_absolute(dir): + DirAccess.make_dir_recursive_absolute(dir) + FileAccess.open(output_path, FileAccess.WRITE).store_string(path_report) + return output_path + + +func apply_testsuite_reports(report_dir :String, template :String, test_suite_reports :Array[GdUnitReportSummary]) -> String: + var table_records := PackedStringArray() + for report in test_suite_reports: + if report is GdUnitTestSuiteReport: + var test_suite_report := report as GdUnitTestSuiteReport + var report_link := test_suite_report.output_path(report_dir).replace(report_dir, "..") + table_records.append(test_suite_report.create_record(report_link)) + return template.replace(GdUnitHtmlPatterns.TABLE_BY_TESTSUITES, "\n".join(table_records)) diff --git a/addons/gdUnit4/src/report/GdUnitHtmlPatterns.gd b/addons/gdUnit4/src/report/GdUnitHtmlPatterns.gd new file mode 100644 index 0000000..1d9cf86 --- /dev/null +++ b/addons/gdUnit4/src/report/GdUnitHtmlPatterns.gd @@ -0,0 +1,94 @@ +class_name GdUnitHtmlPatterns +extends RefCounted + +const TABLE_RECORD_TESTSUITE = """ + + ${testsuite_name} + ${test_count} + ${skipped_count} + ${failure_count} + ${orphan_count} + ${duration} + ${success_percent} + +""" + +const TABLE_RECORD_PATH = """ + + ${path} + ${test_count} + ${skipped_count} + ${failure_count} + ${orphan_count} + ${duration} + ${success_percent} + +""" + + +const TABLE_REPORT_TESTSUITE = """ + + TestSuite hooks + n/a + ${orphan_count} + ${duration} + ${failure-report} + +""" + + +const TABLE_RECORD_TESTCASE = """ + + ${testcase_name} + ${skipped_count} + ${orphan_count} + ${duration} + ${failure-report} + +""" + +const TABLE_BY_PATHS = "${report_table_paths}" +const TABLE_BY_TESTSUITES = "${report_table_testsuites}" +const TABLE_BY_TESTCASES = "${report_table_tests}" + +# the report state success, error, warning +const REPORT_STATE = "${report_state}" +const PATH = "${path}" +const TESTSUITE_COUNT = "${suite_count}" +const TESTCASE_COUNT = "${test_count}" +const FAILURE_COUNT = "${failure_count}" +const SKIPPED_COUNT = "${skipped_count}" +const ORPHAN_COUNT = "${orphan_count}" +const DURATION = "${duration}" +const FAILURE_REPORT = "${failure-report}" +const SUCCESS_PERCENT = "${success_percent}" + +const TESTSUITE_NAME = "${testsuite_name}" +const TESTCASE_NAME = "${testcase_name}" +const REPORT_LINK = "${report_link}" +const BREADCRUMP_PATH_LINK = "${breadcrumb_path_link}" +const BUILD_DATE = "${buid_date}" + + +static func current_date() -> String: + return Time.get_datetime_string_from_system(true, true) + + +static func build(template :String, report :GdUnitReportSummary, report_link :String) -> String: + return template\ + .replace(PATH, report.path())\ + .replace(TESTSUITE_NAME, report.name())\ + .replace(TESTSUITE_COUNT, str(report.suite_count()))\ + .replace(TESTCASE_COUNT, str(report.test_count()))\ + .replace(FAILURE_COUNT, str(report.error_count() + report.failure_count()))\ + .replace(SKIPPED_COUNT, str(report.skipped_count()))\ + .replace(ORPHAN_COUNT, str(report.orphan_count()))\ + .replace(DURATION, LocalTime.elapsed(report.duration()))\ + .replace(SUCCESS_PERCENT, report.calculate_succes_rate(report.test_count(), report.error_count(), report.failure_count()))\ + .replace(REPORT_STATE, report.report_state())\ + .replace(REPORT_LINK, report_link)\ + .replace(BUILD_DATE, current_date()) + + +static func load_template(template_name :String) -> String: + return FileAccess.open(template_name, FileAccess.READ).get_as_text() diff --git a/addons/gdUnit4/src/report/GdUnitHtmlReport.gd b/addons/gdUnit4/src/report/GdUnitHtmlReport.gd new file mode 100644 index 0000000..fda9833 --- /dev/null +++ b/addons/gdUnit4/src/report/GdUnitHtmlReport.gd @@ -0,0 +1,95 @@ +class_name GdUnitHtmlReport +extends GdUnitReportSummary + +const REPORT_DIR_PREFIX = "report_" + +var _report_path :String +var _iteration :int + + +func _init(report_path :String) -> void: + _iteration = GdUnitFileAccess.find_last_path_index(report_path, REPORT_DIR_PREFIX) + 1 + _report_path = "%s/%s%d" % [report_path, REPORT_DIR_PREFIX, _iteration] + DirAccess.make_dir_recursive_absolute(_report_path) + + +func add_testsuite_report(suite_report :GdUnitTestSuiteReport) -> void: + _reports.append(suite_report) + + +@warning_ignore("shadowed_variable") +func add_testcase_report(resource_path :String, suite_report :GdUnitTestCaseReport) -> void: + for report in _reports: + if report.resource_path() == resource_path: + report.add_report(suite_report) + + +@warning_ignore("shadowed_variable") +func update_test_suite_report( + resource_path :String, + duration :int, + _is_error :bool, + is_failed: bool, + _is_warning :bool, + _is_skipped :bool, + skipped_count :int, + failed_count :int, + orphan_count :int, + reports :Array = []) -> void: + + for report in _reports: + if report.resource_path() == resource_path: + report.set_duration(duration) + report.set_failed(is_failed, failed_count) + report.set_skipped(skipped_count) + report.set_orphans(orphan_count) + report.set_reports(reports) + + +@warning_ignore("shadowed_variable") +func update_testcase_report(resource_path :String, test_report :GdUnitTestCaseReport) -> void: + for report in _reports: + if report.resource_path() == resource_path: + report.update(test_report) + + +func write() -> String: + var template := GdUnitHtmlPatterns.load_template("res://addons/gdUnit4/src/report/template/index.html") + var to_write := GdUnitHtmlPatterns.build(template, self, "") + to_write = apply_path_reports(_report_path, to_write, _reports) + to_write = apply_testsuite_reports(_report_path, to_write, _reports) + # write report + var index_file := "%s/index.html" % _report_path + FileAccess.open(index_file, FileAccess.WRITE).store_string(to_write) + GdUnitFileAccess.copy_directory("res://addons/gdUnit4/src/report/template/css/", _report_path + "/css") + return index_file + + +func delete_history(max_reports :int) -> int: + return GdUnitFileAccess.delete_path_index_lower_equals_than(_report_path.get_base_dir(), REPORT_DIR_PREFIX, _iteration-max_reports) + + +func apply_path_reports(report_dir :String, template :String, report_summaries :Array) -> String: + #Dictionary[String, Array[GdUnitReportSummary]] + var path_report_mapping := GdUnitByPathReport.sort_reports_by_path(report_summaries) + var table_records := PackedStringArray() + var paths :Array[String] = [] + paths.append_array(path_report_mapping.keys()) + paths.sort() + for report_path in paths: + var report := GdUnitByPathReport.new(report_path, path_report_mapping.get(report_path)) + var report_link :String = report.write(report_dir).replace(report_dir, ".") + table_records.append(report.create_record(report_link)) + return template.replace(GdUnitHtmlPatterns.TABLE_BY_PATHS, "\n".join(table_records)) + + +func apply_testsuite_reports(report_dir :String, template :String, test_suite_reports :Array[GdUnitReportSummary]) -> String: + var table_records := PackedStringArray() + for report in test_suite_reports: + var report_link :String = report.write(report_dir).replace(report_dir, ".") + table_records.append(report.create_record(report_link)) + return template.replace(GdUnitHtmlPatterns.TABLE_BY_TESTSUITES, "\n".join(table_records)) + + +func iteration() -> int: + return _iteration diff --git a/addons/gdUnit4/src/report/GdUnitReportSummary.gd b/addons/gdUnit4/src/report/GdUnitReportSummary.gd new file mode 100644 index 0000000..41d423e --- /dev/null +++ b/addons/gdUnit4/src/report/GdUnitReportSummary.gd @@ -0,0 +1,143 @@ +class_name GdUnitReportSummary +extends RefCounted + +const GdUnitTools := preload("res://addons/gdUnit4/src/core/GdUnitTools.gd") + +const CHARACTERS_TO_ENCODE := { + '<' : '<', + '>' : '>' +} + +var _resource_path :String +var _name :String +var _test_count := 0 +var _failure_count := 0 +var _error_count := 0 +var _orphan_count := 0 +var _skipped_count := 0 +var _duration := 0 +var _reports :Array[GdUnitReportSummary] = [] + + +func name() -> String: + return html_encode(_name) + + +func path() -> String: + return _resource_path.get_base_dir().replace("res://", "") + + +func resource_path() -> String: + return _resource_path + + +func suite_count() -> int: + return _reports.size() + + +func suite_executed_count() -> int: + var executed := _reports.size() + for report in _reports: + if report.test_count() == report.skipped_count(): + executed -= 1 + return executed + + +func test_count() -> int: + var count := _test_count + for report in _reports: + count += report.test_count() + return count + + +func test_executed_count() -> int: + return test_count() - skipped_count() + + +func error_count() -> int: + var count := _error_count + for report in _reports: + count += report.error_count() + return count + + +func failure_count() -> int: + var count := _failure_count + for report in _reports: + count += report.failure_count() + return count + + +func skipped_count() -> int: + var count := _skipped_count + for report in _reports: + count += report.skipped_count() + return count + + +func orphan_count() -> int: + var count := _orphan_count + for report in _reports: + count += report.orphan_count() + return count + + +func duration() -> int: + var count := _duration + for report in _reports: + count += report.duration() + return count + + +func reports() -> Array: + return _reports + + +func add_report(report :GdUnitReportSummary) -> void: + _reports.append(report) + + +func report_state() -> String: + return calculate_state(error_count(), failure_count(), orphan_count()) + + +func succes_rate() -> String: + return calculate_succes_rate(test_count(), error_count(), failure_count()) + + +func calculate_state(p_error_count :int, p_failure_count :int, p_orphan_count :int) -> String: + if p_error_count > 0: + return "error" + if p_failure_count > 0: + return "failure" + if p_orphan_count > 0: + return "warning" + return "success" + + +func calculate_succes_rate(p_test_count :int, p_error_count :int, p_failure_count :int) -> String: + if p_failure_count == 0: + return "100%" + var count := p_test_count-p_failure_count-p_error_count + if count < 0: + return "0%" + return "%d" % (( 0 if count < 0 else count) * 100.0 / p_test_count) + "%" + + +func create_summary(_report_dir :String) -> String: + return "" + + +func html_encode(value :String) -> String: + for key in CHARACTERS_TO_ENCODE.keys() as Array[String]: + value =value.replace(key, CHARACTERS_TO_ENCODE[key]) + return value + + +func convert_rtf_to_html(bbcode :String) -> String: + var as_text: = GdUnitTools.richtext_normalize(bbcode) + var converted := PackedStringArray() + var lines := as_text.split("\n") + for line in lines: + converted.append("

%s

" % line) + return "\n".join(converted) diff --git a/addons/gdUnit4/src/report/GdUnitTestCaseReport.gd b/addons/gdUnit4/src/report/GdUnitTestCaseReport.gd new file mode 100644 index 0000000..deaf790 --- /dev/null +++ b/addons/gdUnit4/src/report/GdUnitTestCaseReport.gd @@ -0,0 +1,58 @@ +class_name GdUnitTestCaseReport +extends GdUnitReportSummary + +var _suite_name :String +var _failure_reports :Array[GdUnitReport] + + +@warning_ignore("shadowed_variable") +func _init( + p_resource_path :String, + p_suite_name :String, + test_name :String, + is_error := false, + _is_failed := false, + failed_count :int = 0, + orphan_count :int = 0, + is_skipped := false, + failure_reports :Array[GdUnitReport] = [], + p_duration :int = 0) -> void: + _resource_path = p_resource_path + _suite_name = p_suite_name + _name = test_name + _error_count = is_error + _failure_count = failed_count + _orphan_count = orphan_count + _skipped_count = is_skipped + _failure_reports = failure_reports + _duration = p_duration + + +func suite_name() -> String: + return _suite_name + + +func failure_report() -> String: + var html_report := "" + for report in _failure_reports: + html_report += convert_rtf_to_html(str(report)) + return html_report + + +func create_record(_report_dir :String) -> String: + return GdUnitHtmlPatterns.TABLE_RECORD_TESTCASE\ + .replace(GdUnitHtmlPatterns.REPORT_STATE, report_state())\ + .replace(GdUnitHtmlPatterns.TESTCASE_NAME, name())\ + .replace(GdUnitHtmlPatterns.SKIPPED_COUNT, str(skipped_count()))\ + .replace(GdUnitHtmlPatterns.ORPHAN_COUNT, str(orphan_count()))\ + .replace(GdUnitHtmlPatterns.DURATION, LocalTime.elapsed(_duration))\ + .replace(GdUnitHtmlPatterns.FAILURE_REPORT, failure_report()) + + +func update(report :GdUnitTestCaseReport) -> void: + _error_count += report.error_count() + _failure_count += report.failure_count() + _orphan_count += report.orphan_count() + _skipped_count += report.skipped_count() + _failure_reports += report._failure_reports + _duration += report.duration() diff --git a/addons/gdUnit4/src/report/GdUnitTestSuiteReport.gd b/addons/gdUnit4/src/report/GdUnitTestSuiteReport.gd new file mode 100644 index 0000000..fa07c8d --- /dev/null +++ b/addons/gdUnit4/src/report/GdUnitTestSuiteReport.gd @@ -0,0 +1,96 @@ +class_name GdUnitTestSuiteReport +extends GdUnitReportSummary + +var _time_stamp :int +var _failure_reports :Array[GdUnitReport] = [] + + +@warning_ignore("shadowed_variable") +func _init(resource_path :String, name :String, test_count :int) -> void: + _resource_path = resource_path + _name = name + _time_stamp = Time.get_unix_time_from_system() as int + _test_count = test_count + + +func create_record(report_link :String) -> String: + return GdUnitHtmlPatterns.build(GdUnitHtmlPatterns.TABLE_RECORD_TESTSUITE, self, report_link) + + +func output_path(report_dir :String) -> String: + return "%s/test_suites/%s.%s.html" % [report_dir, path().replace("/", "."), name()] + + +func path_as_link() -> String: + return "../path/%s.html" % path().replace("/", ".") + + +func failure_report() -> String: + var html_report := "" + for report in _failure_reports: + html_report += convert_rtf_to_html(str(report)) + return html_report + + +func test_suite_failure_report() -> String: + return GdUnitHtmlPatterns.TABLE_REPORT_TESTSUITE\ + .replace(GdUnitHtmlPatterns.REPORT_STATE, report_state())\ + .replace(GdUnitHtmlPatterns.ORPHAN_COUNT, str(orphan_count()))\ + .replace(GdUnitHtmlPatterns.DURATION, LocalTime.elapsed(_duration))\ + .replace(GdUnitHtmlPatterns.FAILURE_REPORT, failure_report()) + + +func write(report_dir :String) -> String: + var template := GdUnitHtmlPatterns.load_template("res://addons/gdUnit4/src/report/template/suite_report.html") + template = GdUnitHtmlPatterns.build(template, self, "")\ + .replace(GdUnitHtmlPatterns.BREADCRUMP_PATH_LINK, path_as_link()) + + var report_output_path := output_path(report_dir) + var test_report_table := PackedStringArray() + if not _failure_reports.is_empty(): + test_report_table.append(test_suite_failure_report()) + for test_report in _reports: + test_report_table.append(test_report.create_record(report_output_path)) + + template = template.replace(GdUnitHtmlPatterns.TABLE_BY_TESTCASES, "\n".join(test_report_table)) + + var dir := report_output_path.get_base_dir() + if not DirAccess.dir_exists_absolute(dir): + DirAccess.make_dir_recursive_absolute(dir) + FileAccess.open(report_output_path, FileAccess.WRITE).store_string(template) + return report_output_path + + +func set_duration(p_duration :int) -> void: + _duration = p_duration + + +func time_stamp() -> int: + return _time_stamp + + +func duration() -> int: + return _duration + + +func set_skipped(skipped :int) -> void: + _skipped_count = skipped + + +func set_orphans(orphans :int) -> void: + _orphan_count = orphans + + +func set_failed(failed :bool, count :int) -> void: + if failed: + _failure_count += count + + +func set_reports(failure_reports :Array[GdUnitReport]) -> void: + _failure_reports = failure_reports + + +func update(test_report :GdUnitTestCaseReport) -> void: + for report in _reports: + if report.name() == test_report.name(): + report.update(test_report) diff --git a/addons/gdUnit4/src/report/JUnitXmlReport.gd b/addons/gdUnit4/src/report/JUnitXmlReport.gd new file mode 100644 index 0000000..a4c040d --- /dev/null +++ b/addons/gdUnit4/src/report/JUnitXmlReport.gd @@ -0,0 +1,143 @@ +# This class implements the JUnit XML file format +# based checked https://github.com/windyroad/JUnit-Schema/blob/master/JUnit.xsd +class_name JUnitXmlReport +extends RefCounted + +const GdUnitTools := preload("res://addons/gdUnit4/src/core/GdUnitTools.gd") + +const ATTR_CLASSNAME := "classname" +const ATTR_ERRORS := "errors" +const ATTR_FAILURES := "failures" +const ATTR_HOST := "hostname" +const ATTR_ID := "id" +const ATTR_MESSAGE := "message" +const ATTR_NAME := "name" +const ATTR_PACKAGE := "package" +const ATTR_SKIPPED := "skipped" +const ATTR_TESTS := "tests" +const ATTR_TIME := "time" +const ATTR_TIMESTAMP := "timestamp" +const ATTR_TYPE := "type" + +const HEADER := '\n' + +var _report_path :String +var _iteration :int + + +func _init(path :String, iteration :int) -> void: + _iteration = iteration + _report_path = path + + +func write(report :GdUnitReportSummary) -> String: + var result_file: String = "%s/results.xml" % _report_path + var file := FileAccess.open(result_file, FileAccess.WRITE) + if file == null: + push_warning("Can't saving the result to '%s'\n Error: %s" % [result_file, error_string(FileAccess.get_open_error())]) + file.store_string(build_junit_report(report)) + return result_file + + +func build_junit_report(report :GdUnitReportSummary) -> String: + var iso8601_datetime := Time.get_date_string_from_system() + var test_suites := XmlElement.new("testsuites")\ + .attribute(ATTR_ID, iso8601_datetime)\ + .attribute(ATTR_NAME, "report_%s" % _iteration)\ + .attribute(ATTR_TESTS, report.test_count())\ + .attribute(ATTR_FAILURES, report.failure_count())\ + .attribute(ATTR_TIME, JUnitXmlReport.to_time(report.duration()))\ + .add_childs(build_test_suites(report)) + var as_string := test_suites.to_xml() + test_suites.dispose() + return HEADER + as_string + + +func build_test_suites(summary :GdUnitReportSummary) -> Array: + var test_suites :Array[XmlElement] = [] + for index in summary.reports().size(): + var suite_report :GdUnitTestSuiteReport = summary.reports()[index] + var iso8601_datetime := Time.get_datetime_string_from_unix_time(suite_report.time_stamp()) + test_suites.append(XmlElement.new("testsuite")\ + .attribute(ATTR_ID, index)\ + .attribute(ATTR_NAME, suite_report.name())\ + .attribute(ATTR_PACKAGE, suite_report.path())\ + .attribute(ATTR_TIMESTAMP, iso8601_datetime)\ + .attribute(ATTR_HOST, "localhost")\ + .attribute(ATTR_TESTS, suite_report.test_count())\ + .attribute(ATTR_FAILURES, suite_report.failure_count())\ + .attribute(ATTR_ERRORS, suite_report.error_count())\ + .attribute(ATTR_SKIPPED, suite_report.skipped_count())\ + .attribute(ATTR_TIME, JUnitXmlReport.to_time(suite_report.duration()))\ + .add_childs(build_test_cases(suite_report))) + return test_suites + + +func build_test_cases(suite_report :GdUnitTestSuiteReport) -> Array: + var test_cases :Array[XmlElement] = [] + for index in suite_report.reports().size(): + var report :GdUnitTestCaseReport = suite_report.reports()[index] + test_cases.append( XmlElement.new("testcase")\ + .attribute(ATTR_NAME, JUnitXmlReport.encode_xml(report.name()))\ + .attribute(ATTR_CLASSNAME, report.suite_name())\ + .attribute(ATTR_TIME, JUnitXmlReport.to_time(report.duration()))\ + .add_childs(build_reports(report))) + return test_cases + + +func build_reports(test_report :GdUnitTestCaseReport) -> Array: + var failure_reports :Array[XmlElement] = [] + if test_report.failure_count() or test_report.error_count(): + for failure in test_report._failure_reports: + var report := failure as GdUnitReport + if report.is_failure(): + failure_reports.append( XmlElement.new("failure")\ + .attribute(ATTR_MESSAGE, "FAILED: %s:%d" % [test_report._resource_path, report.line_number()])\ + .attribute(ATTR_TYPE, JUnitXmlReport.to_type(report.type()))\ + .text(convert_rtf_to_text(report.message()))) + elif report.is_error(): + failure_reports.append( XmlElement.new("error")\ + .attribute(ATTR_MESSAGE, "ERROR: %s:%d" % [test_report._resource_path, report.line_number()])\ + .attribute(ATTR_TYPE, JUnitXmlReport.to_type(report.type()))\ + .text(convert_rtf_to_text(report.message()))) + if test_report.skipped_count(): + for failure in test_report._failure_reports: + var report := failure as GdUnitReport + failure_reports.append( XmlElement.new("skipped")\ + .attribute(ATTR_MESSAGE, "SKIPPED: %s:%d" % [test_report._resource_path, report.line_number()])) + return failure_reports + + +func convert_rtf_to_text(bbcode :String) -> String: + return GdUnitTools.richtext_normalize(bbcode) + + +static func to_type(type :int) -> String: + match type: + GdUnitReport.SUCCESS: + return "SUCCESS" + GdUnitReport.WARN: + return "WARN" + GdUnitReport.FAILURE: + return "FAILURE" + GdUnitReport.ORPHAN: + return "ORPHAN" + GdUnitReport.TERMINATED: + return "TERMINATED" + GdUnitReport.INTERUPTED: + return "INTERUPTED" + GdUnitReport.ABORT: + return "ABORT" + return "UNKNOWN" + + +static func to_time(duration :int) -> String: + return "%4.03f" % (duration / 1000.0) + + +static func encode_xml(value :String) -> String: + return value.xml_escape(true) + + +#static func to_ISO8601_datetime() -> String: + #return "%04d-%02d-%02dT%02d:%02d:%02d" % [date["year"], date["month"], date["day"], date["hour"], date["minute"], date["second"]] diff --git a/addons/gdUnit4/src/report/XmlElement.gd b/addons/gdUnit4/src/report/XmlElement.gd new file mode 100644 index 0000000..b5d2ed3 --- /dev/null +++ b/addons/gdUnit4/src/report/XmlElement.gd @@ -0,0 +1,68 @@ +class_name XmlElement +extends RefCounted + +var _name :String +# Dictionary[String, String] +var _attributes :Dictionary = {} +var _childs :Array[XmlElement] = [] +var _parent :XmlElement = null +var _text :String = "" + + +func _init(name :String) -> void: + _name = name + + +func dispose() -> void: + for child in _childs: + child.dispose() + _childs.clear() + _attributes.clear() + _parent = null + + +func attribute(name :String, value :Variant) -> XmlElement: + _attributes[name] = str(value) + return self + + +func text(p_text :String) -> XmlElement: + _text = p_text if p_text.ends_with("\n") else p_text + "\n" + return self + + +func add_child(child :XmlElement) -> XmlElement: + _childs.append(child) + child._parent = self + return self + + +func add_childs(childs :Array[XmlElement]) -> XmlElement: + for child in childs: + add_child(child) + return self + + +func indentation() -> String: + return "" if _parent == null else _parent.indentation() + " " + + +func to_xml() -> String: + var attributes := "" + for key in _attributes.keys() as Array[String]: + attributes += ' {attr}="{value}"'.format({"attr": key, "value": _attributes.get(key)}) + + var childs := "" + for child in _childs: + childs += child.to_xml() + + return "{_indentation}<{name}{attributes}>\n{childs}{text}{_indentation}\n"\ + .format({"name": _name, + "attributes": attributes, + "childs": childs, + "_indentation": indentation(), + "text": cdata(_text)}) + + +func cdata(p_text :String) -> String: + return "" if p_text.is_empty() else "\n".format({"text" : p_text}) diff --git a/addons/gdUnit4/src/report/template/css/breadcrumb.css b/addons/gdUnit4/src/report/template/css/breadcrumb.css new file mode 100644 index 0000000..2dd65fe --- /dev/null +++ b/addons/gdUnit4/src/report/template/css/breadcrumb.css @@ -0,0 +1,67 @@ + +.breadcrumb { + display: flex; + border-radius: 6px; + overflow: hidden; + height: 45px; + z-index: 1; + background-color: #055d9c; + font-weight: bold; + font-size: 16px; + margin-top: 0px; + margin-bottom: 20px; + box-shadow: 0 0 3px black; +} + +.breadcrumb a { + position: relative; + display: flex; + -ms-flex-positive: 1; + flex-grow: 1; + text-decoration: none; + margin: auto; + height: 100%; + color: white; +} + +.breadcrumb a:first-child { + padding-left: 5.2px; +} + +.breadcrumb a:last-child { + padding-right: 5.2px; +} + +.breadcrumb a:after { + content: ""; + position: absolute; + display: inline-block; + width: 45px; + height: 45px; + top: 0; + right: -20px; + background-color: #055d9c; + border-top-right-radius: 5px; + transform: scale(0.707) rotate(45deg); + box-shadow: 2px -2px rgba(0,0,0,0.25); + z-index: 1; +} + +.breadcrumb a:last-child:after { + content: none; +} + +.breadcrumb a.active, .breadcrumb a:hover { + background: #347bad; + color: white; + text-decoration: underline; +} + +.breadcrumb a.active:after, .breadcrumb a:hover:after { + background: #347bad; +} + +.breadcrumb span { + margin:inherit; + z-index: 2; +} diff --git a/addons/gdUnit4/src/report/template/css/icon.png b/addons/gdUnit4/src/report/template/css/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..eeac2924071bb62e97d1f372ca66c0e7e1a256f0 GIT binary patch literal 13817 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 + + + + + Testsuite Results + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
TestSuites${suite_count}
Tests${test_count}
Skipped${skipped_count}
Failures${failure_count}
Orphans${orphan_count}
Duration${duration}
+
+
+

Success Rate

+ + + + +
${success_percent}
+
+
+

History

+

Coming Next

+
+
+ + + +
+
+ + + +
+
+ + + + + + + + + + + + + + ${report_table_testsuites} + +
TestsSkippedFailuresOrphansDurationSuccess rate
+
+
+
+
+
+ +
+

Generated byGdUnit4 at ${buid_date}

+
+ + + diff --git a/addons/gdUnit4/src/report/template/index.html b/addons/gdUnit4/src/report/template/index.html new file mode 100644 index 0000000..2f6571e --- /dev/null +++ b/addons/gdUnit4/src/report/template/index.html @@ -0,0 +1,123 @@ + + + + + + Report Summary + + + + +
+

GdUnit4 Report

+
+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
TestSuites${suite_count}
Tests${test_count}
Skipped${skipped_count}
Failures${failure_count}
Orphans${orphan_count}
Duration${duration}
+
+
+

Success Rate

+ + + + +
${success_percent}
+
+
+

History

+

Coming Next

+
+
+ +
+

Reports

+
+ + + + + + + +
+
+ + + + + + + + + + + + + + ${report_table_testsuites} + +
TestsSkippedFailuresOrphansDurationSuccess rate
+
+
+
+
+ + + + + + + + + + + + + + ${report_table_paths} + +
TestsSkippedFailuresOrphansDurationSuccess rate
+
+
+
+
+

${log_file}

+

+
+
+
+
+
+ +
+

Generated byGdUnit4 at ${buid_date}

+
+ + diff --git a/addons/gdUnit4/src/report/template/suite_report.html b/addons/gdUnit4/src/report/template/suite_report.html new file mode 100644 index 0000000..94fa47d --- /dev/null +++ b/addons/gdUnit4/src/report/template/suite_report.html @@ -0,0 +1,109 @@ + + + + + + + Testsuite results + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + +
Tests${test_count}
Skipped${skipped_count}
Failures${failure_count}
Orphans${orphan_count}
Duration${duration}
+
+
+

Success Rate

+ + + + +
${success_percent}
+
+
+

History

+

Coming Next

+
+
+ + + +
+
+
+ + + + + + + + + + + + ${report_table_tests} + +
TestcaseSkippedOrphansDurationReport
+
+
+

Failure Report

+
+
+
+
+
+ +
+

Generated byGdUnit4 at ${buid_date}

+
+ + + \ No newline at end of file diff --git a/addons/gdUnit4/src/spy/GdUnitSpyBuilder.gd b/addons/gdUnit4/src/spy/GdUnitSpyBuilder.gd new file mode 100644 index 0000000..03a184e --- /dev/null +++ b/addons/gdUnit4/src/spy/GdUnitSpyBuilder.gd @@ -0,0 +1,112 @@ +class_name GdUnitSpyBuilder +extends GdUnitClassDoubler + +const GdUnitTools := preload("res://addons/gdUnit4/src/core/GdUnitTools.gd") +const SPY_TEMPLATE :GDScript = preload("res://addons/gdUnit4/src/spy/GdUnitSpyImpl.gd") + + +static func build(to_spy :Variant, debug_write := false) -> Variant: + if GdObjects.is_singleton(to_spy): + push_error("Spy on a Singleton is not allowed! '%s'" % to_spy.get_class()) + return null + # if resource path load it before + if GdObjects.is_scene_resource_path(to_spy): + if not FileAccess.file_exists(to_spy): + push_error("Can't build spy on scene '%s'! The given resource not exists!" % to_spy) + return null + to_spy = load(to_spy) + # spy checked PackedScene + if GdObjects.is_scene(to_spy): + return spy_on_scene(to_spy.instantiate(), debug_write) + # spy checked a scene instance + if GdObjects.is_instance_scene(to_spy): + return spy_on_scene(to_spy, debug_write) + + var spy := spy_on_script(to_spy, [], debug_write) + if spy == null: + return null + var spy_instance :Variant = spy.new() + copy_properties(to_spy, spy_instance) + GdUnitObjectInteractions.reset(spy_instance) + spy_instance.__set_singleton(to_spy) + # we do not call the original implementation for _ready and all input function, this is actualy done by the engine + spy_instance.__exclude_method_call([ "_input", "_gui_input", "_input_event", "_unhandled_input"]) + return register_auto_free(spy_instance) + + +static func get_class_info(clazz :Variant) -> Dictionary: + var clazz_path := GdObjects.extract_class_path(clazz) + var clazz_name :String = GdObjects.extract_class_name(clazz).value() + return { + "class_name" : clazz_name, + "class_path" : clazz_path + } + + +static func spy_on_script(instance :Variant, function_excludes :PackedStringArray, debug_write :bool) -> GDScript: + if GdArrayTools.is_array_type(instance): + if GdUnitSettings.is_verbose_assert_errors(): + push_error("Can't build spy checked type '%s'! Spy checked Container Built-In Type not supported!" % instance.get_class()) + return null + var class_info := get_class_info(instance) + var clazz_name :String = class_info.get("class_name") + var clazz_path :PackedStringArray = class_info.get("class_path", [clazz_name]) + if not GdObjects.is_instance(instance): + if GdUnitSettings.is_verbose_assert_errors(): + push_error("Can't build spy for class type '%s'! Using an instance instead e.g. 'spy()'" % [clazz_name]) + return null + var lines := load_template(SPY_TEMPLATE.source_code, class_info, instance) + lines += double_functions(instance, clazz_name, clazz_path, GdUnitSpyFunctionDoubler.new(), function_excludes) + + var spy := GDScript.new() + spy.source_code = "\n".join(lines) + spy.resource_name = "Spy%s.gd" % clazz_name + spy.resource_path = GdUnitFileAccess.create_temp_dir("spy") + "/Spy%s_%d.gd" % [clazz_name, Time.get_ticks_msec()] + + if debug_write: + DirAccess.remove_absolute(spy.resource_path) + ResourceSaver.save(spy, spy.resource_path) + var error := spy.reload(true) + if error != OK: + push_error("Unexpected Error!, SpyBuilder error, please contact the developer.") + return null + return spy + + +static func spy_on_scene(scene :Node, debug_write :bool) -> Object: + if scene.get_script() == null: + if GdUnitSettings.is_verbose_assert_errors(): + push_error("Can't create a spy checked a scene without script '%s'" % scene.get_scene_file_path()) + return null + # buils spy checked original script + var scene_script :Object = scene.get_script().new() + var spy := spy_on_script(scene_script, GdUnitClassDoubler.EXLCUDE_SCENE_FUNCTIONS, debug_write) + scene_script.free() + if spy == null: + return null + # replace original script whit spy + scene.set_script(spy) + return register_auto_free(scene) + + +const EXCLUDE_PROPERTIES_TO_COPY = ["script", "type"] + + +static func copy_properties(source :Object, dest :Object) -> void: + for property in source.get_property_list(): + var property_name :String = property["name"] + var property_value :Variant = source.get(property_name) + if EXCLUDE_PROPERTIES_TO_COPY.has(property_name): + continue + #if dest.get(property_name) == null: + # prints("|%s|" % property_name, source.get(property_name)) + + # check for invalid name property + if property_name == "name" and property_value == "": + dest.set(property_name, ""); + continue + dest.set(property_name, property_value) + + +static func register_auto_free(obj :Variant) -> Variant: + return GdUnitThreadManager.get_current_context().get_execution_context().register_auto_free(obj) diff --git a/addons/gdUnit4/src/spy/GdUnitSpyFunctionDoubler.gd b/addons/gdUnit4/src/spy/GdUnitSpyFunctionDoubler.gd new file mode 100644 index 0000000..20b8e89 --- /dev/null +++ b/addons/gdUnit4/src/spy/GdUnitSpyFunctionDoubler.gd @@ -0,0 +1,75 @@ +class_name GdUnitSpyFunctionDoubler +extends GdFunctionDoubler + + +const TEMPLATE_RETURN_VARIANT = """ + var args :Array = ["$(func_name)", $(arguments)] + + if $(instance)__is_verify_interactions(): + $(instance)__verify_interactions(args) + return ${default_return_value} + else: + $(instance)__save_function_interaction(args) + + if $(instance)__do_call_real_func("$(func_name)"): + return $(await)super($(arguments)) + return ${default_return_value} + +""" + + +const TEMPLATE_RETURN_VOID = """ + var args :Array = ["$(func_name)", $(arguments)] + + if $(instance)__is_verify_interactions(): + $(instance)__verify_interactions(args) + return + else: + $(instance)__save_function_interaction(args) + + if $(instance)__do_call_real_func("$(func_name)"): + $(await)super($(arguments)) + +""" + + +const TEMPLATE_RETURN_VOID_VARARG = """ + var varargs :Array = __filter_vargs([$(varargs)]) + var args :Array = ["$(func_name)", $(arguments)] + varargs + + if $(instance)__is_verify_interactions(): + $(instance)__verify_interactions(args) + return + else: + $(instance)__save_function_interaction(args) + + $(await)$(instance)__call_func("$(func_name)", [$(arguments)] + varargs) + +""" + + +const TEMPLATE_RETURN_VARIANT_VARARG = """ + var varargs :Array = __filter_vargs([$(varargs)]) + var args :Array = ["$(func_name)", $(arguments)] + varargs + + if $(instance)__is_verify_interactions(): + $(instance)__verify_interactions(args) + return ${default_return_value} + else: + $(instance)__save_function_interaction(args) + + return $(await)$(instance)__call_func("$(func_name)", [$(arguments)] + varargs) + +""" + + +func _init(push_errors :bool = false) -> void: + super._init(push_errors) + + +func get_template(return_type :Variant, is_vararg :bool) -> String: + if is_vararg: + return TEMPLATE_RETURN_VOID_VARARG if return_type == TYPE_NIL else TEMPLATE_RETURN_VARIANT_VARARG + if return_type is StringName: + return TEMPLATE_RETURN_VARIANT + return TEMPLATE_RETURN_VOID if (return_type == TYPE_NIL or return_type == GdObjects.TYPE_VOID) else TEMPLATE_RETURN_VARIANT diff --git a/addons/gdUnit4/src/spy/GdUnitSpyImpl.gd b/addons/gdUnit4/src/spy/GdUnitSpyImpl.gd new file mode 100644 index 0000000..3b61e86 --- /dev/null +++ b/addons/gdUnit4/src/spy/GdUnitSpyImpl.gd @@ -0,0 +1,44 @@ + +const __INSTANCE_ID = "${instance_id}" +const __SOURCE_CLASS = "${source_class}" + +var __instance_delegator :Object +var __excluded_methods :PackedStringArray = [] + + +static func __instance() -> Variant: + return Engine.get_meta(__INSTANCE_ID) + + +func _notification(what :int) -> void: + if what == NOTIFICATION_PREDELETE: + if Engine.has_meta(__INSTANCE_ID): + Engine.remove_meta(__INSTANCE_ID) + + +func __instance_id() -> String: + return __INSTANCE_ID + + +func __set_singleton(delegator :Object) -> void: + # store self need to mock static functions + Engine.set_meta(__INSTANCE_ID, self) + __instance_delegator = delegator + + +func __release_double() -> void: + # we need to release the self reference manually to prevent orphan nodes + Engine.remove_meta(__INSTANCE_ID) + __instance_delegator = null + + +func __do_call_real_func(func_name :String) -> bool: + return not __excluded_methods.has(func_name) + + +func __exclude_method_call(exluded_methods :PackedStringArray) -> void: + __excluded_methods.append_array(exluded_methods) + + +func __call_func(func_name :String, arguments :Array) -> Variant: + return __instance_delegator.callv(func_name, arguments) diff --git a/addons/gdUnit4/src/ui/EditorFileSystemControls.gd b/addons/gdUnit4/src/ui/EditorFileSystemControls.gd new file mode 100644 index 0000000..ebfd076 --- /dev/null +++ b/addons/gdUnit4/src/ui/EditorFileSystemControls.gd @@ -0,0 +1,25 @@ +# A tool to provide extended filesystem editor functionallity +class_name EditorFileSystemControls +extends RefCounted + + +# Register the given context menu to the filesystem dock +# Is called when the plugin is activated +# The filesystem popup is connected to the EditorFileSystemContextMenuHandler +static func register_context_menu(menu: Array[GdUnitContextMenuItem]) -> void: + Engine.get_main_loop().root.add_child.call_deferred(EditorFileSystemContextMenuHandler.new(menu)) + + +# Unregisteres all registerend context menus and gives the EditorFileSystemContextMenuHandler> free +# Is called when the plugin is deactivated +static func unregister_context_menu() -> void: + EditorFileSystemContextMenuHandler.dispose() + + +static func _print_menu(popup: PopupMenu) -> void: + for itemIndex in popup.item_count: + prints("get_item_id", popup.get_item_id(itemIndex)) + prints("get_item_accelerator", popup.get_item_accelerator(itemIndex)) + prints("get_item_shortcut", popup.get_item_shortcut(itemIndex)) + prints("get_item_text", popup.get_item_text(itemIndex)) + prints() diff --git a/addons/gdUnit4/src/ui/GdUnitConsole.gd b/addons/gdUnit4/src/ui/GdUnitConsole.gd new file mode 100644 index 0000000..283aa1e --- /dev/null +++ b/addons/gdUnit4/src/ui/GdUnitConsole.gd @@ -0,0 +1,168 @@ +@tool +extends Control + +const TITLE = "gdUnit4 ${version} Console" + +@onready var header := $VBoxContainer/Header +@onready var title: RichTextLabel = $VBoxContainer/Header/header_title +@onready var output: RichTextLabel = $VBoxContainer/Console/TextEdit + +var _text_color: Color +var _function_color: Color +var _engine_type_color: Color +var _statistics := {} +var _summary := { + "total_count": 0, + "error_count": 0, + "failed_count": 0, + "skipped_count": 0, + "orphan_nodes": 0 +} + + +func _ready() -> void: + init_colors() + GdUnitFonts.init_fonts(output) + GdUnit4Version.init_version_label(title) + GdUnitSignals.instance().gdunit_event.connect(_on_gdunit_event) + GdUnitSignals.instance().gdunit_message.connect(_on_gdunit_message) + GdUnitSignals.instance().gdunit_client_connected.connect(_on_gdunit_client_connected) + GdUnitSignals.instance().gdunit_client_disconnected.connect(_on_gdunit_client_disconnected) + output.clear() + + +func _notification(what: int) -> void: + if what == EditorSettings.NOTIFICATION_EDITOR_SETTINGS_CHANGED: + init_colors() + if what == NOTIFICATION_PREDELETE: + var instance := GdUnitSignals.instance() + if instance.gdunit_event.is_connected(_on_gdunit_event): + instance.gdunit_event.disconnect(_on_gdunit_event) + if instance.gdunit_message.is_connected(_on_gdunit_event): + instance.gdunit_message.disconnect(_on_gdunit_message) + if instance.gdunit_client_connected.is_connected(_on_gdunit_event): + instance.gdunit_client_connected.disconnect(_on_gdunit_client_connected) + if instance.gdunit_client_disconnected.is_connected(_on_gdunit_event): + instance.gdunit_client_disconnected.disconnect(_on_gdunit_client_disconnected) + + +func init_colors() -> void: + var settings := EditorInterface.get_editor_settings() + _text_color = settings.get_setting("text_editor/theme/highlighting/text_color") + _function_color = settings.get_setting("text_editor/theme/highlighting/function_color") + _engine_type_color = settings.get_setting("text_editor/theme/highlighting/engine_type_color") + + +func init_statistics(event: GdUnitEvent) -> void: + _statistics["total_count"] = event.total_count() + _statistics["error_count"] = 0 + _statistics["failed_count"] = 0 + _statistics["skipped_count"] = 0 + _statistics["orphan_nodes"] = 0 + _summary["total_count"] += event.total_count() + + +func reset_statistics() -> void: + for k: String in _statistics.keys(): + _statistics[k] = 0 + for k: String in _summary.keys(): + _summary[k] = 0 + + +func update_statistics(event: GdUnitEvent) -> void: + _statistics["error_count"] += event.error_count() + _statistics["failed_count"] += event.failed_count() + _statistics["skipped_count"] += event.skipped_count() + _statistics["orphan_nodes"] += event.orphan_nodes() + _summary["error_count"] += event.error_count() + _summary["failed_count"] += event.failed_count() + _summary["skipped_count"] += event.skipped_count() + _summary["orphan_nodes"] += event.orphan_nodes() + + +func print_message(message: String, color: Color=_text_color, indent:=0) -> void: + for i in indent: + output.push_indent(1) + output.push_color(color) + output.append_text(message) + output.pop() + for i in indent: + output.pop() + + +func println_message(message: String, color: Color=_text_color, indent:=-1) -> void: + print_message(message, color, indent) + output.newline() + + +func line_number(report: GdUnitReport) -> String: + return str(report._line_number) if report._line_number != -1 else "" + + +func _on_gdunit_event(event: GdUnitEvent) -> void: + match event.type(): + GdUnitEvent.INIT: + reset_statistics() + + GdUnitEvent.STOP: + print_message("Summary:", Color.DODGER_BLUE) + println_message("| %d total | %d error | %d failed | %d skipped | %d orphans |" % [_summary["total_count"], _summary["error_count"], _summary["failed_count"], _summary["skipped_count"], _summary["orphan_nodes"]], _text_color, 1) + print_message("[wave][/wave]") + + GdUnitEvent.TESTSUITE_BEFORE: + init_statistics(event) + print_message("Execute: ", Color.DODGER_BLUE) + println_message(event._suite_name, _engine_type_color) + + GdUnitEvent.TESTSUITE_AFTER: + update_statistics(event) + if not event.reports().is_empty(): + println_message("\t" + event._suite_name, _engine_type_color) + for report: GdUnitReport in event.reports(): + println_message("line %s: %s" % [line_number(report), report._message], _text_color, 2) + if event.is_success(): + print_message("[wave]PASSED[/wave]", Color.LIGHT_GREEN) + else: + print_message("[shake rate=5 level=10][b]FAILED[/b][/shake]", Color.FIREBRICK) + print_message(" | %d total | %d error | %d failed | %d skipped | %d orphans |" % [_statistics["total_count"], _statistics["error_count"], _statistics["failed_count"], _statistics["skipped_count"], _statistics["orphan_nodes"]]) + println_message("%+12s" % LocalTime.elapsed(event.elapsed_time())) + println_message(" ") + + GdUnitEvent.TESTCASE_BEFORE: + var spaces := "-%d" % (80 - event._suite_name.length()) + print_message(event._suite_name, _engine_type_color, 1) + print_message(":") + print_message(("%" + spaces + "s") % event._test_name, _function_color) + + GdUnitEvent.TESTCASE_AFTER: + var reports := event.reports() + update_statistics(event) + if event.is_success(): + print_message("PASSED", Color.LIGHT_GREEN) + elif event.is_skipped(): + print_message("SKIPPED", Color.GOLDENROD) + elif event.is_error() or event.is_failed(): + print_message("[wave]FAILED[/wave]", Color.FIREBRICK) + elif event.is_warning(): + print_message("WARNING", Color.YELLOW) + println_message(" %+12s" % LocalTime.elapsed(event.elapsed_time())) + + for report: GdUnitReport in event.reports(): + println_message("line %s: %s" % [line_number(report), report._message], _text_color, 2) + + +func _on_gdunit_client_connected(client_id: int) -> void: + output.clear() + output.append_text("[color=#9887c4]GdUnit Test Client connected with id %d[/color]\n" % client_id) + output.newline() + + +func _on_gdunit_client_disconnected(client_id: int) -> void: + output.append_text("[color=#9887c4]GdUnit Test Client disconnected with id %d[/color]\n" % client_id) + output.newline() + + +func _on_gdunit_message(message: String) -> void: + output.newline() + output.append_text(message) + output.newline() diff --git a/addons/gdUnit4/src/ui/GdUnitConsole.tscn b/addons/gdUnit4/src/ui/GdUnitConsole.tscn new file mode 100644 index 0000000..6aa9c78 --- /dev/null +++ b/addons/gdUnit4/src/ui/GdUnitConsole.tscn @@ -0,0 +1,61 @@ +[gd_scene load_steps=2 format=3 uid="uid://dm0wvfyeew7vd"] + +[ext_resource type="Script" path="res://addons/gdUnit4/src/ui/GdUnitConsole.gd" id="1"] + +[node name="Control" type="Control"] +use_parent_material = true +clip_contents = true +custom_minimum_size = Vector2(0, 200) +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 +script = ExtResource("1") + +[node name="VBoxContainer" type="VBoxContainer" parent="."] +use_parent_material = true +clip_contents = true +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 + +[node name="Header" type="PanelContainer" parent="VBoxContainer"] +custom_minimum_size = Vector2(0, 32) +layout_mode = 2 +auto_translate = false +localize_numeral_system = false +mouse_filter = 2 + +[node name="header_title" type="RichTextLabel" parent="VBoxContainer/Header"] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 +auto_translate = false +localize_numeral_system = false +mouse_filter = 2 +bbcode_enabled = true +scroll_active = false +autowrap_mode = 0 +shortcut_keys_enabled = false + +[node name="Console" type="ScrollContainer" parent="VBoxContainer"] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 + +[node name="TextEdit" type="RichTextLabel" parent="VBoxContainer/Console"] +use_parent_material = true +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 +bbcode_enabled = true +scroll_following = true diff --git a/addons/gdUnit4/src/ui/GdUnitFonts.gd b/addons/gdUnit4/src/ui/GdUnitFonts.gd new file mode 100644 index 0000000..ad5c687 --- /dev/null +++ b/addons/gdUnit4/src/ui/GdUnitFonts.gd @@ -0,0 +1,43 @@ +class_name GdUnitFonts +extends RefCounted + +const FONT_MONO = "res://addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-Regular.ttf" +const FONT_MONO_BOLT = "res://addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-Bold.ttf" +const FONT_MONO_BOLT_ITALIC = "res://addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-BoldItalic.ttf" +const FONT_MONO_ITALIC = "res://addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-Italic.ttf" + + +static func init_fonts(item: CanvasItem) -> float: + # add a default fallback font + item.set("theme_override_fonts/font", load_and_resize_font(FONT_MONO, 16)) + item.set("theme_override_fonts/normal_font", load_and_resize_font(FONT_MONO, 16)) + item.set("theme_override_font_sizes/font_size", 16) + if Engine.is_editor_hint(): + var settings := EditorInterface.get_editor_settings() + var scale_factor := EditorInterface.get_editor_scale() + var font_size: float = settings.get_setting("interface/editor/main_font_size") + font_size *= scale_factor + var font_mono := load_and_resize_font(FONT_MONO, font_size) + item.set("theme_override_fonts/normal_font", font_mono) + item.set("theme_override_fonts/bold_font", load_and_resize_font(FONT_MONO_BOLT, font_size)) + item.set("theme_override_fonts/italics_font", load_and_resize_font(FONT_MONO_ITALIC, font_size)) + item.set("theme_override_fonts/bold_italics_font", load_and_resize_font(FONT_MONO_BOLT_ITALIC, font_size)) + item.set("theme_override_fonts/mono_font", font_mono) + item.set("theme_override_font_sizes/font_size", font_size) + item.set("theme_override_font_sizes/normal_font_size", font_size) + item.set("theme_override_font_sizes/bold_font_size", font_size) + item.set("theme_override_font_sizes/italics_font_size", font_size) + item.set("theme_override_font_sizes/bold_italics_font_size", font_size) + item.set("theme_override_font_sizes/mono_font_size", font_size) + return font_size + return 16.0 + + +static func load_and_resize_font(font_resource: String, size: float) -> Font: + var font: FontFile = ResourceLoader.load(font_resource, "FontFile") + if font == null: + push_error("Can't load font '%s'" % font_resource) + return null + var resized_font := font.duplicate() + resized_font.fixed_size = int(size) + return resized_font diff --git a/addons/gdUnit4/src/ui/GdUnitInspector.gd b/addons/gdUnit4/src/ui/GdUnitInspector.gd new file mode 100644 index 0000000..daadc86 --- /dev/null +++ b/addons/gdUnit4/src/ui/GdUnitInspector.gd @@ -0,0 +1,85 @@ +@tool +class_name GdUnitInspecor +extends Panel + + +var _command_handler := GdUnitCommandHandler.instance() + + +func _ready() -> void: + if Engine.is_editor_hint(): + _getEditorThemes() + GdUnitCommandHandler.instance().gdunit_runner_start.connect(func() -> void: + var tab_container :TabContainer = get_parent_control() + for tab_index in tab_container.get_tab_count(): + if tab_container.get_tab_title(tab_index) == "GdUnit": + tab_container.set_current_tab(tab_index) + ) + if Engine.is_editor_hint(): + add_script_editor_context_menu() + add_file_system_dock_context_menu() + + +func _notification(what: int) -> void: + if what == NOTIFICATION_PREDELETE: + ScriptEditorControls.unregister_context_menu() + EditorFileSystemControls.unregister_context_menu() + + +func _process(_delta: float) -> void: + _command_handler._do_process() + + +func _getEditorThemes() -> void: + # example to access current theme + #var editiorTheme := interface.get_base_control().theme + # setup inspector button icons + #var stylebox_types :PackedStringArray = editiorTheme.get_stylebox_type_list() + #for stylebox_type in stylebox_types: + #prints("stylebox_type", stylebox_type) + # if "Tree" == stylebox_type: + # prints(editiorTheme.get_stylebox_list(stylebox_type)) + #var style:StyleBoxFlat = editiorTheme.get_stylebox("panel", "Tree") + #style.bg_color = Color.RED + #var locale = interface.get_editor_settings().get_setting("interface/editor/editor_language") + #sessions_label.add_theme_color_override("font_color", get_color("contrast_color_2", "Editor")) + #status_label.add_theme_color_override("font_color", get_color("contrast_color_2", "Editor")) + #no_sessions_label.add_theme_color_override("font_color", get_color("contrast_color_2", "Editor")) + pass + + +# Context menu registrations ---------------------------------------------------------------------- +func add_file_system_dock_context_menu() -> void: + var is_test_suite := func is_visible(script: Script, is_ts: bool) -> bool: + if script == null: + return true + return GdObjects.is_test_suite(script) == is_ts + var menu :Array[GdUnitContextMenuItem] = [ + GdUnitContextMenuItem.new(GdUnitContextMenuItem.MENU_ID.TEST_RUN, "Run Testsuites", "Play", is_test_suite.bind(true), _command_handler.command(GdUnitCommandHandler.CMD_RUN_TESTSUITE)), + GdUnitContextMenuItem.new(GdUnitContextMenuItem.MENU_ID.TEST_DEBUG, "Debug Testsuites", "PlayStart", is_test_suite.bind(true), _command_handler.command(GdUnitCommandHandler.CMD_RUN_TESTSUITE_DEBUG)), + ] + EditorFileSystemControls.register_context_menu(menu) + + +func add_script_editor_context_menu() -> void: + var is_test_suite := func is_visible(script: Script, is_ts: bool) -> bool: + return GdObjects.is_test_suite(script) == is_ts + var menu :Array[GdUnitContextMenuItem] = [ + GdUnitContextMenuItem.new(GdUnitContextMenuItem.MENU_ID.TEST_RUN, "Run Tests", "Play", is_test_suite.bind(true), _command_handler.command(GdUnitCommandHandler.CMD_RUN_TESTCASE)), + GdUnitContextMenuItem.new(GdUnitContextMenuItem.MENU_ID.TEST_DEBUG, "Debug Tests", "PlayStart", is_test_suite.bind(true),_command_handler.command(GdUnitCommandHandler.CMD_RUN_TESTCASE_DEBUG)), + GdUnitContextMenuItem.new(GdUnitContextMenuItem.MENU_ID.CREATE_TEST, "Create Test", "New", is_test_suite.bind(false), _command_handler.command(GdUnitCommandHandler.CMD_CREATE_TESTCASE)) + ] + ScriptEditorControls.register_context_menu(menu) + + +func _on_MainPanel_run_testsuite(test_suite_paths: Array, debug: bool) -> void: + _command_handler.cmd_run_test_suites(test_suite_paths, debug) + + +func _on_MainPanel_run_testcase(resource_path: String, test_case: String, test_param_index: int, debug: bool) -> void: + _command_handler.cmd_run_test_case(resource_path, test_case, test_param_index, debug) + + +@warning_ignore("redundant_await") +func _on_status_bar_request_discover_tests() -> void: + await _command_handler.cmd_discover_tests() diff --git a/addons/gdUnit4/src/ui/GdUnitInspector.tscn b/addons/gdUnit4/src/ui/GdUnitInspector.tscn new file mode 100644 index 0000000..88f51f6 --- /dev/null +++ b/addons/gdUnit4/src/ui/GdUnitInspector.tscn @@ -0,0 +1,60 @@ +[gd_scene load_steps=7 format=3 uid="uid://mpo5o6d4uybu"] + +[ext_resource type="PackedScene" uid="uid://dx7xy4dgi3wwb" path="res://addons/gdUnit4/src/ui/parts/InspectorToolBar.tscn" id="1"] +[ext_resource type="PackedScene" uid="uid://dva3tonxsxrlk" path="res://addons/gdUnit4/src/ui/parts/InspectorProgressBar.tscn" id="2"] +[ext_resource type="PackedScene" uid="uid://bf53e4y5peguj" path="res://addons/gdUnit4/src/ui/parts/InspectorStatusBar.tscn" id="3"] +[ext_resource type="PackedScene" uid="uid://djp8ait0bxpsc" path="res://addons/gdUnit4/src/ui/parts/InspectorMonitor.tscn" id="4"] +[ext_resource type="Script" path="res://addons/gdUnit4/src/ui/GdUnitInspector.gd" id="5"] +[ext_resource type="PackedScene" uid="uid://bqfpidewtpeg0" path="res://addons/gdUnit4/src/ui/parts/InspectorTreePanel.tscn" id="7"] + +[node name="GdUnit" type="Panel"] +use_parent_material = true +clip_contents = true +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +size_flags_horizontal = 11 +size_flags_vertical = 3 +focus_mode = 2 +script = ExtResource("5") + +[node name="VBoxContainer" type="VBoxContainer" parent="."] +use_parent_material = true +clip_contents = true +layout_mode = 0 +anchor_right = 1.0 +anchor_bottom = 1.0 +size_flags_vertical = 11 + +[node name="Header" type="VBoxContainer" parent="VBoxContainer"] +use_parent_material = true +clip_contents = true +layout_mode = 2 +size_flags_horizontal = 9 + +[node name="ToolBar" parent="VBoxContainer/Header" instance=ExtResource("1")] +layout_mode = 2 +size_flags_vertical = 1 + +[node name="ProgressBar" parent="VBoxContainer/Header" instance=ExtResource("2")] +layout_mode = 2 +size_flags_horizontal = 5 +max_value = 0.0 + +[node name="StatusBar" parent="VBoxContainer/Header" instance=ExtResource("3")] +layout_mode = 2 +size_flags_horizontal = 11 + +[node name="MainPanel" parent="VBoxContainer" instance=ExtResource("7")] +layout_mode = 2 + +[node name="Monitor" parent="VBoxContainer" instance=ExtResource("4")] +layout_mode = 2 + +[connection signal="failure_next" from="VBoxContainer/Header/StatusBar" to="VBoxContainer/MainPanel" method="select_next_failure"] +[connection signal="failure_prevous" from="VBoxContainer/Header/StatusBar" to="VBoxContainer/MainPanel" method="select_previous_failure"] +[connection signal="request_discover_tests" from="VBoxContainer/Header/StatusBar" to="." method="_on_status_bar_request_discover_tests"] +[connection signal="tree_view_mode_changed" from="VBoxContainer/Header/StatusBar" to="VBoxContainer/MainPanel" method="_on_status_bar_tree_view_mode_changed"] +[connection signal="run_testcase" from="VBoxContainer/MainPanel" to="." method="_on_MainPanel_run_testcase"] +[connection signal="run_testsuite" from="VBoxContainer/MainPanel" to="." method="_on_MainPanel_run_testsuite"] +[connection signal="jump_to_orphan_nodes" from="VBoxContainer/Monitor" to="VBoxContainer/MainPanel" method="select_first_orphan"] diff --git a/addons/gdUnit4/src/ui/GdUnitInspectorTreeConstants.gd b/addons/gdUnit4/src/ui/GdUnitInspectorTreeConstants.gd new file mode 100644 index 0000000..8b0e06b --- /dev/null +++ b/addons/gdUnit4/src/ui/GdUnitInspectorTreeConstants.gd @@ -0,0 +1,18 @@ +class_name GdUnitInspectorTreeConstants +extends RefCounted + + +# the inspector panel presantation +enum TREE_VIEW_MODE { + TREE, + FLAT +} + + +# The inspector sort modes +enum SORT_MODE { + UNSORTED, + NAME_ASCENDING, + NAME_DESCENDING, + EXECUTION_TIME +} diff --git a/addons/gdUnit4/src/ui/GdUnitUiTools.gd b/addons/gdUnit4/src/ui/GdUnitUiTools.gd new file mode 100644 index 0000000..25d03dd --- /dev/null +++ b/addons/gdUnit4/src/ui/GdUnitUiTools.gd @@ -0,0 +1,159 @@ +class_name GdUnitUiTools +extends RefCounted + + +static var _spinner: AnimatedTexture + + +enum ImageFlipMode { + HORIZONTAl, + VERITCAL +} + + +## Returns the icon by name, if it exists. +static func get_icon(icon_name: String, color: = Color.BLACK) -> Texture2D: + if not Engine.is_editor_hint(): + return null + var icon := EditorInterface.get_base_control().get_theme_icon(icon_name, "EditorIcons") + if icon == null: + return null + if color != Color.BLACK: + icon = _modulate_texture(icon, color) + return icon + + +## Returns the icon flipped +static func get_flipped_icon(icon_name: String, mode: = ImageFlipMode.HORIZONTAl) -> Texture2D: + if not Engine.is_editor_hint(): + return null + var icon := EditorInterface.get_base_control().get_theme_icon(icon_name, "EditorIcons") + if icon == null: + return null + return ImageTexture.create_from_image(_flip_image(icon, mode)) + + +static func get_spinner() -> AnimatedTexture: + if _spinner != null: + return _spinner + _spinner = AnimatedTexture.new() + _spinner.frames = 8 + _spinner.speed_scale = 2.5 + for frame in _spinner.frames: + _spinner.set_frame_texture(frame, get_icon("Progress%d" % (frame+1))) + _spinner.set_frame_duration(frame, 0.2) + return _spinner + + +static func get_color_animated_icon(icon_name :String, from :Color, to :Color) -> AnimatedTexture: + var texture := AnimatedTexture.new() + texture.frames = 8 + texture.speed_scale = 2.5 + var color := from + for frame in texture.frames: + color = lerp(color, to, .2) + texture.set_frame_texture(frame, get_icon(icon_name, color)) + texture.set_frame_duration(frame, 0.2) + return texture + + +static func get_run_overall_icon() -> Texture2D: + if not Engine.is_editor_hint(): + return null + var icon := EditorInterface.get_base_control().get_theme_icon("Play", "EditorIcons") + var image := _merge_images(icon.get_image(), Vector2i(-2, 0), icon.get_image(), Vector2i(3, 0)) + return ImageTexture.create_from_image(image) + + +static func get_GDScript_icon(status: String, color: Color) -> Texture2D: + if not Engine.is_editor_hint(): + return null + var icon_a := EditorInterface.get_base_control().get_theme_icon("GDScript", "EditorIcons") + var icon_b := EditorInterface.get_base_control().get_theme_icon(status, "EditorIcons") + var overlay_image := _modulate_image(icon_b.get_image(), color) + var image := _merge_images_scaled(icon_a.get_image(), Vector2i(0, 0), overlay_image, Vector2i(5, 5)) + return ImageTexture.create_from_image(image) + + +static func get_CSharpScript_icon(status: String, color: Color) -> Texture2D: + if not Engine.is_editor_hint(): + return null + var icon_a := EditorInterface.get_base_control().get_theme_icon("CSharpScript", "EditorIcons") + var icon_b := EditorInterface.get_base_control().get_theme_icon(status, "EditorIcons") + var overlay_image := _modulate_image(icon_b.get_image(), color) + var image := _merge_images_scaled(icon_a.get_image(), Vector2i(0, 0), overlay_image, Vector2i(5, 5)) + return ImageTexture.create_from_image(image) + + +static func _modulate_texture(texture: Texture2D, color: Color) -> Texture2D: + var image := _modulate_image(texture.get_image(), color) + return ImageTexture.create_from_image(image) + + +static func _modulate_image(image: Image, color: Color) -> Image: + var data: PackedByteArray = image.data["data"] + for pixel in range(0, data.size(), 4): + var pixel_a := _to_color(data, pixel) + if pixel_a.a8 != 0: + pixel_a = pixel_a.lerp(color, .9) + data[pixel + 0] = pixel_a.r8 + data[pixel + 1] = pixel_a.g8 + data[pixel + 2] = pixel_a.b8 + data[pixel + 3] = pixel_a.a8 + var output_image := Image.new() + output_image.set_data(image.get_width(), image.get_height(), image.has_mipmaps(), image.get_format(), data) + return output_image + + +static func _merge_images(image1: Image, offset1: Vector2i, image2: Image, offset2: Vector2i) -> Image: + if image1.get_height() != image2.get_height(): + push_error("invalid height:", image1.get_height(), " vs ", image2.get_height()) + return null + if image1.get_width() != image2.get_width(): + push_error("invalid width:", image1.get_width(), " vs ", image2.get_width()) + return null + + # Create a new Image for the merged result + var merged_image := Image.create(image1.get_width(), image1.get_height(), false, Image.FORMAT_RGBA8) + merged_image.blit_rect_mask(image1, image2, Rect2(Vector2.ZERO, image1.get_size()), offset1) + merged_image.blit_rect_mask(image1, image2, Rect2(Vector2.ZERO, image2.get_size()), offset2) + return merged_image + + +@warning_ignore("narrowing_conversion") +static func _merge_images_scaled(image1: Image, offset1: Vector2i, image2: Image, offset2: Vector2i) -> Image: + ## we disable the check for now because the image size of icons are different on macos and produces an error + ## see issue https://github.com/MikeSchulze/gdUnit4/issues/486 + if not OS.get_distribution_name().contains("mac"): + if image1.get_height() != image2.get_height(): + push_error("invalid height:", image1.get_height(), " vs ", image2.get_height()) + return null + if image1.get_width() != image2.get_width(): + push_error("invalid width:", image1.get_width(), " vs ", image2.get_width()) + return null + + # Create a new Image for the merged result + var merged_image := Image.create(image1.get_width(), image1.get_height(), false, image1.get_format()) + merged_image.blend_rect(image1, Rect2(Vector2.ZERO, image1.get_size()), offset1) + image2.resize(image2.get_width()/1.3, image2.get_height()/1.3) + merged_image.blend_rect(image2, Rect2(Vector2.ZERO, image2.get_size()), offset2) + return merged_image + + +static func _flip_image(texture: Texture2D, mode: ImageFlipMode) -> Image: + var flipped_image := Image.new() + flipped_image.copy_from(texture.get_image()) + if mode == ImageFlipMode.VERITCAL: + flipped_image.flip_x() + else: + flipped_image.flip_y() + return flipped_image + + +static func _to_color(data: PackedByteArray, position: int) -> Color: + var pixel_a := Color() + pixel_a.r8 = data[position + 0] + pixel_a.g8 = data[position + 1] + pixel_a.b8 = data[position + 2] + pixel_a.a8 = data[position + 3] + return pixel_a diff --git a/addons/gdUnit4/src/ui/ScriptEditorControls.gd b/addons/gdUnit4/src/ui/ScriptEditorControls.gd new file mode 100644 index 0000000..0ddf068 --- /dev/null +++ b/addons/gdUnit4/src/ui/ScriptEditorControls.gd @@ -0,0 +1,112 @@ +# A tool to provide extended script editor functionallity +class_name ScriptEditorControls +extends RefCounted + +# https://github.com/godotengine/godot/blob/master/editor/plugins/script_editor_plugin.h +# the Editor menu popup items +enum { + FILE_NEW, + FILE_NEW_TEXTFILE, + FILE_OPEN, + FILE_REOPEN_CLOSED, + FILE_OPEN_RECENT, + FILE_SAVE, + FILE_SAVE_AS, + FILE_SAVE_ALL, + FILE_THEME, + FILE_RUN, + FILE_CLOSE, + CLOSE_DOCS, + CLOSE_ALL, + CLOSE_OTHER_TABS, + TOGGLE_SCRIPTS_PANEL, + SHOW_IN_FILE_SYSTEM, + FILE_COPY_PATH, + FILE_TOOL_RELOAD_SOFT, + SEARCH_IN_FILES, + REPLACE_IN_FILES, + SEARCH_HELP, + SEARCH_WEBSITE, + HELP_SEARCH_FIND, + HELP_SEARCH_FIND_NEXT, + HELP_SEARCH_FIND_PREVIOUS, + WINDOW_MOVE_UP, + WINDOW_MOVE_DOWN, + WINDOW_NEXT, + WINDOW_PREV, + WINDOW_SORT, + WINDOW_SELECT_BASE = 100 +} + + +# Saves the given script and closes if requested by +# The script is saved when is opened in the editor. +# The script is closed when is set to true. +static func save_an_open_script(script_path: String, close:=false) -> bool: + #prints("save_an_open_script", script_path, close) + if !Engine.is_editor_hint(): + return false + var editor := EditorInterface.get_script_editor() + var editor_popup := _menu_popup() + # search for the script in all opened editor scrips + for open_script in editor.get_open_scripts(): + if open_script.resource_path == script_path: + # select the script in the editor + EditorInterface.edit_script(open_script, 0); + # save and close + editor_popup.id_pressed.emit(FILE_SAVE) + if close: + editor_popup.id_pressed.emit(FILE_CLOSE) + return true + return false + + +# Saves all opened script +static func save_all_open_script() -> void: + if Engine.is_editor_hint(): + _menu_popup().id_pressed.emit(FILE_SAVE_ALL) + + +static func close_open_editor_scripts() -> void: + if Engine.is_editor_hint(): + _menu_popup().id_pressed.emit(CLOSE_ALL) + + +# Edits the given script. +# The script is openend in the current editor and selected in the file system dock. +# The line and column on which to open the script can also be specified. +# The script will be open with the user-configured editor for the script's language which may be an external editor. +static func edit_script(script_path: String, line_number:=-1) -> void: + var file_system := EditorInterface.get_resource_filesystem() + file_system.update_file(script_path) + var file_system_dock := EditorInterface.get_file_system_dock() + file_system_dock.navigate_to_path(script_path) + EditorInterface.select_file(script_path) + var script := load(script_path) + EditorInterface.edit_script(script, line_number) + + +# Register the given context menu to the current script editor +# Is called when the plugin is activated +# The active script is connected to the ScriptEditorContextMenuHandler +static func register_context_menu(menu: Array[GdUnitContextMenuItem]) -> void: + Engine.get_main_loop().root.call_deferred("add_child", ScriptEditorContextMenuHandler.new(menu)) + + +# Unregisteres all registerend context menus and gives the ScriptEditorContextMenuHandler> free +# Is called when the plugin is deactivated +static func unregister_context_menu() -> void: + ScriptEditorContextMenuHandler.dispose() + + +static func _menu_popup() -> PopupMenu: + return EditorInterface.get_script_editor().get_child(0).get_child(0).get_child(0).get_popup() + + +static func _print_menu(popup: PopupMenu) -> void: + for itemIndex in popup.item_count: + prints("get_item_id", popup.get_item_id(itemIndex)) + prints("get_item_accelerator", popup.get_item_accelerator(itemIndex)) + prints("get_item_shortcut", popup.get_item_shortcut(itemIndex)) + prints("get_item_text", popup.get_item_text(itemIndex)) + prints() diff --git a/addons/gdUnit4/src/ui/menu/EditorFileSystemContextMenuHandler.gd b/addons/gdUnit4/src/ui/menu/EditorFileSystemContextMenuHandler.gd new file mode 100644 index 0000000..4b2b297 --- /dev/null +++ b/addons/gdUnit4/src/ui/menu/EditorFileSystemContextMenuHandler.gd @@ -0,0 +1,84 @@ +class_name EditorFileSystemContextMenuHandler +extends Control + +var _context_menus := Dictionary() + + +func _init(context_menus: Array[GdUnitContextMenuItem]) -> void: + set_name("EditorFileSystemContextMenuHandler") + for menu in context_menus: + _context_menus[menu.id] = menu + var popup := EditorFileSystemContextMenuHandler._menu_popup() + var file_tree := EditorFileSystemContextMenuHandler._file_tree() + popup.about_to_popup.connect(on_context_menu_show.bind(popup, file_tree)) + popup.id_pressed.connect(on_context_menu_pressed.bind(file_tree)) + + +static func dispose() -> void: + if Engine.get_main_loop().root == null: + return + var handler: EditorFileSystemContextMenuHandler = Engine.get_main_loop().root.find_child("EditorFileSystemContextMenuHandler*", false, false) + if handler: + var popup := _menu_popup() + if popup.about_to_popup.is_connected(Callable(handler, "on_context_menu_show")): + popup.about_to_popup.disconnect(Callable(handler, "on_context_menu_show")) + if popup.id_pressed.is_connected(Callable(handler, "on_context_menu_pressed")): + popup.id_pressed.disconnect(Callable(handler, "on_context_menu_pressed")) + GodotVersionFixures.free_fix(handler) + + +func on_context_menu_show(context_menu: PopupMenu, file_tree: Tree) -> void: + context_menu.add_separator() + var current_index := context_menu.get_item_count() + var selected_test_suites := collect_testsuites(_context_menus.values()[0], file_tree) + + for menu_id: int in _context_menus.keys(): + var menu_item: GdUnitContextMenuItem = _context_menus[menu_id] + if selected_test_suites.size() != 0: + context_menu.add_item(menu_item.name, menu_id) + #context_menu.set_item_icon_modulate(current_index, Color.MEDIUM_PURPLE) + context_menu.set_item_disabled(current_index, !menu_item.is_enabled(null)) + context_menu.set_item_icon(current_index, GdUnitUiTools.get_icon(menu_item.icon)) + current_index += 1 + + +func on_context_menu_pressed(id: int, file_tree: Tree) -> void: + #prints("on_context_menu_pressed", id) + if !_context_menus.has(id): + return + var menu_item: GdUnitContextMenuItem = _context_menus[id] + var selected_test_suites := collect_testsuites(menu_item, file_tree) + menu_item.execute([selected_test_suites]) + + +func collect_testsuites(_menu_item: GdUnitContextMenuItem, file_tree: Tree) -> PackedStringArray: + var file_system := EditorInterface.get_resource_filesystem() + var selected_item := file_tree.get_selected() + var selected_test_suites := PackedStringArray() + while selected_item: + var resource_path: String = selected_item.get_metadata(0) + var file_type := file_system.get_file_type(resource_path) + var is_dir := DirAccess.dir_exists_absolute(resource_path) + if is_dir: + selected_test_suites.append(resource_path) + elif is_dir or file_type == "GDScript" or file_type == "CSharpScript": + # find a performant way to check if the selected item a testsuite + #var resource := ResourceLoader.load(resource_path, "GDScript", ResourceLoader.CACHE_MODE_REUSE) + #prints("loaded", resource) + #if resource is GDScript and menu_item.is_visible(resource): + selected_test_suites.append(resource_path) + selected_item = file_tree.get_next_selected(selected_item) + return selected_test_suites + + +# Returns the FileSystemDock instance +static func filesystem_dock() -> FileSystemDock: + return EditorInterface.get_file_system_dock() + + +static func _file_tree() -> Tree: + return GdObjects.find_nodes_by_class(filesystem_dock(), "Tree", true)[-1] + + +static func _menu_popup() -> PopupMenu: + return GdObjects.find_nodes_by_class(filesystem_dock(), "PopupMenu")[-1] diff --git a/addons/gdUnit4/src/ui/menu/GdUnitContextMenuItem.gd b/addons/gdUnit4/src/ui/menu/GdUnitContextMenuItem.gd new file mode 100644 index 0000000..a591c11 --- /dev/null +++ b/addons/gdUnit4/src/ui/menu/GdUnitContextMenuItem.gd @@ -0,0 +1,68 @@ +class_name GdUnitContextMenuItem + +enum MENU_ID { + TEST_RUN = 1000, + TEST_DEBUG = 1001, + TEST_RERUN = 1002, + CREATE_TEST = 1010, +} + +var id: MENU_ID: + set(value): + id = value + get: + return id + +var name: StringName: + set(value): + name = value + get: + return name + +var command: GdUnitCommand: + set(value): + command = value + get: + return command + +var visible: Callable: + set(value): + visible = value + get: + return visible + +var icon: String: + set(value): + icon = value + get: + return icon + + +func _init(p_id: MENU_ID, p_name: StringName, p_icon :String, p_is_visible: Callable, p_command: GdUnitCommand) -> void: + assert(p_id != null, "(%s) missing parameter 'MENU_ID'" % p_name) + assert(p_is_visible != null, "(%s) missing parameter 'GdUnitCommand'" % p_name) + assert(p_command != null, "(%s) missing parameter 'GdUnitCommand'" % p_name) + self.id = p_id + self.name = p_name + self.icon = p_icon + self.command = p_command + self.visible = p_is_visible + + +func shortcut() -> Shortcut: + return GdUnitCommandHandler.instance().get_shortcut(command.shortcut) + + +func is_enabled(script: Script) -> bool: + return command.is_enabled.call(script) + + +func is_visible(script: Script) -> bool: + return visible.call(script) + + +func execute(arguments:=[]) -> void: + if arguments.is_empty(): + command.runnable.call() + else: + command.runnable.callv(arguments) diff --git a/addons/gdUnit4/src/ui/menu/ScriptEditorContextMenuHandler.gd b/addons/gdUnit4/src/ui/menu/ScriptEditorContextMenuHandler.gd new file mode 100644 index 0000000..0bad13e --- /dev/null +++ b/addons/gdUnit4/src/ui/menu/ScriptEditorContextMenuHandler.gd @@ -0,0 +1,82 @@ +class_name ScriptEditorContextMenuHandler +extends Control + +var _context_menus := Dictionary() +var _editor: ScriptEditor + + +func _init(context_menus: Array[GdUnitContextMenuItem]) -> void: + set_name("ScriptEditorContextMenuHandler") + for menu in context_menus: + _context_menus[menu.id] = menu + _editor = EditorInterface.get_script_editor() + _editor.editor_script_changed.connect(on_script_changed) + on_script_changed(active_script()) + + +static func dispose() -> void: + if Engine.get_main_loop().root == null: + return + var handler: ScriptEditorContextMenuHandler = Engine.get_main_loop().root.find_child("ScriptEditorContextMenuHandler*", false, false) + if handler: + var editor := EditorInterface.get_script_editor() + if editor.editor_script_changed.is_connected(handler.on_script_changed): + editor.editor_script_changed.disconnect(handler.on_script_changed) + GodotVersionFixures.free_fix(handler) + + +func _input(event: InputEvent) -> void: + if event is InputEventKey and event.is_pressed(): + for action: GdUnitContextMenuItem in _context_menus.values(): + if action.shortcut().matches_event(event) and action.is_visible(active_script()): + #if not has_editor_focus(): + # return + action.execute() + accept_event() + return + + +func has_editor_focus() -> bool: + return Engine.get_main_loop().root.gui_get_focus_owner() == active_base_editor() + + +func on_script_changed(script: Script) -> void: + if script is Script: + var popups: Array[Node] = GdObjects.find_nodes_by_class(active_editor(), "PopupMenu", true) + for popup in popups: + if not popup.about_to_popup.is_connected(on_context_menu_show): + popup.about_to_popup.connect(on_context_menu_show.bind(script, popup)) + if not popup.id_pressed.is_connected(on_context_menu_pressed): + popup.id_pressed.connect(on_context_menu_pressed) + + +func on_context_menu_show(script: Script, context_menu: PopupMenu) -> void: + #prints("on_context_menu_show", _context_menus.keys(), context_menu, self) + context_menu.add_separator() + var current_index := context_menu.get_item_count() + for menu_id: int in _context_menus.keys(): + var menu_item: GdUnitContextMenuItem = _context_menus[menu_id] + if menu_item.is_visible(script): + context_menu.add_item(menu_item.name, menu_id) + context_menu.set_item_disabled(current_index, !menu_item.is_enabled(script)) + context_menu.set_item_shortcut(current_index, menu_item.shortcut(), true) + current_index += 1 + + +func on_context_menu_pressed(id: int) -> void: + if !_context_menus.has(id): + return + var menu_item: GdUnitContextMenuItem = _context_menus[id] + menu_item.execute() + + +func active_editor() -> ScriptEditorBase: + return _editor.get_current_editor() + + +func active_base_editor() -> TextEdit: + return active_editor().get_base_editor() + + +func active_script() -> Script: + return _editor.get_current_script() diff --git a/addons/gdUnit4/src/ui/parts/InspectorMonitor.gd b/addons/gdUnit4/src/ui/parts/InspectorMonitor.gd new file mode 100644 index 0000000..e6939f4 --- /dev/null +++ b/addons/gdUnit4/src/ui/parts/InspectorMonitor.gd @@ -0,0 +1,53 @@ +@tool +extends PanelContainer + +signal jump_to_orphan_nodes() + +@onready var ICON_GREEN := GdUnitUiTools.get_icon("Unlinked", Color.WEB_GREEN) +@onready var ICON_RED := GdUnitUiTools.get_color_animated_icon("Unlinked", Color.YELLOW, Color.ORANGE_RED) + +@onready var _button_time := %btn_time +@onready var _time := %time_value +@onready var _orphans := %orphan_value +@onready var _orphan_button := %btn_orphan + +var total_elapsed_time := 0 +var total_orphans := 0 + + +func _ready() -> void: + GdUnitSignals.instance().gdunit_event.connect(_on_gdunit_event) + _time.text = "" + _orphans.text = "0" + _button_time.icon = GdUnitUiTools.get_icon("Time") + _orphan_button.icon = ICON_GREEN + + +func status_changed(elapsed_time: int, orphan_nodes: int) -> void: + total_elapsed_time += elapsed_time + total_orphans += orphan_nodes + _time.text = LocalTime.elapsed(total_elapsed_time) + _orphans.text = str(total_orphans) + if total_orphans > 0: + _orphan_button.icon = ICON_RED + + +func _on_gdunit_event(event: GdUnitEvent) -> void: + match event.type(): + GdUnitEvent.INIT: + _orphan_button.icon = ICON_GREEN + total_elapsed_time = 0 + total_orphans = 0 + status_changed(0, 0) + GdUnitEvent.TESTCASE_BEFORE: + pass + GdUnitEvent.TESTCASE_AFTER: + status_changed(0, event.orphan_nodes()) + GdUnitEvent.TESTSUITE_BEFORE: + pass + GdUnitEvent.TESTSUITE_AFTER: + status_changed(event.elapsed_time(), event.orphan_nodes()) + + +func _on_ToolButton_pressed() -> void: + jump_to_orphan_nodes.emit() diff --git a/addons/gdUnit4/src/ui/parts/InspectorMonitor.tscn b/addons/gdUnit4/src/ui/parts/InspectorMonitor.tscn new file mode 100644 index 0000000..963528e --- /dev/null +++ b/addons/gdUnit4/src/ui/parts/InspectorMonitor.tscn @@ -0,0 +1,94 @@ +[gd_scene load_steps=6 format=3 uid="uid://djp8ait0bxpsc"] + +[ext_resource type="Script" path="res://addons/gdUnit4/src/ui/parts/InspectorMonitor.gd" id="3"] + +[sub_resource type="Image" id="Image_1hcll"] +data = { +"data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 4, 227, 227, 227, 36, 227, 227, 227, 36, 255, 255, 255, 4, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 131, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 131, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 5, 225, 225, 225, 76, 224, 224, 224, 255, 224, 224, 224, 255, 226, 226, 226, 77, 255, 255, 255, 5, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 99, 224, 224, 224, 232, 224, 224, 224, 244, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 244, 224, 224, 224, 233, 224, 224, 224, 97, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 225, 225, 225, 135, 224, 224, 224, 247, 224, 224, 224, 115, 234, 234, 234, 12, 224, 224, 224, 130, 224, 224, 224, 130, 234, 234, 234, 12, 225, 225, 225, 116, 224, 224, 224, 248, 224, 224, 224, 132, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 226, 226, 226, 77, 224, 224, 224, 251, 224, 224, 224, 64, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 66, 224, 224, 224, 252, 225, 225, 225, 75, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 201, 224, 224, 224, 146, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 2, 224, 224, 224, 146, 224, 224, 224, 106, 255, 255, 255, 0, 225, 225, 225, 150, 224, 224, 224, 195, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 24, 224, 224, 224, 255, 226, 226, 226, 43, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 233, 233, 233, 23, 225, 225, 225, 166, 224, 224, 224, 237, 228, 228, 228, 47, 255, 255, 255, 0, 225, 225, 225, 51, 224, 224, 224, 255, 224, 224, 224, 16, 255, 255, 255, 0, 255, 255, 255, 0, 225, 225, 225, 67, 224, 224, 224, 255, 225, 225, 225, 215, 227, 227, 227, 9, 255, 255, 255, 0, 255, 255, 255, 0, 223, 223, 223, 239, 224, 224, 224, 253, 224, 224, 224, 49, 255, 255, 255, 0, 230, 230, 230, 30, 224, 224, 224, 230, 224, 224, 224, 255, 224, 224, 224, 49, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 41, 224, 224, 224, 255, 225, 225, 225, 101, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 139, 224, 224, 224, 139, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 5, 225, 225, 225, 117, 224, 224, 224, 255, 224, 224, 224, 33, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 6, 224, 224, 224, 240, 226, 226, 226, 87, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 96, 224, 224, 224, 236, 255, 255, 255, 3, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 225, 225, 225, 143, 224, 224, 224, 211, 224, 224, 224, 8, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 232, 232, 232, 11, 224, 224, 224, 216, 225, 225, 225, 141, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 238, 238, 238, 15, 224, 224, 224, 220, 224, 224, 224, 178, 238, 238, 238, 15, 255, 255, 255, 0, 225, 225, 225, 51, 225, 225, 225, 51, 255, 255, 255, 0, 227, 227, 227, 18, 224, 224, 224, 184, 224, 224, 224, 218, 238, 238, 238, 15, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 227, 227, 227, 36, 224, 224, 224, 212, 224, 224, 224, 232, 225, 225, 225, 133, 224, 224, 224, 251, 224, 224, 224, 240, 225, 225, 225, 135, 224, 224, 224, 234, 224, 224, 224, 208, 225, 225, 225, 34, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 230, 230, 230, 10, 224, 224, 224, 107, 224, 224, 224, 197, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 196, 224, 224, 224, 104, 224, 224, 224, 8, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0), +"format": "RGBA8", +"height": 16, +"mipmaps": false, +"width": 16 +} + +[sub_resource type="ImageTexture" id="ImageTexture_ugpqy"] +image = SubResource("Image_1hcll") + +[sub_resource type="Image" id="Image_3te4a"] +data = { +"data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 22, 138, 22, 251, 255, 255, 255, 0, 255, 255, 255, 0, 22, 138, 22, 234, 22, 138, 22, 247, 22, 138, 22, 253, 22, 138, 22, 253, 22, 138, 22, 247, 22, 138, 22, 233, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 22, 138, 22, 251, 22, 138, 22, 236, 255, 255, 255, 0, 22, 138, 22, 255, 255, 255, 255, 0, 23, 138, 23, 233, 22, 138, 22, 254, 22, 138, 22, 255, 22, 138, 22, 255, 22, 138, 22, 255, 22, 138, 22, 255, 22, 138, 22, 253, 23, 138, 23, 233, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 22, 138, 22, 236, 22, 138, 22, 253, 22, 138, 22, 236, 22, 138, 22, 251, 255, 255, 255, 0, 22, 138, 22, 247, 22, 138, 22, 255, 22, 138, 22, 248, 22, 138, 22, 233, 23, 138, 23, 233, 22, 138, 22, 249, 22, 138, 22, 255, 22, 138, 22, 246, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 22, 138, 22, 236, 22, 138, 22, 251, 255, 255, 255, 0, 255, 255, 255, 0, 22, 138, 22, 249, 22, 138, 22, 253, 23, 138, 23, 232, 255, 255, 255, 0, 255, 255, 255, 0, 22, 138, 22, 234, 22, 138, 22, 255, 22, 138, 22, 253, 255, 255, 255, 0, 255, 255, 255, 0, 22, 138, 22, 251, 22, 138, 22, 255, 22, 138, 22, 251, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 24, 139, 24, 231, 23, 138, 23, 231, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 23, 138, 23, 234, 22, 138, 22, 255, 22, 138, 22, 253, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 23, 138, 23, 231, 23, 138, 23, 234, 22, 138, 22, 249, 22, 138, 22, 255, 22, 138, 22, 246, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 23, 138, 23, 233, 22, 138, 22, 247, 22, 138, 22, 249, 24, 139, 24, 231, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 23, 138, 23, 245, 22, 138, 22, 255, 22, 138, 22, 255, 22, 138, 22, 255, 22, 138, 22, 253, 23, 138, 23, 233, 255, 255, 255, 0, 255, 255, 255, 0, 22, 138, 22, 234, 22, 138, 22, 254, 22, 138, 22, 255, 22, 138, 22, 253, 23, 138, 23, 231, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 23, 138, 23, 241, 22, 138, 22, 253, 22, 138, 22, 253, 22, 138, 22, 246, 22, 138, 22, 233, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 22, 138, 22, 247, 22, 138, 22, 255, 22, 138, 22, 248, 23, 138, 23, 232, 255, 255, 255, 0, 255, 255, 255, 0, 23, 138, 23, 245, 23, 138, 23, 241, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 22, 138, 22, 253, 22, 138, 22, 255, 22, 138, 22, 233, 255, 255, 255, 0, 255, 255, 255, 0, 23, 138, 23, 231, 22, 138, 22, 255, 22, 138, 22, 253, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 22, 138, 22, 253, 22, 138, 22, 255, 23, 138, 23, 233, 255, 255, 255, 0, 255, 255, 255, 0, 23, 138, 23, 234, 22, 138, 22, 255, 22, 138, 22, 253, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 22, 138, 22, 247, 22, 138, 22, 255, 22, 138, 22, 249, 22, 138, 22, 234, 23, 138, 23, 234, 22, 138, 22, 249, 22, 138, 22, 255, 22, 138, 22, 246, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 22, 138, 22, 233, 22, 138, 22, 253, 22, 138, 22, 255, 22, 138, 22, 255, 22, 138, 22, 255, 22, 138, 22, 255, 22, 138, 22, 253, 22, 138, 22, 233, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 23, 138, 23, 233, 22, 138, 22, 246, 22, 138, 22, 253, 22, 138, 22, 253, 22, 138, 22, 246, 23, 138, 23, 233, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0), +"format": "RGBA8", +"height": 16, +"mipmaps": false, +"width": 16 +} + +[sub_resource type="ImageTexture" id="ImageTexture_nj5du"] +image = SubResource("Image_3te4a") + +[node name="Monitor" type="PanelContainer"] +clip_contents = true +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_right = -793.0 +offset_bottom = -564.0 +size_flags_horizontal = 9 +size_flags_vertical = 9 +script = ExtResource("3") + +[node name="HBoxContainer" type="HBoxContainer" parent="."] +layout_mode = 2 +size_flags_vertical = 4 + +[node name="timer" type="HBoxContainer" parent="HBoxContainer"] +layout_mode = 2 + +[node name="btn_time" type="Button" parent="HBoxContainer/timer"] +unique_name_in_owner = true +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 4 +auto_translate = false +localize_numeral_system = false +tooltip_text = "Shows the total elapsed time of test execution." +mouse_force_pass_scroll_events = false +button_mask = 0 +shortcut_feedback = false +shortcut_in_tooltip = false +text = "Time" +icon = SubResource("ImageTexture_ugpqy") +flat = true + +[node name="time_value" type="Label" parent="HBoxContainer/timer"] +unique_name_in_owner = true +use_parent_material = true +layout_mode = 2 +size_flags_horizontal = 3 +auto_translate = false +localize_numeral_system = false +max_lines_visible = 1 + +[node name="orphan" type="HBoxContainer" parent="HBoxContainer/timer"] +layout_mode = 2 + +[node name="btn_orphan" type="Button" parent="HBoxContainer/timer/orphan"] +unique_name_in_owner = true +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 4 +auto_translate = false +localize_numeral_system = false +tooltip_text = "Shows the total orphan nodes detected." +text = "Orphans" +icon = SubResource("ImageTexture_nj5du") + +[node name="orphan_value" type="Label" parent="HBoxContainer/timer/orphan"] +unique_name_in_owner = true +use_parent_material = true +layout_mode = 2 +size_flags_horizontal = 3 +auto_translate = false +localize_numeral_system = false +text = "0" +max_lines_visible = 1 diff --git a/addons/gdUnit4/src/ui/parts/InspectorProgressBar.gd b/addons/gdUnit4/src/ui/parts/InspectorProgressBar.gd new file mode 100644 index 0000000..44c8d6b --- /dev/null +++ b/addons/gdUnit4/src/ui/parts/InspectorProgressBar.gd @@ -0,0 +1,50 @@ +@tool +extends ProgressBar + +@onready var bar := $"." +@onready var status := $Label +@onready var style: StyleBoxFlat = bar.get("theme_override_styles/fill") + + +func _ready() -> void: + GdUnitSignals.instance().gdunit_event.connect(_on_gdunit_event) + style.bg_color = Color.DARK_GREEN + bar.value = 0 + bar.max_value = 0 + update_text() + + +func progress_init(p_max_value: int) -> void: + bar.value = 0 + bar.max_value = p_max_value + style.bg_color = Color.DARK_GREEN + update_text() + + +func progress_update(p_value: int, is_failed: bool) -> void: + bar.value += p_value + update_text() + if is_failed: + style.bg_color = Color.DARK_RED + + +func update_text() -> void: + status.text = "%d:%d" % [bar.value, bar.max_value] + + +func _on_gdunit_event(event: GdUnitEvent) -> void: + match event.type(): + GdUnitEvent.INIT: + progress_init(event.total_count()) + + GdUnitEvent.DISCOVER_END: + progress_init(event.total_count()) + + GdUnitEvent.TESTCASE_AFTER: + # we only count when the test is finished (excluding parameterized test iterrations) + # test_name: indicates a parameterized test run + if event.test_name().find(":") == -1: + progress_update(1, event.is_failed() or event.is_error()) + + GdUnitEvent.TESTSUITE_AFTER: + progress_update(0, event.is_failed() or event.is_error()) diff --git a/addons/gdUnit4/src/ui/parts/InspectorProgressBar.tscn b/addons/gdUnit4/src/ui/parts/InspectorProgressBar.tscn new file mode 100644 index 0000000..1824230 --- /dev/null +++ b/addons/gdUnit4/src/ui/parts/InspectorProgressBar.tscn @@ -0,0 +1,33 @@ +[gd_scene load_steps=3 format=3 uid="uid://dva3tonxsxrlk"] + +[ext_resource type="Script" path="res://addons/gdUnit4/src/ui/parts/InspectorProgressBar.gd" id="1"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ayfir"] +bg_color = Color(0, 0.392157, 0, 1) + +[node name="ProgressBar" type="ProgressBar"] +custom_minimum_size = Vector2(0, 20) +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +size_flags_vertical = 9 +theme_override_styles/fill = SubResource("StyleBoxFlat_ayfir") +rounded = true +allow_greater = true +show_percentage = false +script = ExtResource("1") + +[node name="Label" type="Label" parent="."] +use_parent_material = true +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +size_flags_vertical = 3 +horizontal_alignment = 1 +vertical_alignment = 1 +max_lines_visible = 1 diff --git a/addons/gdUnit4/src/ui/parts/InspectorStatusBar.gd b/addons/gdUnit4/src/ui/parts/InspectorStatusBar.gd new file mode 100644 index 0000000..0075085 --- /dev/null +++ b/addons/gdUnit4/src/ui/parts/InspectorStatusBar.gd @@ -0,0 +1,173 @@ +@tool +extends PanelContainer + +signal failure_next() +signal failure_prevous() +signal request_discover_tests() + +signal tree_view_mode_changed(flat :bool) + +@onready var _errors := %error_value +@onready var _failures := %failure_value +@onready var _button_errors := %btn_errors +@onready var _button_failures := %btn_failures +@onready var _button_failure_up := %btn_failure_up +@onready var _button_failure_down := %btn_failure_down +@onready var _button_sync := %btn_tree_sync +@onready var _button_view_mode := %btn_tree_mode +@onready var _button_sort_mode := %btn_tree_sort + + +var total_failed := 0 +var total_errors := 0 + + +var icon_mappings := { + # tree sort modes + 0x100 + GdUnitInspectorTreeConstants.SORT_MODE.UNSORTED : GdUnitUiTools.get_icon("TripleBar"), + 0x100 + GdUnitInspectorTreeConstants.SORT_MODE.NAME_ASCENDING : GdUnitUiTools.get_icon("Sort"), + 0x100 + GdUnitInspectorTreeConstants.SORT_MODE.NAME_DESCENDING : GdUnitUiTools.get_flipped_icon("Sort"), + 0x100 + GdUnitInspectorTreeConstants.SORT_MODE.EXECUTION_TIME : GdUnitUiTools.get_icon("History"), + # tree view modes + 0x200 + GdUnitInspectorTreeConstants.TREE_VIEW_MODE.TREE : GdUnitUiTools.get_icon("Tree", Color.GHOST_WHITE), + 0x200 + GdUnitInspectorTreeConstants.TREE_VIEW_MODE.FLAT : GdUnitUiTools.get_icon("AnimationTrackGroup", Color.GHOST_WHITE) +} + + +func _ready() -> void: + _failures.text = "0" + _errors.text = "0" + _button_errors.icon = GdUnitUiTools.get_icon("StatusError") + _button_failures.icon = GdUnitUiTools.get_icon("StatusError", Color.SKY_BLUE) + _button_failure_up.icon = GdUnitUiTools.get_icon("ArrowUp") + _button_failure_down.icon = GdUnitUiTools.get_icon("ArrowDown") + _button_sync.icon = GdUnitUiTools.get_icon("Loop") + _set_sort_mode_menu_options() + _set_view_mode_menu_options() + GdUnitSignals.instance().gdunit_event.connect(_on_gdunit_event) + GdUnitSignals.instance().gdunit_settings_changed.connect(_on_settings_changed) + var command_handler := GdUnitCommandHandler.instance() + command_handler.gdunit_runner_start.connect(_on_gdunit_runner_start) + command_handler.gdunit_runner_stop.connect(_on_gdunit_runner_stop) + + + +func _set_sort_mode_menu_options() -> void: + _button_sort_mode.icon = GdUnitUiTools.get_icon("Sort") + # construct context sort menu according to the available modes + var context_menu :PopupMenu = _button_sort_mode.get_popup() + context_menu.clear() + + if not context_menu.index_pressed.is_connected(_on_sort_mode_changed): + context_menu.index_pressed.connect(_on_sort_mode_changed) + + var configured_sort_mode := GdUnitSettings.get_inspector_tree_sort_mode() + for sort_mode: String in GdUnitInspectorTreeConstants.SORT_MODE.keys(): + var enum_value :int = GdUnitInspectorTreeConstants.SORT_MODE.get(sort_mode) + var icon :Texture2D = icon_mappings[0x100 + enum_value] + context_menu.add_icon_check_item(icon, normalise(sort_mode), enum_value) + context_menu.set_item_checked(enum_value, configured_sort_mode == enum_value) + + +func _set_view_mode_menu_options() -> void: + _button_view_mode.icon = GdUnitUiTools.get_icon("Tree", Color.GHOST_WHITE) + # construct context tree view menu according to the available modes + var context_menu :PopupMenu = _button_view_mode.get_popup() + context_menu.clear() + + if not context_menu.index_pressed.is_connected(_on_tree_view_mode_changed): + context_menu.index_pressed.connect(_on_tree_view_mode_changed) + + var configured_tree_view_mode := GdUnitSettings.get_inspector_tree_view_mode() + for tree_view_mode: String in GdUnitInspectorTreeConstants.TREE_VIEW_MODE.keys(): + var enum_value :int = GdUnitInspectorTreeConstants.TREE_VIEW_MODE.get(tree_view_mode) + var icon :Texture2D = icon_mappings[0x200 + enum_value] + context_menu.add_icon_check_item(icon, normalise(tree_view_mode), enum_value) + context_menu.set_item_checked(enum_value, configured_tree_view_mode == enum_value) + + +func normalise(value: String) -> String: + var parts := value.to_lower().split("_") + parts[0] = parts[0].capitalize() + return " ".join(parts) + + +func status_changed(errors: int, failed: int) -> void: + total_failed += failed + total_errors += errors + _failures.text = str(total_failed) + _errors.text = str(total_errors) + + +func disable_buttons(value :bool) -> void: + _button_sync.set_disabled(value) + _button_sort_mode.set_disabled(value) + _button_view_mode.set_disabled(value) + + +func _on_gdunit_event(event: GdUnitEvent) -> void: + match event.type(): + GdUnitEvent.DISCOVER_START: + disable_buttons(true) + + GdUnitEvent.DISCOVER_END: + disable_buttons(false) + + GdUnitEvent.INIT: + total_failed = 0 + total_errors = 0 + status_changed(0, 0) + GdUnitEvent.TESTCASE_BEFORE: + pass + GdUnitEvent.TESTCASE_AFTER: + if event.is_error(): + status_changed(event.error_count(), 0) + else: + status_changed(0, event.failed_count()) + GdUnitEvent.TESTSUITE_BEFORE: + pass + GdUnitEvent.TESTSUITE_AFTER: + if event.is_error(): + status_changed(event.error_count(), 0) + else: + status_changed(0, event.failed_count()) + + +func _on_failure_up_pressed() -> void: + failure_prevous.emit() + + +func _on_failure_down_pressed() -> void: + failure_next.emit() + + +func _on_tree_sync_pressed() -> void: + request_discover_tests.emit() + + +func _on_sort_mode_changed(index: int) -> void: + var selected_sort_mode :GdUnitInspectorTreeConstants.SORT_MODE = GdUnitInspectorTreeConstants.SORT_MODE.values()[index] + GdUnitSettings.set_inspector_tree_sort_mode(selected_sort_mode) + + +func _on_tree_view_mode_changed(index: int) ->void: + var selected_tree_mode :GdUnitInspectorTreeConstants.TREE_VIEW_MODE = GdUnitInspectorTreeConstants.TREE_VIEW_MODE.values()[index] + GdUnitSettings.set_inspector_tree_view_mode(selected_tree_mode) + + +################################################################################ +# external signal receiver +################################################################################ +func _on_gdunit_runner_start() -> void: + disable_buttons(true) + + +func _on_gdunit_runner_stop(_client_id: int) -> void: + disable_buttons(false) + + +func _on_settings_changed(property :GdUnitProperty) -> void: + if property.name() == GdUnitSettings.INSPECTOR_TREE_SORT_MODE: + _set_sort_mode_menu_options() + if property.name() == GdUnitSettings.INSPECTOR_TREE_VIEW_MODE: + _set_view_mode_menu_options() diff --git a/addons/gdUnit4/src/ui/parts/InspectorStatusBar.tscn b/addons/gdUnit4/src/ui/parts/InspectorStatusBar.tscn new file mode 100644 index 0000000..3ef31f8 --- /dev/null +++ b/addons/gdUnit4/src/ui/parts/InspectorStatusBar.tscn @@ -0,0 +1,257 @@ +[gd_scene load_steps=22 format=3 uid="uid://bf53e4y5peguj"] + +[ext_resource type="Script" path="res://addons/gdUnit4/src/ui/parts/InspectorStatusBar.gd" id="3"] + +[sub_resource type="Image" id="Image_xlwc6"] +data = { +"data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 100, 100, 23, 255, 95, 95, 126, 255, 95, 95, 206, 255, 96, 96, 240, 255, 96, 96, 240, 255, 95, 95, 206, 255, 97, 97, 124, 255, 104, 104, 22, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 96, 96, 80, 255, 96, 96, 240, 255, 95, 95, 255, 255, 95, 95, 255, 255, 95, 95, 255, 255, 95, 95, 255, 255, 95, 95, 255, 255, 95, 95, 255, 255, 95, 95, 239, 255, 96, 96, 77, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 95, 95, 78, 255, 95, 95, 254, 255, 95, 95, 255, 255, 96, 96, 240, 255, 95, 95, 255, 255, 95, 95, 255, 255, 95, 95, 255, 255, 95, 95, 255, 255, 96, 96, 240, 255, 95, 95, 255, 255, 95, 95, 254, 255, 95, 95, 75, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 104, 104, 22, 255, 95, 95, 239, 255, 95, 95, 255, 255, 95, 95, 107, 255, 97, 97, 42, 255, 95, 95, 233, 255, 95, 95, 255, 255, 95, 95, 255, 255, 95, 95, 231, 255, 96, 96, 40, 255, 96, 96, 112, 255, 95, 95, 255, 255, 95, 95, 238, 255, 102, 102, 20, 255, 255, 255, 0, 255, 255, 255, 0, 255, 97, 97, 124, 255, 95, 95, 255, 255, 96, 96, 240, 255, 97, 97, 42, 255, 255, 255, 0, 255, 97, 97, 42, 255, 95, 95, 233, 255, 96, 96, 232, 255, 99, 99, 41, 255, 255, 255, 0, 255, 96, 96, 45, 255, 95, 95, 242, 255, 95, 95, 255, 255, 96, 96, 119, 255, 255, 255, 0, 255, 255, 255, 0, 255, 95, 95, 207, 255, 95, 95, 255, 255, 95, 95, 255, 255, 95, 95, 233, 255, 97, 97, 42, 255, 255, 255, 0, 255, 97, 97, 42, 255, 97, 97, 42, 255, 255, 255, 0, 255, 96, 96, 45, 255, 95, 95, 235, 255, 95, 95, 255, 255, 95, 95, 255, 255, 95, 95, 202, 255, 255, 255, 0, 255, 255, 255, 0, 255, 95, 95, 242, 255, 95, 95, 255, 255, 95, 95, 255, 255, 95, 95, 255, 255, 95, 95, 233, 255, 97, 97, 42, 255, 255, 255, 0, 255, 255, 255, 0, 255, 96, 96, 45, 255, 95, 95, 235, 255, 95, 95, 255, 255, 95, 95, 255, 255, 95, 95, 255, 255, 95, 95, 237, 255, 255, 255, 0, 255, 255, 255, 0, 255, 95, 95, 242, 255, 95, 95, 255, 255, 95, 95, 255, 255, 95, 95, 255, 255, 96, 96, 232, 255, 97, 97, 42, 255, 255, 255, 0, 255, 255, 255, 0, 255, 98, 98, 44, 255, 95, 95, 234, 255, 95, 95, 255, 255, 95, 95, 255, 255, 95, 95, 255, 255, 95, 95, 237, 255, 255, 255, 0, 255, 255, 255, 0, 255, 95, 95, 207, 255, 95, 95, 255, 255, 95, 95, 255, 255, 95, 95, 231, 255, 99, 99, 41, 255, 255, 255, 0, 255, 96, 96, 45, 255, 98, 98, 44, 255, 255, 255, 0, 255, 95, 95, 43, 255, 95, 95, 233, 255, 95, 95, 255, 255, 95, 95, 255, 255, 96, 96, 200, 255, 255, 255, 0, 255, 255, 255, 0, 255, 95, 95, 123, 255, 95, 95, 255, 255, 96, 96, 240, 255, 96, 96, 40, 255, 255, 255, 0, 255, 96, 96, 45, 255, 95, 95, 235, 255, 95, 95, 234, 255, 95, 95, 43, 255, 255, 255, 0, 255, 95, 95, 43, 255, 95, 95, 242, 255, 95, 95, 255, 255, 97, 97, 116, 255, 255, 255, 0, 255, 255, 255, 0, 255, 104, 104, 22, 255, 95, 95, 238, 255, 95, 95, 255, 255, 96, 96, 112, 255, 96, 96, 45, 255, 95, 95, 235, 255, 95, 95, 255, 255, 95, 95, 255, 255, 95, 95, 233, 255, 95, 95, 43, 255, 96, 96, 117, 255, 95, 95, 255, 255, 95, 95, 235, 255, 99, 99, 18, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 97, 97, 76, 255, 95, 95, 254, 255, 95, 95, 255, 255, 95, 95, 242, 255, 95, 95, 255, 255, 95, 95, 255, 255, 95, 95, 255, 255, 95, 95, 255, 255, 95, 95, 242, 255, 95, 95, 255, 255, 95, 95, 253, 255, 95, 95, 70, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 96, 96, 77, 255, 95, 95, 239, 255, 95, 95, 255, 255, 95, 95, 255, 255, 95, 95, 255, 255, 95, 95, 255, 255, 95, 95, 255, 255, 95, 95, 255, 255, 95, 95, 236, 255, 97, 97, 71, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 97, 97, 21, 255, 96, 96, 122, 255, 95, 95, 203, 255, 95, 95, 238, 255, 95, 95, 238, 255, 95, 95, 202, 255, 96, 96, 119, 255, 102, 102, 20, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0), +"format": "RGBA8", +"height": 16, +"mipmaps": false, +"width": 16 +} + +[sub_resource type="ImageTexture" id="ImageTexture_6b21o"] +image = SubResource("Image_xlwc6") + +[sub_resource type="Image" id="Image_d3qlj"] +data = { +"data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 147, 195, 222, 232, 147, 195, 221, 242, 147, 195, 221, 250, 147, 195, 221, 254, 147, 195, 221, 254, 147, 195, 221, 250, 147, 195, 221, 242, 147, 196, 222, 232, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 147, 195, 221, 238, 147, 195, 221, 254, 147, 195, 221, 255, 147, 195, 221, 255, 147, 195, 221, 255, 147, 195, 221, 255, 147, 195, 221, 255, 147, 195, 221, 255, 147, 195, 221, 253, 147, 195, 221, 237, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 147, 195, 221, 237, 147, 195, 221, 255, 147, 195, 221, 255, 147, 195, 221, 254, 147, 195, 221, 255, 147, 195, 221, 255, 147, 195, 221, 255, 147, 195, 221, 255, 147, 195, 221, 254, 147, 195, 221, 255, 147, 195, 221, 255, 147, 195, 221, 237, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 147, 196, 222, 232, 147, 195, 221, 253, 147, 195, 221, 255, 147, 195, 221, 240, 147, 195, 221, 234, 147, 195, 221, 253, 147, 195, 221, 255, 147, 195, 221, 255, 147, 195, 221, 253, 147, 195, 221, 234, 147, 195, 221, 241, 147, 195, 221, 255, 147, 195, 221, 253, 147, 196, 222, 232, 255, 255, 255, 0, 255, 255, 255, 0, 147, 195, 221, 242, 147, 195, 221, 255, 147, 195, 221, 254, 147, 195, 221, 234, 255, 255, 255, 0, 147, 195, 221, 234, 147, 195, 221, 253, 147, 195, 221, 253, 147, 195, 221, 234, 255, 255, 255, 0, 147, 195, 221, 234, 147, 195, 221, 254, 147, 195, 221, 255, 147, 195, 221, 241, 255, 255, 255, 0, 255, 255, 255, 0, 147, 195, 221, 250, 147, 195, 221, 255, 147, 195, 221, 255, 147, 195, 221, 253, 147, 195, 221, 234, 255, 255, 255, 0, 147, 195, 221, 234, 147, 195, 221, 234, 255, 255, 255, 0, 147, 195, 221, 234, 147, 195, 221, 253, 147, 195, 221, 255, 147, 195, 221, 255, 147, 195, 221, 250, 255, 255, 255, 0, 255, 255, 255, 0, 147, 195, 221, 254, 147, 195, 221, 255, 147, 195, 221, 255, 147, 195, 221, 255, 147, 195, 221, 253, 147, 195, 221, 234, 255, 255, 255, 0, 255, 255, 255, 0, 147, 195, 221, 234, 147, 195, 221, 253, 147, 195, 221, 255, 147, 195, 221, 255, 147, 195, 221, 255, 147, 195, 221, 253, 255, 255, 255, 0, 255, 255, 255, 0, 147, 195, 221, 254, 147, 195, 221, 255, 147, 195, 221, 255, 147, 195, 221, 255, 147, 195, 221, 253, 147, 195, 221, 234, 255, 255, 255, 0, 255, 255, 255, 0, 147, 195, 221, 234, 147, 195, 221, 253, 147, 195, 221, 255, 147, 195, 221, 255, 147, 195, 221, 255, 147, 195, 221, 253, 255, 255, 255, 0, 255, 255, 255, 0, 147, 195, 221, 250, 147, 195, 221, 255, 147, 195, 221, 255, 147, 195, 221, 253, 147, 195, 221, 234, 255, 255, 255, 0, 147, 195, 221, 234, 147, 195, 221, 234, 255, 255, 255, 0, 147, 195, 221, 234, 147, 195, 221, 253, 147, 195, 221, 255, 147, 195, 221, 255, 147, 195, 221, 250, 255, 255, 255, 0, 255, 255, 255, 0, 147, 195, 221, 242, 147, 195, 221, 255, 147, 195, 221, 254, 147, 195, 221, 234, 255, 255, 255, 0, 147, 195, 221, 234, 147, 195, 221, 253, 147, 195, 221, 253, 147, 195, 221, 234, 255, 255, 255, 0, 147, 195, 221, 234, 147, 195, 221, 254, 147, 195, 221, 255, 147, 195, 221, 241, 255, 255, 255, 0, 255, 255, 255, 0, 147, 196, 222, 232, 147, 195, 221, 253, 147, 195, 221, 255, 147, 195, 221, 241, 147, 195, 221, 234, 147, 195, 221, 253, 147, 195, 221, 255, 147, 195, 221, 255, 147, 195, 221, 253, 147, 195, 221, 234, 147, 195, 221, 241, 147, 195, 221, 255, 147, 195, 221, 253, 147, 195, 221, 231, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 147, 195, 221, 237, 147, 195, 221, 255, 147, 195, 221, 255, 147, 195, 221, 254, 147, 195, 221, 255, 147, 195, 221, 255, 147, 195, 221, 255, 147, 195, 221, 255, 147, 195, 221, 254, 147, 195, 221, 255, 147, 195, 221, 255, 147, 195, 221, 237, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 147, 195, 221, 237, 147, 195, 221, 253, 147, 195, 221, 255, 147, 195, 221, 255, 147, 195, 221, 255, 147, 195, 221, 255, 147, 195, 221, 255, 147, 195, 221, 255, 147, 195, 221, 253, 147, 195, 221, 237, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 147, 195, 221, 232, 147, 195, 221, 242, 147, 195, 221, 250, 147, 195, 221, 253, 147, 195, 221, 253, 147, 195, 221, 250, 147, 195, 221, 241, 147, 196, 222, 232, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0), +"format": "RGBA8", +"height": 16, +"mipmaps": false, +"width": 16 +} + +[sub_resource type="ImageTexture" id="ImageTexture_y22c0"] +image = SubResource("Image_d3qlj") + +[sub_resource type="Image" id="Image_dqkot"] +data = { +"data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 231, 231, 231, 21, 224, 224, 224, 255, 224, 224, 224, 255, 231, 231, 231, 21, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 231, 231, 231, 21, 224, 224, 224, 211, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 210, 231, 231, 231, 21, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 231, 231, 231, 21, 224, 224, 224, 211, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 210, 231, 231, 231, 21, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 231, 231, 231, 21, 224, 224, 224, 211, 224, 224, 224, 255, 224, 224, 224, 210, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 210, 224, 224, 224, 255, 224, 224, 224, 210, 231, 231, 231, 21, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 195, 224, 224, 224, 255, 224, 224, 224, 210, 230, 230, 230, 20, 224, 224, 224, 255, 224, 224, 224, 255, 231, 231, 231, 21, 224, 224, 224, 210, 224, 224, 224, 255, 224, 224, 224, 194, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 178, 224, 224, 224, 194, 230, 230, 230, 20, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 231, 231, 231, 21, 224, 224, 224, 194, 224, 224, 224, 179, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 180, 224, 224, 224, 180, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0), +"format": "RGBA8", +"height": 16, +"mipmaps": false, +"width": 16 +} + +[sub_resource type="ImageTexture" id="ImageTexture_lxhvf"] +image = SubResource("Image_dqkot") + +[sub_resource type="Image" id="Image_tuw0u"] +data = { +"data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 181, 224, 224, 224, 180, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 180, 224, 224, 224, 195, 231, 231, 231, 21, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 231, 231, 231, 21, 224, 224, 224, 195, 224, 224, 224, 178, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 195, 224, 224, 224, 255, 224, 224, 224, 210, 231, 231, 231, 21, 224, 224, 224, 255, 224, 224, 224, 255, 231, 231, 231, 21, 224, 224, 224, 211, 224, 224, 224, 255, 224, 224, 224, 194, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 231, 231, 231, 21, 224, 224, 224, 210, 224, 224, 224, 255, 224, 224, 224, 210, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 211, 224, 224, 224, 255, 224, 224, 224, 210, 230, 230, 230, 20, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 231, 231, 231, 21, 224, 224, 224, 210, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 210, 230, 230, 230, 20, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 231, 231, 231, 21, 224, 224, 224, 210, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 210, 230, 230, 230, 20, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 231, 231, 231, 21, 224, 224, 224, 255, 224, 224, 224, 255, 230, 230, 230, 20, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0), +"format": "RGBA8", +"height": 16, +"mipmaps": false, +"width": 16 +} + +[sub_resource type="ImageTexture" id="ImageTexture_odc2f"] +image = SubResource("Image_tuw0u") + +[sub_resource type="Image" id="Image_epiia"] +data = { +"data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 160, 230, 230, 230, 10, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 213, 225, 225, 225, 42, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 225, 225, 225, 76, 224, 224, 224, 189, 224, 224, 224, 238, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 245, 224, 224, 224, 96, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 225, 225, 225, 135, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 245, 226, 226, 226, 95, 255, 255, 255, 0, 255, 255, 255, 1, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 226, 226, 226, 77, 224, 224, 224, 255, 224, 224, 224, 253, 225, 225, 225, 117, 224, 224, 224, 32, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 212, 225, 225, 225, 42, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 129, 225, 225, 225, 68, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 189, 224, 224, 224, 255, 224, 224, 224, 113, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 225, 225, 225, 159, 230, 230, 230, 10, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 73, 224, 224, 224, 255, 225, 225, 225, 183, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 242, 224, 224, 224, 255, 224, 224, 224, 24, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 225, 225, 225, 25, 224, 224, 224, 255, 224, 224, 224, 237, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 243, 224, 224, 224, 254, 233, 233, 233, 23, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 229, 229, 229, 29, 224, 224, 224, 255, 224, 224, 224, 236, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 188, 224, 224, 224, 255, 225, 225, 225, 68, 255, 255, 255, 0, 255, 255, 255, 0, 230, 230, 230, 10, 224, 224, 224, 160, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 120, 224, 224, 224, 255, 224, 224, 224, 181, 255, 255, 255, 0, 255, 255, 255, 0, 227, 227, 227, 71, 225, 225, 225, 126, 255, 255, 255, 0, 255, 255, 255, 0, 226, 226, 226, 43, 224, 224, 224, 213, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 225, 225, 225, 34, 225, 225, 225, 124, 224, 224, 224, 254, 224, 224, 224, 255, 226, 226, 226, 70, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 96, 224, 224, 224, 245, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 225, 225, 225, 125, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 226, 226, 226, 95, 224, 224, 224, 245, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 237, 224, 224, 224, 185, 227, 227, 227, 71, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 225, 225, 225, 42, 224, 224, 224, 213, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 230, 230, 230, 10, 225, 225, 225, 159, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0), +"format": "RGBA8", +"height": 16, +"mipmaps": false, +"width": 16 +} + +[sub_resource type="ImageTexture" id="ImageTexture_ulpsv"] +image = SubResource("Image_epiia") + +[sub_resource type="Image" id="Image_ft60s"] +data = { +"data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 233, 233, 233, 23, 224, 224, 224, 198, 224, 224, 224, 200, 224, 224, 224, 24, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 233, 233, 233, 23, 224, 224, 224, 213, 224, 224, 224, 255, 224, 224, 224, 255, 225, 225, 225, 215, 224, 224, 224, 24, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 196, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 225, 225, 225, 199, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 171, 224, 224, 224, 195, 224, 224, 224, 253, 224, 224, 224, 255, 224, 224, 224, 195, 225, 225, 225, 175, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 252, 224, 224, 224, 255, 255, 255, 255, 4, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 252, 224, 224, 224, 255, 255, 255, 255, 4, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 252, 224, 224, 224, 255, 255, 255, 255, 4, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 252, 224, 224, 224, 255, 255, 255, 255, 4, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 252, 224, 224, 224, 255, 255, 255, 255, 4, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 252, 224, 224, 224, 255, 255, 255, 255, 4, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 176, 224, 224, 224, 200, 224, 224, 224, 253, 224, 224, 224, 255, 225, 225, 225, 199, 224, 224, 224, 179, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 194, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 197, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 231, 231, 231, 21, 224, 224, 224, 210, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 212, 232, 232, 232, 22, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 231, 231, 231, 21, 224, 224, 224, 194, 224, 224, 224, 196, 232, 232, 232, 22, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0), +"format": "RGBA8", +"height": 16, +"mipmaps": false, +"width": 16 +} + +[sub_resource type="ImageTexture" id="ImageTexture_vn5m0"] +image = SubResource("Image_ft60s") + +[sub_resource type="Image" id="Image_pj4yi"] +data = { +"data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0), +"format": "RGBA8", +"height": 16, +"mipmaps": false, +"width": 16 +} + +[sub_resource type="ImageTexture" id="ImageTexture_0bjic"] +image = SubResource("Image_pj4yi") + +[sub_resource type="Image" id="Image_ykisp"] +data = { +"data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 231, 231, 231, 21, 224, 224, 224, 194, 224, 224, 224, 196, 232, 232, 232, 22, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 231, 231, 231, 21, 224, 224, 224, 210, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 212, 232, 232, 232, 22, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 194, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 197, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 176, 224, 224, 224, 200, 224, 224, 224, 253, 224, 224, 224, 255, 225, 225, 225, 199, 224, 224, 224, 179, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 252, 224, 224, 224, 255, 255, 255, 255, 4, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 252, 224, 224, 224, 255, 255, 255, 255, 4, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 252, 224, 224, 224, 255, 255, 255, 255, 4, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 252, 224, 224, 224, 255, 255, 255, 255, 4, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 252, 224, 224, 224, 255, 255, 255, 255, 4, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 252, 224, 224, 224, 255, 255, 255, 255, 4, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 171, 224, 224, 224, 195, 224, 224, 224, 253, 224, 224, 224, 255, 224, 224, 224, 195, 225, 225, 225, 175, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 196, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 225, 225, 225, 199, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 233, 233, 233, 23, 224, 224, 224, 213, 224, 224, 224, 255, 224, 224, 224, 255, 225, 225, 225, 215, 224, 224, 224, 24, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 233, 233, 233, 23, 224, 224, 224, 198, 224, 224, 224, 200, 224, 224, 224, 24, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0), +"format": "RGBA8", +"height": 16, +"mipmaps": false, +"width": 16 +} + +[sub_resource type="ImageTexture" id="ImageTexture_uvtgc"] +image = SubResource("Image_ykisp") + +[sub_resource type="Image" id="Image_57ty0"] +data = { +"data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 3, 224, 224, 224, 105, 224, 224, 224, 192, 224, 224, 224, 244, 224, 224, 224, 238, 224, 224, 224, 197, 224, 224, 224, 105, 255, 255, 255, 4, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 233, 233, 233, 23, 225, 225, 225, 207, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 198, 226, 226, 226, 26, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 6, 224, 224, 224, 205, 224, 224, 224, 255, 224, 224, 224, 218, 225, 225, 225, 83, 237, 237, 237, 14, 237, 237, 237, 14, 224, 224, 224, 82, 224, 224, 224, 220, 224, 224, 224, 255, 224, 224, 224, 197, 255, 255, 255, 4, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 225, 225, 225, 102, 224, 224, 224, 255, 224, 224, 224, 218, 227, 227, 227, 18, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 224, 224, 224, 16, 224, 224, 224, 221, 224, 224, 224, 255, 225, 225, 225, 101, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 198, 224, 224, 224, 255, 225, 225, 225, 84, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 226, 226, 226, 86, 224, 224, 224, 255, 224, 224, 224, 194, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 1, 255, 255, 255, 4, 224, 224, 224, 238, 224, 224, 224, 255, 227, 227, 227, 18, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 229, 229, 229, 19, 224, 224, 224, 255, 224, 224, 224, 233, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 160, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 225, 225, 225, 159, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 230, 230, 230, 20, 224, 224, 224, 255, 224, 224, 224, 237, 255, 255, 255, 0, 255, 255, 255, 0, 230, 230, 230, 10, 224, 224, 224, 213, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 212, 230, 230, 230, 10, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 90, 224, 224, 224, 255, 224, 224, 224, 185, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 225, 225, 225, 42, 224, 224, 224, 245, 224, 224, 224, 245, 225, 225, 225, 42, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 232, 232, 232, 22, 224, 224, 224, 224, 224, 224, 224, 255, 224, 224, 224, 98, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 96, 226, 226, 226, 95, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 230, 230, 230, 20, 224, 224, 224, 88, 224, 224, 224, 221, 224, 224, 224, 255, 225, 225, 225, 199, 255, 255, 255, 2, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 200, 227, 227, 227, 18, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 236, 224, 224, 224, 195, 224, 224, 224, 96, 255, 255, 255, 5, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0), +"format": "RGBA8", +"height": 16, +"mipmaps": false, +"width": 16 +} + +[sub_resource type="ImageTexture" id="ImageTexture_2tlxj"] +image = SubResource("Image_57ty0") + +[sub_resource type="Image" id="Image_ot6ar"] +data = { +"data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 255, 255, 255, 0, 255, 255, 255, 0, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 255, 255, 255, 0, 255, 255, 255, 0, 237, 247, 245, 255, 237, 247, 245, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 237, 247, 245, 255, 237, 247, 245, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 255, 255, 255, 0, 255, 255, 255, 0, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 255, 255, 255, 0, 255, 255, 255, 0, 237, 247, 245, 255, 237, 247, 245, 255, 255, 255, 255, 0, 255, 255, 255, 0, 237, 247, 245, 255, 237, 247, 245, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 237, 247, 245, 255, 237, 247, 245, 255, 255, 255, 255, 0, 255, 255, 255, 0, 237, 247, 245, 255, 237, 247, 245, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 237, 247, 245, 255, 237, 247, 245, 255, 255, 255, 255, 0, 255, 255, 255, 0, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 255, 255, 255, 0, 255, 255, 255, 0, 237, 247, 245, 255, 237, 247, 245, 255, 255, 255, 255, 0, 255, 255, 255, 0, 237, 247, 245, 248, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 255, 255, 255, 0, 255, 255, 255, 0, 237, 247, 245, 255, 237, 247, 245, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 237, 247, 245, 255, 237, 247, 245, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 255, 255, 255, 0, 255, 255, 255, 0, 237, 247, 245, 248, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 237, 247, 245, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0), +"format": "RGBA8", +"height": 16, +"mipmaps": false, +"width": 16 +} + +[sub_resource type="ImageTexture" id="ImageTexture_143fp"] +image = SubResource("Image_ot6ar") + +[node name="StatusBar" type="PanelContainer"] +clip_contents = true +anchors_preset = 10 +anchor_right = 1.0 +offset_right = -807.0 +offset_bottom = 31.0 +grow_horizontal = 2 +size_flags_horizontal = 3 +size_flags_vertical = 0 +script = ExtResource("3") + +[node name="bar" type="HBoxContainer" parent="."] +layout_mode = 2 +size_flags_vertical = 0 + +[node name="errors" type="HBoxContainer" parent="bar"] +layout_mode = 2 +size_flags_vertical = 4 + +[node name="btn_errors" type="Button" parent="bar/errors"] +unique_name_in_owner = true +layout_mode = 2 +size_flags_horizontal = 3 +auto_translate = false +localize_numeral_system = false +text = "Errors" +icon = SubResource("ImageTexture_6b21o") + +[node name="error_value" type="Label" parent="bar/errors"] +unique_name_in_owner = true +use_parent_material = true +layout_mode = 2 +size_flags_horizontal = 3 +text = "0" +vertical_alignment = 1 +justification_flags = 160 +max_lines_visible = 1 + +[node name="failures" type="HBoxContainer" parent="bar"] +layout_mode = 2 +size_flags_vertical = 4 + +[node name="btn_failures" type="Button" parent="bar/failures"] +unique_name_in_owner = true +clip_contents = true +layout_mode = 2 +size_flags_horizontal = 9 +size_flags_vertical = 3 +auto_translate = false +localize_numeral_system = false +tooltip_text = "Shows the total test failures." +text = "Failures" +icon = SubResource("ImageTexture_y22c0") + +[node name="failure_value" type="Label" parent="bar/failures"] +unique_name_in_owner = true +use_parent_material = true +layout_mode = 2 +size_flags_horizontal = 3 +text = "0" +vertical_alignment = 1 +justification_flags = 160 +max_lines_visible = 1 + +[node name="navigation" type="HBoxContainer" parent="bar"] +layout_mode = 2 +size_flags_vertical = 4 +auto_translate = false +localize_numeral_system = false + +[node name="btn_failure_up" type="Button" parent="bar/navigation"] +unique_name_in_owner = true +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 +tooltip_text = "Shows the total test errors." +icon = SubResource("ImageTexture_lxhvf") + +[node name="btn_failure_down" type="Button" parent="bar/navigation"] +unique_name_in_owner = true +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 +tooltip_text = "Shows the total test errors." +icon = SubResource("ImageTexture_odc2f") + +[node name="tree_buttons" type="HBoxContainer" parent="bar"] +layout_mode = 2 +size_flags_horizontal = 10 +size_flags_vertical = 4 +alignment = 2 + +[node name="VSeparator" type="VSeparator" parent="bar/tree_buttons"] +layout_mode = 2 + +[node name="btn_tree_sync" type="Button" parent="bar/tree_buttons"] +unique_name_in_owner = true +layout_mode = 2 +tooltip_text = "Run discover tests." +icon = SubResource("ImageTexture_ulpsv") + +[node name="btn_tree_sort" type="MenuButton" parent="bar/tree_buttons"] +unique_name_in_owner = true +layout_mode = 2 +tooltip_text = "Sets tree sorting mode." +icon = SubResource("ImageTexture_vn5m0") +item_count = 4 +popup/item_0/text = "Unsorted" +popup/item_0/icon = SubResource("ImageTexture_0bjic") +popup/item_0/checkable = 1 +popup/item_0/id = 8192 +popup/item_1/text = "Name ascending" +popup/item_1/icon = SubResource("ImageTexture_vn5m0") +popup/item_1/checkable = 1 +popup/item_1/id = 8193 +popup/item_2/text = "Name descending" +popup/item_2/icon = SubResource("ImageTexture_uvtgc") +popup/item_2/checkable = 1 +popup/item_2/id = 8194 +popup/item_3/text = "Execution time" +popup/item_3/icon = SubResource("ImageTexture_2tlxj") +popup/item_3/checkable = 1 +popup/item_3/id = 8195 + +[node name="btn_tree_mode" type="MenuButton" parent="bar/tree_buttons"] +unique_name_in_owner = true +layout_mode = 2 +tooltip_text = "Sets tree presentaion mode." +icon = SubResource("ImageTexture_143fp") + +[connection signal="pressed" from="bar/navigation/btn_failure_up" to="." method="_on_failure_up_pressed"] +[connection signal="pressed" from="bar/navigation/btn_failure_down" to="." method="_on_failure_down_pressed"] +[connection signal="pressed" from="bar/tree_buttons/btn_tree_sync" to="." method="_on_tree_sync_pressed"] diff --git a/addons/gdUnit4/src/ui/parts/InspectorToolBar.gd b/addons/gdUnit4/src/ui/parts/InspectorToolBar.gd new file mode 100644 index 0000000..c3afbec --- /dev/null +++ b/addons/gdUnit4/src/ui/parts/InspectorToolBar.gd @@ -0,0 +1,110 @@ +@tool +extends PanelContainer + +signal run_overall_pressed(debug: bool) +signal run_pressed(debug: bool) +signal stop_pressed() + +@onready var _version_label := %version +@onready var _button_wiki := %help +@onready var _tool_button := %tool +@onready var _button_run_overall := %run_overall +@onready var _button_run := %run +@onready var _button_run_debug := %debug +@onready var _button_stop := %stop +@onready var settings_dlg := preload("res://addons/gdUnit4/src/ui/settings/GdUnitSettingsDialog.tscn").instantiate() + + +const SETTINGS_SHORTCUT_MAPPING := { + GdUnitSettings.SHORTCUT_INSPECTOR_RERUN_TEST: GdUnitShortcut.ShortCut.RERUN_TESTS, + GdUnitSettings.SHORTCUT_INSPECTOR_RERUN_TEST_DEBUG: GdUnitShortcut.ShortCut.RERUN_TESTS_DEBUG, + GdUnitSettings.SHORTCUT_INSPECTOR_RUN_TEST_OVERALL: GdUnitShortcut.ShortCut.RUN_TESTS_OVERALL, + GdUnitSettings.SHORTCUT_INSPECTOR_RUN_TEST_STOP: GdUnitShortcut.ShortCut.STOP_TEST_RUN, +} + + +func _ready() -> void: + GdUnit4Version.init_version_label(_version_label) + var command_handler := GdUnitCommandHandler.instance() + run_pressed.connect(command_handler._on_run_pressed) + run_overall_pressed.connect(command_handler._on_run_overall_pressed) + stop_pressed.connect(command_handler._on_stop_pressed) + command_handler.gdunit_runner_start.connect(_on_gdunit_runner_start) + command_handler.gdunit_runner_stop.connect(_on_gdunit_runner_stop) + GdUnitSignals.instance().gdunit_settings_changed.connect(_on_gdunit_settings_changed) + init_buttons() + init_shortcuts(command_handler) + EditorInterface.get_base_control().add_child(settings_dlg) + + +func init_buttons() -> void: + _button_run_overall.icon = GdUnitUiTools.get_run_overall_icon() + _button_run_overall.visible = GdUnitSettings.is_inspector_toolbar_button_show() + _button_run.icon = GdUnitUiTools.get_icon("Play") + _button_run_debug.icon = GdUnitUiTools.get_icon("PlayStart") + _button_stop.icon = GdUnitUiTools.get_icon("Stop") + _tool_button.icon = GdUnitUiTools.get_icon("Tools") + _button_wiki.icon = GdUnitUiTools.get_icon("HelpSearch") + + +func init_shortcuts(command_handler: GdUnitCommandHandler) -> void: + _button_run.shortcut = command_handler.get_shortcut(GdUnitShortcut.ShortCut.RERUN_TESTS) + _button_run_overall.shortcut = command_handler.get_shortcut(GdUnitShortcut.ShortCut.RUN_TESTS_OVERALL) + _button_run_debug.shortcut = command_handler.get_shortcut(GdUnitShortcut.ShortCut.RERUN_TESTS_DEBUG) + _button_stop.shortcut = command_handler.get_shortcut(GdUnitShortcut.ShortCut.STOP_TEST_RUN) + # register for shortcut changes + GdUnitSignals.instance().gdunit_settings_changed.connect(_on_settings_changed.bind(command_handler)) + + +func _on_runoverall_pressed(debug:=false) -> void: + run_overall_pressed.emit(debug) + + +func _on_run_pressed(debug := false) -> void: + run_pressed.emit(debug) + + +func _on_stop_pressed() -> void: + stop_pressed.emit() + + +func _on_gdunit_runner_start() -> void: + _button_run_overall.disabled = true + _button_run.disabled = true + _button_run_debug.disabled = true + _button_stop.disabled = false + + +func _on_gdunit_runner_stop(_client_id: int) -> void: + _button_run_overall.disabled = false + _button_run.disabled = false + _button_run_debug.disabled = false + _button_stop.disabled = true + + +func _on_gdunit_settings_changed(_property: GdUnitProperty) -> void: + _button_run_overall.visible = GdUnitSettings.is_inspector_toolbar_button_show() + + +func _on_wiki_pressed() -> void: + OS.shell_open("https://mikeschulze.github.io/gdUnit4/") + + +func _on_btn_tool_pressed() -> void: + settings_dlg.popup_centered_ratio(.60) + + +func _on_settings_changed(property: GdUnitProperty, command_handler: GdUnitCommandHandler) -> void: + # needs to wait a frame to be command handler notified first for settings changes + await get_tree().process_frame + if SETTINGS_SHORTCUT_MAPPING.has(property.name()): + var shortcut: GdUnitShortcut.ShortCut = SETTINGS_SHORTCUT_MAPPING.get(property.name(), GdUnitShortcut.ShortCut.NONE) + match shortcut: + GdUnitShortcut.ShortCut.RERUN_TESTS: + _button_run.shortcut = command_handler.get_shortcut(shortcut) + GdUnitShortcut.ShortCut.RUN_TESTS_OVERALL: + _button_run_overall.shortcut = command_handler.get_shortcut(shortcut) + GdUnitShortcut.ShortCut.RERUN_TESTS_DEBUG: + _button_run_debug.shortcut = command_handler.get_shortcut(shortcut) + GdUnitShortcut.ShortCut.STOP_TEST_RUN: + _button_stop.shortcut = command_handler.get_shortcut(shortcut) diff --git a/addons/gdUnit4/src/ui/parts/InspectorToolBar.tscn b/addons/gdUnit4/src/ui/parts/InspectorToolBar.tscn new file mode 100644 index 0000000..5de44ad --- /dev/null +++ b/addons/gdUnit4/src/ui/parts/InspectorToolBar.tscn @@ -0,0 +1,212 @@ +[gd_scene load_steps=22 format=3 uid="uid://dx7xy4dgi3wwb"] + +[ext_resource type="Script" path="res://addons/gdUnit4/src/ui/parts/InspectorToolBar.gd" id="3"] + +[sub_resource type="Image" id="Image_walbn"] +data = { +"data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 227, 227, 227, 36, 224, 224, 224, 168, 224, 224, 224, 233, 224, 224, 224, 236, 224, 224, 224, 170, 231, 231, 231, 31, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 227, 227, 227, 36, 224, 224, 224, 234, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 239, 230, 230, 230, 30, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 168, 224, 224, 224, 255, 224, 224, 224, 186, 224, 224, 224, 32, 224, 224, 224, 33, 224, 224, 224, 187, 224, 224, 224, 255, 225, 225, 225, 167, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 237, 224, 224, 224, 255, 224, 224, 224, 33, 255, 255, 255, 0, 255, 255, 255, 0, 227, 227, 227, 36, 224, 224, 224, 255, 224, 224, 224, 234, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 237, 224, 224, 224, 255, 224, 224, 224, 33, 255, 255, 255, 0, 255, 255, 255, 0, 229, 229, 229, 38, 224, 224, 224, 255, 224, 224, 224, 229, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 164, 224, 224, 224, 255, 224, 224, 224, 187, 225, 225, 225, 34, 227, 227, 227, 36, 224, 224, 224, 192, 224, 224, 224, 255, 224, 224, 224, 162, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 24, 225, 225, 225, 215, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 229, 224, 224, 224, 32, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 24, 224, 224, 224, 216, 224, 224, 224, 255, 224, 224, 224, 210, 224, 224, 224, 161, 224, 224, 224, 232, 224, 224, 224, 231, 225, 225, 225, 159, 230, 230, 230, 30, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 107, 224, 224, 224, 255, 224, 224, 224, 210, 230, 230, 230, 20, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 105, 230, 230, 230, 20, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 221, 224, 224, 224, 130, 255, 255, 255, 1, 255, 255, 255, 1, 225, 225, 225, 134, 224, 224, 224, 224, 225, 225, 225, 223, 224, 224, 224, 132, 255, 255, 255, 1, 255, 255, 255, 6, 224, 224, 224, 137, 224, 224, 224, 231, 224, 224, 224, 255, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 130, 225, 225, 225, 133, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 129, 224, 224, 224, 137, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 65, 224, 224, 224, 255, 224, 224, 224, 220, 225, 225, 225, 223, 224, 224, 224, 255, 226, 226, 226, 61, 224, 224, 224, 65, 224, 224, 224, 255, 224, 224, 224, 222, 224, 224, 224, 231, 224, 224, 224, 255, 227, 227, 227, 62, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 225, 225, 225, 67, 224, 224, 224, 255, 224, 224, 224, 219, 224, 224, 224, 222, 224, 224, 224, 255, 227, 227, 227, 63, 225, 225, 225, 67, 224, 224, 224, 255, 224, 224, 224, 219, 224, 224, 224, 230, 224, 224, 224, 255, 227, 227, 227, 63, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 225, 225, 225, 127, 224, 224, 224, 129, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 225, 225, 225, 126, 225, 225, 225, 135, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 221, 225, 225, 225, 127, 255, 255, 255, 0, 255, 255, 255, 1, 224, 224, 224, 128, 224, 224, 224, 220, 224, 224, 224, 219, 225, 225, 225, 127, 255, 255, 255, 0, 255, 255, 255, 5, 225, 225, 225, 134, 224, 224, 224, 229, 224, 224, 224, 255, 255, 255, 255, 0), +"format": "RGBA8", +"height": 16, +"mipmaps": false, +"width": 16 +} + +[sub_resource type="ImageTexture" id="ImageTexture_t52y3"] +image = SubResource("Image_walbn") + +[sub_resource type="Image" id="Image_113nf"] +data = { +"data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 64, 224, 224, 224, 255, 227, 227, 227, 63, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 5, 225, 225, 225, 142, 255, 255, 255, 0, 255, 255, 255, 2, 224, 224, 224, 138, 255, 255, 255, 4, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 192, 224, 224, 224, 255, 225, 225, 225, 191, 255, 255, 255, 0, 255, 255, 255, 0, 225, 225, 225, 142, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 2, 224, 224, 224, 255, 224, 224, 224, 137, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 192, 224, 224, 224, 255, 225, 225, 225, 191, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 236, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 232, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 64, 224, 224, 224, 255, 227, 227, 227, 63, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 235, 224, 224, 224, 255, 224, 224, 224, 65, 225, 225, 225, 67, 224, 224, 224, 255, 224, 224, 224, 230, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 140, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 225, 225, 225, 134, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 4, 224, 224, 224, 137, 224, 224, 224, 255, 224, 224, 224, 255, 225, 225, 225, 135, 255, 255, 255, 3, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 247, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 246, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 225, 225, 225, 183, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 179, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 231, 231, 231, 21, 224, 224, 224, 179, 224, 224, 224, 237, 224, 224, 224, 179, 230, 230, 230, 20, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 225, 225, 225, 190, 224, 224, 224, 188, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0), +"format": "RGBA8", +"height": 16, +"mipmaps": false, +"width": 16 +} + +[sub_resource type="ImageTexture" id="ImageTexture_wip2b"] +image = SubResource("Image_113nf") + +[sub_resource type="InputEventKey" id="InputEventKey_6jdrj"] +ctrl_pressed = true +pressed = true +keycode = 4194338 +physical_keycode = 4194338 + +[sub_resource type="Shortcut" id="Shortcut_t0ytp"] +events = [SubResource("InputEventKey_6jdrj")] + +[sub_resource type="Image" id="Image_fj3b5"] +data = { +"data": PackedByteArray(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 195, 224, 224, 224, 210, 224, 224, 224, 56, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 195, 224, 224, 224, 210, 224, 224, 224, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 253, 224, 224, 224, 139, 224, 224, 224, 8, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 253, 224, 224, 224, 139, 224, 224, 224, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 225, 225, 225, 215, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 225, 225, 225, 215, 224, 224, 224, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 253, 224, 224, 224, 139, 224, 224, 224, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 225, 225, 225, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 225, 225, 225, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 252, 225, 225, 225, 134, 255, 255, 255, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 212, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 212, 226, 226, 226, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 252, 225, 225, 225, 134, 255, 255, 255, 6, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 252, 225, 225, 225, 134, 255, 255, 255, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 225, 225, 225, 191, 224, 224, 224, 206, 226, 226, 226, 52, 0, 0, 0, 0, 0, 0, 0, 0, 225, 225, 225, 191, 224, 224, 224, 206, 226, 226, 226, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), +"format": "RGBA8", +"height": 16, +"mipmaps": false, +"width": 16 +} + +[sub_resource type="ImageTexture" id="ImageTexture_mggmt"] +image = SubResource("Image_fj3b5") + +[sub_resource type="InputEventKey" id="InputEventKey_pl3pi"] +ctrl_pressed = true +pressed = true +keycode = 4194336 +physical_keycode = 4194336 + +[sub_resource type="Shortcut" id="Shortcut_77xhn"] +events = [SubResource("InputEventKey_pl3pi")] + +[sub_resource type="Image" id="Image_4apvt"] +data = { +"data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 195, 224, 224, 224, 210, 224, 224, 224, 56, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 253, 224, 224, 224, 139, 224, 224, 224, 8, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 225, 225, 225, 215, 224, 224, 224, 56, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 253, 224, 224, 224, 139, 224, 224, 224, 8, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 225, 225, 225, 183, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 225, 225, 225, 182, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 252, 225, 225, 225, 134, 255, 255, 255, 6, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 212, 226, 226, 226, 52, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 252, 225, 225, 225, 134, 255, 255, 255, 6, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 225, 225, 225, 191, 224, 224, 224, 206, 226, 226, 226, 52, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0), +"format": "RGBA8", +"height": 16, +"mipmaps": false, +"width": 16 +} + +[sub_resource type="ImageTexture" id="ImageTexture_q6qbp"] +image = SubResource("Image_4apvt") + +[sub_resource type="InputEventKey" id="InputEventKey_qk8q5"] +ctrl_pressed = true +pressed = true +keycode = 4194337 +physical_keycode = 4194337 + +[sub_resource type="Shortcut" id="Shortcut_ae6em"] +events = [SubResource("InputEventKey_qk8q5")] + +[sub_resource type="Image" id="Image_jc2ll"] +data = { +"data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 184, 224, 224, 224, 255, 224, 224, 224, 181, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 184, 224, 224, 224, 202, 228, 228, 228, 37, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 239, 224, 224, 224, 74, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 253, 224, 224, 224, 123, 255, 255, 255, 1, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 173, 234, 234, 234, 12, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 188, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 185, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 168, 230, 230, 230, 10, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 252, 225, 225, 225, 118, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 237, 226, 226, 226, 70, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 181, 224, 224, 224, 255, 224, 224, 224, 180, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 188, 224, 224, 224, 201, 225, 225, 225, 34, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0), +"format": "RGBA8", +"height": 16, +"mipmaps": false, +"width": 16 +} + +[sub_resource type="ImageTexture" id="ImageTexture_q0wt0"] +image = SubResource("Image_jc2ll") + +[sub_resource type="InputEventKey" id="InputEventKey_l8obn"] +ctrl_pressed = true +pressed = true +keycode = 4194339 +physical_keycode = 4194339 + +[sub_resource type="Shortcut" id="Shortcut_2mb87"] +events = [SubResource("InputEventKey_l8obn")] + +[sub_resource type="Image" id="Image_ib7wg"] +data = { +"data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 176, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 177, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 177, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 176, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0), +"format": "RGBA8", +"height": 16, +"mipmaps": false, +"width": 16 +} + +[sub_resource type="ImageTexture" id="ImageTexture_1wiyx"] +image = SubResource("Image_ib7wg") + +[node name="ToolBar" type="PanelContainer"] +anchors_preset = 10 +anchor_right = 1.0 +offset_right = -894.0 +offset_bottom = 24.0 +grow_horizontal = 2 +size_flags_horizontal = 3 +size_flags_vertical = 4 +script = ExtResource("3") + +[node name="HBoxContainer" type="HBoxContainer" parent="."] +layout_mode = 2 + +[node name="tools" type="HBoxContainer" parent="HBoxContainer"] +layout_mode = 2 +size_flags_horizontal = 0 +size_flags_vertical = 4 + +[node name="help" type="Button" parent="HBoxContainer/tools"] +unique_name_in_owner = true +layout_mode = 2 +icon = SubResource("ImageTexture_t52y3") + +[node name="tool" type="Button" parent="HBoxContainer/tools"] +unique_name_in_owner = true +layout_mode = 2 +tooltip_text = "GdUnit Settings" +icon = SubResource("ImageTexture_wip2b") + +[node name="controls" type="HBoxContainer" parent="HBoxContainer"] +layout_mode = 2 +size_flags_horizontal = 6 +size_flags_vertical = 4 +alignment = 1 + +[node name="VSeparator3" type="VSeparator" parent="HBoxContainer/controls"] +layout_mode = 2 + +[node name="run_overall" type="Button" parent="HBoxContainer/controls"] +unique_name_in_owner = true +visible = false +use_parent_material = true +layout_mode = 2 +tooltip_text = "Run overall tests" +shortcut = SubResource("Shortcut_t0ytp") +icon = SubResource("ImageTexture_mggmt") + +[node name="run" type="Button" parent="HBoxContainer/controls"] +unique_name_in_owner = true +use_parent_material = true +layout_mode = 2 +tooltip_text = "Rerun unit tests" +shortcut = SubResource("Shortcut_77xhn") +icon = SubResource("ImageTexture_q6qbp") + +[node name="debug" type="Button" parent="HBoxContainer/controls"] +unique_name_in_owner = true +use_parent_material = true +layout_mode = 2 +tooltip_text = "Rerun unit tests (Debug)" +shortcut = SubResource("Shortcut_ae6em") +icon = SubResource("ImageTexture_q0wt0") + +[node name="stop" type="Button" parent="HBoxContainer/controls"] +unique_name_in_owner = true +use_parent_material = true +layout_mode = 2 +tooltip_text = "Stops runing unit tests" +disabled = true +shortcut = SubResource("Shortcut_2mb87") +icon = SubResource("ImageTexture_1wiyx") + +[node name="VSeparator4" type="VSeparator" parent="HBoxContainer/controls"] +layout_mode = 2 + +[node name="CenterContainer" type="HBoxContainer" parent="HBoxContainer"] +use_parent_material = true +layout_mode = 2 +size_flags_horizontal = 10 +size_flags_vertical = 4 +alignment = 2 + +[node name="version" type="Label" parent="HBoxContainer/CenterContainer"] +unique_name_in_owner = true +use_parent_material = true +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 13 +auto_translate = false +localize_numeral_system = false +text = "gdUnit4 4.3.0" +horizontal_alignment = 1 +justification_flags = 160 + +[connection signal="pressed" from="HBoxContainer/tools/help" to="." method="_on_wiki_pressed"] +[connection signal="pressed" from="HBoxContainer/tools/tool" to="." method="_on_btn_tool_pressed"] +[connection signal="pressed" from="HBoxContainer/controls/run_overall" to="." method="_on_runoverall_pressed"] +[connection signal="pressed" from="HBoxContainer/controls/run" to="." method="_on_run_pressed"] +[connection signal="pressed" from="HBoxContainer/controls/debug" to="." method="_on_run_pressed" binds= [true]] +[connection signal="pressed" from="HBoxContainer/controls/stop" to="." method="_on_stop_pressed"] diff --git a/addons/gdUnit4/src/ui/parts/InspectorTreeMainPanel.gd b/addons/gdUnit4/src/ui/parts/InspectorTreeMainPanel.gd new file mode 100644 index 0000000..3cc35cc --- /dev/null +++ b/addons/gdUnit4/src/ui/parts/InspectorTreeMainPanel.gd @@ -0,0 +1,990 @@ +@tool +extends VSplitContainer + +signal run_testcase(test_suite_resource_path: String, test_case: String, test_param_index: int, run_debug: bool) +signal run_testsuite() + +const CONTEXT_MENU_RUN_ID = 0 +const CONTEXT_MENU_DEBUG_ID = 1 +const CONTEXT_MENU_COLLAPSE_ALL = 3 +const CONTEXT_MENU_EXPAND_ALL = 4 + + +@onready var _tree: Tree = $Panel/Tree +@onready var _report_list: Node = $report/ScrollContainer/list +@onready var _report_template: RichTextLabel = $report/report_template +@onready var _context_menu: PopupMenu = $contextMenu +@onready var _discover_hint := %discover_hint +@onready var _spinner := %spinner + +# loading tree icons +@onready var ICON_SPINNER := GdUnitUiTools.get_spinner() +@onready var ICON_FOLDER := GdUnitUiTools.get_icon("Folder") +# gdscript icons +@onready var ICON_GDSCRIPT_TEST_DEFAULT := GdUnitUiTools.get_icon("GDScript", Color.LIGHT_GRAY) +@onready var ICON_GDSCRIPT_TEST_SUCCESS := GdUnitUiTools.get_GDScript_icon("StatusSuccess", Color.DARK_GREEN) +@onready var ICON_GDSCRIPT_TEST_FAILED := GdUnitUiTools.get_GDScript_icon("StatusError", Color.SKY_BLUE) +@onready var ICON_GDSCRIPT_TEST_ERROR := GdUnitUiTools.get_GDScript_icon("StatusError", Color.DARK_RED) +@onready var ICON_GDSCRIPT_TEST_SUCCESS_ORPHAN := GdUnitUiTools.get_GDScript_icon("Unlinked", Color.DARK_GREEN) +@onready var ICON_GDSCRIPT_TEST_FAILED_ORPHAN := GdUnitUiTools.get_GDScript_icon("Unlinked", Color.SKY_BLUE) +@onready var ICON_GDSCRIPT_TEST_ERRORS_ORPHAN := GdUnitUiTools.get_GDScript_icon("Unlinked", Color.DARK_RED) +# csharp script icons +@onready var ICON_CSSCRIPT_TEST_DEFAULT := GdUnitUiTools.get_icon("CSharpScript", Color.LIGHT_GRAY) +@onready var ICON_CSSCRIPT_TEST_SUCCESS := GdUnitUiTools.get_CSharpScript_icon("StatusSuccess", Color.DARK_GREEN) +@onready var ICON_CSSCRIPT_TEST_FAILED := GdUnitUiTools.get_CSharpScript_icon("StatusError", Color.SKY_BLUE) +@onready var ICON_CSSCRIPT_TEST_ERROR := GdUnitUiTools.get_CSharpScript_icon("StatusError", Color.DARK_RED) +@onready var ICON_CSSCRIPT_TEST_SUCCESS_ORPHAN := GdUnitUiTools.get_CSharpScript_icon("Unlinked", Color.DARK_GREEN) +@onready var ICON_CSSCRIPT_TEST_FAILED_ORPHAN := GdUnitUiTools.get_CSharpScript_icon("Unlinked", Color.SKY_BLUE) +@onready var ICON_CSSCRIPT_TEST_ERRORS_ORPHAN := GdUnitUiTools.get_CSharpScript_icon("Unlinked", Color.DARK_RED) + + +enum GdUnitType { + FOLDER, + TEST_SUITE, + TEST_CASE, + TEST_CASE_PARAMETERIZED +} + + +enum STATE { + INITIAL, + RUNNING, + SUCCESS, + WARNING, + FAILED, + ERROR, + ABORDED, + SKIPPED +} + +const META_GDUNIT_ORIGINAL_INDEX = "gdunit_original_index" +const META_GDUNIT_NAME := "gdUnit_name" +const META_GDUNIT_STATE := "gdUnit_state" +const META_GDUNIT_TYPE := "gdUnit_type" +const META_GDUNIT_TOTAL_TESTS := "gdUnit_suite_total_tests" +const META_GDUNIT_SUCCESS_TESTS := "gdUnit_suite_success_tests" +const META_GDUNIT_REPORT := "gdUnit_report" +const META_GDUNIT_ORPHAN := "gdUnit_orphan" +const META_GDUNIT_EXECUTION_TIME := "gdUnit_execution_time" +const META_RESOURCE_PATH := "resource_path" +const META_LINE_NUMBER := "line_number" +const META_TEST_PARAM_INDEX := "test_param_index" + +var _tree_root: TreeItem +var _item_hash := Dictionary() +var _tree_view_mode_flat := GdUnitSettings.get_inspector_tree_view_mode() == GdUnitInspectorTreeConstants.TREE_VIEW_MODE.FLAT + + +func _build_cache_key(resource_path: String, test_name: String) -> Array: + return [resource_path, test_name] + + +func get_tree_item(resource_path: String, item_name: String) -> TreeItem: + var key := _build_cache_key(resource_path, item_name) + return _item_hash.get(key, null) + + +func remove_tree_item(resource_path: String, item_name: String) -> bool: + var key := _build_cache_key(resource_path, item_name) + var item :TreeItem= _item_hash.get(key, null) + if item: + item.get_parent().remove_child(item) + item.free() + return _item_hash.erase(key) + return false + + +func add_tree_item_to_cache(resource_path: String, test_name: String, item: TreeItem) -> void: + var key := _build_cache_key(resource_path, test_name) + _item_hash[key] = item + + +func clear_tree_item_cache() -> void: + _item_hash.clear() + + +func _find_by_resource_path(current: TreeItem, resource_path: String) -> TreeItem: + for item in current.get_children(): + if item.get_meta(META_RESOURCE_PATH) == resource_path: + return item + return null + + +func _find_first_failure(parent := _tree_root, reverse := false) -> TreeItem: + var itmes := parent.get_children() + if reverse: + itmes.reverse() + for item in itmes: + if is_test_case(item) and (is_state_error(item) or is_state_failed(item)): + return item + var failure_item := _find_first_failure(item, reverse) + if failure_item != null: + return failure_item + return null + + +func _find_last_failure(parent := _tree_root) -> TreeItem: + return _find_first_failure(parent, true) + + +func _find_failure(current :TreeItem, prev := false) -> TreeItem: + var next := current.get_prev_in_tree() if prev else current.get_next_in_tree() + if next == null or next == _tree_root: + return null + if is_test_case(next) and (is_state_error(next) or is_state_failed(next)): + return next + return _find_failure(next, prev) + + +func is_state_running(item: TreeItem) -> bool: + return item.has_meta(META_GDUNIT_STATE) and item.get_meta(META_GDUNIT_STATE) == STATE.RUNNING + + +func is_state_success(item: TreeItem) -> bool: + return item.has_meta(META_GDUNIT_STATE) and item.get_meta(META_GDUNIT_STATE) == STATE.SUCCESS + + +func is_state_warning(item: TreeItem) -> bool: + return item.has_meta(META_GDUNIT_STATE) and item.get_meta(META_GDUNIT_STATE) == STATE.WARNING + + +func is_state_failed(item: TreeItem) -> bool: + return item.has_meta(META_GDUNIT_STATE) and item.get_meta(META_GDUNIT_STATE) == STATE.FAILED + + +func is_state_error(item: TreeItem) -> bool: + return item.has_meta(META_GDUNIT_STATE) and (item.get_meta(META_GDUNIT_STATE) == STATE.ERROR or item.get_meta(META_GDUNIT_STATE) == STATE.ABORDED) + + +func is_item_state_orphan(item: TreeItem) -> bool: + return item.has_meta(META_GDUNIT_ORPHAN) + + +func is_test_suite(item: TreeItem) -> bool: + return item.has_meta(META_GDUNIT_TYPE) and item.get_meta(META_GDUNIT_TYPE) == GdUnitType.TEST_SUITE + + +func is_test_case(item: TreeItem) -> bool: + return item.has_meta(META_GDUNIT_TYPE) and item.get_meta(META_GDUNIT_TYPE) == GdUnitType.TEST_CASE + + +func is_folder(item: TreeItem) -> bool: + return item.has_meta(META_GDUNIT_TYPE) and item.get_meta(META_GDUNIT_TYPE) == GdUnitType.FOLDER + + +func _ready() -> void: + _context_menu.set_item_icon(CONTEXT_MENU_RUN_ID, GdUnitUiTools.get_icon("Play")) + _context_menu.set_item_icon(CONTEXT_MENU_DEBUG_ID, GdUnitUiTools.get_icon("PlayStart")) + _context_menu.set_item_icon(CONTEXT_MENU_EXPAND_ALL, GdUnitUiTools.get_icon("ExpandTree")) + _context_menu.set_item_icon(CONTEXT_MENU_COLLAPSE_ALL, GdUnitUiTools.get_icon("CollapseTree")) + # do colorize the icons + #for index in _context_menu.item_count: + # _context_menu.set_item_icon_modulate(index, Color.MEDIUM_PURPLE) + + _spinner.icon = GdUnitUiTools.get_spinner() + init_tree() + GdUnitSignals.instance().gdunit_settings_changed.connect(_on_settings_changed) + GdUnitSignals.instance().gdunit_add_test_suite.connect(do_add_test_suite) + GdUnitSignals.instance().gdunit_event.connect(_on_gdunit_event) + var command_handler := GdUnitCommandHandler.instance() + command_handler.gdunit_runner_start.connect(_on_gdunit_runner_start) + command_handler.gdunit_runner_stop.connect(_on_gdunit_runner_stop) + + +# we need current to manually redraw bacause of the animation bug +# https://github.com/godotengine/godot/issues/69330 +func _process(_delta: float) -> void: + if is_visible_in_tree(): + queue_redraw() + + +func init_tree() -> void: + cleanup_tree() + _tree.set_hide_root(true) + _tree.ensure_cursor_is_visible() + _tree.set_allow_reselect(true) + _tree.set_allow_rmb_select(true) + _tree.set_columns(2) + _tree.set_column_clip_content(0, true) + _tree.set_column_expand_ratio(0, 1) + _tree.set_column_custom_minimum_width(0, 240) + _tree.set_column_expand_ratio(1, 0) + _tree.set_column_custom_minimum_width(1, 100) + _tree_root = _tree.create_item() + # fix tree icon scaling + var scale_factor := EditorInterface.get_editor_scale() if Engine.is_editor_hint() else 1.0 + _tree.set("theme_override_constants/icon_max_width", 16 * scale_factor) + + +func cleanup_tree() -> void: + clear_reports() + clear_tree_item_cache() + if not _tree_root: + return + _free_recursive() + _tree.clear() + + +func _free_recursive(items:=_tree_root.get_children()) -> void: + for item in items: + _free_recursive(item.get_children()) + item.call_deferred("free") + + +func sort_tree_items(parent :TreeItem) -> void: + parent.visible = false + var items := parent.get_children() + + # do sort by selected sort mode + match GdUnitSettings.get_inspector_tree_sort_mode(): + GdUnitInspectorTreeConstants.SORT_MODE.UNSORTED: + items.sort_custom(sort_items_by_original_index) + + GdUnitInspectorTreeConstants.SORT_MODE.NAME_ASCENDING: + items.sort_custom(sort_items_by_name.bind(true)) + + GdUnitInspectorTreeConstants.SORT_MODE.NAME_DESCENDING: + items.sort_custom(sort_items_by_name.bind(false)) + + GdUnitInspectorTreeConstants.SORT_MODE.EXECUTION_TIME: + items.sort_custom(sort_items_by_execution_time) + + for item in items: + parent.remove_child(item) + parent.add_child(item) + if item.get_child_count() > 0: + sort_tree_items(item) + parent.visible = true + _tree.queue_redraw() + + +func sort_items_by_name(a: TreeItem, b: TreeItem, ascending: bool) -> bool: + var type_a: GdUnitType = a.get_meta(META_GDUNIT_TYPE) + var type_b: GdUnitType = b.get_meta(META_GDUNIT_TYPE) + # Compare types first + if type_a != type_b: + return type_a == GdUnitType.FOLDER + var name_a :String = a.get_meta(META_GDUNIT_NAME) + var name_b :String = b.get_meta(META_GDUNIT_NAME) + return name_a.naturalnocasecmp_to(name_b) < 0 if ascending else name_a.naturalnocasecmp_to(name_b) > 0 + + +func sort_items_by_execution_time(a: TreeItem, b: TreeItem) -> bool: + var type_a: GdUnitType = a.get_meta(META_GDUNIT_TYPE) + var type_b: GdUnitType = b.get_meta(META_GDUNIT_TYPE) + # Compare types first + if type_a != type_b: + return type_a == GdUnitType.FOLDER + var execution_time_a :int = a.get_meta(META_GDUNIT_EXECUTION_TIME) + var execution_time_b :int = b.get_meta(META_GDUNIT_EXECUTION_TIME) + # if has same execution time sort by name + if execution_time_a == execution_time_b: + var name_a :String = a.get_meta(META_GDUNIT_NAME) + var name_b :String = b.get_meta(META_GDUNIT_NAME) + return name_a.naturalnocasecmp_to(name_b) > 0 + return execution_time_a > execution_time_b + + +func sort_items_by_original_index(a: TreeItem, b: TreeItem) -> bool: + var type_a: GdUnitType = a.get_meta(META_GDUNIT_TYPE) + var type_b: GdUnitType = b.get_meta(META_GDUNIT_TYPE) + if type_a != type_b: + return type_a == GdUnitType.FOLDER + var index_a :int = a.get_meta(META_GDUNIT_ORIGINAL_INDEX) + var index_b :int = b.get_meta(META_GDUNIT_ORIGINAL_INDEX) + return index_a < index_b + + +func reset_tree_state(parent: TreeItem) -> void: + for item in parent.get_children(): + set_state_initial(item) + reset_tree_state(item) + + +func select_item(item: TreeItem) -> TreeItem: + if item != null: + # enshure the parent is collapsed + do_collapse_parent(item) + item.select(0) + _tree.ensure_cursor_is_visible() + _tree.scroll_to_item(item, true) + return item + + +func do_collapse_parent(item: TreeItem) -> void: + if item != null: + item.collapsed = false + do_collapse_parent(item.get_parent()) + + +func do_collapse_all(collapse: bool, parent := _tree_root) -> void: + for item in parent.get_children(): + item.collapsed = collapse + if not collapse: + do_collapse_all(collapse, item) + + +func set_state_initial(item: TreeItem) -> void: + item.set_custom_color(0, Color.LIGHT_GRAY) + item.set_tooltip_text(0, "") + item.set_text_overrun_behavior(0, TextServer.OVERRUN_TRIM_CHAR) + item.set_expand_right(0, true) + + item.set_custom_color(1, Color.LIGHT_GRAY) + item.set_text(1, "") + item.set_expand_right(1, true) + item.set_tooltip_text(1, "") + + item.set_meta(META_GDUNIT_STATE, STATE.INITIAL) + item.set_meta(META_GDUNIT_SUCCESS_TESTS, 0) + item.remove_meta(META_GDUNIT_REPORT) + item.remove_meta(META_GDUNIT_ORPHAN) + set_item_icon_by_state(item) + init_item_counter(item) + + +func set_state_running(item: TreeItem) -> void: + if is_state_running(item): + return + item.set_custom_color(0, Color.DARK_GREEN) + item.set_custom_color(1, Color.DARK_GREEN) + item.set_icon(0, ICON_SPINNER) + item.set_meta(META_GDUNIT_STATE, STATE.RUNNING) + item.collapsed = false + var parent := item.get_parent() + if parent != _tree_root: + set_state_running(parent) + # force scrolling to current test case + select_item(item) + + +func set_state_succeded(item: TreeItem) -> void: + item.set_custom_color(0, Color.GREEN) + item.set_custom_color(1, Color.GREEN) + item.set_meta(META_GDUNIT_STATE, STATE.SUCCESS) + item.collapsed = GdUnitSettings.is_inspector_node_collapse() + set_item_icon_by_state(item) + + +func set_state_skipped(item: TreeItem) -> void: + item.set_meta(META_GDUNIT_STATE, STATE.SKIPPED) + item.set_text(1, "(skipped)") + item.set_text_alignment(1, HORIZONTAL_ALIGNMENT_RIGHT) + item.set_custom_color(0, Color.DARK_GRAY) + item.set_custom_color(1, Color.DARK_GRAY) + item.collapsed = false + set_item_icon_by_state(item) + + +func set_state_warnings(item: TreeItem) -> void: + # Do not overwrite higher states + if is_state_error(item) or is_state_failed(item): + return + item.set_meta(META_GDUNIT_STATE, STATE.WARNING) + item.set_custom_color(0, Color.YELLOW) + item.set_custom_color(1, Color.YELLOW) + item.collapsed = false + set_item_icon_by_state(item) + + +func set_state_failed(item: TreeItem) -> void: + # Do not overwrite higher states + if is_state_error(item): + return + item.set_meta(META_GDUNIT_STATE, STATE.FAILED) + item.set_custom_color(0, Color.LIGHT_BLUE) + item.set_custom_color(1, Color.LIGHT_BLUE) + item.collapsed = false + set_item_icon_by_state(item) + + +func set_state_error(item: TreeItem) -> void: + item.set_meta(META_GDUNIT_STATE, STATE.ERROR) + item.set_custom_color(0, Color.ORANGE_RED) + item.set_custom_color(1, Color.ORANGE_RED) + set_item_icon_by_state(item) + item.collapsed = false + + +func set_state_aborted(item: TreeItem) -> void: + item.set_meta(META_GDUNIT_STATE, STATE.ABORDED) + item.set_custom_color(0, Color.ORANGE_RED) + item.set_custom_color(1, Color.ORANGE_RED) + item.clear_custom_bg_color(0) + item.set_text(1, "(aborted)") + item.set_text_alignment(1, HORIZONTAL_ALIGNMENT_RIGHT) + set_item_icon_by_state(item) + item.collapsed = false + + +func set_state_orphan(item: TreeItem, event: GdUnitEvent) -> void: + var orphan_count := event.statistic(GdUnitEvent.ORPHAN_NODES) + if orphan_count == 0: + return + if item.has_meta(META_GDUNIT_ORPHAN): + orphan_count += item.get_meta(META_GDUNIT_ORPHAN) + item.set_meta(META_GDUNIT_ORPHAN, orphan_count) + item.set_custom_color(0, Color.YELLOW) + item.set_custom_color(1, Color.YELLOW) + item.set_tooltip_text(0, "Total <%d> orphan nodes detected." % orphan_count) + set_item_icon_by_state(item) + + +func update_state(item: TreeItem, event: GdUnitEvent, add_reports := true) -> void: + # we do not show the root + if item == _tree_root: + return + if is_state_running(item) and event.is_success(): + set_state_succeded(item) + else: + if event.is_skipped(): + set_state_skipped(item) + elif event.is_error(): + set_state_error(item) + elif event.is_failed(): + set_state_failed(item) + elif event.is_warning(): + set_state_warnings(item) + if add_reports: + for report in event.reports(): + add_report(item, report) + set_state_orphan(item, event) + if is_folder(item): + update_state(item.get_parent(), event, false) + + +func add_report(item: TreeItem, report: GdUnitReport) -> void: + var reports: Array[GdUnitReport] = [] + if item.has_meta(META_GDUNIT_REPORT): + reports = get_item_reports(item) + reports.append(report) + item.set_meta(META_GDUNIT_REPORT, reports) + + +func abort_running(items:=_tree_root.get_children()) -> void: + for item in items: + if is_state_running(item): + set_state_aborted(item) + abort_running(item.get_children()) + + +func select_first_failure() -> TreeItem: + return select_item(_find_first_failure()) + + +func select_next_failure() -> TreeItem: + var current_selected := _tree.get_selected() + # If nothing is selected, the first error is selected or the next one in the vicinity of the current selection is found + current_selected = _find_first_failure() if current_selected == null else _find_failure(current_selected) + # If no next failure found, then we try to select first + if current_selected == null: + current_selected = _find_first_failure() + return select_item(current_selected) + + +func select_previous_failure() -> TreeItem: + var current_selected := _tree.get_selected() + # If nothing is selected, the first error is selected or the next one in the vicinity of the current selection is found + current_selected = _find_last_failure() if current_selected == null else _find_failure(current_selected, true) + # If no next failure found, then we try to select first last + if current_selected == null: + current_selected = _find_last_failure() + return select_item(current_selected) + + +func select_first_orphan() -> void: + for parent in _tree_root.get_children(): + if not is_state_success(parent): + for item in parent.get_children(): + if is_item_state_orphan(item): + parent.set_collapsed(false) + select_item(item) + return + + +func clear_reports() -> void: + for child in _report_list.get_children(): + _report_list.remove_child(child) + child.queue_free() + + +func show_failed_report(selected_item: TreeItem) -> void: + clear_reports() + if selected_item == null or not selected_item.has_meta(META_GDUNIT_REPORT): + return + # add new reports + for report in get_item_reports(selected_item): + var reportNode: RichTextLabel = _report_template.duplicate() + _report_list.add_child(reportNode) + reportNode.append_text(report.to_string()) + reportNode.visible = true + + +func update_test_suite(event: GdUnitEvent) -> void: + var item := get_tree_item(event.resource_path(), event.suite_name()) + if not item: + push_error("Internal Error: Can't find test suite %s" % event.suite_name()) + return + if event.type() == GdUnitEvent.TESTSUITE_BEFORE: + set_state_running(item) + return + if event.type() == GdUnitEvent.TESTSUITE_AFTER: + update_item_counter(item) + update_item_elapsed_time_counter(item, event.elapsed_time()) + + update_state(item, event) + update_state(item.get_parent(), event, false) + + +func update_test_case(event: GdUnitEvent) -> void: + var item := get_tree_item(event.resource_path(), event.test_name()) + if not item: + push_error("Internal Error: Can't find test case %s:%s" % [event.suite_name(), event.test_name()]) + return + if event.type() == GdUnitEvent.TESTCASE_BEFORE: + set_state_running(item) + return + if event.type() == GdUnitEvent.TESTCASE_AFTER: + update_item_elapsed_time_counter(item, event.elapsed_time()) + if event.is_success() or event.is_warning(): + update_item_counter(item) + update_state(item, event) + + +func create_tree_item(test_suite: GdUnitTestSuiteDto) -> TreeItem: + var root_folder := GdUnitSettings.test_root_folder() + var path_spliced := ProjectSettings.localize_path(test_suite.path()).split(root_folder) + var resource_path := path_spliced[0] + "/" + root_folder + var parent := _tree_root + + if _tree_view_mode_flat: + var element := path_spliced[1].get_base_dir().trim_prefix("/") + if element.is_empty(): + return _tree.create_item(parent) + resource_path += "/" + element + parent = create_or_find_item(parent, resource_path, element) + return _tree.create_item(parent) + + var path_elements := path_spliced[1] + var elements := path_elements.split("/") + elements.remove_at(0) + elements.remove_at(elements.size() - 1) + for element in elements: + resource_path += "/" + element + parent = create_or_find_item(parent, resource_path, element) + return _tree.create_item(parent) + + +func create_or_find_item(parent: TreeItem, resource_path: String, item_name: String) -> TreeItem: + var item := _find_by_resource_path(parent, resource_path) + if item != null: + return item + item = _tree.create_item(parent) + item.set_meta(META_GDUNIT_ORIGINAL_INDEX, item.get_index()) + item.set_text(0, item_name) + item.set_meta(META_GDUNIT_STATE, STATE.INITIAL) + item.set_meta(META_GDUNIT_NAME, item_name) + item.set_meta(META_GDUNIT_TYPE, GdUnitType.FOLDER) + item.set_meta(META_RESOURCE_PATH, resource_path) + item.set_meta(META_GDUNIT_TOTAL_TESTS, 0) + item.set_meta(META_GDUNIT_EXECUTION_TIME, 0) + set_item_icon_by_state(item) + item.collapsed = true + return item + + +func create_item(parent: TreeItem, resource_path: String, item_name: String, type: GdUnitType) -> TreeItem: + var item := _tree.create_item(parent) + item.set_meta(META_GDUNIT_ORIGINAL_INDEX, item.get_index()) + item.set_text(0, item_name) + item.set_meta(META_GDUNIT_STATE, STATE.INITIAL) + item.set_meta(META_GDUNIT_NAME, item_name) + item.set_meta(META_GDUNIT_TYPE, type) + item.set_meta(META_RESOURCE_PATH, resource_path) + item.set_meta(META_GDUNIT_TOTAL_TESTS, 0) + item.set_meta(META_GDUNIT_EXECUTION_TIME, 0) + set_item_icon_by_state(item) + item.collapsed = true + return item + + +func set_item_icon_by_state(item :TreeItem) -> void: + var resource_path :String = item.get_meta(META_RESOURCE_PATH) + var state :STATE = item.get_meta(META_GDUNIT_STATE) + var is_orphan := is_item_state_orphan(item) + item.set_icon(0, get_icon_by_file_type(resource_path, state, is_orphan)) + if item.get_meta(META_GDUNIT_TYPE) == GdUnitType.FOLDER: + item.set_icon_modulate(0, Color.SKY_BLUE) + + +func init_item_counter(item: TreeItem) -> void: + if item.has_meta(META_GDUNIT_TOTAL_TESTS) and item.get_meta(META_GDUNIT_TOTAL_TESTS) > 0: + item.set_text(0, "(0/%s) %s" % [ + item.get_meta(META_GDUNIT_TOTAL_TESTS), + item.get_meta(META_GDUNIT_NAME)]) + init_folder_counter(item.get_parent()) + + +func increment_item_counter(item: TreeItem, increment_count: int) -> void: + if item != _tree_root and item.get_meta(META_GDUNIT_TOTAL_TESTS) != 0: + var count: int = item.get_meta(META_GDUNIT_SUCCESS_TESTS) + item.set_meta(META_GDUNIT_SUCCESS_TESTS, count + increment_count) + item.set_text(0, "(%s/%s) %s" % [ + item.get_meta(META_GDUNIT_SUCCESS_TESTS), + item.get_meta(META_GDUNIT_TOTAL_TESTS), + item.get_meta(META_GDUNIT_NAME)]) + if is_folder(item): + increment_item_counter(item.get_parent(), increment_count) + + +func init_folder_counter(item: TreeItem) -> void: + if item == _tree_root: + return + var type :GdUnitType = item.get_meta(META_GDUNIT_TYPE) + if type == GdUnitType.FOLDER: + var count :int = item.get_children().reduce(count_tests_total, 0) + item.set_meta(META_GDUNIT_TOTAL_TESTS, count) + item.set_meta(META_GDUNIT_SUCCESS_TESTS, 0) + item.set_meta(META_GDUNIT_EXECUTION_TIME, 0) + init_item_counter(item) + + +func count_tests_total(accum: int, item: TreeItem) -> int: + return accum + item.get_meta(META_GDUNIT_TOTAL_TESTS) + + +func update_item_counter(item: TreeItem) -> void: + if item == _tree_root: + return + var type :GdUnitType = item.get_meta(META_GDUNIT_TYPE) + match type: + GdUnitType.TEST_CASE: + increment_item_counter(item.get_parent(), 1) + GdUnitType.TEST_CASE_PARAMETERIZED: + increment_item_counter(item.get_parent(), 1) + GdUnitType.TEST_SUITE: + var count: int = item.get_meta(META_GDUNIT_SUCCESS_TESTS) + increment_item_counter(item.get_parent(), count) + + +func update_item_elapsed_time_counter(item: TreeItem, time: int) -> void: + item.set_text(1, "%s" % LocalTime.elapsed(time)) + item.set_text_alignment(1, HORIZONTAL_ALIGNMENT_RIGHT) + item.set_meta(META_GDUNIT_EXECUTION_TIME, time) + + var parent := item.get_parent() + if parent == _tree_root: + return + var elapsed_time :int = parent.get_meta(META_GDUNIT_EXECUTION_TIME) + time + var type :GdUnitType = item.get_meta(META_GDUNIT_TYPE) + match type: + GdUnitType.TEST_CASE: + return + GdUnitType.TEST_SUITE: + update_item_elapsed_time_counter(parent, elapsed_time) + #GdUnitType.FOLDER: + # update_item_elapsed_time_counter(parent, elapsed_time) + + +func get_icon_by_file_type(path: String, state: STATE, orphans: bool) -> Texture2D: + if path.get_extension() == "gd": + match state: + STATE.INITIAL: + return ICON_GDSCRIPT_TEST_DEFAULT + STATE.SUCCESS: + return ICON_GDSCRIPT_TEST_SUCCESS_ORPHAN if orphans else ICON_GDSCRIPT_TEST_SUCCESS + STATE.ERROR: + return ICON_GDSCRIPT_TEST_ERRORS_ORPHAN if orphans else ICON_GDSCRIPT_TEST_ERROR + STATE.FAILED: + return ICON_GDSCRIPT_TEST_FAILED_ORPHAN if orphans else ICON_GDSCRIPT_TEST_FAILED + STATE.WARNING: + return ICON_GDSCRIPT_TEST_SUCCESS_ORPHAN if orphans else ICON_GDSCRIPT_TEST_DEFAULT + _: + return ICON_GDSCRIPT_TEST_DEFAULT + if path.get_extension() == "cs": + match state: + STATE.INITIAL: + return ICON_CSSCRIPT_TEST_DEFAULT + STATE.SUCCESS: + return ICON_CSSCRIPT_TEST_SUCCESS_ORPHAN if orphans else ICON_CSSCRIPT_TEST_SUCCESS + STATE.ERROR: + return ICON_CSSCRIPT_TEST_ERRORS_ORPHAN if orphans else ICON_CSSCRIPT_TEST_ERROR + STATE.FAILED: + return ICON_CSSCRIPT_TEST_FAILED_ORPHAN if orphans else ICON_CSSCRIPT_TEST_FAILED + STATE.WARNING: + return ICON_CSSCRIPT_TEST_SUCCESS_ORPHAN if orphans else ICON_CSSCRIPT_TEST_DEFAULT + _: + return ICON_CSSCRIPT_TEST_DEFAULT + match state: + STATE.INITIAL: + return ICON_FOLDER + STATE.ERROR: + return ICON_FOLDER + STATE.FAILED: + return ICON_FOLDER + _: + return ICON_FOLDER + + +func discover_test_suite_added(event: GdUnitEventTestDiscoverTestSuiteAdded) -> void: + # Check first if the test suite already exists + var item := get_tree_item(event.resource_path(), event.suite_name()) + if item != null: + return + # Otherwise create it + prints("Discovered test suite added: '%s' on %s" % [event.suite_name(), event.resource_path()]) + do_add_test_suite(event.suite_dto()) + + +func discover_test_added(event: GdUnitEventTestDiscoverTestAdded) -> void: + # check if the test already exists + var test_name := event.test_case_dto().name() + var item := get_tree_item(event.resource_path(), test_name) + if item != null: + return + + item = get_tree_item(event.resource_path(), event.suite_name()) + if not item: + push_error("Internal Error: Can't find test suite %s:%s" % [event.suite_name(), event.resource_path()]) + return + prints("Discovered test added: '%s' on %s" % [event.test_name(), event.resource_path()]) + # update test case count + var test_count :int = item.get_meta(META_GDUNIT_TOTAL_TESTS) + item.set_meta(META_GDUNIT_TOTAL_TESTS, test_count + 1) + init_item_counter(item) + # add new discovered test + add_test(item, event.test_case_dto()) + + +func discover_test_removed(event: GdUnitEventTestDiscoverTestRemoved) -> void: + prints("Discovered test removed: '%s' on %s" % [event.test_name(), event.resource_path()]) + var item := get_tree_item(event.resource_path(), event.test_name()) + if not item: + push_error("Internal Error: Can't find test suite %s:%s" % [event.suite_name(), event.resource_path()]) + return + # update test case count on test suite + var parent := item.get_parent() + var test_count :int = parent.get_meta(META_GDUNIT_TOTAL_TESTS) + parent.set_meta(META_GDUNIT_TOTAL_TESTS, test_count - 1) + init_item_counter(parent) + # finally remove the test + remove_tree_item(event.resource_path(), event.test_name()) + + +func do_add_test_suite(test_suite: GdUnitTestSuiteDto) -> void: + var item := create_tree_item(test_suite) + var suite_name := test_suite.name() + + item.set_text(0, suite_name) + item.set_meta(META_GDUNIT_ORIGINAL_INDEX, item.get_index()) + item.set_meta(META_GDUNIT_STATE, STATE.INITIAL) + item.set_meta(META_GDUNIT_NAME, suite_name) + item.set_meta(META_GDUNIT_TYPE, GdUnitType.TEST_SUITE) + item.set_meta(META_GDUNIT_TOTAL_TESTS, test_suite.test_case_count()) + item.set_meta(META_GDUNIT_SUCCESS_TESTS, 0) + item.set_meta(META_GDUNIT_EXECUTION_TIME, 0) + item.set_meta(META_RESOURCE_PATH, test_suite.path()) + item.set_meta(META_LINE_NUMBER, 1) + item.collapsed = true + set_item_icon_by_state(item) + init_item_counter(item) + add_tree_item_to_cache(test_suite.path(), suite_name, item) + for test_case in test_suite.test_cases(): + add_test(item, test_case) + + +func add_test(parent: TreeItem, test_case: GdUnitTestCaseDto) -> void: + var item := _tree.create_item(parent) + var test_name := test_case.name() + var resource_path :String = parent.get_meta(META_RESOURCE_PATH) + var test_case_names := test_case.test_case_names() + + item.set_meta(META_GDUNIT_ORIGINAL_INDEX, item.get_index()) + item.set_text(0, test_name) + item.set_meta(META_GDUNIT_STATE, STATE.INITIAL) + item.set_meta(META_GDUNIT_NAME, test_name) + item.set_meta(META_GDUNIT_TYPE, GdUnitType.TEST_CASE) + item.set_meta(META_RESOURCE_PATH, resource_path) + item.set_meta(META_GDUNIT_SUCCESS_TESTS, 0) + item.set_meta(META_GDUNIT_EXECUTION_TIME, 0) + item.set_meta(META_GDUNIT_TOTAL_TESTS, test_case_names.size()) + item.set_meta(META_LINE_NUMBER, test_case.line_number()) + item.set_meta(META_TEST_PARAM_INDEX, -1) + set_item_icon_by_state(item) + init_item_counter(item) + add_tree_item_to_cache(resource_path, test_name, item) + if not test_case_names.is_empty(): + add_test_cases(item, test_case_names) + + +func add_test_cases(parent: TreeItem, test_case_names: PackedStringArray) -> void: + for index in test_case_names.size(): + var item := _tree.create_item(parent) + var test_case_name := test_case_names[index] + var resource_path :String = parent.get_meta(META_RESOURCE_PATH) + item.set_meta(META_GDUNIT_ORIGINAL_INDEX, item.get_index()) + item.set_text(0, test_case_name) + item.set_meta(META_GDUNIT_STATE, STATE.INITIAL) + item.set_meta(META_GDUNIT_NAME, test_case_name) + item.set_meta(META_GDUNIT_TOTAL_TESTS, 0) + item.set_meta(META_GDUNIT_TYPE, GdUnitType.TEST_CASE_PARAMETERIZED) + item.set_meta(META_GDUNIT_EXECUTION_TIME, 0) + item.set_meta(META_RESOURCE_PATH, resource_path) + item.set_meta(META_LINE_NUMBER, parent.get_meta(META_LINE_NUMBER)) + item.set_meta(META_TEST_PARAM_INDEX, index) + set_item_icon_by_state(item) + add_tree_item_to_cache(resource_path, test_case_name, item) + + +func get_item_reports(item: TreeItem) -> Array[GdUnitReport]: + return item.get_meta(META_GDUNIT_REPORT) + + +func _dump_tree_as_json(dump_name: String) -> void: + var dict := _to_json(_tree_root) + var file := FileAccess.open("res://%s.json" % dump_name, FileAccess.WRITE) + file.store_string(JSON.stringify(dict, "\t")) + + +func _to_json(parent :TreeItem) -> Dictionary: + var item_as_dict := GdObjects.obj2dict(parent) + item_as_dict["TreeItem"]["childs"] = parent.get_children().map(func(item: TreeItem) -> Dictionary: + return _to_json(item)) + return item_as_dict + + +################################################################################ +# Tree signal receiver +################################################################################ +func _on_tree_item_mouse_selected(mouse_position: Vector2, mouse_button_index: int) -> void: + if mouse_button_index == MOUSE_BUTTON_RIGHT: + _context_menu.position = get_screen_position() + mouse_position + _context_menu.popup() + + +func _on_run_pressed(run_debug: bool) -> void: + _context_menu.hide() + var item := _tree.get_selected() + if item.get_meta(META_GDUNIT_TYPE) == GdUnitType.TEST_SUITE or item.get_meta(META_GDUNIT_TYPE) == GdUnitType.FOLDER: + var resource_path: String = item.get_meta(META_RESOURCE_PATH) + run_testsuite.emit([resource_path], run_debug) + return + var parent := item.get_parent() + var test_suite_resource_path: String = parent.get_meta(META_RESOURCE_PATH) + var test_case: String = item.get_meta(META_GDUNIT_NAME) + # handle parameterized test selection + var test_param_index: int = item.get_meta(META_TEST_PARAM_INDEX) + if test_param_index != -1: + test_case = parent.get_meta(META_GDUNIT_NAME) + run_testcase.emit(test_suite_resource_path, test_case, test_param_index, run_debug) + + +func _on_Tree_item_selected() -> void: + # only show report checked manual item selection + # we need to check the run mode here otherwise it will be called every selection + if not _context_menu.is_item_disabled(CONTEXT_MENU_RUN_ID): + var selected_item: TreeItem = _tree.get_selected() + show_failed_report(selected_item) + + +# Opens the test suite +func _on_Tree_item_activated() -> void: + var selected_item := _tree.get_selected() + var resource_path: String = selected_item.get_meta(META_RESOURCE_PATH) + var line_number: int = selected_item.get_meta(META_LINE_NUMBER) + var resource := load(resource_path) + + if selected_item.has_meta(META_GDUNIT_REPORT): + var reports := get_item_reports(selected_item) + var report_line_number := reports[0].line_number() + # if number -1 we use original stored line number of the test case + # in non debug mode the line number is not available + if report_line_number != -1: + line_number = report_line_number + + EditorInterface.get_file_system_dock().navigate_to_path(resource_path) + EditorInterface.edit_resource(resource) + EditorInterface.get_script_editor().goto_line(line_number - 1) + + +################################################################################ +# external signal receiver +################################################################################ +func _on_gdunit_runner_start() -> void: + reset_tree_state(_tree_root) + _context_menu.set_item_disabled(CONTEXT_MENU_RUN_ID, true) + _context_menu.set_item_disabled(CONTEXT_MENU_DEBUG_ID, true) + clear_reports() + + +func _on_gdunit_runner_stop(_client_id: int) -> void: + _context_menu.set_item_disabled(CONTEXT_MENU_RUN_ID, false) + _context_menu.set_item_disabled(CONTEXT_MENU_DEBUG_ID, false) + abort_running() + sort_tree_items(_tree_root) + select_first_failure() + + +func _on_gdunit_event(event: GdUnitEvent) -> void: + match event.type(): + GdUnitEvent.DISCOVER_START: + _tree_root.visible = false + _discover_hint.visible = true + init_tree() + + GdUnitEvent.DISCOVER_END: + sort_tree_items(_tree_root) + _discover_hint.visible = false + _tree_root.visible = true + #_dump_tree_as_json("tree_example_discovered") + + GdUnitEvent.DISCOVER_SUITE_ADDED: + discover_test_suite_added(event) + + GdUnitEvent.DISCOVER_TEST_ADDED: + discover_test_added(event) + + GdUnitEvent.DISCOVER_TEST_REMOVED: + discover_test_removed(event) + + GdUnitEvent.INIT: + if not GdUnitSettings.is_test_discover_enabled(): + init_tree() + + GdUnitEvent.STOP: + sort_tree_items(_tree_root) + #_dump_tree_as_json("tree_example") + + GdUnitEvent.TESTCASE_BEFORE: + update_test_case(event) + + GdUnitEvent.TESTCASE_AFTER: + update_test_case(event) + + GdUnitEvent.TESTSUITE_BEFORE: + update_test_suite(event) + + GdUnitEvent.TESTSUITE_AFTER: + update_test_suite(event) + + +func _on_context_m_index_pressed(index: int) -> void: + match index: + CONTEXT_MENU_DEBUG_ID: + _on_run_pressed(true) + CONTEXT_MENU_RUN_ID: + _on_run_pressed(false) + CONTEXT_MENU_EXPAND_ALL: + do_collapse_all(false) + CONTEXT_MENU_COLLAPSE_ALL: + do_collapse_all(true) + + +func _on_settings_changed(property :GdUnitProperty) -> void: + if property.name() == GdUnitSettings.INSPECTOR_TREE_SORT_MODE: + sort_tree_items(_tree_root) + # _dump_tree_as_json("tree_sorted_by_%s" % GdUnitInspectorTreeConstants.SORT_MODE.keys()[property.value()]) + + if property.name() == GdUnitSettings.INSPECTOR_TREE_VIEW_MODE: + _tree_view_mode_flat = property.value() == GdUnitInspectorTreeConstants.TREE_VIEW_MODE.FLAT + GdUnitCommandHandler.instance().cmd_discover_tests() diff --git a/addons/gdUnit4/src/ui/parts/InspectorTreePanel.tscn b/addons/gdUnit4/src/ui/parts/InspectorTreePanel.tscn new file mode 100644 index 0000000..1ad110d --- /dev/null +++ b/addons/gdUnit4/src/ui/parts/InspectorTreePanel.tscn @@ -0,0 +1,273 @@ +[gd_scene load_steps=27 format=3 uid="uid://bqfpidewtpeg0"] + +[ext_resource type="Script" path="res://addons/gdUnit4/src/ui/parts/InspectorTreeMainPanel.gd" id="1"] + +[sub_resource type="Image" id="Image_jitv6"] +data = { +"data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 4, 226, 226, 226, 26, 224, 224, 224, 41, 255, 255, 255, 0, 255, 255, 255, 0, 225, 225, 225, 223, 224, 224, 224, 148, 228, 228, 228, 28, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 2, 226, 226, 226, 43, 225, 225, 225, 51, 225, 225, 225, 51, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 211, 255, 255, 255, 5, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 2, 255, 255, 255, 0, 227, 227, 227, 9, 223, 223, 223, 47, 225, 225, 225, 51, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 221, 229, 229, 229, 29, 255, 255, 255, 0, 255, 255, 255, 2, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 4, 226, 226, 226, 43, 227, 227, 227, 9, 255, 255, 255, 0, 227, 227, 227, 9, 225, 225, 225, 17, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 65, 229, 229, 229, 29, 255, 255, 255, 0, 227, 227, 227, 9, 226, 226, 226, 43, 192, 192, 192, 4, 255, 255, 255, 0, 255, 255, 255, 0, 226, 226, 226, 26, 225, 225, 225, 51, 223, 223, 223, 47, 227, 227, 227, 9, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 227, 227, 227, 9, 228, 228, 228, 47, 225, 225, 225, 51, 225, 225, 225, 25, 255, 255, 255, 0, 255, 255, 255, 0, 231, 231, 231, 41, 225, 225, 225, 51, 225, 225, 225, 51, 225, 225, 225, 17, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 227, 227, 227, 18, 225, 225, 225, 51, 225, 225, 225, 51, 224, 224, 224, 40, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 1, 255, 255, 255, 1, 255, 255, 255, 1, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 41, 225, 225, 225, 51, 225, 225, 225, 51, 225, 225, 225, 17, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 227, 227, 227, 18, 225, 225, 225, 51, 225, 225, 225, 51, 229, 229, 229, 39, 255, 255, 255, 0, 255, 255, 255, 0, 226, 226, 226, 26, 225, 225, 225, 51, 223, 223, 223, 47, 255, 255, 255, 8, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 227, 227, 227, 9, 223, 223, 223, 47, 225, 225, 225, 51, 225, 225, 225, 25, 255, 255, 255, 0, 255, 255, 255, 0, 192, 192, 192, 4, 226, 226, 226, 43, 224, 224, 224, 8, 255, 255, 255, 0, 227, 227, 227, 9, 227, 227, 227, 18, 255, 255, 255, 0, 255, 255, 255, 0, 227, 227, 227, 18, 227, 227, 227, 9, 255, 255, 255, 0, 227, 227, 227, 9, 226, 226, 226, 43, 255, 255, 255, 3, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 1, 255, 255, 255, 0, 227, 227, 227, 9, 228, 228, 228, 47, 225, 225, 225, 51, 255, 255, 255, 0, 255, 255, 255, 1, 225, 225, 225, 51, 223, 223, 223, 47, 227, 227, 227, 9, 255, 255, 255, 0, 255, 255, 255, 2, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 2, 226, 226, 226, 43, 225, 225, 225, 51, 225, 225, 225, 51, 255, 255, 255, 0, 255, 255, 255, 1, 225, 225, 225, 51, 225, 225, 225, 51, 226, 226, 226, 43, 255, 255, 255, 2, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 192, 192, 192, 4, 226, 226, 226, 26, 224, 224, 224, 40, 255, 255, 255, 0, 255, 255, 255, 1, 229, 229, 229, 39, 225, 225, 225, 25, 255, 255, 255, 3, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0), +"format": "RGBA8", +"height": 16, +"mipmaps": false, +"width": 16 +} + +[sub_resource type="ImageTexture" id="ImageTexture_nwpuj"] +image = SubResource("Image_jitv6") + +[sub_resource type="Image" id="Image_ww2bl"] +data = { +"data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 4, 226, 226, 226, 26, 224, 224, 224, 41, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 41, 226, 226, 226, 26, 192, 192, 192, 4, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 2, 226, 226, 226, 43, 225, 225, 225, 51, 225, 225, 225, 51, 255, 255, 255, 0, 255, 255, 255, 0, 225, 225, 225, 51, 225, 225, 225, 51, 226, 226, 226, 43, 255, 255, 255, 1, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 2, 255, 255, 255, 0, 227, 227, 227, 9, 223, 223, 223, 47, 225, 225, 225, 51, 255, 255, 255, 0, 255, 255, 255, 0, 225, 225, 225, 51, 223, 223, 223, 47, 224, 224, 224, 8, 255, 255, 255, 0, 224, 224, 224, 8, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 4, 226, 226, 226, 43, 227, 227, 227, 9, 255, 255, 255, 0, 227, 227, 227, 9, 225, 225, 225, 17, 255, 255, 255, 0, 255, 255, 255, 0, 225, 225, 225, 17, 255, 255, 255, 8, 255, 255, 255, 0, 224, 224, 224, 48, 224, 224, 224, 217, 225, 225, 225, 17, 255, 255, 255, 0, 255, 255, 255, 0, 226, 226, 226, 26, 225, 225, 225, 51, 223, 223, 223, 47, 227, 227, 227, 9, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 228, 228, 228, 47, 224, 224, 224, 236, 224, 224, 224, 255, 225, 225, 225, 125, 255, 255, 255, 0, 255, 255, 255, 0, 231, 231, 231, 41, 225, 225, 225, 51, 225, 225, 225, 51, 225, 225, 225, 17, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 226, 226, 226, 86, 224, 224, 224, 252, 224, 224, 224, 252, 224, 224, 224, 194, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 41, 225, 225, 225, 51, 225, 225, 225, 51, 225, 225, 225, 17, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 227, 227, 227, 18, 225, 225, 225, 51, 225, 225, 225, 51, 230, 230, 230, 40, 255, 255, 255, 0, 255, 255, 255, 0, 226, 226, 226, 26, 225, 225, 225, 51, 223, 223, 223, 47, 255, 255, 255, 8, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 227, 227, 227, 9, 223, 223, 223, 47, 225, 225, 225, 51, 225, 225, 225, 25, 255, 255, 255, 0, 255, 255, 255, 0, 192, 192, 192, 4, 226, 226, 226, 43, 224, 224, 224, 8, 255, 255, 255, 0, 227, 227, 227, 9, 227, 227, 227, 18, 255, 255, 255, 0, 255, 255, 255, 0, 227, 227, 227, 18, 227, 227, 227, 9, 255, 255, 255, 0, 227, 227, 227, 9, 226, 226, 226, 43, 255, 255, 255, 3, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 1, 255, 255, 255, 0, 227, 227, 227, 9, 228, 228, 228, 47, 225, 225, 225, 51, 255, 255, 255, 0, 255, 255, 255, 0, 225, 225, 225, 51, 223, 223, 223, 47, 227, 227, 227, 9, 255, 255, 255, 0, 255, 255, 255, 2, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 2, 226, 226, 226, 43, 225, 225, 225, 51, 225, 225, 225, 51, 255, 255, 255, 0, 255, 255, 255, 0, 225, 225, 225, 51, 225, 225, 225, 51, 226, 226, 226, 43, 255, 255, 255, 2, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 192, 192, 192, 4, 225, 225, 225, 25, 230, 230, 230, 40, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 40, 225, 225, 225, 25, 255, 255, 255, 3, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0), +"format": "RGBA8", +"height": 16, +"mipmaps": false, +"width": 16 +} + +[sub_resource type="ImageTexture" id="ImageTexture_pdcj5"] +image = SubResource("Image_ww2bl") + +[sub_resource type="Image" id="Image_xkapw"] +data = { +"data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 4, 226, 226, 226, 26, 224, 224, 224, 41, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 41, 226, 226, 226, 26, 192, 192, 192, 4, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 2, 226, 226, 226, 43, 225, 225, 225, 51, 225, 225, 225, 51, 255, 255, 255, 0, 255, 255, 255, 0, 225, 225, 225, 51, 225, 225, 225, 51, 226, 226, 226, 43, 255, 255, 255, 1, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 2, 255, 255, 255, 0, 227, 227, 227, 9, 223, 223, 223, 47, 225, 225, 225, 51, 255, 255, 255, 0, 255, 255, 255, 0, 225, 225, 225, 51, 223, 223, 223, 47, 224, 224, 224, 8, 255, 255, 255, 0, 255, 255, 255, 2, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 4, 226, 226, 226, 43, 227, 227, 227, 9, 255, 255, 255, 0, 227, 227, 227, 9, 225, 225, 225, 17, 255, 255, 255, 0, 255, 255, 255, 0, 225, 225, 225, 17, 255, 255, 255, 8, 255, 255, 255, 0, 227, 227, 227, 9, 226, 226, 226, 43, 192, 192, 192, 4, 255, 255, 255, 0, 255, 255, 255, 0, 226, 226, 226, 26, 225, 225, 225, 51, 223, 223, 223, 47, 227, 227, 227, 9, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 227, 227, 227, 9, 228, 228, 228, 47, 225, 225, 225, 51, 225, 225, 225, 25, 255, 255, 255, 0, 255, 255, 255, 0, 231, 231, 231, 41, 225, 225, 225, 51, 225, 225, 225, 51, 225, 225, 225, 17, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 227, 227, 227, 18, 225, 225, 225, 51, 225, 225, 225, 51, 224, 224, 224, 40, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 41, 225, 225, 225, 51, 225, 225, 225, 51, 225, 225, 225, 17, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 89, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 200, 255, 255, 255, 0, 255, 255, 255, 0, 226, 226, 226, 26, 225, 225, 225, 51, 223, 223, 223, 47, 255, 255, 255, 8, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 225, 225, 225, 42, 224, 224, 224, 233, 224, 224, 224, 255, 225, 225, 225, 124, 255, 255, 255, 0, 255, 255, 255, 0, 192, 192, 192, 4, 226, 226, 226, 43, 224, 224, 224, 8, 255, 255, 255, 0, 227, 227, 227, 9, 227, 227, 227, 18, 255, 255, 255, 0, 255, 255, 255, 0, 227, 227, 227, 18, 227, 227, 227, 9, 255, 255, 255, 0, 225, 225, 225, 42, 224, 224, 224, 211, 238, 238, 238, 15, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 1, 255, 255, 255, 0, 227, 227, 227, 9, 228, 228, 228, 47, 225, 225, 225, 51, 255, 255, 255, 0, 255, 255, 255, 1, 225, 225, 225, 51, 223, 223, 223, 47, 227, 227, 227, 9, 255, 255, 255, 0, 255, 255, 255, 6, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 2, 226, 226, 226, 43, 225, 225, 225, 51, 225, 225, 225, 51, 255, 255, 255, 0, 255, 255, 255, 1, 225, 225, 225, 51, 225, 225, 225, 51, 226, 226, 226, 43, 255, 255, 255, 2, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 192, 192, 192, 4, 226, 226, 226, 26, 224, 224, 224, 40, 255, 255, 255, 0, 255, 255, 255, 1, 229, 229, 229, 39, 225, 225, 225, 25, 255, 255, 255, 3, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0), +"format": "RGBA8", +"height": 16, +"mipmaps": false, +"width": 16 +} + +[sub_resource type="ImageTexture" id="ImageTexture_o41n3"] +image = SubResource("Image_xkapw") + +[sub_resource type="Image" id="Image_3hs4q"] +data = { +"data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 4, 226, 226, 226, 26, 224, 224, 224, 41, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 41, 226, 226, 226, 26, 192, 192, 192, 4, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 2, 226, 226, 226, 43, 225, 225, 225, 51, 225, 225, 225, 51, 255, 255, 255, 0, 255, 255, 255, 0, 225, 225, 225, 51, 225, 225, 225, 51, 226, 226, 226, 43, 255, 255, 255, 1, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 2, 255, 255, 255, 0, 227, 227, 227, 9, 223, 223, 223, 47, 225, 225, 225, 51, 255, 255, 255, 0, 255, 255, 255, 0, 225, 225, 225, 51, 223, 223, 223, 47, 224, 224, 224, 8, 255, 255, 255, 0, 255, 255, 255, 2, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 4, 226, 226, 226, 43, 227, 227, 227, 9, 255, 255, 255, 0, 227, 227, 227, 9, 225, 225, 225, 17, 255, 255, 255, 0, 255, 255, 255, 0, 225, 225, 225, 17, 255, 255, 255, 8, 255, 255, 255, 0, 227, 227, 227, 9, 226, 226, 226, 43, 192, 192, 192, 4, 255, 255, 255, 0, 255, 255, 255, 0, 226, 226, 226, 26, 225, 225, 225, 51, 223, 223, 223, 47, 227, 227, 227, 9, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 227, 227, 227, 9, 228, 228, 228, 47, 225, 225, 225, 51, 225, 225, 225, 25, 255, 255, 255, 0, 255, 255, 255, 0, 231, 231, 231, 41, 225, 225, 225, 51, 225, 225, 225, 51, 225, 225, 225, 17, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 227, 227, 227, 18, 225, 225, 225, 51, 225, 225, 225, 51, 224, 224, 224, 40, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 41, 225, 225, 225, 51, 225, 225, 225, 51, 225, 225, 225, 17, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 227, 227, 227, 18, 225, 225, 225, 51, 225, 225, 225, 51, 224, 224, 224, 40, 255, 255, 255, 0, 255, 255, 255, 0, 226, 226, 226, 26, 225, 225, 225, 51, 223, 223, 223, 47, 255, 255, 255, 8, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 227, 227, 227, 9, 223, 223, 223, 47, 225, 225, 225, 51, 225, 225, 225, 25, 255, 255, 255, 0, 255, 255, 255, 0, 192, 192, 192, 4, 226, 226, 226, 43, 224, 224, 224, 8, 255, 255, 255, 0, 227, 227, 227, 9, 227, 227, 227, 18, 255, 255, 255, 0, 255, 255, 255, 0, 225, 225, 225, 101, 224, 224, 224, 49, 255, 255, 255, 0, 227, 227, 227, 9, 226, 226, 226, 43, 255, 255, 255, 3, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 1, 255, 255, 255, 0, 227, 227, 227, 9, 228, 228, 228, 47, 225, 225, 225, 51, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 238, 224, 224, 224, 49, 255, 255, 255, 0, 255, 255, 255, 2, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 2, 226, 226, 226, 43, 225, 225, 225, 51, 225, 225, 225, 51, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 209, 255, 255, 255, 6, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 192, 192, 192, 4, 226, 226, 226, 26, 224, 224, 224, 40, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 188, 224, 224, 224, 112, 230, 230, 230, 10, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0), +"format": "RGBA8", +"height": 16, +"mipmaps": false, +"width": 16 +} + +[sub_resource type="ImageTexture" id="ImageTexture_6oiqe"] +image = SubResource("Image_3hs4q") + +[sub_resource type="Image" id="Image_mvvke"] +data = { +"data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 4, 226, 226, 226, 26, 224, 224, 224, 41, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 41, 226, 226, 226, 26, 192, 192, 192, 4, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 2, 226, 226, 226, 43, 225, 225, 225, 51, 225, 225, 225, 51, 255, 255, 255, 0, 255, 255, 255, 0, 225, 225, 225, 51, 225, 225, 225, 51, 226, 226, 226, 43, 255, 255, 255, 1, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 2, 255, 255, 255, 0, 227, 227, 227, 9, 223, 223, 223, 47, 225, 225, 225, 51, 255, 255, 255, 0, 255, 255, 255, 0, 225, 225, 225, 51, 223, 223, 223, 47, 224, 224, 224, 8, 255, 255, 255, 0, 255, 255, 255, 2, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 4, 226, 226, 226, 43, 227, 227, 227, 9, 255, 255, 255, 0, 227, 227, 227, 9, 225, 225, 225, 17, 255, 255, 255, 0, 255, 255, 255, 0, 225, 225, 225, 17, 255, 255, 255, 8, 255, 255, 255, 0, 227, 227, 227, 9, 226, 226, 226, 43, 192, 192, 192, 4, 255, 255, 255, 0, 255, 255, 255, 0, 226, 226, 226, 26, 225, 225, 225, 51, 223, 223, 223, 47, 227, 227, 227, 9, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 227, 227, 227, 9, 228, 228, 228, 47, 225, 225, 225, 51, 225, 225, 225, 25, 255, 255, 255, 0, 255, 255, 255, 0, 231, 231, 231, 41, 225, 225, 225, 51, 225, 225, 225, 51, 225, 225, 225, 17, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 227, 227, 227, 18, 225, 225, 225, 51, 225, 225, 225, 51, 224, 224, 224, 40, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 41, 225, 225, 225, 51, 225, 225, 225, 51, 225, 225, 225, 17, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 227, 227, 227, 18, 225, 225, 225, 51, 225, 225, 225, 51, 224, 224, 224, 40, 255, 255, 255, 0, 255, 255, 255, 0, 226, 226, 226, 26, 225, 225, 225, 51, 223, 223, 223, 47, 255, 255, 255, 8, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 227, 227, 227, 9, 223, 223, 223, 47, 225, 225, 225, 51, 225, 225, 225, 25, 255, 255, 255, 0, 255, 255, 255, 0, 192, 192, 192, 4, 226, 226, 226, 43, 224, 224, 224, 8, 255, 255, 255, 0, 226, 226, 226, 52, 225, 225, 225, 101, 255, 255, 255, 0, 255, 255, 255, 0, 227, 227, 227, 18, 227, 227, 227, 9, 255, 255, 255, 0, 227, 227, 227, 9, 226, 226, 226, 43, 255, 255, 255, 3, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 1, 255, 255, 255, 0, 227, 227, 227, 53, 224, 224, 224, 239, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 1, 225, 225, 225, 51, 223, 223, 223, 47, 227, 227, 227, 9, 255, 255, 255, 0, 255, 255, 255, 2, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 7, 224, 224, 224, 213, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 1, 225, 225, 225, 51, 225, 225, 225, 51, 226, 226, 226, 43, 255, 255, 255, 2, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 232, 232, 232, 11, 224, 224, 224, 113, 224, 224, 224, 188, 255, 255, 255, 0, 255, 255, 255, 1, 229, 229, 229, 39, 225, 225, 225, 25, 255, 255, 255, 3, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0), +"format": "RGBA8", +"height": 16, +"mipmaps": false, +"width": 16 +} + +[sub_resource type="ImageTexture" id="ImageTexture_l0amb"] +image = SubResource("Image_mvvke") + +[sub_resource type="Image" id="Image_tw7gd"] +data = { +"data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 4, 226, 226, 226, 26, 224, 224, 224, 41, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 41, 226, 226, 226, 26, 192, 192, 192, 4, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 2, 226, 226, 226, 43, 225, 225, 225, 51, 225, 225, 225, 51, 255, 255, 255, 0, 255, 255, 255, 0, 225, 225, 225, 51, 225, 225, 225, 51, 226, 226, 226, 43, 255, 255, 255, 1, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 2, 255, 255, 255, 0, 227, 227, 227, 9, 223, 223, 223, 47, 225, 225, 225, 51, 255, 255, 255, 0, 255, 255, 255, 0, 225, 225, 225, 51, 223, 223, 223, 47, 224, 224, 224, 8, 255, 255, 255, 0, 255, 255, 255, 2, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 4, 226, 226, 226, 43, 227, 227, 227, 9, 255, 255, 255, 0, 227, 227, 227, 9, 225, 225, 225, 17, 255, 255, 255, 0, 255, 255, 255, 0, 225, 225, 225, 17, 255, 255, 255, 8, 255, 255, 255, 0, 227, 227, 227, 9, 226, 226, 226, 43, 192, 192, 192, 4, 255, 255, 255, 0, 255, 255, 255, 0, 226, 226, 226, 26, 225, 225, 225, 51, 223, 223, 223, 47, 227, 227, 227, 9, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 227, 227, 227, 9, 228, 228, 228, 47, 225, 225, 225, 51, 225, 225, 225, 25, 255, 255, 255, 0, 255, 255, 255, 0, 231, 231, 231, 41, 225, 225, 225, 51, 225, 225, 225, 51, 225, 225, 225, 17, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 227, 227, 227, 18, 225, 225, 225, 51, 225, 225, 225, 51, 224, 224, 224, 40, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 1, 255, 255, 255, 1, 255, 255, 255, 1, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 202, 224, 224, 224, 255, 224, 224, 224, 255, 225, 225, 225, 85, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 227, 227, 227, 18, 225, 225, 225, 51, 225, 225, 225, 51, 224, 224, 224, 40, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 128, 224, 224, 224, 255, 224, 224, 224, 231, 224, 224, 224, 40, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 227, 227, 227, 9, 223, 223, 223, 47, 225, 225, 225, 51, 225, 225, 225, 25, 255, 255, 255, 0, 255, 255, 255, 0, 225, 225, 225, 17, 224, 224, 224, 212, 229, 229, 229, 39, 255, 255, 255, 0, 227, 227, 227, 9, 227, 227, 227, 18, 255, 255, 255, 0, 255, 255, 255, 0, 227, 227, 227, 18, 227, 227, 227, 9, 255, 255, 255, 0, 227, 227, 227, 9, 226, 226, 226, 43, 255, 255, 255, 3, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 5, 255, 255, 255, 0, 227, 227, 227, 9, 228, 228, 228, 47, 225, 225, 225, 51, 255, 255, 255, 0, 255, 255, 255, 0, 225, 225, 225, 51, 223, 223, 223, 47, 227, 227, 227, 9, 255, 255, 255, 0, 255, 255, 255, 2, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 2, 226, 226, 226, 43, 225, 225, 225, 51, 225, 225, 225, 51, 255, 255, 255, 0, 255, 255, 255, 0, 225, 225, 225, 51, 225, 225, 225, 51, 226, 226, 226, 43, 255, 255, 255, 2, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 192, 192, 192, 4, 225, 225, 225, 25, 230, 230, 230, 40, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 40, 225, 225, 225, 25, 255, 255, 255, 3, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0), +"format": "RGBA8", +"height": 16, +"mipmaps": false, +"width": 16 +} + +[sub_resource type="ImageTexture" id="ImageTexture_nonnc"] +image = SubResource("Image_tw7gd") + +[sub_resource type="Image" id="Image_3q3qx"] +data = { +"data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 4, 226, 226, 226, 26, 224, 224, 224, 41, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 41, 226, 226, 226, 26, 192, 192, 192, 4, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 2, 226, 226, 226, 43, 225, 225, 225, 51, 225, 225, 225, 51, 255, 255, 255, 0, 255, 255, 255, 0, 225, 225, 225, 51, 225, 225, 225, 51, 226, 226, 226, 43, 255, 255, 255, 1, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 8, 255, 255, 255, 0, 227, 227, 227, 9, 223, 223, 223, 47, 225, 225, 225, 51, 255, 255, 255, 0, 255, 255, 255, 0, 225, 225, 225, 51, 223, 223, 223, 47, 224, 224, 224, 8, 255, 255, 255, 0, 255, 255, 255, 2, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 229, 229, 229, 19, 224, 224, 224, 218, 227, 227, 227, 45, 255, 255, 255, 0, 227, 227, 227, 9, 225, 225, 225, 17, 255, 255, 255, 0, 255, 255, 255, 0, 225, 225, 225, 17, 255, 255, 255, 8, 255, 255, 255, 0, 227, 227, 227, 9, 226, 226, 226, 43, 192, 192, 192, 4, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 131, 224, 224, 224, 255, 224, 224, 224, 234, 227, 227, 227, 45, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 227, 227, 227, 9, 228, 228, 228, 47, 225, 225, 225, 51, 225, 225, 225, 25, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 202, 224, 224, 224, 252, 224, 224, 224, 252, 224, 224, 224, 82, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 227, 227, 227, 18, 225, 225, 225, 51, 225, 225, 225, 51, 224, 224, 224, 40, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 41, 225, 225, 225, 51, 225, 225, 225, 51, 225, 225, 225, 17, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 227, 227, 227, 18, 225, 225, 225, 51, 225, 225, 225, 51, 224, 224, 224, 40, 255, 255, 255, 0, 255, 255, 255, 0, 226, 226, 226, 26, 225, 225, 225, 51, 223, 223, 223, 47, 255, 255, 255, 8, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 227, 227, 227, 9, 223, 223, 223, 47, 225, 225, 225, 51, 225, 225, 225, 25, 255, 255, 255, 0, 255, 255, 255, 0, 192, 192, 192, 4, 226, 226, 226, 43, 224, 224, 224, 8, 255, 255, 255, 0, 227, 227, 227, 9, 227, 227, 227, 18, 255, 255, 255, 0, 255, 255, 255, 0, 227, 227, 227, 18, 227, 227, 227, 9, 255, 255, 255, 0, 227, 227, 227, 9, 226, 226, 226, 43, 255, 255, 255, 3, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 1, 255, 255, 255, 0, 227, 227, 227, 9, 228, 228, 228, 47, 225, 225, 225, 51, 255, 255, 255, 0, 255, 255, 255, 0, 225, 225, 225, 51, 223, 223, 223, 47, 227, 227, 227, 9, 255, 255, 255, 0, 255, 255, 255, 2, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 2, 226, 226, 226, 43, 225, 225, 225, 51, 225, 225, 225, 51, 255, 255, 255, 0, 255, 255, 255, 0, 225, 225, 225, 51, 225, 225, 225, 51, 226, 226, 226, 43, 255, 255, 255, 2, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 192, 192, 192, 4, 226, 226, 226, 26, 224, 224, 224, 40, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 40, 225, 225, 225, 25, 255, 255, 255, 3, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0), +"format": "RGBA8", +"height": 16, +"mipmaps": false, +"width": 16 +} + +[sub_resource type="ImageTexture" id="ImageTexture_d2btj"] +image = SubResource("Image_3q3qx") + +[sub_resource type="Image" id="Image_3cynh"] +data = { +"data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 230, 230, 230, 30, 225, 225, 225, 149, 224, 224, 224, 221, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 41, 226, 226, 226, 26, 192, 192, 192, 4, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 7, 224, 224, 224, 214, 224, 224, 224, 255, 224, 224, 224, 253, 255, 255, 255, 0, 255, 255, 255, 0, 225, 225, 225, 51, 225, 225, 225, 51, 226, 226, 226, 43, 255, 255, 255, 1, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 2, 255, 255, 255, 0, 231, 231, 231, 31, 224, 224, 224, 224, 224, 224, 224, 252, 255, 255, 255, 0, 255, 255, 255, 0, 225, 225, 225, 51, 223, 223, 223, 47, 224, 224, 224, 8, 255, 255, 255, 0, 255, 255, 255, 2, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 4, 226, 226, 226, 43, 227, 227, 227, 9, 255, 255, 255, 0, 224, 224, 224, 32, 227, 227, 227, 63, 255, 255, 255, 0, 255, 255, 255, 0, 225, 225, 225, 17, 255, 255, 255, 8, 255, 255, 255, 0, 227, 227, 227, 9, 226, 226, 226, 43, 192, 192, 192, 4, 255, 255, 255, 0, 255, 255, 255, 0, 226, 226, 226, 26, 225, 225, 225, 51, 223, 223, 223, 47, 227, 227, 227, 9, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 227, 227, 227, 9, 228, 228, 228, 47, 225, 225, 225, 51, 225, 225, 225, 25, 255, 255, 255, 0, 255, 255, 255, 0, 231, 231, 231, 41, 225, 225, 225, 51, 225, 225, 225, 51, 225, 225, 225, 17, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 227, 227, 227, 18, 225, 225, 225, 51, 225, 225, 225, 51, 224, 224, 224, 40, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 41, 225, 225, 225, 51, 225, 225, 225, 51, 225, 225, 225, 17, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 227, 227, 227, 18, 225, 225, 225, 51, 225, 225, 225, 51, 224, 224, 224, 40, 255, 255, 255, 0, 255, 255, 255, 0, 226, 226, 226, 26, 225, 225, 225, 51, 223, 223, 223, 47, 255, 255, 255, 8, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 227, 227, 227, 9, 223, 223, 223, 47, 225, 225, 225, 51, 225, 225, 225, 25, 255, 255, 255, 0, 255, 255, 255, 0, 192, 192, 192, 4, 226, 226, 226, 43, 224, 224, 224, 8, 255, 255, 255, 0, 227, 227, 227, 9, 227, 227, 227, 18, 255, 255, 255, 0, 255, 255, 255, 0, 227, 227, 227, 18, 227, 227, 227, 9, 255, 255, 255, 0, 227, 227, 227, 9, 226, 226, 226, 43, 255, 255, 255, 3, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 1, 255, 255, 255, 0, 227, 227, 227, 9, 228, 228, 228, 47, 225, 225, 225, 51, 255, 255, 255, 0, 255, 255, 255, 1, 225, 225, 225, 51, 223, 223, 223, 47, 227, 227, 227, 9, 255, 255, 255, 0, 255, 255, 255, 2, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 2, 226, 226, 226, 43, 225, 225, 225, 51, 225, 225, 225, 51, 255, 255, 255, 0, 255, 255, 255, 1, 225, 225, 225, 51, 225, 225, 225, 51, 226, 226, 226, 43, 255, 255, 255, 2, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 192, 192, 192, 4, 226, 226, 226, 26, 224, 224, 224, 40, 255, 255, 255, 0, 255, 255, 255, 1, 229, 229, 229, 39, 225, 225, 225, 25, 255, 255, 255, 3, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0), +"format": "RGBA8", +"height": 16, +"mipmaps": false, +"width": 16 +} + +[sub_resource type="ImageTexture" id="ImageTexture_1bxo7"] +image = SubResource("Image_3cynh") + +[sub_resource type="AnimatedTexture" id="AnimatedTexture_eylo1"] +frames = 8 +speed_scale = 2.5 +frame_0/texture = SubResource("ImageTexture_nwpuj") +frame_0/duration = 0.2 +frame_1/texture = SubResource("ImageTexture_pdcj5") +frame_1/duration = 0.2 +frame_2/texture = SubResource("ImageTexture_o41n3") +frame_2/duration = 0.2 +frame_3/texture = SubResource("ImageTexture_6oiqe") +frame_3/duration = 0.2 +frame_4/texture = SubResource("ImageTexture_l0amb") +frame_4/duration = 0.2 +frame_5/texture = SubResource("ImageTexture_nonnc") +frame_5/duration = 0.2 +frame_6/texture = SubResource("ImageTexture_d2btj") +frame_6/duration = 0.2 +frame_7/texture = SubResource("ImageTexture_1bxo7") +frame_7/duration = 0.2 + +[sub_resource type="Image" id="Image_5n8ks"] +data = { +"data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 195, 224, 224, 224, 210, 224, 224, 224, 56, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 253, 224, 224, 224, 139, 224, 224, 224, 8, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 225, 225, 225, 215, 224, 224, 224, 56, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 253, 224, 224, 224, 139, 224, 224, 224, 8, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 225, 225, 225, 183, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 225, 225, 225, 182, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 252, 225, 225, 225, 134, 255, 255, 255, 6, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 212, 226, 226, 226, 52, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 252, 225, 225, 225, 134, 255, 255, 255, 6, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 225, 225, 225, 191, 224, 224, 224, 206, 226, 226, 226, 52, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0), +"format": "RGBA8", +"height": 16, +"mipmaps": false, +"width": 16 +} + +[sub_resource type="ImageTexture" id="ImageTexture_dr7yj"] +image = SubResource("Image_5n8ks") + +[sub_resource type="Image" id="Image_63duq"] +data = { +"data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 184, 224, 224, 224, 255, 224, 224, 224, 181, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 184, 224, 224, 224, 202, 228, 228, 228, 37, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 239, 224, 224, 224, 74, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 253, 224, 224, 224, 123, 255, 255, 255, 1, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 173, 234, 234, 234, 12, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 188, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 185, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 168, 230, 230, 230, 10, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 252, 225, 225, 225, 118, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 237, 226, 226, 226, 70, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 181, 224, 224, 224, 255, 224, 224, 224, 180, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 188, 224, 224, 224, 201, 225, 225, 225, 34, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0), +"format": "RGBA8", +"height": 16, +"mipmaps": false, +"width": 16 +} + +[sub_resource type="ImageTexture" id="ImageTexture_oh8cr"] +image = SubResource("Image_63duq") + +[sub_resource type="Image" id="Image_lqrfl"] +data = { +"data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 196, 224, 224, 224, 196, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 24, 226, 226, 226, 60, 226, 226, 226, 60, 224, 224, 224, 255, 224, 224, 224, 255, 226, 226, 226, 60, 226, 226, 226, 60, 233, 233, 233, 23, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 5, 225, 225, 225, 134, 224, 224, 224, 254, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 254, 225, 225, 225, 133, 255, 255, 255, 5, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 225, 225, 225, 67, 224, 224, 224, 231, 224, 224, 224, 230, 224, 224, 224, 66, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 231, 231, 231, 21, 231, 231, 231, 21, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 227, 227, 227, 71, 224, 224, 224, 236, 224, 224, 224, 236, 224, 224, 224, 236, 224, 224, 224, 236, 224, 224, 224, 236, 224, 224, 224, 236, 224, 224, 224, 236, 224, 224, 224, 236, 224, 224, 224, 236, 224, 224, 224, 236, 224, 224, 224, 236, 224, 224, 224, 236, 224, 224, 224, 236, 224, 224, 224, 236, 225, 225, 225, 67, 226, 226, 226, 69, 224, 224, 224, 232, 224, 224, 224, 232, 224, 224, 224, 232, 224, 224, 224, 232, 224, 224, 224, 232, 224, 224, 224, 232, 224, 224, 224, 232, 224, 224, 224, 232, 224, 224, 224, 232, 224, 224, 224, 232, 224, 224, 224, 232, 224, 224, 224, 232, 224, 224, 224, 232, 224, 224, 224, 232, 224, 224, 224, 66, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 231, 231, 231, 21, 230, 230, 230, 20, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 65, 224, 224, 224, 229, 224, 224, 224, 229, 224, 224, 224, 64, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 4, 224, 224, 224, 132, 224, 224, 224, 253, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 253, 224, 224, 224, 130, 255, 255, 255, 3, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 24, 224, 224, 224, 64, 224, 224, 224, 64, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 64, 224, 224, 224, 64, 233, 233, 233, 23, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 200, 224, 224, 224, 200, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0), +"format": "RGBA8", +"height": 16, +"mipmaps": false, +"width": 16 +} + +[sub_resource type="ImageTexture" id="ImageTexture_x1ivs"] +image = SubResource("Image_lqrfl") + +[sub_resource type="Image" id="Image_fec2x"] +data = { +"data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 237, 237, 237, 14, 224, 224, 224, 165, 224, 224, 224, 165, 237, 237, 237, 14, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 225, 225, 225, 58, 225, 225, 225, 223, 224, 224, 224, 255, 224, 224, 224, 255, 225, 225, 225, 223, 225, 225, 225, 58, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 233, 233, 233, 23, 225, 225, 225, 124, 224, 224, 224, 128, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 128, 225, 225, 225, 124, 233, 233, 233, 23, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 233, 233, 233, 23, 225, 225, 225, 125, 224, 224, 224, 128, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 128, 225, 225, 225, 125, 233, 233, 233, 23, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 225, 225, 225, 59, 224, 224, 224, 224, 224, 224, 224, 255, 224, 224, 224, 255, 225, 225, 225, 223, 225, 225, 225, 59, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 238, 238, 238, 15, 224, 224, 224, 165, 224, 224, 224, 165, 238, 238, 238, 15, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0), +"format": "RGBA8", +"height": 16, +"mipmaps": false, +"width": 16 +} + +[sub_resource type="ImageTexture" id="ImageTexture_i13wr"] +image = SubResource("Image_fec2x") + +[node name="MainPanel" type="VSplitContainer"] +use_parent_material = true +clip_contents = true +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_right = -924.0 +grow_horizontal = 2 +grow_vertical = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 +split_offset = 200 +script = ExtResource("1") + +[node name="Panel" type="PanelContainer" parent="."] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 + +[node name="Tree" type="Tree" parent="Panel"] +use_parent_material = true +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 +theme_override_constants/icon_max_width = 16 +columns = 2 +allow_rmb_select = true +hide_root = true +select_mode = 1 + +[node name="discover_hint" type="HBoxContainer" parent="Panel"] +unique_name_in_owner = true +visible = false +use_parent_material = true +layout_mode = 2 +alignment = 1 + +[node name="spinner" type="Button" parent="Panel/discover_hint"] +unique_name_in_owner = true +clip_contents = true +custom_minimum_size = Vector2(64, 64) +layout_mode = 2 +size_flags_stretch_ratio = 1.94 +disabled = true +button_mask = 0 +text = "Discover Tests" +icon = SubResource("AnimatedTexture_eylo1") +flat = true +alignment = 2 + +[node name="report" type="PanelContainer" parent="."] +clip_contents = true +layout_mode = 2 +size_flags_horizontal = 11 +size_flags_vertical = 11 + +[node name="report_template" type="RichTextLabel" parent="report"] +use_parent_material = true +clip_contents = false +layout_mode = 2 +size_flags_horizontal = 3 +auto_translate = false +localize_numeral_system = false +focus_mode = 2 +bbcode_enabled = true +fit_content = true +selection_enabled = true + +[node name="ScrollContainer" type="ScrollContainer" parent="report"] +use_parent_material = true +custom_minimum_size = Vector2(0, 80) +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 11 + +[node name="list" type="VBoxContainer" parent="report/ScrollContainer"] +clip_contents = true +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 + +[node name="contextMenu" type="PopupMenu" parent="."] +size = Vector2i(133, 120) +auto_translate = false +item_count = 5 +item_0/text = "Run" +item_0/icon = SubResource("ImageTexture_dr7yj") +item_0/id = 0 +item_1/text = "Debug" +item_1/icon = SubResource("ImageTexture_oh8cr") +item_1/id = 1 +item_2/text = "" +item_2/id = 2 +item_2/separator = true +item_3/text = "Collapse All" +item_3/icon = SubResource("ImageTexture_x1ivs") +item_3/id = 3 +item_4/text = "Expand All" +item_4/icon = SubResource("ImageTexture_i13wr") +item_4/id = 4 + +[connection signal="item_activated" from="Panel/Tree" to="." method="_on_Tree_item_activated"] +[connection signal="item_mouse_selected" from="Panel/Tree" to="." method="_on_tree_item_mouse_selected"] +[connection signal="item_selected" from="Panel/Tree" to="." method="_on_Tree_item_selected"] +[connection signal="index_pressed" from="contextMenu" to="." method="_on_context_m_index_pressed"] diff --git a/addons/gdUnit4/src/ui/settings/GdUnitInputCapture.gd b/addons/gdUnit4/src/ui/settings/GdUnitInputCapture.gd new file mode 100644 index 0000000..473de98 --- /dev/null +++ b/addons/gdUnit4/src/ui/settings/GdUnitInputCapture.gd @@ -0,0 +1,51 @@ +@tool +class_name GdUnitInputCapture +extends Control + +signal input_completed(input_event: InputEventKey) + + +var _tween: Tween +var _input_event: InputEventKey + + +func _ready() -> void: + reset() + _tween = create_tween() + _tween.set_loops(-1) + _tween.tween_property(self, "modulate", Color(0, 0, 0, .1), 1.0).from_current().set_trans(Tween.TRANS_QUAD).set_ease(Tween.EASE_IN) + + +func reset() -> void: + _input_event = InputEventKey.new() + + +func _input(event: InputEvent) -> void: + if not is_visible_in_tree(): + return + if event is InputEventKey and event.is_pressed() and not event.is_echo(): + match event.keycode: + KEY_CTRL: + _input_event.ctrl_pressed = true + KEY_SHIFT: + _input_event.shift_pressed = true + KEY_ALT: + _input_event.alt_pressed = true + KEY_META: + _input_event.meta_pressed = true + _: + _input_event.keycode = event.keycode + _apply_input_modifiers(event) + accept_event() + + if event is InputEventKey and not event.is_pressed(): + input_completed.emit(_input_event) + hide() + + +func _apply_input_modifiers(event: InputEvent) -> void: + if event is InputEventWithModifiers: + _input_event.meta_pressed = event.meta_pressed or _input_event.meta_pressed + _input_event.alt_pressed = event.alt_pressed or _input_event.alt_pressed + _input_event.shift_pressed = event.shift_pressed or _input_event.shift_pressed + _input_event.ctrl_pressed = event.ctrl_pressed or _input_event.ctrl_pressed diff --git a/addons/gdUnit4/src/ui/settings/GdUnitInputCapture.tscn b/addons/gdUnit4/src/ui/settings/GdUnitInputCapture.tscn new file mode 100644 index 0000000..8081a66 --- /dev/null +++ b/addons/gdUnit4/src/ui/settings/GdUnitInputCapture.tscn @@ -0,0 +1,33 @@ +[gd_scene load_steps=2 format=3] + +[ext_resource type="Script" path="res://addons/gdUnit4/src/ui/settings/GdUnitInputCapture.gd" id="1_gki1u"] + +[node name="GdUnitInputMapper" type="Control"] +top_level = true +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 +script = ExtResource("1_gki1u") + +[node name="Label" type="Label" parent="."] +unique_name_in_owner = true +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -60.5 +offset_top = -19.5 +offset_right = 60.5 +offset_bottom = 19.5 +grow_horizontal = 2 +grow_vertical = 2 +theme_override_colors/font_color = Color(1, 1, 1, 1) +theme_override_font_sizes/font_size = 26 +text = "Press keys for shortcut" diff --git a/addons/gdUnit4/src/ui/settings/GdUnitSettingsDialog.gd b/addons/gdUnit4/src/ui/settings/GdUnitSettingsDialog.gd new file mode 100644 index 0000000..57219f2 --- /dev/null +++ b/addons/gdUnit4/src/ui/settings/GdUnitSettingsDialog.gd @@ -0,0 +1,288 @@ +@tool +extends Window + +const EAXAMPLE_URL := "https://github.com/MikeSchulze/gdUnit4-examples/archive/refs/heads/master.zip" +const GdUnitTools := preload ("res://addons/gdUnit4/src/core/GdUnitTools.gd") +const GdUnitUpdateClient = preload ("res://addons/gdUnit4/src/update/GdUnitUpdateClient.gd") + +@onready var _update_client: GdUnitUpdateClient = $GdUnitUpdateClient +@onready var _version_label: RichTextLabel = %version +@onready var _btn_install: Button = %btn_install_examples +@onready var _progress_bar: ProgressBar = %ProgressBar +@onready var _progress_text: Label = %progress_lbl +@onready var _properties_template: Node = $property_template +@onready var _properties_common: Node = % "common-content" +@onready var _properties_ui: Node = % "ui-content" +@onready var _properties_shortcuts: Node = % "shortcut-content" +@onready var _properties_report: Node = % "report-content" +@onready var _input_capture: GdUnitInputCapture = %GdUnitInputCapture +@onready var _property_error: Window = % "propertyError" + +var _font_size: float + + +func _ready() -> void: + # initialize for testing + if not Engine.is_editor_hint(): + GdUnitSettings.setup() + GdUnit4Version.init_version_label(_version_label) + _font_size = GdUnitFonts.init_fonts(_version_label) + about_to_popup.connect(_do_setup_properties) + + +# do setup the dialog with given settings +func _do_setup_properties() -> void: + setup_properties(_properties_common, GdUnitSettings.COMMON_SETTINGS) + setup_properties(_properties_ui, GdUnitSettings.UI_SETTINGS) + setup_properties(_properties_report, GdUnitSettings.REPORT_SETTINGS) + setup_properties(_properties_shortcuts, GdUnitSettings.SHORTCUT_SETTINGS) + + +func _sort_by_key(left: GdUnitProperty, right: GdUnitProperty) -> bool: + return left.name() < right.name() + + +func setup_properties(properties_parent: Node, property_category: String) -> void: + # Do remove first potential previous added properties (could be happened when the dlg is opened at twice) + for child in properties_parent.get_children(): + properties_parent.remove_child(child) + + var category_properties := GdUnitSettings.list_settings(property_category) + # sort by key + category_properties.sort_custom(_sort_by_key) + var theme_ := Theme.new() + theme_.set_constant("h_separation", "GridContainer", 12) + var last_category := "!" + var min_size_overall := 0.0 + for p in category_properties: + var min_size_ := 0.0 + var grid := GridContainer.new() + grid.columns = 4 + grid.theme = theme_ + var property: GdUnitProperty = p + var current_category := property.category() + if current_category != last_category: + var sub_category: Node = _properties_template.get_child(3).duplicate() + sub_category.get_child(0).text = current_category.capitalize() + sub_category.custom_minimum_size.y = _font_size + 16 + properties_parent.add_child(sub_category) + last_category = current_category + # property name + var label: Label = _properties_template.get_child(0).duplicate() + label.text = _to_human_readable(property.name()) + label.custom_minimum_size = Vector2(_font_size * 20, 0) + grid.add_child(label) + min_size_ += label.size.x + + # property reset btn + var reset_btn: Button = _properties_template.get_child(1).duplicate() + reset_btn.icon = _get_btn_icon("Reload") + reset_btn.disabled = property.value() == property.default() + grid.add_child(reset_btn) + min_size_ += reset_btn.size.x + + # property type specific input element + var input: Node = _create_input_element(property, reset_btn) + input.custom_minimum_size = Vector2(_font_size * 15, 0) + grid.add_child(input) + min_size_ += input.size.x + reset_btn.pressed.connect(_on_btn_property_reset_pressed.bind(property, input, reset_btn)) + # property help text + var info: Node = _properties_template.get_child(2).duplicate() + info.text = property.help() + grid.add_child(info) + min_size_ += info.text.length() * _font_size + if min_size_overall < min_size_: + min_size_overall = min_size_ + properties_parent.add_child(grid) + properties_parent.custom_minimum_size.x = min_size_overall + + +func _create_input_element(property: GdUnitProperty, reset_btn: Button) -> Node: + if property.is_selectable_value(): + var options := OptionButton.new() + options.alignment = HORIZONTAL_ALIGNMENT_CENTER + for value in property.value_set(): + options.add_item(value) + options.item_selected.connect(_on_option_selected.bind(property, reset_btn)) + options.select(property.value()) + return options + if property.type() == TYPE_BOOL: + var check_btn := CheckButton.new() + check_btn.toggled.connect(_on_property_text_changed.bind(property, reset_btn)) + check_btn.button_pressed = property.value() + return check_btn + if property.type() in [TYPE_INT, TYPE_STRING]: + var input := LineEdit.new() + input.text_changed.connect(_on_property_text_changed.bind(property, reset_btn)) + input.set_context_menu_enabled(false) + input.set_horizontal_alignment(HORIZONTAL_ALIGNMENT_CENTER) + input.set_expand_to_text_length_enabled(true) + input.text = str(property.value()) + return input + if property.type() == TYPE_PACKED_INT32_ARRAY: + var key_input_button := Button.new() + key_input_button.text = to_shortcut(property.value()) + key_input_button.pressed.connect(_on_shortcut_change.bind(key_input_button, property, reset_btn)) + return key_input_button + return Control.new() + + +func to_shortcut(keys: PackedInt32Array) -> String: + var input_event := InputEventKey.new() + for key in keys: + match key: + KEY_CTRL: input_event.ctrl_pressed = true + KEY_SHIFT: input_event.shift_pressed = true + KEY_ALT: input_event.alt_pressed = true + KEY_META: input_event.meta_pressed = true + _: + input_event.keycode = key as Key + return input_event.as_text() + + +func to_keys(input_event: InputEventKey) -> PackedInt32Array: + var keys := PackedInt32Array() + if input_event.ctrl_pressed: + keys.append(KEY_CTRL) + if input_event.shift_pressed: + keys.append(KEY_SHIFT) + if input_event.alt_pressed: + keys.append(KEY_ALT) + if input_event.meta_pressed: + keys.append(KEY_META) + keys.append(input_event.keycode) + return keys + + +func _to_human_readable(value: String) -> String: + return value.split("/")[-1].capitalize() + + +func _get_btn_icon(p_name: String) -> Texture2D: + if not Engine.is_editor_hint(): + var placeholder := PlaceholderTexture2D.new() + placeholder.size = Vector2(8, 8) + return placeholder + return GdUnitUiTools.get_icon(p_name) + + +func _install_examples() -> void: + _init_progress(5) + update_progress("Downloading examples") + await get_tree().process_frame + var tmp_path := GdUnitFileAccess.create_temp_dir("download") + var zip_file := tmp_path + "/examples.zip" + var response: GdUnitUpdateClient.HttpResponse = await _update_client.request_zip_package(EAXAMPLE_URL, zip_file) + if response.code() != 200: + push_warning("Examples cannot be retrieved from GitHub! \n Error code: %d : %s" % [response.code(), response.response()]) + update_progress("Install examples failed! Try it later again.") + await get_tree().create_timer(3).timeout + stop_progress() + return + # extract zip to tmp + update_progress("Install examples into project") + var result := GdUnitFileAccess.extract_zip(zip_file, "res://gdUnit4-examples/") + if result.is_error(): + update_progress("Install examples failed! %s" % result.error_message()) + await get_tree().create_timer(3).timeout + stop_progress() + return + update_progress("Refresh project") + await rescan(true) + update_progress("Examples successfully installed") + await get_tree().create_timer(3).timeout + stop_progress() + + +func rescan(update_scripts:=false) -> void: + await get_tree().idle_frame + var fs := EditorInterface.get_resource_filesystem() + fs.scan_sources() + while fs.is_scanning(): + await get_tree().create_timer(1).timeout + if update_scripts: + EditorInterface.get_resource_filesystem().update_script_classes() + + +func _on_btn_report_bug_pressed() -> void: + OS.shell_open("https://github.com/MikeSchulze/gdUnit4/issues/new?assignees=MikeSchulze&labels=bug&projects=projects%2F5&template=bug_report.yml&title=GD-XXX%3A+Describe+the+issue+briefly") + + +func _on_btn_request_feature_pressed() -> void: + OS.shell_open("https://github.com/MikeSchulze/gdUnit4/issues/new?assignees=MikeSchulze&labels=enhancement&projects=&template=feature_request.md&title=") + + +func _on_btn_install_examples_pressed() -> void: + _btn_install.disabled = true + await _install_examples() + _btn_install.disabled = false + + +func _on_btn_close_pressed() -> void: + hide() + + +func _on_btn_property_reset_pressed(property: GdUnitProperty, input: Node, reset_btn: Button) -> void: + if input is CheckButton: + input.button_pressed = property.default() + elif input is LineEdit: + input.text = str(property.default()) + # we have to update manually for text input fields because of no change event is emited + _on_property_text_changed(property.default(), property, reset_btn) + elif input is OptionButton: + input.select(0) + _on_option_selected(0, property, reset_btn) + elif input is Button: + input.text = to_shortcut(property.default()) + _on_property_text_changed(property.default(), property, reset_btn) + + +func _on_property_text_changed(new_value: Variant, property: GdUnitProperty, reset_btn: Button) -> void: + property.set_value(new_value) + reset_btn.disabled = property.value() == property.default() + var error: Variant = GdUnitSettings.update_property(property) + if error: + var label: Label = _property_error.get_child(0) as Label + label.set_text(error) + var control := gui_get_focus_owner() + _property_error.show() + if control != null: + _property_error.position = control.global_position + Vector2(self.position) + Vector2(40, 40) + + +func _on_option_selected(index: int, property: GdUnitProperty, reset_btn: Button) -> void: + property.set_value(index) + reset_btn.disabled = property.value() == property.default() + GdUnitSettings.update_property(property) + + +func _on_shortcut_change(input_button: Button, property: GdUnitProperty, reset_btn: Button) -> void: + _input_capture.set_custom_minimum_size(_properties_shortcuts.get_size()) + _input_capture.visible = true + _input_capture.show() + set_process_input(false) + _input_capture.reset() + var input_event: InputEventKey = await _input_capture.input_completed + input_button.text = input_event.as_text() + _on_property_text_changed(to_keys(input_event), property, reset_btn) + set_process_input(true) + + +func _init_progress(max_value: int) -> void: + _progress_bar.visible = true + _progress_bar.max_value = max_value + _progress_bar.value = 0 + + +func _progress() -> void: + _progress_bar.value += 1 + + +func stop_progress() -> void: + _progress_bar.visible = false + + +func update_progress(message: String) -> void: + _progress_text.text = message + _progress_bar.value += 1 diff --git a/addons/gdUnit4/src/ui/settings/GdUnitSettingsDialog.tscn b/addons/gdUnit4/src/ui/settings/GdUnitSettingsDialog.tscn new file mode 100644 index 0000000..f682231 --- /dev/null +++ b/addons/gdUnit4/src/ui/settings/GdUnitSettingsDialog.tscn @@ -0,0 +1,645 @@ +[gd_scene load_steps=13 format=3 uid="uid://dwgat6j2u77g4"] + +[ext_resource type="Script" path="res://addons/gdUnit4/src/ui/settings/GdUnitSettingsDialog.gd" id="2"] +[ext_resource type="Texture2D" uid="uid://bkh022wwqq7s3" path="res://addons/gdUnit4/src/ui/settings/logo.png" id="3_isfyl"] +[ext_resource type="PackedScene" uid="uid://dte0m2endcgtu" path="res://addons/gdUnit4/src/ui/templates/TestSuiteTemplate.tscn" id="4"] +[ext_resource type="PackedScene" path="res://addons/gdUnit4/src/ui/settings/GdUnitInputCapture.tscn" id="5_xu3j8"] +[ext_resource type="Script" path="res://addons/gdUnit4/src/update/GdUnitUpdateClient.gd" id="8_2ggr0"] + +[sub_resource type="Image" id="Image_pi2b6"] +data = { +"data": PackedByteArray(255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 3, 255, 146, 255, 245, 255, 239, 255, 139, 255, 253, 255, 52, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 20, 255, 255, 255, 48, 255, 0, 255, 0, 255, 0, 255, 0, 255, 8, 255, 255, 255, 44, 255, 0, 255, 0, 255, 0, 255, 200, 255, 112, 255, 0, 255, 0, 255, 0, 255, 0, 255, 208, 255, 106, 255, 173, 255, 247, 255, 227, 255, 85, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 42, 255, 242, 255, 39, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 24, 255, 255, 255, 48, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 86, 255, 255, 255, 80, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 5, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 34, 255, 184, 255, 249, 255, 234, 255, 137, 255, 3, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 1, 255, 127, 255, 235, 255, 249, 255, 189, 255, 33, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 148, 255, 176, 255, 0, 255, 0, 255, 0, 255, 0, 255, 72, 255, 236, 255, 0, 255, 0, 255, 0, 255, 8, 255, 255, 255, 48, 255, 0, 255, 0, 255, 0, 255, 0, 255, 144, 255, 155, 255, 133, 255, 239, 255, 240, 255, 135, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 100, 255, 223, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 4, 255, 210, 255, 208, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 32, 255, 246, 255, 144, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 1, 255, 4, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 4, 255, 1, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 122, 255, 228, 255, 48, 255, 13, 255, 145, 255, 255, 255, 52, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 20, 255, 255, 255, 48, 255, 0, 255, 0, 255, 0, 255, 0, 255, 8, 255, 255, 255, 44, 255, 0, 255, 0, 255, 0, 255, 201, 255, 112, 255, 0, 255, 0, 255, 0, 255, 0, 255, 208, 255, 232, 255, 92, 255, 42, 255, 146, 255, 245, 255, 14, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 15, 255, 126, 255, 13, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 24, 255, 255, 255, 48, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 13, 255, 226, 255, 254, 255, 80, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 112, 255, 252, 255, 61, 255, 0, 255, 0, 255, 0, 255, 0, 255, 4, 255, 216, 255, 169, 255, 39, 255, 66, 255, 233, 255, 108, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 102, 255, 230, 255, 65, 255, 36, 255, 165, 255, 209, 255, 2, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 148, 255, 176, 255, 0, 255, 0, 255, 0, 255, 0, 255, 72, 255, 236, 255, 0, 255, 0, 255, 0, 255, 9, 255, 255, 255, 48, 255, 0, 255, 0, 255, 0, 255, 0, 255, 144, 255, 245, 255, 130, 255, 42, 255, 97, 255, 254, 255, 67, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 44, 255, 110, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 112, 255, 253, 255, 208, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 176, 255, 253, 255, 144, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 176, 255, 236, 255, 13, 255, 0, 255, 0, 255, 0, 255, 0, 255, 9, 255, 231, 255, 185, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 222, 255, 109, 255, 0, 255, 0, 255, 17, 255, 255, 255, 52, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 20, 255, 255, 255, 48, 255, 0, 255, 0, 255, 0, 255, 0, 255, 8, 255, 255, 255, 44, 255, 0, 255, 0, 255, 0, 255, 204, 255, 112, 255, 0, 255, 0, 255, 0, 255, 0, 255, 208, 255, 127, 255, 0, 255, 0, 255, 11, 255, 255, 255, 61, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 8, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 139, 255, 169, 255, 244, 255, 80, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 107, 255, 245, 255, 58, 255, 0, 255, 0, 255, 0, 255, 0, 255, 55, 255, 255, 255, 21, 255, 0, 255, 0, 255, 137, 255, 187, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 204, 255, 117, 255, 0, 255, 0, 255, 14, 255, 250, 255, 57, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 148, 255, 176, 255, 0, 255, 0, 255, 0, 255, 0, 255, 72, 255, 236, 255, 0, 255, 0, 255, 0, 255, 12, 255, 255, 255, 48, 255, 0, 255, 0, 255, 0, 255, 0, 255, 144, 255, 191, 255, 0, 255, 0, 255, 0, 255, 203, 255, 125, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 25, 255, 238, 255, 161, 255, 208, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 75, 255, 224, 255, 189, 255, 144, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 169, 255, 228, 255, 13, 255, 0, 255, 0, 255, 0, 255, 0, 255, 8, 255, 225, 255, 177, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 6, 255, 255, 255, 63, 255, 0, 255, 0, 255, 16, 255, 255, 255, 52, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 3, 255, 144, 255, 245, 255, 235, 255, 135, 255, 255, 255, 48, 255, 0, 255, 0, 255, 0, 255, 0, 255, 10, 255, 255, 255, 44, 255, 0, 255, 0, 255, 0, 255, 204, 255, 112, 255, 0, 255, 0, 255, 0, 255, 0, 255, 208, 255, 116, 255, 0, 255, 0, 255, 0, 255, 252, 255, 72, 255, 0, 255, 0, 255, 0, 255, 0, 255, 156, 255, 255, 255, 255, 255, 255, 255, 44, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 12, 255, 35, 255, 255, 255, 58, 255, 12, 255, 12, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 44, 255, 238, 255, 29, 255, 244, 255, 80, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 3, 255, 12, 255, 0, 255, 0, 255, 0, 255, 133, 255, 193, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 248, 255, 74, 255, 0, 255, 0, 255, 55, 255, 246, 255, 100, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 53, 255, 212, 255, 251, 255, 195, 255, 179, 255, 176, 255, 0, 255, 0, 255, 0, 255, 0, 255, 74, 255, 236, 255, 0, 255, 0, 255, 0, 255, 12, 255, 255, 255, 48, 255, 0, 255, 0, 255, 0, 255, 0, 255, 144, 255, 180, 255, 0, 255, 0, 255, 0, 255, 188, 255, 136, 255, 0, 255, 0, 255, 0, 255, 0, 255, 220, 255, 255, 255, 255, 255, 236, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 167, 255, 144, 255, 116, 255, 208, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 9, 255, 222, 255, 80, 255, 180, 255, 144, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 6, 255, 255, 255, 65, 255, 0, 255, 0, 255, 16, 255, 255, 255, 52, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 119, 255, 240, 255, 83, 255, 48, 255, 171, 255, 255, 255, 48, 255, 0, 255, 0, 255, 0, 255, 0, 255, 12, 255, 255, 255, 48, 255, 0, 255, 0, 255, 0, 255, 204, 255, 116, 255, 0, 255, 0, 255, 0, 255, 0, 255, 208, 255, 116, 255, 0, 255, 0, 255, 0, 255, 252, 255, 72, 255, 0, 255, 0, 255, 0, 255, 0, 255, 27, 255, 44, 255, 64, 255, 255, 255, 44, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 24, 255, 255, 255, 48, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 1, 255, 194, 255, 118, 255, 0, 255, 244, 255, 80, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 44, 255, 229, 255, 100, 255, 0, 255, 0, 255, 0, 255, 0, 255, 4, 255, 255, 255, 68, 255, 0, 255, 92, 255, 237, 255, 241, 255, 112, 255, 0, 255, 0, 255, 0, 255, 0, 255, 13, 255, 234, 255, 167, 255, 48, 255, 85, 255, 242, 255, 176, 255, 0, 255, 0, 255, 0, 255, 0, 255, 76, 255, 240, 255, 0, 255, 0, 255, 0, 255, 12, 255, 255, 255, 52, 255, 0, 255, 0, 255, 0, 255, 0, 255, 144, 255, 180, 255, 0, 255, 0, 255, 0, 255, 188, 255, 136, 255, 0, 255, 0, 255, 0, 255, 0, 255, 38, 255, 44, 255, 117, 255, 236, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 67, 255, 231, 255, 15, 255, 116, 255, 208, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 131, 255, 182, 255, 0, 255, 180, 255, 144, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 218, 255, 121, 255, 0, 255, 0, 255, 22, 255, 255, 255, 52, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 219, 255, 119, 255, 0, 255, 0, 255, 24, 255, 255, 255, 48, 255, 0, 255, 0, 255, 0, 255, 0, 255, 12, 255, 255, 255, 48, 255, 0, 255, 0, 255, 0, 255, 206, 255, 116, 255, 0, 255, 0, 255, 0, 255, 0, 255, 208, 255, 116, 255, 0, 255, 0, 255, 0, 255, 252, 255, 72, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 24, 255, 255, 255, 44, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 24, 255, 255, 255, 48, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 94, 255, 214, 255, 5, 255, 0, 255, 244, 255, 80, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 80, 255, 245, 255, 255, 255, 179, 255, 1, 255, 0, 255, 0, 255, 0, 255, 0, 255, 4, 255, 255, 255, 70, 255, 135, 255, 224, 255, 49, 255, 212, 255, 112, 255, 0, 255, 0, 255, 0, 255, 0, 255, 91, 255, 239, 255, 8, 255, 0, 255, 0, 255, 152, 255, 176, 255, 0, 255, 0, 255, 0, 255, 0, 255, 76, 255, 240, 255, 0, 255, 0, 255, 0, 255, 14, 255, 255, 255, 52, 255, 0, 255, 0, 255, 0, 255, 0, 255, 144, 255, 180, 255, 0, 255, 0, 255, 0, 255, 188, 255, 136, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 88, 255, 236, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 6, 255, 216, 255, 91, 255, 0, 255, 116, 255, 208, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 37, 255, 241, 255, 35, 255, 0, 255, 180, 255, 144, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 117, 255, 240, 255, 82, 255, 48, 255, 174, 255, 255, 255, 52, 255, 0, 255, 0, 255, 0, 255, 0, 255, 6, 255, 255, 255, 64, 255, 0, 255, 0, 255, 20, 255, 255, 255, 48, 255, 0, 255, 0, 255, 0, 255, 0, 255, 12, 255, 255, 255, 48, 255, 0, 255, 0, 255, 0, 255, 208, 255, 116, 255, 0, 255, 0, 255, 0, 255, 0, 255, 208, 255, 116, 255, 0, 255, 0, 255, 0, 255, 252, 255, 72, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 24, 255, 255, 255, 44, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 24, 255, 255, 255, 48, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 16, 255, 232, 255, 65, 255, 0, 255, 0, 255, 244, 255, 80, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 12, 255, 37, 255, 77, 255, 226, 255, 131, 255, 0, 255, 0, 255, 0, 255, 0, 255, 4, 255, 255, 255, 219, 255, 196, 255, 23, 255, 0, 255, 212, 255, 112, 255, 0, 255, 0, 255, 0, 255, 0, 255, 133, 255, 192, 255, 0, 255, 0, 255, 0, 255, 148, 255, 176, 255, 0, 255, 0, 255, 0, 255, 0, 255, 76, 255, 240, 255, 0, 255, 0, 255, 0, 255, 16, 255, 255, 255, 52, 255, 0, 255, 0, 255, 0, 255, 0, 255, 144, 255, 180, 255, 0, 255, 0, 255, 0, 255, 188, 255, 136, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 88, 255, 236, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 121, 255, 191, 255, 1, 255, 0, 255, 116, 255, 208, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 185, 255, 128, 255, 0, 255, 0, 255, 180, 255, 144, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 3, 255, 144, 255, 245, 255, 238, 255, 135, 255, 255, 255, 51, 255, 0, 255, 0, 255, 0, 255, 0, 255, 6, 255, 255, 255, 64, 255, 0, 255, 0, 255, 20, 255, 255, 255, 48, 255, 0, 255, 0, 255, 0, 255, 0, 255, 8, 255, 255, 255, 52, 255, 0, 255, 0, 255, 0, 255, 212, 255, 111, 255, 0, 255, 0, 255, 0, 255, 0, 255, 208, 255, 116, 255, 0, 255, 0, 255, 0, 255, 252, 255, 72, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 24, 255, 255, 255, 44, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 20, 255, 255, 255, 54, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 115, 255, 255, 255, 244, 255, 244, 255, 244, 255, 255, 255, 248, 255, 172, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 101, 255, 231, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 249, 255, 166, 255, 6, 255, 0, 255, 0, 255, 218, 255, 101, 255, 0, 255, 0, 255, 0, 255, 0, 255, 133, 255, 192, 255, 0, 255, 0, 255, 0, 255, 148, 255, 176, 255, 0, 255, 0, 255, 0, 255, 0, 255, 72, 255, 244, 255, 0, 255, 0, 255, 0, 255, 20, 255, 255, 255, 47, 255, 0, 255, 0, 255, 0, 255, 0, 255, 144, 255, 180, 255, 0, 255, 0, 255, 0, 255, 188, 255, 136, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 88, 255, 236, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 243, 255, 249, 255, 244, 255, 244, 255, 249, 255, 254, 255, 244, 255, 50, 255, 0, 255, 0, 255, 0, 255, 0, 255, 51, 255, 255, 255, 246, 255, 244, 255, 244, 255, 252, 255, 251, 255, 233, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 4, 255, 3, 255, 0, 255, 0, 255, 45, 255, 255, 255, 29, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 218, 255, 118, 255, 0, 255, 0, 255, 24, 255, 255, 255, 48, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 222, 255, 108, 255, 0, 255, 0, 255, 16, 255, 248, 255, 69, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 24, 255, 255, 255, 44, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 1, 255, 229, 255, 161, 255, 41, 255, 64, 255, 14, 255, 0, 255, 0, 255, 0, 255, 0, 255, 17, 255, 36, 255, 36, 255, 36, 255, 36, 255, 246, 255, 105, 255, 25, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 69, 255, 210, 255, 3, 255, 0, 255, 0, 255, 98, 255, 229, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 206, 255, 117, 255, 0, 255, 0, 255, 12, 255, 249, 255, 58, 255, 0, 255, 0, 255, 0, 255, 0, 255, 90, 255, 238, 255, 8, 255, 0, 255, 0, 255, 152, 255, 176, 255, 0, 255, 0, 255, 0, 255, 0, 255, 31, 255, 255, 255, 44, 255, 0, 255, 0, 255, 72, 255, 249, 255, 12, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 88, 255, 236, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 35, 255, 36, 255, 36, 255, 36, 255, 136, 255, 215, 255, 36, 255, 7, 255, 0, 255, 0, 255, 0, 255, 0, 255, 8, 255, 36, 255, 36, 255, 36, 255, 36, 255, 191, 255, 160, 255, 34, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 118, 255, 168, 255, 42, 255, 45, 255, 192, 255, 194, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 117, 255, 238, 255, 81, 255, 48, 255, 172, 255, 255, 255, 48, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 109, 255, 236, 255, 82, 255, 50, 255, 180, 255, 205, 255, 2, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 24, 255, 40, 255, 60, 255, 255, 255, 77, 255, 40, 255, 23, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 70, 255, 224, 255, 252, 255, 219, 255, 40, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 244, 255, 80, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 18, 255, 239, 255, 146, 255, 34, 255, 55, 255, 215, 255, 144, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 104, 255, 230, 255, 62, 255, 32, 255, 161, 255, 212, 255, 2, 255, 0, 255, 0, 255, 0, 255, 0, 255, 13, 255, 232, 255, 165, 255, 46, 255, 85, 255, 243, 255, 176, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 173, 255, 205, 255, 59, 255, 65, 255, 219, 255, 143, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 34, 255, 40, 255, 114, 255, 239, 255, 40, 255, 40, 255, 13, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 116, 255, 208, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 180, 255, 144, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 17, 255, 156, 255, 239, 255, 245, 255, 175, 255, 25, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 3, 255, 142, 255, 245, 255, 235, 255, 120, 255, 255, 255, 48, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 1, 255, 120, 255, 233, 255, 248, 255, 177, 255, 25, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 156, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 148, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 244, 255, 80, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 53, 255, 196, 255, 249, 255, 235, 255, 146, 255, 7, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 1, 255, 125, 255, 234, 255, 251, 255, 190, 255, 35, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 52, 255, 211, 255, 251, 255, 195, 255, 163, 255, 176, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 14, 255, 159, 255, 245, 255, 239, 255, 142, 255, 5, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 220, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 84, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 116, 255, 208, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 180, 255, 144, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0), +"format": "LumAlpha8", +"height": 256, +"mipmaps": false, +"width": 256 +} + +[sub_resource type="Image" id="Image_xbauv"] +data = { +"data": PackedByteArray(255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 3, 255, 146, 255, 245, 255, 239, 255, 139, 255, 253, 255, 52, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 20, 255, 255, 255, 48, 255, 0, 255, 0, 255, 0, 255, 0, 255, 8, 255, 255, 255, 44, 255, 0, 255, 0, 255, 0, 255, 200, 255, 112, 255, 0, 255, 0, 255, 0, 255, 0, 255, 208, 255, 106, 255, 173, 255, 247, 255, 227, 255, 85, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 42, 255, 242, 255, 39, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 24, 255, 255, 255, 48, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 86, 255, 255, 255, 80, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 5, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 34, 255, 184, 255, 249, 255, 234, 255, 137, 255, 3, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 1, 255, 127, 255, 235, 255, 249, 255, 189, 255, 33, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 148, 255, 176, 255, 0, 255, 0, 255, 0, 255, 0, 255, 72, 255, 236, 255, 0, 255, 0, 255, 0, 255, 8, 255, 255, 255, 48, 255, 0, 255, 0, 255, 0, 255, 0, 255, 144, 255, 155, 255, 133, 255, 239, 255, 240, 255, 135, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 100, 255, 223, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 4, 255, 210, 255, 208, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 32, 255, 246, 255, 144, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 1, 255, 4, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 4, 255, 1, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 122, 255, 228, 255, 48, 255, 13, 255, 145, 255, 255, 255, 52, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 20, 255, 255, 255, 48, 255, 0, 255, 0, 255, 0, 255, 0, 255, 8, 255, 255, 255, 44, 255, 0, 255, 0, 255, 0, 255, 201, 255, 112, 255, 0, 255, 0, 255, 0, 255, 0, 255, 208, 255, 232, 255, 92, 255, 42, 255, 146, 255, 245, 255, 14, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 15, 255, 126, 255, 13, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 24, 255, 255, 255, 48, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 13, 255, 226, 255, 254, 255, 80, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 112, 255, 252, 255, 61, 255, 0, 255, 0, 255, 0, 255, 0, 255, 4, 255, 216, 255, 169, 255, 39, 255, 66, 255, 233, 255, 108, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 102, 255, 230, 255, 65, 255, 36, 255, 165, 255, 209, 255, 2, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 148, 255, 176, 255, 0, 255, 0, 255, 0, 255, 0, 255, 72, 255, 236, 255, 0, 255, 0, 255, 0, 255, 9, 255, 255, 255, 48, 255, 0, 255, 0, 255, 0, 255, 0, 255, 144, 255, 245, 255, 130, 255, 42, 255, 97, 255, 254, 255, 67, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 44, 255, 110, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 112, 255, 253, 255, 208, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 176, 255, 253, 255, 144, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 176, 255, 236, 255, 13, 255, 0, 255, 0, 255, 0, 255, 0, 255, 9, 255, 231, 255, 185, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 222, 255, 109, 255, 0, 255, 0, 255, 17, 255, 255, 255, 52, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 20, 255, 255, 255, 48, 255, 0, 255, 0, 255, 0, 255, 0, 255, 8, 255, 255, 255, 44, 255, 0, 255, 0, 255, 0, 255, 204, 255, 112, 255, 0, 255, 0, 255, 0, 255, 0, 255, 208, 255, 127, 255, 0, 255, 0, 255, 11, 255, 255, 255, 61, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 8, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 139, 255, 169, 255, 244, 255, 80, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 107, 255, 245, 255, 58, 255, 0, 255, 0, 255, 0, 255, 0, 255, 55, 255, 255, 255, 21, 255, 0, 255, 0, 255, 137, 255, 187, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 204, 255, 117, 255, 0, 255, 0, 255, 14, 255, 250, 255, 57, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 148, 255, 176, 255, 0, 255, 0, 255, 0, 255, 0, 255, 72, 255, 236, 255, 0, 255, 0, 255, 0, 255, 12, 255, 255, 255, 48, 255, 0, 255, 0, 255, 0, 255, 0, 255, 144, 255, 191, 255, 0, 255, 0, 255, 0, 255, 203, 255, 125, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 25, 255, 238, 255, 161, 255, 208, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 75, 255, 224, 255, 189, 255, 144, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 169, 255, 228, 255, 13, 255, 0, 255, 0, 255, 0, 255, 0, 255, 8, 255, 225, 255, 177, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 6, 255, 255, 255, 63, 255, 0, 255, 0, 255, 16, 255, 255, 255, 52, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 3, 255, 144, 255, 245, 255, 235, 255, 135, 255, 255, 255, 48, 255, 0, 255, 0, 255, 0, 255, 0, 255, 10, 255, 255, 255, 44, 255, 0, 255, 0, 255, 0, 255, 204, 255, 112, 255, 0, 255, 0, 255, 0, 255, 0, 255, 208, 255, 116, 255, 0, 255, 0, 255, 0, 255, 252, 255, 72, 255, 0, 255, 0, 255, 0, 255, 0, 255, 156, 255, 255, 255, 255, 255, 255, 255, 44, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 12, 255, 35, 255, 255, 255, 58, 255, 12, 255, 12, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 44, 255, 238, 255, 29, 255, 244, 255, 80, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 3, 255, 12, 255, 0, 255, 0, 255, 0, 255, 133, 255, 193, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 248, 255, 74, 255, 0, 255, 0, 255, 55, 255, 246, 255, 100, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 53, 255, 212, 255, 251, 255, 195, 255, 179, 255, 176, 255, 0, 255, 0, 255, 0, 255, 0, 255, 74, 255, 236, 255, 0, 255, 0, 255, 0, 255, 12, 255, 255, 255, 48, 255, 0, 255, 0, 255, 0, 255, 0, 255, 144, 255, 180, 255, 0, 255, 0, 255, 0, 255, 188, 255, 136, 255, 0, 255, 0, 255, 0, 255, 0, 255, 220, 255, 255, 255, 255, 255, 236, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 167, 255, 144, 255, 116, 255, 208, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 9, 255, 222, 255, 80, 255, 180, 255, 144, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 6, 255, 255, 255, 65, 255, 0, 255, 0, 255, 16, 255, 255, 255, 52, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 119, 255, 240, 255, 83, 255, 48, 255, 171, 255, 255, 255, 48, 255, 0, 255, 0, 255, 0, 255, 0, 255, 12, 255, 255, 255, 48, 255, 0, 255, 0, 255, 0, 255, 204, 255, 116, 255, 0, 255, 0, 255, 0, 255, 0, 255, 208, 255, 116, 255, 0, 255, 0, 255, 0, 255, 252, 255, 72, 255, 0, 255, 0, 255, 0, 255, 0, 255, 27, 255, 44, 255, 64, 255, 255, 255, 44, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 24, 255, 255, 255, 48, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 1, 255, 194, 255, 118, 255, 0, 255, 244, 255, 80, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 44, 255, 229, 255, 100, 255, 0, 255, 0, 255, 0, 255, 0, 255, 4, 255, 255, 255, 68, 255, 0, 255, 92, 255, 237, 255, 241, 255, 112, 255, 0, 255, 0, 255, 0, 255, 0, 255, 13, 255, 234, 255, 167, 255, 48, 255, 85, 255, 242, 255, 176, 255, 0, 255, 0, 255, 0, 255, 0, 255, 76, 255, 240, 255, 0, 255, 0, 255, 0, 255, 12, 255, 255, 255, 52, 255, 0, 255, 0, 255, 0, 255, 0, 255, 144, 255, 180, 255, 0, 255, 0, 255, 0, 255, 188, 255, 136, 255, 0, 255, 0, 255, 0, 255, 0, 255, 38, 255, 44, 255, 117, 255, 236, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 67, 255, 231, 255, 15, 255, 116, 255, 208, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 131, 255, 182, 255, 0, 255, 180, 255, 144, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 218, 255, 121, 255, 0, 255, 0, 255, 22, 255, 255, 255, 52, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 219, 255, 119, 255, 0, 255, 0, 255, 24, 255, 255, 255, 48, 255, 0, 255, 0, 255, 0, 255, 0, 255, 12, 255, 255, 255, 48, 255, 0, 255, 0, 255, 0, 255, 206, 255, 116, 255, 0, 255, 0, 255, 0, 255, 0, 255, 208, 255, 116, 255, 0, 255, 0, 255, 0, 255, 252, 255, 72, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 24, 255, 255, 255, 44, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 24, 255, 255, 255, 48, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 94, 255, 214, 255, 5, 255, 0, 255, 244, 255, 80, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 80, 255, 245, 255, 255, 255, 179, 255, 1, 255, 0, 255, 0, 255, 0, 255, 0, 255, 4, 255, 255, 255, 70, 255, 135, 255, 224, 255, 49, 255, 212, 255, 112, 255, 0, 255, 0, 255, 0, 255, 0, 255, 91, 255, 239, 255, 8, 255, 0, 255, 0, 255, 152, 255, 176, 255, 0, 255, 0, 255, 0, 255, 0, 255, 76, 255, 240, 255, 0, 255, 0, 255, 0, 255, 14, 255, 255, 255, 52, 255, 0, 255, 0, 255, 0, 255, 0, 255, 144, 255, 180, 255, 0, 255, 0, 255, 0, 255, 188, 255, 136, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 88, 255, 236, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 6, 255, 216, 255, 91, 255, 0, 255, 116, 255, 208, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 37, 255, 241, 255, 35, 255, 0, 255, 180, 255, 144, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 117, 255, 240, 255, 82, 255, 48, 255, 174, 255, 255, 255, 52, 255, 0, 255, 0, 255, 0, 255, 0, 255, 6, 255, 255, 255, 64, 255, 0, 255, 0, 255, 20, 255, 255, 255, 48, 255, 0, 255, 0, 255, 0, 255, 0, 255, 12, 255, 255, 255, 48, 255, 0, 255, 0, 255, 0, 255, 208, 255, 116, 255, 0, 255, 0, 255, 0, 255, 0, 255, 208, 255, 116, 255, 0, 255, 0, 255, 0, 255, 252, 255, 72, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 24, 255, 255, 255, 44, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 24, 255, 255, 255, 48, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 16, 255, 232, 255, 65, 255, 0, 255, 0, 255, 244, 255, 80, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 12, 255, 37, 255, 77, 255, 226, 255, 131, 255, 0, 255, 0, 255, 0, 255, 0, 255, 4, 255, 255, 255, 219, 255, 196, 255, 23, 255, 0, 255, 212, 255, 112, 255, 0, 255, 0, 255, 0, 255, 0, 255, 133, 255, 192, 255, 0, 255, 0, 255, 0, 255, 148, 255, 176, 255, 0, 255, 0, 255, 0, 255, 0, 255, 76, 255, 240, 255, 0, 255, 0, 255, 0, 255, 16, 255, 255, 255, 52, 255, 0, 255, 0, 255, 0, 255, 0, 255, 144, 255, 180, 255, 0, 255, 0, 255, 0, 255, 188, 255, 136, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 88, 255, 236, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 121, 255, 191, 255, 1, 255, 0, 255, 116, 255, 208, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 185, 255, 128, 255, 0, 255, 0, 255, 180, 255, 144, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 3, 255, 144, 255, 245, 255, 238, 255, 135, 255, 255, 255, 51, 255, 0, 255, 0, 255, 0, 255, 0, 255, 6, 255, 255, 255, 64, 255, 0, 255, 0, 255, 20, 255, 255, 255, 48, 255, 0, 255, 0, 255, 0, 255, 0, 255, 8, 255, 255, 255, 52, 255, 0, 255, 0, 255, 0, 255, 212, 255, 111, 255, 0, 255, 0, 255, 0, 255, 0, 255, 208, 255, 116, 255, 0, 255, 0, 255, 0, 255, 252, 255, 72, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 24, 255, 255, 255, 44, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 20, 255, 255, 255, 54, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 115, 255, 255, 255, 244, 255, 244, 255, 244, 255, 255, 255, 248, 255, 172, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 101, 255, 231, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 249, 255, 166, 255, 6, 255, 0, 255, 0, 255, 218, 255, 101, 255, 0, 255, 0, 255, 0, 255, 0, 255, 133, 255, 192, 255, 0, 255, 0, 255, 0, 255, 148, 255, 176, 255, 0, 255, 0, 255, 0, 255, 0, 255, 72, 255, 244, 255, 0, 255, 0, 255, 0, 255, 20, 255, 255, 255, 47, 255, 0, 255, 0, 255, 0, 255, 0, 255, 144, 255, 180, 255, 0, 255, 0, 255, 0, 255, 188, 255, 136, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 88, 255, 236, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 243, 255, 249, 255, 244, 255, 244, 255, 249, 255, 254, 255, 244, 255, 50, 255, 0, 255, 0, 255, 0, 255, 0, 255, 51, 255, 255, 255, 246, 255, 244, 255, 244, 255, 252, 255, 251, 255, 233, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 4, 255, 3, 255, 0, 255, 0, 255, 45, 255, 255, 255, 29, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 218, 255, 118, 255, 0, 255, 0, 255, 24, 255, 255, 255, 48, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 222, 255, 108, 255, 0, 255, 0, 255, 16, 255, 248, 255, 69, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 24, 255, 255, 255, 44, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 1, 255, 229, 255, 161, 255, 41, 255, 64, 255, 14, 255, 0, 255, 0, 255, 0, 255, 0, 255, 17, 255, 36, 255, 36, 255, 36, 255, 36, 255, 246, 255, 105, 255, 25, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 69, 255, 210, 255, 3, 255, 0, 255, 0, 255, 98, 255, 229, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 206, 255, 117, 255, 0, 255, 0, 255, 12, 255, 249, 255, 58, 255, 0, 255, 0, 255, 0, 255, 0, 255, 90, 255, 238, 255, 8, 255, 0, 255, 0, 255, 152, 255, 176, 255, 0, 255, 0, 255, 0, 255, 0, 255, 31, 255, 255, 255, 44, 255, 0, 255, 0, 255, 72, 255, 249, 255, 12, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 88, 255, 236, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 35, 255, 36, 255, 36, 255, 36, 255, 136, 255, 215, 255, 36, 255, 7, 255, 0, 255, 0, 255, 0, 255, 0, 255, 8, 255, 36, 255, 36, 255, 36, 255, 36, 255, 191, 255, 160, 255, 34, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 118, 255, 168, 255, 42, 255, 45, 255, 192, 255, 194, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 117, 255, 238, 255, 81, 255, 48, 255, 172, 255, 255, 255, 48, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 109, 255, 236, 255, 82, 255, 50, 255, 180, 255, 205, 255, 2, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 24, 255, 40, 255, 60, 255, 255, 255, 77, 255, 40, 255, 23, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 70, 255, 224, 255, 252, 255, 219, 255, 40, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 244, 255, 80, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 18, 255, 239, 255, 146, 255, 34, 255, 55, 255, 215, 255, 144, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 104, 255, 230, 255, 62, 255, 32, 255, 161, 255, 212, 255, 2, 255, 0, 255, 0, 255, 0, 255, 0, 255, 13, 255, 232, 255, 165, 255, 46, 255, 85, 255, 243, 255, 176, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 173, 255, 205, 255, 59, 255, 65, 255, 219, 255, 143, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 34, 255, 40, 255, 114, 255, 239, 255, 40, 255, 40, 255, 13, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 116, 255, 208, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 180, 255, 144, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 17, 255, 156, 255, 239, 255, 245, 255, 175, 255, 25, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 3, 255, 142, 255, 245, 255, 235, 255, 120, 255, 255, 255, 48, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 1, 255, 120, 255, 233, 255, 248, 255, 177, 255, 25, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 156, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 148, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 244, 255, 80, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 53, 255, 196, 255, 249, 255, 235, 255, 146, 255, 7, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 1, 255, 125, 255, 234, 255, 251, 255, 190, 255, 35, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 52, 255, 211, 255, 251, 255, 195, 255, 163, 255, 176, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 14, 255, 159, 255, 245, 255, 239, 255, 142, 255, 5, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 220, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 84, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 116, 255, 208, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 180, 255, 144, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0), +"format": "LumAlpha8", +"height": 256, +"mipmaps": false, +"width": 256 +} + +[sub_resource type="FontFile" id="FontFile_ulks6"] +data = PackedByteArray(0, 1, 0, 0, 0, 14, 0, 128, 0, 3, 0, 96, 71, 83, 85, 66, 54, 189, 53, 203, 0, 1, 80, 140, 0, 0, 2, 168, 79, 83, 47, 50, 151, 183, 193, 116, 0, 1, 35, 84, 0, 0, 0, 96, 83, 84, 65, 84, 231, 112, 204, 46, 0, 1, 83, 52, 0, 0, 0, 72, 99, 109, 97, 112, 171, 156, 209, 185, 0, 1, 35, 180, 0, 0, 7, 96, 103, 97, 115, 112, 0, 0, 0, 16, 0, 1, 80, 132, 0, 0, 0, 8, 103, 108, 121, 102, 169, 206, 21, 232, 0, 0, 0, 236, 0, 1, 18, 76, 104, 101, 97, 100, 1, 53, 156, 14, 0, 1, 27, 40, 0, 0, 0, 54, 104, 104, 101, 97, 10, 177, 1, 42, 0, 1, 35, 48, 0, 0, 0, 36, 104, 109, 116, 120, 7, 23, 19, 209, 0, 1, 27, 96, 0, 0, 7, 208, 108, 111, 99, 97, 62, 238, 130, 139, 0, 1, 19, 88, 0, 0, 7, 208, 109, 97, 120, 112, 4, 6, 1, 58, 0, 1, 19, 56, 0, 0, 0, 32, 110, 97, 109, 101, 96, 57, 138, 199, 0, 1, 43, 28, 0, 0, 3, 172, 112, 111, 115, 116, 151, 185, 175, 6, 0, 1, 46, 200, 0, 0, 33, 188, 112, 114, 101, 112, 104, 6, 140, 133, 0, 1, 43, 20, 0, 0, 0, 7, 0, 2, 0, 81, 0, 0, 4, 144, 5, 176, 0, 7, 0, 10, 0, 0, 65, 19, 51, 1, 35, 1, 51, 19, 55, 19, 19, 3, 101, 115, 184, 254, 50, 155, 254, 42, 185, 117, 50, 195, 192, 1, 121, 254, 135, 5, 176, 250, 80, 1, 121, 161, 2, 120, 253, 136, 0, 3, 0, 172, 0, 0, 4, 96, 5, 176, 0, 27, 0, 42, 0, 57, 0, 0, 115, 33, 54, 54, 55, 54, 54, 39, 52, 38, 39, 38, 38, 39, 53, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 33, 19, 33, 22, 22, 23, 22, 22, 7, 20, 6, 7, 6, 6, 7, 33, 17, 17, 51, 22, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 7, 172, 1, 210, 93, 175, 67, 67, 80, 1, 39, 35, 33, 102, 55, 53, 75, 31, 30, 35, 1, 1, 80, 67, 67, 172, 90, 254, 79, 186, 1, 39, 59, 102, 38, 38, 43, 1, 47, 40, 40, 104, 58, 254, 227, 253, 54, 103, 40, 39, 47, 48, 39, 39, 100, 52, 1, 56, 53, 52, 156, 102, 65, 112, 45, 41, 68, 13, 3, 23, 52, 38, 37, 94, 57, 102, 146, 47, 47, 45, 1, 252, 249, 2, 36, 33, 34, 96, 62, 61, 96, 33, 33, 37, 1, 2, 166, 1, 207, 1, 26, 27, 28, 86, 61, 57, 86, 29, 30, 31, 1, 0, 1, 0, 107, 255, 236, 4, 93, 5, 196, 0, 63, 0, 0, 65, 35, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 38, 38, 53, 53, 52, 54, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 51, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 6, 6, 7, 21, 22, 22, 23, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 4, 93, 185, 9, 44, 37, 37, 107, 73, 67, 100, 37, 37, 48, 15, 15, 13, 13, 15, 15, 49, 37, 36, 101, 66, 73, 107, 37, 37, 44, 9, 185, 12, 75, 62, 62, 172, 109, 91, 146, 57, 58, 83, 27, 28, 27, 1, 1, 27, 28, 27, 83, 58, 57, 147, 90, 105, 171, 63, 62, 78, 1, 182, 66, 113, 41, 42, 46, 43, 38, 37, 98, 56, 55, 115, 54, 205, 54, 115, 55, 55, 98, 37, 37, 43, 49, 43, 43, 114, 66, 104, 172, 62, 61, 67, 51, 45, 45, 123, 72, 72, 158, 81, 203, 81, 158, 72, 72, 122, 45, 45, 51, 67, 61, 60, 169, 0, 2, 0, 155, 0, 0, 4, 112, 5, 176, 0, 21, 0, 43, 0, 0, 115, 33, 54, 54, 55, 54, 54, 55, 54, 54, 53, 53, 38, 38, 39, 38, 38, 39, 38, 38, 39, 33, 23, 51, 22, 22, 23, 22, 22, 23, 22, 22, 23, 21, 6, 6, 7, 6, 6, 7, 6, 6, 7, 35, 155, 1, 81, 105, 181, 72, 68, 110, 36, 35, 37, 1, 39, 37, 41, 137, 89, 64, 151, 85, 254, 175, 188, 149, 69, 116, 47, 66, 91, 27, 21, 21, 1, 1, 20, 20, 23, 79, 54, 51, 131, 80, 149, 1, 48, 45, 43, 122, 75, 72, 172, 96, 107, 100, 176, 74, 87, 133, 41, 30, 33, 1, 152, 1, 29, 26, 35, 113, 70, 54, 125, 68, 109, 67, 123, 53, 65, 105, 36, 35, 38, 1, 0, 1, 0, 182, 0, 0, 4, 52, 5, 176, 0, 11, 0, 0, 65, 53, 33, 17, 33, 53, 33, 17, 33, 53, 33, 17, 3, 207, 253, 160, 2, 188, 252, 139, 3, 126, 253, 59, 2, 161, 157, 1, 212, 158, 250, 80, 157, 2, 4, 0, 0, 1, 0, 191, 0, 0, 4, 61, 5, 176, 0, 9, 0, 0, 65, 53, 33, 17, 33, 53, 33, 17, 51, 17, 3, 216, 253, 162, 2, 195, 252, 130, 187, 2, 131, 157, 1, 242, 158, 250, 80, 2, 131, 0, 0, 1, 0, 100, 255, 235, 4, 92, 5, 196, 0, 67, 0, 0, 101, 3, 33, 21, 33, 3, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 39, 38, 38, 39, 53, 52, 54, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 51, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 6, 6, 7, 21, 22, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 4, 92, 3, 254, 40, 1, 40, 2, 23, 68, 39, 39, 83, 38, 66, 104, 39, 40, 56, 18, 18, 17, 1, 14, 16, 16, 50, 38, 38, 102, 66, 69, 104, 38, 37, 46, 11, 183, 9, 78, 64, 64, 172, 102, 92, 148, 58, 59, 84, 28, 28, 27, 1, 1, 31, 31, 30, 90, 60, 60, 151, 90, 89, 162, 70, 41, 76, 191, 2, 22, 156, 254, 185, 33, 41, 12, 12, 8, 1, 1, 45, 38, 38, 100, 56, 56, 117, 55, 171, 54, 116, 56, 56, 101, 38, 38, 45, 43, 38, 38, 107, 63, 102, 165, 59, 58, 63, 54, 46, 47, 127, 74, 74, 161, 81, 169, 82, 161, 73, 74, 126, 46, 47, 53, 1, 1, 41, 42, 24, 65, 0, 1, 0, 141, 0, 0, 4, 63, 5, 176, 0, 11, 0, 0, 97, 17, 35, 17, 33, 17, 35, 17, 51, 17, 33, 17, 4, 63, 175, 253, 171, 174, 174, 2, 85, 5, 176, 253, 142, 2, 114, 250, 80, 2, 161, 253, 95, 0, 0, 1, 0, 174, 0, 0, 4, 30, 5, 176, 0, 11, 0, 0, 83, 21, 33, 17, 33, 21, 33, 53, 33, 17, 33, 53, 174, 1, 85, 254, 171, 3, 112, 254, 163, 1, 93, 5, 176, 161, 251, 145, 160, 160, 4, 111, 161, 0, 0, 1, 0, 98, 255, 236, 4, 22, 5, 176, 0, 27, 0, 0, 65, 17, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 35, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 17, 3, 89, 2, 39, 36, 37, 104, 66, 64, 103, 37, 37, 43, 3, 188, 9, 74, 62, 61, 167, 102, 101, 171, 63, 63, 73, 2, 5, 176, 252, 11, 62, 111, 42, 42, 49, 42, 39, 38, 104, 61, 101, 163, 57, 58, 62, 69, 62, 61, 170, 101, 3, 245, 0, 0, 1, 0, 172, 0, 0, 4, 164, 5, 176, 0, 12, 0, 0, 65, 1, 51, 1, 1, 35, 1, 7, 17, 35, 17, 51, 17, 2, 11, 1, 184, 225, 253, 225, 1, 253, 225, 254, 85, 141, 189, 189, 2, 164, 253, 92, 3, 51, 2, 125, 253, 233, 176, 2, 199, 250, 80, 1, 236, 0, 0, 1, 0, 198, 0, 0, 4, 71, 5, 176, 0, 5, 0, 0, 101, 17, 35, 17, 33, 53, 1, 127, 185, 3, 129, 157, 5, 19, 250, 80, 157, 0, 0, 1, 0, 148, 0, 0, 4, 76, 5, 176, 0, 14, 0, 0, 65, 35, 17, 51, 17, 3, 19, 51, 1, 3, 17, 51, 17, 35, 1, 1, 121, 229, 180, 15, 247, 106, 1, 13, 15, 180, 230, 255, 0, 5, 176, 250, 80, 2, 69, 2, 75, 253, 5, 3, 16, 253, 160, 253, 187, 5, 176, 253, 40, 0, 0, 1, 0, 143, 0, 0, 4, 62, 5, 176, 0, 9, 0, 0, 97, 17, 35, 3, 1, 35, 17, 51, 19, 1, 4, 62, 187, 3, 253, 203, 188, 187, 3, 2, 53, 5, 176, 251, 194, 4, 62, 250, 80, 4, 64, 251, 192, 0, 0, 2, 0, 106, 255, 236, 4, 97, 5, 196, 0, 37, 0, 75, 0, 0, 65, 53, 38, 38, 39, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 6, 6, 7, 21, 22, 22, 23, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 54, 54, 39, 21, 6, 6, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 38, 38, 39, 53, 54, 54, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 22, 22, 4, 97, 1, 25, 26, 27, 81, 56, 56, 146, 90, 90, 145, 56, 56, 81, 26, 27, 25, 1, 1, 26, 27, 26, 82, 56, 56, 145, 90, 90, 145, 56, 56, 81, 26, 26, 25, 182, 1, 11, 14, 15, 47, 35, 36, 99, 65, 65, 98, 36, 36, 48, 15, 15, 13, 1, 1, 13, 15, 14, 48, 36, 36, 98, 64, 65, 98, 36, 36, 48, 15, 14, 12, 2, 132, 166, 78, 160, 74, 74, 129, 48, 48, 55, 55, 48, 49, 129, 74, 74, 159, 78, 166, 78, 158, 74, 74, 129, 48, 48, 55, 55, 48, 48, 128, 74, 74, 159, 246, 168, 52, 114, 55, 56, 101, 38, 39, 46, 46, 39, 38, 102, 56, 55, 114, 51, 168, 51, 113, 56, 55, 101, 39, 38, 46, 45, 38, 39, 101, 55, 56, 113, 0, 2, 0, 191, 0, 0, 4, 121, 5, 176, 0, 16, 0, 31, 0, 0, 65, 33, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 33, 17, 51, 17, 17, 33, 22, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 7, 1, 120, 1, 31, 98, 175, 66, 66, 77, 77, 66, 66, 175, 98, 254, 40, 185, 1, 31, 64, 109, 40, 39, 45, 45, 40, 40, 108, 64, 2, 72, 1, 58, 55, 55, 161, 105, 105, 162, 55, 55, 58, 2, 250, 80, 2, 224, 2, 56, 1, 40, 37, 37, 106, 66, 66, 103, 36, 36, 39, 1, 0, 0, 2, 0, 94, 255, 10, 4, 140, 5, 196, 0, 40, 0, 78, 0, 0, 65, 53, 38, 38, 39, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 6, 6, 7, 21, 22, 22, 23, 22, 22, 23, 22, 22, 51, 50, 54, 55, 5, 55, 39, 54, 54, 55, 54, 54, 39, 21, 6, 6, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 38, 38, 53, 53, 52, 54, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 22, 22, 4, 110, 1, 26, 26, 27, 83, 57, 58, 149, 93, 93, 149, 57, 58, 82, 27, 27, 26, 1, 1, 26, 27, 27, 84, 58, 57, 148, 93, 36, 67, 31, 1, 32, 127, 251, 58, 83, 27, 26, 26, 183, 1, 11, 14, 15, 48, 37, 37, 103, 69, 68, 103, 37, 37, 49, 15, 15, 13, 13, 15, 15, 49, 37, 37, 102, 68, 69, 103, 37, 37, 49, 15, 14, 11, 2, 151, 128, 80, 165, 76, 76, 133, 49, 49, 57, 57, 49, 50, 133, 76, 76, 164, 80, 128, 80, 163, 76, 76, 133, 49, 49, 57, 9, 9, 244, 121, 209, 49, 133, 76, 76, 164, 211, 130, 55, 119, 58, 58, 104, 39, 40, 47, 47, 40, 40, 104, 58, 58, 119, 54, 130, 54, 119, 58, 57, 104, 40, 39, 47, 46, 39, 40, 104, 57, 58, 119, 0, 2, 0, 181, 0, 0, 4, 114, 5, 176, 0, 20, 0, 35, 0, 0, 65, 1, 51, 55, 1, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 33, 17, 51, 17, 53, 17, 51, 22, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 7, 2, 144, 1, 30, 195, 1, 254, 203, 60, 100, 36, 36, 41, 77, 67, 68, 180, 102, 254, 85, 184, 243, 67, 113, 41, 41, 46, 48, 41, 42, 110, 62, 2, 82, 253, 174, 12, 2, 110, 26, 74, 48, 48, 118, 71, 110, 163, 54, 54, 54, 2, 250, 80, 2, 82, 152, 2, 46, 1, 36, 35, 36, 105, 70, 66, 101, 35, 35, 37, 1, 0, 1, 0, 118, 255, 236, 4, 105, 5, 196, 0, 73, 0, 0, 65, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 35, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 38, 38, 39, 38, 38, 39, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 51, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 23, 22, 22, 23, 22, 22, 3, 168, 52, 41, 41, 105, 54, 68, 115, 44, 44, 56, 9, 189, 3, 77, 66, 74, 201, 104, 87, 174, 69, 69, 87, 81, 66, 67, 162, 81, 49, 111, 47, 48, 62, 1, 47, 40, 39, 101, 53, 66, 105, 38, 38, 46, 8, 190, 2, 82, 68, 68, 176, 95, 86, 170, 67, 67, 83, 83, 66, 65, 159, 77, 53, 115, 48, 48, 61, 1, 112, 60, 87, 28, 29, 27, 37, 37, 36, 105, 68, 94, 153, 57, 66, 70, 49, 49, 48, 146, 98, 97, 148, 51, 55, 71, 25, 15, 40, 30, 30, 87, 63, 58, 88, 30, 30, 30, 41, 37, 37, 103, 63, 100, 162, 57, 57, 63, 53, 51, 51, 148, 94, 94, 139, 51, 50, 71, 25, 17, 42, 31, 32, 92, 0, 1, 0, 76, 0, 0, 4, 132, 5, 176, 0, 7, 0, 0, 65, 53, 33, 21, 33, 17, 51, 17, 4, 132, 251, 200, 1, 194, 180, 5, 18, 158, 158, 250, 238, 5, 18, 0, 0, 1, 0, 139, 255, 236, 4, 66, 5, 176, 0, 29, 0, 0, 65, 35, 3, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 3, 35, 3, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 4, 64, 179, 3, 2, 38, 36, 37, 108, 71, 71, 109, 36, 37, 39, 1, 4, 176, 2, 1, 70, 62, 62, 174, 106, 104, 174, 63, 63, 72, 5, 176, 252, 38, 65, 120, 46, 47, 55, 56, 46, 46, 120, 65, 3, 218, 252, 38, 102, 179, 66, 67, 76, 77, 67, 66, 178, 102, 0, 1, 0, 71, 0, 0, 4, 127, 5, 176, 0, 8, 0, 0, 97, 51, 1, 35, 1, 7, 39, 1, 35, 2, 19, 161, 1, 203, 197, 254, 190, 22, 21, 254, 192, 198, 5, 176, 251, 195, 73, 71, 4, 63, 0, 1, 0, 73, 0, 0, 4, 158, 5, 176, 0, 18, 0, 0, 115, 51, 19, 55, 23, 19, 51, 19, 35, 3, 7, 39, 3, 35, 3, 7, 39, 3, 35, 250, 190, 178, 11, 10, 177, 189, 177, 175, 105, 6, 11, 177, 161, 176, 11, 6, 105, 176, 4, 11, 62, 61, 251, 244, 5, 176, 252, 22, 60, 59, 3, 235, 252, 22, 60, 58, 3, 236, 0, 1, 0, 87, 0, 0, 4, 143, 5, 176, 0, 11, 0, 0, 65, 1, 35, 1, 1, 51, 1, 1, 51, 1, 1, 35, 2, 113, 254, 202, 217, 1, 167, 254, 78, 219, 1, 67, 1, 66, 216, 254, 79, 1, 167, 218, 3, 117, 2, 59, 253, 46, 253, 34, 2, 70, 253, 186, 2, 222, 2, 210, 0, 1, 0, 61, 0, 0, 4, 121, 5, 176, 0, 8, 0, 0, 65, 1, 35, 1, 19, 51, 19, 1, 35, 2, 91, 254, 181, 211, 1, 197, 3, 172, 3, 1, 197, 210, 2, 213, 2, 219, 252, 111, 253, 225, 2, 31, 3, 145, 0, 1, 0, 114, 0, 0, 4, 55, 5, 176, 0, 9, 0, 0, 101, 1, 39, 33, 21, 33, 1, 23, 33, 53, 1, 69, 2, 215, 2, 252, 101, 2, 200, 253, 43, 2, 3, 195, 157, 4, 134, 141, 158, 251, 126, 144, 157, 0, 0, 2, 0, 156, 255, 236, 4, 54, 4, 78, 0, 53, 0, 73, 0, 0, 97, 51, 53, 38, 38, 53, 17, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 51, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 21, 35, 34, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 22, 22, 37, 34, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 51, 51, 21, 6, 6, 7, 6, 6, 3, 117, 193, 18, 20, 66, 57, 58, 158, 92, 101, 159, 55, 56, 59, 1, 186, 33, 30, 30, 87, 55, 59, 95, 33, 33, 36, 202, 113, 183, 65, 65, 71, 53, 49, 48, 139, 86, 53, 94, 42, 41, 69, 28, 3, 13, 254, 196, 54, 82, 27, 27, 27, 31, 30, 42, 143, 96, 172, 16, 56, 38, 39, 94, 16, 45, 121, 54, 1, 247, 91, 136, 46, 45, 45, 56, 45, 46, 114, 59, 34, 63, 23, 23, 28, 30, 27, 28, 78, 49, 85, 44, 44, 45, 134, 89, 68, 117, 42, 43, 50, 22, 19, 19, 50, 28, 34, 63, 120, 28, 25, 24, 68, 40, 42, 66, 24, 34, 33, 219, 32, 59, 23, 23, 28, 0, 0, 2, 0, 175, 255, 236, 4, 67, 6, 0, 0, 35, 0, 67, 0, 0, 65, 53, 52, 38, 39, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 17, 35, 17, 51, 55, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 54, 54, 39, 21, 20, 6, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 17, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 22, 22, 4, 67, 28, 27, 26, 68, 43, 48, 118, 70, 56, 96, 40, 32, 56, 23, 185, 170, 9, 18, 40, 22, 46, 115, 70, 61, 105, 44, 61, 87, 27, 20, 21, 185, 12, 13, 16, 54, 40, 30, 76, 46, 48, 80, 32, 32, 49, 18, 17, 49, 32, 31, 80, 48, 44, 72, 29, 42, 58, 18, 13, 13, 2, 17, 21, 85, 153, 63, 56, 91, 32, 34, 38, 22, 21, 17, 47, 29, 2, 58, 250, 0, 123, 23, 38, 16, 32, 34, 30, 27, 39, 119, 75, 57, 131, 92, 21, 48, 92, 40, 53, 86, 28, 22, 23, 25, 23, 23, 61, 36, 1, 217, 36, 61, 23, 22, 25, 20, 18, 25, 88, 53, 43, 97, 0, 1, 0, 143, 255, 236, 4, 51, 4, 78, 0, 51, 0, 0, 101, 34, 38, 39, 38, 38, 53, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 51, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 35, 6, 6, 7, 6, 6, 2, 123, 87, 117, 35, 36, 31, 31, 36, 36, 117, 86, 56, 97, 35, 35, 41, 1, 175, 66, 58, 59, 161, 96, 123, 184, 61, 62, 62, 62, 62, 61, 184, 123, 86, 158, 61, 61, 73, 1, 175, 1, 45, 37, 37, 95, 130, 69, 56, 55, 139, 71, 42, 70, 138, 56, 55, 69, 38, 33, 33, 87, 49, 82, 144, 53, 52, 61, 88, 74, 75, 196, 107, 42, 108, 195, 74, 75, 88, 59, 50, 49, 131, 72, 45, 77, 28, 29, 32, 0, 0, 2, 0, 139, 255, 236, 4, 28, 6, 0, 0, 23, 0, 43, 0, 0, 83, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 23, 51, 17, 35, 17, 38, 38, 35, 34, 6, 7, 6, 6, 23, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 17, 6, 6, 35, 34, 38, 39, 38, 38, 139, 62, 56, 56, 159, 98, 100, 150, 54, 8, 170, 185, 53, 145, 97, 99, 160, 56, 57, 61, 185, 34, 36, 35, 111, 78, 91, 122, 36, 36, 122, 93, 77, 110, 35, 36, 34, 2, 38, 21, 116, 201, 74, 74, 84, 68, 66, 114, 6, 0, 253, 207, 62, 65, 82, 73, 73, 203, 142, 21, 79, 143, 55, 54, 64, 85, 66, 254, 10, 71, 84, 63, 54, 54, 142, 0, 0, 2, 0, 135, 255, 236, 4, 69, 4, 78, 0, 34, 0, 48, 0, 0, 69, 50, 54, 55, 39, 6, 6, 35, 34, 38, 39, 38, 38, 39, 53, 33, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 21, 20, 22, 23, 22, 22, 19, 50, 22, 23, 22, 22, 21, 21, 33, 54, 54, 55, 54, 54, 2, 140, 158, 215, 54, 113, 51, 154, 99, 75, 124, 44, 43, 49, 7, 3, 5, 57, 58, 58, 175, 117, 93, 177, 69, 70, 84, 76, 68, 68, 191, 90, 71, 103, 34, 34, 38, 253, 186, 11, 55, 40, 40, 100, 20, 127, 82, 88, 66, 80, 56, 49, 46, 120, 79, 7, 83, 113, 194, 72, 71, 81, 76, 71, 72, 207, 131, 42, 113, 192, 70, 70, 78, 3, 202, 52, 42, 42, 115, 50, 9, 75, 115, 40, 39, 41, 0, 0, 1, 0, 152, 0, 0, 4, 107, 6, 43, 0, 32, 0, 0, 97, 51, 17, 33, 53, 33, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 55, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 21, 33, 21, 33, 1, 194, 186, 1, 161, 254, 95, 35, 34, 32, 97, 63, 62, 109, 41, 22, 26, 50, 25, 38, 78, 40, 96, 156, 55, 56, 61, 254, 214, 1, 42, 3, 171, 143, 76, 68, 102, 32, 31, 31, 21, 14, 153, 7, 11, 5, 7, 9, 54, 53, 53, 157, 104, 76, 143, 0, 2, 0, 140, 254, 86, 4, 29, 4, 78, 0, 53, 0, 79, 0, 0, 83, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 7, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 17, 35, 7, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 23, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 17, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 140, 60, 56, 55, 160, 99, 59, 102, 42, 27, 47, 21, 40, 37, 38, 106, 66, 37, 74, 37, 37, 72, 34, 96, 37, 103, 56, 55, 108, 42, 102, 168, 61, 60, 67, 168, 9, 19, 43, 24, 44, 109, 65, 101, 160, 56, 56, 59, 185, 33, 36, 35, 111, 78, 46, 76, 31, 31, 48, 18, 18, 48, 30, 31, 77, 48, 77, 110, 35, 36, 33, 2, 38, 21, 116, 201, 74, 74, 84, 25, 23, 15, 40, 24, 93, 70, 108, 36, 37, 38, 15, 17, 17, 57, 41, 111, 53, 72, 21, 22, 19, 60, 58, 58, 166, 107, 4, 35, 118, 24, 40, 15, 29, 30, 82, 73, 73, 203, 142, 21, 79, 143, 55, 54, 64, 23, 20, 21, 56, 34, 254, 16, 35, 58, 21, 21, 23, 63, 54, 54, 142, 0, 0, 1, 0, 174, 0, 0, 4, 44, 6, 0, 0, 31, 0, 0, 65, 17, 35, 17, 51, 17, 54, 54, 55, 54, 54, 51, 54, 22, 23, 22, 22, 21, 17, 51, 17, 52, 38, 39, 38, 38, 35, 6, 6, 7, 6, 6, 1, 103, 185, 185, 20, 51, 30, 38, 90, 50, 61, 94, 31, 29, 30, 185, 53, 49, 49, 139, 85, 65, 115, 48, 30, 54, 3, 153, 2, 103, 250, 0, 3, 18, 32, 53, 20, 26, 28, 1, 35, 35, 32, 97, 64, 253, 85, 2, 169, 109, 159, 52, 52, 49, 1, 36, 35, 21, 55, 0, 0, 2, 0, 203, 0, 0, 4, 85, 5, 195, 0, 9, 0, 27, 0, 0, 83, 21, 33, 17, 33, 21, 33, 53, 33, 17, 3, 20, 22, 51, 50, 54, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 203, 1, 112, 254, 144, 3, 138, 254, 159, 209, 55, 56, 55, 56, 16, 16, 13, 40, 26, 26, 41, 13, 16, 15, 4, 58, 161, 253, 7, 160, 160, 3, 154, 1, 28, 45, 60, 60, 45, 25, 42, 14, 13, 15, 15, 13, 15, 42, 0, 2, 0, 211, 254, 75, 3, 88, 5, 195, 0, 29, 0, 41, 0, 0, 65, 21, 33, 17, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 7, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 17, 3, 20, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 1, 43, 1, 105, 39, 34, 34, 92, 52, 14, 49, 26, 27, 52, 17, 13, 25, 46, 23, 28, 58, 31, 100, 157, 55, 54, 57, 211, 54, 56, 56, 56, 56, 56, 56, 54, 4, 58, 161, 252, 96, 77, 105, 32, 32, 27, 1, 2, 1, 5, 3, 152, 4, 7, 2, 2, 2, 57, 55, 54, 160, 104, 4, 65, 1, 29, 45, 61, 61, 45, 45, 63, 63, 0, 0, 1, 0, 176, 0, 0, 4, 106, 6, 0, 0, 12, 0, 0, 65, 1, 51, 1, 1, 35, 1, 7, 17, 35, 17, 51, 17, 1, 242, 1, 141, 235, 254, 7, 1, 182, 225, 254, 157, 121, 186, 186, 1, 249, 254, 7, 2, 119, 1, 195, 254, 156, 130, 3, 172, 250, 0, 1, 118, 0, 0, 1, 0, 203, 0, 0, 4, 85, 6, 0, 0, 9, 0, 0, 83, 21, 33, 17, 33, 21, 33, 53, 33, 17, 203, 1, 112, 254, 144, 3, 138, 254, 159, 6, 0, 161, 251, 65, 160, 160, 5, 96, 0, 1, 0, 93, 0, 0, 4, 114, 4, 78, 0, 58, 0, 0, 65, 35, 17, 51, 17, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 17, 51, 17, 52, 52, 53, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 17, 51, 17, 52, 38, 39, 38, 38, 35, 6, 6, 7, 6, 6, 7, 38, 38, 39, 38, 38, 35, 6, 6, 7, 1, 3, 166, 176, 6, 19, 13, 17, 49, 33, 30, 45, 15, 16, 15, 176, 3, 18, 16, 16, 48, 33, 31, 47, 16, 15, 16, 176, 36, 34, 31, 90, 56, 41, 69, 28, 22, 38, 14, 11, 31, 19, 26, 69, 43, 76, 107, 33, 4, 58, 251, 198, 3, 93, 16, 28, 11, 14, 15, 15, 16, 17, 52, 34, 252, 213, 3, 42, 6, 9, 5, 25, 41, 16, 15, 18, 16, 16, 17, 52, 34, 252, 214, 3, 40, 78, 115, 36, 32, 33, 1, 20, 17, 15, 40, 23, 25, 40, 14, 18, 19, 1, 64, 57, 0, 0, 1, 0, 174, 0, 0, 4, 41, 4, 78, 0, 31, 0, 0, 115, 51, 17, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 17, 51, 17, 52, 38, 39, 38, 38, 35, 6, 6, 7, 6, 6, 7, 39, 35, 174, 185, 19, 51, 30, 37, 88, 51, 59, 91, 32, 31, 32, 185, 53, 49, 49, 139, 85, 63, 113, 48, 32, 57, 24, 13, 166, 3, 8, 35, 58, 22, 25, 29, 28, 31, 31, 100, 72, 253, 85, 2, 175, 108, 157, 51, 51, 48, 1, 35, 32, 21, 57, 34, 160, 0, 0, 2, 0, 122, 255, 236, 4, 82, 4, 78, 0, 25, 0, 51, 0, 0, 83, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 23, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 122, 68, 64, 63, 183, 115, 114, 182, 64, 63, 68, 68, 63, 64, 183, 115, 114, 182, 63, 64, 68, 185, 38, 39, 38, 114, 77, 77, 115, 39, 38, 39, 38, 38, 39, 115, 76, 77, 116, 38, 39, 38, 2, 39, 22, 117, 200, 74, 74, 84, 84, 74, 74, 200, 117, 22, 117, 201, 74, 74, 85, 85, 74, 74, 201, 139, 22, 79, 145, 55, 55, 65, 65, 55, 55, 145, 79, 22, 80, 145, 55, 55, 64, 64, 55, 55, 145, 0, 0, 2, 0, 173, 254, 96, 4, 63, 4, 78, 0, 29, 0, 55, 0, 0, 83, 51, 17, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 39, 35, 1, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 17, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 173, 185, 20, 46, 26, 43, 107, 62, 102, 159, 54, 54, 56, 56, 54, 54, 160, 104, 59, 103, 42, 30, 52, 22, 9, 169, 2, 217, 35, 36, 36, 112, 77, 48, 79, 32, 28, 44, 17, 19, 50, 32, 29, 73, 43, 78, 112, 37, 36, 35, 254, 96, 2, 8, 22, 37, 15, 24, 26, 84, 74, 74, 201, 116, 21, 121, 203, 73, 73, 82, 25, 24, 16, 45, 28, 118, 253, 236, 21, 79, 144, 55, 55, 65, 24, 21, 18, 52, 30, 2, 9, 34, 56, 19, 19, 20, 64, 54, 55, 143, 0, 2, 0, 140, 254, 96, 4, 28, 4, 78, 0, 29, 0, 55, 0, 0, 83, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 17, 51, 17, 35, 7, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 23, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 17, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 140, 59, 56, 56, 161, 103, 53, 92, 39, 31, 53, 24, 185, 170, 8, 21, 48, 27, 42, 101, 58, 104, 163, 56, 56, 58, 185, 35, 37, 36, 112, 77, 43, 73, 31, 30, 49, 19, 20, 50, 32, 30, 72, 43, 77, 111, 36, 36, 35, 2, 38, 21, 116, 201, 74, 74, 84, 20, 19, 14, 40, 25, 253, 254, 5, 218, 107, 24, 40, 15, 24, 24, 82, 73, 73, 203, 142, 21, 79, 144, 56, 55, 66, 21, 19, 19, 51, 31, 253, 234, 33, 55, 19, 17, 20, 65, 55, 55, 144, 0, 0, 1, 1, 73, 0, 0, 4, 49, 4, 78, 0, 21, 0, 0, 65, 34, 6, 7, 39, 39, 35, 17, 51, 17, 54, 54, 55, 54, 54, 51, 50, 22, 23, 55, 38, 38, 3, 115, 118, 185, 66, 1, 8, 176, 186, 18, 55, 37, 41, 110, 68, 53, 97, 54, 25, 28, 111, 4, 78, 103, 89, 27, 145, 251, 198, 2, 182, 50, 81, 28, 32, 33, 11, 12, 181, 12, 14, 0, 0, 1, 0, 175, 255, 236, 4, 54, 4, 78, 0, 73, 0, 0, 65, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 35, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 38, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 51, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 23, 22, 22, 23, 22, 22, 3, 125, 20, 19, 31, 110, 74, 47, 96, 39, 40, 53, 4, 185, 63, 60, 59, 172, 110, 96, 162, 58, 58, 65, 57, 54, 54, 158, 100, 76, 99, 29, 30, 24, 30, 30, 29, 89, 59, 57, 91, 32, 32, 36, 185, 61, 56, 56, 160, 100, 93, 155, 56, 56, 62, 60, 55, 54, 153, 93, 76, 102, 31, 31, 26, 1, 31, 26, 46, 19, 31, 35, 20, 24, 24, 78, 57, 69, 128, 48, 49, 59, 46, 42, 42, 118, 72, 67, 102, 39, 38, 55, 21, 15, 32, 20, 20, 50, 32, 31, 58, 22, 22, 26, 32, 26, 26, 67, 35, 71, 123, 46, 46, 52, 50, 43, 43, 115, 66, 67, 101, 37, 38, 54, 19, 15, 37, 22, 22, 53, 0, 1, 0, 142, 255, 236, 4, 41, 5, 64, 0, 35, 0, 0, 65, 35, 17, 33, 21, 33, 17, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 39, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 17, 33, 53, 33, 2, 100, 186, 254, 228, 1, 28, 53, 46, 46, 125, 72, 43, 87, 39, 39, 66, 23, 26, 17, 53, 30, 31, 64, 30, 41, 73, 28, 28, 32, 1, 156, 254, 100, 5, 64, 254, 250, 143, 253, 180, 100, 141, 44, 45, 41, 8, 8, 7, 21, 14, 131, 4, 11, 5, 5, 7, 20, 25, 24, 82, 63, 2, 76, 143, 0, 0, 1, 0, 180, 255, 236, 4, 31, 4, 58, 0, 28, 0, 0, 97, 51, 17, 35, 17, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 17, 35, 17, 20, 22, 23, 22, 22, 51, 50, 54, 55, 3, 119, 168, 186, 15, 45, 30, 36, 98, 62, 53, 81, 28, 28, 28, 185, 53, 49, 49, 138, 85, 106, 162, 54, 4, 58, 252, 248, 35, 59, 21, 26, 29, 28, 35, 34, 116, 88, 2, 133, 253, 125, 121, 173, 56, 56, 53, 89, 80, 0, 1, 0, 98, 0, 0, 4, 101, 4, 58, 0, 8, 0, 0, 97, 51, 1, 35, 1, 7, 39, 1, 35, 2, 31, 141, 1, 185, 189, 254, 209, 18, 17, 254, 202, 190, 4, 58, 252, 208, 67, 67, 3, 48, 0, 1, 0, 48, 0, 0, 4, 167, 4, 58, 0, 18, 0, 0, 97, 51, 19, 55, 23, 19, 51, 19, 35, 3, 7, 39, 3, 35, 3, 7, 39, 3, 35, 1, 22, 146, 167, 27, 28, 169, 146, 230, 164, 120, 27, 29, 172, 119, 173, 27, 22, 126, 164, 2, 151, 168, 168, 253, 105, 4, 58, 253, 78, 170, 170, 2, 178, 253, 78, 155, 155, 2, 178, 0, 0, 1, 0, 110, 0, 0, 4, 114, 4, 58, 0, 11, 0, 0, 65, 1, 35, 1, 1, 51, 1, 1, 51, 1, 1, 35, 2, 109, 254, 226, 214, 1, 147, 254, 98, 216, 1, 43, 1, 43, 214, 254, 98, 1, 147, 217, 2, 169, 1, 145, 253, 233, 253, 221, 1, 156, 254, 100, 2, 35, 2, 23, 0, 1, 0, 68, 254, 75, 4, 133, 4, 58, 0, 27, 0, 0, 65, 50, 54, 55, 54, 54, 55, 1, 35, 1, 7, 39, 1, 35, 1, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 7, 22, 22, 1, 5, 73, 112, 42, 42, 59, 19, 2, 37, 207, 254, 233, 51, 48, 254, 215, 207, 1, 210, 74, 10, 35, 24, 25, 63, 38, 14, 49, 25, 30, 18, 70, 254, 75, 54, 40, 40, 94, 42, 4, 225, 253, 66, 127, 131, 2, 186, 251, 249, 144, 20, 62, 29, 29, 42, 3, 2, 151, 4, 12, 0, 0, 1, 0, 160, 0, 0, 4, 61, 4, 58, 0, 9, 0, 0, 101, 1, 53, 33, 21, 33, 1, 21, 33, 53, 1, 140, 2, 141, 252, 144, 2, 125, 253, 122, 3, 157, 151, 3, 32, 131, 153, 252, 231, 136, 151, 0, 0, 3, 0, 145, 255, 236, 4, 64, 5, 197, 0, 25, 0, 42, 0, 59, 0, 0, 65, 17, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 17, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 37, 52, 52, 53, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 19, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 1, 20, 20, 21, 4, 64, 64, 60, 61, 175, 112, 111, 175, 60, 61, 64, 64, 61, 61, 176, 111, 112, 174, 60, 60, 64, 253, 11, 41, 42, 35, 101, 66, 65, 99, 34, 35, 41, 8, 4, 43, 46, 34, 98, 63, 60, 96, 34, 37, 46, 9, 2, 54, 2, 45, 1, 85, 139, 215, 74, 74, 77, 77, 74, 74, 215, 139, 254, 171, 139, 215, 73, 75, 75, 76, 74, 73, 215, 176, 26, 50, 25, 244, 102, 155, 49, 39, 41, 38, 38, 37, 111, 72, 254, 1, 107, 158, 49, 36, 38, 35, 34, 36, 111, 73, 1, 177, 28, 85, 15, 0, 1, 0, 208, 0, 0, 3, 6, 5, 176, 0, 6, 0, 0, 97, 17, 35, 5, 21, 37, 17, 3, 6, 15, 253, 217, 1, 125, 5, 176, 212, 169, 145, 251, 60, 0, 0, 1, 0, 85, 0, 0, 4, 43, 5, 196, 0, 42, 0, 0, 97, 53, 33, 1, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 51, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 7, 1, 21, 4, 43, 253, 37, 1, 135, 55, 99, 38, 37, 44, 61, 57, 57, 165, 103, 112, 175, 60, 61, 64, 186, 35, 36, 35, 107, 73, 60, 95, 34, 33, 35, 22, 26, 26, 86, 64, 254, 35, 151, 1, 168, 60, 121, 62, 62, 127, 65, 87, 148, 54, 54, 61, 72, 61, 61, 163, 92, 68, 110, 39, 38, 42, 41, 35, 35, 95, 54, 44, 83, 46, 47, 110, 71, 253, 238, 133, 0, 1, 0, 94, 255, 236, 3, 249, 5, 196, 0, 76, 0, 0, 65, 21, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 35, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 51, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 1, 134, 132, 69, 115, 41, 40, 45, 39, 36, 36, 102, 63, 63, 103, 36, 36, 39, 185, 73, 62, 62, 169, 96, 98, 169, 62, 62, 70, 23, 28, 29, 95, 71, 59, 85, 27, 27, 26, 64, 58, 58, 162, 98, 101, 165, 59, 59, 65, 186, 38, 35, 34, 97, 59, 61, 95, 32, 33, 34, 38, 36, 37, 107, 70, 3, 49, 150, 32, 33, 33, 99, 68, 69, 101, 34, 34, 33, 36, 33, 33, 94, 57, 96, 150, 52, 52, 54, 57, 55, 54, 158, 102, 50, 102, 46, 46, 74, 23, 25, 75, 43, 42, 90, 42, 101, 154, 52, 52, 53, 63, 54, 55, 147, 83, 57, 92, 33, 33, 35, 31, 31, 32, 97, 65, 55, 92, 33, 33, 38, 0, 0, 2, 0, 75, 0, 0, 4, 103, 5, 176, 0, 10, 0, 14, 0, 0, 65, 17, 35, 1, 21, 33, 17, 51, 17, 51, 53, 33, 1, 55, 17, 3, 156, 197, 253, 116, 2, 152, 185, 203, 252, 177, 1, 173, 30, 1, 233, 3, 199, 252, 15, 109, 254, 174, 1, 82, 151, 2, 153, 56, 253, 47, 0, 1, 0, 187, 255, 236, 4, 79, 5, 176, 0, 48, 0, 0, 83, 23, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 35, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 19, 33, 53, 33, 240, 148, 25, 47, 27, 27, 67, 46, 70, 108, 37, 37, 39, 35, 34, 35, 102, 66, 117, 149, 17, 176, 10, 79, 62, 61, 158, 89, 116, 172, 57, 56, 56, 60, 56, 56, 160, 101, 79, 120, 43, 41, 2, 79, 253, 21, 2, 218, 38, 22, 34, 12, 12, 13, 50, 43, 44, 118, 68, 75, 122, 43, 44, 47, 128, 124, 101, 152, 50, 50, 50, 73, 65, 64, 178, 104, 110, 180, 64, 63, 70, 38, 25, 1, 132, 180, 0, 0, 2, 0, 141, 255, 236, 4, 37, 5, 177, 0, 39, 0, 64, 0, 0, 65, 35, 34, 6, 7, 6, 2, 21, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 54, 54, 55, 54, 54, 51, 51, 3, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 53, 54, 54, 55, 54, 54, 3, 88, 16, 156, 246, 86, 125, 86, 64, 65, 58, 170, 112, 111, 169, 57, 57, 57, 48, 51, 51, 158, 109, 50, 91, 39, 40, 68, 26, 6, 65, 63, 60, 184, 132, 16, 242, 67, 100, 33, 33, 32, 35, 34, 35, 100, 65, 56, 102, 39, 39, 46, 17, 58, 38, 38, 88, 5, 177, 87, 86, 125, 254, 160, 182, 87, 106, 211, 79, 72, 90, 78, 68, 67, 180, 102, 89, 172, 68, 68, 83, 23, 19, 20, 53, 31, 96, 182, 66, 63, 75, 254, 22, 56, 47, 47, 121, 64, 72, 123, 44, 44, 50, 53, 51, 51, 149, 96, 62, 46, 76, 27, 27, 30, 0, 0, 1, 0, 112, 0, 0, 4, 72, 5, 176, 0, 6, 0, 0, 65, 53, 33, 21, 33, 1, 51, 4, 72, 252, 40, 3, 20, 253, 167, 194, 5, 72, 104, 162, 250, 242, 0, 3, 0, 177, 255, 236, 4, 79, 5, 196, 0, 47, 0, 71, 0, 95, 0, 0, 65, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 23, 6, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 3, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 3, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 4, 46, 66, 58, 58, 158, 92, 93, 157, 56, 57, 64, 30, 27, 27, 78, 48, 56, 90, 32, 32, 34, 72, 63, 62, 169, 98, 96, 168, 63, 62, 73, 35, 32, 33, 91, 56, 32, 56, 23, 48, 54, 151, 41, 36, 37, 102, 61, 64, 103, 36, 36, 39, 39, 36, 36, 102, 63, 61, 103, 37, 37, 41, 34, 36, 32, 33, 90, 53, 54, 89, 32, 33, 35, 35, 32, 32, 88, 54, 54, 90, 33, 32, 37, 4, 52, 95, 149, 51, 51, 54, 54, 51, 51, 149, 95, 54, 98, 41, 42, 67, 24, 24, 72, 45, 46, 109, 61, 100, 154, 52, 53, 54, 55, 53, 52, 154, 99, 61, 108, 46, 46, 71, 24, 16, 40, 23, 48, 127, 253, 162, 63, 99, 34, 34, 36, 36, 34, 34, 99, 63, 61, 102, 37, 36, 40, 40, 36, 37, 102, 2, 103, 56, 92, 32, 33, 35, 35, 33, 32, 91, 57, 57, 93, 33, 33, 35, 37, 33, 34, 92, 0, 0, 2, 0, 149, 255, 255, 4, 41, 5, 196, 0, 40, 0, 65, 0, 0, 101, 35, 21, 51, 50, 54, 55, 54, 18, 53, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 21, 6, 6, 7, 6, 6, 19, 34, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 21, 6, 6, 7, 6, 6, 1, 117, 19, 19, 180, 251, 71, 118, 72, 66, 66, 56, 165, 112, 112, 169, 56, 57, 57, 48, 51, 51, 157, 108, 56, 95, 39, 39, 62, 24, 5, 48, 69, 57, 187, 81, 67, 99, 32, 33, 32, 36, 35, 34, 100, 65, 57, 101, 39, 38, 45, 17, 59, 37, 38, 89, 164, 165, 99, 80, 132, 1, 85, 169, 67, 119, 239, 80, 68, 83, 81, 68, 69, 183, 103, 88, 174, 69, 69, 85, 23, 20, 20, 53, 30, 2, 92, 172, 75, 61, 67, 1, 220, 59, 48, 48, 123, 64, 72, 125, 46, 45, 52, 56, 52, 53, 152, 97, 60, 47, 77, 28, 29, 31, 0, 1, 1, 130, 2, 153, 2, 246, 5, 174, 0, 6, 0, 0, 65, 17, 35, 5, 21, 55, 17, 2, 246, 18, 254, 158, 215, 2, 153, 3, 21, 117, 128, 57, 253, 167, 0, 1, 1, 60, 2, 155, 3, 166, 5, 187, 0, 42, 0, 0, 65, 53, 33, 55, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 51, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 7, 1, 21, 3, 166, 254, 113, 175, 43, 71, 26, 25, 27, 40, 37, 37, 106, 66, 69, 111, 39, 39, 42, 158, 18, 18, 18, 55, 37, 29, 47, 16, 16, 16, 19, 21, 14, 41, 26, 254, 224, 2, 155, 128, 145, 39, 71, 35, 34, 71, 40, 55, 87, 31, 31, 33, 41, 35, 36, 96, 54, 29, 49, 17, 18, 20, 16, 15, 15, 40, 24, 21, 47, 28, 19, 43, 24, 254, 241, 108, 0, 1, 1, 67, 2, 143, 3, 159, 5, 186, 0, 76, 0, 0, 65, 21, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 35, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 51, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 2, 14, 84, 45, 69, 20, 12, 13, 16, 16, 18, 57, 36, 35, 57, 19, 16, 18, 158, 51, 42, 41, 107, 57, 64, 112, 42, 41, 47, 20, 21, 18, 55, 36, 27, 44, 16, 24, 25, 43, 39, 39, 108, 64, 60, 104, 38, 39, 45, 157, 13, 11, 17, 56, 35, 32, 49, 17, 17, 18, 23, 23, 18, 51, 31, 4, 101, 116, 20, 22, 13, 36, 24, 24, 39, 14, 16, 18, 18, 16, 14, 36, 21, 61, 88, 28, 29, 27, 31, 29, 29, 86, 56, 37, 61, 23, 21, 32, 10, 10, 28, 17, 24, 59, 33, 55, 84, 29, 28, 29, 31, 28, 29, 82, 51, 17, 29, 10, 18, 18, 14, 13, 14, 39, 23, 28, 44, 14, 11, 12, 0, 0, 2, 1, 28, 2, 179, 3, 177, 5, 196, 0, 52, 0, 72, 0, 0, 65, 51, 38, 38, 53, 17, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 23, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 21, 35, 34, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 51, 54, 54, 55, 54, 54, 55, 22, 22, 39, 34, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 51, 51, 21, 6, 6, 7, 6, 6, 3, 12, 165, 14, 12, 42, 37, 38, 107, 65, 69, 114, 40, 41, 45, 1, 161, 18, 16, 19, 59, 37, 31, 46, 16, 16, 16, 1, 141, 77, 123, 42, 43, 46, 32, 31, 32, 94, 60, 48, 78, 30, 22, 35, 13, 3, 11, 201, 35, 51, 16, 12, 12, 18, 18, 21, 69, 44, 140, 8, 39, 25, 26, 59, 2, 193, 45, 88, 48, 1, 58, 68, 104, 35, 34, 35, 34, 31, 31, 86, 51, 12, 23, 37, 13, 16, 16, 17, 16, 17, 52, 33, 52, 29, 28, 29, 88, 57, 52, 83, 29, 30, 33, 1, 24, 19, 14, 35, 18, 26, 49, 101, 16, 15, 11, 32, 20, 22, 38, 15, 18, 22, 109, 18, 36, 14, 15, 17, 0, 0, 2, 1, 16, 2, 178, 3, 188, 5, 196, 0, 25, 0, 51, 0, 0, 65, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 23, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 1, 16, 48, 45, 44, 127, 80, 79, 126, 44, 44, 47, 47, 44, 45, 127, 79, 79, 126, 44, 45, 48, 163, 22, 23, 22, 67, 45, 45, 67, 23, 22, 23, 23, 22, 22, 67, 44, 46, 68, 22, 23, 22, 4, 117, 117, 72, 123, 44, 45, 50, 50, 45, 44, 123, 72, 117, 73, 123, 45, 44, 50, 50, 44, 45, 123, 190, 117, 41, 71, 27, 26, 30, 30, 26, 27, 71, 41, 117, 42, 71, 26, 26, 30, 30, 26, 26, 71, 0, 3, 0, 36, 0, 0, 4, 150, 5, 177, 0, 6, 0, 49, 0, 53, 0, 0, 65, 17, 35, 5, 21, 55, 17, 1, 53, 33, 55, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 51, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 7, 5, 21, 37, 1, 39, 1, 1, 115, 16, 254, 193, 194, 3, 176, 254, 153, 157, 39, 64, 23, 23, 24, 36, 33, 34, 95, 59, 62, 100, 35, 36, 37, 142, 1, 16, 17, 16, 49, 32, 26, 41, 14, 15, 16, 14, 15, 13, 40, 27, 254, 253, 254, 219, 2, 2, 114, 253, 255, 2, 235, 2, 198, 105, 115, 51, 253, 227, 253, 21, 115, 131, 35, 64, 31, 31, 64, 36, 49, 79, 27, 28, 30, 37, 31, 33, 86, 49, 27, 44, 17, 15, 17, 14, 12, 14, 37, 22, 17, 37, 22, 19, 44, 25, 244, 97, 221, 3, 186, 66, 252, 70, 0, 0, 4, 0, 48, 0, 0, 4, 140, 5, 181, 0, 6, 0, 17, 0, 21, 0, 25, 0, 0, 65, 17, 35, 5, 21, 55, 17, 1, 17, 35, 1, 23, 33, 21, 51, 53, 51, 53, 33, 55, 55, 17, 5, 1, 39, 1, 1, 127, 16, 254, 193, 194, 3, 58, 145, 254, 173, 5, 1, 82, 141, 96, 254, 74, 186, 15, 253, 243, 2, 2, 114, 253, 255, 2, 239, 2, 198, 105, 115, 51, 253, 227, 254, 30, 1, 185, 254, 46, 92, 152, 152, 117, 235, 25, 254, 252, 48, 3, 186, 66, 252, 70, 0, 4, 0, 38, 0, 0, 4, 173, 5, 184, 0, 10, 0, 14, 0, 91, 0, 95, 0, 0, 65, 17, 35, 1, 23, 33, 21, 51, 53, 51, 53, 33, 55, 55, 17, 1, 21, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 35, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 51, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 19, 1, 39, 1, 4, 77, 145, 254, 173, 5, 1, 82, 141, 96, 254, 74, 186, 15, 253, 29, 75, 34, 55, 19, 17, 18, 15, 14, 18, 49, 32, 34, 52, 17, 14, 14, 142, 46, 38, 36, 97, 51, 58, 100, 38, 37, 42, 21, 22, 16, 46, 30, 25, 39, 16, 20, 23, 39, 35, 35, 97, 58, 54, 93, 35, 35, 40, 141, 14, 12, 16, 48, 29, 31, 47, 15, 13, 14, 19, 18, 17, 47, 31, 173, 2, 2, 114, 253, 255, 1, 13, 1, 185, 254, 46, 92, 152, 152, 117, 235, 25, 254, 252, 3, 120, 104, 13, 13, 12, 39, 27, 21, 36, 13, 14, 16, 18, 16, 11, 32, 18, 55, 79, 25, 27, 24, 28, 26, 26, 78, 50, 36, 59, 21, 16, 26, 8, 9, 25, 15, 22, 53, 30, 49, 76, 26, 25, 26, 28, 25, 26, 74, 46, 17, 28, 11, 13, 14, 15, 14, 12, 33, 19, 23, 38, 13, 11, 13, 252, 87, 3, 186, 66, 252, 70, 0, 0, 2, 0, 32, 0, 0, 4, 171, 5, 176, 0, 15, 0, 18, 0, 0, 97, 53, 33, 3, 33, 53, 33, 3, 33, 53, 33, 1, 51, 19, 33, 19, 3, 19, 19, 4, 171, 254, 155, 1, 1, 46, 254, 210, 2, 1, 81, 253, 188, 253, 208, 198, 123, 1, 54, 1, 250, 247, 2, 151, 2, 19, 151, 1, 215, 152, 250, 80, 1, 97, 254, 159, 2, 15, 2, 194, 253, 62, 0, 3, 0, 43, 255, 236, 4, 169, 4, 78, 0, 87, 0, 112, 0, 130, 0, 0, 69, 50, 54, 55, 54, 54, 55, 39, 6, 6, 7, 6, 6, 35, 6, 38, 39, 38, 38, 39, 38, 38, 53, 53, 33, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 23, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 21, 35, 34, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 22, 22, 23, 22, 22, 37, 34, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 51, 51, 20, 22, 21, 20, 20, 21, 6, 6, 7, 6, 6, 1, 33, 53, 52, 54, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 3, 128, 59, 93, 35, 34, 46, 13, 46, 16, 38, 23, 24, 59, 38, 60, 87, 28, 21, 26, 6, 7, 9, 1, 249, 43, 42, 42, 123, 81, 47, 82, 34, 20, 37, 16, 16, 39, 22, 35, 85, 50, 72, 118, 41, 42, 45, 179, 19, 18, 19, 53, 32, 31, 46, 16, 19, 18, 63, 101, 154, 51, 49, 50, 39, 37, 37, 108, 71, 48, 80, 33, 33, 51, 19, 17, 43, 25, 42, 106, 254, 51, 36, 55, 18, 19, 19, 31, 29, 29, 84, 53, 61, 1, 13, 30, 16, 20, 42, 2, 114, 254, 183, 9, 8, 10, 29, 23, 17, 49, 29, 37, 58, 20, 20, 20, 20, 19, 13, 13, 29, 10, 136, 11, 24, 10, 11, 14, 1, 33, 27, 20, 48, 26, 28, 64, 36, 86, 234, 84, 137, 49, 48, 53, 22, 22, 12, 32, 19, 21, 35, 12, 20, 19, 43, 39, 40, 111, 69, 8, 37, 58, 20, 21, 22, 19, 18, 22, 66, 42, 148, 49, 46, 45, 129, 81, 69, 113, 39, 40, 44, 24, 20, 20, 53, 29, 27, 44, 18, 28, 29, 150, 24, 21, 20, 55, 31, 43, 77, 30, 29, 35, 65, 66, 63, 43, 39, 17, 13, 24, 10, 11, 14, 1, 254, 69, 30, 58, 26, 30, 45, 21, 15, 16, 31, 25, 26, 65, 35, 0, 2, 0, 79, 255, 236, 4, 166, 5, 196, 0, 29, 0, 49, 0, 0, 97, 53, 33, 17, 33, 53, 33, 17, 33, 53, 33, 38, 38, 35, 34, 6, 7, 6, 6, 21, 17, 20, 22, 23, 22, 22, 51, 50, 54, 55, 37, 34, 38, 39, 38, 38, 53, 17, 52, 54, 55, 54, 54, 51, 50, 22, 23, 17, 6, 6, 4, 166, 254, 105, 1, 88, 254, 168, 1, 141, 254, 94, 62, 134, 69, 97, 155, 54, 54, 58, 59, 55, 54, 155, 97, 69, 132, 62, 254, 249, 57, 88, 30, 30, 30, 30, 29, 29, 88, 57, 26, 50, 25, 25, 49, 151, 2, 13, 152, 1, 220, 152, 8, 12, 68, 66, 66, 195, 128, 254, 61, 128, 195, 66, 66, 67, 13, 7, 131, 37, 43, 43, 143, 105, 1, 197, 105, 141, 43, 43, 37, 2, 2, 251, 94, 1, 2, 0, 0, 3, 0, 46, 255, 236, 4, 176, 4, 78, 0, 67, 0, 99, 0, 117, 0, 0, 83, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 39, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 38, 38, 53, 53, 33, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 19, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 22, 22, 21, 21, 20, 6, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 1, 50, 22, 23, 22, 22, 21, 21, 33, 53, 52, 54, 55, 54, 54, 55, 54, 54, 46, 45, 44, 44, 128, 83, 52, 89, 37, 21, 39, 16, 15, 36, 20, 38, 97, 57, 48, 76, 30, 30, 45, 17, 55, 16, 36, 23, 23, 58, 35, 29, 46, 18, 19, 30, 10, 8, 5, 1, 202, 38, 39, 40, 121, 83, 43, 80, 34, 22, 39, 17, 15, 36, 21, 37, 92, 55, 82, 128, 43, 44, 45, 186, 18, 19, 18, 59, 42, 42, 61, 19, 9, 14, 5, 4, 5, 9, 6, 5, 29, 24, 14, 44, 26, 43, 60, 19, 19, 17, 2, 135, 37, 51, 17, 16, 15, 254, 239, 6, 4, 7, 31, 21, 15, 34, 2, 127, 198, 105, 170, 60, 60, 66, 26, 25, 15, 38, 23, 21, 36, 14, 28, 28, 16, 13, 13, 34, 18, 126, 14, 24, 10, 10, 12, 19, 19, 20, 62, 41, 31, 71, 39, 64, 181, 91, 156, 57, 57, 64, 25, 25, 15, 40, 24, 22, 37, 14, 27, 29, 66, 61, 61, 170, 254, 209, 198, 67, 115, 41, 41, 47, 46, 41, 20, 49, 27, 28, 65, 35, 198, 44, 80, 34, 29, 63, 26, 16, 19, 46, 41, 41, 115, 2, 65, 37, 30, 31, 78, 42, 85, 4, 34, 63, 27, 45, 78, 22, 15, 15, 0, 2, 0, 73, 255, 236, 4, 42, 5, 241, 0, 43, 0, 71, 0, 0, 65, 55, 39, 7, 38, 38, 39, 7, 22, 22, 23, 7, 23, 37, 22, 22, 23, 38, 38, 35, 34, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 54, 54, 53, 53, 52, 2, 1, 34, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 20, 22, 21, 21, 20, 6, 7, 6, 6, 7, 6, 6, 3, 77, 211, 73, 230, 63, 143, 80, 57, 46, 87, 41, 239, 73, 1, 10, 62, 90, 23, 57, 153, 88, 105, 179, 65, 66, 73, 72, 66, 65, 181, 108, 71, 128, 55, 63, 98, 34, 25, 27, 117, 254, 132, 74, 115, 39, 40, 42, 42, 40, 39, 112, 69, 125, 160, 34, 1, 18, 16, 21, 61, 39, 33, 79, 5, 6, 121, 100, 132, 51, 73, 22, 159, 16, 41, 27, 137, 99, 152, 63, 168, 110, 56, 68, 73, 67, 67, 188, 115, 102, 178, 66, 66, 75, 35, 33, 39, 120, 76, 61, 145, 82, 62, 206, 1, 73, 251, 242, 59, 48, 47, 121, 62, 73, 130, 49, 49, 57, 86, 54, 13, 24, 13, 64, 62, 112, 47, 58, 86, 27, 24, 25, 0, 2, 0, 168, 0, 0, 4, 94, 5, 176, 0, 18, 0, 33, 0, 0, 65, 35, 17, 51, 17, 33, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 33, 21, 33, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 33, 1, 97, 185, 185, 1, 21, 117, 181, 63, 62, 65, 65, 62, 63, 181, 117, 254, 235, 1, 21, 78, 115, 37, 37, 36, 36, 37, 38, 114, 78, 254, 235, 5, 176, 250, 80, 1, 57, 63, 57, 56, 156, 93, 93, 156, 57, 56, 63, 152, 45, 38, 39, 99, 54, 53, 98, 37, 38, 45, 0, 0, 2, 0, 173, 254, 96, 4, 63, 6, 22, 0, 29, 0, 55, 0, 0, 65, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 17, 35, 17, 51, 17, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 39, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 17, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 4, 63, 54, 53, 53, 158, 104, 58, 101, 42, 30, 53, 23, 185, 185, 23, 53, 30, 43, 102, 59, 102, 156, 54, 53, 54, 185, 34, 35, 35, 110, 76, 50, 82, 32, 28, 44, 18, 18, 47, 30, 31, 79, 47, 77, 110, 36, 35, 34, 2, 17, 21, 121, 203, 73, 73, 82, 23, 23, 16, 43, 27, 2, 76, 248, 74, 2, 11, 26, 41, 15, 22, 23, 84, 74, 74, 201, 137, 21, 79, 144, 55, 55, 65, 25, 22, 19, 51, 30, 2, 6, 32, 54, 19, 21, 23, 64, 54, 55, 143, 0, 1, 0, 186, 0, 0, 4, 114, 4, 58, 0, 12, 0, 0, 65, 1, 51, 1, 1, 35, 1, 7, 17, 35, 17, 51, 17, 2, 9, 1, 127, 234, 254, 20, 1, 200, 223, 254, 114, 110, 185, 185, 1, 221, 254, 35, 2, 91, 1, 223, 254, 101, 120, 2, 19, 251, 198, 1, 88, 0, 0, 1, 0, 169, 255, 235, 4, 76, 6, 22, 0, 81, 0, 0, 97, 17, 54, 54, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 7, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 17, 1, 97, 1, 119, 99, 32, 63, 25, 24, 30, 20, 15, 16, 36, 15, 16, 20, 46, 34, 34, 80, 34, 34, 45, 21, 22, 22, 68, 47, 34, 69, 31, 32, 53, 18, 42, 20, 68, 41, 40, 88, 41, 76, 127, 46, 46, 51, 45, 34, 34, 80, 34, 34, 45, 39, 24, 24, 40, 56, 49, 49, 130, 75, 85, 144, 52, 53, 59, 4, 63, 155, 164, 26, 25, 26, 75, 50, 38, 63, 29, 30, 55, 29, 30, 66, 39, 68, 103, 41, 42, 71, 34, 35, 77, 47, 38, 64, 24, 24, 27, 15, 12, 11, 27, 11, 155, 16, 26, 9, 10, 11, 42, 42, 42, 126, 85, 65, 100, 41, 41, 70, 35, 35, 74, 46, 50, 77, 42, 42, 107, 79, 86, 127, 42, 42, 41, 63, 60, 60, 176, 112, 251, 193, 0, 0, 2, 0, 177, 255, 236, 4, 95, 4, 79, 0, 42, 0, 56, 0, 0, 65, 34, 6, 7, 6, 6, 7, 23, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 20, 22, 21, 33, 21, 20, 22, 23, 22, 22, 51, 22, 54, 55, 54, 54, 53, 53, 52, 38, 39, 38, 38, 3, 34, 38, 39, 38, 38, 53, 53, 33, 6, 6, 7, 6, 6, 2, 97, 75, 125, 49, 50, 75, 27, 73, 25, 61, 36, 42, 103, 61, 78, 118, 41, 37, 44, 5, 1, 253, 12, 56, 57, 57, 173, 117, 96, 175, 67, 66, 78, 71, 66, 66, 189, 90, 71, 104, 33, 34, 33, 2, 53, 11, 50, 37, 38, 97, 4, 79, 23, 19, 19, 48, 25, 125, 21, 37, 14, 17, 19, 58, 50, 47, 123, 70, 5, 10, 5, 121, 105, 177, 64, 64, 72, 1, 80, 72, 71, 198, 117, 44, 117, 198, 73, 72, 81, 252, 53, 45, 38, 38, 100, 54, 26, 64, 110, 40, 41, 46, 0, 1, 0, 162, 255, 48, 4, 69, 6, 156, 0, 79, 0, 0, 65, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 35, 20, 22, 23, 22, 22, 23, 21, 51, 53, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 38, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 51, 38, 38, 39, 38, 38, 39, 53, 35, 21, 6, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 23, 22, 22, 23, 22, 22, 3, 139, 39, 36, 36, 104, 65, 51, 100, 39, 40, 50, 185, 66, 55, 55, 143, 78, 149, 87, 143, 50, 50, 55, 55, 52, 52, 150, 94, 77, 109, 34, 35, 32, 29, 28, 30, 95, 64, 59, 92, 32, 31, 33, 184, 1, 60, 57, 44, 120, 73, 149, 81, 133, 46, 47, 51, 58, 54, 53, 150, 93, 74, 108, 34, 34, 31, 1, 119, 55, 87, 30, 31, 32, 28, 33, 33, 111, 84, 113, 162, 53, 54, 56, 8, 191, 192, 9, 60, 50, 49, 138, 87, 89, 134, 51, 51, 76, 31, 26, 55, 32, 32, 78, 50, 51, 83, 30, 33, 36, 46, 40, 41, 113, 67, 115, 177, 60, 45, 57, 10, 220, 220, 10, 62, 50, 51, 136, 84, 89, 136, 52, 53, 76, 29, 24, 57, 33, 33, 77, 0, 1, 0, 147, 255, 11, 4, 55, 5, 38, 0, 57, 0, 0, 101, 34, 38, 39, 38, 38, 53, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 51, 52, 38, 39, 38, 38, 39, 53, 35, 21, 6, 6, 7, 6, 6, 21, 21, 20, 22, 23, 22, 22, 23, 21, 51, 53, 54, 54, 55, 54, 54, 55, 35, 6, 6, 7, 6, 6, 2, 127, 87, 117, 35, 36, 31, 31, 36, 36, 117, 86, 56, 97, 35, 35, 41, 1, 175, 53, 48, 48, 132, 80, 185, 96, 145, 48, 48, 49, 49, 48, 48, 145, 96, 185, 73, 131, 49, 49, 58, 1, 175, 1, 45, 37, 37, 95, 130, 69, 56, 55, 139, 71, 42, 70, 138, 56, 55, 69, 38, 33, 33, 87, 49, 73, 130, 51, 51, 69, 12, 222, 226, 18, 99, 71, 72, 175, 95, 42, 95, 176, 71, 71, 99, 18, 235, 232, 12, 66, 48, 47, 117, 64, 45, 77, 28, 29, 32, 0, 0, 1, 0, 113, 0, 0, 4, 124, 5, 196, 0, 51, 0, 0, 65, 33, 53, 33, 3, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 51, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 19, 35, 21, 51, 23, 20, 6, 7, 6, 6, 7, 35, 21, 33, 55, 33, 54, 54, 55, 54, 54, 53, 1, 207, 1, 59, 254, 192, 8, 37, 32, 32, 89, 51, 48, 87, 34, 33, 39, 186, 56, 52, 53, 152, 96, 96, 164, 59, 59, 67, 9, 160, 165, 8, 8, 11, 11, 37, 27, 75, 4, 6, 1, 253, 30, 13, 19, 7, 11, 11, 2, 114, 152, 1, 5, 67, 107, 37, 36, 39, 27, 28, 29, 89, 63, 87, 142, 51, 51, 56, 60, 56, 57, 162, 102, 254, 251, 152, 226, 32, 81, 36, 37, 56, 7, 151, 151, 19, 44, 24, 37, 83, 42, 0, 0, 1, 0, 33, 0, 0, 4, 171, 5, 176, 0, 25, 0, 0, 97, 51, 17, 33, 53, 33, 53, 33, 53, 33, 1, 35, 1, 7, 35, 39, 1, 35, 1, 33, 21, 33, 21, 33, 21, 33, 2, 6, 185, 1, 133, 254, 123, 1, 133, 254, 194, 1, 165, 212, 254, 190, 46, 2, 46, 254, 190, 212, 1, 165, 254, 196, 1, 124, 254, 132, 1, 124, 1, 70, 120, 169, 121, 2, 208, 253, 177, 85, 86, 2, 78, 253, 48, 121, 169, 120, 0, 1, 0, 160, 254, 75, 4, 74, 6, 43, 0, 47, 0, 0, 65, 53, 35, 39, 52, 54, 55, 54, 54, 55, 50, 22, 23, 55, 38, 38, 35, 34, 6, 7, 6, 6, 21, 21, 35, 21, 51, 17, 6, 6, 7, 6, 6, 35, 34, 38, 39, 7, 22, 22, 51, 50, 54, 55, 54, 54, 53, 17, 3, 127, 212, 1, 30, 32, 31, 98, 65, 40, 71, 26, 23, 47, 89, 47, 96, 154, 54, 55, 58, 177, 177, 1, 33, 32, 21, 57, 34, 22, 95, 29, 14, 39, 80, 41, 85, 135, 47, 46, 50, 3, 171, 143, 99, 58, 90, 30, 31, 31, 1, 16, 13, 147, 17, 22, 52, 50, 51, 149, 96, 99, 143, 252, 33, 65, 98, 30, 19, 21, 16, 16, 148, 20, 16, 51, 49, 48, 144, 93, 3, 223, 255, 255, 0, 17, 0, 0, 4, 61, 5, 176, 6, 38, 0, 7, 0, 0, 0, 7, 2, 106, 254, 220, 254, 127, 0, 1, 0, 105, 0, 0, 4, 118, 5, 196, 0, 59, 0, 0, 65, 53, 33, 39, 33, 53, 33, 39, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 51, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 23, 35, 21, 51, 23, 35, 21, 51, 23, 20, 6, 7, 6, 6, 7, 35, 21, 33, 55, 33, 54, 54, 55, 54, 54, 53, 39, 3, 34, 254, 167, 4, 1, 93, 254, 159, 6, 37, 32, 32, 89, 51, 48, 87, 34, 33, 40, 185, 56, 52, 53, 152, 96, 96, 163, 59, 60, 66, 6, 159, 163, 5, 168, 172, 3, 9, 11, 11, 36, 27, 75, 4, 6, 1, 253, 30, 14, 22, 7, 9, 8, 3, 1, 215, 122, 138, 123, 185, 67, 107, 37, 36, 39, 27, 28, 29, 89, 63, 87, 142, 51, 51, 56, 60, 56, 57, 162, 102, 185, 123, 138, 122, 71, 32, 81, 36, 37, 56, 7, 151, 151, 22, 52, 29, 34, 75, 37, 71, 0, 0, 2, 0, 127, 255, 236, 4, 179, 5, 176, 0, 45, 0, 60, 0, 0, 65, 53, 35, 17, 35, 17, 35, 38, 38, 39, 38, 38, 35, 35, 17, 51, 17, 51, 50, 54, 55, 54, 54, 55, 51, 17, 20, 22, 23, 22, 22, 51, 50, 54, 55, 39, 6, 6, 35, 34, 38, 39, 38, 38, 53, 17, 5, 17, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 4, 158, 176, 185, 89, 8, 54, 44, 44, 123, 78, 254, 185, 69, 78, 123, 45, 44, 53, 8, 89, 35, 32, 31, 86, 52, 42, 81, 23, 25, 12, 43, 20, 21, 36, 12, 13, 15, 253, 74, 69, 45, 65, 20, 20, 19, 19, 20, 21, 64, 45, 3, 171, 143, 1, 6, 254, 250, 82, 137, 50, 49, 56, 250, 80, 2, 53, 55, 50, 49, 138, 82, 253, 125, 83, 120, 38, 39, 36, 22, 17, 132, 4, 10, 17, 19, 18, 60, 44, 2, 132, 223, 2, 76, 50, 41, 42, 107, 56, 56, 104, 41, 41, 50, 0, 0, 2, 0, 103, 255, 229, 4, 146, 4, 56, 0, 35, 0, 59, 0, 0, 101, 23, 55, 39, 54, 54, 53, 52, 38, 39, 55, 39, 7, 38, 38, 35, 34, 6, 7, 39, 7, 23, 6, 6, 21, 20, 22, 23, 7, 23, 55, 22, 22, 51, 50, 54, 1, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 3, 163, 107, 132, 116, 36, 40, 44, 40, 124, 132, 120, 60, 144, 80, 80, 143, 60, 117, 131, 120, 42, 44, 40, 38, 112, 131, 104, 62, 149, 85, 85, 150, 253, 208, 50, 44, 43, 119, 69, 69, 118, 44, 43, 49, 49, 43, 44, 118, 69, 69, 119, 43, 44, 50, 84, 111, 136, 119, 62, 145, 80, 85, 152, 64, 128, 136, 125, 45, 49, 48, 44, 122, 135, 124, 65, 154, 86, 81, 147, 63, 115, 135, 108, 48, 54, 54, 1, 225, 74, 132, 50, 49, 58, 58, 49, 50, 132, 74, 74, 132, 49, 50, 59, 59, 50, 49, 132, 0, 2, 1, 230, 255, 245, 2, 204, 5, 176, 0, 3, 0, 15, 0, 0, 65, 17, 35, 17, 3, 20, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 2, 178, 186, 18, 57, 57, 57, 59, 59, 57, 57, 57, 1, 215, 3, 217, 252, 39, 254, 138, 46, 62, 62, 46, 48, 64, 64, 0, 0, 2, 1, 242, 254, 140, 2, 216, 4, 79, 0, 3, 0, 15, 0, 0, 65, 17, 51, 17, 19, 52, 38, 35, 34, 6, 21, 20, 22, 51, 50, 54, 2, 10, 185, 21, 59, 56, 57, 58, 58, 57, 56, 59, 2, 99, 252, 41, 3, 215, 1, 123, 48, 65, 65, 48, 46, 63, 63, 0, 0, 2, 0, 191, 255, 245, 4, 27, 5, 196, 0, 49, 0, 61, 0, 0, 65, 51, 52, 54, 55, 54, 54, 55, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 51, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 7, 6, 6, 7, 6, 6, 3, 20, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 1, 255, 185, 4, 8, 8, 33, 30, 47, 97, 39, 39, 50, 58, 55, 55, 159, 101, 91, 157, 57, 58, 68, 1, 185, 42, 35, 34, 89, 47, 61, 94, 31, 28, 29, 38, 29, 30, 71, 34, 50, 60, 16, 16, 10, 22, 57, 57, 57, 59, 59, 57, 57, 57, 1, 154, 39, 61, 27, 27, 52, 29, 42, 98, 57, 56, 127, 72, 90, 140, 49, 49, 51, 49, 46, 47, 134, 84, 52, 75, 25, 24, 23, 32, 31, 28, 81, 52, 50, 90, 40, 41, 74, 35, 46, 67, 36, 37, 93, 254, 127, 46, 62, 62, 46, 48, 64, 64, 0, 2, 0, 204, 254, 120, 4, 0, 4, 77, 0, 49, 0, 61, 0, 0, 65, 35, 20, 6, 7, 6, 6, 7, 6, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 35, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 55, 54, 54, 55, 54, 54, 3, 20, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 2, 212, 185, 3, 7, 8, 32, 29, 45, 91, 36, 37, 47, 55, 53, 52, 153, 97, 87, 149, 55, 55, 63, 1, 185, 38, 31, 32, 81, 43, 56, 87, 28, 27, 27, 35, 28, 27, 66, 31, 49, 59, 15, 15, 9, 214, 58, 57, 57, 58, 58, 57, 57, 58, 2, 161, 39, 60, 26, 27, 50, 29, 43, 99, 56, 57, 128, 72, 90, 140, 49, 49, 51, 49, 47, 46, 134, 84, 52, 75, 24, 25, 23, 31, 30, 28, 82, 53, 51, 90, 41, 41, 75, 35, 45, 67, 36, 36, 92, 1, 130, 46, 63, 63, 46, 48, 65, 65, 0, 1, 1, 98, 254, 176, 2, 131, 0, 219, 0, 9, 0, 0, 101, 53, 35, 21, 20, 6, 7, 23, 54, 54, 2, 131, 201, 40, 48, 115, 80, 94, 43, 176, 179, 85, 158, 70, 63, 71, 208, 0, 0, 1, 1, 240, 255, 237, 3, 20, 1, 7, 0, 11, 0, 0, 101, 20, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 1, 240, 73, 72, 71, 76, 75, 72, 73, 72, 120, 58, 81, 80, 59, 60, 83, 84, 255, 255, 2, 34, 255, 237, 3, 70, 4, 115, 4, 38, 0, 96, 50, 0, 0, 7, 0, 96, 0, 50, 3, 108, 255, 255, 1, 230, 254, 176, 3, 61, 4, 115, 4, 39, 0, 96, 0, 41, 3, 108, 0, 7, 0, 95, 0, 132, 0, 0, 255, 255, 1, 9, 255, 237, 5, 38, 1, 7, 4, 39, 0, 96, 255, 25, 0, 0, 0, 39, 0, 96, 0, 156, 0, 0, 0, 7, 0, 96, 2, 18, 0, 0, 0, 1, 1, 248, 2, 107, 2, 222, 3, 73, 0, 11, 0, 0, 65, 20, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 1, 248, 58, 57, 56, 59, 59, 56, 57, 58, 2, 217, 47, 63, 63, 47, 48, 64, 64, 0, 0, 1, 1, 154, 2, 23, 3, 49, 3, 220, 0, 25, 0, 0, 65, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 1, 154, 29, 27, 26, 75, 47, 47, 75, 27, 26, 28, 28, 26, 27, 76, 47, 47, 75, 26, 26, 29, 3, 22, 58, 43, 72, 26, 27, 29, 29, 27, 26, 72, 43, 58, 43, 73, 26, 26, 30, 30, 26, 26, 73, 0, 0, 1, 0, 155, 255, 105, 4, 48, 0, 0, 0, 3, 0, 0, 69, 53, 33, 21, 4, 48, 252, 107, 151, 151, 151, 0, 0, 1, 0, 218, 2, 49, 3, 215, 2, 201, 0, 3, 0, 0, 65, 53, 33, 21, 3, 215, 253, 3, 2, 49, 152, 152, 0, 1, 0, 74, 2, 139, 4, 135, 3, 34, 0, 3, 0, 0, 65, 53, 33, 21, 4, 135, 251, 195, 2, 139, 151, 151, 0, 1, 0, 79, 2, 139, 4, 140, 3, 34, 0, 3, 0, 0, 65, 53, 33, 21, 4, 140, 251, 195, 2, 139, 151, 151, 0, 1, 1, 238, 4, 33, 2, 141, 6, 0, 0, 5, 0, 0, 65, 53, 35, 21, 3, 51, 2, 141, 158, 1, 138, 5, 145, 111, 127, 254, 160, 0, 0, 2, 1, 98, 4, 33, 3, 95, 6, 0, 0, 5, 0, 11, 0, 0, 65, 53, 35, 21, 3, 51, 1, 55, 35, 21, 3, 51, 1, 249, 150, 1, 130, 1, 122, 1, 150, 1, 129, 5, 147, 109, 125, 254, 158, 1, 114, 109, 125, 254, 158, 0, 0, 1, 1, 236, 4, 15, 2, 255, 6, 29, 0, 12, 0, 0, 65, 21, 51, 53, 52, 54, 55, 39, 6, 6, 7, 6, 6, 1, 236, 181, 47, 47, 101, 42, 64, 22, 23, 23, 4, 161, 146, 149, 86, 148, 71, 72, 36, 92, 50, 51, 104, 0, 0, 1, 1, 205, 4, 7, 2, 224, 6, 22, 0, 12, 0, 0, 65, 53, 35, 21, 20, 6, 7, 23, 54, 54, 55, 54, 54, 2, 224, 181, 47, 47, 101, 42, 64, 23, 22, 23, 5, 131, 147, 150, 86, 148, 71, 72, 36, 92, 51, 50, 104, 0, 0, 1, 1, 188, 254, 209, 2, 211, 0, 225, 0, 12, 0, 0, 101, 53, 35, 21, 20, 6, 7, 23, 54, 54, 55, 54, 54, 2, 211, 185, 47, 47, 105, 42, 64, 23, 22, 23, 76, 149, 151, 86, 148, 70, 73, 36, 93, 50, 50, 103, 255, 255, 1, 73, 4, 15, 3, 161, 6, 29, 4, 39, 0, 108, 255, 93, 0, 0, 0, 7, 0, 108, 0, 162, 0, 0, 255, 255, 1, 45, 4, 7, 3, 140, 6, 22, 4, 39, 0, 109, 255, 96, 0, 0, 0, 7, 0, 109, 0, 172, 0, 0, 0, 2, 1, 47, 254, 207, 3, 104, 0, 223, 0, 12, 0, 25, 0, 0, 101, 53, 35, 21, 20, 6, 7, 23, 54, 54, 55, 54, 54, 37, 53, 35, 21, 20, 6, 7, 23, 54, 54, 55, 54, 54, 2, 70, 185, 47, 47, 105, 42, 64, 23, 22, 23, 1, 34, 185, 47, 47, 105, 42, 64, 23, 22, 23, 75, 148, 151, 86, 148, 70, 73, 36, 93, 50, 50, 104, 47, 148, 151, 86, 148, 70, 73, 36, 93, 50, 50, 104, 255, 255, 1, 238, 4, 33, 2, 141, 6, 0, 6, 6, 0, 106, 0, 0, 255, 255, 1, 98, 4, 33, 3, 95, 6, 0, 6, 6, 0, 107, 0, 0, 0, 1, 1, 101, 254, 42, 3, 117, 6, 107, 0, 39, 0, 0, 65, 21, 20, 22, 23, 22, 22, 23, 22, 22, 23, 55, 38, 38, 39, 38, 38, 39, 38, 38, 53, 53, 52, 54, 55, 54, 54, 55, 54, 54, 55, 39, 6, 6, 7, 6, 6, 7, 6, 6, 1, 101, 45, 38, 37, 99, 55, 54, 111, 50, 39, 41, 81, 38, 37, 68, 26, 24, 28, 30, 27, 28, 84, 46, 31, 65, 32, 39, 50, 110, 54, 55, 99, 38, 38, 45, 2, 79, 10, 143, 252, 107, 108, 177, 69, 70, 97, 28, 113, 33, 93, 60, 63, 159, 93, 92, 218, 125, 14, 130, 226, 94, 104, 175, 65, 42, 68, 24, 122, 28, 98, 69, 69, 178, 107, 108, 252, 0, 0, 1, 1, 64, 254, 42, 3, 81, 6, 107, 0, 39, 0, 0, 65, 53, 52, 38, 39, 38, 38, 39, 38, 38, 39, 7, 22, 22, 23, 22, 22, 23, 22, 22, 21, 21, 20, 6, 7, 6, 6, 7, 6, 6, 7, 23, 54, 54, 55, 54, 54, 55, 54, 54, 3, 81, 47, 36, 37, 98, 56, 54, 112, 50, 39, 33, 70, 33, 43, 82, 29, 20, 33, 25, 23, 22, 69, 37, 39, 86, 42, 39, 50, 111, 55, 54, 99, 38, 38, 45, 2, 69, 10, 153, 245, 105, 109, 174, 71, 69, 98, 28, 113, 27, 77, 51, 65, 175, 110, 77, 220, 135, 14, 119, 209, 90, 97, 163, 65, 64, 98, 31, 113, 28, 97, 70, 69, 177, 108, 107, 252, 0, 0, 1, 1, 170, 254, 200, 3, 54, 6, 128, 0, 7, 0, 0, 65, 53, 33, 17, 33, 53, 35, 17, 3, 54, 254, 116, 1, 140, 221, 5, 232, 152, 248, 72, 152, 6, 136, 0, 0, 1, 1, 149, 254, 200, 3, 34, 6, 128, 0, 7, 0, 0, 65, 21, 51, 17, 35, 21, 33, 17, 1, 149, 222, 222, 1, 141, 6, 128, 152, 249, 120, 152, 7, 184, 0, 1, 1, 67, 254, 146, 3, 231, 6, 61, 0, 42, 0, 0, 65, 55, 38, 38, 39, 38, 38, 53, 53, 38, 38, 39, 54, 54, 53, 53, 52, 54, 55, 54, 54, 55, 39, 6, 6, 7, 6, 6, 21, 21, 20, 6, 35, 21, 22, 22, 21, 21, 20, 22, 23, 22, 22, 3, 210, 21, 62, 81, 24, 25, 20, 1, 110, 116, 116, 111, 12, 22, 21, 85, 72, 21, 101, 142, 44, 47, 43, 137, 141, 141, 137, 46, 45, 47, 142, 254, 146, 115, 2, 64, 50, 49, 123, 62, 169, 119, 181, 46, 47, 181, 120, 170, 61, 124, 50, 49, 64, 2, 115, 3, 81, 64, 67, 169, 81, 170, 145, 129, 145, 1, 130, 144, 169, 80, 163, 66, 69, 84, 0, 1, 1, 67, 254, 146, 3, 231, 6, 61, 0, 54, 0, 0, 69, 23, 54, 54, 55, 54, 54, 53, 53, 52, 54, 55, 54, 54, 55, 53, 34, 38, 39, 38, 38, 53, 53, 52, 38, 39, 38, 38, 39, 7, 22, 22, 23, 22, 22, 21, 21, 20, 22, 23, 22, 22, 23, 6, 6, 7, 6, 6, 21, 21, 20, 6, 7, 6, 6, 1, 67, 21, 98, 142, 47, 46, 44, 32, 33, 34, 107, 72, 82, 117, 33, 23, 23, 45, 51, 45, 139, 97, 20, 72, 84, 22, 21, 13, 46, 48, 25, 67, 40, 39, 65, 26, 49, 47, 21, 24, 25, 82, 251, 115, 2, 86, 67, 67, 163, 80, 169, 70, 102, 34, 35, 33, 1, 145, 43, 47, 33, 91, 60, 170, 84, 172, 69, 61, 76, 3, 115, 2, 64, 49, 50, 124, 61, 170, 78, 133, 50, 27, 44, 16, 16, 42, 26, 49, 134, 79, 169, 62, 123, 49, 50, 64, 0, 1, 1, 140, 0, 153, 3, 64, 3, 181, 0, 6, 0, 0, 65, 1, 35, 1, 21, 1, 51, 2, 62, 1, 2, 141, 254, 217, 1, 39, 141, 2, 38, 1, 143, 254, 123, 19, 254, 124, 0, 1, 1, 140, 0, 152, 3, 64, 3, 181, 0, 6, 0, 0, 65, 35, 1, 1, 51, 1, 53, 2, 26, 142, 1, 2, 254, 254, 142, 1, 38, 3, 181, 254, 113, 254, 114, 1, 133, 19, 0, 1, 0, 119, 0, 146, 4, 93, 4, 182, 0, 11, 0, 0, 65, 17, 35, 17, 33, 21, 33, 17, 51, 17, 33, 53, 2, 198, 185, 254, 106, 1, 150, 185, 1, 151, 3, 13, 1, 169, 254, 87, 184, 254, 61, 1, 195, 184, 0, 1, 0, 169, 2, 139, 3, 236, 3, 34, 0, 3, 0, 0, 65, 53, 33, 21, 3, 236, 252, 189, 2, 139, 151, 151, 0, 2, 0, 156, 0, 1, 4, 48, 4, 243, 0, 11, 0, 15, 0, 0, 65, 17, 35, 17, 33, 21, 33, 17, 51, 17, 33, 53, 3, 53, 33, 21, 2, 197, 168, 254, 127, 1, 129, 168, 1, 107, 42, 252, 189, 3, 87, 1, 156, 254, 100, 152, 254, 98, 1, 158, 152, 252, 170, 151, 151, 0, 0, 1, 0, 181, 0, 206, 4, 58, 4, 99, 0, 11, 0, 0, 83, 23, 1, 1, 55, 1, 1, 39, 1, 1, 7, 1, 181, 119, 1, 75, 1, 76, 119, 254, 181, 1, 72, 119, 254, 183, 254, 184, 119, 1, 71, 1, 73, 123, 1, 81, 254, 175, 123, 1, 81, 1, 78, 123, 254, 177, 1, 79, 123, 254, 178, 0, 0, 3, 0, 115, 0, 177, 4, 89, 4, 180, 0, 3, 0, 15, 0, 27, 0, 0, 65, 53, 33, 21, 1, 20, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 3, 20, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 4, 89, 252, 26, 1, 136, 55, 54, 54, 56, 56, 54, 54, 55, 2, 55, 54, 54, 56, 56, 54, 54, 55, 2, 88, 184, 184, 1, 241, 45, 60, 60, 45, 45, 62, 62, 252, 164, 44, 61, 61, 44, 45, 62, 62, 0, 0, 2, 0, 173, 1, 109, 4, 42, 3, 173, 0, 3, 0, 7, 0, 0, 65, 53, 33, 21, 1, 53, 33, 21, 4, 42, 252, 131, 3, 125, 252, 131, 3, 12, 161, 161, 254, 97, 160, 160, 0, 1, 0, 169, 0, 181, 4, 38, 4, 65, 0, 19, 0, 0, 65, 53, 33, 55, 33, 53, 35, 55, 39, 7, 33, 21, 33, 7, 33, 21, 33, 7, 23, 55, 4, 38, 254, 76, 128, 1, 52, 228, 49, 77, 74, 253, 205, 1, 226, 128, 254, 158, 1, 17, 66, 78, 92, 1, 109, 160, 255, 161, 97, 51, 148, 161, 255, 160, 133, 51, 184, 0, 0, 2, 0, 141, 1, 20, 4, 62, 3, 255, 0, 25, 0, 51, 0, 0, 83, 23, 54, 54, 51, 50, 22, 23, 22, 22, 51, 50, 54, 55, 39, 6, 6, 35, 34, 38, 39, 38, 38, 35, 34, 6, 3, 23, 54, 54, 51, 50, 22, 23, 22, 22, 51, 50, 54, 55, 39, 6, 6, 35, 34, 38, 39, 38, 38, 35, 34, 6, 151, 10, 47, 122, 67, 56, 79, 67, 69, 126, 56, 66, 122, 48, 10, 47, 122, 67, 44, 100, 56, 68, 121, 63, 67, 122, 58, 10, 47, 122, 67, 57, 73, 81, 81, 106, 55, 66, 122, 48, 10, 47, 122, 67, 53, 109, 65, 73, 95, 57, 67, 122, 3, 105, 171, 68, 79, 24, 36, 37, 46, 79, 67, 171, 68, 78, 29, 32, 39, 42, 78, 254, 18, 171, 68, 78, 23, 40, 40, 39, 78, 68, 171, 68, 79, 39, 37, 42, 25, 79, 0, 1, 0, 170, 0, 196, 3, 250, 4, 75, 0, 8, 0, 0, 101, 53, 37, 39, 55, 37, 53, 1, 21, 3, 250, 253, 156, 53, 53, 2, 100, 252, 176, 196, 196, 236, 18, 17, 240, 196, 254, 134, 146, 0, 0, 1, 0, 178, 0, 197, 4, 37, 4, 76, 0, 8, 0, 0, 119, 1, 53, 1, 21, 5, 23, 7, 5, 178, 3, 115, 252, 141, 2, 135, 60, 60, 253, 121, 197, 1, 123, 146, 1, 122, 191, 240, 19, 17, 244, 0, 0, 2, 0, 187, 0, 9, 4, 13, 4, 153, 0, 8, 0, 12, 0, 0, 65, 53, 37, 39, 55, 37, 53, 1, 21, 1, 53, 33, 21, 4, 13, 253, 156, 53, 53, 2, 100, 252, 176, 3, 65, 252, 189, 1, 108, 177, 212, 16, 16, 216, 176, 254, 172, 131, 253, 71, 151, 151, 0, 2, 0, 194, 0, 7, 4, 53, 4, 173, 0, 8, 0, 12, 0, 0, 83, 1, 53, 1, 21, 5, 23, 7, 5, 1, 53, 33, 21, 194, 3, 115, 252, 141, 2, 135, 60, 60, 253, 121, 3, 68, 252, 189, 1, 128, 1, 85, 132, 1, 84, 172, 216, 17, 15, 220, 253, 218, 151, 151, 0, 1, 0, 189, 1, 119, 3, 251, 3, 32, 0, 5, 0, 0, 65, 17, 33, 21, 33, 17, 3, 251, 252, 194, 2, 133, 1, 119, 1, 169, 161, 254, 248, 0, 0, 1, 0, 252, 255, 131, 4, 1, 5, 176, 0, 3, 0, 0, 69, 1, 35, 1, 1, 162, 2, 95, 165, 253, 160, 125, 6, 45, 249, 211, 0, 1, 0, 231, 255, 131, 3, 238, 5, 176, 0, 3, 0, 0, 83, 1, 51, 1, 231, 2, 96, 167, 253, 160, 5, 176, 249, 211, 6, 45, 0, 1, 1, 43, 0, 213, 3, 158, 4, 209, 0, 3, 0, 0, 101, 1, 39, 1, 1, 156, 2, 2, 114, 253, 255, 213, 3, 186, 66, 252, 70, 0, 0, 5, 0, 44, 255, 235, 4, 158, 5, 197, 0, 25, 0, 51, 0, 77, 0, 103, 0, 107, 0, 0, 83, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 23, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 1, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 23, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 5, 1, 39, 1, 44, 35, 34, 34, 101, 65, 65, 100, 34, 33, 35, 35, 33, 34, 101, 66, 65, 100, 33, 34, 35, 138, 14, 16, 15, 49, 35, 36, 49, 16, 15, 15, 15, 15, 15, 49, 35, 36, 49, 16, 16, 14, 1, 207, 35, 34, 34, 101, 66, 65, 99, 34, 34, 35, 35, 34, 34, 100, 66, 65, 100, 34, 34, 35, 138, 14, 16, 15, 49, 36, 35, 50, 16, 15, 14, 14, 15, 15, 49, 35, 36, 50, 15, 16, 15, 254, 127, 2, 55, 111, 253, 201, 4, 170, 77, 57, 102, 38, 39, 45, 45, 39, 38, 102, 57, 77, 57, 103, 39, 39, 45, 45, 39, 39, 103, 134, 77, 31, 59, 23, 22, 27, 27, 22, 23, 59, 31, 77, 31, 57, 22, 23, 27, 27, 23, 22, 57, 253, 20, 78, 57, 102, 38, 39, 45, 45, 39, 38, 102, 57, 78, 57, 102, 39, 39, 45, 45, 39, 39, 102, 135, 78, 31, 58, 23, 22, 27, 27, 22, 23, 58, 31, 78, 31, 58, 22, 23, 27, 27, 23, 22, 58, 41, 4, 13, 62, 251, 243, 0, 6, 0, 54, 255, 235, 4, 160, 5, 197, 0, 49, 0, 75, 0, 101, 0, 127, 0, 153, 0, 157, 0, 0, 65, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 1, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 1, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 1, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 1, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 37, 1, 39, 1, 1, 86, 31, 31, 31, 92, 61, 36, 62, 25, 15, 26, 11, 10, 23, 13, 27, 66, 39, 60, 91, 31, 30, 31, 31, 31, 31, 91, 61, 35, 60, 25, 16, 28, 12, 13, 32, 18, 24, 57, 33, 60, 91, 31, 31, 31, 254, 224, 32, 31, 31, 92, 60, 60, 90, 31, 30, 32, 31, 31, 31, 91, 61, 60, 91, 31, 31, 31, 1, 171, 11, 13, 12, 40, 29, 30, 40, 13, 12, 11, 11, 12, 12, 40, 29, 30, 41, 12, 13, 11, 254, 224, 11, 13, 12, 40, 29, 30, 40, 13, 12, 11, 11, 12, 13, 40, 28, 30, 40, 13, 13, 11, 2, 128, 11, 13, 12, 40, 30, 29, 41, 13, 12, 11, 11, 12, 12, 40, 29, 30, 41, 13, 13, 11, 253, 110, 3, 16, 68, 252, 240, 1, 47, 44, 56, 102, 38, 39, 45, 17, 15, 9, 22, 13, 11, 21, 8, 17, 19, 45, 39, 38, 102, 56, 44, 56, 101, 39, 38, 46, 16, 14, 10, 23, 14, 15, 25, 10, 13, 14, 46, 38, 39, 101, 3, 69, 44, 56, 101, 38, 38, 46, 46, 38, 38, 101, 56, 44, 56, 102, 39, 38, 46, 46, 38, 39, 102, 252, 31, 44, 30, 57, 23, 22, 28, 28, 22, 23, 57, 30, 44, 30, 58, 22, 23, 27, 27, 23, 22, 58, 3, 155, 44, 30, 57, 23, 22, 28, 28, 22, 23, 57, 30, 44, 30, 57, 22, 23, 27, 27, 23, 22, 57, 252, 161, 44, 30, 57, 23, 22, 28, 28, 22, 23, 57, 30, 44, 30, 58, 22, 23, 27, 27, 23, 22, 58, 218, 2, 129, 84, 253, 127, 0, 1, 2, 28, 254, 114, 2, 177, 5, 176, 0, 3, 0, 0, 65, 17, 35, 17, 2, 177, 149, 254, 114, 7, 62, 248, 194, 0, 0, 2, 1, 255, 254, 242, 2, 184, 5, 176, 0, 3, 0, 7, 0, 0, 65, 51, 17, 35, 55, 17, 35, 17, 1, 255, 185, 185, 185, 185, 254, 242, 3, 23, 177, 2, 246, 253, 10, 0, 0, 1, 0, 119, 0, 0, 4, 85, 5, 176, 0, 11, 0, 0, 65, 53, 33, 17, 35, 17, 33, 21, 33, 17, 51, 17, 4, 85, 254, 107, 185, 254, 112, 1, 144, 185, 3, 161, 153, 1, 118, 254, 138, 153, 252, 95, 3, 161, 0, 1, 0, 121, 254, 96, 4, 86, 5, 176, 0, 19, 0, 0, 97, 53, 33, 17, 33, 53, 33, 17, 35, 17, 33, 21, 33, 17, 33, 21, 33, 17, 51, 17, 4, 86, 254, 105, 1, 151, 254, 105, 185, 254, 115, 1, 141, 254, 115, 1, 141, 185, 151, 3, 10, 153, 1, 118, 254, 138, 153, 252, 246, 151, 254, 96, 1, 160, 0, 3, 0, 90, 255, 235, 4, 131, 4, 78, 0, 51, 0, 75, 0, 99, 0, 0, 65, 35, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 51, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 37, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 3, 94, 110, 16, 16, 16, 54, 37, 38, 57, 19, 19, 18, 18, 19, 19, 57, 38, 37, 54, 17, 16, 16, 110, 30, 28, 32, 97, 63, 62, 96, 33, 33, 36, 36, 33, 33, 96, 62, 62, 96, 32, 29, 30, 253, 83, 68, 60, 60, 163, 95, 94, 163, 60, 60, 68, 68, 60, 60, 163, 94, 95, 163, 60, 60, 68, 87, 82, 72, 71, 195, 113, 113, 194, 72, 71, 82, 82, 71, 72, 194, 113, 107, 194, 72, 73, 86, 1, 187, 35, 51, 17, 18, 17, 30, 26, 26, 70, 41, 88, 40, 71, 26, 25, 30, 17, 18, 17, 51, 34, 54, 84, 30, 33, 34, 44, 39, 39, 107, 62, 87, 63, 106, 38, 39, 44, 33, 32, 29, 86, 154, 97, 171, 64, 64, 73, 73, 64, 64, 171, 97, 98, 172, 64, 65, 75, 74, 65, 64, 173, 98, 117, 205, 76, 77, 88, 88, 77, 76, 205, 117, 117, 204, 76, 75, 88, 83, 74, 74, 207, 0, 4, 0, 87, 255, 235, 4, 128, 4, 77, 0, 23, 0, 47, 0, 61, 0, 73, 0, 0, 83, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 23, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 37, 51, 23, 51, 3, 54, 54, 53, 52, 38, 35, 35, 17, 51, 17, 53, 51, 50, 22, 21, 20, 6, 7, 6, 6, 7, 87, 82, 72, 71, 195, 113, 113, 194, 72, 71, 82, 82, 71, 72, 194, 113, 113, 195, 71, 72, 82, 87, 68, 60, 60, 163, 95, 94, 163, 60, 60, 68, 68, 60, 60, 163, 94, 95, 163, 60, 60, 68, 1, 78, 125, 120, 110, 147, 66, 70, 131, 109, 211, 107, 104, 73, 60, 19, 15, 16, 44, 24, 2, 28, 117, 205, 75, 76, 88, 88, 76, 75, 205, 117, 117, 205, 76, 76, 87, 87, 76, 76, 205, 117, 98, 172, 64, 63, 73, 73, 63, 64, 172, 98, 98, 171, 64, 64, 74, 74, 64, 64, 171, 43, 253, 1, 31, 22, 78, 56, 97, 95, 253, 133, 1, 94, 188, 44, 55, 21, 32, 12, 11, 12, 1, 0, 0, 2, 0, 103, 3, 151, 4, 55, 5, 176, 0, 12, 0, 20, 0, 0, 65, 17, 51, 17, 35, 3, 3, 35, 17, 51, 17, 19, 51, 1, 53, 33, 21, 51, 17, 51, 17, 3, 221, 90, 112, 144, 143, 112, 90, 139, 52, 254, 152, 254, 126, 147, 91, 5, 33, 254, 118, 2, 25, 254, 113, 1, 143, 253, 231, 1, 137, 254, 119, 1, 200, 81, 81, 254, 56, 1, 200, 0, 0, 2, 1, 105, 3, 192, 3, 98, 5, 196, 0, 23, 0, 47, 0, 0, 65, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 23, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 1, 105, 41, 35, 34, 93, 52, 51, 91, 34, 34, 40, 40, 34, 34, 91, 51, 52, 93, 34, 35, 41, 124, 21, 18, 17, 48, 27, 27, 46, 18, 17, 19, 19, 17, 18, 46, 27, 27, 48, 17, 18, 21, 4, 192, 54, 93, 34, 35, 40, 40, 35, 34, 94, 53, 53, 95, 36, 35, 41, 41, 35, 36, 95, 53, 28, 49, 18, 18, 20, 20, 18, 18, 49, 28, 27, 47, 17, 18, 19, 19, 18, 17, 47, 0, 1, 0, 160, 1, 217, 4, 96, 5, 176, 0, 14, 0, 0, 65, 1, 23, 19, 19, 55, 1, 37, 39, 5, 19, 35, 19, 37, 7, 2, 25, 254, 251, 146, 212, 214, 146, 255, 0, 1, 126, 54, 254, 149, 29, 178, 25, 254, 147, 54, 3, 147, 254, 185, 106, 1, 98, 254, 149, 110, 1, 68, 94, 178, 150, 1, 171, 254, 91, 151, 175, 0, 0, 2, 0, 61, 0, 0, 4, 153, 5, 176, 0, 27, 0, 31, 0, 0, 65, 3, 51, 19, 51, 53, 35, 19, 51, 53, 35, 19, 35, 3, 33, 19, 35, 3, 33, 21, 33, 3, 33, 21, 51, 3, 51, 19, 55, 19, 33, 3, 2, 195, 80, 143, 80, 252, 226, 69, 232, 205, 82, 143, 82, 254, 248, 82, 143, 82, 254, 227, 1, 2, 69, 254, 247, 239, 80, 143, 80, 26, 69, 1, 8, 69, 1, 154, 254, 102, 1, 154, 137, 1, 98, 139, 1, 160, 254, 96, 1, 160, 254, 96, 139, 254, 158, 137, 254, 102, 1, 154, 137, 1, 98, 254, 158, 0, 0, 3, 0, 107, 255, 236, 4, 169, 5, 197, 0, 54, 0, 74, 0, 99, 0, 0, 83, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 23, 51, 39, 54, 54, 53, 35, 6, 6, 7, 1, 55, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 23, 7, 6, 6, 7, 6, 6, 1, 34, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 55, 55, 1, 6, 6, 7, 6, 6, 3, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 7, 7, 38, 38, 39, 38, 38, 107, 61, 56, 56, 160, 99, 61, 115, 53, 32, 61, 28, 83, 221, 181, 70, 73, 167, 1, 40, 35, 254, 205, 94, 44, 76, 28, 27, 31, 44, 40, 41, 116, 71, 82, 132, 47, 47, 51, 17, 15, 19, 58, 37, 36, 49, 81, 31, 36, 40, 1, 176, 61, 92, 31, 31, 32, 11, 17, 16, 62, 50, 28, 1, 67, 24, 51, 27, 37, 80, 160, 22, 22, 21, 65, 43, 33, 52, 19, 18, 19, 9, 11, 11, 40, 31, 117, 25, 38, 12, 10, 10, 1, 117, 86, 145, 52, 52, 58, 26, 25, 15, 40, 24, 110, 237, 88, 219, 128, 88, 152, 64, 1, 147, 80, 33, 68, 38, 38, 87, 53, 62, 112, 43, 42, 50, 46, 44, 45, 131, 85, 40, 76, 37, 45, 93, 50, 26, 37, 76, 42, 50, 114, 254, 202, 38, 33, 33, 88, 51, 19, 57, 35, 34, 78, 41, 24, 254, 81, 20, 33, 12, 17, 18, 3, 230, 40, 71, 27, 27, 32, 27, 21, 22, 57, 30, 23, 48, 23, 24, 46, 21, 93, 36, 68, 33, 25, 51, 0, 2, 0, 64, 255, 248, 4, 139, 5, 178, 0, 94, 0, 117, 0, 0, 65, 54, 38, 39, 38, 38, 35, 34, 6, 7, 6, 2, 7, 6, 18, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 39, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 55, 19, 38, 38, 35, 34, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 5, 54, 54, 55, 54, 54, 51, 50, 22, 23, 3, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 4, 135, 4, 64, 64, 65, 190, 122, 125, 207, 76, 80, 95, 6, 5, 59, 67, 66, 211, 147, 32, 72, 35, 35, 64, 25, 32, 22, 54, 30, 30, 62, 30, 112, 165, 53, 53, 48, 5, 4, 74, 67, 63, 159, 97, 96, 150, 52, 51, 50, 4, 1, 20, 19, 19, 57, 37, 16, 28, 9, 10, 10, 3, 44, 26, 88, 67, 71, 118, 44, 45, 56, 9, 6, 17, 23, 22, 72, 49, 34, 62, 27, 22, 39, 16, 7, 22, 15, 21, 58, 36, 74, 102, 33, 32, 32, 253, 82, 8, 33, 27, 27, 79, 53, 15, 29, 14, 38, 1, 11, 26, 14, 23, 55, 30, 24, 35, 11, 11, 8, 3, 21, 151, 247, 88, 88, 95, 114, 100, 105, 254, 224, 160, 153, 254, 255, 93, 93, 103, 9, 10, 9, 28, 19, 117, 15, 24, 8, 9, 9, 77, 74, 73, 212, 136, 145, 243, 86, 80, 87, 74, 70, 70, 202, 127, 73, 130, 48, 49, 57, 10, 15, 14, 51, 41, 1, 248, 36, 53, 67, 62, 63, 179, 111, 78, 130, 47, 47, 52, 20, 18, 16, 42, 25, 24, 39, 15, 21, 22, 86, 68, 68, 167, 35, 82, 133, 47, 46, 51, 6, 7, 254, 77, 10, 24, 37, 14, 22, 20, 29, 28, 27, 81, 0, 0, 2, 0, 87, 254, 17, 4, 116, 5, 196, 0, 106, 0, 139, 0, 0, 65, 52, 38, 39, 38, 38, 39, 38, 38, 39, 38, 38, 39, 38, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 51, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 23, 6, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 23, 22, 22, 23, 22, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 7, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 1, 22, 22, 23, 22, 22, 23, 22, 22, 21, 6, 6, 7, 6, 6, 7, 38, 38, 39, 38, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 55, 22, 22, 4, 116, 65, 61, 31, 74, 43, 43, 97, 54, 47, 79, 33, 36, 58, 21, 41, 34, 38, 39, 38, 113, 75, 73, 115, 39, 39, 41, 185, 69, 63, 64, 182, 114, 109, 180, 64, 64, 71, 30, 29, 16, 39, 23, 30, 53, 20, 38, 41, 66, 61, 33, 83, 47, 59, 140, 60, 63, 94, 32, 42, 38, 42, 39, 40, 112, 70, 60, 120, 48, 48, 60, 185, 90, 73, 73, 187, 98, 109, 179, 65, 64, 71, 25, 24, 17, 47, 29, 29, 51, 21, 41, 44, 253, 226, 52, 87, 36, 30, 50, 20, 43, 40, 1, 28, 26, 20, 55, 33, 37, 80, 44, 62, 100, 38, 85, 69, 26, 26, 19, 53, 33, 37, 81, 1, 175, 94, 133, 48, 24, 41, 18, 18, 32, 15, 13, 24, 12, 14, 28, 15, 28, 72, 52, 45, 78, 29, 28, 33, 44, 37, 38, 103, 58, 104, 161, 55, 54, 57, 51, 48, 48, 135, 84, 65, 102, 41, 21, 39, 17, 15, 36, 21, 40, 101, 61, 95, 134, 49, 27, 44, 19, 24, 39, 20, 21, 40, 22, 29, 70, 48, 47, 78, 28, 28, 32, 29, 34, 33, 107, 78, 2, 120, 165, 50, 51, 45, 49, 47, 47, 136, 88, 58, 94, 37, 28, 47, 20, 13, 34, 19, 40, 104, 1, 69, 16, 29, 15, 12, 26, 14, 30, 73, 48, 40, 67, 25, 20, 29, 9, 14, 24, 13, 17, 32, 17, 37, 88, 73, 41, 68, 26, 19, 27, 8, 14, 25, 0, 0, 1, 0, 211, 0, 0, 3, 208, 5, 176, 0, 16, 0, 0, 97, 51, 17, 33, 34, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 51, 51, 3, 22, 186, 254, 239, 118, 183, 63, 63, 65, 65, 63, 63, 183, 118, 87, 5, 176, 71, 62, 63, 171, 101, 102, 172, 62, 62, 70, 0, 0, 1, 0, 231, 2, 165, 3, 229, 5, 176, 0, 8, 0, 0, 83, 51, 19, 55, 23, 19, 51, 1, 35, 231, 172, 195, 15, 15, 198, 171, 254, 193, 127, 2, 165, 1, 230, 68, 68, 254, 26, 3, 11, 0, 0, 1, 0, 48, 1, 146, 4, 156, 3, 34, 0, 49, 0, 0, 65, 39, 20, 6, 7, 6, 6, 35, 6, 38, 39, 38, 38, 39, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 23, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 4, 156, 134, 26, 22, 23, 61, 35, 30, 56, 27, 23, 48, 26, 39, 75, 39, 39, 83, 46, 67, 110, 39, 40, 44, 134, 26, 22, 22, 61, 35, 23, 43, 21, 30, 61, 33, 40, 75, 39, 38, 81, 47, 67, 110, 40, 40, 44, 2, 228, 18, 38, 70, 26, 27, 32, 1, 15, 15, 12, 35, 22, 32, 52, 18, 18, 19, 53, 45, 45, 120, 66, 17, 38, 67, 25, 24, 29, 8, 9, 12, 41, 27, 34, 52, 18, 18, 18, 56, 47, 47, 122, 255, 255, 0, 81, 0, 0, 4, 144, 7, 32, 6, 38, 0, 2, 0, 0, 0, 7, 1, 91, 0, 133, 1, 87, 255, 255, 0, 81, 0, 0, 4, 144, 7, 74, 6, 38, 0, 2, 0, 0, 0, 7, 1, 95, 0, 15, 1, 152, 255, 255, 0, 81, 0, 0, 4, 144, 7, 72, 6, 38, 0, 2, 0, 0, 0, 7, 1, 92, 0, 135, 1, 91, 255, 255, 0, 81, 0, 0, 4, 144, 7, 32, 6, 38, 0, 2, 0, 0, 0, 7, 1, 97, 0, 15, 1, 91, 255, 255, 0, 81, 0, 0, 4, 144, 7, 35, 6, 38, 0, 2, 0, 0, 0, 7, 1, 90, 255, 153, 1, 90, 255, 255, 0, 81, 0, 0, 4, 144, 6, 250, 6, 38, 0, 2, 0, 0, 0, 7, 1, 94, 0, 19, 1, 74, 0, 2, 0, 81, 254, 79, 4, 144, 5, 176, 0, 35, 0, 38, 0, 0, 65, 35, 1, 51, 19, 33, 19, 6, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 39, 6, 6, 39, 34, 38, 53, 52, 54, 55, 54, 54, 55, 51, 1, 19, 19, 2, 194, 155, 254, 42, 185, 117, 1, 230, 107, 30, 52, 20, 39, 48, 30, 26, 26, 70, 41, 65, 85, 28, 31, 16, 53, 32, 42, 36, 29, 27, 22, 59, 35, 48, 253, 33, 195, 192, 5, 176, 250, 80, 1, 121, 254, 160, 18, 39, 24, 46, 94, 47, 47, 71, 24, 24, 24, 28, 16, 121, 8, 19, 1, 41, 34, 36, 67, 29, 24, 44, 19, 2, 26, 2, 120, 253, 136, 0, 255, 255, 0, 81, 0, 0, 4, 144, 7, 139, 6, 38, 0, 2, 0, 0, 0, 7, 1, 98, 0, 14, 1, 164, 255, 255, 0, 81, 0, 0, 4, 144, 8, 24, 6, 38, 0, 2, 0, 0, 0, 7, 2, 107, 255, 252, 1, 166, 255, 255, 0, 81, 0, 0, 4, 144, 7, 82, 6, 38, 0, 2, 0, 0, 0, 7, 1, 93, 0, 147, 1, 97, 255, 255, 0, 32, 0, 0, 4, 171, 7, 32, 6, 38, 0, 72, 0, 0, 0, 7, 1, 91, 0, 215, 1, 87, 255, 255, 0, 107, 255, 236, 4, 93, 7, 53, 6, 38, 0, 4, 0, 0, 0, 7, 1, 91, 0, 170, 1, 108, 255, 255, 0, 107, 255, 236, 4, 93, 7, 94, 6, 38, 0, 4, 0, 0, 0, 7, 1, 100, 0, 53, 1, 113, 255, 255, 0, 107, 254, 77, 4, 93, 5, 196, 6, 38, 0, 4, 0, 0, 0, 6, 1, 102, 54, 0, 255, 255, 0, 107, 255, 236, 4, 93, 7, 93, 6, 38, 0, 4, 0, 0, 0, 7, 1, 92, 0, 172, 1, 112, 255, 255, 0, 155, 0, 0, 4, 112, 7, 73, 6, 38, 0, 5, 0, 0, 0, 7, 1, 100, 255, 218, 1, 92, 0, 2, 255, 197, 0, 0, 4, 127, 5, 176, 0, 19, 0, 39, 0, 0, 115, 33, 54, 54, 55, 54, 54, 55, 53, 38, 38, 39, 38, 38, 39, 33, 17, 35, 21, 51, 33, 53, 35, 17, 51, 22, 22, 23, 22, 22, 23, 21, 6, 6, 7, 6, 6, 7, 35, 17, 170, 1, 81, 152, 239, 83, 82, 87, 1, 1, 87, 82, 83, 239, 152, 254, 175, 229, 229, 1, 152, 220, 149, 118, 172, 56, 56, 56, 1, 1, 55, 56, 57, 172, 118, 149, 1, 99, 89, 88, 247, 150, 107, 150, 247, 89, 88, 99, 2, 253, 129, 151, 151, 1, 231, 2, 80, 69, 70, 189, 111, 109, 111, 190, 70, 70, 81, 1, 2, 3, 255, 255, 0, 182, 0, 0, 4, 52, 7, 32, 6, 38, 0, 6, 0, 0, 0, 7, 1, 91, 0, 123, 1, 87, 255, 255, 0, 182, 0, 0, 4, 52, 7, 74, 6, 38, 0, 6, 0, 0, 0, 7, 1, 95, 0, 5, 1, 152, 255, 255, 0, 182, 0, 0, 4, 52, 7, 73, 6, 38, 0, 6, 0, 0, 0, 7, 1, 100, 0, 6, 1, 92, 255, 255, 0, 182, 0, 0, 4, 52, 7, 72, 6, 38, 0, 6, 0, 0, 0, 7, 1, 92, 0, 125, 1, 91, 255, 255, 0, 182, 0, 0, 4, 52, 7, 32, 6, 38, 0, 6, 0, 0, 0, 7, 1, 97, 0, 5, 1, 91, 255, 255, 0, 182, 0, 0, 4, 52, 7, 25, 6, 38, 0, 6, 0, 0, 0, 7, 1, 96, 0, 5, 1, 91, 255, 255, 0, 182, 0, 0, 4, 52, 7, 35, 6, 38, 0, 6, 0, 0, 0, 7, 1, 90, 255, 143, 1, 90, 255, 255, 0, 182, 0, 0, 4, 52, 6, 250, 6, 38, 0, 6, 0, 0, 0, 7, 1, 94, 0, 9, 1, 74, 0, 1, 0, 175, 254, 75, 4, 29, 5, 176, 0, 29, 0, 0, 65, 35, 17, 1, 39, 35, 17, 51, 17, 1, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 7, 22, 22, 51, 50, 54, 55, 54, 54, 53, 4, 28, 185, 254, 8, 3, 185, 185, 1, 251, 25, 24, 16, 41, 26, 18, 58, 20, 14, 29, 51, 30, 76, 118, 41, 40, 43, 5, 176, 251, 213, 4, 37, 6, 250, 80, 4, 45, 251, 213, 91, 53, 83, 26, 16, 18, 7, 6, 147, 10, 8, 47, 45, 45, 129, 82, 0, 1, 0, 182, 254, 79, 4, 52, 5, 176, 0, 40, 0, 0, 65, 53, 33, 17, 33, 53, 33, 17, 33, 6, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 39, 6, 6, 39, 34, 38, 53, 52, 54, 55, 54, 54, 55, 51, 53, 33, 17, 3, 207, 253, 160, 2, 188, 252, 139, 2, 117, 27, 47, 17, 30, 31, 30, 26, 26, 70, 41, 65, 85, 28, 31, 16, 53, 32, 42, 36, 30, 27, 22, 58, 35, 84, 253, 59, 2, 161, 157, 1, 212, 158, 250, 80, 20, 44, 23, 37, 80, 39, 47, 71, 24, 24, 24, 28, 16, 121, 8, 19, 1, 41, 34, 36, 68, 29, 24, 43, 19, 157, 2, 4, 0, 2, 255, 197, 0, 0, 4, 127, 5, 176, 0, 19, 0, 39, 0, 0, 115, 33, 54, 54, 55, 54, 54, 55, 53, 38, 38, 39, 38, 38, 39, 33, 17, 35, 21, 51, 33, 53, 35, 17, 51, 22, 22, 23, 22, 22, 23, 21, 6, 6, 7, 6, 6, 7, 35, 17, 170, 1, 81, 152, 239, 83, 82, 87, 1, 1, 87, 82, 83, 239, 152, 254, 175, 229, 229, 1, 152, 220, 149, 118, 172, 56, 56, 56, 1, 1, 55, 56, 57, 172, 118, 149, 1, 99, 89, 88, 247, 150, 107, 150, 247, 89, 88, 99, 2, 253, 129, 151, 151, 1, 231, 2, 80, 69, 70, 189, 111, 109, 111, 190, 70, 70, 81, 1, 2, 3, 255, 255, 0, 100, 255, 235, 4, 92, 7, 95, 6, 38, 0, 8, 0, 0, 0, 7, 1, 95, 0, 25, 1, 173, 255, 255, 0, 100, 255, 235, 4, 92, 7, 93, 6, 38, 0, 8, 0, 0, 0, 7, 1, 92, 0, 145, 1, 112, 255, 255, 0, 100, 254, 37, 4, 92, 5, 196, 6, 38, 0, 8, 0, 0, 0, 7, 1, 104, 0, 177, 254, 207, 0, 2, 0, 24, 0, 0, 4, 188, 5, 176, 0, 19, 0, 23, 0, 0, 65, 17, 35, 17, 33, 17, 35, 17, 35, 21, 51, 17, 51, 17, 33, 17, 51, 17, 51, 53, 1, 53, 33, 21, 4, 60, 175, 253, 171, 174, 114, 114, 174, 2, 85, 175, 128, 252, 124, 2, 85, 4, 143, 1, 33, 254, 223, 1, 33, 254, 223, 143, 252, 0, 2, 161, 253, 95, 4, 0, 143, 254, 175, 194, 194, 0, 255, 255, 0, 141, 0, 0, 4, 63, 7, 72, 6, 38, 0, 9, 0, 0, 0, 7, 1, 92, 0, 113, 1, 91, 255, 255, 0, 174, 0, 0, 4, 30, 7, 32, 6, 38, 0, 10, 0, 0, 0, 7, 1, 91, 0, 71, 1, 87, 255, 255, 0, 174, 0, 0, 4, 30, 7, 74, 6, 38, 0, 10, 0, 0, 0, 7, 1, 95, 255, 210, 1, 152, 255, 255, 0, 174, 0, 0, 4, 30, 7, 72, 6, 38, 0, 10, 0, 0, 0, 7, 1, 92, 0, 73, 1, 91, 255, 255, 0, 174, 0, 0, 4, 30, 7, 32, 6, 38, 0, 10, 0, 0, 0, 7, 1, 97, 255, 210, 1, 91, 255, 255, 0, 174, 0, 0, 4, 30, 7, 25, 6, 38, 0, 10, 0, 0, 0, 7, 1, 96, 255, 210, 1, 91, 255, 255, 0, 174, 0, 0, 4, 30, 7, 35, 6, 38, 0, 10, 0, 0, 0, 7, 1, 90, 255, 91, 1, 90, 255, 255, 0, 174, 0, 0, 4, 30, 6, 250, 6, 38, 0, 10, 0, 0, 0, 7, 1, 94, 255, 214, 1, 74, 0, 1, 0, 174, 254, 79, 4, 30, 5, 176, 0, 40, 0, 0, 83, 21, 33, 17, 33, 21, 33, 6, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 39, 6, 6, 39, 34, 38, 53, 52, 54, 55, 54, 54, 55, 33, 53, 33, 17, 33, 53, 174, 1, 85, 254, 171, 1, 151, 25, 42, 17, 33, 35, 30, 26, 26, 70, 41, 65, 85, 28, 31, 16, 53, 32, 42, 36, 31, 29, 21, 57, 34, 1, 36, 254, 163, 1, 93, 5, 176, 161, 251, 145, 160, 18, 39, 21, 39, 85, 41, 47, 71, 24, 24, 24, 28, 16, 121, 8, 19, 1, 41, 34, 37, 69, 30, 23, 42, 18, 160, 4, 111, 161, 0, 255, 255, 0, 174, 0, 0, 4, 30, 7, 82, 6, 38, 0, 10, 0, 0, 0, 7, 1, 93, 0, 85, 1, 97, 255, 255, 0, 98, 255, 236, 4, 223, 7, 59, 6, 38, 0, 11, 0, 0, 0, 7, 1, 92, 1, 193, 1, 78, 255, 255, 0, 172, 254, 62, 4, 164, 5, 176, 6, 38, 0, 12, 0, 0, 0, 7, 1, 104, 0, 182, 254, 232, 255, 255, 0, 198, 0, 0, 4, 71, 7, 0, 6, 38, 0, 13, 0, 0, 0, 7, 1, 91, 255, 54, 1, 55, 255, 255, 0, 198, 0, 0, 4, 71, 5, 176, 6, 38, 0, 13, 0, 0, 0, 7, 0, 109, 0, 242, 255, 154, 255, 255, 0, 198, 254, 56, 4, 71, 5, 176, 6, 38, 0, 13, 0, 0, 0, 7, 1, 104, 0, 183, 254, 226, 255, 255, 0, 198, 0, 0, 4, 71, 5, 176, 6, 38, 0, 13, 0, 0, 0, 7, 1, 96, 0, 116, 253, 197, 0, 1, 0, 58, 0, 0, 4, 75, 5, 176, 0, 13, 0, 0, 65, 17, 35, 17, 7, 21, 55, 17, 33, 53, 33, 17, 37, 53, 1, 131, 185, 144, 144, 3, 129, 253, 56, 1, 6, 3, 77, 2, 99, 253, 98, 45, 162, 45, 253, 144, 157, 2, 14, 83, 162, 0, 255, 255, 0, 143, 0, 0, 4, 62, 7, 32, 6, 38, 0, 15, 0, 0, 0, 7, 1, 91, 0, 94, 1, 87, 255, 255, 0, 143, 0, 0, 4, 62, 7, 73, 6, 38, 0, 15, 0, 0, 0, 7, 1, 100, 255, 234, 1, 92, 255, 255, 0, 143, 254, 56, 4, 62, 5, 176, 6, 38, 0, 15, 0, 0, 0, 7, 1, 104, 0, 132, 254, 226, 255, 255, 0, 143, 0, 0, 4, 62, 7, 82, 6, 38, 0, 15, 0, 0, 0, 7, 1, 93, 0, 108, 1, 97, 255, 255, 0, 106, 255, 236, 4, 97, 7, 53, 6, 38, 0, 16, 0, 0, 0, 7, 1, 91, 0, 137, 1, 108, 255, 255, 0, 106, 255, 236, 4, 97, 7, 95, 6, 38, 0, 16, 0, 0, 0, 7, 1, 95, 0, 19, 1, 173, 255, 255, 0, 106, 255, 236, 4, 97, 7, 93, 6, 38, 0, 16, 0, 0, 0, 7, 1, 92, 0, 139, 1, 112, 255, 255, 0, 106, 255, 236, 4, 97, 7, 53, 6, 38, 0, 16, 0, 0, 0, 7, 1, 97, 0, 19, 1, 112, 255, 255, 0, 106, 255, 236, 4, 97, 7, 56, 6, 38, 0, 16, 0, 0, 0, 7, 1, 90, 255, 157, 1, 111, 0, 2, 0, 99, 255, 236, 4, 198, 5, 250, 0, 41, 0, 67, 0, 0, 65, 53, 38, 38, 39, 54, 54, 55, 54, 54, 39, 35, 6, 6, 7, 6, 6, 7, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 2, 21, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 3, 21, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 4, 90, 2, 40, 44, 40, 66, 24, 31, 33, 1, 167, 1, 14, 14, 13, 38, 25, 29, 67, 39, 44, 104, 60, 113, 170, 62, 80, 82, 62, 59, 60, 193, 135, 133, 187, 64, 62, 58, 181, 2, 33, 39, 37, 124, 88, 88, 120, 35, 45, 39, 44, 57, 36, 111, 77, 79, 118, 38, 48, 42, 2, 132, 166, 100, 202, 88, 15, 49, 32, 44, 118, 72, 44, 73, 27, 24, 33, 8, 33, 55, 20, 23, 24, 85, 73, 94, 254, 237, 139, 166, 117, 235, 95, 97, 120, 115, 95, 91, 245, 1, 30, 168, 84, 191, 72, 69, 85, 82, 62, 78, 194, 85, 168, 91, 212, 79, 53, 64, 73, 58, 73, 197, 0, 255, 255, 0, 106, 255, 236, 4, 111, 7, 95, 6, 38, 0, 16, 0, 0, 0, 7, 1, 99, 0, 153, 1, 112, 255, 255, 0, 106, 255, 236, 4, 97, 7, 15, 6, 38, 0, 16, 0, 0, 0, 7, 1, 94, 0, 23, 1, 95, 0, 3, 0, 71, 255, 163, 4, 140, 5, 236, 0, 37, 0, 57, 0, 71, 0, 0, 65, 55, 54, 38, 39, 19, 35, 7, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 21, 20, 22, 23, 22, 22, 23, 3, 51, 55, 22, 22, 51, 50, 54, 55, 54, 54, 37, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 1, 38, 38, 39, 38, 38, 37, 21, 6, 6, 7, 6, 6, 35, 34, 38, 39, 1, 22, 22, 4, 88, 1, 1, 55, 56, 161, 142, 99, 24, 55, 31, 44, 104, 60, 130, 188, 59, 67, 61, 2, 16, 17, 16, 50, 34, 160, 142, 104, 57, 142, 91, 124, 184, 61, 70, 66, 252, 192, 35, 41, 37, 121, 91, 42, 70, 29, 26, 42, 17, 254, 14, 11, 17, 6, 10, 9, 2, 138, 2, 37, 60, 38, 109, 77, 66, 100, 37, 1, 235, 19, 15, 2, 132, 166, 111, 228, 95, 1, 16, 168, 24, 41, 16, 22, 25, 113, 88, 94, 249, 122, 166, 61, 125, 60, 60, 112, 49, 254, 242, 176, 48, 55, 106, 85, 96, 253, 124, 168, 80, 187, 77, 64, 91, 19, 18, 15, 41, 25, 252, 181, 26, 57, 28, 46, 94, 211, 168, 95, 207, 83, 52, 64, 47, 41, 3, 62, 62, 129, 0, 255, 255, 0, 71, 255, 163, 4, 140, 7, 94, 6, 38, 0, 219, 0, 0, 0, 7, 1, 91, 0, 123, 1, 149, 255, 255, 0, 106, 255, 236, 4, 97, 7, 103, 6, 38, 0, 16, 0, 0, 0, 7, 1, 93, 0, 151, 1, 118, 255, 255, 0, 181, 0, 0, 4, 114, 7, 20, 6, 38, 0, 19, 0, 0, 0, 7, 1, 91, 0, 120, 1, 75, 255, 255, 0, 181, 0, 0, 4, 114, 7, 61, 6, 38, 0, 19, 0, 0, 0, 7, 1, 100, 0, 3, 1, 80, 255, 255, 0, 181, 254, 56, 4, 114, 5, 176, 6, 38, 0, 19, 0, 0, 0, 7, 1, 104, 0, 156, 254, 226, 255, 255, 0, 118, 255, 236, 4, 105, 7, 53, 6, 38, 0, 20, 0, 0, 0, 7, 1, 91, 0, 130, 1, 108, 255, 255, 0, 118, 255, 236, 4, 105, 7, 94, 6, 38, 0, 20, 0, 0, 0, 7, 1, 100, 0, 13, 1, 113, 255, 255, 0, 118, 254, 68, 4, 105, 5, 196, 6, 38, 0, 20, 0, 0, 0, 6, 1, 102, 81, 247, 255, 255, 0, 118, 255, 236, 4, 105, 7, 93, 6, 38, 0, 20, 0, 0, 0, 7, 1, 92, 0, 132, 1, 112, 0, 1, 0, 76, 0, 0, 4, 132, 5, 176, 0, 15, 0, 0, 65, 53, 35, 17, 33, 53, 33, 21, 33, 17, 35, 21, 51, 17, 51, 17, 3, 173, 235, 1, 194, 251, 200, 1, 194, 222, 222, 180, 3, 55, 151, 1, 68, 158, 158, 254, 188, 151, 252, 201, 3, 55, 255, 255, 0, 76, 0, 0, 4, 132, 7, 61, 6, 38, 0, 21, 0, 0, 0, 7, 1, 100, 0, 13, 1, 80, 255, 255, 0, 139, 255, 236, 4, 66, 7, 20, 6, 38, 0, 22, 0, 0, 0, 7, 1, 91, 0, 163, 1, 75, 255, 255, 0, 139, 255, 236, 4, 66, 7, 62, 6, 38, 0, 22, 0, 0, 0, 7, 1, 95, 0, 45, 1, 140, 255, 255, 0, 139, 255, 236, 4, 66, 7, 60, 6, 38, 0, 22, 0, 0, 0, 7, 1, 92, 0, 165, 1, 79, 255, 255, 0, 139, 255, 236, 4, 66, 7, 20, 6, 38, 0, 22, 0, 0, 0, 7, 1, 97, 0, 45, 1, 79, 255, 255, 0, 139, 255, 236, 4, 66, 7, 23, 6, 38, 0, 22, 0, 0, 0, 7, 1, 90, 255, 183, 1, 78, 0, 1, 0, 139, 255, 236, 5, 131, 5, 232, 0, 43, 0, 0, 65, 35, 3, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 3, 35, 3, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 3, 54, 54, 55, 54, 54, 53, 35, 20, 6, 7, 6, 6, 7, 4, 64, 179, 3, 2, 38, 36, 37, 108, 71, 71, 109, 36, 37, 39, 1, 4, 176, 2, 1, 70, 62, 62, 174, 106, 104, 174, 63, 63, 72, 1, 80, 120, 39, 42, 41, 167, 15, 18, 18, 60, 45, 5, 176, 252, 38, 65, 120, 46, 47, 55, 56, 46, 46, 120, 65, 3, 218, 252, 38, 102, 179, 66, 67, 76, 77, 67, 66, 178, 102, 2, 154, 5, 49, 43, 47, 139, 93, 56, 85, 29, 30, 34, 6, 255, 255, 0, 139, 255, 236, 4, 137, 7, 62, 6, 38, 0, 22, 0, 0, 0, 7, 1, 99, 0, 179, 1, 79, 255, 255, 0, 139, 255, 236, 4, 66, 6, 238, 6, 38, 0, 22, 0, 0, 0, 7, 1, 94, 0, 49, 1, 62, 0, 1, 0, 139, 254, 126, 4, 66, 5, 176, 0, 60, 0, 0, 65, 35, 3, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 3, 35, 3, 22, 22, 23, 22, 22, 23, 50, 50, 51, 6, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 39, 6, 6, 39, 34, 38, 53, 52, 54, 55, 54, 54, 55, 54, 54, 55, 54, 54, 53, 4, 64, 179, 3, 2, 38, 36, 37, 108, 71, 71, 109, 36, 37, 39, 1, 4, 176, 2, 1, 68, 61, 59, 166, 103, 1, 3, 1, 14, 24, 9, 15, 16, 30, 26, 26, 70, 41, 65, 85, 28, 31, 16, 53, 32, 42, 36, 14, 13, 18, 54, 35, 61, 100, 35, 35, 40, 5, 176, 252, 38, 65, 120, 46, 47, 55, 56, 46, 46, 120, 65, 3, 218, 252, 38, 101, 176, 66, 65, 78, 3, 16, 32, 17, 27, 57, 28, 47, 71, 24, 24, 24, 28, 16, 121, 8, 19, 1, 41, 34, 25, 48, 22, 28, 51, 23, 29, 90, 58, 58, 136, 74, 0, 255, 255, 0, 139, 255, 236, 4, 66, 7, 127, 6, 38, 0, 22, 0, 0, 0, 7, 1, 98, 0, 44, 1, 152, 255, 255, 0, 139, 255, 236, 4, 66, 7, 70, 6, 38, 0, 22, 0, 0, 0, 7, 1, 93, 0, 177, 1, 85, 255, 255, 0, 73, 0, 0, 4, 158, 7, 32, 6, 38, 0, 24, 0, 0, 0, 7, 1, 91, 0, 125, 1, 87, 255, 255, 0, 73, 0, 0, 4, 158, 7, 72, 6, 38, 0, 24, 0, 0, 0, 7, 1, 92, 0, 127, 1, 91, 255, 255, 0, 73, 0, 0, 4, 158, 7, 32, 6, 38, 0, 24, 0, 0, 0, 7, 1, 97, 0, 7, 1, 91, 255, 255, 0, 73, 0, 0, 4, 158, 7, 35, 6, 38, 0, 24, 0, 0, 0, 7, 1, 90, 255, 145, 1, 90, 255, 255, 0, 61, 0, 0, 4, 121, 7, 31, 6, 38, 0, 26, 0, 0, 0, 7, 1, 91, 0, 113, 1, 86, 255, 255, 0, 61, 0, 0, 4, 121, 7, 71, 6, 38, 0, 26, 0, 0, 0, 7, 1, 92, 0, 115, 1, 90, 255, 255, 0, 61, 0, 0, 4, 121, 7, 31, 6, 38, 0, 26, 0, 0, 0, 7, 1, 97, 255, 252, 1, 90, 255, 255, 0, 61, 0, 0, 4, 121, 7, 34, 6, 38, 0, 26, 0, 0, 0, 7, 1, 90, 255, 133, 1, 89, 255, 255, 0, 114, 0, 0, 4, 55, 7, 20, 6, 38, 0, 27, 0, 0, 0, 7, 1, 91, 0, 157, 1, 75, 255, 255, 0, 114, 0, 0, 4, 55, 7, 61, 6, 38, 0, 27, 0, 0, 0, 7, 1, 100, 0, 40, 1, 80, 255, 255, 0, 114, 0, 0, 4, 55, 7, 13, 6, 38, 0, 27, 0, 0, 0, 7, 1, 96, 0, 39, 1, 79, 255, 255, 0, 156, 255, 236, 4, 54, 5, 222, 6, 38, 0, 28, 0, 0, 0, 7, 1, 91, 0, 129, 0, 21, 255, 255, 0, 156, 255, 236, 4, 54, 6, 8, 6, 38, 0, 28, 0, 0, 0, 6, 1, 95, 11, 86, 255, 255, 0, 156, 255, 236, 4, 54, 6, 6, 6, 38, 0, 28, 0, 0, 0, 7, 1, 92, 0, 131, 0, 25, 255, 255, 0, 156, 255, 236, 4, 54, 5, 222, 6, 38, 0, 28, 0, 0, 0, 6, 1, 97, 11, 25, 255, 255, 0, 156, 255, 236, 4, 54, 5, 225, 6, 38, 0, 28, 0, 0, 0, 6, 1, 90, 149, 24, 255, 255, 0, 156, 255, 236, 4, 54, 5, 184, 6, 38, 0, 28, 0, 0, 0, 6, 1, 94, 15, 8, 0, 2, 0, 156, 254, 79, 4, 54, 4, 78, 0, 81, 0, 101, 0, 0, 101, 6, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 39, 6, 6, 39, 34, 38, 53, 52, 54, 55, 54, 54, 55, 51, 53, 38, 38, 53, 17, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 51, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 21, 35, 34, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 22, 22, 37, 34, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 51, 51, 21, 6, 6, 7, 6, 6, 3, 111, 33, 55, 21, 30, 33, 30, 26, 26, 70, 41, 65, 85, 28, 31, 16, 53, 32, 42, 36, 20, 19, 22, 68, 43, 38, 18, 20, 66, 57, 58, 158, 92, 101, 159, 55, 56, 59, 1, 186, 33, 30, 30, 87, 55, 59, 95, 33, 33, 36, 202, 113, 183, 65, 65, 71, 53, 49, 48, 139, 86, 53, 94, 42, 41, 69, 28, 3, 10, 254, 199, 54, 82, 27, 27, 27, 30, 29, 42, 144, 97, 172, 16, 56, 38, 39, 94, 14, 22, 49, 27, 37, 82, 40, 47, 71, 24, 24, 24, 28, 16, 121, 8, 19, 1, 41, 34, 30, 56, 25, 31, 54, 23, 16, 45, 121, 54, 1, 247, 91, 136, 46, 45, 45, 56, 45, 46, 114, 59, 34, 63, 23, 23, 28, 30, 27, 28, 78, 49, 85, 44, 44, 45, 134, 89, 68, 117, 42, 43, 50, 22, 19, 19, 50, 28, 29, 54, 106, 28, 25, 24, 68, 40, 42, 65, 23, 35, 34, 219, 32, 59, 23, 23, 28, 0, 255, 255, 0, 156, 255, 236, 4, 54, 6, 73, 6, 38, 0, 28, 0, 0, 0, 6, 1, 98, 10, 98, 255, 255, 0, 156, 255, 236, 4, 54, 6, 214, 6, 38, 0, 28, 0, 0, 0, 6, 2, 107, 248, 100, 255, 255, 0, 156, 255, 236, 4, 54, 6, 16, 6, 38, 0, 28, 0, 0, 0, 7, 1, 93, 0, 143, 0, 31, 255, 255, 0, 43, 255, 236, 4, 169, 5, 223, 6, 38, 0, 73, 0, 0, 0, 7, 1, 91, 0, 152, 0, 22, 255, 255, 0, 143, 255, 236, 4, 51, 5, 222, 6, 38, 0, 30, 0, 0, 0, 7, 1, 91, 0, 147, 0, 21, 255, 255, 0, 143, 255, 236, 4, 51, 6, 7, 6, 38, 0, 30, 0, 0, 0, 6, 1, 100, 30, 26, 255, 255, 0, 143, 254, 77, 4, 51, 4, 78, 6, 38, 0, 30, 0, 0, 0, 6, 1, 102, 75, 0, 255, 255, 0, 143, 255, 236, 4, 51, 6, 6, 6, 38, 0, 30, 0, 0, 0, 7, 1, 92, 0, 149, 0, 25, 255, 255, 0, 100, 255, 236, 5, 191, 6, 22, 4, 38, 0, 31, 217, 0, 0, 7, 0, 109, 2, 223, 0, 0, 0, 2, 0, 124, 255, 236, 4, 210, 6, 0, 0, 37, 0, 63, 0, 0, 65, 53, 35, 53, 35, 21, 35, 21, 51, 17, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 23, 51, 17, 1, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 17, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 4, 210, 197, 185, 255, 255, 20, 45, 26, 42, 102, 60, 99, 160, 56, 57, 61, 62, 56, 56, 159, 98, 55, 95, 40, 33, 57, 24, 8, 170, 253, 40, 34, 36, 35, 111, 78, 41, 71, 29, 34, 54, 20, 18, 48, 31, 31, 76, 47, 77, 110, 35, 36, 34, 4, 210, 151, 151, 151, 151, 254, 253, 23, 39, 15, 25, 25, 82, 73, 73, 203, 121, 21, 116, 201, 74, 74, 84, 21, 20, 17, 46, 30, 114, 4, 210, 253, 63, 21, 79, 143, 55, 54, 64, 19, 16, 20, 60, 36, 254, 10, 35, 57, 20, 21, 22, 63, 54, 54, 142, 255, 255, 0, 135, 255, 236, 4, 69, 5, 223, 6, 38, 0, 32, 0, 0, 0, 6, 1, 91, 124, 22, 255, 255, 0, 135, 255, 236, 4, 69, 6, 9, 6, 38, 0, 32, 0, 0, 0, 6, 1, 95, 6, 87, 255, 255, 0, 135, 255, 236, 4, 69, 6, 8, 6, 38, 0, 32, 0, 0, 0, 6, 1, 100, 7, 27, 255, 255, 0, 135, 255, 236, 4, 69, 6, 7, 6, 38, 0, 32, 0, 0, 0, 6, 1, 92, 126, 26, 255, 255, 0, 135, 255, 236, 4, 69, 5, 223, 6, 38, 0, 32, 0, 0, 0, 6, 1, 97, 6, 26, 255, 255, 0, 135, 255, 236, 4, 69, 5, 216, 6, 38, 0, 32, 0, 0, 0, 6, 1, 96, 6, 26, 255, 255, 0, 135, 255, 236, 4, 69, 5, 226, 6, 38, 0, 32, 0, 0, 0, 6, 1, 90, 144, 25, 255, 255, 0, 135, 255, 236, 4, 69, 5, 185, 6, 38, 0, 32, 0, 0, 0, 6, 1, 94, 10, 9, 0, 1, 0, 184, 254, 75, 4, 23, 4, 78, 0, 50, 0, 0, 115, 51, 17, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 17, 20, 6, 7, 6, 6, 35, 34, 38, 39, 7, 22, 22, 51, 50, 54, 55, 54, 54, 53, 17, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 39, 39, 35, 184, 185, 16, 41, 25, 33, 88, 54, 62, 91, 29, 27, 27, 25, 25, 16, 45, 27, 19, 60, 21, 14, 30, 54, 30, 73, 116, 40, 46, 48, 50, 47, 47, 136, 86, 68, 114, 46, 26, 45, 20, 1, 11, 166, 3, 42, 26, 45, 17, 23, 24, 32, 35, 32, 100, 68, 253, 1, 53, 78, 23, 16, 16, 7, 6, 157, 10, 8, 42, 39, 44, 135, 88, 3, 3, 108, 159, 52, 51, 50, 39, 35, 20, 51, 29, 10, 144, 0, 2, 0, 135, 254, 97, 4, 69, 4, 78, 0, 62, 0, 76, 0, 0, 83, 20, 22, 23, 22, 22, 23, 50, 50, 51, 6, 6, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 39, 6, 6, 39, 34, 38, 53, 52, 54, 55, 54, 54, 55, 54, 54, 55, 39, 6, 6, 35, 34, 38, 39, 38, 38, 53, 53, 33, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 1, 50, 22, 23, 22, 22, 21, 21, 33, 54, 54, 55, 54, 54, 135, 73, 67, 65, 182, 110, 1, 3, 1, 51, 55, 30, 26, 26, 70, 41, 65, 85, 28, 31, 16, 53, 32, 42, 36, 32, 28, 22, 57, 33, 69, 112, 34, 113, 51, 154, 99, 75, 125, 43, 49, 50, 3, 5, 57, 58, 58, 175, 117, 93, 177, 69, 70, 84, 1, 237, 71, 102, 35, 31, 41, 253, 186, 11, 55, 40, 40, 100, 1, 247, 111, 189, 69, 69, 80, 4, 48, 105, 53, 47, 71, 24, 24, 24, 28, 16, 121, 8, 19, 1, 41, 34, 38, 69, 30, 23, 41, 18, 25, 95, 51, 88, 66, 80, 57, 47, 53, 139, 60, 1, 83, 113, 194, 72, 71, 81, 76, 71, 72, 207, 131, 1, 149, 52, 42, 38, 116, 55, 7, 75, 115, 40, 39, 41, 0, 255, 255, 0, 140, 254, 86, 4, 29, 6, 8, 6, 38, 0, 34, 0, 0, 0, 6, 1, 95, 246, 86, 255, 255, 0, 140, 254, 86, 4, 29, 6, 6, 6, 38, 0, 34, 0, 0, 0, 6, 1, 92, 109, 25, 255, 255, 0, 140, 254, 86, 4, 29, 6, 147, 6, 38, 0, 34, 0, 0, 0, 6, 2, 78, 7, 88, 0, 1, 0, 11, 0, 0, 4, 59, 6, 0, 0, 39, 0, 0, 65, 53, 33, 53, 35, 21, 35, 21, 51, 17, 51, 17, 54, 54, 55, 54, 54, 51, 54, 22, 23, 22, 22, 21, 17, 51, 17, 52, 38, 39, 38, 38, 35, 6, 6, 7, 6, 6, 7, 17, 2, 136, 254, 238, 185, 178, 178, 185, 20, 50, 30, 38, 91, 50, 59, 93, 31, 30, 32, 185, 53, 49, 49, 139, 85, 56, 101, 44, 39, 67, 27, 4, 210, 151, 151, 151, 151, 251, 46, 3, 18, 32, 53, 20, 26, 28, 1, 33, 33, 32, 99, 66, 253, 85, 2, 169, 109, 159, 52, 52, 49, 1, 27, 26, 23, 64, 40, 1, 57, 0, 255, 255, 255, 231, 0, 0, 4, 44, 7, 111, 6, 38, 0, 35, 0, 0, 0, 7, 1, 92, 255, 38, 1, 130, 255, 255, 0, 203, 0, 0, 4, 85, 5, 201, 6, 38, 1, 109, 0, 0, 0, 7, 1, 91, 0, 170, 0, 0, 255, 255, 0, 203, 0, 0, 4, 85, 5, 243, 6, 38, 1, 109, 0, 0, 0, 6, 1, 95, 52, 65, 255, 255, 0, 203, 0, 0, 4, 85, 5, 241, 6, 38, 1, 109, 0, 0, 0, 7, 1, 92, 0, 172, 0, 4, 255, 255, 0, 203, 0, 0, 4, 85, 5, 201, 6, 38, 1, 109, 0, 0, 0, 6, 1, 97, 52, 4, 255, 255, 0, 203, 0, 0, 4, 85, 5, 204, 6, 38, 1, 109, 0, 0, 0, 6, 1, 90, 190, 3, 255, 255, 0, 203, 0, 0, 4, 85, 5, 164, 6, 38, 1, 109, 0, 0, 0, 6, 1, 94, 56, 244, 0, 2, 0, 203, 254, 79, 4, 85, 5, 195, 0, 38, 0, 50, 0, 0, 83, 21, 33, 17, 33, 21, 33, 6, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 39, 6, 6, 39, 34, 38, 53, 52, 54, 55, 54, 54, 55, 33, 53, 33, 17, 3, 20, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 203, 1, 112, 254, 144, 1, 116, 23, 41, 16, 35, 37, 30, 26, 26, 70, 41, 65, 85, 28, 31, 16, 53, 32, 42, 36, 28, 25, 22, 60, 37, 1, 97, 254, 159, 209, 55, 56, 55, 56, 56, 55, 56, 55, 4, 58, 161, 253, 7, 160, 17, 37, 20, 40, 86, 43, 47, 71, 24, 24, 24, 28, 16, 121, 8, 19, 1, 41, 34, 35, 65, 28, 26, 45, 20, 160, 3, 154, 1, 28, 45, 60, 60, 45, 46, 63, 63, 255, 255, 0, 203, 0, 0, 4, 85, 5, 251, 6, 38, 1, 109, 0, 0, 0, 7, 1, 93, 0, 184, 0, 10, 255, 255, 0, 176, 254, 75, 3, 245, 5, 232, 6, 38, 1, 113, 0, 0, 0, 7, 1, 92, 0, 215, 255, 251, 255, 255, 0, 176, 254, 64, 4, 106, 6, 0, 6, 38, 0, 38, 0, 0, 0, 7, 1, 104, 0, 98, 254, 234, 255, 255, 0, 203, 0, 0, 4, 85, 7, 102, 6, 38, 0, 39, 0, 0, 0, 7, 1, 91, 0, 162, 1, 157, 255, 255, 0, 153, 0, 0, 4, 175, 6, 4, 4, 38, 0, 39, 206, 0, 0, 7, 0, 109, 1, 207, 255, 238, 255, 255, 0, 203, 254, 57, 4, 85, 6, 0, 6, 38, 0, 39, 0, 0, 0, 7, 1, 104, 0, 210, 254, 227, 255, 255, 0, 133, 0, 1, 4, 18, 6, 1, 4, 38, 0, 39, 186, 1, 0, 7, 1, 96, 1, 58, 253, 231, 0, 1, 0, 203, 0, 0, 4, 85, 6, 0, 0, 17, 0, 0, 65, 17, 33, 21, 33, 17, 5, 21, 37, 17, 33, 21, 33, 53, 33, 17, 37, 55, 2, 244, 253, 215, 1, 112, 254, 173, 1, 83, 254, 144, 3, 138, 254, 159, 1, 33, 1, 3, 205, 2, 51, 161, 254, 25, 154, 162, 154, 253, 202, 160, 160, 2, 139, 132, 162, 0, 255, 255, 0, 174, 0, 0, 4, 41, 5, 222, 6, 38, 0, 41, 0, 0, 0, 6, 1, 91, 109, 21, 255, 255, 0, 174, 0, 0, 4, 41, 6, 7, 6, 38, 0, 41, 0, 0, 0, 6, 1, 100, 249, 26, 255, 255, 0, 174, 254, 56, 4, 41, 4, 78, 6, 38, 0, 41, 0, 0, 0, 7, 1, 104, 0, 147, 254, 226, 255, 255, 0, 174, 0, 0, 4, 41, 6, 16, 6, 38, 0, 41, 0, 0, 0, 6, 1, 93, 123, 31, 255, 255, 0, 122, 255, 236, 4, 82, 5, 222, 6, 38, 0, 42, 0, 0, 0, 6, 1, 91, 118, 21, 255, 255, 0, 122, 255, 236, 4, 82, 6, 8, 6, 38, 0, 42, 0, 0, 0, 6, 1, 95, 0, 86, 255, 255, 0, 122, 255, 236, 4, 82, 6, 6, 6, 38, 0, 42, 0, 0, 0, 6, 1, 92, 120, 25, 255, 255, 0, 122, 255, 236, 4, 82, 5, 222, 6, 38, 0, 42, 0, 0, 0, 6, 1, 97, 0, 25, 255, 255, 0, 122, 255, 236, 4, 82, 5, 225, 6, 38, 0, 42, 0, 0, 0, 6, 1, 90, 138, 24, 0, 2, 0, 119, 255, 236, 4, 174, 4, 170, 0, 38, 0, 64, 0, 0, 83, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 53, 52, 38, 39, 54, 54, 55, 54, 54, 55, 35, 20, 6, 7, 6, 6, 7, 38, 38, 35, 34, 6, 7, 6, 6, 23, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 119, 68, 64, 63, 183, 115, 114, 182, 64, 63, 68, 42, 41, 40, 62, 23, 25, 27, 1, 168, 13, 14, 13, 39, 26, 61, 158, 96, 114, 182, 63, 64, 68, 185, 38, 39, 38, 114, 77, 77, 115, 39, 38, 39, 38, 38, 39, 115, 76, 77, 116, 38, 39, 38, 2, 39, 22, 117, 200, 74, 74, 84, 84, 74, 74, 200, 117, 22, 92, 164, 68, 17, 52, 36, 41, 108, 65, 43, 69, 26, 24, 34, 8, 53, 59, 85, 74, 74, 201, 139, 22, 79, 145, 55, 55, 65, 65, 55, 55, 145, 79, 22, 80, 145, 55, 55, 64, 64, 55, 55, 145, 255, 255, 0, 122, 255, 236, 4, 92, 6, 8, 6, 38, 0, 42, 0, 0, 0, 7, 1, 99, 0, 134, 0, 25, 255, 255, 0, 122, 255, 236, 4, 82, 5, 184, 6, 38, 0, 42, 0, 0, 0, 6, 1, 94, 4, 8, 0, 3, 0, 122, 255, 121, 4, 82, 4, 185, 0, 34, 0, 48, 0, 65, 0, 0, 83, 21, 20, 22, 23, 7, 51, 55, 22, 22, 51, 50, 54, 55, 54, 54, 53, 53, 52, 38, 39, 38, 38, 39, 55, 35, 7, 38, 38, 35, 34, 6, 7, 6, 6, 23, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 1, 38, 38, 37, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 1, 22, 22, 23, 22, 22, 122, 106, 99, 101, 123, 74, 43, 95, 54, 114, 182, 64, 63, 68, 29, 27, 24, 71, 44, 101, 123, 73, 45, 101, 57, 114, 182, 63, 64, 68, 185, 38, 39, 38, 114, 77, 38, 65, 29, 254, 170, 48, 48, 2, 102, 38, 38, 39, 115, 76, 34, 61, 28, 1, 84, 18, 28, 11, 16, 16, 2, 39, 22, 148, 238, 73, 205, 151, 17, 19, 84, 74, 74, 200, 117, 22, 76, 139, 59, 53, 91, 35, 205, 148, 20, 21, 85, 74, 74, 201, 139, 22, 79, 145, 55, 55, 65, 17, 15, 253, 74, 57, 157, 113, 22, 80, 145, 55, 55, 64, 13, 13, 2, 177, 22, 52, 28, 43, 97, 0, 255, 255, 0, 122, 255, 121, 4, 82, 5, 221, 6, 38, 1, 56, 0, 0, 0, 6, 1, 91, 80, 20, 255, 255, 0, 122, 255, 236, 4, 82, 6, 16, 6, 38, 0, 42, 0, 0, 0, 7, 1, 93, 0, 132, 0, 31, 255, 255, 1, 73, 0, 0, 4, 49, 5, 222, 6, 38, 0, 45, 0, 0, 0, 6, 1, 91, 88, 21, 255, 255, 1, 20, 0, 0, 4, 49, 6, 7, 6, 38, 0, 45, 0, 0, 0, 6, 1, 100, 228, 26, 255, 255, 1, 16, 254, 56, 4, 49, 4, 78, 6, 38, 0, 45, 0, 0, 0, 7, 1, 104, 255, 226, 254, 226, 255, 255, 0, 175, 255, 236, 4, 54, 5, 222, 6, 38, 0, 46, 0, 0, 0, 7, 1, 91, 0, 132, 0, 21, 255, 255, 0, 175, 255, 236, 4, 54, 6, 7, 6, 38, 0, 46, 0, 0, 0, 6, 1, 100, 15, 26, 255, 255, 0, 175, 254, 69, 4, 54, 4, 78, 6, 38, 0, 46, 0, 0, 0, 6, 1, 102, 68, 248, 255, 255, 0, 175, 255, 236, 4, 54, 6, 6, 6, 38, 0, 46, 0, 0, 0, 7, 1, 92, 0, 134, 0, 25, 0, 1, 0, 142, 255, 236, 4, 41, 5, 64, 0, 43, 0, 0, 65, 35, 17, 33, 21, 33, 21, 35, 21, 51, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 39, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 53, 51, 53, 35, 53, 33, 53, 33, 2, 100, 186, 254, 228, 1, 28, 217, 217, 53, 46, 46, 125, 72, 43, 87, 39, 39, 66, 23, 26, 17, 53, 30, 31, 64, 30, 41, 73, 28, 28, 32, 234, 234, 1, 156, 254, 100, 5, 64, 254, 250, 143, 186, 151, 251, 100, 141, 44, 45, 41, 8, 8, 7, 21, 14, 131, 4, 11, 5, 5, 7, 20, 25, 24, 82, 63, 251, 151, 186, 143, 0, 255, 255, 0, 127, 255, 236, 4, 129, 6, 179, 4, 38, 0, 47, 241, 0, 0, 7, 0, 109, 1, 161, 0, 157, 255, 255, 0, 180, 255, 236, 4, 31, 5, 202, 6, 38, 0, 48, 0, 0, 0, 6, 1, 91, 117, 1, 255, 255, 0, 180, 255, 236, 4, 31, 5, 244, 6, 38, 0, 48, 0, 0, 0, 6, 1, 95, 0, 66, 255, 255, 0, 180, 255, 236, 4, 31, 5, 242, 6, 38, 0, 48, 0, 0, 0, 6, 1, 92, 119, 5, 255, 255, 0, 180, 255, 236, 4, 31, 5, 202, 6, 38, 0, 48, 0, 0, 0, 6, 1, 97, 0, 5, 255, 255, 0, 180, 255, 236, 4, 31, 5, 205, 6, 38, 0, 48, 0, 0, 0, 6, 1, 90, 137, 4, 0, 1, 0, 180, 255, 236, 5, 63, 4, 147, 0, 39, 0, 0, 65, 35, 20, 6, 7, 6, 6, 7, 53, 35, 17, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 17, 35, 17, 20, 22, 23, 22, 22, 51, 50, 54, 55, 23, 51, 17, 54, 54, 5, 63, 168, 13, 16, 14, 45, 32, 186, 12, 31, 20, 38, 111, 74, 53, 81, 28, 28, 28, 185, 53, 49, 49, 138, 85, 106, 162, 54, 11, 168, 147, 140, 4, 147, 53, 82, 28, 25, 34, 8, 141, 252, 248, 27, 47, 19, 36, 41, 28, 35, 34, 116, 88, 2, 133, 253, 125, 121, 173, 56, 56, 53, 89, 80, 149, 3, 34, 19, 180, 255, 255, 0, 180, 255, 236, 4, 91, 5, 244, 6, 38, 0, 48, 0, 0, 0, 7, 1, 99, 0, 133, 0, 5, 255, 255, 0, 180, 255, 236, 4, 31, 5, 165, 6, 38, 0, 48, 0, 0, 0, 6, 1, 94, 3, 245, 0, 1, 0, 180, 254, 79, 4, 68, 4, 58, 0, 56, 0, 0, 97, 51, 17, 35, 17, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 17, 35, 17, 20, 22, 23, 22, 22, 51, 50, 54, 55, 23, 6, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 39, 6, 6, 39, 34, 38, 53, 52, 54, 55, 54, 54, 4, 30, 1, 186, 15, 44, 29, 37, 98, 63, 53, 81, 28, 28, 28, 185, 53, 49, 49, 138, 85, 106, 162, 54, 10, 25, 43, 18, 38, 41, 30, 26, 26, 70, 41, 65, 85, 28, 31, 16, 53, 32, 42, 36, 23, 21, 22, 66, 4, 58, 252, 248, 35, 58, 21, 27, 29, 28, 35, 34, 116, 88, 2, 133, 253, 125, 121, 173, 56, 56, 53, 89, 80, 140, 17, 37, 20, 42, 91, 45, 47, 71, 24, 24, 24, 28, 16, 121, 8, 19, 1, 41, 34, 32, 59, 27, 28, 51, 0, 255, 255, 0, 180, 255, 236, 4, 31, 6, 53, 6, 38, 0, 48, 0, 0, 0, 6, 1, 98, 255, 78, 255, 255, 0, 180, 255, 236, 4, 31, 5, 252, 6, 38, 0, 48, 0, 0, 0, 7, 1, 93, 0, 131, 0, 11, 255, 255, 0, 48, 0, 0, 4, 167, 5, 202, 6, 38, 0, 50, 0, 0, 0, 6, 1, 91, 124, 1, 255, 255, 0, 48, 0, 0, 4, 167, 5, 242, 6, 38, 0, 50, 0, 0, 0, 6, 1, 92, 126, 5, 255, 255, 0, 48, 0, 0, 4, 167, 5, 202, 6, 38, 0, 50, 0, 0, 0, 6, 1, 97, 6, 5, 255, 255, 0, 48, 0, 0, 4, 167, 5, 205, 6, 38, 0, 50, 0, 0, 0, 6, 1, 90, 144, 4, 255, 255, 0, 68, 254, 75, 4, 133, 5, 202, 6, 38, 0, 52, 0, 0, 0, 7, 1, 91, 0, 137, 0, 1, 255, 255, 0, 68, 254, 75, 4, 133, 5, 242, 6, 38, 0, 52, 0, 0, 0, 7, 1, 92, 0, 139, 0, 5, 255, 255, 0, 68, 254, 75, 4, 133, 5, 202, 6, 38, 0, 52, 0, 0, 0, 6, 1, 97, 19, 5, 255, 255, 0, 68, 254, 75, 4, 133, 5, 205, 6, 38, 0, 52, 0, 0, 0, 6, 1, 90, 157, 4, 255, 255, 0, 160, 0, 0, 4, 61, 5, 202, 6, 38, 0, 53, 0, 0, 0, 7, 1, 91, 0, 154, 0, 1, 255, 255, 0, 160, 0, 0, 4, 61, 5, 243, 6, 38, 0, 53, 0, 0, 0, 6, 1, 100, 37, 6, 255, 255, 0, 160, 0, 0, 4, 61, 5, 195, 6, 38, 0, 53, 0, 0, 0, 6, 1, 96, 36, 5, 0, 1, 1, 159, 4, 191, 3, 45, 5, 201, 0, 3, 0, 0, 65, 3, 35, 19, 3, 45, 175, 223, 248, 4, 191, 1, 10, 254, 246, 0, 0, 1, 1, 154, 4, 191, 3, 50, 5, 201, 0, 3, 0, 0, 65, 3, 51, 1, 2, 82, 184, 140, 1, 12, 5, 201, 254, 246, 1, 10, 0, 1, 0, 193, 4, 228, 3, 30, 5, 237, 0, 8, 0, 0, 65, 39, 35, 7, 21, 51, 55, 23, 51, 3, 30, 248, 112, 245, 152, 149, 150, 154, 4, 253, 240, 239, 26, 151, 151, 0, 0, 1, 0, 138, 4, 227, 3, 58, 5, 241, 0, 37, 0, 0, 65, 39, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 23, 54, 54, 51, 50, 22, 23, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 3, 58, 103, 17, 13, 14, 38, 21, 39, 65, 31, 32, 67, 42, 46, 75, 27, 27, 31, 104, 1, 57, 44, 27, 44, 20, 19, 38, 22, 21, 52, 33, 45, 76, 27, 27, 31, 5, 211, 30, 23, 41, 15, 15, 18, 30, 18, 17, 30, 38, 31, 32, 83, 45, 24, 46, 65, 14, 10, 11, 25, 10, 11, 14, 36, 31, 30, 82, 0, 1, 1, 1, 5, 33, 3, 203, 5, 176, 0, 3, 0, 0, 65, 53, 33, 21, 3, 203, 253, 54, 5, 33, 143, 143, 0, 1, 1, 59, 4, 167, 3, 145, 5, 178, 0, 25, 0, 0, 65, 35, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 35, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 3, 145, 150, 18, 18, 18, 55, 39, 40, 56, 18, 18, 18, 150, 43, 39, 39, 110, 69, 68, 110, 39, 39, 42, 5, 178, 30, 55, 20, 20, 24, 24, 20, 20, 55, 30, 59, 99, 35, 35, 39, 39, 35, 35, 99, 0, 0, 1, 1, 242, 4, 225, 2, 216, 5, 190, 0, 11, 0, 0, 65, 20, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 1, 242, 58, 57, 57, 58, 58, 57, 57, 58, 5, 78, 46, 63, 63, 46, 48, 64, 64, 0, 0, 2, 1, 31, 4, 240, 3, 168, 5, 197, 0, 11, 0, 23, 0, 0, 65, 20, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 5, 20, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 1, 31, 55, 54, 54, 56, 56, 54, 54, 55, 1, 174, 55, 54, 54, 56, 56, 54, 54, 55, 5, 91, 45, 60, 60, 45, 45, 61, 61, 47, 44, 61, 61, 44, 45, 62, 62, 0, 0, 2, 1, 154, 4, 94, 3, 49, 5, 231, 0, 23, 0, 47, 0, 0, 65, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 23, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 1, 154, 33, 28, 27, 75, 42, 42, 73, 28, 27, 32, 32, 27, 28, 73, 42, 42, 75, 27, 28, 33, 99, 18, 15, 14, 38, 21, 22, 37, 14, 14, 16, 16, 14, 14, 37, 22, 22, 38, 14, 15, 17, 5, 32, 43, 72, 25, 26, 28, 28, 26, 25, 72, 43, 43, 73, 27, 26, 30, 30, 26, 27, 73, 43, 25, 41, 15, 13, 15, 15, 14, 15, 41, 24, 23, 38, 14, 14, 16, 16, 15, 14, 38, 0, 2, 0, 246, 4, 226, 3, 214, 5, 239, 0, 3, 0, 7, 0, 0, 65, 3, 51, 1, 33, 3, 51, 19, 2, 245, 249, 169, 1, 49, 253, 220, 188, 150, 245, 5, 239, 254, 243, 1, 13, 254, 243, 1, 13, 0, 0, 1, 1, 48, 4, 227, 3, 155, 5, 237, 0, 8, 0, 0, 65, 39, 35, 21, 23, 51, 55, 53, 35, 2, 100, 151, 157, 251, 114, 254, 160, 5, 85, 152, 21, 245, 248, 18, 0, 1, 253, 39, 254, 168, 254, 13, 255, 133, 0, 11, 0, 0, 69, 20, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 253, 39, 58, 57, 57, 58, 58, 57, 57, 58, 235, 46, 63, 63, 46, 48, 64, 64, 0, 1, 1, 205, 254, 77, 3, 3, 0, 0, 0, 27, 0, 0, 97, 35, 7, 22, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 23, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 2, 118, 133, 31, 40, 60, 21, 20, 20, 27, 22, 23, 60, 34, 7, 61, 101, 37, 50, 54, 26, 21, 22, 55, 29, 134, 3, 12, 10, 11, 34, 25, 27, 37, 12, 12, 11, 107, 22, 19, 27, 86, 56, 43, 61, 20, 20, 24, 5, 0, 0, 1, 1, 142, 254, 79, 3, 1, 0, 56, 0, 28, 0, 0, 97, 39, 6, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 39, 6, 6, 39, 34, 38, 53, 52, 54, 55, 54, 54, 2, 219, 87, 56, 91, 32, 32, 35, 30, 26, 26, 70, 41, 65, 85, 28, 31, 16, 53, 32, 42, 36, 32, 29, 21, 57, 56, 27, 70, 39, 39, 83, 41, 47, 71, 24, 24, 24, 28, 16, 121, 8, 19, 1, 41, 34, 38, 69, 31, 22, 41, 0, 1, 1, 46, 255, 86, 2, 40, 0, 239, 0, 9, 0, 0, 101, 53, 35, 21, 20, 6, 7, 23, 54, 54, 2, 40, 176, 37, 37, 105, 71, 74, 169, 70, 73, 75, 127, 62, 72, 62, 183, 0, 255, 255, 0, 212, 0, 118, 3, 215, 3, 146, 4, 39, 0, 122, 255, 72, 255, 221, 0, 7, 0, 122, 0, 151, 255, 221, 0, 1, 0, 188, 254, 96, 4, 16, 4, 58, 0, 30, 0, 0, 65, 35, 17, 51, 17, 22, 22, 51, 50, 54, 55, 54, 54, 55, 23, 51, 17, 35, 17, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 1, 117, 185, 185, 41, 114, 73, 52, 87, 36, 25, 44, 19, 9, 167, 186, 11, 32, 22, 33, 98, 65, 48, 81, 29, 30, 32, 4, 58, 250, 38, 1, 213, 36, 37, 24, 23, 17, 45, 27, 116, 4, 58, 252, 225, 28, 46, 19, 29, 31, 28, 37, 37, 128, 100, 255, 255, 0, 241, 0, 152, 3, 254, 3, 181, 4, 39, 0, 123, 255, 101, 0, 0, 0, 7, 0, 123, 0, 190, 0, 0, 0, 1, 0, 203, 0, 0, 4, 85, 4, 58, 0, 9, 0, 0, 83, 21, 33, 17, 33, 21, 33, 53, 33, 17, 203, 1, 112, 254, 144, 3, 138, 254, 159, 4, 58, 161, 253, 7, 160, 160, 3, 154, 0, 2, 0, 128, 255, 237, 4, 76, 5, 176, 0, 3, 0, 28, 0, 0, 97, 17, 35, 17, 1, 17, 20, 6, 7, 6, 6, 35, 34, 38, 53, 35, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 17, 1, 57, 185, 3, 19, 15, 18, 18, 60, 46, 68, 80, 186, 50, 44, 44, 123, 73, 87, 129, 43, 42, 41, 5, 176, 250, 80, 5, 176, 251, 147, 44, 71, 24, 25, 27, 90, 99, 87, 128, 42, 42, 41, 46, 44, 44, 127, 81, 4, 109, 0, 0, 4, 0, 80, 254, 78, 4, 79, 5, 191, 0, 29, 0, 39, 0, 51, 0, 63, 0, 0, 65, 21, 51, 17, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 7, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 17, 33, 21, 51, 17, 35, 21, 33, 53, 35, 17, 3, 20, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 5, 20, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 2, 174, 222, 39, 34, 34, 92, 52, 14, 48, 27, 27, 52, 17, 13, 23, 44, 21, 30, 60, 33, 100, 157, 55, 54, 57, 252, 16, 234, 239, 2, 136, 223, 202, 55, 56, 55, 56, 56, 55, 56, 55, 2, 66, 54, 56, 56, 56, 56, 56, 56, 54, 4, 58, 161, 252, 98, 77, 103, 30, 31, 25, 1, 2, 1, 5, 3, 158, 4, 6, 2, 3, 2, 56, 55, 55, 159, 104, 4, 63, 161, 253, 7, 160, 160, 3, 154, 1, 24, 45, 61, 61, 45, 45, 63, 63, 44, 45, 61, 61, 45, 45, 63, 63, 0, 1, 1, 200, 0, 0, 4, 11, 6, 43, 0, 21, 0, 0, 97, 51, 17, 52, 54, 55, 54, 54, 51, 50, 22, 23, 55, 38, 38, 35, 34, 6, 7, 6, 6, 21, 1, 200, 186, 36, 35, 35, 103, 68, 29, 46, 18, 23, 37, 71, 37, 100, 160, 56, 57, 61, 4, 102, 69, 112, 39, 39, 42, 6, 5, 142, 9, 12, 60, 57, 58, 169, 109, 0, 0, 1, 0, 176, 254, 75, 3, 42, 4, 58, 0, 29, 0, 0, 65, 21, 33, 17, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 7, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 17, 1, 4, 1, 108, 39, 34, 34, 91, 52, 14, 49, 27, 27, 51, 17, 13, 24, 44, 22, 29, 59, 33, 100, 157, 55, 54, 57, 4, 58, 161, 252, 96, 77, 105, 32, 32, 27, 1, 2, 1, 5, 3, 152, 4, 6, 2, 3, 2, 57, 55, 54, 160, 104, 4, 65, 0, 0, 2, 1, 173, 254, 134, 2, 221, 255, 171, 0, 23, 0, 35, 0, 0, 69, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 23, 54, 54, 51, 50, 22, 21, 20, 6, 35, 34, 38, 1, 173, 24, 21, 21, 56, 32, 31, 54, 21, 20, 24, 24, 20, 21, 54, 31, 32, 56, 21, 21, 24, 86, 1, 39, 28, 26, 38, 38, 26, 28, 39, 233, 32, 54, 19, 19, 21, 21, 19, 19, 54, 32, 32, 55, 20, 19, 22, 22, 19, 20, 55, 32, 29, 39, 39, 29, 28, 37, 38, 0, 1, 252, 202, 4, 188, 253, 251, 6, 22, 0, 3, 0, 0, 65, 3, 35, 19, 253, 251, 127, 178, 179, 4, 188, 1, 90, 254, 166, 0, 0, 1, 253, 104, 4, 188, 254, 150, 6, 23, 0, 3, 0, 0, 65, 3, 51, 19, 253, 234, 130, 116, 186, 6, 23, 254, 165, 1, 91, 0, 255, 255, 252, 136, 4, 227, 255, 56, 5, 241, 4, 7, 1, 93, 251, 254, 0, 0, 0, 1, 253, 89, 4, 217, 254, 143, 6, 116, 0, 27, 0, 0, 65, 51, 55, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 7, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 7, 253, 111, 132, 1, 28, 56, 22, 22, 27, 49, 46, 38, 105, 65, 7, 33, 60, 23, 23, 27, 21, 21, 18, 52, 33, 4, 217, 71, 4, 20, 18, 18, 54, 38, 48, 75, 24, 20, 21, 106, 8, 9, 9, 30, 22, 22, 27, 8, 7, 8, 2, 0, 0, 2, 252, 5, 4, 228, 254, 229, 5, 238, 0, 3, 0, 7, 0, 0, 65, 3, 35, 1, 33, 3, 35, 19, 253, 224, 250, 225, 1, 50, 1, 174, 189, 207, 246, 4, 228, 1, 10, 254, 246, 1, 10, 254, 246, 0, 0, 1, 2, 41, 4, 247, 3, 45, 6, 122, 0, 3, 0, 0, 65, 3, 51, 19, 2, 106, 65, 90, 170, 6, 122, 254, 125, 1, 131, 0, 0, 3, 1, 19, 4, 226, 3, 243, 6, 191, 0, 3, 0, 15, 0, 27, 0, 0, 65, 3, 51, 19, 1, 20, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 5, 20, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 2, 116, 48, 135, 118, 253, 210, 57, 57, 57, 58, 58, 57, 57, 57, 1, 251, 57, 57, 57, 58, 58, 57, 57, 57, 6, 191, 254, 248, 1, 8, 254, 145, 46, 64, 64, 46, 48, 64, 64, 48, 46, 64, 64, 46, 48, 64, 64, 255, 255, 2, 48, 2, 107, 3, 22, 3, 73, 4, 6, 0, 100, 56, 0, 0, 1, 0, 181, 0, 0, 4, 48, 5, 176, 0, 5, 0, 0, 65, 53, 33, 17, 51, 17, 4, 48, 252, 133, 186, 5, 24, 152, 250, 80, 5, 24, 0, 2, 0, 46, 0, 0, 4, 180, 5, 176, 0, 3, 0, 8, 0, 0, 65, 1, 33, 9, 2, 55, 23, 1, 2, 52, 253, 250, 4, 134, 254, 32, 254, 74, 1, 69, 30, 27, 1, 43, 5, 176, 250, 80, 5, 176, 250, 231, 3, 195, 89, 90, 252, 62, 0, 3, 0, 106, 255, 236, 4, 97, 5, 196, 0, 3, 0, 29, 0, 55, 0, 0, 65, 53, 33, 21, 5, 53, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 21, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 3, 21, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 3, 77, 254, 48, 2, 228, 2, 57, 63, 63, 190, 133, 121, 180, 65, 73, 66, 2, 2, 64, 66, 63, 185, 129, 132, 192, 59, 64, 59, 183, 2, 33, 43, 38, 119, 88, 87, 119, 36, 45, 40, 37, 46, 38, 117, 87, 85, 119, 35, 48, 36, 2, 148, 151, 151, 16, 166, 118, 240, 96, 96, 116, 97, 90, 101, 249, 129, 166, 122, 246, 97, 89, 110, 117, 91, 95, 242, 1, 31, 168, 86, 194, 73, 68, 80, 82, 60, 77, 197, 85, 168, 84, 193, 79, 61, 82, 78, 58, 80, 196, 0, 1, 0, 54, 0, 0, 4, 160, 5, 176, 0, 6, 0, 0, 65, 1, 51, 1, 35, 1, 51, 2, 106, 1, 121, 189, 254, 27, 161, 254, 28, 189, 4, 156, 251, 100, 5, 176, 250, 80, 0, 3, 0, 145, 0, 0, 4, 55, 5, 176, 0, 3, 0, 7, 0, 11, 0, 0, 119, 21, 33, 53, 1, 21, 33, 53, 1, 21, 33, 53, 145, 3, 166, 252, 175, 2, 242, 252, 187, 3, 150, 151, 151, 151, 2, 167, 152, 152, 2, 114, 152, 152, 0, 1, 0, 162, 0, 0, 4, 42, 5, 176, 0, 7, 0, 0, 97, 17, 33, 17, 51, 17, 33, 17, 4, 42, 252, 120, 185, 2, 22, 5, 176, 250, 80, 5, 24, 250, 232, 0, 0, 1, 0, 112, 0, 0, 4, 111, 5, 176, 0, 12, 0, 0, 65, 53, 1, 33, 53, 33, 21, 1, 1, 21, 33, 53, 33, 3, 25, 254, 61, 2, 231, 252, 51, 1, 229, 254, 27, 3, 255, 252, 230, 2, 205, 25, 2, 50, 152, 144, 253, 185, 253, 183, 144, 152, 0, 3, 0, 69, 0, 0, 4, 135, 5, 176, 0, 29, 0, 42, 0, 55, 0, 0, 65, 53, 35, 21, 6, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 23, 21, 51, 53, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 1, 52, 54, 55, 54, 54, 55, 17, 38, 38, 39, 38, 38, 37, 20, 6, 7, 6, 6, 7, 17, 22, 22, 23, 22, 22, 2, 195, 185, 98, 165, 61, 61, 68, 68, 61, 61, 165, 98, 185, 97, 165, 61, 60, 69, 69, 60, 61, 165, 253, 216, 36, 35, 34, 100, 65, 65, 100, 34, 35, 36, 2, 211, 36, 34, 35, 99, 64, 64, 99, 35, 34, 36, 4, 226, 206, 206, 7, 83, 69, 69, 188, 111, 112, 188, 69, 69, 82, 7, 196, 196, 7, 84, 70, 69, 187, 112, 111, 186, 69, 69, 82, 253, 249, 79, 132, 49, 49, 59, 7, 253, 18, 6, 59, 49, 48, 133, 82, 80, 133, 49, 49, 59, 7, 2, 238, 7, 59, 48, 49, 131, 0, 0, 1, 0, 101, 0, 0, 4, 114, 5, 176, 0, 35, 0, 0, 65, 17, 35, 17, 38, 38, 39, 38, 38, 53, 17, 35, 17, 20, 22, 23, 22, 22, 23, 17, 51, 17, 54, 54, 55, 54, 54, 53, 17, 35, 17, 20, 6, 7, 6, 6, 2, 199, 185, 54, 89, 31, 32, 34, 185, 62, 56, 56, 156, 95, 185, 94, 158, 56, 56, 63, 185, 35, 31, 32, 89, 1, 223, 3, 209, 252, 48, 12, 56, 45, 45, 124, 80, 2, 102, 253, 154, 118, 183, 65, 65, 76, 11, 254, 188, 1, 68, 11, 76, 65, 65, 183, 118, 2, 102, 253, 154, 80, 125, 45, 45, 56, 0, 1, 0, 97, 0, 0, 4, 108, 5, 196, 0, 59, 0, 0, 101, 21, 33, 53, 33, 54, 54, 55, 54, 54, 53, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 21, 20, 22, 23, 22, 22, 23, 33, 21, 33, 53, 38, 38, 39, 38, 38, 53, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 21, 20, 6, 7, 6, 6, 2, 168, 1, 196, 254, 246, 62, 98, 34, 33, 36, 74, 67, 68, 191, 117, 117, 190, 67, 68, 73, 36, 35, 34, 99, 62, 254, 250, 1, 196, 78, 115, 33, 22, 23, 46, 43, 42, 122, 77, 78, 124, 43, 42, 45, 22, 21, 33, 111, 193, 193, 151, 47, 135, 80, 80, 177, 89, 79, 139, 235, 85, 84, 95, 95, 84, 85, 235, 139, 79, 89, 176, 80, 81, 135, 47, 151, 193, 18, 119, 99, 65, 166, 99, 81, 117, 181, 62, 61, 64, 64, 61, 62, 181, 117, 81, 99, 167, 66, 98, 119, 0, 0, 2, 0, 129, 255, 235, 4, 138, 4, 78, 0, 47, 0, 76, 0, 0, 65, 35, 7, 7, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 22, 22, 23, 22, 22, 51, 50, 54, 55, 39, 6, 6, 35, 34, 38, 39, 38, 38, 53, 37, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 17, 20, 20, 21, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 3, 239, 112, 46, 3, 20, 48, 27, 45, 108, 65, 99, 151, 51, 51, 52, 52, 51, 51, 150, 98, 64, 108, 44, 27, 48, 20, 9, 25, 16, 27, 74, 47, 32, 59, 31, 23, 10, 27, 15, 18, 29, 10, 11, 12, 253, 75, 28, 32, 31, 101, 72, 43, 73, 31, 30, 48, 19, 14, 33, 20, 34, 89, 56, 71, 100, 31, 32, 28, 4, 58, 119, 8, 27, 45, 17, 28, 30, 88, 77, 78, 213, 125, 21, 112, 191, 69, 70, 79, 28, 27, 17, 43, 26, 28, 44, 16, 27, 26, 13, 21, 138, 2, 4, 13, 15, 15, 51, 38, 223, 21, 85, 155, 60, 59, 70, 21, 19, 19, 52, 31, 254, 32, 19, 19, 13, 24, 42, 17, 30, 34, 60, 51, 50, 134, 0, 2, 0, 174, 254, 128, 4, 91, 5, 196, 0, 38, 0, 78, 0, 0, 65, 34, 6, 7, 6, 6, 21, 17, 51, 17, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 3, 35, 21, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 17, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 2, 107, 92, 161, 60, 61, 71, 186, 31, 72, 38, 39, 81, 40, 98, 166, 61, 61, 68, 56, 53, 29, 73, 43, 32, 55, 22, 37, 40, 61, 56, 56, 158, 101, 84, 143, 61, 95, 33, 33, 34, 40, 37, 37, 107, 67, 50, 88, 36, 33, 54, 21, 40, 35, 34, 95, 55, 58, 91, 31, 31, 32, 29, 30, 30, 94, 5, 196, 64, 55, 55, 147, 82, 250, 79, 1, 203, 25, 37, 11, 12, 11, 59, 57, 57, 165, 107, 85, 142, 52, 29, 45, 16, 17, 43, 25, 42, 105, 58, 87, 144, 53, 52, 57, 253, 150, 152, 50, 40, 41, 102, 53, 63, 107, 38, 39, 43, 19, 16, 15, 41, 25, 3, 59, 53, 92, 34, 34, 39, 40, 33, 33, 86, 46, 51, 84, 30, 30, 34, 0, 1, 0, 71, 254, 96, 4, 150, 4, 58, 0, 11, 0, 0, 65, 1, 7, 35, 39, 1, 35, 1, 17, 51, 17, 1, 3, 216, 254, 179, 25, 1, 24, 254, 172, 190, 1, 203, 186, 1, 202, 4, 58, 252, 240, 98, 98, 3, 16, 251, 252, 254, 42, 1, 207, 4, 11, 0, 0, 2, 0, 120, 255, 236, 4, 102, 6, 28, 0, 57, 0, 83, 0, 0, 65, 20, 22, 23, 22, 22, 23, 7, 6, 6, 7, 6, 6, 21, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 53, 52, 2, 39, 38, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 55, 38, 38, 35, 34, 6, 7, 6, 6, 19, 53, 52, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 21, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 1, 7, 30, 27, 27, 76, 47, 4, 72, 127, 46, 47, 54, 68, 65, 65, 187, 120, 118, 186, 65, 64, 68, 223, 220, 67, 89, 27, 27, 23, 28, 25, 25, 69, 42, 40, 78, 36, 36, 63, 23, 41, 75, 159, 80, 86, 140, 49, 50, 54, 43, 40, 40, 40, 120, 81, 71, 115, 41, 41, 45, 38, 39, 39, 118, 81, 82, 120, 39, 40, 38, 4, 245, 47, 81, 34, 35, 54, 19, 11, 17, 82, 60, 60, 152, 87, 21, 113, 193, 71, 71, 81, 81, 71, 71, 193, 113, 21, 207, 1, 20, 73, 23, 48, 24, 24, 47, 22, 31, 51, 18, 18, 20, 13, 9, 10, 22, 9, 130, 38, 47, 40, 38, 38, 110, 252, 195, 21, 76, 139, 53, 52, 61, 1, 12, 75, 52, 53, 125, 63, 21, 77, 138, 51, 52, 61, 61, 52, 51, 138, 0, 1, 0, 139, 255, 236, 4, 96, 4, 77, 0, 82, 0, 0, 83, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 35, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 55, 54, 54, 51, 51, 53, 35, 34, 38, 39, 38, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 51, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 23, 6, 6, 7, 6, 6, 139, 72, 66, 65, 180, 108, 97, 174, 70, 62, 86, 1, 185, 46, 40, 41, 112, 66, 74, 114, 38, 39, 40, 28, 28, 21, 57, 35, 27, 62, 35, 243, 243, 38, 64, 26, 25, 42, 16, 33, 30, 33, 35, 35, 108, 75, 58, 104, 39, 39, 47, 185, 1, 76, 64, 65, 171, 95, 108, 175, 61, 62, 66, 34, 32, 25, 68, 41, 42, 70, 26, 40, 41, 1, 48, 78, 120, 41, 42, 43, 44, 42, 37, 130, 87, 39, 69, 26, 27, 30, 27, 24, 23, 64, 37, 40, 61, 21, 15, 22, 6, 5, 4, 148, 6, 5, 6, 16, 10, 21, 59, 37, 34, 60, 23, 22, 26, 26, 22, 23, 63, 37, 75, 119, 42, 41, 44, 40, 39, 40, 117, 78, 42, 77, 31, 25, 41, 15, 12, 35, 23, 33, 92, 0, 1, 0, 117, 254, 129, 4, 47, 5, 176, 0, 56, 0, 0, 65, 33, 21, 33, 1, 6, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 23, 23, 22, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 7, 23, 54, 54, 55, 54, 54, 55, 52, 38, 39, 38, 38, 39, 39, 38, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 55, 1, 4, 47, 252, 70, 2, 212, 254, 206, 92, 134, 43, 44, 42, 38, 41, 40, 127, 89, 181, 41, 60, 19, 18, 17, 16, 16, 12, 34, 21, 98, 28, 63, 26, 26, 35, 1, 41, 35, 35, 96, 54, 221, 44, 68, 23, 23, 24, 41, 39, 38, 110, 69, 1, 153, 5, 176, 152, 254, 196, 87, 164, 76, 76, 135, 57, 81, 122, 44, 45, 59, 16, 35, 8, 24, 14, 13, 31, 17, 25, 48, 25, 19, 42, 24, 84, 22, 69, 40, 39, 86, 39, 62, 75, 23, 23, 26, 12, 50, 9, 31, 25, 26, 74, 50, 78, 130, 60, 60, 117, 66, 1, 171, 0, 0, 1, 0, 164, 254, 97, 4, 43, 4, 78, 0, 32, 0, 0, 115, 51, 17, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 17, 51, 17, 52, 38, 39, 38, 38, 35, 6, 6, 7, 6, 6, 7, 39, 39, 35, 164, 186, 19, 52, 32, 35, 86, 52, 63, 95, 31, 33, 33, 186, 54, 50, 50, 142, 90, 65, 113, 47, 33, 56, 23, 1, 12, 167, 3, 40, 32, 51, 19, 19, 21, 29, 31, 32, 104, 73, 251, 184, 4, 76, 115, 159, 50, 49, 44, 1, 33, 31, 22, 58, 35, 14, 146, 0, 3, 0, 185, 255, 236, 4, 24, 5, 197, 0, 25, 0, 40, 0, 55, 0, 0, 69, 50, 54, 55, 54, 54, 53, 17, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 17, 20, 22, 23, 22, 22, 55, 34, 38, 39, 38, 38, 53, 53, 33, 21, 20, 6, 7, 6, 6, 1, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 21, 2, 106, 103, 160, 55, 55, 57, 58, 55, 55, 161, 103, 102, 161, 55, 55, 58, 59, 56, 55, 161, 102, 64, 94, 31, 30, 29, 1, 237, 31, 33, 30, 90, 254, 203, 35, 36, 30, 88, 57, 57, 87, 30, 37, 36, 20, 77, 74, 73, 215, 138, 1, 85, 138, 215, 75, 74, 77, 77, 74, 75, 215, 138, 254, 171, 138, 215, 73, 74, 77, 150, 52, 50, 49, 145, 92, 141, 141, 97, 149, 49, 46, 47, 2, 168, 129, 102, 154, 49, 40, 41, 41, 39, 48, 155, 103, 129, 0, 0, 1, 0, 184, 255, 236, 4, 58, 4, 58, 0, 26, 0, 0, 83, 21, 33, 17, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 39, 6, 6, 35, 34, 38, 39, 38, 38, 53, 3, 184, 1, 96, 42, 40, 39, 113, 72, 37, 72, 35, 23, 48, 25, 41, 29, 78, 45, 33, 60, 23, 24, 27, 1, 4, 58, 161, 253, 179, 101, 135, 41, 41, 34, 8, 12, 8, 24, 18, 130, 17, 28, 10, 19, 18, 75, 65, 2, 248, 0, 1, 0, 57, 255, 239, 4, 92, 5, 238, 0, 45, 0, 0, 97, 19, 55, 23, 19, 22, 22, 23, 22, 22, 51, 50, 54, 55, 55, 6, 6, 35, 34, 38, 39, 38, 38, 39, 1, 38, 38, 39, 38, 38, 35, 34, 6, 7, 23, 54, 54, 51, 50, 22, 23, 22, 22, 23, 23, 1, 1, 7, 246, 29, 45, 167, 24, 57, 37, 36, 92, 59, 12, 36, 11, 2, 12, 17, 17, 24, 42, 17, 17, 28, 11, 254, 150, 15, 49, 37, 38, 106, 72, 25, 60, 18, 1, 13, 40, 13, 34, 55, 22, 22, 34, 14, 55, 254, 117, 2, 174, 119, 118, 254, 75, 66, 100, 33, 34, 34, 9, 6, 151, 3, 2, 24, 21, 20, 54, 35, 3, 182, 40, 95, 41, 40, 54, 10, 5, 142, 1, 4, 33, 27, 27, 69, 35, 143, 251, 248, 0, 1, 0, 175, 254, 119, 4, 46, 5, 196, 0, 90, 0, 0, 65, 55, 38, 38, 35, 34, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 23, 6, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 23, 23, 22, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 7, 23, 54, 54, 55, 54, 54, 55, 52, 38, 39, 38, 38, 39, 39, 38, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 55, 54, 54, 51, 51, 53, 35, 34, 38, 39, 38, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 51, 50, 22, 3, 247, 26, 48, 140, 71, 126, 200, 70, 71, 75, 38, 36, 35, 102, 65, 79, 126, 44, 45, 47, 72, 66, 66, 186, 114, 58, 43, 63, 19, 15, 16, 13, 12, 13, 36, 24, 97, 27, 62, 27, 26, 35, 1, 41, 35, 36, 95, 54, 111, 67, 123, 46, 47, 55, 31, 30, 22, 63, 40, 51, 132, 79, 142, 142, 84, 128, 45, 33, 48, 14, 16, 14, 41, 44, 43, 135, 95, 61, 113, 5, 8, 149, 17, 22, 45, 44, 44, 128, 83, 49, 87, 37, 37, 59, 21, 22, 72, 49, 49, 126, 76, 112, 154, 51, 52, 65, 22, 13, 10, 20, 15, 11, 29, 19, 29, 45, 20, 21, 42, 27, 84, 22, 68, 40, 39, 84, 39, 61, 74, 23, 22, 25, 13, 25, 12, 46, 37, 37, 102, 68, 60, 98, 37, 28, 43, 16, 20, 19, 152, 20, 20, 13, 37, 23, 22, 54, 30, 39, 68, 26, 25, 30, 21, 0, 0, 1, 0, 89, 255, 237, 4, 169, 4, 58, 0, 29, 0, 0, 65, 53, 33, 21, 51, 17, 51, 17, 33, 17, 20, 22, 23, 22, 22, 51, 50, 54, 55, 39, 6, 6, 35, 34, 38, 39, 38, 38, 53, 17, 4, 76, 252, 13, 132, 185, 1, 110, 32, 31, 30, 90, 57, 47, 87, 47, 41, 17, 49, 26, 22, 37, 14, 14, 16, 3, 161, 153, 153, 252, 95, 3, 161, 253, 117, 84, 114, 34, 35, 30, 19, 32, 130, 9, 16, 8, 14, 14, 51, 44, 2, 149, 0, 2, 0, 165, 254, 96, 4, 70, 4, 78, 0, 27, 0, 53, 0, 0, 65, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 17, 51, 17, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 39, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 17, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 4, 70, 57, 57, 58, 175, 117, 89, 156, 64, 68, 88, 185, 22, 49, 27, 48, 115, 67, 102, 155, 53, 52, 54, 185, 32, 34, 35, 109, 76, 51, 84, 33, 34, 52, 19, 55, 52, 34, 87, 52, 77, 106, 33, 33, 30, 1, 244, 21, 126, 212, 78, 77, 88, 57, 59, 62, 197, 149, 252, 30, 2, 16, 23, 40, 15, 26, 28, 78, 70, 69, 191, 133, 21, 75, 134, 51, 51, 59, 23, 21, 20, 57, 33, 1, 37, 90, 160, 52, 33, 38, 70, 59, 59, 156, 0, 0, 1, 0, 120, 254, 89, 4, 48, 4, 78, 0, 63, 0, 0, 65, 34, 6, 7, 6, 6, 21, 21, 20, 22, 23, 22, 22, 23, 22, 22, 23, 22, 22, 7, 20, 6, 7, 6, 6, 7, 23, 54, 54, 55, 54, 54, 55, 52, 38, 39, 38, 38, 39, 38, 38, 39, 38, 38, 53, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 51, 52, 38, 39, 38, 38, 2, 102, 119, 183, 63, 63, 66, 67, 66, 65, 196, 130, 54, 82, 28, 27, 29, 1, 32, 23, 24, 54, 22, 77, 45, 90, 37, 36, 46, 1, 52, 49, 49, 138, 86, 92, 136, 44, 45, 43, 35, 38, 37, 117, 81, 71, 106, 35, 35, 36, 175, 69, 60, 61, 168, 4, 78, 88, 74, 75, 195, 108, 42, 105, 175, 66, 67, 88, 19, 7, 18, 13, 13, 37, 26, 40, 60, 22, 23, 31, 10, 123, 20, 60, 40, 40, 99, 59, 66, 87, 28, 28, 33, 12, 13, 69, 49, 49, 123, 68, 42, 70, 138, 56, 55, 69, 38, 32, 33, 88, 50, 93, 146, 51, 50, 53, 0, 2, 0, 109, 255, 236, 4, 134, 4, 58, 0, 28, 0, 54, 0, 0, 65, 53, 33, 34, 6, 7, 6, 6, 21, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 53, 52, 38, 39, 38, 38, 39, 1, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 4, 134, 253, 201, 114, 179, 62, 62, 65, 65, 62, 62, 180, 115, 114, 180, 62, 61, 65, 35, 34, 25, 66, 40, 253, 187, 36, 37, 36, 112, 76, 77, 113, 37, 36, 36, 35, 37, 37, 112, 76, 77, 113, 36, 37, 36, 3, 161, 153, 82, 71, 71, 195, 112, 22, 117, 200, 74, 74, 84, 86, 71, 71, 184, 99, 23, 77, 137, 57, 42, 72, 30, 254, 112, 22, 76, 137, 52, 52, 61, 61, 52, 52, 137, 76, 22, 80, 145, 55, 55, 64, 64, 55, 55, 145, 0, 1, 0, 173, 255, 235, 4, 50, 4, 58, 0, 28, 0, 0, 65, 53, 33, 21, 33, 17, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 39, 6, 6, 35, 34, 38, 39, 38, 38, 53, 19, 4, 50, 252, 123, 1, 104, 40, 39, 38, 111, 72, 30, 59, 29, 29, 59, 30, 41, 27, 77, 44, 33, 58, 22, 22, 27, 1, 3, 156, 158, 158, 253, 178, 101, 135, 41, 42, 36, 6, 8, 7, 27, 22, 131, 17, 27, 11, 19, 19, 75, 64, 2, 88, 0, 1, 0, 158, 255, 236, 4, 63, 4, 58, 0, 36, 0, 0, 65, 35, 17, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 35, 22, 18, 23, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 1, 87, 185, 62, 59, 59, 171, 110, 126, 178, 56, 56, 52, 18, 16, 16, 41, 23, 195, 52, 69, 3, 34, 35, 36, 110, 77, 60, 99, 35, 35, 38, 4, 58, 253, 151, 125, 183, 59, 60, 58, 96, 81, 80, 211, 114, 82, 147, 65, 65, 113, 48, 125, 254, 251, 134, 78, 154, 61, 62, 77, 37, 41, 40, 126, 89, 0, 0, 2, 0, 110, 254, 34, 4, 119, 4, 58, 0, 46, 0, 65, 0, 0, 69, 17, 51, 17, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 17, 38, 38, 39, 38, 38, 53, 54, 54, 55, 54, 54, 55, 39, 6, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 37, 17, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 20, 6, 7, 6, 6, 2, 13, 185, 117, 164, 52, 52, 48, 57, 50, 50, 134, 78, 64, 94, 30, 31, 30, 63, 88, 27, 27, 25, 2, 19, 20, 19, 62, 45, 101, 55, 87, 30, 40, 39, 45, 50, 50, 157, 1, 42, 10, 11, 7, 22, 14, 46, 68, 23, 22, 23, 2, 27, 30, 30, 94, 14, 254, 48, 1, 207, 15, 103, 76, 76, 188, 101, 112, 197, 73, 72, 84, 41, 34, 35, 89, 48, 253, 76, 18, 83, 55, 54, 128, 64, 52, 108, 53, 52, 98, 41, 133, 39, 98, 56, 73, 174, 96, 102, 189, 75, 76, 103, 140, 2, 189, 23, 35, 12, 8, 9, 68, 54, 55, 138, 70, 63, 129, 55, 56, 82, 0, 0, 1, 0, 97, 254, 40, 4, 128, 4, 58, 0, 39, 0, 0, 65, 35, 17, 38, 38, 39, 38, 38, 53, 17, 35, 17, 20, 22, 23, 22, 22, 23, 17, 51, 17, 54, 54, 55, 54, 54, 53, 52, 2, 39, 35, 22, 18, 23, 20, 6, 7, 6, 6, 7, 2, 188, 185, 53, 86, 30, 31, 33, 185, 56, 54, 54, 155, 99, 185, 125, 172, 54, 53, 48, 47, 32, 195, 38, 49, 2, 29, 31, 32, 102, 73, 4, 58, 252, 84, 15, 67, 56, 55, 156, 103, 1, 232, 254, 26, 140, 215, 76, 76, 88, 14, 254, 53, 1, 201, 14, 105, 79, 79, 198, 107, 164, 1, 0, 95, 125, 255, 0, 134, 68, 138, 58, 59, 86, 18, 0, 0, 1, 0, 79, 255, 236, 4, 137, 4, 58, 0, 82, 0, 0, 65, 35, 6, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 35, 22, 18, 23, 20, 6, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 38, 38, 53, 17, 35, 17, 20, 6, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 54, 18, 1, 113, 194, 23, 38, 13, 11, 11, 30, 35, 35, 114, 83, 57, 92, 33, 19, 31, 12, 12, 30, 19, 34, 91, 58, 56, 89, 33, 40, 50, 12, 9, 8, 14, 12, 13, 36, 21, 194, 45, 58, 2, 4, 5, 6, 23, 16, 13, 34, 21, 27, 45, 17, 16, 23, 6, 4, 3, 186, 4, 3, 6, 24, 17, 17, 45, 26, 34, 46, 14, 15, 12, 2, 58, 4, 58, 55, 130, 76, 58, 131, 72, 111, 209, 81, 81, 98, 45, 43, 24, 62, 37, 37, 62, 24, 43, 45, 46, 41, 49, 137, 81, 53, 115, 58, 79, 142, 62, 68, 120, 51, 126, 254, 251, 135, 53, 102, 45, 54, 91, 32, 25, 28, 27, 27, 26, 78, 52, 29, 65, 37, 1, 43, 254, 213, 38, 68, 29, 52, 77, 25, 26, 26, 71, 60, 60, 155, 84, 135, 1, 5, 0, 2, 0, 152, 255, 236, 4, 153, 5, 198, 0, 55, 0, 75, 0, 0, 65, 39, 6, 6, 7, 17, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 21, 20, 22, 23, 22, 22, 23, 21, 20, 6, 7, 6, 6, 39, 34, 38, 39, 38, 38, 53, 17, 7, 17, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 53, 54, 54, 1, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 17, 38, 38, 39, 38, 38, 4, 153, 9, 32, 68, 35, 46, 43, 43, 126, 79, 74, 122, 44, 44, 50, 70, 64, 63, 179, 110, 31, 30, 31, 94, 60, 62, 98, 34, 34, 36, 186, 65, 59, 58, 166, 102, 98, 159, 56, 56, 62, 39, 72, 253, 172, 21, 19, 19, 55, 34, 39, 57, 18, 19, 19, 71, 112, 38, 39, 40, 2, 115, 149, 8, 13, 3, 1, 97, 88, 138, 48, 48, 51, 47, 45, 45, 129, 81, 15, 100, 174, 67, 68, 90, 16, 166, 73, 112, 37, 38, 39, 1, 41, 39, 38, 111, 69, 1, 80, 2, 254, 178, 103, 168, 59, 60, 65, 60, 58, 58, 170, 109, 160, 4, 16, 1, 243, 17, 50, 71, 23, 23, 22, 26, 25, 27, 82, 55, 254, 170, 16, 66, 46, 46, 114, 0, 1, 0, 54, 0, 0, 4, 164, 5, 187, 0, 46, 0, 0, 65, 3, 7, 39, 3, 38, 38, 39, 38, 38, 35, 34, 6, 7, 23, 54, 54, 51, 50, 22, 23, 22, 22, 23, 1, 17, 51, 17, 1, 54, 54, 55, 54, 54, 51, 50, 22, 23, 55, 38, 38, 35, 34, 6, 7, 6, 6, 3, 57, 180, 24, 24, 179, 26, 57, 31, 32, 70, 39, 29, 53, 27, 23, 7, 22, 14, 19, 35, 15, 13, 22, 8, 1, 42, 184, 1, 40, 6, 16, 9, 17, 41, 23, 15, 22, 7, 22, 27, 53, 28, 40, 70, 31, 32, 56, 4, 215, 254, 105, 88, 88, 1, 151, 63, 88, 27, 27, 23, 7, 17, 149, 5, 4, 11, 11, 10, 28, 18, 253, 119, 253, 192, 2, 68, 2, 133, 14, 23, 9, 16, 16, 4, 5, 149, 17, 7, 23, 27, 27, 88, 0, 2, 0, 46, 255, 236, 4, 150, 4, 58, 0, 43, 0, 89, 0, 0, 65, 53, 33, 21, 51, 6, 6, 21, 20, 22, 23, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 3, 20, 6, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 38, 38, 53, 53, 35, 21, 20, 6, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 38, 38, 53, 54, 54, 55, 33, 22, 22, 4, 150, 251, 152, 105, 33, 41, 3, 4, 9, 53, 44, 31, 83, 52, 57, 90, 34, 19, 31, 12, 12, 34, 21, 33, 89, 55, 78, 107, 33, 16, 24, 7, 7, 7, 10, 10, 10, 28, 16, 112, 3, 3, 3, 8, 5, 12, 39, 29, 26, 44, 17, 16, 23, 6, 5, 4, 186, 5, 4, 6, 19, 13, 17, 48, 29, 16, 27, 10, 19, 21, 6, 2, 2, 2, 47, 38, 1, 243, 38, 47, 3, 161, 153, 153, 106, 251, 140, 31, 61, 30, 82, 138, 44, 31, 35, 44, 43, 24, 63, 38, 40, 66, 25, 40, 41, 75, 63, 32, 75, 41, 39, 84, 43, 68, 130, 60, 64, 120, 55, 254, 14, 34, 66, 29, 23, 41, 18, 41, 49, 24, 25, 24, 73, 48, 31, 74, 42, 251, 251, 43, 75, 32, 41, 65, 23, 31, 31, 16, 14, 24, 88, 54, 24, 54, 27, 124, 253, 121, 121, 253, 0, 0, 1, 0, 42, 255, 245, 4, 124, 5, 176, 0, 39, 0, 0, 65, 53, 33, 21, 33, 17, 51, 17, 54, 54, 51, 50, 22, 23, 22, 22, 23, 20, 6, 7, 6, 6, 35, 23, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 17, 4, 61, 251, 237, 1, 91, 184, 30, 60, 32, 63, 95, 32, 39, 37, 1, 22, 24, 25, 81, 58, 2, 91, 143, 49, 55, 56, 60, 58, 58, 169, 108, 31, 61, 30, 5, 24, 152, 152, 250, 232, 2, 175, 2, 4, 34, 32, 38, 118, 75, 60, 97, 34, 34, 37, 145, 48, 46, 51, 158, 104, 106, 171, 59, 59, 64, 4, 2, 1, 199, 0, 1, 0, 129, 255, 236, 4, 107, 5, 197, 0, 55, 0, 0, 65, 35, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 53, 33, 53, 33, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 51, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 17, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 4, 107, 185, 10, 43, 37, 38, 109, 75, 79, 119, 40, 41, 41, 2, 59, 253, 197, 41, 41, 40, 119, 79, 75, 109, 37, 37, 44, 10, 185, 10, 72, 62, 63, 176, 114, 117, 187, 65, 66, 70, 70, 66, 65, 187, 117, 114, 176, 63, 62, 72, 1, 183, 77, 115, 38, 39, 39, 67, 59, 59, 161, 95, 88, 152, 75, 94, 161, 59, 58, 67, 42, 40, 40, 118, 75, 110, 173, 60, 60, 63, 87, 78, 78, 218, 131, 254, 199, 131, 217, 78, 79, 87, 67, 61, 61, 169, 0, 0, 2, 0, 30, 0, 0, 4, 157, 5, 176, 0, 46, 0, 61, 0, 0, 65, 33, 3, 20, 6, 7, 6, 6, 7, 6, 6, 7, 6, 6, 35, 35, 21, 51, 50, 54, 55, 54, 54, 55, 54, 54, 55, 54, 54, 53, 19, 51, 17, 33, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 35, 21, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 35, 2, 235, 253, 204, 3, 3, 3, 3, 10, 7, 7, 17, 11, 13, 34, 20, 22, 32, 56, 89, 34, 26, 40, 14, 13, 17, 5, 4, 4, 1, 197, 1, 20, 84, 129, 43, 43, 44, 44, 43, 43, 129, 84, 91, 91, 43, 61, 19, 19, 17, 17, 18, 19, 61, 44, 91, 5, 176, 253, 84, 69, 124, 54, 61, 104, 41, 38, 59, 20, 25, 26, 151, 46, 44, 34, 98, 60, 52, 121, 69, 56, 125, 67, 2, 20, 250, 232, 68, 60, 59, 162, 94, 94, 162, 60, 59, 69, 152, 50, 41, 41, 104, 54, 55, 105, 41, 42, 51, 0, 2, 0, 131, 0, 0, 4, 139, 5, 176, 0, 24, 0, 39, 0, 0, 115, 51, 17, 51, 17, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 35, 17, 35, 17, 35, 17, 35, 1, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 35, 131, 184, 250, 233, 91, 137, 46, 45, 46, 46, 45, 46, 137, 91, 49, 184, 250, 184, 2, 106, 49, 51, 69, 21, 21, 19, 18, 21, 22, 69, 51, 49, 2, 161, 253, 95, 65, 57, 57, 155, 90, 90, 152, 56, 55, 62, 2, 105, 253, 137, 2, 119, 252, 255, 44, 36, 36, 94, 51, 51, 95, 37, 37, 45, 0, 1, 0, 67, 0, 0, 4, 104, 5, 176, 0, 29, 0, 0, 65, 53, 33, 21, 33, 17, 51, 17, 54, 54, 51, 50, 22, 23, 22, 22, 21, 17, 51, 17, 52, 38, 39, 38, 38, 35, 38, 6, 7, 17, 4, 64, 252, 3, 1, 90, 185, 26, 54, 28, 61, 89, 30, 29, 28, 185, 58, 54, 54, 157, 99, 26, 54, 28, 5, 24, 152, 152, 250, 232, 2, 189, 3, 3, 27, 30, 30, 95, 68, 254, 55, 1, 201, 106, 152, 49, 49, 46, 1, 4, 4, 1, 196, 0, 0, 1, 0, 162, 254, 153, 4, 42, 5, 176, 0, 11, 0, 0, 83, 17, 33, 17, 51, 17, 33, 17, 35, 17, 33, 17, 162, 1, 108, 185, 1, 99, 185, 253, 234, 5, 176, 250, 80, 254, 153, 1, 103, 5, 176, 250, 231, 5, 25, 0, 0, 2, 0, 162, 0, 0, 4, 76, 5, 176, 0, 18, 0, 33, 0, 0, 65, 53, 33, 17, 33, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 33, 17, 17, 33, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 33, 4, 29, 252, 133, 1, 196, 116, 181, 62, 62, 65, 65, 62, 62, 181, 116, 254, 246, 1, 10, 78, 113, 37, 37, 35, 35, 37, 37, 113, 78, 254, 246, 5, 24, 152, 250, 80, 63, 57, 57, 160, 96, 97, 156, 56, 55, 60, 1, 191, 253, 170, 43, 36, 37, 99, 56, 57, 103, 39, 39, 46, 0, 0, 2, 0, 70, 254, 153, 4, 120, 5, 176, 0, 20, 0, 33, 0, 0, 65, 19, 35, 17, 33, 3, 6, 6, 7, 6, 6, 7, 6, 6, 7, 35, 19, 51, 17, 33, 17, 1, 19, 33, 17, 33, 54, 54, 55, 54, 54, 55, 54, 54, 4, 102, 18, 127, 253, 119, 32, 2, 9, 7, 8, 21, 13, 25, 70, 46, 65, 27, 157, 2, 193, 254, 76, 22, 1, 31, 254, 64, 26, 42, 16, 15, 21, 7, 4, 6, 254, 155, 1, 252, 5, 25, 253, 183, 75, 132, 57, 66, 113, 46, 88, 113, 30, 254, 2, 1, 103, 254, 155, 4, 204, 1, 177, 251, 127, 47, 118, 70, 62, 145, 80, 46, 100, 0, 0, 1, 0, 29, 0, 0, 4, 174, 5, 176, 0, 21, 0, 0, 65, 19, 51, 1, 19, 35, 3, 35, 17, 35, 17, 35, 3, 35, 19, 1, 51, 19, 51, 17, 51, 17, 2, 251, 206, 229, 254, 242, 232, 216, 173, 62, 183, 69, 174, 215, 230, 254, 243, 230, 205, 62, 183, 2, 139, 253, 117, 2, 217, 2, 215, 253, 115, 2, 141, 253, 115, 2, 141, 253, 39, 253, 41, 2, 139, 253, 117, 2, 139, 0, 0, 1, 0, 89, 255, 235, 4, 112, 5, 196, 0, 82, 0, 0, 83, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 55, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 51, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 7, 6, 6, 7, 35, 21, 51, 50, 22, 23, 22, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 89, 90, 72, 72, 183, 95, 115, 196, 72, 71, 81, 48, 46, 32, 83, 51, 39, 67, 27, 50, 54, 1, 74, 67, 68, 189, 115, 99, 178, 67, 68, 79, 185, 49, 41, 41, 112, 63, 82, 122, 41, 41, 41, 33, 33, 18, 47, 28, 32, 77, 45, 183, 183, 51, 89, 36, 38, 58, 21, 21, 21, 48, 45, 46, 129, 81, 72, 120, 43, 43, 48, 1, 148, 111, 161, 52, 52, 49, 56, 55, 54, 159, 103, 77, 122, 46, 31, 48, 17, 17, 43, 25, 46, 117, 67, 102, 156, 52, 52, 52, 56, 51, 52, 149, 93, 54, 92, 34, 33, 37, 40, 35, 35, 94, 55, 52, 87, 31, 18, 27, 10, 11, 11, 1, 152, 13, 13, 13, 41, 30, 29, 77, 48, 60, 100, 36, 36, 40, 43, 37, 37, 100, 57, 0, 1, 0, 162, 0, 0, 4, 42, 5, 176, 0, 9, 0, 0, 65, 1, 19, 35, 17, 51, 1, 3, 51, 17, 3, 113, 253, 233, 1, 185, 185, 2, 23, 1, 185, 5, 176, 251, 208, 4, 48, 250, 80, 4, 49, 251, 207, 5, 176, 0, 0, 1, 0, 47, 0, 0, 4, 43, 5, 176, 0, 30, 0, 0, 65, 33, 3, 20, 6, 7, 6, 6, 7, 6, 6, 35, 35, 21, 51, 50, 54, 55, 54, 54, 55, 54, 54, 55, 54, 54, 53, 19, 33, 17, 51, 4, 43, 252, 235, 4, 3, 3, 5, 22, 17, 22, 68, 47, 40, 51, 57, 94, 38, 44, 65, 21, 15, 18, 5, 2, 2, 2, 1, 165, 185, 5, 176, 252, 248, 49, 89, 40, 75, 120, 43, 56, 57, 151, 30, 29, 36, 111, 76, 55, 131, 74, 33, 69, 36, 2, 112, 250, 232, 0, 0, 1, 0, 43, 255, 235, 4, 181, 5, 176, 0, 27, 0, 0, 119, 22, 22, 51, 50, 54, 55, 54, 54, 55, 1, 35, 1, 7, 39, 1, 35, 1, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 103, 26, 105, 68, 83, 119, 42, 42, 59, 23, 2, 23, 215, 254, 224, 72, 71, 254, 204, 208, 1, 242, 42, 13, 36, 26, 26, 70, 46, 39, 90, 26, 14, 11, 24, 42, 36, 36, 95, 52, 4, 192, 253, 59, 179, 191, 2, 185, 251, 194, 85, 28, 56, 22, 22, 27, 18, 7, 0, 1, 0, 166, 254, 161, 4, 180, 5, 176, 0, 11, 0, 0, 83, 17, 33, 17, 51, 19, 35, 17, 35, 17, 33, 17, 166, 3, 86, 166, 18, 147, 185, 253, 247, 5, 176, 250, 80, 254, 161, 1, 251, 5, 20, 250, 231, 5, 25, 0, 0, 1, 0, 171, 0, 0, 4, 39, 5, 176, 0, 25, 0, 0, 65, 35, 17, 6, 6, 35, 34, 38, 39, 38, 38, 53, 17, 35, 17, 20, 22, 23, 22, 22, 51, 50, 54, 55, 17, 51, 4, 39, 185, 72, 144, 83, 57, 84, 27, 28, 27, 185, 55, 52, 52, 152, 97, 95, 137, 67, 185, 5, 176, 253, 69, 24, 29, 29, 35, 34, 113, 85, 1, 200, 254, 56, 121, 170, 54, 54, 49, 27, 24, 253, 165, 0, 0, 1, 0, 125, 0, 0, 4, 80, 5, 176, 0, 11, 0, 0, 65, 35, 17, 33, 17, 35, 17, 35, 17, 35, 17, 35, 1, 54, 185, 3, 211, 184, 213, 184, 213, 5, 176, 250, 80, 5, 176, 250, 231, 5, 25, 250, 231, 0, 0, 1, 0, 125, 254, 161, 4, 170, 5, 176, 0, 15, 0, 0, 65, 35, 17, 33, 17, 51, 19, 35, 17, 35, 17, 35, 17, 35, 17, 35, 1, 54, 185, 3, 118, 165, 18, 90, 184, 213, 184, 213, 5, 176, 250, 80, 254, 161, 1, 247, 5, 24, 250, 231, 5, 25, 250, 231, 0, 2, 0, 50, 0, 0, 4, 121, 5, 176, 0, 18, 0, 33, 0, 0, 83, 21, 33, 17, 33, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 35, 17, 17, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 35, 50, 1, 49, 1, 73, 111, 172, 59, 58, 61, 61, 58, 59, 172, 111, 144, 144, 73, 104, 34, 33, 31, 31, 33, 34, 104, 73, 144, 5, 176, 152, 250, 232, 64, 58, 57, 159, 95, 96, 156, 56, 55, 61, 2, 87, 253, 18, 43, 37, 37, 99, 55, 56, 103, 39, 39, 47, 0, 0, 3, 0, 144, 0, 0, 4, 75, 5, 176, 0, 16, 0, 20, 0, 35, 0, 0, 65, 17, 35, 17, 33, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 1, 17, 35, 17, 1, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 35, 1, 73, 185, 1, 21, 95, 145, 50, 49, 50, 50, 49, 50, 145, 95, 2, 166, 185, 253, 183, 92, 55, 77, 25, 24, 22, 22, 24, 24, 78, 55, 92, 3, 89, 2, 87, 250, 80, 64, 58, 57, 159, 95, 95, 157, 56, 55, 61, 252, 167, 5, 176, 250, 80, 2, 194, 44, 37, 37, 98, 55, 56, 102, 39, 40, 47, 0, 2, 0, 168, 0, 0, 4, 81, 5, 176, 0, 16, 0, 31, 0, 0, 65, 17, 35, 17, 33, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 5, 33, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 33, 1, 97, 185, 1, 195, 116, 181, 62, 62, 65, 65, 62, 62, 181, 116, 254, 246, 1, 10, 78, 113, 37, 37, 35, 35, 37, 37, 113, 78, 254, 246, 3, 89, 2, 87, 250, 80, 63, 57, 57, 160, 96, 97, 156, 56, 55, 60, 151, 43, 36, 37, 99, 56, 57, 103, 39, 39, 46, 0, 1, 0, 114, 255, 236, 4, 83, 5, 197, 0, 55, 0, 0, 65, 35, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 17, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 51, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 21, 33, 21, 33, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 1, 43, 185, 1, 67, 63, 62, 176, 110, 117, 190, 67, 67, 73, 73, 67, 67, 190, 117, 110, 176, 62, 63, 67, 1, 185, 1, 39, 37, 37, 109, 71, 79, 122, 42, 42, 44, 254, 28, 1, 228, 45, 42, 42, 122, 78, 71, 109, 37, 37, 39, 1, 209, 110, 179, 63, 64, 69, 84, 77, 76, 214, 131, 1, 76, 131, 215, 77, 76, 84, 76, 66, 66, 178, 101, 76, 125, 44, 43, 48, 64, 57, 57, 159, 94, 93, 151, 90, 94, 158, 57, 57, 64, 48, 44, 43, 123, 0, 0, 2, 0, 119, 255, 236, 4, 106, 5, 196, 0, 33, 0, 59, 0, 0, 65, 17, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 21, 35, 17, 35, 17, 51, 17, 51, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 3, 17, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 17, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 4, 106, 46, 46, 46, 137, 91, 86, 130, 43, 44, 43, 114, 185, 185, 114, 44, 44, 43, 130, 86, 90, 137, 46, 46, 46, 185, 19, 21, 21, 69, 50, 46, 62, 19, 19, 16, 16, 19, 19, 62, 45, 43, 64, 21, 28, 25, 2, 3, 1, 169, 127, 199, 69, 69, 72, 72, 69, 69, 199, 127, 152, 2, 156, 250, 80, 2, 125, 122, 127, 199, 68, 69, 72, 72, 69, 68, 199, 2, 42, 254, 85, 95, 142, 47, 47, 47, 47, 47, 47, 142, 95, 1, 171, 94, 141, 47, 47, 47, 35, 34, 46, 154, 0, 0, 2, 0, 65, 0, 0, 4, 38, 5, 176, 0, 19, 0, 34, 0, 0, 97, 51, 17, 33, 34, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 23, 1, 51, 1, 33, 1, 52, 54, 55, 54, 54, 51, 51, 17, 35, 34, 38, 39, 38, 38, 3, 109, 185, 254, 78, 117, 189, 66, 67, 71, 51, 50, 35, 94, 58, 254, 171, 197, 1, 49, 1, 54, 253, 194, 42, 41, 41, 121, 80, 249, 255, 78, 120, 40, 40, 41, 5, 176, 56, 53, 54, 157, 100, 82, 132, 51, 35, 57, 21, 253, 110, 2, 95, 1, 175, 61, 99, 35, 34, 37, 253, 224, 42, 38, 37, 102, 0, 0, 2, 0, 129, 255, 236, 4, 71, 6, 17, 0, 53, 0, 79, 0, 0, 65, 34, 6, 7, 6, 6, 7, 54, 54, 55, 54, 54, 55, 54, 54, 55, 54, 54, 53, 35, 20, 6, 7, 6, 6, 7, 6, 6, 7, 6, 6, 7, 6, 6, 21, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 53, 52, 38, 39, 38, 38, 7, 50, 22, 23, 22, 22, 21, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 53, 52, 54, 55, 54, 54, 2, 134, 56, 102, 45, 45, 78, 32, 15, 66, 48, 48, 122, 70, 99, 109, 45, 51, 57, 152, 38, 33, 34, 91, 53, 111, 181, 63, 31, 48, 17, 18, 19, 66, 62, 62, 180, 114, 114, 179, 62, 62, 65, 61, 58, 58, 166, 141, 76, 113, 37, 37, 36, 36, 37, 37, 111, 76, 77, 113, 36, 37, 36, 36, 37, 36, 112, 3, 252, 25, 22, 23, 63, 37, 92, 131, 45, 45, 53, 15, 21, 30, 30, 34, 114, 93, 41, 53, 17, 18, 23, 10, 21, 115, 96, 47, 112, 65, 70, 165, 94, 99, 113, 192, 71, 71, 80, 80, 71, 71, 192, 113, 23, 105, 179, 66, 65, 75, 152, 55, 46, 47, 122, 68, 23, 76, 137, 51, 52, 61, 61, 52, 51, 137, 76, 23, 68, 122, 47, 46, 55, 0, 0, 3, 0, 164, 0, 0, 4, 48, 4, 58, 0, 27, 0, 42, 0, 57, 0, 0, 115, 33, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 39, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 33, 19, 33, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 33, 17, 17, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 164, 1, 238, 95, 153, 54, 54, 58, 28, 27, 27, 75, 50, 8, 31, 52, 20, 36, 37, 63, 58, 59, 164, 100, 254, 87, 186, 1, 52, 56, 86, 29, 28, 29, 26, 25, 29, 89, 59, 254, 204, 239, 61, 97, 32, 34, 35, 22, 20, 32, 108, 75, 38, 39, 38, 115, 77, 44, 80, 33, 32, 47, 13, 2, 12, 30, 19, 32, 85, 49, 77, 112, 36, 36, 36, 253, 161, 22, 21, 20, 60, 39, 38, 59, 20, 23, 24, 1, 218, 1, 53, 18, 19, 19, 60, 41, 31, 49, 18, 28, 26, 0, 0, 1, 0, 183, 0, 0, 4, 42, 4, 58, 0, 5, 0, 0, 65, 53, 33, 17, 51, 17, 4, 42, 252, 141, 186, 3, 161, 153, 251, 198, 3, 161, 0, 2, 0, 54, 254, 194, 4, 154, 4, 58, 0, 17, 0, 27, 0, 0, 119, 35, 19, 51, 17, 33, 17, 51, 19, 35, 17, 33, 3, 6, 6, 7, 6, 6, 1, 55, 33, 17, 33, 54, 54, 55, 54, 54, 156, 102, 18, 166, 2, 243, 167, 18, 139, 253, 71, 16, 7, 23, 19, 19, 59, 1, 56, 9, 1, 78, 254, 70, 24, 33, 11, 11, 15, 151, 254, 43, 1, 62, 254, 194, 1, 213, 3, 163, 254, 106, 116, 188, 68, 68, 79, 2, 7, 235, 253, 8, 44, 112, 67, 66, 152, 0, 0, 1, 0, 17, 0, 0, 4, 172, 4, 58, 0, 21, 0, 0, 65, 19, 51, 1, 1, 35, 3, 35, 17, 35, 17, 35, 3, 35, 1, 1, 51, 19, 51, 17, 51, 17, 2, 245, 215, 224, 254, 214, 1, 8, 214, 190, 59, 185, 59, 189, 214, 1, 6, 254, 215, 223, 215, 59, 185, 1, 214, 254, 42, 2, 51, 2, 7, 254, 64, 1, 192, 254, 64, 1, 192, 253, 249, 253, 205, 1, 214, 254, 42, 1, 214, 0, 0, 1, 0, 135, 255, 237, 4, 74, 4, 77, 0, 82, 0, 0, 83, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 51, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 7, 6, 6, 35, 35, 21, 51, 50, 22, 23, 22, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 135, 75, 59, 70, 188, 98, 100, 172, 64, 64, 73, 35, 33, 28, 75, 47, 33, 58, 22, 40, 44, 66, 60, 60, 166, 100, 95, 171, 64, 65, 77, 1, 185, 47, 40, 39, 104, 58, 65, 100, 34, 33, 35, 26, 25, 18, 47, 29, 23, 56, 32, 241, 241, 31, 58, 25, 25, 44, 18, 36, 38, 41, 37, 38, 106, 64, 65, 112, 41, 41, 46, 1, 64, 81, 123, 40, 49, 46, 42, 42, 41, 120, 78, 52, 85, 33, 27, 41, 14, 13, 33, 19, 34, 84, 48, 78, 117, 40, 39, 40, 44, 41, 42, 119, 75, 37, 63, 23, 22, 26, 26, 22, 23, 60, 34, 34, 54, 19, 13, 20, 6, 5, 5, 156, 4, 5, 5, 14, 10, 21, 65, 46, 37, 64, 24, 24, 27, 31, 27, 26, 69, 39, 0, 0, 1, 0, 165, 0, 0, 4, 39, 4, 58, 0, 9, 0, 0, 65, 1, 17, 35, 17, 51, 1, 17, 51, 17, 3, 110, 253, 239, 184, 184, 2, 17, 185, 4, 58, 252, 225, 3, 31, 251, 198, 3, 30, 252, 226, 4, 58, 0, 0, 1, 0, 164, 0, 0, 4, 149, 4, 58, 0, 12, 0, 0, 65, 1, 51, 1, 1, 35, 1, 35, 17, 35, 17, 51, 17, 2, 13, 1, 157, 235, 254, 12, 1, 208, 225, 254, 109, 160, 185, 185, 1, 205, 254, 51, 2, 49, 2, 9, 254, 54, 1, 202, 251, 198, 1, 205, 0, 1, 0, 55, 0, 0, 4, 38, 4, 58, 0, 27, 0, 0, 65, 33, 3, 20, 6, 7, 6, 6, 7, 6, 6, 35, 7, 7, 51, 50, 54, 55, 54, 54, 55, 54, 54, 53, 19, 33, 17, 51, 4, 38, 252, 255, 2, 3, 3, 5, 16, 11, 22, 75, 57, 41, 3, 54, 106, 142, 42, 26, 34, 8, 5, 5, 1, 1, 142, 186, 4, 58, 254, 49, 50, 89, 39, 49, 81, 31, 57, 57, 1, 165, 83, 79, 49, 128, 76, 46, 103, 55, 1, 54, 252, 95, 0, 1, 0, 137, 0, 0, 4, 41, 4, 58, 0, 12, 0, 0, 101, 3, 35, 17, 51, 17, 19, 51, 19, 17, 51, 17, 35, 2, 92, 228, 239, 185, 218, 128, 212, 185, 231, 245, 3, 69, 251, 198, 2, 179, 253, 77, 2, 155, 253, 101, 4, 58, 0, 1, 0, 165, 0, 0, 4, 39, 4, 58, 0, 11, 0, 0, 97, 17, 35, 17, 33, 17, 35, 17, 51, 17, 33, 17, 4, 39, 185, 253, 240, 185, 185, 2, 16, 4, 58, 254, 43, 1, 213, 251, 198, 1, 206, 254, 50, 0, 0, 1, 0, 165, 0, 0, 4, 39, 4, 58, 0, 7, 0, 0, 97, 17, 33, 17, 51, 17, 33, 17, 4, 39, 252, 126, 185, 2, 16, 4, 58, 251, 198, 3, 161, 252, 95, 0, 0, 1, 0, 104, 0, 0, 4, 123, 4, 58, 0, 7, 0, 0, 65, 53, 33, 21, 33, 17, 51, 17, 4, 123, 251, 237, 1, 169, 186, 3, 164, 150, 150, 252, 92, 3, 164, 0, 0, 3, 0, 122, 254, 96, 4, 82, 6, 0, 0, 31, 0, 45, 0, 59, 0, 0, 83, 21, 20, 22, 23, 22, 22, 23, 17, 51, 17, 54, 54, 55, 54, 54, 53, 53, 52, 38, 39, 38, 38, 39, 17, 35, 17, 6, 6, 7, 6, 6, 23, 53, 52, 54, 55, 54, 54, 55, 17, 38, 38, 39, 38, 38, 37, 21, 20, 6, 7, 6, 6, 7, 17, 22, 22, 23, 22, 22, 122, 54, 52, 51, 148, 93, 185, 94, 149, 52, 51, 55, 54, 52, 52, 149, 94, 185, 93, 148, 51, 52, 54, 185, 27, 27, 26, 80, 53, 54, 80, 26, 27, 26, 2, 102, 27, 27, 27, 81, 54, 54, 81, 27, 27, 27, 2, 39, 22, 104, 183, 71, 71, 95, 16, 254, 107, 1, 148, 15, 95, 72, 71, 183, 105, 22, 104, 184, 72, 71, 96, 16, 1, 186, 254, 70, 17, 95, 71, 72, 184, 126, 22, 66, 123, 51, 51, 75, 18, 252, 234, 18, 74, 51, 51, 123, 89, 22, 68, 124, 51, 51, 74, 18, 3, 24, 18, 74, 51, 51, 124, 0, 0, 1, 0, 170, 254, 191, 4, 144, 4, 58, 0, 11, 0, 0, 83, 17, 33, 17, 51, 19, 35, 17, 35, 17, 33, 17, 170, 3, 46, 166, 18, 129, 186, 254, 14, 4, 58, 251, 198, 254, 191, 1, 216, 3, 163, 252, 93, 3, 163, 0, 0, 1, 0, 141, 0, 0, 4, 39, 4, 58, 0, 28, 0, 0, 97, 17, 35, 17, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 17, 35, 17, 20, 22, 23, 22, 22, 51, 50, 54, 55, 17, 4, 39, 185, 30, 61, 31, 42, 88, 46, 65, 100, 32, 27, 30, 185, 62, 58, 57, 162, 100, 85, 145, 68, 4, 58, 253, 233, 7, 12, 4, 6, 6, 34, 36, 31, 92, 62, 1, 59, 254, 197, 103, 153, 50, 51, 50, 18, 17, 254, 117, 0, 0, 1, 0, 129, 0, 0, 4, 76, 4, 58, 0, 11, 0, 0, 65, 35, 17, 33, 17, 35, 17, 35, 17, 35, 17, 35, 1, 58, 185, 3, 203, 185, 208, 185, 208, 4, 58, 251, 198, 4, 58, 252, 93, 3, 163, 252, 93, 0, 0, 1, 0, 118, 254, 191, 4, 152, 4, 58, 0, 15, 0, 0, 65, 35, 17, 33, 17, 51, 19, 35, 17, 35, 17, 7, 17, 35, 17, 35, 1, 47, 185, 3, 107, 165, 18, 87, 185, 208, 185, 208, 4, 58, 251, 198, 254, 191, 1, 217, 3, 162, 252, 94, 1, 3, 163, 252, 93, 0, 0, 2, 0, 57, 0, 0, 4, 119, 4, 58, 0, 18, 0, 33, 0, 0, 97, 33, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 35, 17, 33, 21, 33, 19, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 35, 1, 101, 1, 129, 96, 150, 51, 51, 53, 53, 51, 51, 150, 96, 200, 254, 27, 1, 44, 185, 200, 57, 82, 26, 26, 24, 24, 26, 26, 81, 58, 200, 53, 46, 45, 124, 72, 72, 122, 44, 44, 50, 1, 154, 152, 254, 103, 34, 26, 27, 67, 34, 35, 66, 25, 26, 30, 0, 0, 3, 0, 144, 0, 0, 4, 63, 4, 58, 0, 16, 0, 20, 0, 35, 0, 0, 65, 17, 35, 17, 33, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 1, 17, 35, 17, 1, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 35, 1, 73, 185, 1, 28, 88, 134, 46, 45, 47, 47, 45, 46, 135, 87, 2, 147, 185, 253, 195, 99, 47, 66, 21, 20, 19, 19, 20, 21, 66, 47, 99, 2, 160, 1, 154, 251, 198, 53, 46, 46, 124, 71, 71, 122, 45, 44, 50, 253, 96, 4, 58, 251, 198, 2, 9, 34, 27, 27, 67, 33, 35, 65, 25, 26, 31, 0, 2, 0, 165, 0, 0, 4, 64, 4, 58, 0, 16, 0, 31, 0, 0, 65, 17, 35, 17, 33, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 5, 33, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 33, 1, 94, 185, 2, 4, 97, 152, 52, 52, 54, 55, 52, 52, 151, 97, 254, 181, 1, 75, 58, 83, 27, 27, 26, 25, 27, 27, 84, 58, 254, 181, 2, 160, 1, 154, 251, 198, 52, 46, 45, 125, 72, 73, 122, 44, 44, 49, 151, 33, 26, 27, 67, 35, 36, 66, 25, 25, 30, 0, 1, 0, 129, 255, 236, 4, 58, 4, 78, 0, 53, 0, 0, 65, 50, 22, 23, 22, 22, 23, 33, 21, 33, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 35, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 51, 52, 54, 55, 54, 54, 2, 60, 81, 116, 38, 38, 42, 6, 254, 85, 1, 173, 5, 39, 38, 39, 118, 84, 56, 97, 36, 36, 42, 176, 67, 59, 59, 162, 96, 127, 191, 64, 64, 64, 64, 63, 64, 192, 127, 86, 160, 61, 62, 74, 176, 46, 38, 37, 96, 3, 182, 54, 45, 45, 116, 63, 152, 65, 124, 48, 49, 59, 38, 33, 32, 88, 50, 83, 143, 52, 53, 60, 87, 75, 74, 196, 108, 42, 108, 196, 74, 74, 88, 59, 50, 50, 132, 73, 46, 77, 29, 28, 32, 0, 0, 2, 0, 113, 255, 236, 4, 129, 4, 78, 0, 31, 0, 57, 0, 0, 65, 17, 35, 17, 51, 17, 51, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 23, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 1, 42, 185, 185, 129, 6, 49, 45, 45, 131, 87, 93, 137, 45, 44, 44, 44, 45, 45, 138, 93, 85, 128, 45, 45, 50, 7, 184, 16, 20, 20, 68, 52, 53, 69, 21, 20, 17, 17, 20, 20, 69, 52, 53, 68, 20, 21, 16, 2, 111, 1, 203, 251, 198, 1, 215, 104, 180, 66, 66, 75, 86, 74, 74, 201, 114, 22, 114, 201, 75, 75, 86, 73, 64, 65, 175, 102, 94, 22, 78, 144, 56, 55, 66, 66, 55, 56, 144, 78, 22, 78, 145, 55, 55, 66, 66, 55, 55, 145, 0, 0, 2, 0, 79, 0, 0, 4, 33, 4, 58, 0, 16, 0, 31, 0, 0, 65, 33, 34, 6, 7, 6, 6, 21, 20, 22, 23, 1, 51, 1, 33, 17, 51, 1, 52, 54, 55, 54, 54, 51, 33, 17, 33, 34, 38, 39, 38, 38, 4, 33, 254, 4, 96, 154, 53, 53, 57, 112, 104, 254, 239, 200, 1, 1, 1, 80, 185, 253, 33, 28, 28, 28, 86, 57, 1, 67, 254, 166, 53, 76, 25, 26, 24, 4, 58, 50, 43, 44, 121, 72, 106, 159, 38, 254, 63, 1, 165, 254, 91, 2, 238, 35, 65, 26, 25, 31, 254, 153, 30, 25, 24, 64, 0, 1, 255, 233, 254, 75, 4, 37, 6, 0, 0, 57, 0, 0, 65, 53, 33, 53, 35, 21, 35, 21, 51, 17, 51, 17, 54, 54, 55, 54, 54, 51, 54, 22, 23, 22, 22, 21, 17, 20, 6, 7, 6, 6, 35, 34, 38, 39, 7, 22, 22, 51, 50, 54, 55, 54, 54, 53, 3, 52, 38, 39, 38, 38, 35, 6, 6, 7, 6, 6, 7, 17, 2, 102, 254, 249, 185, 189, 189, 185, 23, 62, 36, 35, 80, 43, 61, 93, 31, 30, 30, 22, 21, 17, 48, 29, 16, 66, 19, 15, 30, 54, 32, 76, 120, 41, 42, 44, 1, 53, 49, 49, 139, 85, 59, 105, 44, 37, 63, 26, 4, 185, 151, 176, 176, 151, 251, 71, 3, 18, 37, 60, 21, 19, 22, 1, 34, 35, 32, 97, 65, 252, 252, 51, 78, 26, 20, 21, 7, 6, 148, 10, 7, 44, 43, 44, 132, 85, 3, 2, 109, 159, 52, 52, 49, 1, 30, 27, 23, 62, 38, 1, 32, 0, 0, 1, 0, 143, 255, 236, 4, 51, 4, 78, 0, 53, 0, 0, 101, 34, 38, 39, 38, 38, 39, 33, 53, 33, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 51, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 35, 6, 6, 7, 6, 6, 2, 123, 78, 111, 36, 36, 38, 5, 1, 154, 254, 102, 5, 38, 37, 36, 110, 78, 56, 97, 35, 35, 41, 1, 175, 66, 58, 59, 161, 96, 123, 184, 61, 62, 62, 62, 62, 61, 184, 123, 86, 158, 61, 61, 73, 1, 175, 1, 45, 37, 37, 95, 130, 56, 47, 46, 121, 64, 152, 63, 121, 47, 46, 57, 38, 33, 33, 87, 49, 82, 144, 53, 52, 61, 88, 74, 75, 196, 107, 42, 108, 195, 74, 75, 88, 59, 50, 49, 131, 72, 45, 77, 28, 29, 32, 0, 0, 2, 0, 38, 0, 0, 4, 176, 4, 58, 0, 40, 0, 55, 0, 0, 65, 33, 17, 20, 6, 21, 6, 6, 7, 6, 6, 35, 7, 7, 51, 50, 54, 55, 54, 54, 55, 54, 54, 53, 17, 51, 17, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 35, 19, 20, 6, 7, 6, 6, 35, 35, 17, 51, 50, 22, 23, 22, 22, 3, 8, 253, 204, 1, 2, 14, 12, 16, 54, 41, 30, 4, 45, 90, 120, 37, 29, 32, 4, 1, 1, 194, 251, 87, 134, 45, 45, 47, 47, 45, 45, 134, 87, 66, 237, 18, 20, 21, 65, 47, 66, 66, 47, 65, 21, 20, 18, 4, 58, 254, 49, 25, 48, 22, 78, 124, 46, 59, 61, 1, 155, 84, 80, 65, 177, 110, 24, 52, 27, 1, 54, 252, 95, 53, 46, 45, 123, 71, 72, 121, 45, 44, 50, 254, 182, 34, 68, 27, 27, 35, 1, 113, 31, 25, 25, 64, 0, 0, 2, 0, 130, 0, 0, 4, 146, 4, 58, 0, 24, 0, 39, 0, 0, 65, 17, 35, 17, 51, 17, 51, 17, 33, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 35, 17, 35, 17, 23, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 35, 1, 59, 185, 185, 249, 1, 12, 82, 127, 43, 42, 44, 44, 42, 43, 127, 82, 83, 185, 185, 83, 42, 58, 18, 18, 16, 16, 18, 18, 58, 42, 83, 2, 161, 1, 153, 251, 198, 2, 10, 253, 246, 53, 46, 45, 123, 71, 71, 121, 45, 44, 50, 1, 157, 254, 103, 155, 31, 25, 25, 64, 33, 34, 68, 27, 27, 35, 0, 0, 1, 0, 28, 0, 0, 4, 43, 6, 0, 0, 39, 0, 0, 65, 53, 33, 53, 35, 21, 35, 21, 51, 17, 51, 17, 54, 54, 55, 54, 54, 51, 54, 22, 23, 22, 22, 21, 17, 51, 17, 52, 38, 39, 38, 38, 35, 6, 6, 7, 6, 6, 7, 17, 2, 153, 254, 205, 185, 145, 145, 185, 24, 66, 39, 33, 76, 41, 59, 92, 31, 31, 32, 185, 53, 49, 49, 139, 85, 60, 108, 46, 35, 60, 25, 4, 190, 151, 171, 171, 151, 251, 66, 3, 18, 39, 62, 21, 18, 19, 1, 32, 33, 32, 100, 66, 253, 85, 2, 169, 109, 159, 52, 52, 49, 1, 31, 30, 22, 60, 37, 1, 37, 0, 0, 1, 0, 165, 254, 156, 4, 39, 4, 58, 0, 11, 0, 0, 65, 35, 17, 33, 17, 51, 17, 33, 17, 35, 17, 33, 1, 94, 185, 1, 103, 185, 1, 98, 185, 253, 240, 4, 58, 251, 198, 254, 156, 1, 100, 4, 58, 252, 93, 0, 0, 1, 0, 107, 255, 236, 4, 127, 5, 176, 0, 56, 0, 0, 65, 35, 3, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 17, 35, 3, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 3, 35, 3, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 4, 126, 184, 1, 16, 16, 14, 39, 25, 25, 42, 16, 23, 24, 191, 1, 25, 23, 15, 42, 24, 23, 39, 13, 18, 18, 1, 184, 1, 43, 39, 39, 109, 67, 42, 75, 30, 24, 40, 14, 12, 32, 20, 32, 82, 48, 66, 109, 39, 39, 43, 5, 176, 251, 142, 46, 73, 24, 22, 23, 18, 16, 24, 78, 52, 4, 114, 251, 142, 52, 79, 24, 16, 17, 21, 19, 24, 75, 49, 4, 114, 251, 142, 82, 126, 43, 43, 44, 23, 22, 19, 51, 32, 28, 45, 18, 28, 28, 44, 43, 43, 126, 82, 0, 1, 0, 95, 255, 235, 4, 122, 4, 59, 0, 56, 0, 0, 65, 35, 17, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 3, 35, 17, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 17, 35, 3, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 4, 122, 185, 15, 14, 15, 42, 27, 26, 42, 16, 23, 24, 1, 191, 22, 19, 17, 46, 27, 25, 40, 14, 17, 17, 185, 1, 44, 39, 39, 110, 67, 41, 71, 29, 26, 44, 15, 13, 36, 21, 31, 80, 47, 66, 110, 40, 39, 43, 4, 59, 253, 1, 43, 69, 23, 25, 26, 18, 17, 23, 77, 51, 2, 255, 253, 1, 48, 73, 24, 20, 21, 22, 21, 24, 72, 47, 2, 255, 253, 1, 82, 126, 42, 43, 44, 20, 20, 19, 53, 35, 29, 48, 17, 27, 26, 44, 43, 42, 126, 82, 0, 2, 0, 28, 0, 0, 4, 60, 6, 24, 0, 24, 0, 39, 0, 0, 65, 53, 33, 17, 35, 17, 35, 21, 51, 17, 33, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 33, 17, 17, 33, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 33, 2, 215, 254, 190, 185, 192, 192, 1, 204, 97, 150, 52, 51, 54, 54, 51, 52, 150, 97, 254, 237, 1, 19, 58, 82, 27, 26, 25, 25, 26, 27, 82, 58, 254, 237, 4, 52, 152, 1, 76, 254, 180, 152, 251, 204, 52, 46, 46, 124, 72, 72, 122, 45, 44, 49, 1, 148, 253, 213, 33, 26, 27, 68, 34, 36, 65, 25, 26, 30, 0, 0, 1, 0, 125, 255, 237, 4, 148, 5, 197, 0, 84, 0, 0, 65, 17, 35, 17, 51, 17, 51, 21, 20, 22, 23, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 54, 54, 55, 35, 6, 6, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 38, 38, 53, 53, 33, 53, 33, 53, 52, 54, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 22, 22, 23, 51, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 6, 6, 21, 21, 1, 53, 184, 184, 150, 14, 13, 15, 48, 32, 46, 125, 76, 53, 90, 36, 46, 66, 22, 12, 15, 4, 167, 3, 9, 6, 10, 34, 21, 18, 47, 29, 35, 57, 20, 20, 29, 8, 8, 7, 1, 26, 254, 230, 7, 7, 10, 32, 24, 20, 52, 32, 35, 54, 19, 16, 25, 9, 7, 9, 3, 167, 7, 49, 42, 43, 122, 81, 61, 105, 42, 46, 71, 19, 12, 13, 3, 64, 2, 112, 250, 80, 2, 169, 155, 67, 120, 51, 60, 98, 37, 53, 59, 27, 26, 31, 101, 63, 37, 83, 44, 31, 56, 25, 40, 60, 19, 15, 16, 32, 27, 28, 75, 47, 39, 94, 53, 155, 151, 101, 52, 91, 39, 53, 81, 29, 23, 25, 24, 23, 20, 50, 32, 26, 60, 34, 96, 156, 55, 54, 59, 37, 36, 38, 124, 81, 50, 116, 64, 99, 0, 0, 1, 0, 155, 255, 236, 4, 137, 4, 78, 0, 73, 0, 0, 65, 53, 33, 54, 54, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 51, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 6, 6, 7, 35, 17, 35, 17, 51, 17, 51, 21, 22, 22, 23, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 35, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 38, 38, 39, 53, 3, 199, 254, 213, 1, 7, 7, 10, 35, 25, 19, 47, 28, 33, 51, 18, 18, 19, 175, 45, 41, 41, 116, 71, 60, 101, 40, 49, 68, 20, 12, 13, 1, 143, 185, 185, 143, 1, 13, 11, 22, 82, 58, 36, 89, 52, 64, 115, 43, 42, 50, 175, 1, 21, 18, 19, 50, 30, 27, 45, 18, 26, 36, 12, 6, 8, 1, 1, 208, 151, 37, 73, 34, 47, 79, 25, 19, 21, 33, 28, 28, 74, 40, 74, 129, 48, 48, 56, 36, 32, 41, 116, 72, 43, 96, 51, 1, 211, 251, 198, 1, 208, 2, 49, 92, 42, 80, 130, 38, 25, 26, 53, 45, 45, 117, 64, 36, 63, 24, 24, 27, 18, 17, 26, 82, 50, 32, 71, 36, 2, 0, 2, 0, 39, 0, 0, 4, 178, 5, 176, 0, 11, 0, 16, 0, 0, 65, 19, 51, 1, 35, 1, 51, 19, 51, 17, 51, 17, 37, 19, 55, 23, 19, 3, 101, 144, 189, 254, 15, 160, 254, 6, 189, 147, 148, 185, 254, 232, 185, 11, 10, 182, 1, 184, 254, 72, 5, 176, 250, 80, 1, 184, 254, 72, 1, 184, 161, 2, 44, 31, 32, 253, 213, 0, 0, 2, 0, 87, 0, 0, 4, 129, 4, 58, 0, 11, 0, 16, 0, 0, 65, 19, 51, 1, 35, 1, 51, 19, 51, 17, 51, 17, 37, 19, 55, 23, 19, 3, 74, 121, 190, 254, 57, 159, 254, 60, 189, 118, 135, 185, 254, 253, 137, 25, 24, 139, 1, 41, 254, 215, 4, 58, 251, 198, 1, 41, 254, 215, 1, 41, 152, 1, 87, 82, 82, 254, 169, 0, 0, 2, 0, 113, 0, 0, 4, 188, 5, 176, 0, 19, 0, 24, 0, 0, 65, 19, 51, 1, 35, 3, 35, 17, 35, 17, 51, 17, 51, 3, 51, 19, 51, 17, 51, 17, 39, 19, 55, 23, 19, 3, 161, 95, 188, 254, 174, 159, 208, 209, 185, 185, 168, 117, 189, 104, 69, 148, 182, 107, 8, 7, 97, 1, 212, 254, 44, 5, 176, 252, 197, 3, 59, 250, 80, 1, 212, 254, 44, 1, 212, 254, 44, 1, 212, 161, 1, 224, 36, 36, 254, 32, 0, 2, 0, 112, 0, 0, 4, 189, 4, 58, 0, 19, 0, 24, 0, 0, 65, 19, 51, 1, 35, 3, 35, 17, 35, 17, 51, 17, 51, 3, 51, 19, 51, 17, 51, 17, 39, 19, 55, 23, 19, 3, 171, 85, 189, 254, 173, 159, 213, 205, 185, 185, 151, 99, 189, 93, 79, 157, 185, 102, 8, 8, 93, 1, 37, 254, 219, 4, 58, 253, 140, 2, 116, 251, 198, 1, 37, 254, 219, 1, 37, 254, 219, 1, 37, 161, 1, 65, 27, 27, 254, 191, 0, 2, 0, 85, 0, 0, 4, 133, 5, 176, 0, 39, 0, 44, 0, 0, 115, 51, 17, 52, 54, 55, 54, 54, 51, 51, 17, 51, 17, 51, 50, 22, 23, 22, 22, 21, 17, 51, 17, 52, 38, 39, 38, 38, 39, 35, 1, 33, 1, 35, 34, 6, 7, 6, 6, 21, 1, 3, 7, 39, 3, 86, 185, 21, 22, 21, 67, 46, 83, 185, 77, 46, 67, 22, 22, 22, 185, 48, 46, 47, 134, 86, 1, 1, 54, 252, 33, 1, 81, 3, 86, 135, 46, 47, 49, 2, 231, 202, 2, 2, 224, 1, 171, 61, 82, 25, 25, 22, 253, 126, 2, 130, 22, 25, 25, 82, 61, 254, 85, 1, 171, 98, 138, 45, 44, 41, 1, 2, 150, 253, 106, 41, 44, 45, 139, 98, 3, 109, 254, 41, 3, 3, 1, 215, 0, 2, 0, 105, 0, 0, 4, 89, 4, 58, 0, 41, 0, 47, 0, 0, 115, 51, 53, 52, 54, 55, 54, 54, 51, 51, 23, 17, 51, 17, 55, 51, 50, 22, 23, 22, 22, 21, 23, 51, 53, 52, 38, 39, 38, 38, 39, 35, 1, 33, 1, 35, 6, 6, 7, 6, 6, 21, 1, 3, 7, 35, 39, 3, 105, 185, 20, 20, 20, 61, 42, 61, 5, 186, 8, 51, 42, 61, 20, 20, 20, 1, 185, 42, 40, 40, 114, 71, 3, 1, 28, 252, 80, 1, 27, 3, 73, 119, 41, 42, 43, 2, 178, 174, 4, 5, 4, 175, 219, 67, 89, 27, 27, 23, 9, 254, 69, 1, 187, 9, 23, 27, 27, 89, 67, 219, 219, 97, 140, 47, 46, 48, 5, 1, 224, 254, 33, 3, 47, 46, 46, 143, 99, 2, 199, 254, 193, 7, 7, 1, 63, 0, 0, 2, 0, 80, 0, 0, 4, 135, 5, 176, 0, 45, 0, 50, 0, 0, 97, 51, 17, 52, 54, 55, 54, 54, 55, 51, 17, 51, 17, 51, 50, 22, 23, 22, 22, 21, 19, 51, 17, 52, 38, 39, 38, 38, 35, 35, 19, 33, 19, 33, 17, 35, 17, 51, 17, 51, 6, 6, 7, 6, 6, 21, 1, 3, 7, 39, 3, 1, 131, 153, 11, 11, 13, 41, 30, 52, 153, 42, 28, 41, 14, 15, 14, 1, 153, 33, 34, 38, 97, 45, 1, 235, 253, 23, 235, 254, 127, 171, 171, 155, 5, 7, 2, 3, 3, 2, 5, 127, 2, 2, 127, 1, 244, 35, 51, 16, 19, 18, 1, 253, 128, 2, 128, 13, 15, 16, 56, 40, 254, 12, 1, 244, 77, 109, 34, 38, 34, 2, 152, 253, 104, 2, 152, 250, 80, 2, 128, 14, 29, 16, 18, 41, 22, 3, 36, 254, 108, 7, 7, 1, 148, 0, 0, 2, 0, 81, 0, 0, 4, 134, 4, 58, 0, 47, 0, 52, 0, 0, 115, 51, 17, 51, 6, 6, 7, 6, 6, 21, 19, 51, 17, 52, 54, 55, 54, 54, 51, 51, 23, 17, 51, 17, 55, 51, 50, 22, 23, 22, 22, 21, 19, 51, 17, 52, 38, 39, 38, 38, 39, 35, 19, 33, 19, 33, 17, 35, 5, 3, 7, 39, 3, 81, 171, 156, 4, 8, 2, 4, 3, 1, 153, 12, 12, 14, 43, 30, 38, 8, 154, 7, 29, 32, 44, 14, 13, 13, 1, 153, 34, 33, 27, 78, 48, 3, 211, 253, 34, 210, 254, 142, 171, 3, 54, 123, 1, 1, 123, 1, 187, 13, 29, 15, 19, 41, 23, 254, 209, 1, 47, 35, 51, 17, 19, 18, 5, 254, 74, 1, 183, 4, 15, 17, 16, 54, 38, 254, 209, 1, 47, 76, 110, 35, 30, 33, 5, 1, 234, 254, 25, 1, 231, 143, 254, 195, 2, 2, 1, 61, 0, 2, 0, 202, 254, 70, 4, 36, 7, 116, 0, 92, 0, 101, 0, 0, 65, 35, 21, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 7, 6, 6, 35, 35, 34, 6, 7, 6, 6, 21, 22, 22, 23, 22, 22, 23, 55, 38, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 51, 51, 50, 54, 55, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 38, 38, 35, 33, 21, 33, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 7, 6, 6, 3, 39, 35, 21, 23, 51, 55, 53, 35, 2, 28, 141, 141, 79, 124, 43, 43, 45, 15, 15, 14, 39, 24, 37, 95, 55, 46, 75, 122, 43, 44, 48, 1, 47, 38, 37, 93, 47, 74, 23, 55, 25, 25, 33, 15, 16, 18, 59, 41, 53, 87, 152, 60, 33, 56, 22, 34, 36, 48, 45, 33, 90, 54, 57, 92, 32, 32, 35, 33, 31, 30, 85, 53, 53, 125, 68, 254, 206, 1, 50, 72, 109, 37, 37, 37, 14, 14, 17, 65, 44, 32, 79, 15, 151, 157, 251, 114, 254, 160, 3, 55, 151, 33, 33, 33, 102, 69, 35, 64, 28, 26, 44, 18, 26, 29, 30, 31, 31, 96, 67, 60, 100, 40, 40, 59, 20, 124, 10, 31, 22, 22, 61, 40, 24, 40, 15, 16, 18, 40, 38, 21, 54, 31, 49, 121, 71, 76, 122, 45, 34, 50, 17, 22, 64, 40, 40, 94, 53, 62, 107, 44, 42, 69, 22, 23, 24, 152, 36, 32, 32, 87, 50, 35, 60, 26, 33, 50, 16, 11, 12, 3, 164, 152, 21, 245, 248, 18, 0, 2, 0, 222, 254, 70, 4, 9, 6, 30, 0, 98, 0, 107, 0, 0, 65, 35, 21, 51, 50, 22, 23, 22, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 7, 6, 6, 35, 35, 34, 6, 7, 6, 6, 21, 22, 22, 23, 22, 22, 23, 55, 38, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 51, 51, 50, 54, 55, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 38, 38, 35, 33, 21, 33, 50, 22, 23, 22, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 7, 6, 6, 3, 39, 35, 21, 23, 51, 55, 53, 35, 2, 44, 141, 141, 41, 73, 30, 37, 55, 18, 19, 19, 12, 12, 19, 62, 40, 24, 54, 29, 41, 75, 123, 43, 44, 48, 1, 48, 38, 37, 93, 46, 75, 23, 55, 25, 25, 33, 14, 16, 18, 59, 42, 48, 48, 91, 40, 69, 110, 32, 23, 24, 35, 33, 27, 76, 46, 39, 64, 24, 33, 35, 27, 27, 34, 110, 72, 38, 84, 43, 254, 212, 1, 44, 35, 63, 26, 41, 56, 14, 7, 7, 31, 33, 15, 39, 23, 27, 64, 13, 151, 157, 251, 114, 254, 160, 2, 105, 151, 8, 7, 9, 26, 20, 18, 49, 29, 21, 39, 17, 27, 40, 11, 6, 7, 30, 31, 31, 96, 67, 60, 100, 40, 40, 59, 20, 124, 10, 31, 22, 22, 61, 40, 24, 39, 15, 17, 18, 12, 12, 19, 72, 49, 33, 80, 46, 49, 81, 31, 26, 40, 14, 15, 39, 23, 31, 77, 43, 47, 81, 33, 44, 68, 17, 9, 10, 153, 8, 8, 13, 40, 27, 12, 29, 15, 37, 60, 20, 10, 15, 5, 7, 6, 3, 29, 152, 21, 245, 248, 18, 0, 3, 0, 99, 255, 236, 4, 90, 5, 196, 0, 37, 0, 58, 0, 79, 0, 0, 65, 53, 38, 38, 39, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 6, 6, 7, 21, 22, 22, 23, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 54, 54, 37, 53, 54, 54, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 22, 22, 23, 29, 2, 6, 6, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 38, 38, 39, 53, 4, 90, 1, 25, 26, 27, 81, 56, 56, 146, 90, 90, 145, 56, 56, 81, 26, 27, 25, 1, 1, 26, 27, 26, 82, 56, 56, 145, 90, 90, 145, 56, 56, 81, 26, 26, 25, 252, 192, 1, 13, 15, 14, 48, 36, 36, 98, 64, 65, 98, 36, 36, 48, 15, 14, 12, 1, 1, 11, 14, 15, 47, 35, 36, 99, 65, 65, 98, 36, 36, 48, 15, 15, 13, 1, 2, 132, 166, 78, 160, 74, 74, 129, 48, 48, 55, 55, 48, 49, 129, 74, 74, 159, 78, 166, 78, 158, 74, 74, 129, 48, 48, 55, 55, 48, 48, 128, 74, 74, 159, 235, 11, 51, 113, 56, 55, 101, 39, 38, 46, 45, 38, 39, 101, 55, 56, 113, 52, 11, 152, 5, 52, 114, 55, 56, 101, 38, 39, 46, 46, 39, 38, 102, 56, 55, 114, 51, 5, 0, 0, 3, 0, 93, 255, 236, 4, 53, 4, 78, 0, 25, 0, 38, 0, 51, 0, 0, 83, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 1, 50, 22, 23, 22, 22, 23, 33, 54, 54, 55, 54, 54, 19, 34, 38, 39, 38, 38, 39, 33, 6, 6, 7, 6, 6, 93, 68, 64, 63, 183, 115, 114, 182, 64, 63, 68, 68, 63, 64, 183, 115, 114, 182, 63, 64, 68, 1, 235, 68, 107, 38, 38, 45, 8, 253, 161, 7, 46, 38, 38, 106, 70, 70, 107, 38, 39, 44, 7, 2, 96, 7, 44, 38, 38, 107, 2, 39, 22, 117, 200, 74, 74, 84, 84, 74, 74, 200, 117, 22, 117, 201, 74, 74, 85, 85, 74, 74, 201, 1, 26, 52, 45, 45, 121, 68, 68, 121, 45, 45, 52, 252, 204, 53, 46, 46, 123, 70, 70, 123, 46, 46, 53, 0, 0, 1, 0, 26, 0, 0, 4, 225, 5, 195, 0, 22, 0, 0, 65, 1, 35, 1, 51, 1, 54, 54, 55, 54, 54, 51, 51, 55, 39, 34, 6, 7, 6, 6, 7, 1, 7, 2, 71, 254, 164, 209, 1, 250, 170, 1, 131, 14, 28, 18, 17, 42, 27, 13, 1, 46, 56, 88, 35, 35, 56, 24, 254, 254, 34, 1, 118, 4, 58, 250, 80, 4, 135, 38, 55, 18, 17, 16, 171, 1, 34, 36, 36, 110, 77, 252, 215, 129, 0, 1, 0, 81, 0, 0, 4, 96, 4, 77, 0, 26, 0, 0, 97, 51, 1, 54, 54, 55, 54, 54, 51, 50, 22, 23, 55, 38, 38, 35, 34, 6, 7, 6, 6, 7, 3, 7, 39, 1, 35, 1, 235, 141, 1, 61, 8, 25, 16, 14, 29, 15, 14, 23, 6, 21, 26, 52, 28, 32, 61, 27, 39, 66, 25, 176, 25, 24, 254, 244, 190, 3, 76, 22, 37, 13, 10, 11, 5, 3, 148, 17, 7, 18, 19, 28, 101, 76, 253, 225, 101, 101, 2, 254, 0, 3, 0, 69, 254, 81, 4, 186, 5, 196, 0, 25, 0, 51, 0, 79, 0, 0, 65, 17, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 17, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 3, 17, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 17, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 19, 22, 22, 51, 50, 54, 55, 54, 54, 55, 19, 35, 3, 7, 39, 3, 35, 19, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 2, 138, 39, 38, 39, 112, 73, 69, 105, 35, 36, 35, 35, 36, 35, 105, 69, 73, 113, 38, 38, 39, 185, 12, 13, 14, 44, 33, 32, 43, 13, 13, 12, 12, 13, 13, 43, 32, 32, 45, 14, 13, 12, 177, 16, 56, 20, 57, 80, 28, 27, 34, 9, 241, 164, 98, 7, 4, 73, 164, 159, 24, 5, 17, 13, 14, 41, 29, 12, 46, 12, 1, 231, 1, 225, 115, 188, 67, 66, 72, 72, 66, 67, 188, 115, 254, 31, 115, 187, 66, 67, 72, 72, 67, 66, 187, 2, 123, 253, 211, 72, 116, 40, 41, 44, 44, 41, 40, 116, 72, 2, 45, 72, 115, 41, 40, 43, 43, 40, 41, 115, 250, 42, 5, 11, 53, 40, 39, 92, 39, 4, 226, 253, 197, 47, 47, 2, 59, 251, 197, 94, 21, 62, 29, 29, 41, 4, 2, 0, 3, 0, 55, 254, 81, 4, 187, 4, 78, 0, 25, 0, 51, 0, 79, 0, 0, 83, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 23, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 1, 22, 22, 51, 50, 54, 55, 54, 54, 55, 19, 35, 3, 7, 39, 3, 35, 19, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 55, 36, 38, 38, 121, 86, 85, 121, 39, 38, 36, 36, 38, 39, 122, 86, 85, 120, 38, 39, 35, 185, 8, 14, 13, 53, 44, 45, 54, 14, 14, 8, 8, 13, 14, 53, 45, 45, 53, 14, 14, 8, 1, 147, 14, 58, 20, 57, 80, 28, 27, 35, 8, 241, 164, 78, 30, 13, 61, 164, 159, 24, 5, 17, 13, 14, 41, 29, 12, 46, 12, 2, 40, 23, 117, 201, 73, 74, 84, 84, 74, 73, 201, 117, 23, 117, 201, 74, 74, 84, 84, 74, 74, 201, 140, 23, 78, 144, 55, 55, 66, 66, 55, 55, 144, 78, 23, 80, 144, 55, 55, 65, 65, 55, 55, 144, 252, 160, 4, 12, 53, 40, 39, 92, 39, 4, 226, 254, 55, 177, 179, 1, 199, 251, 197, 94, 21, 62, 29, 29, 41, 4, 2, 0, 0, 4, 0, 106, 255, 115, 4, 97, 6, 53, 0, 3, 0, 7, 0, 45, 0, 83, 0, 0, 65, 17, 35, 17, 19, 17, 35, 17, 1, 53, 38, 38, 39, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 6, 6, 7, 21, 22, 22, 23, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 54, 54, 39, 21, 6, 6, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 38, 38, 39, 53, 54, 54, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 22, 22, 2, 194, 185, 185, 185, 2, 88, 1, 25, 26, 27, 81, 56, 56, 146, 90, 90, 145, 56, 56, 81, 26, 27, 25, 1, 1, 26, 27, 26, 82, 56, 56, 145, 90, 90, 145, 56, 56, 81, 26, 26, 25, 182, 1, 11, 14, 15, 47, 35, 36, 99, 65, 65, 98, 36, 36, 48, 15, 15, 13, 1, 1, 13, 15, 14, 48, 36, 36, 98, 64, 65, 98, 36, 36, 48, 15, 14, 12, 4, 179, 1, 130, 254, 126, 250, 192, 1, 139, 254, 117, 3, 17, 166, 78, 160, 74, 74, 129, 48, 48, 55, 55, 48, 49, 129, 74, 74, 159, 78, 166, 78, 158, 74, 74, 129, 48, 48, 55, 55, 48, 48, 128, 74, 74, 159, 246, 168, 52, 114, 55, 56, 101, 38, 39, 46, 46, 39, 38, 102, 56, 55, 114, 51, 168, 51, 113, 56, 55, 101, 39, 38, 46, 45, 38, 39, 101, 55, 56, 113, 0, 0, 4, 0, 122, 255, 97, 4, 82, 4, 203, 0, 3, 0, 7, 0, 33, 0, 59, 0, 0, 65, 17, 35, 17, 19, 17, 35, 17, 1, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 23, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 2, 196, 186, 186, 186, 254, 112, 68, 64, 63, 183, 115, 114, 182, 64, 63, 68, 68, 63, 64, 183, 115, 114, 182, 63, 64, 68, 185, 38, 39, 38, 114, 77, 77, 115, 39, 38, 39, 38, 38, 39, 115, 76, 77, 116, 38, 39, 38, 3, 70, 1, 133, 254, 123, 252, 27, 1, 151, 254, 105, 2, 198, 22, 117, 200, 74, 74, 84, 84, 74, 74, 200, 117, 22, 117, 201, 74, 74, 85, 85, 74, 74, 201, 139, 22, 79, 145, 55, 55, 65, 65, 55, 55, 145, 79, 22, 80, 145, 55, 55, 64, 64, 55, 55, 145, 0, 0, 3, 0, 77, 255, 235, 4, 131, 7, 81, 0, 98, 0, 134, 0, 147, 0, 0, 65, 21, 50, 22, 23, 22, 22, 23, 22, 22, 23, 17, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 38, 38, 53, 17, 35, 17, 20, 6, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 17, 52, 54, 55, 54, 54, 55, 54, 54, 55, 53, 34, 6, 7, 6, 6, 7, 6, 6, 21, 17, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 17, 52, 38, 39, 38, 38, 39, 38, 38, 19, 35, 34, 38, 39, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 21, 51, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 22, 22, 51, 51, 5, 23, 54, 54, 55, 54, 54, 53, 53, 35, 21, 20, 6, 3, 34, 31, 51, 21, 14, 24, 8, 9, 9, 1, 1, 23, 21, 17, 43, 26, 27, 45, 17, 12, 18, 5, 3, 3, 186, 3, 4, 6, 21, 15, 16, 41, 24, 29, 46, 17, 18, 20, 5, 6, 7, 26, 18, 20, 54, 31, 79, 130, 46, 21, 33, 12, 16, 16, 46, 42, 41, 116, 71, 47, 82, 32, 18, 32, 12, 11, 30, 18, 32, 83, 49, 70, 117, 42, 41, 46, 15, 14, 12, 35, 22, 47, 130, 109, 40, 45, 77, 34, 34, 62, 30, 31, 63, 34, 57, 90, 30, 26, 28, 127, 1, 1, 11, 9, 13, 43, 30, 20, 40, 21, 20, 43, 23, 48, 116, 73, 42, 254, 32, 76, 25, 47, 18, 18, 22, 139, 34, 5, 175, 151, 21, 20, 14, 39, 24, 26, 63, 36, 253, 43, 55, 84, 26, 20, 21, 21, 20, 15, 42, 26, 15, 32, 17, 1, 252, 254, 4, 19, 35, 15, 28, 44, 15, 15, 17, 25, 24, 26, 80, 51, 2, 213, 28, 50, 22, 32, 51, 18, 20, 21, 1, 151, 51, 50, 22, 54, 31, 39, 93, 54, 253, 43, 87, 133, 45, 45, 47, 29, 28, 17, 42, 26, 25, 42, 16, 29, 30, 47, 45, 45, 133, 87, 2, 213, 51, 89, 37, 34, 58, 24, 50, 51, 1, 36, 19, 14, 14, 33, 14, 13, 19, 30, 30, 27, 79, 52, 36, 18, 24, 37, 13, 19, 16, 11, 9, 9, 22, 11, 24, 40, 241, 56, 13, 45, 27, 26, 59, 29, 102, 96, 38, 71, 0, 0, 3, 0, 103, 255, 235, 4, 124, 5, 222, 0, 86, 0, 122, 0, 135, 0, 0, 65, 21, 50, 22, 23, 22, 22, 21, 17, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 38, 38, 53, 17, 35, 17, 20, 6, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 17, 52, 54, 55, 54, 54, 51, 53, 34, 6, 7, 6, 6, 21, 17, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 17, 52, 38, 39, 38, 38, 37, 51, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 22, 22, 51, 51, 53, 35, 34, 38, 39, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 19, 23, 54, 54, 55, 54, 54, 53, 53, 35, 21, 20, 6, 3, 45, 27, 47, 18, 28, 30, 18, 16, 15, 40, 25, 24, 41, 16, 15, 21, 6, 3, 4, 186, 4, 3, 6, 25, 18, 15, 38, 22, 24, 39, 14, 17, 19, 29, 27, 19, 46, 28, 75, 123, 44, 44, 49, 43, 40, 39, 110, 67, 42, 74, 31, 23, 39, 15, 11, 26, 15, 33, 86, 52, 67, 110, 40, 39, 43, 49, 44, 45, 123, 253, 202, 127, 1, 1, 14, 12, 14, 40, 27, 39, 81, 49, 21, 45, 25, 32, 73, 42, 43, 40, 39, 69, 31, 22, 42, 20, 48, 91, 52, 58, 91, 30, 26, 27, 201, 76, 25, 47, 18, 18, 22, 139, 34, 4, 77, 151, 20, 19, 29, 101, 71, 254, 134, 52, 79, 26, 22, 23, 16, 16, 14, 40, 26, 16, 36, 20, 1, 13, 254, 243, 18, 33, 15, 31, 46, 15, 13, 13, 21, 20, 26, 81, 54, 1, 122, 71, 100, 29, 20, 20, 151, 50, 49, 50, 146, 96, 254, 134, 87, 132, 44, 45, 45, 22, 21, 18, 48, 31, 22, 38, 16, 32, 32, 45, 45, 44, 132, 87, 1, 122, 96, 146, 50, 49, 50, 147, 18, 26, 39, 13, 16, 15, 39, 23, 10, 21, 8, 11, 14, 127, 14, 12, 8, 20, 10, 23, 39, 30, 31, 27, 78, 51, 254, 234, 56, 13, 45, 27, 26, 59, 29, 102, 96, 38, 71, 0, 2, 0, 113, 255, 236, 4, 133, 7, 4, 0, 7, 0, 70, 0, 0, 65, 21, 33, 21, 51, 53, 33, 39, 19, 35, 3, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 38, 38, 53, 17, 35, 3, 20, 6, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 3, 35, 3, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 1, 27, 1, 12, 168, 1, 29, 1, 153, 184, 1, 17, 16, 14, 39, 24, 29, 46, 17, 11, 17, 4, 3, 3, 191, 1, 3, 4, 5, 20, 14, 16, 42, 25, 28, 43, 15, 12, 13, 1, 184, 1, 43, 39, 39, 109, 67, 46, 80, 31, 21, 34, 13, 12, 30, 19, 32, 83, 50, 66, 109, 39, 39, 43, 7, 4, 108, 125, 125, 108, 254, 172, 251, 142, 47, 74, 24, 21, 22, 23, 22, 15, 40, 24, 15, 32, 17, 4, 114, 251, 142, 19, 35, 15, 27, 42, 15, 17, 18, 29, 28, 24, 66, 41, 4, 114, 251, 142, 82, 126, 43, 43, 44, 27, 27, 17, 47, 29, 27, 44, 17, 29, 30, 44, 43, 43, 126, 82, 0, 0, 2, 0, 95, 255, 235, 4, 122, 5, 176, 0, 7, 0, 64, 0, 0, 65, 21, 33, 21, 51, 53, 33, 39, 19, 35, 17, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 3, 35, 17, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 17, 35, 3, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 1, 4, 1, 15, 168, 1, 32, 1, 160, 185, 23, 22, 13, 35, 20, 47, 64, 12, 4, 4, 1, 191, 4, 4, 13, 64, 46, 26, 42, 14, 15, 16, 185, 1, 44, 39, 39, 110, 67, 54, 90, 33, 15, 24, 10, 11, 28, 16, 33, 88, 52, 66, 110, 40, 39, 43, 5, 176, 108, 127, 127, 108, 254, 139, 253, 1, 54, 79, 23, 15, 15, 59, 54, 16, 37, 20, 2, 255, 253, 1, 21, 37, 17, 53, 58, 24, 24, 23, 70, 45, 2, 255, 253, 1, 82, 126, 42, 43, 44, 36, 36, 15, 38, 22, 24, 41, 16, 33, 33, 44, 43, 42, 126, 82, 0, 0, 1, 0, 151, 254, 130, 4, 101, 5, 197, 0, 42, 0, 0, 65, 17, 35, 34, 38, 39, 38, 38, 53, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 51, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 21, 20, 22, 23, 22, 22, 23, 17, 3, 42, 109, 88, 136, 46, 47, 48, 41, 40, 40, 117, 75, 71, 108, 37, 36, 38, 1, 185, 67, 61, 62, 176, 110, 114, 184, 65, 65, 70, 66, 62, 61, 175, 110, 254, 130, 2, 0, 77, 66, 65, 172, 95, 249, 94, 171, 65, 64, 77, 48, 43, 44, 124, 75, 110, 179, 64, 64, 69, 97, 84, 85, 228, 131, 247, 121, 213, 82, 83, 107, 14, 254, 145, 0, 0, 1, 0, 191, 254, 130, 4, 59, 4, 78, 0, 45, 0, 0, 65, 17, 35, 34, 38, 39, 38, 38, 53, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 51, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 6, 6, 21, 21, 20, 22, 23, 22, 22, 23, 17, 2, 253, 102, 77, 108, 35, 35, 32, 33, 35, 35, 108, 76, 52, 90, 33, 32, 38, 175, 63, 56, 56, 154, 91, 70, 122, 50, 54, 83, 28, 32, 33, 51, 49, 49, 145, 95, 254, 130, 2, 0, 69, 56, 55, 139, 71, 42, 69, 139, 56, 55, 69, 38, 33, 33, 88, 49, 83, 143, 53, 53, 61, 35, 31, 33, 95, 57, 63, 148, 78, 42, 98, 179, 72, 72, 97, 16, 254, 144, 0, 0, 1, 0, 118, 0, 0, 4, 146, 5, 62, 0, 19, 0, 0, 65, 19, 5, 55, 37, 19, 35, 3, 37, 7, 5, 3, 37, 7, 5, 3, 51, 19, 5, 55, 2, 90, 208, 1, 32, 72, 254, 219, 231, 165, 188, 254, 221, 70, 1, 34, 205, 254, 219, 68, 1, 33, 225, 168, 182, 1, 35, 68, 1, 190, 1, 109, 170, 122, 171, 1, 152, 254, 181, 171, 125, 171, 254, 147, 171, 123, 171, 254, 114, 1, 65, 170, 123, 0, 0, 1, 0, 209, 4, 166, 3, 145, 5, 252, 0, 7, 0, 0, 65, 33, 53, 39, 23, 33, 7, 23, 1, 119, 2, 26, 165, 1, 253, 229, 1, 166, 5, 35, 216, 1, 108, 233, 1, 0, 0, 1, 0, 252, 5, 23, 3, 240, 6, 21, 0, 35, 0, 0, 65, 35, 21, 51, 50, 54, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 21, 51, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 6, 6, 1, 38, 42, 44, 61, 104, 45, 36, 67, 30, 34, 62, 31, 27, 45, 15, 13, 14, 128, 28, 27, 31, 93, 59, 40, 72, 35, 36, 72, 39, 40, 90, 5, 150, 126, 21, 16, 13, 29, 13, 14, 19, 15, 15, 13, 39, 26, 18, 36, 51, 78, 27, 31, 31, 19, 14, 14, 33, 14, 14, 19, 0, 0, 1, 1, 195, 5, 22, 2, 178, 6, 87, 0, 5, 0, 0, 65, 23, 55, 39, 55, 35, 1, 195, 161, 78, 60, 1, 180, 5, 220, 198, 65, 116, 140, 0, 0, 1, 2, 60, 5, 22, 3, 42, 6, 87, 0, 5, 0, 0, 65, 55, 53, 35, 21, 7, 2, 136, 162, 180, 58, 5, 22, 198, 123, 140, 116, 0, 0, 8, 254, 171, 254, 196, 6, 71, 5, 175, 0, 19, 0, 39, 0, 59, 0, 79, 0, 99, 0, 119, 0, 139, 0, 159, 0, 0, 65, 51, 52, 54, 51, 50, 22, 21, 51, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 1, 51, 52, 54, 51, 50, 22, 21, 51, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 19, 51, 52, 54, 51, 50, 22, 21, 51, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 3, 51, 52, 54, 51, 50, 22, 21, 51, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 1, 51, 52, 54, 51, 50, 22, 21, 51, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 1, 51, 52, 54, 51, 50, 22, 21, 51, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 3, 51, 52, 54, 51, 50, 22, 21, 51, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 19, 51, 52, 54, 51, 50, 22, 21, 51, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 1, 152, 113, 42, 55, 54, 45, 112, 30, 27, 28, 78, 48, 48, 78, 27, 28, 29, 2, 79, 114, 43, 53, 54, 45, 113, 30, 28, 28, 78, 48, 48, 78, 27, 27, 30, 187, 113, 44, 53, 54, 45, 112, 30, 27, 28, 78, 48, 48, 78, 27, 27, 30, 197, 113, 44, 53, 54, 45, 112, 30, 27, 28, 78, 48, 48, 78, 27, 27, 30, 253, 192, 113, 44, 53, 54, 45, 112, 30, 27, 28, 78, 48, 48, 78, 27, 28, 29, 253, 190, 114, 42, 55, 54, 45, 112, 30, 27, 28, 78, 48, 48, 78, 27, 28, 30, 176, 113, 45, 52, 54, 45, 112, 30, 27, 28, 78, 48, 48, 77, 27, 28, 30, 166, 114, 44, 52, 54, 45, 113, 30, 28, 28, 78, 48, 48, 77, 27, 28, 30, 4, 243, 39, 62, 61, 40, 41, 69, 25, 25, 28, 28, 25, 25, 69, 254, 194, 39, 62, 61, 40, 41, 69, 25, 25, 28, 28, 25, 25, 69, 253, 224, 39, 62, 61, 40, 41, 69, 25, 25, 28, 28, 25, 25, 69, 253, 208, 39, 62, 61, 40, 41, 69, 25, 25, 28, 28, 25, 25, 69, 254, 187, 39, 62, 61, 40, 42, 69, 25, 24, 28, 28, 24, 25, 69, 4, 240, 39, 62, 61, 40, 41, 69, 25, 25, 28, 28, 25, 25, 69, 253, 224, 40, 61, 61, 40, 41, 69, 25, 25, 28, 28, 25, 25, 69, 253, 208, 40, 61, 61, 40, 41, 69, 25, 25, 28, 28, 25, 25, 69, 0, 8, 254, 180, 254, 99, 5, 244, 5, 198, 0, 4, 0, 9, 0, 14, 0, 19, 0, 24, 0, 29, 0, 34, 0, 39, 0, 0, 69, 35, 3, 51, 19, 3, 51, 19, 35, 3, 1, 21, 5, 53, 37, 5, 53, 37, 21, 5, 1, 23, 37, 39, 5, 1, 39, 5, 23, 37, 3, 55, 3, 7, 19, 1, 7, 19, 55, 3, 2, 183, 137, 70, 96, 122, 206, 136, 70, 96, 122, 2, 178, 1, 90, 254, 179, 251, 103, 254, 166, 1, 77, 3, 169, 97, 1, 38, 68, 254, 191, 253, 82, 97, 254, 218, 69, 1, 64, 138, 98, 198, 65, 148, 3, 211, 97, 197, 66, 149, 60, 254, 159, 1, 83, 4, 176, 1, 96, 254, 174, 254, 3, 139, 71, 98, 124, 210, 139, 71, 98, 124, 2, 69, 99, 200, 68, 153, 252, 27, 99, 200, 69, 153, 3, 88, 98, 1, 43, 69, 254, 186, 253, 67, 99, 254, 213, 71, 1, 69, 0, 3, 0, 191, 0, 0, 4, 121, 5, 176, 0, 3, 0, 20, 0, 35, 0, 0, 65, 1, 7, 1, 37, 33, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 33, 17, 51, 17, 17, 33, 22, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 7, 4, 49, 254, 148, 131, 1, 107, 253, 203, 1, 31, 98, 175, 66, 66, 77, 77, 66, 66, 175, 98, 254, 40, 185, 1, 31, 64, 109, 40, 39, 45, 45, 40, 40, 108, 64, 1, 211, 1, 236, 70, 254, 20, 187, 1, 58, 55, 55, 161, 105, 105, 162, 55, 55, 58, 2, 250, 80, 2, 224, 2, 56, 1, 40, 37, 37, 106, 66, 66, 103, 36, 36, 39, 1, 0, 3, 0, 173, 254, 96, 4, 63, 4, 78, 0, 3, 0, 33, 0, 59, 0, 0, 101, 1, 7, 1, 19, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 39, 35, 17, 51, 17, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 39, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 17, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 4, 54, 254, 150, 113, 1, 107, 121, 56, 54, 54, 160, 104, 60, 104, 42, 29, 51, 22, 9, 169, 185, 20, 47, 26, 44, 105, 62, 102, 159, 54, 54, 56, 185, 29, 30, 37, 116, 84, 44, 72, 30, 32, 51, 19, 19, 50, 31, 30, 73, 43, 78, 112, 37, 36, 35, 2, 1, 118, 94, 254, 139, 2, 108, 21, 121, 203, 73, 73, 82, 25, 25, 17, 44, 27, 118, 250, 38, 2, 8, 23, 37, 15, 24, 25, 84, 74, 74, 201, 137, 21, 72, 134, 52, 63, 77, 19, 17, 19, 56, 34, 2, 9, 34, 56, 19, 18, 21, 64, 54, 55, 143, 0, 1, 0, 182, 0, 0, 4, 71, 6, 255, 0, 7, 0, 0, 65, 17, 35, 17, 33, 17, 51, 17, 4, 71, 185, 253, 40, 186, 5, 24, 1, 231, 254, 177, 250, 80, 5, 24, 0, 1, 0, 182, 0, 0, 4, 49, 5, 119, 0, 7, 0, 0, 65, 17, 35, 17, 33, 17, 51, 17, 4, 49, 186, 253, 63, 186, 3, 161, 1, 214, 254, 195, 251, 198, 3, 161, 0, 1, 0, 185, 254, 224, 4, 127, 5, 176, 0, 33, 0, 0, 65, 53, 33, 17, 51, 17, 51, 50, 22, 23, 22, 22, 23, 20, 6, 7, 6, 6, 35, 23, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 35, 17, 4, 52, 252, 133, 186, 184, 96, 147, 50, 58, 59, 1, 30, 34, 34, 111, 81, 2, 115, 177, 60, 60, 61, 80, 76, 77, 221, 142, 184, 5, 24, 152, 250, 80, 2, 160, 48, 45, 53, 163, 106, 90, 147, 52, 52, 57, 147, 73, 69, 69, 203, 131, 134, 214, 75, 74, 80, 1, 214, 0, 0, 1, 0, 184, 254, 228, 4, 82, 4, 58, 0, 33, 0, 0, 65, 53, 33, 17, 51, 17, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 7, 23, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 35, 17, 4, 43, 252, 141, 186, 218, 71, 121, 45, 45, 51, 28, 30, 30, 96, 68, 48, 103, 148, 47, 47, 44, 79, 69, 70, 189, 111, 218, 3, 161, 153, 251, 198, 1, 228, 41, 39, 40, 118, 76, 56, 96, 39, 40, 59, 18, 146, 19, 103, 66, 66, 142, 58, 113, 177, 61, 60, 65, 1, 27, 0, 1, 0, 174, 0, 0, 4, 196, 5, 176, 0, 20, 0, 0, 65, 35, 1, 35, 17, 35, 17, 35, 17, 35, 17, 51, 17, 51, 21, 51, 53, 51, 1, 51, 1, 4, 152, 216, 254, 215, 54, 149, 101, 185, 185, 101, 149, 54, 1, 70, 231, 254, 133, 5, 176, 253, 123, 1, 1, 254, 255, 2, 133, 250, 80, 2, 148, 245, 245, 253, 108, 3, 1, 0, 0, 1, 0, 163, 0, 0, 4, 126, 4, 58, 0, 20, 0, 0, 65, 35, 1, 35, 53, 35, 21, 35, 17, 35, 17, 51, 17, 51, 21, 51, 53, 51, 1, 51, 1, 4, 89, 223, 254, 253, 44, 148, 90, 186, 186, 90, 148, 51, 1, 22, 234, 254, 137, 4, 58, 254, 54, 213, 213, 1, 202, 251, 198, 1, 205, 194, 194, 254, 51, 2, 56, 0, 0, 1, 0, 45, 0, 0, 4, 166, 5, 176, 0, 14, 0, 0, 65, 1, 51, 1, 1, 35, 1, 35, 17, 33, 21, 33, 17, 51, 17, 2, 149, 1, 47, 226, 254, 147, 1, 69, 211, 254, 226, 98, 254, 2, 1, 70, 184, 2, 147, 253, 109, 2, 239, 2, 193, 253, 122, 2, 134, 152, 250, 232, 2, 147, 0, 1, 0, 56, 0, 0, 4, 177, 4, 58, 0, 14, 0, 0, 65, 1, 51, 1, 1, 35, 3, 35, 17, 33, 21, 33, 17, 51, 17, 2, 188, 1, 11, 234, 254, 148, 1, 73, 224, 249, 127, 254, 2, 1, 69, 185, 1, 205, 254, 51, 2, 56, 2, 2, 254, 54, 1, 202, 153, 252, 95, 1, 205, 0, 0, 1, 0, 114, 0, 0, 4, 154, 5, 176, 0, 13, 0, 0, 65, 17, 35, 17, 51, 17, 33, 17, 51, 17, 33, 53, 33, 17, 1, 43, 185, 185, 1, 115, 184, 1, 68, 254, 4, 3, 31, 2, 145, 250, 80, 2, 135, 253, 121, 5, 24, 152, 253, 111, 0, 1, 0, 110, 0, 0, 4, 156, 4, 58, 0, 13, 0, 0, 65, 17, 35, 17, 51, 17, 33, 17, 51, 17, 33, 53, 33, 17, 1, 39, 185, 185, 1, 124, 185, 1, 64, 254, 7, 2, 101, 1, 213, 251, 198, 1, 206, 254, 50, 3, 161, 153, 254, 43, 0, 1, 0, 109, 254, 223, 4, 154, 5, 176, 0, 47, 0, 0, 65, 17, 33, 17, 51, 17, 33, 17, 51, 17, 51, 22, 22, 23, 22, 22, 23, 22, 22, 23, 20, 6, 7, 6, 6, 7, 6, 6, 35, 23, 50, 54, 55, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 38, 38, 39, 2, 225, 253, 140, 184, 1, 3, 185, 3, 38, 70, 27, 33, 48, 14, 11, 11, 1, 8, 9, 12, 38, 30, 20, 53, 32, 2, 54, 94, 39, 61, 84, 22, 16, 15, 24, 24, 25, 74, 50, 49, 124, 69, 3, 65, 2, 111, 250, 80, 5, 24, 250, 232, 2, 158, 1, 24, 22, 26, 85, 55, 43, 101, 57, 57, 105, 43, 54, 79, 24, 18, 18, 147, 23, 24, 37, 121, 84, 54, 129, 73, 84, 149, 62, 65, 104, 36, 37, 39, 1, 0, 1, 0, 116, 254, 229, 4, 124, 4, 58, 0, 35, 0, 0, 115, 51, 17, 51, 17, 51, 17, 51, 50, 22, 23, 22, 22, 23, 20, 6, 7, 6, 6, 7, 23, 54, 54, 55, 54, 54, 55, 52, 38, 39, 38, 38, 35, 35, 17, 33, 116, 185, 231, 185, 8, 54, 87, 31, 31, 34, 1, 20, 23, 24, 77, 57, 48, 85, 123, 42, 45, 41, 2, 62, 56, 56, 156, 93, 8, 253, 167, 3, 161, 252, 95, 1, 227, 43, 40, 40, 117, 73, 54, 96, 39, 40, 60, 18, 146, 18, 94, 60, 69, 151, 61, 109, 176, 62, 62, 66, 1, 181, 0, 2, 0, 104, 255, 226, 4, 80, 5, 197, 0, 77, 0, 103, 0, 0, 69, 53, 34, 38, 39, 54, 54, 55, 54, 54, 55, 17, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 17, 20, 22, 23, 22, 22, 23, 6, 6, 35, 34, 38, 39, 38, 38, 39, 38, 38, 53, 17, 52, 54, 55, 54, 54, 55, 54, 54, 51, 39, 34, 6, 7, 6, 6, 7, 6, 6, 21, 17, 20, 22, 23, 22, 22, 23, 22, 22, 51, 50, 54, 55, 22, 22, 1, 17, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 17, 20, 6, 7, 6, 6, 7, 38, 38, 39, 38, 38, 4, 80, 44, 78, 35, 26, 44, 17, 28, 30, 1, 43, 40, 40, 115, 72, 72, 115, 40, 40, 43, 27, 26, 24, 68, 43, 16, 32, 17, 46, 79, 33, 38, 59, 19, 16, 17, 7, 8, 11, 33, 23, 15, 35, 20, 1, 50, 86, 36, 46, 68, 20, 15, 15, 24, 23, 30, 98, 65, 53, 127, 72, 60, 109, 48, 63, 146, 254, 148, 15, 16, 16, 46, 32, 31, 47, 16, 15, 15, 19, 19, 13, 35, 21, 31, 50, 18, 21, 22, 30, 157, 13, 12, 33, 76, 41, 70, 161, 88, 1, 104, 104, 180, 67, 66, 76, 78, 67, 67, 180, 101, 254, 173, 81, 148, 64, 59, 103, 43, 4, 4, 30, 28, 33, 97, 60, 52, 120, 65, 1, 25, 55, 101, 44, 58, 93, 29, 17, 20, 158, 38, 34, 42, 132, 80, 56, 127, 68, 254, 233, 78, 146, 65, 84, 141, 47, 38, 43, 29, 27, 31, 33, 2, 157, 1, 88, 67, 120, 46, 45, 54, 51, 45, 45, 122, 69, 254, 149, 69, 128, 55, 36, 65, 27, 31, 76, 44, 53, 125, 0, 0, 2, 0, 92, 255, 235, 4, 139, 4, 79, 0, 77, 0, 109, 0, 0, 69, 53, 34, 38, 39, 54, 54, 55, 54, 54, 53, 53, 52, 38, 39, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 6, 6, 21, 21, 20, 22, 23, 22, 22, 23, 6, 6, 35, 34, 38, 39, 38, 38, 53, 53, 52, 54, 55, 54, 54, 51, 53, 34, 6, 7, 6, 6, 7, 6, 6, 21, 21, 20, 22, 23, 22, 22, 23, 22, 22, 51, 50, 54, 55, 22, 22, 1, 53, 52, 54, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 22, 22, 21, 21, 6, 6, 7, 6, 6, 7, 38, 38, 39, 38, 38, 4, 139, 48, 88, 40, 22, 37, 15, 26, 28, 17, 17, 19, 55, 38, 35, 87, 50, 50, 93, 29, 37, 49, 18, 20, 21, 38, 36, 23, 61, 37, 22, 45, 24, 72, 114, 39, 39, 42, 22, 21, 21, 62, 40, 63, 109, 42, 31, 50, 17, 20, 20, 33, 30, 29, 85, 51, 55, 133, 76, 74, 131, 57, 69, 158, 254, 105, 8, 8, 8, 27, 20, 12, 30, 18, 20, 33, 13, 19, 28, 8, 6, 6, 1, 18, 17, 13, 35, 22, 38, 59, 19, 21, 21, 12, 157, 11, 10, 27, 59, 32, 59, 134, 73, 105, 58, 109, 48, 54, 88, 29, 30, 32, 31, 26, 33, 67, 43, 48, 116, 63, 104, 78, 142, 61, 40, 72, 31, 6, 6, 67, 59, 58, 158, 91, 60, 66, 115, 43, 42, 49, 158, 47, 42, 31, 80, 45, 51, 116, 63, 58, 84, 154, 65, 63, 104, 37, 40, 43, 35, 32, 28, 29, 2, 69, 108, 40, 73, 31, 33, 53, 16, 11, 11, 16, 15, 19, 67, 39, 30, 67, 35, 108, 54, 99, 43, 32, 57, 24, 28, 69, 41, 41, 97, 0, 1, 0, 57, 254, 161, 4, 182, 5, 176, 0, 15, 0, 0, 65, 17, 33, 17, 51, 19, 35, 17, 35, 17, 33, 17, 51, 53, 33, 21, 1, 70, 2, 185, 165, 18, 145, 185, 254, 147, 238, 253, 76, 5, 24, 250, 232, 254, 161, 1, 251, 5, 20, 250, 231, 4, 129, 151, 151, 0, 0, 1, 0, 52, 254, 191, 4, 139, 4, 58, 0, 15, 0, 0, 65, 17, 33, 17, 51, 19, 35, 17, 35, 17, 33, 17, 51, 53, 33, 21, 1, 28, 2, 183, 166, 18, 128, 185, 254, 131, 228, 253, 123, 3, 163, 252, 93, 254, 191, 1, 216, 3, 163, 252, 93, 3, 12, 151, 151, 0, 0, 2, 0, 171, 0, 0, 4, 39, 5, 176, 0, 3, 0, 35, 0, 0, 65, 17, 35, 17, 1, 35, 17, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 17, 35, 17, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 17, 51, 2, 166, 149, 2, 22, 185, 32, 65, 33, 39, 84, 46, 57, 84, 27, 28, 27, 185, 55, 52, 52, 152, 97, 48, 81, 36, 35, 66, 33, 185, 1, 53, 2, 188, 253, 68, 4, 123, 253, 69, 11, 18, 7, 8, 9, 29, 35, 34, 113, 85, 1, 200, 254, 56, 121, 170, 54, 54, 49, 7, 7, 7, 18, 12, 253, 165, 0, 2, 0, 146, 0, 0, 4, 44, 4, 58, 0, 3, 0, 32, 0, 0, 101, 17, 35, 17, 5, 17, 35, 17, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 17, 35, 17, 20, 22, 23, 22, 22, 51, 50, 54, 55, 17, 2, 175, 150, 2, 19, 185, 26, 53, 27, 45, 96, 51, 64, 97, 32, 30, 31, 185, 62, 58, 57, 162, 100, 85, 145, 68, 211, 2, 54, 253, 202, 211, 4, 58, 253, 233, 6, 11, 4, 7, 7, 32, 34, 31, 94, 64, 1, 59, 254, 197, 103, 153, 50, 51, 50, 18, 17, 254, 117, 0, 1, 0, 227, 0, 0, 4, 95, 5, 176, 0, 25, 0, 0, 115, 51, 17, 54, 54, 51, 50, 22, 23, 22, 22, 21, 17, 51, 19, 52, 38, 39, 38, 38, 35, 34, 6, 7, 17, 35, 227, 185, 71, 144, 83, 57, 84, 28, 27, 27, 185, 1, 55, 52, 53, 152, 97, 97, 136, 65, 185, 2, 186, 24, 29, 29, 34, 35, 113, 85, 254, 57, 1, 199, 121, 170, 54, 54, 49, 28, 24, 2, 93, 0, 0, 2, 0, 38, 255, 234, 4, 137, 5, 195, 0, 57, 0, 78, 0, 0, 83, 20, 22, 23, 22, 22, 23, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 39, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 53, 33, 53, 52, 38, 39, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 6, 6, 21, 21, 38, 38, 39, 38, 38, 39, 5, 53, 52, 54, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 22, 22, 21, 21, 38, 33, 33, 32, 97, 65, 67, 65, 65, 191, 124, 111, 164, 36, 47, 22, 53, 32, 33, 77, 47, 88, 124, 39, 40, 36, 2, 166, 16, 16, 21, 69, 49, 46, 121, 73, 63, 116, 49, 50, 80, 29, 31, 34, 23, 37, 13, 19, 18, 1, 1, 40, 23, 21, 16, 43, 27, 29, 68, 40, 41, 64, 24, 30, 39, 12, 8, 8, 4, 57, 75, 126, 47, 48, 63, 12, 144, 128, 215, 78, 79, 88, 66, 34, 136, 14, 30, 13, 13, 16, 70, 60, 59, 159, 90, 136, 188, 83, 144, 60, 75, 114, 38, 35, 36, 39, 36, 36, 105, 65, 69, 169, 99, 5, 10, 32, 21, 31, 85, 50, 247, 16, 91, 151, 57, 41, 64, 22, 23, 24, 23, 21, 26, 80, 50, 39, 90, 48, 112, 0, 2, 0, 38, 255, 236, 4, 133, 4, 78, 0, 44, 0, 58, 0, 0, 69, 50, 54, 55, 39, 6, 6, 35, 34, 38, 39, 38, 38, 39, 53, 33, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 38, 38, 39, 35, 20, 22, 23, 22, 22, 23, 21, 20, 22, 23, 22, 22, 19, 50, 22, 23, 22, 22, 21, 21, 33, 54, 54, 55, 54, 54, 2, 254, 137, 176, 48, 74, 48, 139, 100, 69, 105, 36, 36, 38, 3, 2, 166, 51, 52, 52, 159, 107, 80, 145, 58, 58, 80, 15, 59, 54, 1, 148, 27, 27, 32, 100, 69, 66, 61, 61, 175, 80, 61, 89, 29, 29, 28, 254, 25, 9, 44, 32, 32, 84, 20, 85, 50, 124, 46, 63, 58, 50, 50, 134, 73, 2, 120, 105, 178, 65, 64, 73, 64, 58, 59, 163, 97, 21, 107, 77, 66, 110, 43, 49, 64, 12, 1, 117, 198, 72, 73, 81, 3, 202, 46, 38, 39, 100, 54, 24, 64, 110, 41, 40, 46, 0, 1, 0, 200, 254, 218, 4, 140, 5, 176, 0, 38, 0, 0, 65, 1, 35, 1, 35, 17, 35, 17, 51, 17, 51, 50, 22, 23, 22, 22, 23, 20, 6, 7, 6, 6, 7, 6, 6, 35, 23, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 2, 201, 1, 184, 215, 254, 101, 142, 185, 185, 224, 93, 139, 46, 45, 46, 1, 12, 13, 14, 49, 35, 31, 81, 51, 2, 115, 175, 59, 59, 61, 60, 57, 57, 168, 106, 3, 53, 2, 123, 253, 140, 2, 116, 250, 80, 2, 154, 56, 53, 53, 154, 99, 58, 103, 43, 49, 74, 26, 22, 24, 146, 73, 70, 69, 202, 131, 119, 197, 73, 73, 93, 15, 0, 1, 0, 180, 254, 254, 4, 60, 4, 58, 0, 34, 0, 0, 65, 1, 35, 1, 35, 17, 35, 17, 51, 17, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 7, 23, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 2, 175, 1, 141, 224, 254, 136, 119, 185, 185, 199, 71, 119, 44, 43, 50, 25, 28, 28, 87, 63, 49, 97, 139, 44, 44, 42, 57, 51, 51, 143, 2, 100, 1, 214, 254, 54, 1, 202, 251, 198, 1, 205, 32, 34, 35, 109, 76, 51, 91, 36, 37, 56, 16, 146, 18, 98, 63, 62, 136, 56, 96, 150, 55, 54, 68, 0, 0, 1, 0, 182, 254, 75, 4, 25, 5, 176, 0, 29, 0, 0, 65, 35, 17, 51, 17, 33, 17, 20, 6, 35, 34, 38, 39, 38, 38, 39, 7, 22, 22, 51, 50, 54, 55, 54, 54, 53, 17, 35, 17, 33, 1, 111, 185, 185, 1, 241, 67, 65, 6, 26, 14, 15, 27, 8, 14, 29, 52, 29, 76, 118, 41, 40, 42, 185, 254, 15, 5, 176, 250, 80, 2, 133, 253, 34, 87, 109, 2, 2, 1, 5, 3, 147, 10, 8, 47, 45, 45, 129, 82, 6, 9, 253, 108, 0, 0, 1, 0, 179, 254, 75, 4, 22, 4, 58, 0, 29, 0, 0, 65, 35, 17, 51, 17, 33, 17, 20, 6, 35, 34, 38, 39, 38, 38, 39, 7, 22, 22, 51, 50, 54, 55, 54, 54, 53, 17, 35, 17, 33, 1, 108, 185, 185, 1, 241, 71, 66, 7, 26, 14, 15, 28, 8, 14, 29, 53, 30, 76, 120, 41, 41, 44, 185, 254, 15, 4, 58, 251, 198, 1, 206, 253, 217, 90, 106, 2, 2, 1, 5, 3, 147, 10, 8, 47, 45, 44, 129, 83, 4, 147, 254, 43, 0, 0, 2, 0, 90, 255, 235, 4, 87, 5, 196, 0, 52, 0, 72, 0, 0, 65, 34, 6, 7, 6, 6, 7, 23, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 22, 22, 21, 21, 33, 21, 20, 22, 23, 22, 22, 23, 22, 22, 51, 22, 54, 55, 54, 54, 55, 54, 54, 53, 53, 52, 38, 39, 38, 38, 39, 38, 38, 3, 34, 38, 39, 38, 38, 39, 38, 38, 53, 53, 33, 6, 6, 7, 6, 6, 7, 6, 6, 2, 62, 72, 114, 43, 44, 59, 17, 47, 25, 61, 37, 37, 89, 53, 54, 91, 36, 45, 64, 20, 22, 20, 252, 188, 17, 18, 26, 98, 67, 55, 139, 83, 70, 129, 55, 70, 109, 35, 24, 26, 30, 30, 33, 98, 64, 58, 142, 63, 60, 94, 36, 40, 58, 13, 9, 8, 2, 139, 1, 18, 18, 21, 66, 45, 34, 82, 5, 196, 22, 16, 16, 35, 12, 136, 14, 31, 13, 12, 16, 26, 24, 28, 90, 51, 56, 133, 71, 93, 166, 73, 131, 57, 89, 140, 43, 36, 38, 1, 40, 37, 46, 145, 91, 64, 147, 79, 218, 90, 162, 69, 75, 118, 41, 36, 39, 250, 190, 29, 27, 33, 96, 58, 36, 80, 42, 90, 63, 121, 52, 64, 103, 34, 26, 28, 0, 1, 0, 148, 255, 235, 4, 82, 5, 176, 0, 45, 0, 0, 65, 1, 21, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 35, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 35, 1, 39, 33, 21, 3, 74, 254, 122, 143, 83, 126, 41, 37, 39, 42, 39, 39, 113, 71, 63, 105, 37, 37, 42, 185, 81, 66, 66, 169, 87, 106, 179, 66, 65, 73, 59, 61, 78, 192, 66, 1, 1, 155, 1, 252, 155, 5, 24, 254, 59, 151, 38, 39, 36, 110, 75, 59, 100, 36, 36, 41, 43, 38, 37, 99, 57, 111, 160, 52, 52, 50, 57, 55, 55, 158, 102, 100, 161, 54, 69, 56, 1, 236, 118, 152, 0, 0, 1, 0, 137, 254, 117, 4, 72, 4, 58, 0, 45, 0, 0, 65, 1, 21, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 35, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 35, 1, 39, 33, 21, 3, 44, 254, 140, 141, 86, 130, 41, 36, 37, 42, 39, 39, 113, 72, 63, 104, 37, 38, 41, 186, 82, 66, 66, 168, 87, 106, 180, 66, 65, 73, 59, 58, 67, 195, 64, 1, 1, 142, 1, 252, 155, 3, 161, 254, 59, 151, 40, 42, 36, 108, 72, 59, 99, 36, 36, 40, 43, 37, 37, 99, 56, 110, 160, 52, 52, 50, 57, 55, 55, 158, 101, 98, 155, 57, 65, 63, 1, 239, 118, 153, 0, 255, 255, 0, 66, 254, 75, 4, 123, 5, 176, 4, 38, 1, 123, 75, 0, 0, 39, 2, 106, 255, 13, 0, 63, 0, 7, 2, 111, 255, 79, 0, 0, 255, 255, 0, 116, 254, 75, 4, 124, 4, 58, 4, 38, 1, 181, 82, 0, 0, 39, 2, 106, 255, 63, 255, 100, 0, 7, 2, 111, 255, 68, 0, 0, 0, 2, 0, 97, 0, 0, 4, 48, 5, 176, 0, 16, 0, 31, 0, 0, 65, 33, 34, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 51, 33, 17, 35, 17, 33, 34, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 51, 33, 3, 119, 254, 209, 117, 181, 62, 62, 65, 65, 62, 62, 181, 117, 1, 232, 185, 254, 209, 78, 114, 37, 37, 35, 35, 37, 37, 114, 78, 1, 47, 3, 109, 63, 57, 57, 160, 97, 96, 163, 59, 59, 66, 5, 176, 250, 231, 49, 41, 41, 106, 57, 56, 102, 39, 38, 46, 0, 0, 2, 0, 77, 0, 0, 4, 141, 5, 176, 0, 36, 0, 51, 0, 0, 97, 33, 50, 54, 55, 54, 54, 55, 54, 38, 39, 35, 22, 22, 7, 6, 6, 7, 6, 6, 7, 7, 17, 35, 17, 35, 34, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 55, 35, 34, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 51, 51, 1, 207, 1, 92, 71, 127, 48, 47, 57, 2, 2, 40, 27, 179, 29, 32, 2, 1, 22, 21, 21, 61, 41, 49, 185, 114, 94, 144, 49, 49, 50, 50, 49, 49, 144, 208, 114, 54, 77, 24, 24, 22, 22, 24, 24, 77, 54, 114, 60, 60, 60, 178, 118, 96, 192, 91, 91, 197, 91, 72, 119, 43, 43, 47, 1, 1, 5, 26, 253, 189, 64, 57, 58, 160, 95, 95, 162, 59, 60, 67, 151, 50, 41, 41, 106, 56, 55, 102, 39, 39, 46, 0, 0, 2, 0, 101, 255, 234, 4, 147, 6, 24, 0, 79, 0, 114, 0, 0, 83, 21, 20, 22, 23, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 22, 22, 23, 22, 22, 55, 50, 54, 55, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 7, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 6, 6, 7, 34, 38, 39, 38, 38, 39, 38, 38, 55, 17, 35, 17, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 6, 6, 37, 17, 22, 22, 23, 6, 6, 7, 6, 6, 39, 34, 38, 39, 38, 38, 39, 38, 38, 53, 53, 52, 54, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 101, 10, 9, 17, 63, 42, 32, 80, 47, 47, 77, 32, 16, 28, 13, 13, 33, 20, 32, 85, 52, 52, 91, 40, 40, 47, 18, 15, 17, 1, 1, 15, 14, 8, 19, 11, 178, 11, 19, 7, 11, 11, 1, 1, 7, 7, 9, 24, 17, 14, 35, 21, 14, 24, 10, 13, 19, 6, 3, 4, 1, 185, 11, 25, 14, 25, 60, 34, 56, 93, 35, 31, 45, 15, 13, 14, 1, 215, 1, 4, 3, 9, 21, 13, 18, 44, 28, 26, 42, 16, 27, 33, 8, 5, 4, 6, 7, 7, 27, 17, 19, 49, 31, 28, 45, 18, 9, 16, 2, 64, 131, 50, 93, 42, 71, 118, 35, 27, 30, 30, 28, 15, 37, 21, 25, 42, 15, 25, 25, 1, 41, 43, 44, 97, 64, 55, 131, 75, 64, 127, 61, 38, 76, 37, 1, 39, 79, 40, 60, 123, 61, 57, 102, 44, 48, 77, 26, 21, 23, 1, 11, 10, 13, 41, 25, 18, 39, 21, 4, 228, 253, 237, 12, 21, 8, 15, 17, 46, 42, 37, 100, 58, 54, 123, 230, 253, 204, 23, 42, 20, 16, 28, 10, 16, 18, 1, 17, 15, 23, 83, 49, 28, 62, 32, 131, 46, 88, 39, 42, 73, 26, 26, 29, 19, 16, 8, 19, 0, 1, 0, 55, 255, 234, 4, 138, 5, 176, 0, 83, 0, 0, 65, 21, 22, 22, 23, 22, 22, 55, 50, 54, 55, 54, 54, 55, 54, 54, 55, 54, 38, 39, 35, 22, 22, 23, 22, 22, 21, 6, 6, 7, 6, 6, 7, 6, 6, 7, 34, 38, 39, 38, 38, 53, 53, 52, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 35, 21, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 35, 21, 51, 50, 22, 23, 22, 22, 1, 247, 3, 31, 29, 37, 117, 78, 74, 131, 49, 27, 42, 14, 11, 13, 1, 2, 42, 26, 179, 16, 25, 7, 6, 6, 1, 7, 6, 6, 16, 11, 22, 65, 43, 27, 41, 14, 14, 14, 19, 22, 22, 69, 49, 29, 51, 21, 43, 47, 57, 54, 54, 155, 98, 225, 225, 59, 87, 29, 29, 29, 30, 31, 30, 93, 64, 82, 133, 42, 69, 25, 24, 27, 1, 114, 103, 65, 100, 35, 46, 43, 1, 71, 70, 38, 98, 59, 46, 108, 60, 103, 202, 98, 56, 113, 56, 44, 90, 44, 45, 83, 37, 34, 61, 26, 53, 59, 1, 22, 19, 18, 50, 28, 105, 59, 106, 44, 44, 67, 21, 15, 39, 23, 49, 129, 77, 100, 154, 52, 51, 54, 152, 36, 33, 34, 95, 59, 64, 99, 33, 31, 33, 152, 39, 35, 35, 98, 0, 1, 0, 80, 255, 228, 4, 124, 4, 58, 0, 80, 0, 0, 65, 52, 38, 39, 38, 38, 35, 35, 23, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 35, 23, 51, 22, 22, 23, 22, 22, 21, 21, 20, 22, 23, 22, 22, 55, 50, 54, 55, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 35, 22, 22, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 53, 52, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 2, 221, 57, 54, 55, 158, 100, 229, 6, 223, 66, 94, 29, 25, 24, 19, 19, 27, 98, 71, 149, 2, 173, 55, 82, 26, 21, 23, 30, 29, 34, 110, 73, 50, 92, 39, 26, 49, 18, 22, 28, 1, 1, 9, 8, 10, 27, 14, 180, 30, 33, 2, 1, 18, 17, 18, 51, 34, 24, 34, 10, 11, 12, 29, 32, 22, 62, 41, 39, 63, 23, 31, 32, 2, 248, 76, 120, 41, 41, 44, 150, 30, 27, 23, 62, 36, 31, 52, 20, 28, 31, 150, 1, 24, 24, 18, 53, 33, 67, 59, 89, 31, 36, 35, 2, 33, 32, 22, 64, 40, 50, 127, 77, 37, 74, 37, 43, 86, 42, 78, 163, 78, 66, 108, 38, 39, 43, 10, 10, 11, 35, 22, 77, 51, 87, 33, 22, 35, 11, 15, 38, 23, 30, 77, 0, 0, 1, 0, 179, 254, 165, 4, 82, 5, 176, 0, 69, 0, 0, 65, 51, 50, 22, 23, 22, 22, 21, 21, 20, 22, 23, 22, 22, 23, 51, 21, 20, 6, 7, 6, 6, 7, 23, 54, 54, 55, 54, 54, 53, 53, 35, 38, 52, 53, 53, 52, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 33, 21, 33, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 35, 1, 16, 219, 60, 97, 35, 34, 38, 3, 6, 6, 25, 23, 86, 10, 11, 10, 34, 22, 115, 42, 64, 23, 22, 23, 165, 1, 25, 27, 27, 86, 62, 40, 68, 27, 47, 49, 66, 62, 63, 182, 116, 254, 236, 1, 20, 78, 115, 38, 37, 36, 32, 33, 39, 129, 91, 163, 2, 121, 37, 34, 35, 98, 60, 132, 19, 63, 34, 35, 65, 21, 1, 34, 72, 36, 36, 72, 33, 63, 36, 92, 51, 50, 103, 47, 176, 7, 13, 7, 136, 61, 108, 44, 44, 66, 20, 18, 44, 26, 46, 120, 74, 102, 155, 52, 52, 53, 152, 36, 33, 34, 97, 60, 60, 92, 32, 37, 38, 0, 1, 0, 208, 254, 146, 4, 48, 4, 58, 0, 73, 0, 0, 65, 51, 22, 22, 23, 22, 22, 21, 21, 20, 22, 23, 22, 22, 23, 51, 21, 20, 6, 7, 6, 6, 7, 23, 54, 54, 55, 54, 54, 53, 53, 34, 34, 35, 52, 52, 53, 52, 52, 53, 52, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 33, 7, 33, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 35, 1, 25, 241, 52, 80, 27, 25, 27, 2, 5, 5, 22, 20, 84, 11, 12, 11, 32, 22, 115, 42, 64, 23, 22, 23, 51, 76, 26, 21, 23, 23, 73, 52, 40, 64, 24, 31, 33, 58, 55, 55, 158, 100, 254, 228, 1, 1, 29, 65, 95, 29, 26, 25, 27, 29, 29, 92, 63, 212, 1, 185, 1, 24, 23, 22, 63, 40, 95, 13, 47, 25, 26, 48, 14, 2, 39, 84, 41, 36, 69, 32, 63, 36, 92, 51, 50, 103, 47, 176, 21, 19, 17, 4, 12, 7, 46, 81, 33, 33, 50, 15, 15, 38, 23, 31, 79, 48, 77, 119, 41, 41, 43, 150, 28, 26, 23, 62, 38, 38, 61, 21, 21, 23, 0, 0, 1, 0, 20, 255, 234, 4, 164, 5, 176, 0, 78, 0, 0, 65, 3, 22, 22, 23, 22, 22, 23, 22, 22, 55, 50, 54, 55, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 7, 22, 22, 7, 20, 6, 7, 6, 6, 7, 6, 6, 7, 34, 38, 39, 38, 38, 39, 38, 38, 53, 3, 33, 3, 20, 6, 7, 6, 6, 7, 6, 6, 7, 6, 6, 35, 35, 21, 51, 50, 54, 55, 54, 54, 55, 54, 54, 55, 54, 54, 53, 3, 2, 99, 1, 2, 18, 17, 16, 46, 29, 27, 65, 38, 66, 115, 43, 28, 41, 11, 7, 7, 1, 1, 6, 6, 6, 19, 11, 179, 20, 21, 1, 4, 3, 4, 13, 9, 17, 49, 34, 12, 19, 8, 9, 12, 5, 4, 3, 1, 253, 199, 1, 2, 1, 4, 17, 15, 11, 30, 20, 17, 41, 24, 23, 34, 58, 94, 37, 27, 46, 18, 29, 34, 7, 3, 3, 1, 5, 24, 251, 247, 53, 87, 33, 32, 46, 15, 14, 13, 1, 72, 70, 45, 117, 71, 40, 87, 48, 48, 95, 46, 54, 107, 53, 1, 100, 202, 100, 37, 70, 32, 42, 74, 30, 53, 60, 1, 9, 8, 11, 28, 16, 16, 35, 18, 4, 161, 253, 80, 46, 86, 39, 91, 145, 54, 42, 61, 19, 17, 17, 151, 33, 33, 25, 67, 42, 69, 184, 112, 47, 102, 54, 2, 24, 0, 1, 0, 47, 255, 234, 4, 133, 4, 58, 0, 75, 0, 0, 65, 33, 17, 20, 6, 7, 6, 6, 7, 6, 6, 35, 7, 7, 51, 50, 54, 55, 54, 54, 55, 54, 54, 55, 54, 54, 53, 17, 51, 17, 20, 22, 23, 22, 22, 23, 22, 22, 55, 50, 54, 55, 54, 54, 55, 54, 54, 55, 54, 38, 39, 35, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 6, 6, 7, 34, 38, 39, 38, 38, 39, 38, 38, 53, 2, 250, 253, 201, 3, 4, 3, 8, 6, 14, 48, 36, 23, 3, 38, 50, 81, 31, 33, 48, 17, 11, 15, 4, 2, 3, 197, 18, 14, 15, 45, 29, 28, 69, 40, 48, 87, 37, 37, 60, 19, 14, 17, 1, 2, 40, 27, 179, 14, 23, 7, 8, 8, 1, 1, 6, 7, 8, 27, 18, 14, 34, 20, 11, 18, 7, 11, 15, 4, 4, 3, 4, 58, 254, 52, 64, 112, 46, 34, 59, 24, 58, 59, 1, 165, 30, 29, 31, 93, 64, 44, 104, 59, 39, 84, 45, 1, 51, 253, 128, 52, 86, 34, 36, 54, 17, 16, 16, 1, 35, 33, 34, 101, 65, 50, 119, 68, 97, 191, 93, 46, 93, 47, 48, 98, 49, 47, 86, 37, 47, 77, 21, 19, 19, 1, 9, 8, 11, 34, 24, 16, 37, 20, 0, 0, 1, 0, 111, 255, 234, 4, 148, 5, 176, 0, 56, 0, 0, 65, 35, 17, 33, 17, 35, 17, 51, 17, 33, 17, 22, 22, 23, 22, 22, 23, 22, 22, 55, 50, 54, 55, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 7, 22, 22, 7, 20, 6, 7, 6, 6, 7, 6, 6, 7, 34, 38, 39, 38, 38, 39, 38, 38, 53, 3, 12, 185, 254, 213, 185, 185, 1, 43, 1, 16, 13, 18, 39, 28, 28, 72, 42, 67, 115, 43, 24, 38, 12, 9, 10, 1, 1, 9, 9, 9, 26, 14, 178, 28, 32, 2, 4, 4, 4, 13, 9, 16, 49, 34, 10, 16, 7, 12, 15, 5, 4, 3, 5, 176, 253, 108, 2, 148, 250, 80, 2, 133, 254, 175, 54, 95, 30, 43, 51, 19, 19, 19, 1, 72, 70, 40, 102, 61, 46, 102, 57, 48, 96, 47, 53, 107, 52, 1, 100, 202, 100, 38, 73, 32, 41, 71, 29, 54, 60, 1, 8, 7, 12, 38, 25, 20, 44, 24, 0, 1, 0, 117, 255, 234, 4, 126, 4, 58, 0, 53, 0, 0, 65, 21, 22, 22, 23, 22, 22, 23, 22, 22, 55, 50, 54, 55, 54, 54, 55, 54, 54, 55, 54, 38, 39, 35, 22, 22, 7, 20, 6, 7, 6, 6, 7, 6, 6, 7, 34, 38, 39, 38, 38, 39, 38, 38, 53, 17, 35, 17, 33, 17, 35, 17, 51, 17, 2, 59, 2, 14, 13, 18, 61, 42, 27, 62, 36, 63, 109, 41, 22, 34, 12, 9, 11, 1, 2, 30, 20, 178, 20, 22, 1, 4, 4, 4, 11, 7, 14, 44, 29, 14, 24, 9, 11, 16, 5, 6, 5, 185, 254, 243, 185, 185, 1, 205, 172, 47, 80, 32, 48, 65, 17, 11, 11, 1, 65, 64, 35, 88, 53, 44, 100, 56, 97, 191, 93, 94, 192, 95, 37, 69, 31, 33, 59, 25, 47, 52, 1, 10, 9, 10, 26, 16, 18, 44, 26, 3, 25, 254, 42, 1, 214, 251, 198, 1, 205, 0, 0, 1, 0, 142, 255, 235, 4, 118, 5, 197, 0, 60, 0, 0, 69, 50, 54, 55, 54, 54, 55, 54, 38, 39, 35, 22, 22, 7, 6, 6, 7, 6, 6, 7, 34, 38, 39, 38, 38, 53, 17, 52, 54, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 55, 38, 38, 35, 34, 6, 7, 6, 6, 7, 6, 6, 21, 17, 20, 22, 23, 22, 22, 23, 22, 22, 2, 148, 96, 173, 66, 65, 78, 2, 2, 38, 20, 179, 23, 29, 2, 1, 38, 36, 37, 111, 72, 79, 124, 42, 43, 45, 17, 17, 20, 67, 44, 35, 84, 49, 86, 143, 65, 59, 67, 174, 112, 68, 123, 52, 75, 111, 35, 26, 28, 32, 29, 31, 94, 59, 57, 138, 21, 55, 56, 55, 168, 112, 89, 183, 89, 90, 181, 90, 66, 107, 38, 40, 43, 1, 74, 64, 64, 170, 95, 1, 8, 58, 110, 49, 60, 100, 32, 26, 29, 35, 33, 132, 44, 44, 33, 31, 43, 137, 83, 64, 147, 80, 254, 250, 85, 156, 67, 71, 117, 39, 40, 43, 0, 0, 1, 0, 160, 255, 235, 4, 80, 4, 78, 0, 54, 0, 0, 101, 34, 38, 39, 38, 38, 53, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 55, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 52, 38, 39, 35, 22, 22, 21, 6, 6, 7, 6, 6, 2, 180, 91, 131, 42, 42, 40, 37, 40, 40, 122, 86, 81, 140, 54, 44, 28, 72, 42, 38, 89, 50, 123, 190, 65, 65, 68, 71, 68, 67, 198, 128, 87, 149, 55, 55, 64, 2, 16, 11, 178, 14, 6, 1, 24, 25, 27, 88, 130, 69, 56, 55, 139, 71, 42, 70, 138, 56, 55, 69, 30, 28, 144, 17, 26, 8, 7, 8, 89, 74, 74, 195, 108, 42, 108, 196, 74, 74, 89, 41, 42, 42, 128, 87, 54, 110, 54, 54, 111, 53, 44, 68, 24, 26, 26, 0, 1, 0, 76, 255, 234, 4, 149, 5, 176, 0, 49, 0, 0, 65, 17, 22, 22, 23, 22, 22, 23, 22, 22, 55, 50, 54, 55, 54, 54, 55, 54, 54, 55, 54, 38, 39, 7, 22, 22, 7, 6, 6, 7, 6, 6, 7, 6, 6, 7, 34, 38, 39, 38, 38, 39, 38, 38, 53, 17, 33, 53, 33, 21, 1, 181, 2, 14, 11, 20, 63, 44, 37, 90, 53, 82, 144, 54, 29, 45, 15, 14, 15, 1, 3, 42, 27, 179, 29, 33, 2, 1, 9, 8, 7, 18, 12, 27, 79, 53, 22, 37, 16, 21, 32, 10, 5, 6, 1, 134, 252, 88, 5, 24, 252, 65, 48, 82, 35, 55, 83, 23, 21, 20, 1, 71, 70, 37, 92, 55, 49, 113, 63, 103, 202, 98, 1, 100, 202, 100, 48, 87, 38, 32, 57, 24, 53, 59, 1, 12, 12, 15, 52, 33, 21, 46, 24, 3, 191, 152, 152, 0, 0, 1, 0, 73, 255, 234, 4, 106, 4, 58, 0, 40, 0, 0, 65, 17, 22, 22, 23, 22, 22, 55, 50, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 35, 22, 22, 7, 6, 6, 7, 6, 6, 7, 34, 38, 39, 38, 38, 53, 17, 33, 53, 33, 21, 1, 154, 4, 47, 42, 42, 124, 78, 78, 137, 52, 52, 61, 2, 1, 11, 9, 10, 25, 13, 178, 29, 33, 2, 2, 25, 25, 25, 72, 48, 37, 56, 19, 20, 19, 1, 122, 252, 123, 3, 164, 253, 181, 94, 139, 45, 46, 43, 1, 57, 57, 56, 167, 110, 41, 82, 41, 41, 81, 39, 78, 168, 79, 66, 108, 39, 39, 43, 1, 33, 29, 29, 78, 46, 2, 75, 150, 150, 0, 0, 1, 0, 108, 255, 236, 4, 111, 5, 197, 0, 76, 0, 0, 83, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 35, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 51, 51, 53, 35, 34, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 51, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 23, 6, 6, 7, 6, 6, 109, 81, 72, 71, 195, 115, 91, 176, 70, 69, 86, 185, 1, 45, 40, 41, 112, 68, 81, 129, 45, 45, 49, 45, 43, 43, 125, 79, 182, 182, 80, 118, 38, 39, 38, 41, 41, 40, 123, 82, 60, 104, 39, 38, 45, 1, 185, 76, 64, 65, 172, 95, 115, 189, 67, 68, 74, 33, 31, 30, 88, 55, 52, 85, 31, 44, 47, 1, 150, 103, 159, 54, 54, 56, 49, 52, 52, 160, 111, 57, 100, 37, 37, 43, 40, 36, 36, 100, 60, 69, 99, 33, 32, 31, 152, 36, 33, 32, 91, 56, 55, 94, 35, 35, 40, 38, 33, 33, 92, 54, 93, 149, 52, 52, 56, 53, 52, 53, 155, 102, 51, 94, 40, 41, 66, 23, 17, 51, 32, 45, 121, 255, 255, 0, 166, 254, 106, 4, 59, 0, 0, 4, 39, 0, 102, 0, 11, 255, 1, 0, 6, 0, 102, 11, 0, 0, 1, 1, 207, 4, 7, 2, 226, 6, 22, 0, 12, 0, 0, 65, 53, 51, 21, 20, 22, 23, 7, 38, 38, 39, 38, 38, 1, 207, 181, 47, 47, 101, 42, 64, 22, 23, 23, 5, 131, 147, 150, 86, 148, 71, 72, 36, 92, 51, 50, 104, 0, 255, 255, 1, 92, 255, 237, 4, 58, 1, 7, 4, 39, 0, 96, 255, 108, 0, 0, 0, 7, 0, 96, 1, 38, 0, 0, 0, 2, 1, 15, 2, 56, 4, 24, 5, 195, 0, 10, 0, 14, 0, 0, 65, 17, 35, 1, 23, 33, 21, 51, 53, 51, 53, 33, 1, 55, 17, 3, 129, 169, 254, 55, 3, 1, 204, 163, 151, 253, 172, 1, 4, 22, 3, 111, 2, 84, 253, 140, 94, 185, 185, 126, 1, 92, 44, 254, 120, 0, 0, 1, 1, 75, 2, 139, 3, 201, 5, 186, 0, 31, 0, 0, 65, 35, 17, 51, 17, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 17, 51, 17, 52, 38, 39, 38, 38, 35, 6, 6, 7, 6, 6, 7, 1, 204, 129, 170, 9, 26, 17, 20, 51, 31, 33, 52, 19, 19, 21, 170, 36, 34, 34, 95, 60, 42, 73, 30, 23, 38, 15, 5, 171, 252, 224, 2, 50, 23, 38, 14, 16, 18, 20, 22, 23, 76, 54, 254, 36, 1, 252, 80, 116, 38, 37, 36, 1, 25, 22, 17, 46, 27, 0, 1, 0, 127, 255, 235, 4, 57, 5, 196, 0, 55, 0, 0, 65, 53, 33, 53, 33, 53, 33, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 55, 38, 38, 35, 34, 6, 7, 6, 6, 21, 21, 35, 21, 51, 21, 35, 21, 51, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 39, 6, 6, 35, 34, 38, 39, 38, 38, 53, 53, 3, 110, 254, 126, 1, 130, 254, 126, 54, 45, 45, 126, 78, 60, 111, 52, 18, 61, 117, 63, 116, 192, 70, 69, 87, 179, 179, 179, 179, 86, 68, 70, 195, 117, 63, 120, 56, 18, 52, 110, 59, 79, 128, 45, 43, 55, 2, 31, 122, 138, 123, 1, 86, 164, 49, 49, 50, 19, 16, 155, 14, 17, 70, 69, 68, 222, 119, 2, 123, 138, 122, 5, 128, 220, 68, 71, 72, 16, 15, 154, 17, 17, 52, 52, 49, 162, 93, 5, 0, 4, 0, 73, 255, 235, 4, 148, 5, 197, 0, 51, 0, 77, 0, 103, 0, 107, 0, 0, 65, 35, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 51, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 19, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 23, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 5, 1, 39, 1, 2, 76, 138, 15, 14, 15, 43, 30, 31, 45, 15, 15, 15, 15, 15, 14, 45, 30, 30, 44, 15, 15, 15, 138, 36, 33, 33, 95, 60, 61, 96, 33, 33, 35, 35, 34, 33, 97, 61, 59, 95, 33, 33, 35, 66, 35, 34, 33, 97, 61, 61, 96, 33, 33, 35, 35, 33, 34, 96, 61, 61, 96, 33, 34, 35, 139, 14, 15, 15, 45, 31, 31, 45, 15, 15, 14, 14, 15, 15, 45, 30, 31, 46, 15, 15, 14, 254, 156, 2, 2, 114, 253, 255, 4, 30, 24, 48, 19, 19, 24, 31, 25, 25, 64, 34, 77, 34, 66, 25, 25, 31, 22, 19, 19, 50, 27, 53, 93, 35, 35, 41, 48, 41, 42, 109, 61, 77, 60, 109, 41, 41, 48, 40, 35, 34, 93, 253, 123, 78, 61, 109, 41, 41, 48, 48, 41, 41, 109, 61, 78, 61, 109, 41, 41, 48, 48, 41, 41, 109, 139, 78, 34, 65, 26, 25, 30, 30, 25, 26, 65, 34, 78, 35, 64, 25, 26, 30, 30, 26, 25, 64, 31, 3, 186, 66, 252, 70, 0, 0, 2, 0, 221, 255, 235, 3, 243, 5, 201, 0, 44, 0, 64, 0, 0, 69, 53, 34, 38, 39, 38, 38, 53, 53, 54, 54, 55, 54, 54, 53, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 6, 6, 21, 17, 6, 6, 35, 21, 50, 54, 55, 21, 20, 22, 23, 22, 22, 3, 17, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 21, 20, 6, 7, 6, 6, 3, 84, 68, 90, 28, 28, 23, 96, 147, 51, 50, 52, 39, 36, 36, 100, 60, 63, 103, 38, 26, 39, 14, 13, 14, 47, 104, 58, 56, 104, 49, 51, 53, 52, 158, 129, 20, 21, 15, 42, 27, 21, 34, 10, 10, 11, 26, 26, 26, 79, 21, 157, 41, 39, 38, 109, 68, 87, 52, 145, 82, 81, 169, 77, 41, 72, 116, 42, 41, 45, 39, 36, 25, 64, 38, 38, 89, 50, 254, 33, 13, 14, 176, 13, 12, 14, 101, 166, 59, 60, 66, 2, 220, 1, 135, 62, 92, 28, 19, 20, 22, 21, 20, 58, 37, 43, 56, 113, 53, 54, 96, 0, 4, 0, 121, 0, 0, 4, 118, 5, 192, 0, 9, 0, 35, 0, 61, 0, 65, 0, 0, 97, 17, 35, 19, 1, 35, 17, 51, 3, 1, 1, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 23, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 19, 53, 33, 21, 2, 227, 176, 1, 254, 244, 175, 176, 1, 1, 11, 1, 3, 21, 21, 20, 59, 39, 39, 60, 20, 20, 21, 21, 20, 20, 61, 39, 38, 60, 20, 20, 21, 101, 5, 6, 6, 23, 18, 19, 23, 7, 6, 5, 4, 6, 7, 23, 19, 19, 23, 6, 7, 4, 217, 254, 205, 5, 176, 252, 113, 3, 143, 250, 80, 3, 147, 252, 109, 4, 251, 206, 40, 71, 26, 27, 31, 31, 27, 26, 71, 40, 206, 40, 72, 27, 27, 31, 31, 27, 27, 72, 237, 188, 22, 40, 15, 14, 17, 17, 14, 15, 40, 22, 188, 23, 39, 14, 15, 17, 17, 15, 14, 39, 254, 168, 95, 95, 0, 2, 0, 153, 255, 236, 4, 148, 4, 78, 0, 33, 0, 42, 0, 0, 101, 39, 6, 6, 39, 34, 38, 39, 17, 33, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 51, 50, 54, 1, 50, 22, 23, 17, 33, 17, 54, 54, 4, 23, 2, 89, 185, 94, 78, 140, 55, 3, 0, 78, 66, 67, 181, 103, 66, 129, 58, 59, 99, 36, 36, 41, 82, 71, 70, 191, 110, 99, 186, 254, 227, 77, 136, 54, 253, 228, 57, 140, 94, 104, 63, 60, 1, 59, 51, 1, 72, 47, 115, 198, 73, 73, 82, 41, 37, 37, 103, 62, 62, 143, 76, 115, 204, 76, 77, 89, 61, 3, 199, 62, 51, 254, 226, 1, 21, 56, 66, 0, 5, 0, 80, 255, 246, 4, 185, 5, 174, 0, 6, 0, 54, 0, 78, 0, 102, 0, 106, 0, 0, 65, 17, 35, 5, 21, 55, 17, 5, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 23, 6, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 3, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 3, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 1, 1, 39, 1, 1, 159, 16, 254, 193, 194, 3, 150, 38, 33, 33, 92, 53, 54, 91, 34, 33, 37, 21, 20, 12, 35, 19, 23, 41, 15, 21, 25, 42, 36, 36, 98, 56, 55, 98, 36, 35, 41, 29, 26, 14, 36, 20, 19, 32, 13, 21, 22, 122, 19, 17, 17, 45, 27, 31, 50, 17, 13, 15, 18, 16, 16, 47, 28, 27, 46, 17, 16, 20, 19, 15, 13, 15, 39, 24, 27, 41, 14, 13, 13, 14, 13, 14, 40, 26, 23, 39, 13, 16, 16, 253, 122, 2, 2, 114, 253, 255, 2, 232, 2, 198, 105, 115, 51, 253, 227, 223, 49, 74, 25, 25, 26, 26, 25, 25, 74, 49, 31, 54, 22, 14, 25, 10, 9, 27, 16, 23, 60, 36, 51, 76, 26, 26, 25, 25, 26, 26, 76, 51, 39, 65, 24, 13, 22, 8, 9, 23, 13, 22, 56, 254, 229, 24, 37, 13, 12, 14, 16, 15, 13, 35, 21, 24, 37, 12, 13, 13, 13, 13, 12, 37, 1, 28, 21, 34, 12, 11, 14, 15, 13, 12, 32, 20, 21, 33, 12, 12, 13, 12, 11, 11, 35, 254, 190, 3, 186, 66, 252, 70, 0, 5, 0, 51, 255, 246, 4, 193, 5, 186, 0, 76, 0, 124, 0, 148, 0, 172, 0, 176, 0, 0, 83, 21, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 35, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 51, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 1, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 23, 6, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 3, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 3, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 1, 1, 39, 1, 234, 75, 34, 55, 19, 17, 18, 15, 14, 18, 49, 32, 34, 52, 17, 14, 14, 142, 46, 38, 36, 97, 51, 58, 100, 38, 37, 42, 21, 22, 16, 46, 30, 25, 39, 16, 20, 23, 39, 35, 35, 97, 58, 54, 93, 35, 35, 40, 141, 14, 12, 16, 48, 29, 31, 47, 15, 13, 14, 19, 18, 17, 47, 31, 3, 123, 38, 33, 33, 92, 53, 54, 91, 34, 33, 37, 21, 20, 12, 35, 19, 23, 41, 15, 21, 25, 42, 36, 36, 98, 56, 55, 98, 36, 35, 41, 29, 26, 14, 36, 20, 19, 32, 13, 21, 22, 122, 19, 17, 17, 45, 27, 31, 50, 17, 13, 15, 18, 16, 16, 47, 28, 27, 46, 17, 16, 20, 19, 15, 13, 15, 39, 24, 27, 41, 14, 13, 13, 14, 13, 14, 40, 26, 23, 39, 13, 16, 16, 253, 153, 2, 2, 114, 253, 255, 4, 135, 104, 13, 13, 12, 39, 27, 21, 36, 13, 14, 16, 18, 16, 11, 32, 18, 55, 79, 25, 27, 24, 28, 26, 26, 78, 50, 36, 59, 21, 16, 26, 8, 9, 25, 15, 22, 53, 30, 49, 76, 26, 25, 26, 28, 25, 26, 74, 46, 17, 28, 11, 13, 14, 15, 14, 12, 33, 19, 23, 38, 13, 11, 13, 253, 130, 49, 74, 25, 25, 26, 26, 25, 25, 74, 49, 31, 54, 22, 14, 25, 10, 9, 27, 16, 23, 60, 36, 51, 76, 26, 26, 25, 25, 26, 26, 76, 51, 39, 65, 24, 13, 22, 8, 9, 23, 13, 22, 56, 254, 229, 24, 37, 13, 12, 14, 16, 15, 13, 35, 21, 24, 37, 12, 13, 13, 13, 13, 12, 37, 1, 28, 21, 34, 12, 11, 14, 15, 13, 12, 32, 20, 21, 33, 12, 12, 13, 12, 11, 11, 35, 254, 181, 3, 186, 66, 252, 70, 0, 0, 5, 0, 36, 255, 250, 4, 173, 5, 177, 0, 45, 0, 93, 0, 117, 0, 141, 0, 145, 0, 0, 83, 23, 54, 54, 55, 54, 54, 51, 50, 22, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 35, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 55, 33, 53, 33, 1, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 23, 6, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 3, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 3, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 1, 1, 39, 1, 55, 112, 11, 22, 14, 14, 36, 23, 65, 72, 14, 16, 15, 46, 32, 53, 67, 5, 140, 3, 45, 36, 37, 93, 51, 66, 100, 33, 33, 32, 33, 32, 31, 91, 57, 40, 67, 18, 20, 1, 58, 254, 82, 4, 56, 38, 33, 33, 92, 53, 54, 91, 34, 33, 37, 21, 20, 12, 35, 19, 23, 41, 15, 21, 25, 42, 36, 36, 98, 56, 55, 98, 36, 35, 41, 29, 26, 14, 36, 20, 19, 32, 13, 21, 22, 122, 19, 17, 17, 45, 27, 31, 50, 17, 13, 15, 18, 16, 16, 47, 28, 27, 46, 17, 16, 20, 19, 15, 13, 15, 39, 24, 27, 41, 14, 13, 13, 14, 13, 14, 40, 26, 23, 39, 13, 16, 16, 253, 150, 2, 2, 114, 253, 255, 4, 71, 28, 8, 13, 6, 5, 7, 68, 57, 28, 47, 17, 18, 19, 44, 45, 48, 76, 26, 27, 27, 39, 33, 33, 89, 48, 54, 87, 30, 30, 31, 18, 8, 153, 119, 252, 92, 49, 74, 25, 25, 26, 26, 25, 25, 74, 49, 31, 54, 22, 14, 25, 10, 9, 27, 16, 23, 60, 36, 51, 76, 26, 26, 25, 25, 26, 26, 76, 51, 39, 65, 24, 13, 22, 8, 9, 23, 13, 22, 56, 254, 229, 24, 37, 13, 12, 14, 16, 15, 13, 35, 21, 24, 37, 12, 13, 13, 13, 13, 12, 37, 1, 28, 21, 34, 12, 11, 14, 15, 13, 12, 32, 20, 21, 33, 12, 12, 13, 12, 11, 11, 35, 254, 186, 3, 186, 66, 252, 70, 0, 5, 0, 65, 255, 246, 4, 167, 5, 177, 0, 6, 0, 54, 0, 78, 0, 102, 0, 106, 0, 0, 65, 53, 33, 21, 33, 1, 51, 5, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 23, 6, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 3, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 3, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 1, 1, 39, 1, 2, 110, 253, 211, 1, 151, 254, 197, 150, 3, 99, 38, 33, 33, 92, 53, 54, 91, 34, 33, 37, 21, 20, 12, 35, 19, 23, 41, 15, 21, 25, 42, 36, 36, 98, 56, 55, 98, 36, 35, 41, 29, 26, 14, 36, 20, 19, 32, 13, 21, 22, 122, 19, 17, 17, 45, 27, 31, 50, 17, 13, 15, 18, 16, 16, 47, 28, 27, 46, 17, 16, 20, 19, 15, 13, 15, 39, 24, 27, 41, 14, 13, 13, 14, 13, 14, 40, 26, 23, 39, 13, 16, 16, 253, 103, 2, 2, 114, 253, 255, 5, 96, 81, 117, 253, 175, 226, 49, 74, 25, 25, 26, 26, 25, 25, 74, 49, 31, 54, 22, 14, 25, 10, 9, 27, 16, 23, 60, 36, 51, 76, 26, 26, 25, 25, 26, 26, 76, 51, 39, 65, 24, 13, 22, 8, 9, 23, 13, 22, 56, 254, 229, 24, 37, 13, 12, 14, 16, 15, 13, 35, 21, 24, 37, 12, 13, 13, 13, 13, 12, 37, 1, 28, 21, 34, 12, 11, 14, 15, 13, 12, 32, 20, 21, 33, 12, 12, 13, 12, 11, 11, 35, 254, 190, 3, 186, 66, 252, 70, 0, 2, 0, 126, 255, 235, 4, 70, 5, 236, 0, 44, 0, 73, 0, 0, 65, 34, 6, 7, 6, 6, 21, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 54, 54, 53, 53, 52, 2, 39, 38, 38, 35, 34, 6, 7, 23, 54, 54, 51, 50, 22, 23, 22, 22, 23, 38, 38, 7, 50, 22, 23, 22, 22, 23, 21, 20, 6, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 53, 52, 54, 55, 54, 54, 2, 80, 110, 173, 60, 60, 63, 65, 62, 62, 179, 114, 77, 131, 54, 63, 96, 26, 19, 20, 65, 67, 68, 207, 143, 117, 142, 57, 16, 71, 135, 78, 74, 130, 50, 50, 66, 11, 60, 166, 73, 74, 107, 36, 36, 40, 6, 12, 12, 18, 59, 41, 32, 79, 48, 76, 112, 36, 37, 36, 36, 37, 37, 112, 3, 254, 75, 66, 66, 180, 105, 23, 113, 193, 70, 71, 81, 45, 41, 49, 148, 91, 62, 141, 74, 59, 180, 1, 47, 110, 110, 124, 44, 25, 151, 27, 32, 71, 63, 63, 176, 105, 69, 76, 152, 45, 32, 33, 73, 28, 66, 57, 105, 47, 65, 104, 32, 25, 28, 61, 52, 51, 137, 76, 23, 68, 123, 47, 47, 55, 0, 1, 0, 167, 255, 43, 4, 37, 5, 176, 0, 7, 0, 0, 69, 17, 33, 17, 51, 17, 33, 17, 4, 37, 252, 130, 185, 2, 12, 213, 6, 133, 249, 123, 5, 237, 250, 19, 0, 1, 0, 51, 254, 243, 4, 152, 5, 176, 0, 12, 0, 0, 65, 53, 1, 33, 53, 33, 21, 1, 1, 21, 33, 53, 33, 3, 88, 253, 187, 3, 57, 251, 231, 2, 96, 253, 160, 4, 101, 252, 124, 2, 65, 25, 2, 190, 152, 144, 253, 46, 253, 52, 143, 152, 0, 1, 0, 57, 0, 0, 4, 146, 5, 176, 0, 10, 0, 0, 65, 3, 33, 21, 51, 19, 51, 1, 35, 1, 7, 2, 24, 164, 254, 197, 185, 245, 141, 2, 30, 189, 254, 114, 25, 1, 81, 1, 189, 154, 253, 140, 5, 176, 251, 161, 105, 0, 0, 3, 0, 53, 0, 224, 4, 154, 3, 221, 0, 64, 0, 102, 0, 140, 0, 0, 65, 53, 52, 38, 39, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 6, 6, 7, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 6, 6, 21, 21, 20, 22, 23, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 54, 54, 39, 21, 20, 6, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 38, 38, 39, 53, 54, 54, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 22, 22, 5, 53, 52, 54, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 22, 22, 23, 21, 6, 6, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 38, 38, 4, 154, 17, 17, 13, 35, 20, 34, 91, 56, 34, 59, 26, 34, 56, 21, 15, 25, 10, 19, 52, 34, 35, 87, 52, 49, 81, 32, 38, 53, 14, 8, 8, 12, 12, 16, 53, 34, 31, 79, 47, 52, 86, 35, 34, 52, 19, 19, 53, 35, 34, 86, 52, 48, 76, 35, 41, 51, 15, 9, 9, 124, 5, 5, 7, 28, 22, 17, 46, 30, 30, 53, 23, 23, 36, 14, 14, 17, 3, 3, 17, 14, 14, 37, 23, 22, 54, 30, 31, 49, 18, 17, 22, 6, 9, 7, 252, 147, 5, 6, 7, 26, 19, 18, 47, 31, 30, 54, 23, 22, 37, 14, 13, 17, 3, 3, 17, 13, 14, 37, 22, 23, 53, 30, 30, 46, 18, 19, 27, 8, 6, 6, 2, 74, 42, 48, 94, 41, 30, 55, 20, 34, 39, 19, 16, 21, 61, 34, 22, 46, 23, 42, 86, 35, 35, 44, 29, 26, 32, 91, 54, 30, 66, 33, 42, 41, 80, 36, 47, 80, 27, 24, 27, 44, 35, 35, 86, 42, 42, 86, 35, 35, 44, 27, 26, 31, 88, 52, 32, 70, 78, 42, 27, 52, 24, 33, 57, 18, 15, 17, 29, 23, 22, 56, 28, 27, 49, 15, 29, 15, 49, 28, 27, 56, 23, 23, 28, 20, 18, 15, 43, 23, 27, 63, 75, 42, 28, 53, 24, 30, 52, 19, 17, 19, 28, 23, 23, 56, 27, 28, 49, 15, 29, 16, 48, 27, 28, 56, 22, 23, 29, 17, 15, 17, 52, 32, 25, 56, 0, 0, 1, 0, 248, 254, 75, 3, 211, 6, 43, 0, 40, 0, 0, 69, 49, 17, 52, 54, 55, 54, 54, 51, 50, 22, 23, 55, 38, 38, 35, 34, 6, 7, 6, 6, 21, 17, 20, 6, 7, 6, 6, 35, 34, 38, 39, 7, 22, 22, 51, 50, 54, 55, 54, 54, 2, 170, 26, 25, 22, 66, 43, 29, 45, 17, 24, 37, 70, 37, 79, 126, 43, 44, 46, 26, 25, 16, 44, 26, 14, 68, 16, 14, 29, 53, 30, 73, 116, 41, 45, 47, 89, 5, 27, 51, 80, 27, 25, 26, 6, 5, 142, 9, 12, 49, 46, 46, 134, 86, 250, 229, 54, 83, 25, 16, 18, 7, 6, 147, 10, 8, 41, 40, 44, 135, 0, 0, 2, 0, 142, 0, 0, 4, 63, 5, 176, 0, 5, 0, 13, 0, 0, 65, 1, 1, 51, 1, 1, 7, 23, 1, 1, 7, 39, 1, 1, 2, 30, 254, 112, 1, 147, 141, 1, 145, 254, 108, 72, 17, 1, 12, 254, 250, 18, 16, 254, 244, 1, 6, 5, 176, 253, 39, 253, 41, 2, 215, 2, 217, 156, 51, 253, 246, 253, 247, 51, 51, 2, 9, 2, 10, 0, 0, 22, 0, 92, 0, 10, 4, 135, 4, 6, 0, 13, 0, 28, 0, 42, 0, 58, 0, 64, 0, 70, 0, 76, 0, 82, 0, 91, 0, 95, 0, 99, 0, 103, 0, 107, 0, 111, 0, 115, 0, 124, 0, 128, 0, 132, 0, 136, 0, 140, 0, 144, 0, 148, 0, 0, 65, 21, 20, 6, 35, 34, 38, 53, 53, 52, 54, 51, 50, 22, 23, 35, 17, 51, 50, 22, 21, 20, 6, 7, 22, 22, 21, 20, 6, 37, 53, 52, 38, 35, 34, 6, 21, 21, 20, 22, 51, 50, 54, 37, 53, 51, 21, 20, 6, 35, 34, 38, 53, 51, 20, 22, 51, 50, 54, 1, 51, 53, 35, 53, 35, 5, 51, 53, 35, 21, 35, 1, 51, 53, 51, 53, 35, 5, 51, 21, 51, 53, 35, 1, 35, 21, 51, 50, 54, 53, 52, 38, 3, 51, 53, 35, 23, 51, 53, 35, 5, 51, 53, 35, 19, 51, 53, 35, 23, 51, 53, 35, 5, 51, 53, 35, 19, 21, 51, 50, 54, 53, 52, 38, 35, 5, 53, 35, 21, 23, 53, 35, 21, 19, 53, 35, 21, 5, 53, 35, 21, 23, 53, 35, 21, 19, 53, 35, 21, 1, 240, 69, 57, 57, 71, 70, 57, 57, 70, 159, 122, 103, 55, 62, 23, 23, 28, 28, 57, 254, 251, 41, 35, 35, 41, 41, 36, 35, 40, 2, 14, 50, 58, 45, 48, 60, 51, 31, 26, 23, 30, 252, 145, 170, 108, 62, 3, 129, 170, 61, 109, 252, 127, 62, 108, 170, 3, 129, 109, 61, 170, 254, 178, 70, 70, 29, 27, 27, 135, 153, 153, 220, 153, 153, 254, 73, 152, 152, 219, 153, 153, 220, 153, 153, 254, 73, 152, 152, 255, 51, 33, 32, 32, 33, 254, 30, 62, 62, 62, 62, 62, 4, 43, 61, 61, 61, 61, 61, 2, 37, 62, 54, 66, 66, 54, 62, 54, 66, 66, 235, 1, 47, 40, 43, 21, 34, 9, 8, 39, 23, 43, 43, 119, 62, 38, 43, 43, 38, 62, 38, 43, 43, 15, 208, 208, 45, 50, 45, 46, 26, 24, 30, 254, 82, 63, 111, 174, 174, 111, 3, 32, 93, 64, 64, 93, 157, 253, 241, 93, 24, 21, 22, 26, 1, 207, 64, 64, 64, 64, 64, 252, 4, 63, 63, 63, 63, 63, 2, 39, 83, 22, 22, 23, 16, 165, 138, 138, 207, 137, 137, 1, 159, 137, 137, 208, 138, 138, 207, 137, 137, 1, 159, 137, 137, 0, 5, 0, 15, 253, 213, 4, 175, 8, 98, 0, 3, 0, 47, 0, 51, 0, 55, 0, 59, 0, 0, 65, 9, 2, 5, 35, 52, 54, 55, 54, 54, 55, 54, 54, 55, 54, 54, 53, 52, 38, 35, 34, 6, 7, 35, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 7, 6, 6, 7, 6, 6, 21, 21, 35, 53, 19, 21, 51, 53, 3, 21, 51, 53, 2, 98, 253, 173, 2, 83, 2, 77, 254, 26, 202, 8, 11, 10, 35, 29, 10, 27, 12, 12, 17, 32, 37, 24, 41, 2, 203, 1, 43, 37, 36, 97, 56, 64, 102, 35, 34, 37, 23, 18, 18, 45, 22, 11, 17, 6, 6, 6, 202, 94, 4, 6, 4, 6, 82, 252, 49, 252, 49, 3, 207, 251, 48, 50, 19, 19, 40, 36, 13, 39, 24, 23, 51, 26, 52, 64, 48, 55, 70, 101, 33, 32, 30, 39, 36, 37, 103, 64, 41, 64, 28, 29, 55, 31, 16, 29, 15, 16, 39, 116, 170, 170, 252, 172, 4, 4, 10, 137, 4, 4, 0, 0, 2, 1, 17, 4, 228, 3, 239, 6, 249, 0, 6, 0, 44, 0, 0, 65, 1, 35, 1, 51, 55, 23, 19, 39, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 23, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 3, 239, 254, 219, 149, 254, 220, 170, 196, 197, 64, 77, 14, 11, 12, 30, 16, 29, 48, 23, 23, 50, 31, 34, 58, 21, 22, 25, 77, 15, 12, 11, 29, 16, 30, 44, 22, 21, 50, 37, 34, 58, 22, 21, 25, 4, 228, 1, 6, 254, 250, 176, 176, 1, 254, 23, 17, 33, 13, 13, 16, 22, 13, 13, 22, 31, 25, 25, 65, 33, 19, 17, 33, 14, 13, 17, 23, 13, 14, 22, 30, 25, 24, 63, 0, 0, 2, 0, 252, 4, 228, 4, 186, 6, 207, 0, 6, 0, 34, 0, 0, 65, 1, 35, 1, 51, 55, 23, 55, 51, 55, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 7, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 7, 3, 221, 254, 237, 188, 254, 238, 170, 198, 198, 142, 114, 1, 25, 49, 19, 19, 23, 48, 44, 33, 86, 52, 6, 28, 52, 20, 19, 24, 19, 18, 15, 45, 28, 4, 228, 1, 6, 254, 250, 186, 186, 138, 60, 3, 18, 16, 15, 47, 33, 43, 67, 20, 15, 16, 92, 7, 8, 8, 25, 19, 19, 23, 7, 5, 7, 2, 0, 2, 0, 16, 4, 228, 3, 249, 6, 149, 0, 6, 0, 10, 0, 0, 65, 1, 35, 1, 51, 55, 23, 37, 3, 35, 19, 3, 249, 254, 221, 152, 254, 222, 196, 170, 170, 254, 49, 141, 200, 201, 4, 228, 1, 6, 254, 250, 158, 158, 174, 1, 3, 254, 253, 0, 0, 2, 1, 11, 4, 228, 4, 244, 6, 149, 0, 6, 0, 10, 0, 0, 65, 1, 51, 55, 23, 51, 1, 37, 3, 51, 19, 2, 47, 254, 220, 198, 170, 169, 197, 254, 221, 1, 103, 142, 141, 200, 5, 234, 254, 250, 158, 158, 1, 6, 171, 254, 253, 1, 3, 0, 0, 2, 1, 62, 4, 223, 3, 156, 6, 138, 0, 3, 0, 29, 0, 0, 65, 39, 35, 23, 5, 35, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 35, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 2, 166, 113, 153, 164, 1, 92, 153, 1, 19, 20, 18, 54, 37, 40, 57, 18, 19, 18, 152, 44, 40, 39, 112, 69, 68, 111, 40, 39, 44, 5, 196, 198, 198, 20, 25, 44, 16, 14, 17, 18, 16, 15, 43, 24, 47, 77, 27, 28, 30, 30, 28, 27, 77, 0, 1, 1, 249, 4, 142, 2, 240, 6, 59, 0, 9, 0, 0, 65, 21, 51, 53, 52, 54, 55, 39, 6, 6, 1, 249, 185, 27, 35, 107, 48, 92, 5, 15, 129, 120, 61, 106, 59, 83, 42, 171, 0, 2, 0, 54, 0, 0, 4, 142, 4, 141, 0, 7, 0, 12, 0, 0, 65, 19, 51, 1, 35, 1, 51, 19, 55, 19, 55, 23, 19, 3, 102, 109, 187, 254, 42, 165, 254, 35, 188, 110, 60, 170, 30, 31, 168, 1, 23, 254, 233, 4, 141, 251, 115, 1, 23, 151, 1, 174, 77, 79, 254, 84, 0, 3, 0, 208, 0, 0, 4, 70, 4, 141, 0, 26, 0, 41, 0, 56, 0, 0, 115, 33, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 33, 19, 33, 22, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 7, 33, 17, 17, 51, 22, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 7, 208, 1, 199, 87, 169, 61, 53, 61, 36, 30, 31, 84, 49, 40, 71, 27, 26, 32, 81, 65, 60, 158, 75, 254, 99, 187, 1, 21, 47, 86, 33, 32, 38, 43, 35, 35, 88, 44, 254, 244, 227, 43, 90, 37, 37, 46, 43, 33, 33, 82, 40, 45, 46, 42, 117, 83, 55, 91, 35, 34, 46, 12, 14, 43, 30, 29, 77, 48, 93, 121, 38, 35, 31, 253, 133, 1, 23, 23, 24, 73, 52, 51, 69, 21, 22, 19, 1, 2, 8, 1, 85, 1, 15, 19, 19, 67, 52, 47, 64, 19, 20, 17, 1, 0, 1, 0, 110, 255, 240, 4, 54, 4, 157, 0, 51, 0, 0, 65, 35, 6, 6, 7, 6, 6, 39, 34, 38, 39, 38, 38, 39, 53, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 51, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 21, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 4, 54, 185, 10, 39, 30, 36, 106, 71, 84, 117, 36, 36, 32, 1, 1, 35, 38, 38, 120, 85, 64, 97, 35, 33, 42, 10, 185, 12, 78, 60, 61, 161, 94, 119, 185, 64, 65, 68, 1, 1, 66, 63, 62, 182, 117, 94, 163, 63, 63, 82, 1, 121, 55, 85, 30, 36, 37, 1, 69, 56, 56, 142, 73, 102, 75, 143, 56, 55, 67, 34, 33, 31, 90, 58, 94, 148, 51, 51, 54, 87, 75, 75, 199, 113, 101, 111, 198, 75, 75, 88, 51, 50, 50, 146, 0, 0, 2, 0, 183, 0, 0, 4, 83, 4, 141, 0, 15, 0, 31, 0, 0, 115, 33, 54, 54, 55, 54, 54, 55, 53, 38, 38, 39, 38, 38, 39, 33, 23, 51, 22, 22, 23, 22, 22, 23, 21, 6, 6, 7, 6, 6, 7, 35, 183, 1, 95, 123, 208, 77, 76, 88, 1, 1, 85, 74, 75, 205, 121, 254, 149, 186, 177, 91, 140, 48, 47, 49, 1, 1, 53, 49, 50, 143, 92, 165, 1, 78, 72, 71, 202, 126, 63, 123, 202, 73, 72, 80, 2, 153, 1, 58, 52, 53, 145, 88, 65, 90, 147, 52, 52, 57, 1, 0, 0, 1, 0, 200, 0, 0, 4, 35, 4, 141, 0, 11, 0, 0, 65, 53, 33, 17, 33, 53, 33, 17, 33, 53, 33, 17, 3, 197, 253, 192, 2, 152, 252, 171, 3, 91, 253, 98, 2, 14, 152, 1, 78, 153, 251, 115, 151, 1, 119, 0, 0, 1, 0, 231, 0, 0, 4, 61, 4, 141, 0, 9, 0, 0, 65, 53, 33, 17, 33, 53, 33, 17, 51, 17, 3, 228, 253, 195, 2, 150, 252, 170, 192, 1, 243, 153, 1, 104, 153, 251, 115, 1, 243, 0, 0, 1, 0, 124, 255, 240, 4, 65, 4, 157, 0, 55, 0, 0, 101, 17, 33, 21, 33, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 53, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 51, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 21, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 4, 65, 254, 52, 1, 21, 1, 25, 62, 33, 34, 70, 33, 87, 126, 41, 42, 40, 1, 1, 33, 38, 37, 121, 87, 62, 98, 36, 30, 41, 11, 183, 14, 81, 61, 61, 157, 89, 122, 187, 63, 63, 66, 1, 1, 73, 67, 67, 192, 121, 60, 124, 58, 58, 103, 150, 1, 185, 144, 238, 24, 29, 8, 8, 5, 69, 56, 56, 146, 78, 86, 76, 145, 57, 57, 68, 33, 33, 27, 76, 48, 91, 139, 46, 46, 47, 87, 75, 76, 203, 116, 84, 116, 202, 75, 76, 87, 15, 19, 19, 64, 0, 0, 1, 0, 155, 0, 0, 3, 249, 4, 141, 0, 11, 0, 0, 97, 17, 35, 17, 33, 17, 35, 17, 51, 17, 33, 17, 3, 249, 178, 254, 6, 178, 178, 1, 250, 4, 141, 253, 253, 2, 3, 251, 115, 1, 242, 254, 14, 0, 0, 1, 0, 217, 0, 0, 4, 16, 4, 140, 0, 11, 0, 0, 83, 21, 33, 17, 33, 21, 33, 53, 33, 17, 33, 53, 217, 1, 59, 254, 197, 3, 55, 254, 189, 1, 67, 4, 140, 161, 252, 181, 160, 160, 3, 75, 161, 0, 0, 1, 0, 150, 255, 240, 3, 230, 4, 141, 0, 27, 0, 0, 65, 19, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 35, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 19, 3, 40, 1, 2, 35, 30, 30, 80, 47, 49, 88, 34, 34, 40, 190, 8, 73, 58, 57, 152, 87, 80, 148, 57, 56, 68, 2, 2, 4, 141, 252, 234, 57, 89, 30, 31, 33, 25, 28, 28, 89, 62, 101, 145, 46, 47, 44, 51, 50, 49, 146, 95, 3, 22, 0, 1, 0, 180, 0, 0, 4, 128, 4, 141, 0, 12, 0, 0, 65, 1, 51, 1, 1, 35, 1, 7, 17, 35, 17, 51, 17, 2, 0, 1, 159, 225, 254, 0, 1, 222, 227, 254, 116, 130, 185, 185, 2, 7, 253, 249, 2, 134, 2, 7, 254, 101, 143, 2, 42, 251, 115, 1, 121, 0, 0, 1, 0, 209, 0, 0, 4, 82, 4, 141, 0, 5, 0, 0, 101, 17, 35, 17, 33, 53, 1, 149, 196, 3, 129, 151, 3, 246, 251, 115, 151, 0, 0, 1, 0, 155, 0, 0, 4, 58, 4, 141, 0, 12, 0, 0, 65, 3, 35, 17, 51, 17, 19, 51, 19, 17, 51, 17, 35, 2, 109, 218, 248, 176, 226, 131, 218, 176, 241, 2, 88, 2, 53, 251, 115, 3, 177, 253, 141, 2, 129, 252, 65, 4, 141, 0, 0, 1, 0, 194, 0, 0, 4, 15, 4, 141, 0, 9, 0, 0, 97, 17, 35, 19, 1, 35, 17, 51, 3, 1, 4, 15, 176, 6, 254, 11, 174, 177, 5, 1, 245, 4, 141, 252, 147, 3, 109, 251, 115, 3, 108, 252, 148, 0, 0, 2, 0, 130, 255, 240, 4, 74, 4, 157, 0, 25, 0, 51, 0, 0, 65, 53, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 21, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 39, 21, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 53, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 4, 74, 1, 61, 60, 61, 181, 120, 119, 180, 61, 61, 62, 1, 1, 63, 61, 61, 180, 119, 120, 180, 61, 60, 61, 182, 1, 30, 34, 35, 115, 85, 84, 114, 35, 36, 32, 1, 1, 31, 36, 35, 114, 84, 84, 115, 35, 35, 31, 2, 36, 67, 110, 205, 79, 78, 94, 95, 79, 79, 204, 109, 67, 109, 204, 78, 79, 94, 94, 78, 78, 204, 179, 69, 71, 146, 59, 59, 75, 75, 60, 59, 145, 71, 69, 70, 145, 59, 59, 75, 74, 58, 59, 146, 0, 2, 0, 94, 255, 54, 4, 103, 4, 157, 0, 31, 0, 57, 0, 0, 65, 53, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 21, 22, 22, 23, 22, 22, 51, 50, 54, 55, 5, 55, 39, 54, 54, 55, 54, 54, 39, 21, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 53, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 4, 101, 1, 70, 66, 66, 191, 122, 122, 190, 66, 66, 70, 1, 1, 71, 66, 66, 191, 122, 32, 63, 30, 1, 10, 125, 223, 53, 82, 28, 28, 29, 183, 1, 37, 40, 40, 124, 88, 87, 125, 40, 41, 39, 1, 1, 39, 40, 40, 124, 87, 88, 125, 40, 40, 38, 2, 36, 67, 116, 206, 77, 77, 90, 91, 77, 78, 205, 115, 67, 115, 205, 77, 77, 90, 7, 7, 200, 111, 163, 38, 102, 62, 61, 139, 143, 69, 78, 148, 57, 57, 70, 70, 58, 58, 147, 77, 69, 76, 147, 58, 57, 70, 69, 57, 57, 147, 0, 0, 2, 0, 144, 0, 0, 4, 44, 4, 141, 0, 20, 0, 35, 0, 0, 65, 1, 51, 53, 1, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 33, 17, 51, 17, 53, 17, 51, 22, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 7, 2, 97, 1, 4, 199, 254, 222, 50, 87, 32, 32, 36, 75, 62, 63, 161, 84, 254, 86, 185, 241, 50, 94, 36, 36, 43, 45, 35, 36, 91, 47, 1, 193, 254, 63, 10, 1, 230, 22, 57, 38, 37, 96, 63, 95, 134, 43, 43, 40, 1, 251, 115, 1, 193, 151, 1, 156, 1, 24, 25, 25, 79, 56, 53, 75, 24, 25, 24, 1, 0, 0, 1, 0, 138, 255, 240, 4, 57, 4, 157, 0, 76, 0, 0, 65, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 35, 22, 22, 23, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 38, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 51, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 23, 22, 22, 23, 22, 22, 3, 127, 1, 53, 39, 40, 93, 40, 54, 106, 43, 43, 55, 2, 188, 3, 31, 25, 21, 54, 31, 69, 171, 86, 76, 165, 70, 59, 82, 76, 60, 60, 146, 70, 48, 138, 49, 30, 39, 50, 38, 38, 90, 40, 50, 96, 38, 38, 47, 2, 187, 6, 81, 63, 63, 159, 84, 69, 151, 60, 72, 91, 83, 65, 64, 153, 69, 49, 131, 40, 33, 29, 1, 42, 50, 64, 18, 19, 14, 21, 26, 25, 83, 61, 52, 89, 37, 30, 50, 20, 45, 42, 37, 39, 36, 119, 85, 85, 121, 43, 42, 55, 18, 11, 41, 30, 18, 57, 40, 49, 65, 20, 19, 16, 22, 25, 25, 78, 55, 90, 134, 45, 44, 43, 34, 33, 39, 126, 89, 86, 120, 41, 41, 51, 17, 13, 38, 32, 27, 55, 0, 0, 1, 0, 93, 0, 0, 4, 105, 4, 141, 0, 7, 0, 0, 65, 53, 33, 21, 33, 17, 51, 17, 4, 105, 251, 244, 1, 167, 188, 3, 244, 153, 153, 252, 12, 3, 244, 0, 0, 1, 0, 181, 255, 240, 4, 43, 4, 141, 0, 29, 0, 0, 65, 35, 3, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 3, 35, 3, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 4, 42, 183, 1, 1, 37, 33, 34, 95, 59, 59, 95, 33, 34, 37, 1, 1, 181, 1, 1, 70, 60, 59, 160, 92, 91, 160, 60, 60, 71, 2, 4, 141, 252, 244, 59, 93, 32, 32, 34, 34, 32, 32, 93, 59, 3, 12, 252, 244, 96, 149, 51, 51, 54, 54, 52, 52, 148, 95, 0, 0, 1, 0, 86, 0, 0, 4, 131, 4, 141, 0, 8, 0, 0, 65, 1, 35, 1, 51, 1, 35, 1, 7, 2, 80, 254, 206, 200, 1, 191, 174, 1, 192, 201, 254, 207, 29, 1, 54, 3, 87, 251, 115, 4, 141, 252, 168, 106, 0, 1, 0, 47, 0, 0, 4, 187, 4, 141, 0, 18, 0, 0, 97, 51, 19, 55, 23, 19, 51, 19, 35, 3, 7, 39, 3, 35, 3, 7, 39, 3, 35, 1, 23, 159, 179, 14, 13, 175, 159, 233, 172, 140, 11, 13, 167, 154, 171, 13, 11, 141, 171, 3, 3, 59, 59, 252, 253, 4, 141, 253, 3, 61, 61, 2, 253, 253, 2, 60, 61, 2, 253, 0, 0, 1, 0, 96, 0, 0, 4, 102, 4, 141, 0, 11, 0, 0, 65, 1, 35, 1, 1, 51, 1, 1, 51, 1, 1, 35, 2, 95, 254, 229, 219, 1, 139, 254, 108, 220, 1, 38, 1, 40, 220, 254, 105, 1, 136, 219, 2, 218, 1, 179, 253, 190, 253, 181, 1, 187, 254, 69, 2, 75, 2, 66, 0, 1, 0, 77, 0, 0, 4, 129, 4, 141, 0, 10, 0, 0, 97, 51, 17, 1, 35, 1, 7, 39, 1, 35, 1, 2, 6, 187, 1, 192, 212, 254, 190, 5, 5, 254, 192, 212, 1, 185, 1, 149, 2, 248, 253, 192, 9, 9, 2, 64, 253, 20, 0, 1, 0, 185, 0, 0, 4, 66, 4, 141, 0, 9, 0, 0, 101, 1, 39, 33, 21, 33, 1, 21, 33, 53, 1, 159, 2, 139, 1, 252, 153, 2, 130, 253, 117, 3, 137, 151, 3, 125, 121, 153, 252, 136, 124, 151, 0, 2, 1, 82, 4, 224, 3, 154, 7, 3, 0, 25, 0, 53, 0, 0, 65, 35, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 35, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 37, 51, 39, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 7, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 7, 3, 154, 146, 17, 16, 18, 56, 38, 38, 55, 18, 18, 18, 1, 145, 42, 39, 38, 108, 66, 66, 108, 38, 37, 42, 254, 156, 127, 3, 27, 54, 21, 21, 26, 49, 47, 37, 99, 61, 7, 32, 58, 22, 22, 27, 18, 18, 18, 52, 34, 5, 176, 23, 41, 15, 17, 19, 18, 15, 15, 43, 24, 47, 76, 27, 28, 30, 30, 28, 27, 76, 64, 62, 3, 16, 14, 13, 41, 29, 38, 59, 18, 14, 15, 82, 6, 6, 7, 23, 17, 16, 20, 6, 6, 7, 2, 0, 2, 1, 66, 4, 223, 3, 160, 6, 138, 0, 25, 0, 29, 0, 0, 65, 35, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 35, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 3, 7, 51, 55, 3, 160, 153, 1, 19, 20, 18, 54, 37, 40, 57, 18, 19, 18, 152, 44, 40, 39, 112, 69, 68, 111, 40, 39, 44, 248, 113, 102, 164, 5, 176, 25, 44, 16, 14, 17, 18, 16, 15, 43, 24, 47, 77, 27, 28, 30, 30, 28, 27, 77, 1, 9, 198, 198, 0, 1, 1, 53, 2, 139, 3, 178, 3, 34, 0, 3, 0, 0, 65, 53, 33, 21, 3, 178, 253, 131, 2, 139, 151, 151, 0, 3, 1, 209, 4, 64, 3, 168, 6, 114, 0, 3, 0, 27, 0, 39, 0, 0, 65, 7, 51, 55, 1, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 23, 54, 54, 51, 50, 22, 21, 6, 6, 35, 34, 38, 2, 226, 146, 124, 220, 254, 41, 28, 24, 23, 62, 35, 34, 62, 23, 22, 27, 27, 22, 23, 62, 34, 35, 62, 23, 24, 28, 85, 1, 50, 36, 35, 49, 1, 48, 35, 36, 50, 6, 114, 184, 184, 254, 113, 36, 60, 21, 22, 24, 24, 22, 21, 60, 36, 36, 62, 22, 22, 25, 25, 22, 22, 62, 36, 38, 50, 50, 38, 35, 50, 50, 0, 0, 2, 1, 245, 4, 130, 3, 183, 5, 196, 0, 5, 0, 21, 0, 0, 65, 21, 51, 19, 53, 35, 5, 21, 51, 53, 54, 54, 55, 54, 54, 55, 39, 6, 6, 7, 6, 6, 2, 175, 80, 184, 168, 254, 230, 123, 1, 7, 6, 6, 21, 13, 72, 24, 37, 13, 11, 16, 4, 158, 26, 1, 43, 21, 182, 140, 134, 24, 45, 22, 25, 47, 22, 3, 16, 42, 25, 22, 50, 0, 0, 2, 1, 116, 4, 217, 3, 194, 6, 208, 0, 25, 0, 51, 0, 0, 65, 35, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 35, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 3, 39, 20, 6, 35, 34, 38, 39, 38, 38, 35, 34, 6, 21, 23, 54, 54, 51, 50, 22, 23, 22, 22, 51, 50, 54, 3, 194, 149, 17, 18, 18, 55, 38, 39, 55, 18, 17, 17, 149, 42, 39, 38, 109, 67, 67, 109, 39, 38, 42, 9, 83, 48, 34, 32, 52, 25, 26, 53, 33, 72, 94, 84, 1, 46, 35, 33, 47, 24, 23, 54, 40, 71, 94, 5, 174, 24, 43, 16, 16, 19, 19, 16, 16, 43, 24, 47, 79, 28, 28, 31, 31, 28, 28, 79, 1, 57, 24, 38, 51, 23, 15, 14, 23, 111, 71, 21, 38, 51, 23, 14, 15, 23, 106, 0, 1, 2, 6, 254, 153, 2, 191, 0, 154, 0, 3, 0, 0, 65, 17, 35, 17, 2, 191, 185, 254, 153, 2, 1, 253, 255, 0, 0, 1, 1, 96, 254, 75, 3, 18, 0, 151, 0, 21, 0, 0, 101, 35, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 7, 22, 22, 51, 50, 54, 55, 54, 54, 53, 3, 18, 185, 17, 16, 18, 52, 34, 14, 66, 18, 14, 29, 53, 30, 85, 129, 40, 33, 35, 151, 240, 44, 68, 24, 24, 26, 7, 6, 157, 10, 8, 56, 53, 43, 121, 75, 0, 0, 2, 0, 204, 0, 0, 4, 75, 4, 141, 0, 16, 0, 31, 0, 0, 65, 33, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 33, 17, 51, 17, 17, 33, 22, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 7, 1, 132, 1, 18, 84, 158, 61, 60, 74, 74, 61, 61, 157, 84, 254, 54, 184, 1, 18, 49, 92, 35, 34, 42, 42, 34, 35, 92, 49, 1, 182, 1, 42, 44, 43, 135, 95, 92, 137, 46, 45, 46, 1, 251, 115, 2, 78, 1, 166, 1, 28, 26, 27, 80, 54, 55, 77, 25, 25, 23, 1, 0, 0, 1, 0, 169, 0, 0, 4, 182, 5, 176, 0, 12, 0, 0, 65, 1, 51, 1, 1, 35, 1, 35, 17, 35, 17, 51, 17, 2, 13, 1, 198, 227, 253, 232, 1, 239, 212, 254, 69, 156, 185, 185, 2, 147, 253, 109, 2, 239, 2, 193, 253, 122, 2, 134, 250, 80, 2, 147, 0, 1, 0, 210, 255, 236, 4, 65, 4, 157, 0, 62, 0, 0, 101, 7, 22, 22, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 35, 1, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 17, 51, 17, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 3, 21, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 34, 38, 2, 11, 53, 55, 111, 57, 87, 145, 53, 52, 59, 49, 45, 46, 129, 81, 1, 1, 18, 39, 87, 49, 50, 112, 65, 99, 149, 49, 52, 51, 184, 21, 25, 24, 83, 63, 36, 57, 23, 18, 29, 13, 237, 84, 76, 109, 34, 26, 26, 29, 27, 27, 78, 50, 54, 84, 181, 152, 26, 23, 50, 48, 48, 140, 90, 70, 109, 40, 39, 47, 7, 1, 74, 38, 67, 25, 24, 29, 51, 50, 53, 164, 110, 253, 15, 2, 241, 56, 101, 38, 37, 44, 14, 10, 8, 20, 10, 254, 217, 137, 26, 28, 21, 65, 43, 49, 81, 29, 30, 33, 31, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 1, 0, 0, 255, 255, 0, 218, 2, 49, 3, 215, 2, 201, 6, 6, 0, 103, 0, 0, 255, 255, 0, 107, 255, 236, 4, 93, 7, 46, 6, 38, 0, 4, 0, 0, 0, 7, 1, 96, 0, 52, 1, 112, 255, 255, 0, 143, 255, 236, 4, 51, 5, 215, 6, 38, 0, 30, 0, 0, 0, 6, 1, 96, 29, 25, 255, 255, 0, 100, 255, 235, 4, 92, 7, 46, 6, 38, 0, 8, 0, 0, 0, 7, 1, 96, 0, 25, 1, 112, 255, 255, 0, 140, 254, 86, 4, 29, 5, 215, 6, 38, 0, 34, 0, 0, 0, 6, 1, 96, 246, 25, 255, 255, 255, 186, 0, 0, 4, 41, 6, 22, 6, 38, 0, 41, 0, 0, 0, 7, 0, 109, 253, 237, 0, 0, 255, 255, 0, 118, 254, 36, 4, 105, 5, 196, 6, 38, 0, 20, 0, 0, 0, 7, 1, 104, 0, 181, 254, 206, 255, 255, 0, 175, 254, 37, 4, 54, 4, 78, 6, 38, 0, 46, 0, 0, 0, 7, 1, 104, 0, 168, 254, 207, 255, 255, 0, 76, 254, 46, 4, 132, 5, 176, 6, 38, 0, 21, 0, 0, 0, 7, 1, 104, 0, 163, 254, 216, 255, 255, 0, 142, 254, 46, 4, 41, 5, 64, 6, 38, 0, 47, 0, 0, 0, 7, 1, 104, 1, 5, 254, 216, 255, 255, 0, 76, 254, 77, 4, 132, 5, 176, 6, 38, 0, 21, 0, 0, 0, 6, 1, 102, 63, 0, 255, 255, 0, 93, 254, 79, 4, 105, 4, 141, 6, 38, 2, 97, 0, 0, 0, 6, 1, 102, 48, 2, 255, 255, 0, 142, 254, 77, 4, 41, 5, 64, 6, 38, 0, 47, 0, 0, 0, 7, 1, 102, 0, 161, 0, 0, 255, 255, 255, 231, 0, 0, 4, 83, 4, 141, 6, 38, 2, 82, 0, 0, 0, 7, 2, 106, 254, 178, 255, 120, 255, 255, 255, 231, 0, 0, 4, 83, 4, 141, 6, 38, 2, 82, 0, 0, 0, 7, 2, 106, 254, 178, 255, 120, 255, 255, 0, 93, 0, 0, 4, 105, 4, 141, 6, 38, 2, 97, 0, 0, 0, 6, 2, 106, 243, 224, 255, 255, 0, 54, 0, 0, 4, 142, 5, 255, 6, 38, 2, 79, 0, 0, 0, 6, 1, 90, 139, 54, 255, 255, 0, 54, 0, 0, 4, 142, 5, 252, 6, 38, 2, 79, 0, 0, 0, 6, 1, 91, 119, 51, 255, 255, 0, 54, 0, 0, 4, 142, 6, 36, 6, 38, 2, 79, 0, 0, 0, 6, 1, 92, 121, 55, 255, 255, 0, 54, 0, 0, 4, 142, 6, 46, 6, 38, 2, 79, 0, 0, 0, 7, 1, 93, 0, 133, 0, 61, 255, 255, 0, 54, 0, 0, 4, 142, 5, 252, 6, 38, 2, 79, 0, 0, 0, 6, 1, 97, 1, 55, 255, 255, 0, 54, 0, 0, 4, 142, 6, 103, 6, 38, 2, 79, 0, 0, 0, 7, 1, 98, 0, 0, 0, 128, 255, 255, 0, 54, 0, 0, 4, 142, 6, 244, 6, 38, 2, 79, 0, 0, 0, 7, 2, 107, 255, 238, 0, 130, 255, 255, 0, 110, 254, 74, 4, 54, 4, 157, 6, 38, 2, 81, 0, 0, 0, 6, 1, 102, 42, 253, 255, 255, 0, 200, 0, 0, 4, 35, 5, 255, 6, 38, 2, 83, 0, 0, 0, 7, 1, 90, 255, 109, 0, 54, 255, 255, 0, 200, 0, 0, 4, 35, 5, 252, 6, 38, 2, 83, 0, 0, 0, 6, 1, 91, 89, 51, 255, 255, 0, 200, 0, 0, 4, 35, 6, 36, 6, 38, 2, 83, 0, 0, 0, 6, 1, 92, 91, 55, 255, 255, 0, 200, 0, 0, 4, 35, 5, 252, 6, 38, 2, 83, 0, 0, 0, 6, 1, 97, 228, 55, 255, 255, 0, 217, 0, 0, 4, 16, 5, 227, 6, 38, 2, 87, 0, 0, 0, 6, 1, 90, 166, 26, 255, 255, 0, 217, 0, 0, 4, 16, 5, 224, 6, 38, 2, 87, 0, 0, 0, 7, 1, 91, 0, 146, 0, 23, 255, 255, 0, 217, 0, 0, 4, 16, 6, 8, 6, 38, 2, 87, 0, 0, 0, 7, 1, 92, 0, 148, 0, 27, 255, 255, 0, 217, 0, 0, 4, 16, 5, 224, 6, 38, 2, 87, 0, 0, 0, 6, 1, 97, 28, 27, 255, 255, 0, 194, 0, 0, 4, 22, 6, 46, 6, 38, 2, 92, 0, 0, 0, 7, 1, 93, 0, 220, 0, 61, 255, 255, 0, 130, 255, 240, 4, 74, 5, 255, 6, 38, 2, 93, 0, 0, 0, 6, 1, 90, 173, 54, 255, 255, 0, 130, 255, 240, 4, 74, 5, 252, 6, 38, 2, 93, 0, 0, 0, 7, 1, 91, 0, 153, 0, 51, 255, 255, 0, 130, 255, 240, 4, 74, 6, 36, 6, 38, 2, 93, 0, 0, 0, 7, 1, 92, 0, 155, 0, 55, 255, 255, 0, 130, 255, 240, 4, 74, 6, 46, 6, 38, 2, 93, 0, 0, 0, 7, 1, 93, 0, 167, 0, 61, 255, 255, 0, 130, 255, 240, 4, 74, 5, 252, 6, 38, 2, 93, 0, 0, 0, 6, 1, 97, 35, 55, 255, 255, 0, 181, 255, 240, 4, 43, 5, 255, 6, 38, 2, 98, 0, 0, 0, 6, 1, 90, 169, 54, 255, 255, 0, 181, 255, 240, 4, 43, 5, 252, 6, 38, 2, 98, 0, 0, 0, 7, 1, 91, 0, 149, 0, 51, 255, 255, 0, 181, 255, 240, 4, 43, 6, 36, 6, 38, 2, 98, 0, 0, 0, 7, 1, 92, 0, 151, 0, 55, 255, 255, 0, 181, 255, 240, 4, 43, 5, 252, 6, 38, 2, 98, 0, 0, 0, 6, 1, 97, 31, 55, 255, 255, 0, 77, 0, 0, 4, 129, 5, 252, 6, 38, 2, 102, 0, 0, 0, 6, 1, 91, 98, 51, 255, 255, 0, 54, 0, 0, 4, 142, 5, 214, 6, 38, 2, 79, 0, 0, 0, 6, 1, 94, 5, 38, 255, 255, 0, 54, 0, 0, 4, 142, 6, 38, 6, 38, 2, 79, 0, 0, 0, 6, 1, 95, 1, 116, 0, 2, 0, 54, 254, 79, 4, 145, 4, 141, 0, 35, 0, 40, 0, 0, 65, 35, 1, 51, 19, 33, 19, 6, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 39, 6, 6, 39, 34, 38, 53, 52, 54, 55, 54, 54, 55, 51, 1, 19, 55, 23, 19, 2, 184, 165, 254, 35, 188, 110, 2, 6, 103, 30, 51, 21, 35, 38, 30, 26, 26, 70, 41, 65, 85, 28, 31, 16, 53, 32, 42, 36, 28, 26, 22, 60, 36, 35, 253, 14, 176, 24, 24, 175, 4, 141, 251, 115, 1, 23, 254, 248, 20, 44, 23, 40, 87, 44, 47, 71, 24, 24, 24, 28, 16, 121, 8, 19, 1, 41, 34, 36, 65, 29, 25, 45, 19, 1, 174, 1, 191, 60, 61, 254, 66, 0, 255, 255, 0, 110, 255, 240, 4, 54, 5, 252, 6, 38, 2, 81, 0, 0, 0, 6, 1, 91, 104, 51, 255, 255, 0, 110, 255, 240, 4, 54, 6, 36, 6, 38, 2, 81, 0, 0, 0, 6, 1, 92, 106, 55, 255, 255, 0, 110, 255, 240, 4, 54, 6, 37, 6, 38, 2, 81, 0, 0, 0, 6, 1, 100, 244, 56, 255, 255, 0, 183, 0, 0, 4, 83, 6, 37, 6, 38, 2, 82, 0, 0, 0, 6, 1, 100, 187, 56, 255, 255, 0, 200, 0, 0, 4, 35, 5, 214, 6, 38, 2, 83, 0, 0, 0, 6, 1, 94, 232, 38, 255, 255, 0, 200, 0, 0, 4, 35, 6, 38, 6, 38, 2, 83, 0, 0, 0, 6, 1, 95, 228, 116, 255, 255, 0, 200, 0, 0, 4, 35, 5, 245, 6, 38, 2, 83, 0, 0, 0, 6, 1, 96, 228, 55, 0, 1, 0, 200, 254, 79, 4, 35, 4, 141, 0, 40, 0, 0, 65, 53, 33, 17, 33, 53, 33, 17, 33, 6, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 39, 6, 6, 39, 34, 38, 53, 52, 54, 55, 54, 54, 55, 51, 53, 33, 17, 3, 197, 253, 192, 2, 152, 252, 171, 2, 31, 24, 40, 17, 34, 37, 30, 26, 26, 70, 41, 65, 85, 28, 31, 16, 53, 32, 42, 36, 29, 26, 22, 59, 36, 135, 253, 98, 2, 14, 152, 1, 78, 153, 251, 115, 17, 38, 19, 40, 87, 42, 47, 71, 24, 24, 24, 28, 16, 121, 8, 19, 1, 41, 34, 36, 66, 29, 25, 44, 19, 151, 1, 119, 255, 255, 0, 200, 0, 0, 4, 35, 6, 37, 6, 38, 2, 83, 0, 0, 0, 6, 1, 100, 229, 56, 255, 255, 0, 124, 255, 240, 4, 65, 6, 36, 6, 38, 2, 85, 0, 0, 0, 6, 1, 92, 116, 55, 255, 255, 0, 124, 255, 240, 4, 65, 6, 38, 6, 38, 2, 85, 0, 0, 0, 6, 1, 95, 253, 116, 255, 255, 0, 124, 254, 43, 4, 65, 4, 157, 6, 38, 2, 85, 0, 0, 0, 7, 1, 104, 0, 157, 254, 213, 255, 255, 0, 155, 0, 0, 3, 249, 6, 36, 6, 38, 2, 86, 0, 0, 0, 7, 1, 92, 0, 158, 0, 55, 255, 255, 0, 217, 0, 0, 4, 16, 6, 18, 6, 38, 2, 87, 0, 0, 0, 7, 1, 93, 0, 160, 0, 33, 255, 255, 0, 217, 0, 0, 4, 16, 5, 186, 6, 38, 2, 87, 0, 0, 0, 6, 1, 94, 32, 10, 255, 255, 0, 217, 0, 0, 4, 16, 6, 10, 6, 38, 2, 87, 0, 0, 0, 6, 1, 95, 28, 88, 0, 1, 0, 217, 254, 79, 4, 16, 4, 140, 0, 40, 0, 0, 83, 21, 33, 17, 33, 21, 33, 6, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 39, 6, 6, 39, 34, 38, 53, 52, 54, 55, 54, 54, 55, 33, 53, 33, 17, 33, 53, 217, 1, 59, 254, 197, 1, 108, 29, 48, 19, 27, 29, 30, 26, 26, 70, 41, 65, 85, 28, 31, 16, 53, 32, 42, 36, 31, 28, 21, 58, 34, 1, 22, 254, 189, 1, 67, 4, 140, 161, 252, 181, 160, 21, 47, 25, 36, 76, 38, 47, 71, 24, 24, 24, 28, 16, 121, 8, 19, 1, 41, 34, 37, 68, 30, 23, 43, 18, 160, 3, 75, 161, 0, 255, 255, 0, 217, 0, 0, 4, 16, 5, 217, 6, 38, 2, 87, 0, 0, 0, 6, 1, 96, 28, 27, 255, 255, 0, 150, 255, 240, 4, 119, 6, 36, 6, 38, 2, 88, 0, 0, 0, 7, 1, 92, 1, 89, 0, 55, 255, 255, 0, 180, 254, 52, 4, 128, 4, 141, 6, 38, 2, 89, 0, 0, 0, 7, 1, 104, 0, 107, 254, 222, 255, 255, 0, 182, 0, 0, 4, 82, 5, 252, 6, 38, 2, 90, 0, 0, 0, 7, 1, 91, 255, 28, 0, 51, 255, 255, 0, 209, 254, 54, 4, 82, 4, 141, 6, 38, 2, 90, 0, 0, 0, 7, 1, 104, 0, 104, 254, 224, 255, 255, 0, 209, 0, 0, 4, 82, 4, 141, 6, 38, 2, 90, 0, 0, 0, 7, 0, 109, 0, 148, 254, 119, 255, 255, 0, 209, 0, 0, 4, 82, 4, 141, 6, 38, 2, 90, 0, 0, 0, 7, 1, 96, 0, 25, 253, 55, 255, 255, 0, 194, 0, 0, 4, 15, 5, 252, 6, 38, 2, 92, 0, 0, 0, 7, 1, 91, 0, 206, 0, 51, 255, 255, 0, 194, 254, 50, 4, 15, 4, 141, 6, 38, 2, 92, 0, 0, 0, 7, 1, 104, 0, 239, 254, 220, 255, 255, 0, 194, 0, 0, 4, 15, 6, 37, 6, 38, 2, 92, 0, 0, 0, 6, 1, 100, 89, 56, 255, 255, 0, 130, 255, 240, 4, 74, 5, 214, 6, 38, 2, 93, 0, 0, 0, 6, 1, 94, 39, 38, 255, 255, 0, 130, 255, 240, 4, 74, 6, 38, 6, 38, 2, 93, 0, 0, 0, 6, 1, 95, 35, 116, 255, 255, 0, 130, 255, 240, 4, 127, 6, 38, 6, 38, 2, 93, 0, 0, 0, 7, 1, 99, 0, 169, 0, 55, 255, 255, 0, 144, 0, 0, 4, 44, 5, 252, 6, 38, 2, 95, 0, 0, 0, 6, 1, 91, 30, 51, 255, 255, 0, 144, 254, 54, 4, 44, 4, 141, 6, 38, 2, 95, 0, 0, 0, 7, 1, 104, 0, 69, 254, 224, 255, 255, 0, 144, 0, 0, 4, 44, 6, 37, 6, 38, 2, 95, 0, 0, 0, 6, 1, 100, 170, 56, 255, 255, 0, 138, 255, 240, 4, 57, 5, 252, 6, 38, 2, 96, 0, 0, 0, 6, 1, 91, 113, 51, 255, 255, 0, 138, 255, 240, 4, 57, 6, 36, 6, 38, 2, 96, 0, 0, 0, 6, 1, 92, 115, 55, 255, 255, 0, 138, 254, 77, 4, 57, 4, 157, 6, 38, 2, 96, 0, 0, 0, 6, 1, 102, 61, 0, 255, 255, 0, 138, 255, 240, 4, 57, 6, 37, 6, 38, 2, 96, 0, 0, 0, 6, 1, 100, 253, 56, 255, 255, 0, 93, 0, 0, 4, 105, 6, 37, 6, 38, 2, 97, 0, 0, 0, 6, 1, 100, 249, 56, 255, 255, 0, 181, 255, 240, 4, 43, 6, 46, 6, 38, 2, 98, 0, 0, 0, 7, 1, 93, 0, 163, 0, 61, 255, 255, 0, 181, 255, 240, 4, 43, 5, 214, 6, 38, 2, 98, 0, 0, 0, 6, 1, 94, 35, 38, 255, 255, 0, 181, 255, 240, 4, 43, 6, 38, 6, 38, 2, 98, 0, 0, 0, 6, 1, 95, 31, 116, 255, 255, 0, 181, 255, 240, 4, 43, 6, 103, 6, 38, 2, 98, 0, 0, 0, 7, 1, 98, 0, 30, 0, 128, 255, 255, 0, 181, 255, 240, 4, 123, 6, 38, 6, 38, 2, 98, 0, 0, 0, 7, 1, 99, 0, 165, 0, 55, 0, 1, 0, 181, 254, 140, 4, 43, 4, 141, 0, 57, 0, 0, 65, 35, 3, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 3, 35, 3, 22, 22, 23, 22, 22, 51, 50, 50, 51, 6, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 39, 6, 6, 39, 34, 38, 53, 52, 54, 55, 54, 54, 55, 54, 54, 53, 4, 42, 183, 1, 1, 37, 33, 34, 95, 59, 59, 95, 33, 34, 37, 1, 1, 181, 1, 1, 70, 60, 59, 160, 92, 1, 2, 1, 11, 19, 8, 15, 16, 30, 26, 26, 70, 41, 65, 85, 28, 31, 16, 53, 32, 42, 36, 12, 12, 15, 48, 32, 102, 127, 4, 141, 252, 244, 59, 93, 32, 32, 34, 34, 32, 32, 93, 59, 3, 12, 252, 244, 96, 149, 51, 51, 54, 14, 27, 14, 27, 56, 28, 47, 71, 24, 24, 24, 28, 16, 121, 8, 19, 1, 41, 34, 24, 44, 21, 27, 49, 21, 43, 193, 121, 0, 255, 255, 0, 47, 0, 0, 4, 187, 6, 36, 6, 38, 2, 100, 0, 0, 0, 7, 1, 92, 0, 138, 0, 55, 255, 255, 0, 77, 0, 0, 4, 129, 6, 36, 6, 38, 2, 102, 0, 0, 0, 6, 1, 92, 100, 55, 255, 255, 0, 77, 0, 0, 4, 129, 5, 252, 6, 38, 2, 102, 0, 0, 0, 6, 1, 97, 237, 55, 255, 255, 0, 185, 0, 0, 4, 66, 5, 252, 6, 38, 2, 103, 0, 0, 0, 7, 1, 91, 0, 160, 0, 51, 255, 255, 0, 185, 0, 0, 4, 66, 5, 245, 6, 38, 2, 103, 0, 0, 0, 6, 1, 96, 42, 55, 255, 255, 0, 185, 0, 0, 4, 66, 6, 37, 6, 38, 2, 103, 0, 0, 0, 6, 1, 100, 43, 56, 255, 255, 0, 81, 0, 0, 4, 144, 6, 122, 6, 38, 0, 2, 0, 0, 0, 7, 1, 120, 254, 192, 0, 0, 255, 255, 255, 221, 0, 0, 4, 102, 6, 122, 4, 38, 0, 6, 50, 0, 0, 7, 1, 120, 253, 180, 0, 0, 255, 255, 255, 203, 0, 0, 4, 113, 6, 124, 4, 38, 0, 9, 50, 0, 0, 7, 1, 120, 253, 162, 0, 2, 255, 255, 255, 186, 0, 0, 4, 80, 6, 123, 4, 38, 0, 10, 50, 0, 0, 7, 1, 120, 253, 145, 0, 1, 255, 255, 255, 255, 255, 236, 4, 107, 6, 122, 4, 38, 0, 16, 10, 0, 0, 7, 1, 120, 253, 214, 0, 0, 255, 255, 255, 128, 0, 0, 4, 171, 6, 122, 4, 38, 0, 26, 50, 0, 0, 7, 1, 120, 253, 87, 0, 0, 255, 255, 255, 251, 0, 0, 4, 118, 6, 122, 4, 38, 1, 132, 10, 0, 0, 7, 1, 120, 253, 210, 0, 0, 255, 255, 0, 184, 255, 236, 4, 58, 6, 122, 6, 38, 1, 141, 0, 0, 0, 6, 1, 121, 228, 187, 255, 255, 0, 81, 0, 0, 4, 144, 5, 176, 6, 6, 0, 2, 0, 0, 255, 255, 0, 172, 0, 0, 4, 96, 5, 176, 6, 6, 0, 3, 0, 0, 255, 255, 0, 182, 0, 0, 4, 52, 5, 176, 6, 6, 0, 6, 0, 0, 255, 255, 0, 114, 0, 0, 4, 55, 5, 176, 6, 6, 0, 27, 0, 0, 255, 255, 0, 141, 0, 0, 4, 63, 5, 176, 6, 6, 0, 9, 0, 0, 255, 255, 0, 174, 0, 0, 4, 30, 5, 176, 6, 6, 0, 10, 0, 0, 255, 255, 0, 172, 0, 0, 4, 164, 5, 176, 6, 6, 0, 12, 0, 0, 255, 255, 0, 148, 0, 0, 4, 76, 5, 176, 6, 6, 0, 14, 0, 0, 255, 255, 0, 143, 0, 0, 4, 62, 5, 176, 6, 6, 0, 15, 0, 0, 255, 255, 0, 106, 255, 236, 4, 97, 5, 196, 6, 6, 0, 16, 0, 0, 255, 255, 0, 191, 0, 0, 4, 121, 5, 176, 6, 6, 0, 17, 0, 0, 255, 255, 0, 76, 0, 0, 4, 132, 5, 176, 6, 6, 0, 21, 0, 0, 255, 255, 0, 61, 0, 0, 4, 121, 5, 176, 6, 6, 0, 26, 0, 0, 255, 255, 0, 87, 0, 0, 4, 143, 5, 176, 6, 6, 0, 25, 0, 0, 255, 255, 0, 174, 0, 0, 4, 30, 7, 32, 6, 38, 0, 10, 0, 0, 0, 7, 1, 97, 255, 210, 1, 91, 255, 255, 0, 61, 0, 0, 4, 121, 7, 31, 6, 38, 0, 26, 0, 0, 0, 7, 1, 97, 255, 252, 1, 90, 255, 255, 0, 129, 255, 235, 4, 138, 6, 126, 6, 38, 1, 133, 0, 0, 0, 6, 1, 120, 15, 4, 255, 255, 0, 139, 255, 236, 4, 96, 6, 125, 6, 38, 1, 137, 0, 0, 0, 6, 1, 120, 20, 3, 255, 255, 0, 164, 254, 97, 4, 43, 6, 126, 6, 38, 1, 139, 0, 0, 0, 6, 1, 120, 28, 4, 255, 255, 0, 184, 255, 236, 4, 58, 6, 106, 6, 38, 1, 141, 0, 0, 0, 6, 1, 120, 14, 240, 255, 255, 0, 158, 255, 236, 4, 63, 6, 122, 6, 38, 1, 149, 0, 0, 0, 6, 1, 121, 192, 187, 255, 255, 0, 186, 0, 0, 4, 114, 4, 58, 6, 6, 0, 79, 0, 0, 255, 255, 0, 122, 255, 236, 4, 82, 4, 78, 6, 6, 0, 42, 0, 0, 255, 255, 0, 188, 254, 96, 4, 16, 4, 58, 6, 6, 1, 107, 0, 0, 255, 255, 0, 98, 0, 0, 4, 101, 4, 58, 6, 6, 0, 49, 0, 0, 255, 255, 0, 110, 0, 0, 4, 114, 4, 58, 6, 6, 0, 51, 0, 0, 255, 255, 0, 184, 255, 236, 4, 58, 5, 201, 6, 38, 1, 141, 0, 0, 0, 6, 1, 97, 5, 4, 255, 255, 0, 158, 255, 236, 4, 63, 5, 201, 6, 38, 1, 149, 0, 0, 0, 6, 1, 97, 226, 4, 255, 255, 0, 122, 255, 236, 4, 82, 6, 126, 6, 38, 0, 42, 0, 0, 0, 6, 1, 120, 9, 4, 255, 255, 0, 158, 255, 236, 4, 63, 6, 106, 6, 38, 1, 149, 0, 0, 0, 6, 1, 120, 235, 240, 255, 255, 0, 79, 255, 236, 4, 137, 6, 106, 6, 38, 1, 152, 0, 0, 0, 6, 1, 120, 21, 240, 255, 255, 0, 182, 0, 0, 4, 52, 7, 32, 6, 38, 0, 6, 0, 0, 0, 7, 1, 97, 0, 5, 1, 91, 255, 255, 0, 181, 0, 0, 4, 48, 7, 32, 6, 38, 1, 123, 0, 0, 0, 7, 1, 91, 0, 128, 1, 87, 0, 1, 0, 118, 255, 236, 4, 105, 5, 196, 0, 79, 0, 0, 65, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 35, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 38, 38, 39, 38, 38, 39, 38, 38, 39, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 51, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 23, 22, 22, 23, 22, 22, 23, 22, 22, 3, 168, 52, 41, 41, 105, 54, 68, 115, 44, 44, 56, 9, 189, 3, 92, 74, 73, 186, 97, 87, 174, 69, 69, 87, 37, 33, 33, 88, 51, 51, 110, 54, 49, 111, 47, 48, 62, 1, 47, 40, 39, 101, 53, 66, 105, 38, 38, 46, 8, 190, 2, 82, 68, 68, 176, 95, 86, 170, 67, 67, 83, 83, 66, 65, 159, 77, 53, 115, 48, 28, 46, 14, 10, 11, 1, 112, 60, 87, 28, 29, 27, 37, 37, 36, 105, 68, 104, 163, 56, 57, 60, 49, 49, 48, 146, 98, 65, 107, 45, 44, 70, 28, 28, 43, 17, 15, 40, 30, 30, 87, 63, 58, 88, 30, 30, 30, 41, 37, 37, 103, 63, 100, 162, 57, 57, 63, 53, 51, 51, 148, 94, 94, 139, 51, 51, 70, 25, 17, 42, 31, 19, 47, 30, 20, 48, 255, 255, 0, 174, 0, 0, 4, 30, 5, 176, 6, 6, 0, 10, 0, 0, 255, 255, 0, 174, 0, 0, 4, 30, 7, 32, 6, 38, 0, 10, 0, 0, 0, 7, 1, 97, 255, 210, 1, 91, 255, 255, 0, 98, 255, 236, 4, 22, 5, 176, 6, 6, 0, 11, 0, 0, 255, 255, 0, 169, 0, 0, 4, 182, 5, 176, 6, 6, 2, 113, 0, 0, 255, 255, 0, 172, 0, 0, 4, 164, 7, 14, 6, 38, 0, 12, 0, 0, 0, 7, 1, 91, 0, 126, 1, 69, 255, 255, 0, 43, 255, 235, 4, 181, 7, 74, 6, 38, 1, 168, 0, 0, 0, 7, 1, 95, 0, 33, 1, 152, 255, 255, 0, 81, 0, 0, 4, 144, 5, 176, 6, 6, 0, 2, 0, 0, 255, 255, 0, 172, 0, 0, 4, 96, 5, 176, 6, 6, 0, 3, 0, 0, 255, 255, 0, 181, 0, 0, 4, 48, 5, 176, 6, 6, 1, 123, 0, 0, 255, 255, 0, 182, 0, 0, 4, 52, 5, 176, 6, 6, 0, 6, 0, 0, 255, 255, 0, 162, 0, 0, 4, 42, 7, 62, 6, 38, 1, 166, 0, 0, 0, 7, 1, 95, 255, 249, 1, 140, 255, 255, 0, 148, 0, 0, 4, 76, 5, 176, 6, 6, 0, 14, 0, 0, 255, 255, 0, 141, 0, 0, 4, 63, 5, 176, 6, 6, 0, 9, 0, 0, 255, 255, 0, 106, 255, 236, 4, 97, 5, 196, 6, 6, 0, 16, 0, 0, 255, 255, 0, 162, 0, 0, 4, 42, 5, 176, 6, 6, 1, 128, 0, 0, 255, 255, 0, 191, 0, 0, 4, 121, 5, 176, 6, 6, 0, 17, 0, 0, 255, 255, 0, 107, 255, 236, 4, 93, 5, 196, 6, 6, 0, 4, 0, 0, 255, 255, 0, 76, 0, 0, 4, 132, 5, 176, 6, 6, 0, 21, 0, 0, 255, 255, 0, 69, 0, 0, 4, 135, 5, 176, 6, 6, 1, 130, 0, 0, 255, 255, 0, 87, 0, 0, 4, 143, 5, 176, 6, 6, 0, 25, 0, 0, 255, 255, 0, 156, 255, 236, 4, 54, 4, 78, 6, 6, 0, 28, 0, 0, 255, 255, 0, 135, 255, 236, 4, 69, 4, 78, 6, 6, 0, 32, 0, 0, 255, 255, 0, 165, 0, 0, 4, 39, 5, 243, 6, 38, 1, 185, 0, 0, 0, 6, 1, 95, 244, 65, 255, 255, 0, 122, 255, 236, 4, 82, 4, 78, 6, 6, 0, 42, 0, 0, 255, 255, 0, 173, 254, 96, 4, 63, 4, 78, 6, 6, 0, 43, 0, 0, 0, 1, 0, 143, 255, 236, 4, 51, 4, 78, 0, 51, 0, 0, 101, 34, 38, 39, 38, 38, 53, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 51, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 35, 6, 6, 7, 6, 6, 2, 123, 87, 117, 35, 36, 31, 31, 36, 36, 117, 86, 56, 97, 35, 35, 41, 1, 175, 66, 58, 59, 161, 96, 123, 184, 61, 62, 62, 62, 62, 61, 184, 123, 86, 158, 61, 61, 73, 1, 175, 1, 45, 37, 37, 95, 130, 69, 56, 55, 139, 71, 42, 70, 138, 56, 55, 69, 38, 33, 33, 87, 49, 82, 144, 53, 52, 61, 88, 74, 75, 196, 107, 42, 108, 195, 74, 75, 88, 59, 50, 49, 131, 72, 45, 77, 28, 29, 32, 0, 255, 255, 0, 68, 254, 75, 4, 133, 4, 58, 6, 6, 0, 52, 0, 0, 255, 255, 0, 110, 0, 0, 4, 114, 4, 58, 6, 6, 0, 51, 0, 0, 255, 255, 0, 135, 255, 236, 4, 69, 5, 223, 6, 38, 0, 32, 0, 0, 0, 6, 1, 97, 6, 26, 255, 255, 0, 183, 0, 0, 4, 42, 5, 201, 6, 38, 1, 181, 0, 0, 0, 6, 1, 91, 115, 0, 255, 255, 0, 175, 255, 236, 4, 54, 4, 78, 6, 6, 0, 46, 0, 0, 255, 255, 0, 203, 0, 0, 4, 85, 5, 195, 6, 6, 0, 36, 0, 0, 255, 255, 0, 203, 0, 0, 4, 85, 5, 201, 6, 38, 1, 109, 0, 0, 0, 6, 1, 97, 52, 4, 255, 255, 0, 211, 254, 75, 3, 88, 5, 195, 6, 6, 0, 37, 0, 0, 255, 255, 0, 164, 0, 0, 4, 149, 5, 201, 6, 38, 1, 186, 0, 0, 0, 6, 1, 91, 39, 0, 255, 255, 0, 68, 254, 75, 4, 133, 5, 244, 6, 38, 0, 52, 0, 0, 0, 6, 1, 95, 19, 66, 255, 255, 0, 104, 255, 245, 4, 102, 5, 176, 4, 39, 0, 91, 254, 130, 0, 0, 0, 7, 0, 91, 1, 154, 0, 0, 255, 255, 0, 176, 254, 75, 3, 251, 5, 233, 6, 38, 1, 113, 0, 0, 0, 6, 1, 100, 96, 252, 255, 255, 1, 205, 4, 7, 2, 224, 6, 22, 6, 6, 0, 109, 0, 0, 255, 255, 0, 148, 0, 0, 4, 76, 7, 32, 6, 38, 0, 14, 0, 0, 0, 7, 1, 91, 0, 117, 1, 87, 255, 255, 0, 93, 0, 0, 4, 114, 5, 222, 6, 38, 0, 40, 0, 0, 0, 7, 1, 91, 0, 156, 0, 21, 255, 255, 0, 81, 254, 134, 4, 144, 5, 176, 6, 38, 0, 2, 0, 0, 0, 6, 1, 114, 37, 0, 255, 255, 0, 156, 254, 134, 4, 54, 4, 78, 6, 38, 0, 28, 0, 0, 0, 6, 1, 114, 237, 0, 255, 255, 255, 137, 255, 236, 4, 97, 6, 86, 6, 38, 0, 16, 0, 0, 0, 7, 2, 108, 253, 148, 0, 146, 255, 255, 0, 182, 0, 0, 4, 52, 7, 35, 6, 38, 0, 6, 0, 0, 0, 7, 1, 90, 255, 143, 1, 90, 255, 255, 0, 162, 0, 0, 4, 42, 7, 23, 6, 38, 1, 166, 0, 0, 0, 7, 1, 90, 255, 130, 1, 78, 255, 255, 0, 135, 255, 236, 4, 69, 5, 226, 6, 38, 0, 32, 0, 0, 0, 6, 1, 90, 144, 25, 255, 255, 0, 165, 0, 0, 4, 39, 5, 204, 6, 38, 1, 185, 0, 0, 0, 7, 1, 90, 255, 125, 0, 3, 255, 255, 0, 101, 0, 0, 4, 114, 5, 176, 6, 6, 1, 131, 0, 0, 255, 255, 0, 97, 254, 40, 4, 128, 4, 58, 6, 6, 1, 151, 0, 0, 255, 255, 0, 26, 0, 0, 4, 225, 7, 66, 6, 38, 1, 226, 0, 0, 0, 7, 1, 119, 4, 89, 1, 84, 255, 255, 0, 64, 0, 0, 4, 96, 6, 25, 6, 38, 1, 227, 0, 0, 0, 7, 1, 119, 4, 59, 0, 43, 255, 255, 0, 89, 254, 47, 4, 112, 5, 196, 6, 38, 1, 165, 0, 0, 0, 6, 2, 110, 241, 150, 255, 255, 0, 135, 254, 57, 4, 74, 4, 77, 6, 38, 1, 184, 0, 0, 0, 6, 2, 110, 8, 160, 255, 255, 0, 107, 254, 57, 4, 93, 5, 196, 6, 38, 0, 4, 0, 0, 0, 6, 2, 110, 255, 160, 255, 255, 0, 143, 254, 57, 4, 51, 4, 78, 6, 38, 0, 30, 0, 0, 0, 6, 2, 110, 19, 160, 255, 255, 0, 61, 0, 0, 4, 121, 5, 176, 6, 6, 0, 26, 0, 0, 255, 255, 0, 71, 254, 96, 4, 150, 4, 58, 6, 6, 1, 135, 0, 0, 255, 255, 0, 174, 0, 0, 4, 30, 5, 176, 6, 6, 0, 10, 0, 0, 255, 255, 0, 29, 0, 0, 4, 174, 7, 74, 6, 38, 1, 164, 0, 0, 0, 7, 1, 95, 0, 13, 1, 152, 255, 255, 0, 17, 0, 0, 4, 172, 5, 243, 6, 38, 1, 183, 0, 0, 0, 6, 1, 95, 244, 65, 255, 255, 0, 174, 0, 0, 4, 30, 5, 176, 6, 6, 0, 10, 0, 0, 255, 255, 0, 81, 0, 0, 4, 144, 7, 74, 6, 38, 0, 2, 0, 0, 0, 7, 1, 95, 0, 15, 1, 152, 255, 255, 0, 156, 255, 236, 4, 54, 6, 8, 6, 38, 0, 28, 0, 0, 0, 6, 1, 95, 11, 86, 255, 255, 0, 81, 0, 0, 4, 144, 7, 32, 6, 38, 0, 2, 0, 0, 0, 7, 1, 97, 0, 15, 1, 91, 255, 255, 0, 156, 255, 236, 4, 54, 5, 222, 6, 38, 0, 28, 0, 0, 0, 6, 1, 97, 11, 25, 255, 255, 0, 32, 0, 0, 4, 171, 5, 176, 6, 6, 0, 72, 0, 0, 255, 255, 0, 43, 255, 236, 4, 169, 4, 78, 6, 6, 0, 73, 0, 0, 255, 255, 0, 182, 0, 0, 4, 52, 7, 74, 6, 38, 0, 6, 0, 0, 0, 7, 1, 95, 0, 5, 1, 152, 255, 255, 0, 135, 255, 236, 4, 69, 6, 9, 6, 38, 0, 32, 0, 0, 0, 6, 1, 95, 6, 87, 255, 255, 0, 90, 255, 235, 4, 87, 6, 242, 6, 38, 2, 16, 0, 0, 0, 7, 1, 97, 255, 251, 1, 45, 255, 255, 0, 177, 255, 236, 4, 95, 4, 79, 6, 6, 0, 81, 0, 0, 255, 255, 0, 177, 255, 236, 4, 95, 5, 223, 6, 38, 0, 81, 0, 0, 0, 6, 1, 97, 40, 26, 255, 255, 0, 29, 0, 0, 4, 174, 7, 32, 6, 38, 1, 164, 0, 0, 0, 7, 1, 97, 0, 13, 1, 91, 255, 255, 0, 17, 0, 0, 4, 172, 5, 201, 6, 38, 1, 183, 0, 0, 0, 6, 1, 97, 244, 4, 255, 255, 0, 89, 255, 235, 4, 112, 7, 53, 6, 38, 1, 165, 0, 0, 0, 7, 1, 97, 255, 252, 1, 112, 255, 255, 0, 135, 255, 237, 4, 74, 5, 221, 6, 38, 1, 184, 0, 0, 0, 6, 1, 97, 10, 24, 255, 255, 0, 162, 0, 0, 4, 42, 6, 238, 6, 38, 1, 166, 0, 0, 0, 7, 1, 94, 255, 253, 1, 62, 255, 255, 0, 165, 0, 0, 4, 39, 5, 164, 6, 38, 1, 185, 0, 0, 0, 6, 1, 94, 248, 244, 255, 255, 0, 162, 0, 0, 4, 42, 7, 20, 6, 38, 1, 166, 0, 0, 0, 7, 1, 97, 255, 249, 1, 79, 255, 255, 0, 165, 0, 0, 4, 39, 5, 201, 6, 38, 1, 185, 0, 0, 0, 6, 1, 97, 244, 4, 255, 255, 0, 106, 255, 236, 4, 97, 7, 53, 6, 38, 0, 16, 0, 0, 0, 7, 1, 97, 0, 19, 1, 112, 255, 255, 0, 122, 255, 236, 4, 82, 5, 222, 6, 38, 0, 42, 0, 0, 0, 6, 1, 97, 0, 25, 255, 255, 0, 99, 255, 236, 4, 90, 5, 196, 6, 6, 1, 224, 0, 0, 255, 255, 0, 93, 255, 236, 4, 53, 4, 78, 6, 6, 1, 225, 0, 0, 255, 255, 0, 99, 255, 236, 4, 90, 7, 27, 6, 38, 1, 224, 0, 0, 0, 7, 1, 97, 0, 20, 1, 86, 255, 255, 0, 93, 255, 236, 4, 53, 5, 250, 6, 38, 1, 225, 0, 0, 0, 6, 1, 97, 208, 53, 255, 255, 0, 114, 255, 236, 4, 83, 7, 54, 6, 38, 1, 176, 0, 0, 0, 7, 1, 97, 255, 241, 1, 113, 255, 255, 0, 129, 255, 236, 4, 58, 5, 222, 6, 38, 1, 200, 0, 0, 0, 6, 1, 97, 237, 25, 255, 255, 0, 43, 255, 235, 4, 181, 6, 250, 6, 38, 1, 168, 0, 0, 0, 7, 1, 94, 0, 37, 1, 74, 255, 255, 0, 68, 254, 75, 4, 133, 5, 165, 6, 38, 0, 52, 0, 0, 0, 6, 1, 94, 23, 245, 255, 255, 0, 43, 255, 235, 4, 181, 7, 32, 6, 38, 1, 168, 0, 0, 0, 7, 1, 97, 0, 33, 1, 91, 255, 255, 0, 68, 254, 75, 4, 133, 5, 202, 6, 38, 0, 52, 0, 0, 0, 6, 1, 97, 19, 5, 255, 255, 0, 43, 255, 235, 4, 181, 7, 74, 6, 38, 1, 168, 0, 0, 0, 7, 1, 99, 0, 167, 1, 91, 255, 255, 0, 68, 254, 75, 4, 133, 5, 244, 6, 38, 0, 52, 0, 0, 0, 7, 1, 99, 0, 153, 0, 5, 255, 255, 0, 171, 0, 0, 4, 39, 7, 32, 6, 38, 1, 170, 0, 0, 0, 7, 1, 97, 255, 179, 1, 91, 255, 255, 0, 141, 0, 0, 4, 39, 5, 201, 6, 38, 1, 194, 0, 0, 0, 6, 1, 97, 27, 4, 255, 255, 0, 144, 0, 0, 4, 75, 7, 32, 6, 38, 1, 174, 0, 0, 0, 7, 1, 97, 255, 225, 1, 91, 255, 255, 0, 144, 0, 0, 4, 63, 5, 201, 6, 38, 1, 198, 0, 0, 0, 6, 1, 97, 67, 4, 255, 255, 0, 87, 254, 75, 5, 22, 5, 176, 6, 38, 0, 25, 0, 0, 0, 7, 2, 111, 2, 4, 0, 0, 255, 255, 0, 110, 254, 75, 4, 165, 4, 58, 6, 38, 0, 51, 0, 0, 0, 7, 2, 111, 1, 147, 0, 0, 255, 255, 0, 139, 255, 236, 4, 28, 6, 0, 6, 6, 0, 31, 0, 0, 255, 255, 0, 47, 254, 75, 4, 227, 5, 176, 6, 38, 1, 167, 0, 0, 0, 7, 2, 111, 1, 209, 0, 0, 255, 255, 0, 55, 254, 75, 4, 222, 4, 58, 6, 38, 1, 187, 0, 0, 0, 7, 2, 111, 1, 204, 0, 0, 255, 255, 0, 81, 254, 168, 4, 144, 5, 176, 6, 38, 0, 2, 0, 0, 0, 7, 1, 101, 4, 223, 0, 0, 255, 255, 0, 156, 254, 168, 4, 54, 4, 78, 6, 38, 0, 28, 0, 0, 0, 7, 1, 101, 4, 163, 0, 0, 255, 255, 0, 81, 0, 0, 4, 144, 7, 198, 6, 38, 0, 2, 0, 0, 0, 7, 1, 118, 4, 200, 1, 82, 255, 255, 0, 156, 255, 236, 4, 54, 6, 132, 6, 38, 0, 28, 0, 0, 0, 7, 1, 118, 4, 196, 0, 16, 255, 255, 0, 81, 0, 0, 4, 233, 7, 238, 6, 38, 0, 2, 0, 0, 0, 7, 2, 76, 255, 245, 1, 89, 255, 255, 0, 156, 255, 236, 4, 229, 6, 172, 6, 38, 0, 28, 0, 0, 0, 6, 2, 76, 241, 23, 255, 255, 255, 252, 0, 0, 4, 144, 7, 221, 6, 38, 0, 2, 0, 0, 0, 7, 2, 75, 255, 236, 1, 72, 255, 255, 255, 248, 255, 236, 4, 54, 6, 155, 6, 38, 0, 28, 0, 0, 0, 6, 2, 75, 232, 6, 255, 255, 0, 81, 0, 0, 4, 187, 8, 4, 6, 38, 0, 2, 0, 0, 0, 7, 2, 74, 0, 1, 1, 53, 255, 255, 0, 156, 255, 236, 4, 184, 6, 195, 6, 38, 0, 28, 0, 0, 0, 6, 2, 74, 254, 244, 255, 255, 0, 81, 0, 0, 4, 144, 8, 47, 6, 38, 0, 2, 0, 0, 0, 7, 2, 73, 255, 243, 1, 54, 255, 255, 0, 156, 255, 236, 4, 54, 6, 238, 6, 38, 0, 28, 0, 0, 0, 6, 2, 73, 239, 245, 255, 255, 0, 81, 254, 168, 4, 144, 7, 72, 6, 38, 0, 2, 0, 0, 0, 39, 1, 92, 0, 135, 1, 91, 0, 7, 1, 101, 4, 223, 0, 0, 255, 255, 0, 156, 254, 168, 4, 54, 6, 6, 6, 38, 0, 28, 0, 0, 0, 39, 1, 92, 0, 131, 0, 25, 0, 7, 1, 101, 4, 163, 0, 0, 255, 255, 0, 81, 0, 0, 4, 144, 7, 222, 6, 38, 0, 2, 0, 0, 0, 7, 2, 105, 0, 0, 1, 84, 255, 255, 0, 156, 255, 236, 4, 54, 6, 156, 6, 38, 0, 28, 0, 0, 0, 6, 2, 105, 252, 18, 255, 255, 0, 81, 0, 0, 4, 144, 8, 4, 6, 38, 0, 2, 0, 0, 0, 7, 2, 77, 0, 3, 1, 122, 255, 255, 0, 156, 255, 236, 4, 54, 6, 194, 6, 38, 0, 28, 0, 0, 0, 6, 2, 77, 0, 56, 255, 255, 0, 81, 0, 0, 4, 144, 8, 76, 6, 38, 0, 2, 0, 0, 0, 7, 2, 104, 255, 244, 1, 73, 255, 255, 0, 156, 255, 236, 4, 54, 7, 10, 6, 38, 0, 28, 0, 0, 0, 6, 2, 104, 240, 7, 255, 255, 0, 81, 0, 0, 4, 144, 8, 33, 6, 38, 0, 2, 0, 0, 0, 7, 2, 109, 255, 212, 1, 81, 255, 255, 0, 156, 255, 236, 4, 54, 6, 223, 6, 38, 0, 28, 0, 0, 0, 6, 2, 109, 208, 15, 255, 255, 0, 81, 254, 168, 4, 144, 7, 74, 6, 38, 0, 2, 0, 0, 0, 39, 1, 95, 0, 15, 1, 152, 0, 7, 1, 101, 4, 223, 0, 0, 255, 255, 0, 156, 254, 168, 4, 54, 6, 8, 6, 38, 0, 28, 0, 0, 0, 38, 1, 95, 11, 86, 0, 7, 1, 101, 4, 163, 0, 0, 255, 255, 0, 182, 254, 178, 4, 52, 5, 176, 6, 38, 0, 6, 0, 0, 0, 7, 1, 101, 4, 210, 0, 10, 255, 255, 0, 135, 254, 168, 4, 69, 4, 78, 6, 38, 0, 32, 0, 0, 0, 7, 1, 101, 4, 227, 0, 0, 255, 255, 0, 182, 0, 0, 4, 52, 7, 198, 6, 38, 0, 6, 0, 0, 0, 7, 1, 118, 4, 190, 1, 82, 255, 255, 0, 135, 255, 236, 4, 69, 6, 133, 6, 38, 0, 32, 0, 0, 0, 7, 1, 118, 4, 191, 0, 17, 255, 255, 0, 182, 0, 0, 4, 52, 7, 82, 6, 38, 0, 6, 0, 0, 0, 7, 1, 93, 0, 137, 1, 97, 255, 255, 0, 135, 255, 236, 4, 69, 6, 17, 6, 38, 0, 32, 0, 0, 0, 7, 1, 93, 0, 138, 0, 32, 255, 255, 0, 182, 0, 0, 4, 223, 7, 238, 6, 38, 0, 6, 0, 0, 0, 7, 2, 76, 255, 235, 1, 89, 255, 255, 0, 135, 255, 236, 4, 224, 6, 173, 6, 38, 0, 32, 0, 0, 0, 6, 2, 76, 236, 24, 255, 255, 255, 242, 0, 0, 4, 52, 7, 221, 6, 38, 0, 6, 0, 0, 0, 7, 2, 75, 255, 226, 1, 72, 255, 255, 255, 243, 255, 236, 4, 69, 6, 156, 6, 38, 0, 32, 0, 0, 0, 6, 2, 75, 227, 7, 255, 255, 0, 182, 0, 0, 4, 178, 8, 4, 6, 38, 0, 6, 0, 0, 0, 7, 2, 74, 255, 248, 1, 53, 255, 255, 0, 135, 255, 236, 4, 179, 6, 196, 6, 38, 0, 32, 0, 0, 0, 6, 2, 74, 249, 245, 255, 255, 0, 182, 0, 0, 4, 52, 8, 47, 6, 38, 0, 6, 0, 0, 0, 7, 2, 73, 255, 233, 1, 54, 255, 255, 0, 135, 255, 236, 4, 69, 6, 239, 6, 38, 0, 32, 0, 0, 0, 6, 2, 73, 234, 246, 255, 255, 0, 182, 254, 178, 4, 52, 7, 72, 6, 38, 0, 6, 0, 0, 0, 39, 1, 92, 0, 125, 1, 91, 0, 7, 1, 101, 4, 210, 0, 10, 255, 255, 0, 135, 254, 168, 4, 69, 6, 7, 6, 38, 0, 32, 0, 0, 0, 38, 1, 92, 126, 26, 0, 7, 1, 101, 4, 227, 0, 0, 255, 255, 0, 174, 0, 0, 4, 30, 7, 198, 6, 38, 0, 10, 0, 0, 0, 7, 1, 118, 4, 138, 1, 82, 255, 255, 0, 203, 0, 0, 4, 85, 6, 112, 6, 38, 1, 109, 0, 0, 0, 7, 1, 118, 4, 237, 255, 252, 255, 255, 0, 174, 254, 178, 4, 30, 5, 176, 6, 38, 0, 10, 0, 0, 0, 7, 1, 101, 4, 158, 0, 10, 255, 255, 0, 203, 254, 178, 4, 85, 5, 195, 6, 38, 0, 36, 0, 0, 0, 7, 1, 101, 5, 6, 0, 10, 255, 255, 0, 106, 254, 160, 4, 97, 5, 196, 6, 38, 0, 16, 0, 0, 0, 7, 1, 101, 4, 223, 255, 248, 255, 255, 0, 122, 254, 159, 4, 82, 4, 78, 6, 38, 0, 42, 0, 0, 0, 7, 1, 101, 4, 205, 255, 247, 255, 255, 0, 106, 255, 236, 4, 97, 7, 219, 6, 38, 0, 16, 0, 0, 0, 7, 1, 118, 4, 204, 1, 103, 255, 255, 0, 122, 255, 236, 4, 82, 6, 132, 6, 38, 0, 42, 0, 0, 0, 7, 1, 118, 4, 185, 0, 16, 255, 255, 0, 106, 255, 236, 4, 237, 8, 3, 6, 38, 0, 16, 0, 0, 0, 7, 2, 76, 255, 249, 1, 110, 255, 255, 0, 122, 255, 236, 4, 218, 6, 172, 6, 38, 0, 42, 0, 0, 0, 6, 2, 76, 230, 23, 255, 255, 0, 0, 255, 236, 4, 97, 7, 242, 6, 38, 0, 16, 0, 0, 0, 7, 2, 75, 255, 240, 1, 93, 255, 255, 255, 237, 255, 236, 4, 82, 6, 155, 6, 38, 0, 42, 0, 0, 0, 6, 2, 75, 221, 6, 255, 255, 0, 106, 255, 236, 4, 191, 8, 25, 6, 38, 0, 16, 0, 0, 0, 7, 2, 74, 0, 5, 1, 74, 255, 255, 0, 122, 255, 236, 4, 173, 6, 195, 6, 38, 0, 42, 0, 0, 0, 6, 2, 74, 243, 244, 255, 255, 0, 106, 255, 236, 4, 97, 8, 68, 6, 38, 0, 16, 0, 0, 0, 7, 2, 73, 255, 247, 1, 75, 255, 255, 0, 122, 255, 236, 4, 82, 6, 238, 6, 38, 0, 42, 0, 0, 0, 6, 2, 73, 228, 245, 255, 255, 0, 106, 254, 160, 4, 97, 7, 93, 6, 38, 0, 16, 0, 0, 0, 39, 1, 92, 0, 139, 1, 112, 0, 7, 1, 101, 4, 223, 255, 248, 255, 255, 0, 122, 254, 159, 4, 82, 6, 6, 6, 38, 0, 42, 0, 0, 0, 38, 1, 92, 120, 25, 0, 7, 1, 101, 4, 205, 255, 247, 255, 255, 0, 99, 255, 236, 4, 198, 7, 32, 6, 38, 0, 216, 0, 0, 0, 7, 1, 91, 0, 132, 1, 87, 255, 255, 0, 119, 255, 236, 4, 174, 5, 222, 6, 38, 1, 53, 0, 0, 0, 6, 1, 91, 124, 21, 255, 255, 0, 99, 255, 236, 4, 198, 7, 35, 6, 38, 0, 216, 0, 0, 0, 7, 1, 90, 255, 152, 1, 90, 255, 255, 0, 119, 255, 236, 4, 174, 5, 225, 6, 38, 1, 53, 0, 0, 0, 6, 1, 90, 144, 24, 255, 255, 0, 99, 255, 236, 4, 198, 7, 198, 6, 38, 0, 216, 0, 0, 0, 7, 1, 118, 4, 199, 1, 82, 255, 255, 0, 119, 255, 236, 4, 174, 6, 132, 6, 38, 1, 53, 0, 0, 0, 7, 1, 118, 4, 191, 0, 16, 255, 255, 0, 99, 255, 236, 4, 198, 7, 82, 6, 38, 0, 216, 0, 0, 0, 7, 1, 93, 0, 146, 1, 97, 255, 255, 0, 119, 255, 236, 4, 174, 6, 16, 6, 38, 1, 53, 0, 0, 0, 7, 1, 93, 0, 138, 0, 31, 255, 255, 0, 99, 254, 168, 4, 198, 5, 250, 6, 38, 0, 216, 0, 0, 0, 7, 1, 101, 4, 211, 0, 0, 255, 255, 0, 119, 254, 159, 4, 174, 4, 170, 6, 38, 1, 53, 0, 0, 0, 7, 1, 101, 4, 203, 255, 247, 255, 255, 0, 139, 254, 168, 4, 66, 5, 176, 6, 38, 0, 22, 0, 0, 0, 7, 1, 101, 4, 200, 0, 0, 255, 255, 0, 180, 254, 168, 4, 31, 4, 58, 6, 38, 0, 48, 0, 0, 0, 7, 1, 101, 4, 158, 0, 0, 255, 255, 0, 139, 255, 236, 4, 66, 7, 186, 6, 38, 0, 22, 0, 0, 0, 7, 1, 118, 4, 230, 1, 70, 255, 255, 0, 180, 255, 236, 4, 31, 6, 113, 6, 38, 0, 48, 0, 0, 0, 7, 1, 118, 4, 184, 255, 253, 255, 255, 0, 139, 255, 236, 5, 131, 7, 32, 6, 38, 0, 236, 0, 0, 0, 7, 1, 91, 0, 116, 1, 87, 255, 255, 0, 180, 255, 236, 5, 63, 5, 201, 6, 38, 1, 73, 0, 0, 0, 6, 1, 91, 118, 0, 255, 255, 0, 139, 255, 236, 5, 131, 7, 35, 6, 38, 0, 236, 0, 0, 0, 7, 1, 90, 255, 136, 1, 90, 255, 255, 0, 180, 255, 236, 5, 63, 5, 204, 6, 38, 1, 73, 0, 0, 0, 6, 1, 90, 138, 3, 255, 255, 0, 139, 255, 236, 5, 131, 7, 198, 6, 38, 0, 236, 0, 0, 0, 7, 1, 118, 4, 183, 1, 82, 255, 255, 0, 180, 255, 236, 5, 63, 6, 112, 6, 38, 1, 73, 0, 0, 0, 7, 1, 118, 4, 185, 255, 252, 255, 255, 0, 139, 255, 236, 5, 131, 7, 82, 6, 38, 0, 236, 0, 0, 0, 7, 1, 93, 0, 130, 1, 97, 255, 255, 0, 180, 255, 236, 5, 63, 5, 251, 6, 38, 1, 73, 0, 0, 0, 7, 1, 93, 0, 132, 0, 10, 255, 255, 0, 139, 254, 160, 5, 131, 5, 232, 6, 38, 0, 236, 0, 0, 0, 7, 1, 101, 4, 205, 255, 248, 255, 255, 0, 180, 254, 168, 5, 63, 4, 147, 6, 38, 1, 73, 0, 0, 0, 7, 1, 101, 4, 144, 0, 0, 255, 255, 0, 61, 254, 178, 4, 121, 5, 176, 6, 38, 0, 26, 0, 0, 0, 7, 1, 101, 4, 195, 0, 10, 255, 255, 0, 68, 254, 11, 4, 133, 4, 58, 6, 38, 0, 52, 0, 0, 0, 7, 1, 101, 5, 167, 255, 99, 255, 255, 0, 61, 0, 0, 4, 121, 7, 197, 6, 38, 0, 26, 0, 0, 0, 7, 1, 118, 4, 180, 1, 81, 255, 255, 0, 68, 254, 75, 4, 133, 6, 113, 6, 38, 0, 52, 0, 0, 0, 7, 1, 118, 4, 204, 255, 253, 255, 255, 0, 61, 0, 0, 4, 121, 7, 81, 6, 38, 0, 26, 0, 0, 0, 7, 1, 93, 0, 127, 1, 96, 255, 255, 0, 68, 254, 75, 4, 133, 5, 252, 6, 38, 0, 52, 0, 0, 0, 7, 1, 93, 0, 151, 0, 11, 255, 255, 0, 124, 254, 237, 4, 225, 6, 0, 4, 38, 0, 31, 241, 0, 0, 39, 2, 106, 1, 47, 2, 71, 0, 6, 0, 102, 33, 132, 255, 255, 0, 169, 254, 160, 4, 223, 5, 176, 6, 38, 2, 113, 0, 0, 0, 7, 2, 110, 2, 32, 0, 7, 255, 255, 0, 164, 254, 153, 4, 186, 4, 58, 6, 38, 1, 186, 0, 0, 0, 7, 2, 110, 1, 251, 0, 0, 255, 255, 0, 141, 254, 153, 4, 168, 5, 176, 6, 38, 0, 9, 0, 0, 0, 7, 2, 110, 1, 233, 0, 0, 255, 255, 0, 165, 254, 153, 4, 176, 4, 58, 6, 38, 1, 189, 0, 0, 0, 7, 2, 110, 1, 241, 0, 0, 255, 255, 0, 76, 254, 153, 4, 132, 5, 176, 6, 38, 0, 21, 0, 0, 0, 7, 2, 110, 0, 140, 0, 0, 255, 255, 0, 104, 254, 153, 4, 123, 4, 58, 6, 38, 1, 191, 0, 0, 0, 7, 2, 110, 0, 149, 0, 0, 255, 255, 0, 87, 254, 153, 4, 231, 5, 176, 6, 38, 0, 25, 0, 0, 0, 7, 2, 110, 2, 40, 0, 0, 255, 255, 0, 110, 254, 153, 4, 118, 4, 58, 6, 38, 0, 51, 0, 0, 0, 7, 2, 110, 1, 183, 0, 0, 255, 255, 0, 171, 254, 153, 4, 176, 5, 176, 6, 38, 1, 170, 0, 0, 0, 7, 2, 110, 1, 241, 0, 0, 255, 255, 0, 141, 254, 153, 4, 176, 4, 58, 6, 38, 1, 194, 0, 0, 0, 7, 2, 110, 1, 241, 0, 0, 255, 255, 0, 171, 254, 153, 4, 39, 5, 176, 6, 38, 1, 170, 0, 0, 0, 7, 2, 110, 0, 222, 0, 0, 255, 255, 0, 141, 254, 153, 4, 39, 4, 58, 6, 38, 1, 194, 0, 0, 0, 7, 2, 110, 0, 221, 0, 0, 255, 255, 0, 181, 254, 153, 4, 48, 5, 176, 6, 38, 1, 123, 0, 0, 0, 7, 2, 110, 255, 58, 0, 0, 255, 255, 0, 183, 254, 153, 4, 42, 4, 58, 6, 38, 1, 181, 0, 0, 0, 7, 2, 110, 255, 11, 0, 0, 255, 255, 0, 29, 254, 153, 4, 251, 5, 176, 6, 38, 1, 164, 0, 0, 0, 7, 2, 110, 2, 60, 0, 0, 255, 255, 0, 17, 254, 153, 4, 239, 4, 58, 6, 38, 1, 183, 0, 0, 0, 7, 2, 110, 2, 48, 0, 0, 255, 255, 0, 38, 254, 59, 4, 137, 5, 195, 6, 38, 2, 10, 0, 0, 0, 7, 2, 110, 0, 191, 255, 162, 255, 255, 0, 38, 254, 59, 4, 133, 4, 78, 6, 38, 2, 11, 0, 0, 0, 7, 2, 110, 0, 155, 255, 162, 255, 255, 0, 174, 0, 0, 4, 44, 6, 0, 6, 6, 0, 35, 0, 0, 0, 2, 0, 18, 0, 0, 4, 64, 4, 58, 0, 24, 0, 39, 0, 0, 65, 53, 33, 53, 35, 21, 35, 21, 51, 17, 33, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 33, 53, 17, 33, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 33, 2, 143, 254, 207, 185, 147, 147, 2, 4, 97, 152, 52, 52, 54, 55, 52, 52, 151, 97, 254, 181, 1, 75, 58, 83, 27, 27, 26, 25, 27, 27, 84, 58, 254, 181, 3, 35, 151, 128, 128, 151, 252, 221, 52, 46, 45, 125, 72, 73, 122, 44, 44, 49, 131, 254, 230, 33, 26, 27, 67, 35, 36, 66, 25, 25, 30, 0, 2, 255, 212, 0, 0, 4, 81, 5, 176, 0, 24, 0, 39, 0, 0, 65, 53, 35, 53, 35, 21, 35, 21, 51, 17, 33, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 33, 53, 17, 33, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 33, 2, 81, 240, 185, 212, 212, 1, 195, 116, 181, 62, 62, 65, 65, 62, 62, 181, 116, 254, 246, 1, 10, 78, 113, 37, 37, 35, 35, 37, 37, 113, 78, 254, 246, 4, 80, 151, 201, 201, 151, 251, 176, 63, 57, 57, 160, 96, 97, 156, 56, 55, 60, 247, 254, 114, 43, 36, 37, 99, 56, 57, 103, 39, 39, 46, 0, 0, 2, 255, 212, 0, 0, 4, 81, 5, 176, 0, 24, 0, 39, 0, 0, 65, 53, 35, 53, 35, 21, 35, 21, 51, 17, 33, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 33, 53, 17, 33, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 33, 2, 81, 240, 185, 212, 212, 1, 195, 116, 181, 62, 62, 65, 65, 62, 62, 181, 116, 254, 246, 1, 10, 78, 113, 37, 37, 35, 35, 37, 37, 113, 78, 254, 246, 4, 80, 151, 201, 201, 151, 251, 176, 63, 57, 57, 160, 96, 97, 156, 56, 55, 60, 247, 254, 114, 43, 36, 37, 99, 56, 57, 103, 39, 39, 46, 0, 0, 1, 255, 253, 0, 0, 4, 48, 5, 176, 0, 13, 0, 0, 65, 53, 33, 17, 33, 53, 33, 17, 35, 21, 51, 17, 51, 17, 2, 122, 254, 245, 2, 193, 252, 133, 184, 184, 186, 2, 172, 151, 1, 213, 152, 253, 147, 151, 253, 84, 2, 172, 0, 1, 255, 251, 0, 0, 4, 42, 4, 58, 0, 13, 0, 0, 65, 53, 33, 17, 33, 53, 33, 17, 35, 21, 51, 17, 51, 17, 2, 120, 254, 249, 2, 185, 252, 141, 188, 188, 186, 1, 223, 151, 1, 43, 153, 254, 60, 151, 254, 33, 1, 223, 0, 1, 255, 255, 0, 0, 4, 192, 5, 176, 0, 20, 0, 0, 65, 1, 51, 1, 1, 35, 1, 35, 17, 33, 53, 33, 53, 35, 21, 35, 21, 51, 17, 51, 17, 2, 23, 1, 198, 227, 253, 232, 1, 239, 212, 254, 69, 156, 1, 16, 254, 240, 185, 180, 180, 185, 2, 147, 253, 109, 2, 239, 2, 193, 253, 122, 1, 63, 151, 176, 176, 151, 251, 151, 2, 147, 0, 1, 255, 233, 0, 0, 4, 116, 6, 0, 0, 20, 0, 0, 115, 51, 17, 55, 1, 51, 1, 1, 35, 1, 7, 17, 51, 53, 35, 53, 35, 21, 35, 21, 51, 186, 186, 136, 1, 141, 235, 254, 7, 1, 182, 225, 254, 157, 121, 242, 242, 186, 209, 209, 1, 118, 131, 254, 7, 2, 119, 1, 195, 254, 156, 130, 2, 109, 151, 168, 168, 151, 255, 255, 0, 162, 254, 138, 4, 227, 7, 62, 6, 38, 1, 166, 0, 0, 0, 39, 1, 95, 255, 249, 1, 140, 0, 7, 0, 95, 2, 96, 255, 218, 255, 255, 0, 165, 254, 138, 4, 224, 5, 243, 6, 38, 1, 185, 0, 0, 0, 38, 1, 95, 244, 65, 0, 7, 0, 95, 2, 93, 255, 218, 255, 255, 0, 141, 254, 138, 4, 216, 5, 176, 6, 38, 0, 9, 0, 0, 0, 7, 0, 95, 2, 85, 255, 218, 255, 255, 0, 165, 254, 138, 4, 224, 4, 58, 6, 38, 1, 189, 0, 0, 0, 7, 0, 95, 2, 93, 255, 218, 255, 255, 0, 148, 254, 138, 5, 2, 5, 176, 6, 38, 0, 14, 0, 0, 0, 7, 0, 95, 2, 127, 255, 218, 255, 255, 0, 137, 254, 138, 4, 228, 4, 58, 6, 38, 1, 188, 0, 0, 0, 7, 0, 95, 2, 97, 255, 218, 255, 255, 0, 47, 254, 138, 4, 228, 5, 176, 6, 38, 1, 167, 0, 0, 0, 7, 0, 95, 2, 97, 255, 218, 255, 255, 0, 55, 254, 138, 4, 223, 4, 58, 6, 38, 1, 187, 0, 0, 0, 7, 0, 95, 2, 92, 255, 218, 0, 1, 0, 61, 0, 0, 4, 121, 5, 176, 0, 17, 0, 0, 65, 53, 35, 1, 35, 1, 35, 1, 35, 1, 35, 21, 51, 23, 19, 51, 19, 55, 3, 155, 163, 1, 129, 210, 254, 181, 2, 254, 182, 211, 1, 128, 159, 226, 2, 3, 172, 3, 2, 2, 18, 151, 3, 7, 253, 37, 2, 219, 252, 249, 151, 3, 253, 241, 2, 16, 2, 0, 0, 1, 0, 71, 254, 96, 4, 150, 4, 58, 0, 17, 0, 0, 69, 53, 35, 1, 35, 1, 7, 35, 39, 1, 35, 1, 35, 21, 51, 17, 51, 17, 3, 177, 188, 1, 161, 190, 254, 179, 26, 1, 23, 254, 172, 190, 1, 164, 183, 222, 186, 11, 151, 3, 174, 252, 240, 98, 98, 3, 16, 252, 82, 151, 254, 107, 1, 149, 0, 1, 0, 87, 0, 0, 4, 143, 5, 176, 0, 17, 0, 0, 65, 53, 35, 1, 35, 1, 1, 35, 1, 35, 21, 51, 1, 51, 1, 1, 51, 1, 3, 174, 157, 1, 116, 218, 254, 198, 254, 202, 217, 1, 116, 165, 178, 254, 116, 219, 1, 67, 1, 66, 216, 254, 117, 2, 158, 151, 2, 123, 253, 197, 2, 59, 253, 133, 151, 253, 98, 2, 70, 253, 186, 2, 158, 0, 0, 1, 0, 110, 0, 0, 4, 114, 4, 58, 0, 17, 0, 0, 65, 53, 35, 1, 35, 1, 1, 35, 1, 35, 21, 51, 1, 51, 1, 1, 51, 1, 3, 162, 142, 1, 83, 217, 254, 223, 254, 226, 214, 1, 83, 167, 181, 254, 148, 216, 1, 43, 1, 43, 214, 254, 148, 1, 225, 151, 1, 194, 254, 111, 1, 145, 254, 62, 151, 254, 31, 1, 156, 254, 100, 1, 225, 0, 255, 255, 0, 139, 255, 236, 4, 96, 4, 77, 6, 6, 1, 137, 0, 0, 0, 1, 0, 79, 2, 139, 4, 140, 3, 34, 0, 3, 0, 0, 65, 53, 33, 21, 4, 140, 251, 195, 2, 139, 151, 151, 0, 1, 0, 0, 3, 231, 0, 177, 0, 22, 0, 135, 0, 5, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 28, 0, 121, 0, 218, 1, 33, 1, 58, 1, 80, 1, 186, 1, 210, 1, 234, 2, 26, 2, 56, 2, 72, 2, 104, 2, 128, 2, 245, 3, 44, 3, 165, 3, 226, 4, 81, 4, 100, 4, 151, 4, 173, 4, 209, 4, 240, 5, 8, 5, 32, 5, 140, 5, 244, 6, 66, 6, 134, 6, 210, 7, 5, 7, 124, 7, 177, 7, 223, 8, 33, 8, 63, 8, 84, 8, 173, 8, 224, 9, 46, 9, 132, 9, 218, 10, 1, 10, 110, 10, 168, 10, 214, 10, 236, 11, 17, 11, 48, 11, 100, 11, 123, 11, 215, 11, 233, 12, 44, 12, 155, 12, 186, 13, 5, 13, 103, 13, 121, 14, 8, 14, 106, 14, 124, 14, 191, 15, 46, 15, 155, 15, 233, 16, 66, 16, 117, 17, 5, 17, 44, 17, 233, 18, 54, 18, 227, 19, 81, 19, 136, 19, 222, 19, 252, 20, 116, 20, 204, 21, 65, 21, 151, 21, 230, 22, 19, 22, 91, 22, 103, 22, 191, 23, 26, 23, 118, 23, 148, 23, 178, 24, 15, 24, 108, 24, 129, 24, 151, 24, 163, 24, 176, 24, 193, 24, 216, 25, 3, 25, 16, 25, 29, 25, 42, 25, 55, 25, 71, 25, 97, 25, 123, 25, 149, 25, 174, 25, 187, 25, 200, 25, 244, 25, 252, 26, 4, 26, 70, 26, 136, 26, 155, 26, 173, 26, 239, 27, 66, 27, 86, 27, 106, 27, 130, 27, 143, 27, 174, 27, 207, 27, 253, 28, 17, 28, 53, 28, 132, 28, 154, 28, 177, 28, 206, 28, 236, 28, 253, 29, 12, 29, 27, 29, 43, 29, 202, 30, 178, 30, 192, 30, 212, 30, 236, 31, 14, 31, 158, 32, 12, 32, 51, 32, 125, 32, 161, 32, 218, 33, 115, 34, 38, 34, 245, 35, 19, 35, 41, 35, 119, 35, 131, 35, 143, 35, 155, 35, 167, 35, 179, 35, 191, 36, 2, 36, 14, 36, 26, 36, 38, 36, 50, 36, 62, 36, 74, 36, 85, 36, 97, 36, 109, 36, 172, 36, 184, 36, 196, 36, 208, 36, 220, 36, 232, 36, 244, 37, 0, 37, 12, 37, 62, 37, 126, 37, 189, 37, 201, 37, 213, 37, 225, 38, 10, 38, 22, 38, 34, 38, 46, 38, 58, 38, 70, 38, 82, 38, 94, 38, 106, 38, 170, 38, 182, 38, 194, 38, 206, 38, 218, 38, 230, 38, 242, 38, 254, 39, 26, 39, 38, 39, 50, 39, 62, 39, 74, 39, 86, 39, 98, 39, 110, 39, 122, 39, 134, 39, 238, 39, 250, 40, 6, 40, 121, 40, 133, 40, 145, 40, 157, 40, 169, 40, 181, 40, 193, 40, 205, 40, 216, 40, 228, 41, 0, 41, 12, 41, 24, 41, 36, 41, 48, 41, 60, 41, 72, 41, 143, 41, 155, 41, 167, 42, 5, 42, 17, 42, 29, 42, 41, 42, 53, 42, 65, 42, 77, 42, 89, 42, 101, 42, 113, 42, 125, 42, 137, 42, 149, 42, 161, 42, 173, 42, 184, 42, 196, 42, 207, 42, 218, 42, 229, 43, 120, 43, 131, 43, 142, 43, 154, 43, 166, 43, 178, 43, 189, 43, 200, 43, 212, 43, 224, 44, 63, 44, 74, 44, 85, 44, 96, 44, 107, 44, 118, 44, 129, 44, 140, 44, 151, 44, 227, 45, 85, 45, 96, 45, 107, 45, 118, 45, 180, 45, 192, 45, 204, 45, 215, 45, 227, 45, 238, 45, 249, 46, 4, 46, 81, 46, 93, 46, 105, 46, 117, 46, 129, 46, 141, 46, 153, 46, 165, 46, 200, 46, 211, 46, 222, 46, 234, 46, 245, 47, 0, 47, 11, 47, 22, 47, 33, 47, 44, 47, 140, 47, 152, 47, 163, 48, 9, 48, 20, 48, 32, 48, 43, 48, 54, 48, 66, 48, 78, 48, 89, 48, 100, 48, 112, 48, 177, 48, 189, 48, 200, 48, 211, 48, 222, 48, 233, 48, 244, 49, 50, 49, 62, 49, 73, 49, 158, 49, 169, 49, 181, 49, 192, 49, 203, 49, 214, 49, 225, 49, 237, 49, 249, 50, 4, 50, 15, 50, 27, 50, 38, 50, 49, 50, 64, 50, 79, 50, 99, 50, 159, 50, 172, 50, 215, 50, 238, 51, 21, 51, 95, 51, 118, 51, 137, 51, 159, 51, 205, 51, 252, 52, 17, 52, 17, 52, 30, 52, 80, 52, 93, 52, 114, 52, 162, 53, 0, 53, 37, 53, 87, 53, 143, 53, 158, 53, 173, 53, 182, 53, 229, 53, 252, 54, 11, 54, 58, 54, 66, 54, 82, 54, 109, 54, 196, 54, 216, 54, 242, 55, 5, 55, 33, 55, 123, 55, 181, 56, 13, 56, 127, 56, 244, 57, 17, 57, 142, 58, 6, 58, 98, 58, 150, 58, 236, 59, 25, 59, 100, 59, 235, 60, 27, 60, 110, 60, 207, 61, 34, 61, 82, 61, 141, 61, 243, 62, 52, 62, 176, 63, 34, 63, 111, 63, 245, 64, 51, 64, 135, 64, 228, 65, 32, 65, 81, 65, 106, 65, 162, 65, 224, 66, 10, 66, 130, 66, 155, 66, 207, 67, 1, 67, 26, 67, 69, 67, 93, 67, 122, 67, 176, 67, 236, 68, 33, 68, 117, 68, 207, 69, 10, 69, 129, 69, 218, 69, 234, 70, 29, 70, 72, 70, 192, 70, 216, 70, 245, 71, 37, 71, 63, 71, 87, 71, 106, 71, 125, 71, 220, 71, 245, 72, 36, 72, 60, 72, 90, 72, 144, 72, 204, 73, 1, 73, 82, 73, 169, 73, 225, 74, 56, 74, 138, 74, 223, 75, 29, 75, 91, 75, 116, 75, 203, 76, 33, 76, 96, 76, 221, 77, 74, 77, 111, 77, 148, 77, 194, 77, 240, 78, 56, 78, 132, 78, 213, 79, 40, 79, 188, 80, 89, 80, 212, 81, 40, 81, 84, 81, 131, 81, 254, 82, 119, 82, 251, 83, 88, 84, 47, 84, 242, 85, 94, 85, 192, 86, 2, 86, 72, 86, 116, 86, 136, 86, 192, 86, 209, 86, 225, 87, 193, 88, 21, 88, 85, 88, 180, 88, 199, 88, 218, 89, 16, 89, 70, 89, 107, 89, 143, 89, 175, 89, 207, 89, 234, 90, 5, 90, 81, 90, 137, 91, 36, 91, 196, 91, 226, 92, 0, 92, 59, 92, 113, 92, 155, 93, 16, 93, 106, 93, 169, 93, 227, 94, 20, 94, 69, 94, 181, 94, 252, 95, 67, 95, 83, 95, 99, 95, 152, 95, 232, 96, 150, 97, 17, 97, 137, 97, 238, 98, 88, 98, 211, 99, 72, 99, 162, 99, 247, 100, 85, 100, 167, 100, 248, 101, 59, 101, 170, 101, 170, 101, 170, 101, 170, 101, 170, 101, 170, 101, 170, 101, 170, 101, 170, 101, 170, 101, 170, 101, 170, 101, 170, 101, 182, 101, 208, 101, 221, 101, 252, 102, 48, 102, 127, 103, 29, 103, 125, 103, 227, 104, 40, 104, 204, 105, 205, 106, 165, 107, 73, 107, 183, 107, 202, 107, 230, 108, 0, 108, 209, 109, 16, 109, 54, 109, 54, 110, 8, 110, 104, 110, 177, 110, 236, 111, 8, 111, 36, 111, 86, 111, 107, 111, 138, 111, 227, 112, 52, 112, 106, 112, 131, 112, 153, 112, 239, 113, 7, 113, 31, 113, 79, 113, 109, 113, 125, 113, 152, 113, 176, 114, 1, 114, 92, 114, 153, 115, 13, 115, 32, 115, 84, 115, 108, 115, 145, 115, 176, 115, 202, 115, 225, 116, 52, 116, 102, 116, 115, 116, 180, 116, 220, 117, 42, 117, 56, 117, 93, 117, 148, 117, 177, 118, 15, 118, 23, 118, 31, 118, 43, 118, 54, 118, 66, 118, 77, 118, 89, 118, 101, 118, 113, 118, 125, 118, 137, 118, 148, 118, 159, 118, 171, 118, 183, 118, 195, 118, 206, 118, 217, 118, 228, 118, 239, 118, 251, 119, 6, 119, 18, 119, 30, 119, 41, 119, 53, 119, 64, 119, 75, 119, 86, 119, 97, 119, 109, 119, 121, 119, 132, 119, 144, 119, 155, 119, 167, 119, 179, 119, 191, 119, 202, 119, 213, 119, 225, 119, 237, 119, 248, 120, 3, 120, 14, 120, 25, 120, 95, 120, 106, 120, 117, 120, 128, 120, 139, 120, 150, 120, 161, 120, 172, 120, 236, 120, 247, 121, 2, 121, 13, 121, 25, 121, 37, 121, 49, 121, 60, 121, 71, 121, 135, 121, 146, 121, 158, 121, 170, 121, 182, 121, 194, 121, 206, 121, 218, 121, 230, 121, 242, 121, 253, 122, 8, 122, 19, 122, 31, 122, 42, 122, 54, 122, 65, 122, 76, 122, 87, 122, 98, 122, 109, 122, 120, 122, 132, 122, 143, 122, 154, 122, 166, 122, 178, 123, 11, 123, 23, 123, 34, 123, 45, 123, 57, 123, 68, 123, 79, 123, 91, 123, 103, 123, 115, 123, 127, 123, 139, 123, 151, 123, 163, 123, 174, 123, 182, 123, 190, 123, 198, 123, 206, 123, 214, 123, 222, 123, 230, 123, 238, 123, 246, 123, 254, 124, 6, 124, 14, 124, 22, 124, 30, 124, 42, 124, 54, 124, 65, 124, 76, 124, 87, 124, 98, 124, 109, 124, 117, 124, 125, 124, 133, 124, 141, 124, 149, 124, 160, 124, 171, 124, 182, 124, 193, 124, 204, 124, 216, 124, 228, 125, 92, 125, 100, 125, 112, 125, 120, 125, 128, 125, 140, 125, 152, 125, 160, 125, 168, 125, 176, 125, 184, 125, 196, 125, 204, 125, 212, 125, 220, 125, 228, 125, 236, 125, 244, 125, 252, 126, 4, 126, 12, 126, 20, 126, 28, 126, 39, 126, 47, 126, 55, 126, 133, 126, 141, 126, 149, 126, 160, 126, 171, 126, 179, 126, 187, 126, 198, 126, 206, 126, 217, 126, 228, 126, 241, 126, 252, 127, 4, 127, 16, 127, 28, 127, 39, 127, 50, 127, 62, 127, 74, 127, 86, 127, 97, 127, 109, 127, 117, 127, 125, 127, 137, 127, 149, 127, 160, 127, 171, 127, 182, 127, 193, 127, 201, 127, 209, 127, 217, 127, 229, 127, 240, 127, 248, 128, 4, 128, 15, 128, 27, 128, 38, 128, 46, 128, 54, 128, 66, 128, 77, 128, 89, 128, 97, 128, 108, 128, 120, 128, 131, 128, 143, 128, 154, 128, 166, 128, 177, 128, 189, 128, 200, 128, 212, 128, 223, 128, 231, 128, 239, 128, 251, 129, 6, 129, 18, 129, 29, 129, 41, 129, 52, 129, 64, 129, 75, 129, 87, 129, 99, 129, 111, 129, 122, 129, 134, 129, 145, 129, 157, 129, 169, 129, 177, 129, 189, 129, 201, 129, 213, 129, 225, 129, 237, 129, 249, 130, 5, 130, 16, 130, 28, 130, 39, 130, 51, 130, 62, 130, 74, 130, 85, 130, 101, 130, 117, 130, 129, 130, 140, 130, 152, 130, 163, 130, 175, 130, 186, 130, 198, 130, 209, 130, 225, 130, 240, 130, 252, 131, 8, 131, 20, 131, 32, 131, 44, 131, 56, 131, 68, 131, 79, 131, 91, 131, 102, 131, 114, 131, 125, 131, 137, 131, 148, 131, 164, 131, 179, 131, 191, 131, 203, 131, 215, 131, 227, 131, 239, 131, 251, 132, 7, 132, 19, 132, 31, 132, 42, 132, 54, 132, 65, 132, 77, 132, 88, 132, 100, 132, 111, 132, 127, 132, 142, 132, 154, 132, 165, 132, 177, 132, 188, 132, 200, 132, 212, 132, 224, 132, 236, 132, 248, 133, 4, 133, 16, 133, 28, 133, 40, 133, 52, 133, 64, 133, 75, 133, 87, 133, 98, 133, 110, 133, 122, 133, 134, 133, 146, 133, 158, 133, 170, 133, 182, 133, 194, 133, 206, 133, 218, 133, 230, 133, 242, 134, 1, 134, 13, 134, 25, 134, 37, 134, 49, 134, 61, 134, 73, 134, 85, 134, 97, 134, 109, 134, 121, 134, 133, 134, 145, 134, 157, 134, 169, 134, 181, 134, 193, 134, 205, 134, 217, 134, 225, 135, 30, 135, 91, 135, 152, 135, 178, 135, 204, 135, 242, 136, 22, 136, 38, 136, 53, 136, 65, 136, 77, 136, 89, 136, 101, 136, 113, 136, 125, 136, 161, 136, 195, 136, 234, 137, 17, 137, 25, 137, 38, 0, 1, 0, 0, 0, 3, 0, 0, 176, 143, 92, 244, 95, 15, 60, 245, 0, 11, 8, 0, 0, 0, 0, 0, 196, 240, 17, 46, 0, 0, 0, 0, 218, 216, 63, 171, 252, 5, 253, 213, 6, 71, 8, 98, 0, 0, 0, 9, 0, 2, 0, 0, 0, 0, 0, 0, 4, 205, 0, 0, 0, 0, 0, 81, 0, 172, 0, 107, 0, 155, 0, 182, 0, 191, 0, 100, 0, 141, 0, 174, 0, 98, 0, 172, 0, 198, 0, 148, 0, 143, 0, 106, 0, 191, 0, 94, 0, 181, 0, 118, 0, 76, 0, 139, 0, 71, 0, 73, 0, 87, 0, 61, 0, 114, 0, 156, 0, 175, 0, 143, 0, 139, 0, 135, 0, 152, 0, 140, 0, 174, 0, 203, 0, 211, 0, 176, 0, 203, 0, 93, 0, 174, 0, 122, 0, 173, 0, 140, 1, 73, 0, 175, 0, 142, 0, 180, 0, 98, 0, 48, 0, 110, 0, 68, 0, 160, 0, 145, 0, 208, 0, 85, 0, 94, 0, 75, 0, 187, 0, 141, 0, 112, 0, 177, 0, 149, 1, 130, 1, 60, 1, 67, 1, 28, 1, 16, 0, 36, 0, 48, 0, 38, 0, 32, 0, 43, 0, 79, 0, 46, 0, 73, 0, 168, 0, 173, 0, 186, 0, 169, 0, 177, 0, 162, 0, 147, 0, 113, 0, 33, 0, 160, 0, 17, 0, 105, 0, 127, 0, 103, 1, 230, 1, 242, 0, 191, 0, 204, 1, 98, 1, 240, 2, 34, 1, 230, 1, 9, 1, 248, 1, 154, 0, 155, 0, 218, 0, 74, 0, 79, 1, 238, 1, 98, 1, 236, 1, 205, 1, 188, 1, 73, 1, 45, 1, 47, 1, 238, 1, 98, 1, 101, 1, 64, 1, 170, 1, 149, 1, 67, 1, 67, 1, 140, 1, 140, 0, 119, 0, 169, 0, 156, 0, 181, 0, 115, 0, 173, 0, 169, 0, 141, 0, 170, 0, 178, 0, 187, 0, 194, 0, 189, 0, 252, 0, 231, 1, 43, 0, 44, 0, 54, 2, 28, 1, 255, 0, 119, 0, 121, 0, 90, 0, 87, 0, 103, 1, 105, 0, 160, 0, 61, 0, 107, 0, 64, 0, 87, 0, 211, 0, 231, 0, 48, 0, 81, 0, 81, 0, 81, 0, 81, 0, 81, 0, 81, 0, 81, 0, 81, 0, 81, 0, 81, 0, 32, 0, 107, 0, 107, 0, 107, 0, 107, 0, 155, 255, 197, 0, 182, 0, 182, 0, 182, 0, 182, 0, 182, 0, 182, 0, 182, 0, 182, 0, 175, 0, 182, 255, 197, 0, 100, 0, 100, 0, 100, 0, 24, 0, 141, 0, 174, 0, 174, 0, 174, 0, 174, 0, 174, 0, 174, 0, 174, 0, 174, 0, 174, 0, 98, 0, 172, 0, 198, 0, 198, 0, 198, 0, 198, 0, 58, 0, 143, 0, 143, 0, 143, 0, 143, 0, 106, 0, 106, 0, 106, 0, 106, 0, 106, 0, 99, 0, 106, 0, 106, 0, 71, 0, 71, 0, 106, 0, 181, 0, 181, 0, 181, 0, 118, 0, 118, 0, 118, 0, 118, 0, 76, 0, 76, 0, 139, 0, 139, 0, 139, 0, 139, 0, 139, 0, 139, 0, 139, 0, 139, 0, 139, 0, 139, 0, 139, 0, 73, 0, 73, 0, 73, 0, 73, 0, 61, 0, 61, 0, 61, 0, 61, 0, 114, 0, 114, 0, 114, 0, 156, 0, 156, 0, 156, 0, 156, 0, 156, 0, 156, 0, 156, 0, 156, 0, 156, 0, 156, 0, 43, 0, 143, 0, 143, 0, 143, 0, 143, 0, 100, 0, 124, 0, 135, 0, 135, 0, 135, 0, 135, 0, 135, 0, 135, 0, 135, 0, 135, 0, 184, 0, 135, 0, 140, 0, 140, 0, 140, 0, 11, 255, 231, 0, 203, 0, 203, 0, 203, 0, 203, 0, 203, 0, 203, 0, 203, 0, 203, 0, 176, 0, 176, 0, 203, 0, 153, 0, 203, 0, 133, 0, 203, 0, 174, 0, 174, 0, 174, 0, 174, 0, 122, 0, 122, 0, 122, 0, 122, 0, 122, 0, 119, 0, 122, 0, 122, 0, 122, 0, 122, 0, 122, 1, 73, 1, 20, 1, 16, 0, 175, 0, 175, 0, 175, 0, 175, 0, 142, 0, 127, 0, 180, 0, 180, 0, 180, 0, 180, 0, 180, 0, 180, 0, 180, 0, 180, 0, 180, 0, 180, 0, 180, 0, 48, 0, 48, 0, 48, 0, 48, 0, 68, 0, 68, 0, 68, 0, 68, 0, 160, 0, 160, 0, 160, 1, 159, 1, 154, 0, 193, 0, 138, 1, 1, 1, 59, 1, 242, 1, 31, 1, 154, 0, 246, 1, 48, 253, 39, 1, 205, 1, 142, 1, 46, 0, 0, 0, 212, 0, 188, 0, 241, 0, 203, 0, 128, 0, 80, 1, 200, 0, 176, 1, 173, 252, 202, 253, 104, 252, 136, 253, 89, 252, 5, 2, 41, 1, 19, 2, 48, 0, 181, 0, 46, 0, 106, 0, 54, 0, 145, 0, 162, 0, 112, 0, 69, 0, 101, 0, 97, 0, 129, 0, 174, 0, 71, 0, 120, 0, 139, 0, 117, 0, 164, 0, 185, 0, 184, 0, 57, 0, 175, 0, 89, 0, 165, 0, 120, 0, 109, 0, 173, 0, 158, 0, 110, 0, 97, 0, 79, 0, 152, 0, 54, 0, 46, 0, 42, 0, 129, 0, 30, 0, 131, 0, 67, 0, 162, 0, 162, 0, 70, 0, 29, 0, 89, 0, 162, 0, 47, 0, 43, 0, 166, 0, 171, 0, 125, 0, 125, 0, 50, 0, 144, 0, 168, 0, 114, 0, 119, 0, 65, 0, 129, 0, 164, 0, 183, 0, 54, 0, 17, 0, 135, 0, 165, 0, 164, 0, 55, 0, 137, 0, 165, 0, 165, 0, 104, 0, 122, 0, 170, 0, 141, 0, 129, 0, 118, 0, 57, 0, 144, 0, 165, 0, 129, 0, 113, 0, 79, 255, 233, 0, 143, 0, 38, 0, 130, 0, 28, 0, 165, 0, 107, 0, 95, 0, 28, 0, 125, 0, 155, 0, 39, 0, 87, 0, 113, 0, 112, 0, 85, 0, 105, 0, 80, 0, 81, 0, 202, 0, 222, 0, 99, 0, 93, 0, 26, 0, 81, 0, 69, 0, 55, 0, 106, 0, 122, 0, 77, 0, 103, 0, 113, 0, 95, 0, 151, 0, 191, 0, 118, 0, 209, 0, 252, 1, 195, 2, 60, 254, 171, 254, 180, 0, 191, 0, 173, 0, 182, 0, 182, 0, 185, 0, 184, 0, 174, 0, 163, 0, 45, 0, 56, 0, 114, 0, 110, 0, 109, 0, 116, 0, 104, 0, 92, 0, 57, 0, 52, 0, 171, 0, 146, 0, 227, 0, 38, 0, 38, 0, 200, 0, 180, 0, 182, 0, 179, 0, 90, 0, 148, 0, 137, 0, 66, 0, 116, 0, 97, 0, 77, 0, 101, 0, 55, 0, 80, 0, 179, 0, 208, 0, 20, 0, 47, 0, 111, 0, 117, 0, 142, 0, 160, 0, 76, 0, 73, 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 166, 1, 207, 1, 92, 1, 15, 1, 75, 0, 127, 0, 73, 0, 221, 0, 121, 0, 153, 0, 80, 0, 51, 0, 36, 0, 65, 0, 126, 0, 167, 0, 51, 0, 57, 0, 53, 0, 248, 0, 142, 0, 0, 0, 92, 0, 15, 1, 17, 0, 252, 0, 16, 1, 11, 1, 62, 1, 249, 0, 54, 0, 208, 0, 110, 0, 183, 0, 200, 0, 231, 0, 124, 0, 155, 0, 217, 0, 150, 0, 180, 0, 209, 0, 155, 0, 194, 0, 130, 0, 94, 0, 144, 0, 138, 0, 93, 0, 181, 0, 86, 0, 47, 0, 96, 0, 77, 0, 185, 1, 82, 1, 66, 1, 53, 1, 209, 1, 245, 1, 116, 2, 6, 1, 96, 0, 204, 0, 169, 0, 210, 0, 0, 0, 218, 0, 107, 0, 143, 0, 100, 0, 140, 255, 186, 0, 118, 0, 175, 0, 76, 0, 142, 0, 76, 0, 93, 0, 142, 255, 231, 255, 231, 0, 93, 0, 54, 0, 54, 0, 54, 0, 54, 0, 54, 0, 54, 0, 54, 0, 110, 0, 200, 0, 200, 0, 200, 0, 200, 0, 217, 0, 217, 0, 217, 0, 217, 0, 194, 0, 130, 0, 130, 0, 130, 0, 130, 0, 130, 0, 181, 0, 181, 0, 181, 0, 181, 0, 77, 0, 54, 0, 54, 0, 54, 0, 110, 0, 110, 0, 110, 0, 183, 0, 200, 0, 200, 0, 200, 0, 200, 0, 200, 0, 124, 0, 124, 0, 124, 0, 155, 0, 217, 0, 217, 0, 217, 0, 217, 0, 217, 0, 150, 0, 180, 0, 182, 0, 209, 0, 209, 0, 209, 0, 194, 0, 194, 0, 194, 0, 130, 0, 130, 0, 130, 0, 144, 0, 144, 0, 144, 0, 138, 0, 138, 0, 138, 0, 138, 0, 93, 0, 181, 0, 181, 0, 181, 0, 181, 0, 181, 0, 181, 0, 47, 0, 77, 0, 77, 0, 185, 0, 185, 0, 185, 0, 81, 255, 221, 255, 203, 255, 186, 255, 255, 255, 128, 255, 251, 0, 184, 0, 81, 0, 172, 0, 182, 0, 114, 0, 141, 0, 174, 0, 172, 0, 148, 0, 143, 0, 106, 0, 191, 0, 76, 0, 61, 0, 87, 0, 174, 0, 61, 0, 129, 0, 139, 0, 164, 0, 184, 0, 158, 0, 186, 0, 122, 0, 188, 0, 98, 0, 110, 0, 184, 0, 158, 0, 122, 0, 158, 0, 79, 0, 182, 0, 181, 0, 118, 0, 174, 0, 174, 0, 98, 0, 169, 0, 172, 0, 43, 0, 81, 0, 172, 0, 181, 0, 182, 0, 162, 0, 148, 0, 141, 0, 106, 0, 162, 0, 191, 0, 107, 0, 76, 0, 69, 0, 87, 0, 156, 0, 135, 0, 165, 0, 122, 0, 173, 0, 143, 0, 68, 0, 110, 0, 135, 0, 183, 0, 175, 0, 203, 0, 203, 0, 211, 0, 164, 0, 68, 0, 104, 0, 176, 1, 205, 0, 148, 0, 93, 0, 81, 0, 156, 255, 137, 0, 182, 0, 162, 0, 135, 0, 165, 0, 101, 0, 97, 0, 26, 0, 64, 0, 89, 0, 135, 0, 107, 0, 143, 0, 61, 0, 71, 0, 174, 0, 29, 0, 17, 0, 174, 0, 81, 0, 156, 0, 81, 0, 156, 0, 32, 0, 43, 0, 182, 0, 135, 0, 90, 0, 177, 0, 177, 0, 29, 0, 17, 0, 89, 0, 135, 0, 162, 0, 165, 0, 162, 0, 165, 0, 106, 0, 122, 0, 99, 0, 93, 0, 99, 0, 93, 0, 114, 0, 129, 0, 43, 0, 68, 0, 43, 0, 68, 0, 43, 0, 68, 0, 171, 0, 141, 0, 144, 0, 144, 0, 87, 0, 110, 0, 139, 0, 47, 0, 55, 0, 81, 0, 156, 0, 81, 0, 156, 0, 81, 0, 156, 255, 252, 255, 248, 0, 81, 0, 156, 0, 81, 0, 156, 0, 81, 0, 156, 0, 81, 0, 156, 0, 81, 0, 156, 0, 81, 0, 156, 0, 81, 0, 156, 0, 81, 0, 156, 0, 182, 0, 135, 0, 182, 0, 135, 0, 182, 0, 135, 0, 182, 0, 135, 255, 242, 255, 243, 0, 182, 0, 135, 0, 182, 0, 135, 0, 182, 0, 135, 0, 174, 0, 203, 0, 174, 0, 203, 0, 106, 0, 122, 0, 106, 0, 122, 0, 106, 0, 122, 0, 0, 255, 237, 0, 106, 0, 122, 0, 106, 0, 122, 0, 106, 0, 122, 0, 99, 0, 119, 0, 99, 0, 119, 0, 99, 0, 119, 0, 99, 0, 119, 0, 99, 0, 119, 0, 139, 0, 180, 0, 139, 0, 180, 0, 139, 0, 180, 0, 139, 0, 180, 0, 139, 0, 180, 0, 139, 0, 180, 0, 139, 0, 180, 0, 61, 0, 68, 0, 61, 0, 68, 0, 61, 0, 68, 0, 124, 0, 169, 0, 164, 0, 141, 0, 165, 0, 76, 0, 104, 0, 87, 0, 110, 0, 171, 0, 141, 0, 171, 0, 141, 0, 181, 0, 183, 0, 29, 0, 17, 0, 38, 0, 38, 0, 174, 0, 18, 255, 212, 255, 212, 255, 253, 255, 251, 255, 255, 255, 233, 0, 162, 0, 165, 0, 141, 0, 165, 0, 148, 0, 137, 0, 47, 0, 55, 0, 61, 0, 71, 0, 87, 0, 110, 0, 139, 0, 79, 0, 1, 0, 0, 8, 98, 253, 213, 0, 0, 4, 205, 252, 5, 254, 134, 6, 71, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 205, 1, 144, 0, 5, 0, 0, 5, 154, 5, 51, 0, 0, 1, 31, 5, 154, 5, 51, 0, 0, 3, 209, 0, 102, 2, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 224, 0, 2, 255, 16, 0, 32, 91, 0, 0, 0, 32, 0, 0, 0, 0, 71, 79, 79, 71, 0, 64, 0, 13, 255, 253, 8, 98, 253, 213, 0, 0, 8, 98, 2, 43, 32, 0, 1, 159, 79, 1, 0, 0, 4, 58, 5, 176, 0, 0, 0, 32, 0, 1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 20, 0, 3, 0, 1, 0, 0, 0, 20, 0, 4, 7, 76, 0, 0, 0, 194, 0, 128, 0, 6, 0, 66, 0, 13, 0, 47, 0, 57, 0, 64, 0, 90, 0, 96, 0, 122, 0, 126, 1, 127, 1, 146, 1, 161, 1, 176, 1, 240, 1, 255, 2, 27, 2, 55, 2, 89, 2, 188, 2, 199, 2, 201, 2, 221, 2, 243, 3, 1, 3, 3, 3, 9, 3, 15, 3, 35, 3, 138, 3, 140, 3, 146, 3, 161, 3, 176, 3, 185, 3, 201, 3, 206, 3, 210, 3, 214, 4, 37, 4, 47, 4, 69, 4, 79, 4, 98, 4, 111, 4, 119, 4, 134, 4, 206, 4, 215, 4, 225, 4, 245, 5, 1, 5, 16, 5, 19, 30, 1, 30, 63, 30, 133, 30, 241, 30, 243, 30, 249, 31, 77, 32, 11, 32, 21, 32, 30, 32, 34, 32, 38, 32, 48, 32, 51, 32, 58, 32, 60, 32, 68, 32, 116, 32, 127, 32, 164, 32, 167, 32, 172, 33, 5, 33, 19, 33, 22, 33, 34, 33, 38, 33, 46, 33, 94, 34, 2, 34, 6, 34, 15, 34, 18, 34, 21, 34, 26, 34, 30, 34, 43, 34, 72, 34, 96, 34, 101, 37, 202, 246, 195, 254, 255, 255, 253, 255, 255, 0, 0, 0, 13, 0, 32, 0, 48, 0, 58, 0, 65, 0, 91, 0, 97, 0, 123, 0, 160, 1, 146, 1, 160, 1, 175, 1, 240, 1, 250, 2, 24, 2, 55, 2, 89, 2, 188, 2, 198, 2, 201, 2, 216, 2, 243, 3, 0, 3, 3, 3, 9, 3, 15, 3, 35, 3, 132, 3, 140, 3, 142, 3, 147, 3, 163, 3, 177, 3, 186, 3, 202, 3, 209, 3, 214, 4, 0, 4, 38, 4, 48, 4, 70, 4, 80, 4, 99, 4, 112, 4, 120, 4, 136, 4, 207, 4, 216, 4, 226, 4, 246, 5, 2, 5, 17, 30, 0, 30, 62, 30, 128, 30, 160, 30, 242, 30, 244, 31, 77, 32, 0, 32, 19, 32, 23, 32, 32, 32, 37, 32, 48, 32, 50, 32, 57, 32, 60, 32, 68, 32, 116, 32, 127, 32, 163, 32, 167, 32, 171, 33, 5, 33, 19, 33, 22, 33, 34, 33, 38, 33, 46, 33, 91, 34, 2, 34, 6, 34, 15, 34, 17, 34, 21, 34, 26, 34, 30, 34, 43, 34, 72, 34, 96, 34, 100, 37, 202, 246, 195, 254, 255, 255, 252, 255, 255, 1, 92, 0, 0, 0, 6, 0, 0, 255, 193, 0, 0, 255, 187, 0, 0, 0, 0, 254, 196, 0, 0, 0, 0, 1, 51, 0, 0, 0, 98, 255, 58, 253, 248, 0, 104, 0, 0, 254, 149, 0, 0, 254, 127, 254, 115, 254, 114, 254, 109, 254, 104, 254, 66, 0, 0, 255, 76, 255, 75, 0, 0, 0, 0, 253, 212, 0, 0, 255, 44, 253, 200, 253, 197, 0, 0, 253, 131, 0, 0, 253, 123, 0, 0, 253, 112, 0, 0, 253, 108, 0, 0, 254, 108, 0, 0, 254, 105, 0, 0, 253, 20, 0, 0, 229, 39, 228, 231, 0, 0, 228, 198, 0, 0, 228, 196, 227, 220, 226, 37, 0, 0, 0, 0, 0, 0, 0, 0, 224, 93, 224, 64, 224, 65, 226, 230, 224, 71, 225, 192, 225, 182, 223, 180, 223, 178, 0, 0, 225, 50, 225, 37, 225, 35, 223, 114, 224, 94, 225, 12, 224, 224, 224, 61, 223, 118, 224, 49, 0, 0, 222, 116, 224, 40, 224, 37, 224, 25, 222, 59, 222, 34, 222, 34, 220, 123, 10, 165, 3, 71, 2, 75, 0, 1, 0, 0, 0, 192, 0, 0, 0, 220, 0, 0, 0, 230, 0, 0, 0, 238, 0, 244, 0, 0, 2, 176, 2, 178, 0, 0, 2, 178, 0, 0, 0, 0, 0, 0, 0, 0, 2, 180, 0, 0, 2, 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 178, 0, 0, 0, 0, 2, 186, 2, 214, 0, 0, 2, 238, 0, 0, 0, 0, 0, 0, 3, 6, 0, 0, 3, 78, 0, 0, 3, 118, 0, 0, 3, 152, 0, 0, 3, 164, 0, 0, 4, 46, 0, 0, 4, 62, 0, 0, 4, 82, 0, 0, 0, 0, 4, 82, 0, 0, 4, 90, 0, 0, 0, 0, 0, 0, 4, 86, 4, 90, 4, 104, 4, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 91, 0, 107, 0, 151, 0, 82, 0, 140, 0, 152, 0, 106, 0, 116, 0, 117, 0, 150, 0, 124, 0, 95, 0, 103, 0, 96, 0, 137, 0, 97, 0, 98, 0, 132, 0, 129, 0, 133, 0, 93, 0, 153, 0, 118, 0, 138, 0, 119, 0, 156, 0, 102, 1, 90, 0, 120, 0, 142, 0, 121, 0, 157, 2, 115, 0, 92, 0, 83, 0, 84, 0, 90, 0, 85, 0, 143, 0, 154, 1, 97, 0, 146, 0, 67, 1, 106, 0, 136, 2, 116, 0, 147, 1, 94, 0, 149, 0, 126, 0, 65, 0, 66, 1, 91, 1, 107, 0, 155, 0, 100, 1, 102, 0, 64, 0, 68, 1, 108, 0, 70, 0, 69, 0, 71, 0, 94, 0, 162, 0, 158, 0, 160, 0, 167, 0, 161, 0, 165, 0, 72, 0, 171, 0, 181, 0, 175, 0, 178, 0, 179, 0, 196, 0, 191, 0, 193, 0, 194, 0, 185, 0, 210, 0, 215, 0, 211, 0, 213, 0, 221, 0, 214, 0, 127, 0, 219, 0, 235, 0, 231, 0, 233, 0, 234, 0, 246, 0, 77, 0, 80, 1, 1, 0, 253, 0, 255, 1, 6, 1, 0, 1, 4, 0, 73, 1, 10, 1, 20, 1, 14, 1, 17, 1, 18, 1, 33, 1, 29, 1, 31, 1, 32, 0, 76, 1, 47, 1, 52, 1, 48, 1, 50, 1, 58, 1, 51, 0, 128, 1, 56, 1, 72, 1, 68, 1, 70, 1, 71, 1, 83, 0, 78, 1, 85, 0, 163, 1, 2, 0, 159, 0, 254, 0, 164, 1, 3, 0, 169, 1, 8, 0, 172, 1, 11, 2, 117, 2, 118, 0, 170, 1, 9, 0, 173, 1, 12, 0, 174, 1, 13, 0, 182, 1, 21, 0, 176, 1, 15, 0, 180, 1, 19, 0, 184, 1, 23, 0, 177, 1, 16, 0, 187, 1, 25, 0, 186, 1, 24, 2, 119, 2, 120, 0, 188, 1, 26, 0, 190, 1, 28, 0, 189, 1, 27, 0, 199, 1, 36, 0, 197, 1, 34, 0, 192, 1, 30, 0, 198, 1, 35, 0, 195, 1, 109, 1, 110, 1, 111, 0, 200, 1, 37, 0, 201, 1, 38, 0, 79, 0, 202, 1, 39, 0, 204, 1, 41, 0, 203, 1, 40, 0, 205, 1, 42, 0, 206, 1, 43, 0, 207, 1, 44, 0, 209, 1, 46, 0, 208, 1, 45, 2, 121, 0, 183, 1, 22, 0, 218, 1, 55, 0, 212, 1, 49, 0, 217, 1, 54, 0, 74, 0, 75, 0, 222, 1, 59, 0, 224, 1, 61, 0, 223, 1, 60, 0, 225, 1, 62, 0, 228, 1, 65, 0, 227, 1, 64, 0, 226, 1, 63, 2, 126, 2, 128, 0, 230, 1, 67, 0, 229, 1, 66, 0, 241, 1, 78, 0, 238, 1, 75, 0, 232, 1, 69, 0, 240, 1, 77, 0, 237, 1, 74, 0, 239, 1, 76, 0, 243, 1, 80, 0, 247, 1, 84, 0, 248, 0, 250, 1, 87, 0, 252, 1, 89, 0, 251, 1, 88, 1, 112, 0, 216, 1, 53, 0, 236, 1, 73, 0, 166, 1, 5, 0, 168, 1, 7, 0, 220, 1, 57, 1, 92, 1, 100, 1, 95, 1, 96, 1, 98, 1, 103, 1, 93, 1, 99, 1, 120, 1, 121, 2, 212, 1, 122, 2, 213, 2, 214, 2, 215, 1, 123, 1, 124, 2, 222, 2, 223, 2, 224, 1, 125, 2, 225, 2, 226, 1, 126, 2, 227, 2, 228, 1, 127, 2, 229, 1, 128, 2, 230, 1, 129, 2, 231, 2, 232, 1, 130, 2, 233, 1, 131, 1, 132, 2, 234, 2, 235, 2, 236, 2, 237, 2, 238, 2, 239, 2, 240, 2, 241, 1, 142, 2, 243, 2, 244, 1, 143, 2, 242, 1, 144, 1, 145, 1, 146, 1, 147, 1, 148, 1, 149, 1, 150, 2, 245, 1, 151, 1, 152, 3, 42, 2, 251, 1, 156, 2, 252, 1, 157, 2, 253, 2, 254, 2, 255, 3, 0, 1, 158, 1, 159, 1, 160, 3, 2, 3, 43, 3, 3, 1, 161, 3, 4, 1, 162, 3, 5, 3, 6, 1, 163, 3, 7, 1, 164, 1, 165, 1, 166, 3, 8, 3, 1, 1, 167, 3, 9, 3, 10, 3, 11, 3, 12, 3, 13, 3, 14, 3, 15, 1, 168, 3, 16, 3, 17, 3, 18, 1, 179, 1, 180, 1, 181, 1, 182, 3, 19, 1, 183, 1, 184, 1, 185, 3, 20, 1, 186, 1, 187, 1, 188, 1, 189, 3, 21, 1, 190, 3, 22, 3, 23, 1, 191, 3, 24, 1, 192, 3, 25, 3, 44, 3, 26, 1, 203, 3, 27, 1, 204, 3, 28, 3, 29, 3, 30, 3, 31, 1, 205, 1, 206, 1, 207, 3, 32, 3, 45, 3, 33, 1, 208, 1, 209, 1, 210, 3, 212, 3, 46, 3, 47, 1, 224, 1, 225, 1, 226, 1, 227, 3, 48, 3, 49, 1, 243, 1, 244, 3, 217, 3, 218, 3, 211, 3, 210, 1, 245, 1, 246, 1, 247, 1, 248, 3, 213, 3, 214, 1, 249, 1, 250, 3, 205, 3, 206, 3, 50, 3, 51, 3, 191, 3, 192, 1, 251, 1, 252, 3, 215, 3, 216, 1, 253, 1, 254, 3, 193, 3, 194, 1, 255, 2, 0, 2, 1, 2, 2, 2, 3, 2, 4, 3, 52, 3, 53, 3, 195, 3, 196, 3, 54, 3, 55, 3, 225, 3, 226, 3, 197, 3, 198, 2, 5, 2, 6, 3, 199, 3, 200, 2, 7, 2, 8, 2, 9, 3, 209, 2, 10, 2, 11, 3, 207, 3, 208, 3, 56, 3, 57, 3, 58, 2, 12, 2, 13, 3, 223, 3, 224, 2, 14, 2, 15, 3, 219, 3, 220, 3, 201, 3, 202, 3, 221, 3, 222, 2, 16, 3, 69, 3, 68, 3, 70, 3, 71, 3, 72, 3, 73, 3, 74, 2, 17, 2, 18, 3, 203, 3, 204, 3, 95, 3, 96, 2, 19, 2, 20, 3, 97, 3, 98, 3, 227, 3, 228, 2, 21, 3, 99, 3, 229, 3, 100, 3, 101, 0, 245, 1, 82, 0, 242, 1, 79, 0, 244, 1, 81, 0, 249, 1, 86, 0, 104, 0, 105, 3, 230, 2, 49, 0, 108, 0, 109, 0, 110, 2, 50, 0, 111, 0, 112, 0, 113, 0, 144, 0, 145, 0, 101, 2, 51, 0, 99, 3, 190, 2, 54, 2, 65, 0, 125, 184, 1, 255, 133, 176, 4, 141, 0, 0, 0, 0, 17, 0, 210, 0, 3, 0, 1, 4, 9, 0, 0, 0, 180, 0, 0, 0, 3, 0, 1, 4, 9, 0, 1, 0, 22, 0, 180, 0, 3, 0, 1, 4, 9, 0, 2, 0, 14, 0, 202, 0, 3, 0, 1, 4, 9, 0, 3, 0, 58, 0, 216, 0, 3, 0, 1, 4, 9, 0, 4, 0, 38, 1, 18, 0, 3, 0, 1, 4, 9, 0, 5, 0, 26, 1, 56, 0, 3, 0, 1, 4, 9, 0, 6, 0, 36, 1, 82, 0, 3, 0, 1, 4, 9, 0, 7, 0, 74, 1, 118, 0, 3, 0, 1, 4, 9, 0, 9, 0, 12, 1, 192, 0, 3, 0, 1, 4, 9, 0, 11, 0, 20, 1, 204, 0, 3, 0, 1, 4, 9, 0, 12, 0, 38, 1, 224, 0, 3, 0, 1, 4, 9, 0, 13, 0, 92, 2, 6, 0, 3, 0, 1, 4, 9, 0, 14, 0, 84, 2, 98, 0, 3, 0, 1, 4, 9, 1, 0, 0, 12, 2, 182, 0, 3, 0, 1, 4, 9, 1, 11, 0, 12, 2, 194, 0, 3, 0, 1, 4, 9, 1, 14, 0, 14, 0, 202, 0, 3, 0, 1, 4, 9, 1, 17, 0, 12, 2, 206, 0, 67, 0, 111, 0, 112, 0, 121, 0, 114, 0, 105, 0, 103, 0, 104, 0, 116, 0, 32, 0, 50, 0, 48, 0, 49, 0, 53, 0, 32, 0, 84, 0, 104, 0, 101, 0, 32, 0, 82, 0, 111, 0, 98, 0, 111, 0, 116, 0, 111, 0, 32, 0, 77, 0, 111, 0, 110, 0, 111, 0, 32, 0, 80, 0, 114, 0, 111, 0, 106, 0, 101, 0, 99, 0, 116, 0, 32, 0, 65, 0, 117, 0, 116, 0, 104, 0, 111, 0, 114, 0, 115, 0, 32, 0, 40, 0, 104, 0, 116, 0, 116, 0, 112, 0, 115, 0, 58, 0, 47, 0, 47, 0, 103, 0, 105, 0, 116, 0, 104, 0, 117, 0, 98, 0, 46, 0, 99, 0, 111, 0, 109, 0, 47, 0, 103, 0, 111, 0, 111, 0, 103, 0, 108, 0, 101, 0, 102, 0, 111, 0, 110, 0, 116, 0, 115, 0, 47, 0, 114, 0, 111, 0, 98, 0, 111, 0, 116, 0, 111, 0, 109, 0, 111, 0, 110, 0, 111, 0, 41, 0, 82, 0, 111, 0, 98, 0, 111, 0, 116, 0, 111, 0, 32, 0, 77, 0, 111, 0, 110, 0, 111, 0, 82, 0, 101, 0, 103, 0, 117, 0, 108, 0, 97, 0, 114, 0, 51, 0, 46, 0, 48, 0, 48, 0, 48, 0, 59, 0, 71, 0, 79, 0, 79, 0, 71, 0, 59, 0, 82, 0, 111, 0, 98, 0, 111, 0, 116, 0, 111, 0, 77, 0, 111, 0, 110, 0, 111, 0, 45, 0, 82, 0, 101, 0, 103, 0, 117, 0, 108, 0, 97, 0, 114, 0, 82, 0, 111, 0, 98, 0, 111, 0, 116, 0, 111, 0, 32, 0, 77, 0, 111, 0, 110, 0, 111, 0, 32, 0, 82, 0, 101, 0, 103, 0, 117, 0, 108, 0, 97, 0, 114, 0, 86, 0, 101, 0, 114, 0, 115, 0, 105, 0, 111, 0, 110, 0, 32, 0, 51, 0, 46, 0, 48, 0, 48, 0, 48, 0, 82, 0, 111, 0, 98, 0, 111, 0, 116, 0, 111, 0, 77, 0, 111, 0, 110, 0, 111, 0, 45, 0, 82, 0, 101, 0, 103, 0, 117, 0, 108, 0, 97, 0, 114, 0, 82, 0, 111, 0, 98, 0, 111, 0, 116, 0, 111, 0, 32, 0, 77, 0, 111, 0, 110, 0, 111, 0, 32, 0, 105, 0, 115, 0, 32, 0, 97, 0, 32, 0, 116, 0, 114, 0, 97, 0, 100, 0, 101, 0, 109, 0, 97, 0, 114, 0, 107, 0, 32, 0, 111, 0, 102, 0, 32, 0, 71, 0, 111, 0, 111, 0, 103, 0, 108, 0, 101, 0, 46, 0, 71, 0, 111, 0, 111, 0, 103, 0, 108, 0, 101, 0, 71, 0, 111, 0, 111, 0, 103, 0, 108, 0, 101, 0, 46, 0, 99, 0, 111, 0, 109, 0, 67, 0, 104, 0, 114, 0, 105, 0, 115, 0, 116, 0, 105, 0, 97, 0, 110, 0, 32, 0, 82, 0, 111, 0, 98, 0, 101, 0, 114, 0, 116, 0, 115, 0, 111, 0, 110, 0, 76, 0, 105, 0, 99, 0, 101, 0, 110, 0, 115, 0, 101, 0, 100, 0, 32, 0, 117, 0, 110, 0, 100, 0, 101, 0, 114, 0, 32, 0, 116, 0, 104, 0, 101, 0, 32, 0, 65, 0, 112, 0, 97, 0, 99, 0, 104, 0, 101, 0, 32, 0, 76, 0, 105, 0, 99, 0, 101, 0, 110, 0, 115, 0, 101, 0, 44, 0, 32, 0, 86, 0, 101, 0, 114, 0, 115, 0, 105, 0, 111, 0, 110, 0, 32, 0, 50, 0, 46, 0, 48, 0, 104, 0, 116, 0, 116, 0, 112, 0, 58, 0, 47, 0, 47, 0, 119, 0, 119, 0, 119, 0, 46, 0, 97, 0, 112, 0, 97, 0, 99, 0, 104, 0, 101, 0, 46, 0, 111, 0, 114, 0, 103, 0, 47, 0, 108, 0, 105, 0, 99, 0, 101, 0, 110, 0, 115, 0, 101, 0, 115, 0, 47, 0, 76, 0, 73, 0, 67, 0, 69, 0, 78, 0, 83, 0, 69, 0, 45, 0, 50, 0, 46, 0, 48, 0, 87, 0, 101, 0, 105, 0, 103, 0, 104, 0, 116, 0, 73, 0, 116, 0, 97, 0, 108, 0, 105, 0, 99, 0, 78, 0, 111, 0, 114, 0, 109, 0, 97, 0, 108, 0, 2, 0, 0, 0, 0, 0, 0, 255, 106, 0, 100, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 231, 0, 0, 0, 3, 0, 36, 0, 37, 0, 38, 0, 39, 0, 40, 0, 41, 0, 42, 0, 43, 0, 44, 0, 45, 0, 46, 0, 47, 0, 48, 0, 49, 0, 50, 0, 51, 0, 52, 0, 53, 0, 54, 0, 55, 0, 56, 0, 57, 0, 58, 0, 59, 0, 60, 0, 61, 0, 68, 0, 69, 0, 70, 0, 71, 0, 72, 0, 73, 0, 74, 0, 75, 0, 76, 0, 77, 0, 78, 0, 79, 0, 80, 0, 81, 0, 82, 0, 83, 0, 84, 0, 85, 0, 86, 0, 87, 0, 88, 0, 89, 0, 90, 0, 91, 0, 92, 0, 93, 0, 19, 0, 20, 0, 21, 0, 22, 0, 23, 0, 24, 0, 25, 0, 26, 0, 27, 0, 28, 0, 241, 0, 242, 0, 243, 0, 157, 0, 158, 0, 244, 0, 245, 0, 246, 0, 144, 0, 160, 0, 176, 0, 177, 0, 234, 0, 237, 0, 238, 1, 2, 0, 137, 1, 3, 0, 7, 0, 132, 0, 133, 0, 150, 0, 166, 0, 247, 1, 4, 1, 5, 0, 189, 0, 4, 0, 163, 0, 34, 0, 162, 0, 15, 0, 17, 0, 29, 0, 30, 0, 171, 0, 195, 0, 135, 0, 66, 0, 16, 0, 178, 0, 179, 0, 10, 0, 5, 0, 182, 0, 183, 0, 196, 0, 180, 0, 181, 0, 197, 1, 6, 1, 7, 0, 11, 0, 12, 0, 62, 0, 64, 0, 94, 0, 96, 0, 190, 0, 191, 0, 14, 0, 239, 0, 147, 0, 240, 0, 184, 0, 32, 0, 143, 0, 167, 0, 31, 0, 33, 0, 148, 0, 149, 0, 164, 0, 18, 0, 63, 0, 188, 0, 8, 0, 198, 0, 95, 0, 232, 0, 130, 0, 194, 0, 139, 0, 138, 0, 140, 0, 131, 0, 13, 0, 6, 0, 9, 0, 35, 0, 134, 0, 136, 0, 65, 0, 97, 0, 201, 1, 8, 0, 199, 0, 98, 0, 173, 1, 9, 1, 10, 0, 99, 1, 11, 0, 174, 1, 12, 0, 253, 0, 255, 0, 100, 1, 13, 1, 14, 1, 15, 0, 101, 1, 16, 1, 17, 0, 200, 0, 202, 1, 18, 0, 203, 1, 19, 1, 20, 1, 21, 0, 233, 0, 248, 1, 22, 1, 23, 1, 24, 1, 25, 0, 204, 1, 26, 0, 205, 0, 206, 0, 250, 0, 207, 1, 27, 1, 28, 1, 29, 1, 30, 1, 31, 1, 32, 1, 33, 1, 34, 1, 35, 0, 226, 1, 36, 1, 37, 1, 38, 0, 102, 0, 208, 1, 39, 0, 209, 0, 103, 0, 211, 1, 40, 1, 41, 1, 42, 0, 145, 1, 43, 0, 175, 1, 44, 1, 45, 1, 46, 1, 47, 0, 228, 0, 251, 1, 48, 1, 49, 1, 50, 0, 212, 1, 51, 0, 213, 0, 104, 0, 214, 1, 52, 1, 53, 1, 54, 1, 55, 1, 56, 1, 57, 1, 58, 1, 59, 1, 60, 1, 61, 0, 235, 1, 62, 0, 187, 1, 63, 1, 64, 0, 230, 1, 65, 0, 105, 1, 66, 0, 107, 0, 108, 0, 106, 1, 67, 1, 68, 0, 110, 1, 69, 0, 109, 1, 70, 0, 254, 1, 0, 0, 111, 1, 71, 1, 72, 1, 1, 0, 112, 1, 73, 1, 74, 0, 114, 0, 115, 1, 75, 0, 113, 1, 76, 1, 77, 1, 78, 0, 249, 1, 79, 1, 80, 1, 81, 1, 82, 0, 116, 1, 83, 0, 118, 0, 119, 0, 117, 1, 84, 1, 85, 1, 86, 1, 87, 1, 88, 1, 89, 1, 90, 1, 91, 1, 92, 0, 227, 1, 93, 1, 94, 1, 95, 0, 120, 0, 121, 1, 96, 0, 123, 0, 124, 0, 122, 1, 97, 1, 98, 1, 99, 0, 161, 1, 100, 0, 125, 1, 101, 1, 102, 1, 103, 1, 104, 0, 229, 0, 252, 1, 105, 1, 106, 1, 107, 0, 126, 1, 108, 0, 128, 0, 129, 0, 127, 1, 109, 1, 110, 1, 111, 1, 112, 1, 113, 1, 114, 1, 115, 1, 116, 1, 117, 1, 118, 0, 236, 1, 119, 0, 186, 1, 120, 1, 121, 0, 231, 1, 122, 0, 67, 0, 141, 0, 216, 0, 217, 0, 218, 0, 219, 0, 220, 0, 142, 0, 221, 0, 223, 0, 225, 1, 123, 0, 222, 0, 224, 1, 124, 0, 2, 0, 169, 0, 151, 0, 170, 0, 215, 1, 125, 1, 126, 1, 127, 1, 128, 1, 129, 1, 130, 1, 131, 1, 132, 1, 133, 1, 134, 1, 135, 1, 136, 1, 137, 1, 138, 0, 168, 1, 139, 1, 140, 1, 141, 1, 142, 1, 143, 1, 144, 1, 145, 0, 159, 1, 146, 1, 147, 1, 148, 1, 149, 1, 150, 1, 151, 1, 152, 1, 153, 1, 154, 1, 155, 1, 156, 0, 155, 1, 157, 1, 158, 1, 159, 1, 160, 1, 161, 1, 162, 1, 163, 1, 164, 1, 165, 1, 166, 1, 167, 1, 168, 1, 169, 1, 170, 1, 171, 1, 172, 1, 173, 1, 174, 1, 175, 1, 176, 1, 177, 1, 178, 1, 179, 1, 180, 1, 181, 1, 182, 1, 183, 1, 184, 1, 185, 1, 186, 1, 187, 1, 188, 1, 189, 1, 190, 1, 191, 1, 192, 1, 193, 1, 194, 1, 195, 1, 196, 1, 197, 1, 198, 1, 199, 1, 200, 1, 201, 1, 202, 1, 203, 1, 204, 1, 205, 1, 206, 1, 207, 1, 208, 1, 209, 1, 210, 1, 211, 1, 212, 1, 213, 1, 214, 1, 215, 1, 216, 1, 217, 1, 218, 1, 219, 1, 220, 1, 221, 1, 222, 1, 223, 1, 224, 1, 225, 1, 226, 1, 227, 1, 228, 1, 229, 1, 230, 1, 231, 1, 232, 1, 233, 1, 234, 1, 235, 1, 236, 1, 237, 1, 238, 1, 239, 1, 240, 1, 241, 1, 242, 1, 243, 1, 244, 1, 245, 1, 246, 1, 247, 1, 248, 1, 249, 1, 250, 1, 251, 1, 252, 1, 253, 1, 254, 1, 255, 2, 0, 2, 1, 2, 2, 2, 3, 2, 4, 2, 5, 2, 6, 2, 7, 2, 8, 2, 9, 2, 10, 2, 11, 2, 12, 2, 13, 2, 14, 2, 15, 2, 16, 2, 17, 2, 18, 2, 19, 2, 20, 2, 21, 2, 22, 2, 23, 2, 24, 2, 25, 2, 26, 2, 27, 2, 28, 2, 29, 2, 30, 2, 31, 2, 32, 2, 33, 2, 34, 2, 35, 2, 36, 2, 37, 2, 38, 2, 39, 2, 40, 2, 41, 2, 42, 2, 43, 2, 44, 2, 45, 2, 46, 2, 47, 2, 48, 2, 49, 2, 50, 2, 51, 2, 52, 2, 53, 2, 54, 2, 55, 2, 56, 2, 57, 2, 58, 2, 59, 2, 60, 2, 61, 2, 62, 2, 63, 2, 64, 2, 65, 2, 66, 2, 67, 2, 68, 2, 69, 2, 70, 2, 71, 2, 72, 2, 73, 2, 74, 0, 152, 0, 154, 0, 153, 0, 165, 0, 146, 0, 156, 0, 185, 2, 75, 2, 76, 2, 77, 2, 78, 2, 79, 2, 80, 2, 81, 2, 82, 2, 83, 2, 84, 2, 85, 2, 86, 2, 87, 2, 88, 2, 89, 2, 90, 2, 91, 2, 92, 2, 93, 2, 94, 2, 95, 2, 96, 2, 97, 2, 98, 2, 99, 2, 100, 2, 101, 2, 102, 2, 103, 2, 104, 2, 105, 2, 106, 2, 107, 2, 108, 2, 109, 2, 110, 2, 111, 2, 112, 2, 113, 2, 114, 2, 115, 2, 116, 2, 117, 2, 118, 2, 119, 0, 172, 2, 120, 2, 121, 2, 122, 2, 123, 2, 124, 2, 125, 2, 126, 2, 127, 2, 128, 2, 129, 2, 130, 2, 131, 2, 132, 2, 133, 2, 134, 2, 135, 2, 136, 2, 137, 2, 138, 2, 139, 2, 140, 2, 141, 2, 142, 2, 143, 2, 144, 2, 145, 2, 146, 2, 147, 2, 148, 2, 149, 2, 150, 2, 151, 2, 152, 2, 153, 2, 154, 2, 155, 2, 156, 2, 157, 2, 158, 2, 159, 2, 160, 2, 161, 2, 162, 2, 163, 2, 164, 2, 165, 2, 166, 2, 167, 2, 168, 2, 169, 2, 170, 2, 171, 2, 172, 2, 173, 2, 174, 2, 175, 2, 176, 2, 177, 2, 178, 2, 179, 2, 180, 2, 181, 2, 182, 2, 183, 2, 184, 2, 185, 2, 186, 2, 187, 2, 188, 2, 189, 2, 190, 2, 191, 2, 192, 2, 193, 2, 194, 2, 195, 2, 196, 2, 197, 2, 198, 2, 199, 2, 200, 2, 201, 2, 202, 2, 203, 2, 204, 2, 205, 2, 206, 2, 207, 2, 208, 2, 209, 2, 210, 2, 211, 2, 212, 2, 213, 2, 214, 2, 215, 2, 216, 2, 217, 2, 218, 2, 219, 2, 220, 2, 221, 2, 222, 2, 223, 2, 224, 2, 225, 2, 226, 2, 227, 2, 228, 2, 229, 2, 230, 2, 231, 2, 232, 2, 233, 2, 234, 2, 235, 2, 236, 2, 237, 2, 238, 2, 239, 2, 240, 2, 241, 2, 242, 2, 243, 2, 244, 2, 245, 2, 246, 2, 247, 2, 248, 2, 249, 2, 250, 2, 251, 2, 252, 2, 253, 2, 254, 2, 255, 3, 0, 3, 1, 3, 2, 3, 3, 3, 4, 3, 5, 3, 6, 3, 7, 3, 8, 3, 9, 3, 10, 3, 11, 3, 12, 3, 13, 3, 14, 3, 15, 3, 16, 3, 17, 3, 18, 3, 19, 3, 20, 3, 21, 3, 22, 3, 23, 3, 24, 3, 25, 3, 26, 3, 27, 3, 28, 3, 29, 3, 30, 3, 31, 3, 32, 3, 33, 3, 34, 3, 35, 3, 36, 3, 37, 3, 38, 3, 39, 3, 40, 3, 41, 3, 42, 3, 43, 3, 44, 3, 45, 3, 46, 3, 47, 3, 48, 3, 49, 3, 50, 3, 51, 3, 52, 3, 53, 3, 54, 3, 55, 3, 56, 3, 57, 3, 58, 3, 59, 3, 60, 3, 61, 3, 62, 3, 63, 3, 64, 3, 65, 3, 66, 3, 67, 3, 68, 3, 69, 3, 70, 3, 71, 3, 72, 3, 73, 3, 74, 3, 75, 3, 76, 3, 77, 3, 78, 3, 79, 3, 80, 3, 81, 3, 82, 3, 83, 3, 84, 3, 85, 3, 86, 3, 87, 3, 88, 3, 89, 3, 90, 3, 91, 3, 92, 3, 93, 3, 94, 3, 95, 3, 96, 3, 97, 3, 98, 3, 99, 3, 100, 3, 101, 3, 102, 3, 103, 3, 104, 3, 105, 3, 106, 3, 107, 3, 108, 3, 109, 3, 110, 3, 111, 3, 112, 3, 113, 3, 114, 3, 115, 3, 116, 3, 117, 3, 118, 3, 119, 3, 120, 3, 121, 3, 122, 3, 123, 3, 124, 3, 125, 3, 126, 3, 127, 3, 128, 3, 129, 3, 130, 3, 131, 3, 132, 3, 133, 3, 134, 3, 135, 3, 136, 3, 137, 3, 138, 3, 139, 3, 140, 3, 141, 3, 142, 3, 143, 3, 144, 3, 145, 3, 146, 3, 147, 3, 148, 3, 149, 3, 150, 3, 151, 3, 152, 3, 153, 3, 154, 3, 155, 3, 156, 3, 157, 3, 158, 3, 159, 3, 160, 3, 161, 3, 162, 3, 163, 3, 164, 3, 165, 3, 166, 3, 167, 3, 168, 3, 169, 3, 170, 3, 171, 3, 172, 3, 173, 3, 174, 3, 175, 3, 176, 3, 177, 3, 178, 3, 179, 3, 180, 3, 181, 3, 182, 3, 183, 3, 184, 3, 185, 3, 186, 3, 187, 3, 188, 3, 189, 3, 190, 3, 191, 3, 192, 3, 193, 3, 194, 3, 195, 3, 196, 3, 197, 3, 198, 3, 199, 3, 200, 3, 201, 3, 202, 3, 203, 3, 204, 3, 205, 3, 206, 3, 207, 3, 208, 3, 209, 3, 210, 3, 211, 3, 212, 3, 213, 3, 214, 3, 215, 3, 216, 3, 217, 3, 218, 3, 219, 3, 220, 3, 221, 3, 222, 3, 223, 3, 224, 3, 225, 3, 226, 3, 227, 3, 228, 3, 229, 3, 230, 3, 231, 3, 232, 3, 233, 3, 234, 12, 107, 103, 114, 101, 101, 110, 108, 97, 110, 100, 105, 99, 5, 115, 99, 104, 119, 97, 4, 108, 105, 114, 97, 6, 112, 101, 115, 101, 116, 97, 6, 109, 105, 110, 117, 116, 101, 6, 115, 101, 99, 111, 110, 100, 6, 65, 98, 114, 101, 118, 101, 7, 65, 109, 97, 99, 114, 111, 110, 7, 65, 111, 103, 111, 110, 101, 107, 10, 65, 114, 105, 110, 103, 97, 99, 117, 116, 101, 7, 65, 69, 97, 99, 117, 116, 101, 11, 67, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 6, 68, 99, 97, 114, 111, 110, 6, 68, 99, 114, 111, 97, 116, 6, 69, 98, 114, 101, 118, 101, 6, 69, 99, 97, 114, 111, 110, 10, 69, 100, 111, 116, 97, 99, 99, 101, 110, 116, 7, 69, 109, 97, 99, 114, 111, 110, 3, 69, 110, 103, 7, 69, 111, 103, 111, 110, 101, 107, 11, 71, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 12, 71, 99, 111, 109, 109, 97, 97, 99, 99, 101, 110, 116, 4, 72, 98, 97, 114, 11, 72, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 6, 73, 98, 114, 101, 118, 101, 7, 73, 109, 97, 99, 114, 111, 110, 7, 73, 111, 103, 111, 110, 101, 107, 6, 73, 116, 105, 108, 100, 101, 11, 74, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 12, 75, 99, 111, 109, 109, 97, 97, 99, 99, 101, 110, 116, 6, 76, 97, 99, 117, 116, 101, 6, 76, 99, 97, 114, 111, 110, 12, 76, 99, 111, 109, 109, 97, 97, 99, 99, 101, 110, 116, 4, 76, 100, 111, 116, 6, 78, 97, 99, 117, 116, 101, 6, 78, 99, 97, 114, 111, 110, 12, 78, 99, 111, 109, 109, 97, 97, 99, 99, 101, 110, 116, 6, 79, 98, 114, 101, 118, 101, 5, 79, 104, 111, 114, 110, 13, 79, 104, 117, 110, 103, 97, 114, 117, 109, 108, 97, 117, 116, 7, 79, 109, 97, 99, 114, 111, 110, 11, 79, 115, 108, 97, 115, 104, 97, 99, 117, 116, 101, 6, 82, 97, 99, 117, 116, 101, 6, 82, 99, 97, 114, 111, 110, 12, 82, 99, 111, 109, 109, 97, 97, 99, 99, 101, 110, 116, 6, 83, 97, 99, 117, 116, 101, 11, 83, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 4, 84, 98, 97, 114, 6, 84, 99, 97, 114, 111, 110, 6, 85, 98, 114, 101, 118, 101, 5, 85, 104, 111, 114, 110, 13, 85, 104, 117, 110, 103, 97, 114, 117, 109, 108, 97, 117, 116, 7, 85, 109, 97, 99, 114, 111, 110, 7, 85, 111, 103, 111, 110, 101, 107, 5, 85, 114, 105, 110, 103, 6, 85, 116, 105, 108, 100, 101, 6, 87, 97, 99, 117, 116, 101, 11, 87, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 9, 87, 100, 105, 101, 114, 101, 115, 105, 115, 6, 87, 103, 114, 97, 118, 101, 11, 89, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 6, 89, 103, 114, 97, 118, 101, 6, 90, 97, 99, 117, 116, 101, 10, 90, 100, 111, 116, 97, 99, 99, 101, 110, 116, 6, 97, 98, 114, 101, 118, 101, 7, 97, 109, 97, 99, 114, 111, 110, 7, 97, 111, 103, 111, 110, 101, 107, 10, 97, 114, 105, 110, 103, 97, 99, 117, 116, 101, 7, 97, 101, 97, 99, 117, 116, 101, 11, 99, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 6, 100, 99, 97, 114, 111, 110, 6, 101, 98, 114, 101, 118, 101, 6, 101, 99, 97, 114, 111, 110, 10, 101, 100, 111, 116, 97, 99, 99, 101, 110, 116, 7, 101, 109, 97, 99, 114, 111, 110, 3, 101, 110, 103, 7, 101, 111, 103, 111, 110, 101, 107, 11, 103, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 12, 103, 99, 111, 109, 109, 97, 97, 99, 99, 101, 110, 116, 4, 104, 98, 97, 114, 11, 104, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 6, 105, 98, 114, 101, 118, 101, 7, 105, 109, 97, 99, 114, 111, 110, 7, 105, 111, 103, 111, 110, 101, 107, 6, 105, 116, 105, 108, 100, 101, 11, 106, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 12, 107, 99, 111, 109, 109, 97, 97, 99, 99, 101, 110, 116, 6, 108, 97, 99, 117, 116, 101, 6, 108, 99, 97, 114, 111, 110, 12, 108, 99, 111, 109, 109, 97, 97, 99, 99, 101, 110, 116, 4, 108, 100, 111, 116, 6, 110, 97, 99, 117, 116, 101, 6, 110, 99, 97, 114, 111, 110, 12, 110, 99, 111, 109, 109, 97, 97, 99, 99, 101, 110, 116, 6, 111, 98, 114, 101, 118, 101, 5, 111, 104, 111, 114, 110, 13, 111, 104, 117, 110, 103, 97, 114, 117, 109, 108, 97, 117, 116, 7, 111, 109, 97, 99, 114, 111, 110, 11, 111, 115, 108, 97, 115, 104, 97, 99, 117, 116, 101, 6, 114, 97, 99, 117, 116, 101, 6, 114, 99, 97, 114, 111, 110, 12, 114, 99, 111, 109, 109, 97, 97, 99, 99, 101, 110, 116, 6, 115, 97, 99, 117, 116, 101, 11, 115, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 4, 116, 98, 97, 114, 6, 116, 99, 97, 114, 111, 110, 6, 117, 98, 114, 101, 118, 101, 5, 117, 104, 111, 114, 110, 13, 117, 104, 117, 110, 103, 97, 114, 117, 109, 108, 97, 117, 116, 7, 117, 109, 97, 99, 114, 111, 110, 7, 117, 111, 103, 111, 110, 101, 107, 5, 117, 114, 105, 110, 103, 6, 117, 116, 105, 108, 100, 101, 6, 119, 97, 99, 117, 116, 101, 11, 119, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 9, 119, 100, 105, 101, 114, 101, 115, 105, 115, 6, 119, 103, 114, 97, 118, 101, 11, 121, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 6, 121, 103, 114, 97, 118, 101, 6, 122, 97, 99, 117, 116, 101, 10, 122, 100, 111, 116, 97, 99, 99, 101, 110, 116, 8, 100, 111, 116, 98, 101, 108, 111, 119, 11, 99, 111, 109, 109, 97, 97, 99, 99, 101, 110, 116, 2, 73, 74, 2, 105, 106, 5, 108, 111, 110, 103, 115, 7, 117, 110, 105, 48, 50, 51, 55, 7, 117, 110, 105, 48, 50, 70, 51, 9, 103, 114, 97, 118, 101, 99, 111, 109, 98, 9, 97, 99, 117, 116, 101, 99, 111, 109, 98, 9, 116, 105, 108, 100, 101, 99, 111, 109, 98, 4, 104, 111, 111, 107, 7, 117, 110, 105, 48, 51, 48, 70, 5, 116, 111, 110, 111, 115, 13, 100, 105, 101, 114, 101, 115, 105, 115, 116, 111, 110, 111, 115, 9, 97, 110, 111, 116, 101, 108, 101, 105, 97, 5, 71, 97, 109, 109, 97, 5, 84, 104, 101, 116, 97, 6, 76, 97, 109, 98, 100, 97, 2, 88, 105, 2, 80, 105, 5, 83, 105, 103, 109, 97, 3, 80, 104, 105, 3, 80, 115, 105, 5, 97, 108, 112, 104, 97, 4, 98, 101, 116, 97, 5, 103, 97, 109, 109, 97, 5, 100, 101, 108, 116, 97, 7, 101, 112, 115, 105, 108, 111, 110, 4, 122, 101, 116, 97, 3, 101, 116, 97, 5, 116, 104, 101, 116, 97, 4, 105, 111, 116, 97, 6, 108, 97, 109, 98, 100, 97, 2, 120, 105, 3, 114, 104, 111, 6, 115, 105, 103, 109, 97, 49, 5, 115, 105, 103, 109, 97, 3, 116, 97, 117, 7, 117, 112, 115, 105, 108, 111, 110, 3, 112, 104, 105, 3, 112, 115, 105, 5, 111, 109, 101, 103, 97, 7, 117, 110, 105, 48, 51, 68, 49, 7, 117, 110, 105, 48, 51, 68, 50, 7, 117, 110, 105, 48, 51, 68, 54, 7, 117, 110, 105, 48, 52, 48, 50, 7, 117, 110, 105, 48, 52, 48, 52, 7, 117, 110, 105, 48, 52, 48, 57, 7, 117, 110, 105, 48, 52, 48, 65, 7, 117, 110, 105, 48, 52, 48, 66, 7, 117, 110, 105, 48, 52, 48, 70, 7, 117, 110, 105, 48, 52, 49, 49, 7, 117, 110, 105, 48, 52, 49, 52, 7, 117, 110, 105, 48, 52, 49, 54, 7, 117, 110, 105, 48, 52, 49, 55, 7, 117, 110, 105, 48, 52, 49, 56, 7, 117, 110, 105, 48, 52, 49, 66, 7, 117, 110, 105, 48, 52, 50, 51, 7, 117, 110, 105, 48, 52, 50, 54, 7, 117, 110, 105, 48, 52, 50, 55, 7, 117, 110, 105, 48, 52, 50, 56, 7, 117, 110, 105, 48, 52, 50, 57, 7, 117, 110, 105, 48, 52, 50, 65, 7, 117, 110, 105, 48, 52, 50, 66, 7, 117, 110, 105, 48, 52, 50, 67, 7, 117, 110, 105, 48, 52, 50, 68, 7, 117, 110, 105, 48, 52, 50, 69, 7, 117, 110, 105, 48, 52, 50, 70, 7, 117, 110, 105, 48, 52, 51, 49, 7, 117, 110, 105, 48, 52, 51, 50, 7, 117, 110, 105, 48, 52, 51, 51, 7, 117, 110, 105, 48, 52, 51, 52, 7, 117, 110, 105, 48, 52, 51, 54, 7, 117, 110, 105, 48, 52, 51, 55, 7, 117, 110, 105, 48, 52, 51, 56, 7, 117, 110, 105, 48, 52, 51, 65, 7, 117, 110, 105, 48, 52, 51, 66, 7, 117, 110, 105, 48, 52, 51, 67, 7, 117, 110, 105, 48, 52, 51, 68, 7, 117, 110, 105, 48, 52, 51, 70, 7, 117, 110, 105, 48, 52, 52, 50, 7, 117, 110, 105, 48, 52, 52, 52, 7, 117, 110, 105, 48, 52, 52, 54, 7, 117, 110, 105, 48, 52, 52, 55, 7, 117, 110, 105, 48, 52, 52, 56, 7, 117, 110, 105, 48, 52, 52, 57, 7, 117, 110, 105, 48, 52, 52, 65, 7, 117, 110, 105, 48, 52, 52, 66, 7, 117, 110, 105, 48, 52, 52, 67, 7, 117, 110, 105, 48, 52, 52, 68, 7, 117, 110, 105, 48, 52, 52, 69, 7, 117, 110, 105, 48, 52, 52, 70, 7, 117, 110, 105, 48, 52, 53, 50, 7, 117, 110, 105, 48, 52, 53, 52, 7, 117, 110, 105, 48, 52, 53, 57, 7, 117, 110, 105, 48, 52, 53, 65, 7, 117, 110, 105, 48, 52, 53, 66, 7, 117, 110, 105, 48, 52, 53, 70, 7, 117, 110, 105, 48, 52, 54, 48, 7, 117, 110, 105, 48, 52, 54, 49, 7, 117, 110, 105, 48, 52, 54, 51, 7, 117, 110, 105, 48, 52, 54, 52, 7, 117, 110, 105, 48, 52, 54, 53, 7, 117, 110, 105, 48, 52, 54, 54, 7, 117, 110, 105, 48, 52, 54, 55, 7, 117, 110, 105, 48, 52, 54, 56, 7, 117, 110, 105, 48, 52, 54, 57, 7, 117, 110, 105, 48, 52, 54, 65, 7, 117, 110, 105, 48, 52, 54, 66, 7, 117, 110, 105, 48, 52, 54, 67, 7, 117, 110, 105, 48, 52, 54, 68, 7, 117, 110, 105, 48, 52, 54, 69, 7, 117, 110, 105, 48, 52, 54, 70, 7, 117, 110, 105, 48, 52, 55, 50, 7, 117, 110, 105, 48, 52, 55, 51, 7, 117, 110, 105, 48, 52, 55, 52, 7, 117, 110, 105, 48, 52, 55, 53, 7, 117, 110, 105, 48, 52, 55, 56, 7, 117, 110, 105, 48, 52, 55, 57, 7, 117, 110, 105, 48, 52, 55, 65, 7, 117, 110, 105, 48, 52, 55, 66, 7, 117, 110, 105, 48, 52, 55, 67, 7, 117, 110, 105, 48, 52, 55, 68, 7, 117, 110, 105, 48, 52, 55, 69, 7, 117, 110, 105, 48, 52, 55, 70, 7, 117, 110, 105, 48, 52, 56, 48, 7, 117, 110, 105, 48, 52, 56, 49, 7, 117, 110, 105, 48, 52, 56, 50, 7, 117, 110, 105, 48, 52, 56, 51, 7, 117, 110, 105, 48, 52, 56, 52, 7, 117, 110, 105, 48, 52, 56, 53, 7, 117, 110, 105, 48, 52, 56, 54, 7, 117, 110, 105, 48, 52, 56, 56, 7, 117, 110, 105, 48, 52, 56, 57, 7, 117, 110, 105, 48, 52, 56, 69, 7, 117, 110, 105, 48, 52, 56, 70, 7, 117, 110, 105, 48, 52, 57, 48, 7, 117, 110, 105, 48, 52, 57, 49, 7, 117, 110, 105, 48, 52, 57, 52, 7, 117, 110, 105, 48, 52, 57, 53, 7, 117, 110, 105, 48, 52, 57, 67, 7, 117, 110, 105, 48, 52, 57, 68, 7, 117, 110, 105, 48, 52, 65, 48, 7, 117, 110, 105, 48, 52, 65, 49, 7, 117, 110, 105, 48, 52, 65, 52, 7, 117, 110, 105, 48, 52, 65, 53, 7, 117, 110, 105, 48, 52, 65, 54, 7, 117, 110, 105, 48, 52, 65, 55, 7, 117, 110, 105, 48, 52, 65, 56, 7, 117, 110, 105, 48, 52, 65, 57, 7, 117, 110, 105, 48, 52, 66, 52, 7, 117, 110, 105, 48, 52, 66, 53, 7, 117, 110, 105, 48, 52, 66, 56, 7, 117, 110, 105, 48, 52, 66, 57, 7, 117, 110, 105, 48, 52, 66, 65, 7, 117, 110, 105, 48, 52, 66, 67, 7, 117, 110, 105, 48, 52, 66, 68, 7, 117, 110, 105, 48, 52, 67, 51, 7, 117, 110, 105, 48, 52, 67, 52, 7, 117, 110, 105, 48, 52, 67, 55, 7, 117, 110, 105, 48, 52, 67, 56, 7, 117, 110, 105, 48, 52, 68, 56, 7, 117, 110, 105, 48, 52, 69, 48, 7, 117, 110, 105, 48, 52, 69, 49, 7, 117, 110, 105, 48, 52, 70, 65, 7, 117, 110, 105, 48, 52, 70, 66, 7, 117, 110, 105, 48, 53, 48, 48, 7, 117, 110, 105, 48, 53, 48, 50, 7, 117, 110, 105, 48, 53, 48, 51, 7, 117, 110, 105, 48, 53, 48, 52, 7, 117, 110, 105, 48, 53, 48, 53, 7, 117, 110, 105, 48, 53, 48, 54, 7, 117, 110, 105, 48, 53, 48, 55, 7, 117, 110, 105, 48, 53, 48, 56, 7, 117, 110, 105, 48, 53, 48, 57, 7, 117, 110, 105, 48, 53, 48, 65, 7, 117, 110, 105, 48, 53, 48, 66, 7, 117, 110, 105, 48, 53, 48, 67, 7, 117, 110, 105, 48, 53, 48, 68, 7, 117, 110, 105, 48, 53, 48, 69, 7, 117, 110, 105, 48, 53, 48, 70, 7, 117, 110, 105, 48, 53, 49, 48, 7, 117, 110, 105, 50, 48, 48, 48, 7, 117, 110, 105, 50, 48, 48, 49, 7, 117, 110, 105, 50, 48, 48, 50, 7, 117, 110, 105, 50, 48, 48, 51, 7, 117, 110, 105, 50, 48, 48, 52, 7, 117, 110, 105, 50, 48, 48, 53, 7, 117, 110, 105, 50, 48, 48, 54, 7, 117, 110, 105, 50, 48, 48, 55, 7, 117, 110, 105, 50, 48, 48, 56, 7, 117, 110, 105, 50, 48, 48, 57, 7, 117, 110, 105, 50, 48, 48, 65, 7, 117, 110, 105, 50, 48, 48, 66, 13, 117, 110, 100, 101, 114, 115, 99, 111, 114, 101, 100, 98, 108, 13, 113, 117, 111, 116, 101, 114, 101, 118, 101, 114, 115, 101, 100, 7, 117, 110, 105, 50, 48, 50, 53, 7, 117, 110, 105, 50, 48, 55, 52, 9, 110, 115, 117, 112, 101, 114, 105, 111, 114, 4, 69, 117, 114, 111, 7, 117, 110, 105, 50, 49, 48, 53, 7, 117, 110, 105, 50, 49, 49, 51, 7, 117, 110, 105, 50, 49, 49, 54, 9, 101, 115, 116, 105, 109, 97, 116, 101, 100, 9, 111, 110, 101, 101, 105, 103, 104, 116, 104, 12, 116, 104, 114, 101, 101, 101, 105, 103, 104, 116, 104, 115, 11, 102, 105, 118, 101, 101, 105, 103, 104, 116, 104, 115, 12, 115, 101, 118, 101, 110, 101, 105, 103, 104, 116, 104, 115, 7, 117, 110, 105, 70, 69, 70, 70, 7, 117, 110, 105, 70, 70, 70, 67, 7, 117, 110, 105, 70, 70, 70, 68, 19, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 116, 105, 108, 100, 101, 99, 111, 109, 98, 18, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 104, 111, 111, 107, 99, 111, 109, 98, 19, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 103, 114, 97, 118, 101, 99, 111, 109, 98, 19, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 97, 99, 117, 116, 101, 99, 111, 109, 98, 14, 98, 114, 101, 118, 101, 103, 114, 97, 118, 101, 99, 111, 109, 98, 17, 99, 111, 109, 109, 97, 97, 99, 99, 101, 110, 116, 114, 111, 116, 97, 116, 101, 6, 65, 46, 115, 109, 99, 112, 6, 66, 46, 115, 109, 99, 112, 6, 67, 46, 115, 109, 99, 112, 6, 68, 46, 115, 109, 99, 112, 6, 69, 46, 115, 109, 99, 112, 6, 70, 46, 115, 109, 99, 112, 6, 71, 46, 115, 109, 99, 112, 6, 72, 46, 115, 109, 99, 112, 6, 73, 46, 115, 109, 99, 112, 6, 74, 46, 115, 109, 99, 112, 6, 75, 46, 115, 109, 99, 112, 6, 76, 46, 115, 109, 99, 112, 6, 77, 46, 115, 109, 99, 112, 6, 78, 46, 115, 109, 99, 112, 6, 79, 46, 115, 109, 99, 112, 6, 81, 46, 115, 109, 99, 112, 6, 82, 46, 115, 109, 99, 112, 6, 83, 46, 115, 109, 99, 112, 6, 84, 46, 115, 109, 99, 112, 6, 85, 46, 115, 109, 99, 112, 6, 86, 46, 115, 109, 99, 112, 6, 87, 46, 115, 109, 99, 112, 6, 88, 46, 115, 109, 99, 112, 6, 89, 46, 115, 109, 99, 112, 6, 90, 46, 115, 109, 99, 112, 13, 98, 114, 101, 118, 101, 104, 111, 111, 107, 99, 111, 109, 98, 14, 98, 114, 101, 118, 101, 97, 99, 117, 116, 101, 99, 111, 109, 98, 8, 99, 114, 111, 115, 115, 98, 97, 114, 9, 114, 105, 110, 103, 97, 99, 117, 116, 101, 9, 100, 97, 115, 105, 97, 111, 120, 105, 97, 14, 98, 114, 101, 118, 101, 116, 105, 108, 100, 101, 99, 111, 109, 98, 11, 99, 121, 114, 105, 108, 108, 105, 99, 116, 105, 99, 12, 99, 121, 114, 105, 108, 108, 105, 99, 104, 111, 111, 107, 6, 80, 46, 115, 109, 99, 112, 5, 75, 46, 97, 108, 116, 15, 71, 101, 114, 109, 97, 110, 100, 98, 108, 115, 46, 115, 109, 99, 112, 7, 117, 110, 105, 48, 48, 65, 68, 7, 117, 110, 105, 48, 49, 48, 65, 7, 117, 110, 105, 48, 49, 48, 66, 7, 117, 110, 105, 48, 49, 50, 48, 7, 117, 110, 105, 48, 49, 50, 49, 11, 110, 97, 112, 111, 115, 116, 114, 111, 112, 104, 101, 7, 117, 110, 105, 48, 50, 49, 56, 7, 117, 110, 105, 48, 50, 49, 57, 7, 117, 110, 105, 48, 50, 49, 65, 7, 117, 110, 105, 48, 50, 49, 66, 7, 117, 110, 105, 48, 49, 54, 50, 12, 117, 110, 105, 48, 49, 54, 50, 46, 115, 109, 99, 112, 7, 117, 110, 105, 48, 49, 54, 51, 11, 68, 99, 114, 111, 97, 116, 46, 115, 109, 99, 112, 8, 69, 116, 104, 46, 115, 109, 99, 112, 9, 84, 98, 97, 114, 46, 115, 109, 99, 112, 11, 65, 103, 114, 97, 118, 101, 46, 115, 109, 99, 112, 11, 65, 97, 99, 117, 116, 101, 46, 115, 109, 99, 112, 16, 65, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 46, 115, 109, 99, 112, 11, 65, 116, 105, 108, 100, 101, 46, 115, 109, 99, 112, 14, 65, 100, 105, 101, 114, 101, 115, 105, 115, 46, 115, 109, 99, 112, 10, 65, 114, 105, 110, 103, 46, 115, 109, 99, 112, 15, 65, 114, 105, 110, 103, 97, 99, 117, 116, 101, 46, 115, 109, 99, 112, 13, 67, 99, 101, 100, 105, 108, 108, 97, 46, 115, 109, 99, 112, 11, 69, 103, 114, 97, 118, 101, 46, 115, 109, 99, 112, 11, 69, 97, 99, 117, 116, 101, 46, 115, 109, 99, 112, 16, 69, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 46, 115, 109, 99, 112, 14, 69, 100, 105, 101, 114, 101, 115, 105, 115, 46, 115, 109, 99, 112, 11, 73, 103, 114, 97, 118, 101, 46, 115, 109, 99, 112, 11, 73, 97, 99, 117, 116, 101, 46, 115, 109, 99, 112, 16, 73, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 46, 115, 109, 99, 112, 14, 73, 100, 105, 101, 114, 101, 115, 105, 115, 46, 115, 109, 99, 112, 11, 78, 116, 105, 108, 100, 101, 46, 115, 109, 99, 112, 11, 79, 103, 114, 97, 118, 101, 46, 115, 109, 99, 112, 11, 79, 97, 99, 117, 116, 101, 46, 115, 109, 99, 112, 16, 79, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 46, 115, 109, 99, 112, 11, 79, 116, 105, 108, 100, 101, 46, 115, 109, 99, 112, 14, 79, 100, 105, 101, 114, 101, 115, 105, 115, 46, 115, 109, 99, 112, 11, 85, 103, 114, 97, 118, 101, 46, 115, 109, 99, 112, 11, 85, 97, 99, 117, 116, 101, 46, 115, 109, 99, 112, 16, 85, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 46, 115, 109, 99, 112, 14, 85, 100, 105, 101, 114, 101, 115, 105, 115, 46, 115, 109, 99, 112, 11, 89, 97, 99, 117, 116, 101, 46, 115, 109, 99, 112, 12, 65, 109, 97, 99, 114, 111, 110, 46, 115, 109, 99, 112, 11, 65, 98, 114, 101, 118, 101, 46, 115, 109, 99, 112, 12, 65, 111, 103, 111, 110, 101, 107, 46, 115, 109, 99, 112, 11, 67, 97, 99, 117, 116, 101, 46, 115, 109, 99, 112, 16, 67, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 46, 115, 109, 99, 112, 11, 67, 99, 97, 114, 111, 110, 46, 115, 109, 99, 112, 11, 68, 99, 97, 114, 111, 110, 46, 115, 109, 99, 112, 12, 69, 109, 97, 99, 114, 111, 110, 46, 115, 109, 99, 112, 11, 69, 98, 114, 101, 118, 101, 46, 115, 109, 99, 112, 15, 69, 100, 111, 116, 97, 99, 99, 101, 110, 116, 46, 115, 109, 99, 112, 12, 69, 111, 103, 111, 110, 101, 107, 46, 115, 109, 99, 112, 11, 69, 99, 97, 114, 111, 110, 46, 115, 109, 99, 112, 16, 71, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 46, 115, 109, 99, 112, 11, 71, 98, 114, 101, 118, 101, 46, 115, 109, 99, 112, 17, 71, 99, 111, 109, 109, 97, 97, 99, 99, 101, 110, 116, 46, 115, 109, 99, 112, 16, 72, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 46, 115, 109, 99, 112, 11, 73, 116, 105, 108, 100, 101, 46, 115, 109, 99, 112, 12, 73, 109, 97, 99, 114, 111, 110, 46, 115, 109, 99, 112, 11, 73, 98, 114, 101, 118, 101, 46, 115, 109, 99, 112, 12, 73, 111, 103, 111, 110, 101, 107, 46, 115, 109, 99, 112, 15, 73, 100, 111, 116, 97, 99, 99, 101, 110, 116, 46, 115, 109, 99, 112, 16, 74, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 46, 115, 109, 99, 112, 17, 75, 99, 111, 109, 109, 97, 97, 99, 99, 101, 110, 116, 46, 115, 109, 99, 112, 11, 76, 97, 99, 117, 116, 101, 46, 115, 109, 99, 112, 17, 76, 99, 111, 109, 109, 97, 97, 99, 99, 101, 110, 116, 46, 115, 109, 99, 112, 11, 76, 99, 97, 114, 111, 110, 46, 115, 109, 99, 112, 9, 76, 100, 111, 116, 46, 115, 109, 99, 112, 11, 78, 97, 99, 117, 116, 101, 46, 115, 109, 99, 112, 17, 78, 99, 111, 109, 109, 97, 97, 99, 99, 101, 110, 116, 46, 115, 109, 99, 112, 11, 78, 99, 97, 114, 111, 110, 46, 115, 109, 99, 112, 12, 79, 109, 97, 99, 114, 111, 110, 46, 115, 109, 99, 112, 11, 79, 98, 114, 101, 118, 101, 46, 115, 109, 99, 112, 18, 79, 104, 117, 110, 103, 97, 114, 117, 109, 108, 97, 117, 116, 46, 115, 109, 99, 112, 11, 82, 97, 99, 117, 116, 101, 46, 115, 109, 99, 112, 17, 82, 99, 111, 109, 109, 97, 97, 99, 99, 101, 110, 116, 46, 115, 109, 99, 112, 11, 82, 99, 97, 114, 111, 110, 46, 115, 109, 99, 112, 11, 83, 97, 99, 117, 116, 101, 46, 115, 109, 99, 112, 16, 83, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 46, 115, 109, 99, 112, 13, 83, 99, 101, 100, 105, 108, 108, 97, 46, 115, 109, 99, 112, 11, 83, 99, 97, 114, 111, 110, 46, 115, 109, 99, 112, 11, 84, 99, 97, 114, 111, 110, 46, 115, 109, 99, 112, 11, 85, 116, 105, 108, 100, 101, 46, 115, 109, 99, 112, 12, 85, 109, 97, 99, 114, 111, 110, 46, 115, 109, 99, 112, 11, 85, 98, 114, 101, 118, 101, 46, 115, 109, 99, 112, 10, 85, 114, 105, 110, 103, 46, 115, 109, 99, 112, 18, 85, 104, 117, 110, 103, 97, 114, 117, 109, 108, 97, 117, 116, 46, 115, 109, 99, 112, 12, 85, 111, 103, 111, 110, 101, 107, 46, 115, 109, 99, 112, 16, 87, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 46, 115, 109, 99, 112, 16, 89, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 46, 115, 109, 99, 112, 14, 89, 100, 105, 101, 114, 101, 115, 105, 115, 46, 115, 109, 99, 112, 11, 90, 97, 99, 117, 116, 101, 46, 115, 109, 99, 112, 15, 90, 100, 111, 116, 97, 99, 99, 101, 110, 116, 46, 115, 109, 99, 112, 11, 90, 99, 97, 114, 111, 110, 46, 115, 109, 99, 112, 10, 65, 108, 112, 104, 97, 116, 111, 110, 111, 115, 12, 69, 112, 115, 105, 108, 111, 110, 116, 111, 110, 111, 115, 8, 69, 116, 97, 116, 111, 110, 111, 115, 9, 73, 111, 116, 97, 116, 111, 110, 111, 115, 12, 79, 109, 105, 99, 114, 111, 110, 116, 111, 110, 111, 115, 12, 85, 112, 115, 105, 108, 111, 110, 116, 111, 110, 111, 115, 10, 79, 109, 101, 103, 97, 116, 111, 110, 111, 115, 17, 105, 111, 116, 97, 100, 105, 101, 114, 101, 115, 105, 115, 116, 111, 110, 111, 115, 5, 65, 108, 112, 104, 97, 4, 66, 101, 116, 97, 7, 69, 112, 115, 105, 108, 111, 110, 4, 90, 101, 116, 97, 3, 69, 116, 97, 4, 73, 111, 116, 97, 5, 75, 97, 112, 112, 97, 2, 77, 117, 2, 78, 117, 7, 79, 109, 105, 99, 114, 111, 110, 3, 82, 104, 111, 3, 84, 97, 117, 7, 85, 112, 115, 105, 108, 111, 110, 3, 67, 104, 105, 12, 73, 111, 116, 97, 100, 105, 101, 114, 101, 115, 105, 115, 15, 85, 112, 115, 105, 108, 111, 110, 100, 105, 101, 114, 101, 115, 105, 115, 10, 97, 108, 112, 104, 97, 116, 111, 110, 111, 115, 12, 101, 112, 115, 105, 108, 111, 110, 116, 111, 110, 111, 115, 8, 101, 116, 97, 116, 111, 110, 111, 115, 9, 105, 111, 116, 97, 116, 111, 110, 111, 115, 20, 117, 112, 115, 105, 108, 111, 110, 100, 105, 101, 114, 101, 115, 105, 115, 116, 111, 110, 111, 115, 5, 107, 97, 112, 112, 97, 7, 111, 109, 105, 99, 114, 111, 110, 7, 117, 110, 105, 48, 51, 66, 67, 2, 110, 117, 3, 99, 104, 105, 12, 105, 111, 116, 97, 100, 105, 101, 114, 101, 115, 105, 115, 15, 117, 112, 115, 105, 108, 111, 110, 100, 105, 101, 114, 101, 115, 105, 115, 12, 111, 109, 105, 99, 114, 111, 110, 116, 111, 110, 111, 115, 12, 117, 112, 115, 105, 108, 111, 110, 116, 111, 110, 111, 115, 10, 111, 109, 101, 103, 97, 116, 111, 110, 111, 115, 7, 117, 110, 105, 48, 52, 48, 49, 7, 117, 110, 105, 48, 52, 48, 51, 7, 117, 110, 105, 48, 52, 48, 53, 7, 117, 110, 105, 48, 52, 48, 54, 7, 117, 110, 105, 48, 52, 48, 55, 7, 117, 110, 105, 48, 52, 48, 56, 7, 117, 110, 105, 48, 52, 49, 65, 7, 117, 110, 105, 48, 52, 48, 67, 7, 117, 110, 105, 48, 52, 48, 69, 7, 117, 110, 105, 48, 52, 49, 48, 7, 117, 110, 105, 48, 52, 49, 50, 7, 117, 110, 105, 48, 52, 49, 51, 7, 117, 110, 105, 48, 52, 49, 53, 7, 117, 110, 105, 48, 52, 49, 57, 7, 117, 110, 105, 48, 52, 49, 67, 7, 117, 110, 105, 48, 52, 49, 68, 7, 117, 110, 105, 48, 52, 49, 69, 7, 117, 110, 105, 48, 52, 49, 70, 7, 117, 110, 105, 48, 52, 50, 48, 7, 117, 110, 105, 48, 52, 50, 49, 7, 117, 110, 105, 48, 52, 50, 50, 7, 117, 110, 105, 48, 52, 50, 52, 7, 117, 110, 105, 48, 52, 50, 53, 7, 117, 110, 105, 48, 52, 51, 48, 7, 117, 110, 105, 48, 52, 51, 53, 7, 117, 110, 105, 48, 52, 51, 57, 7, 117, 110, 105, 48, 52, 51, 69, 7, 117, 110, 105, 48, 52, 52, 48, 7, 117, 110, 105, 48, 52, 52, 49, 7, 117, 110, 105, 48, 52, 52, 51, 7, 117, 110, 105, 48, 52, 52, 53, 7, 117, 110, 105, 48, 52, 53, 49, 7, 117, 110, 105, 48, 52, 53, 51, 7, 117, 110, 105, 48, 52, 53, 53, 7, 117, 110, 105, 48, 52, 53, 54, 7, 117, 110, 105, 48, 52, 53, 55, 7, 117, 110, 105, 48, 52, 53, 56, 7, 117, 110, 105, 48, 52, 53, 67, 7, 117, 110, 105, 48, 52, 53, 69, 9, 101, 120, 99, 108, 97, 109, 100, 98, 108, 7, 117, 110, 105, 48, 49, 70, 48, 7, 117, 110, 105, 48, 50, 66, 67, 7, 117, 110, 105, 49, 69, 51, 69, 7, 117, 110, 105, 49, 69, 51, 70, 7, 117, 110, 105, 49, 69, 48, 48, 7, 117, 110, 105, 49, 69, 48, 49, 7, 117, 110, 105, 49, 70, 52, 68, 7, 117, 110, 105, 48, 52, 48, 48, 7, 117, 110, 105, 48, 52, 48, 68, 7, 117, 110, 105, 48, 52, 53, 48, 7, 117, 110, 105, 48, 52, 53, 68, 7, 117, 110, 105, 48, 52, 55, 48, 7, 117, 110, 105, 48, 52, 55, 49, 7, 117, 110, 105, 48, 52, 55, 54, 7, 117, 110, 105, 48, 52, 55, 55, 7, 117, 110, 105, 48, 52, 57, 56, 7, 117, 110, 105, 48, 52, 57, 57, 7, 117, 110, 105, 48, 52, 65, 65, 7, 117, 110, 105, 48, 52, 65, 66, 7, 117, 110, 105, 48, 52, 65, 69, 7, 117, 110, 105, 48, 52, 65, 70, 7, 117, 110, 105, 48, 52, 67, 48, 7, 117, 110, 105, 48, 52, 67, 49, 7, 117, 110, 105, 48, 52, 67, 50, 7, 117, 110, 105, 48, 52, 67, 70, 7, 117, 110, 105, 48, 52, 68, 48, 7, 117, 110, 105, 48, 52, 68, 49, 7, 117, 110, 105, 48, 52, 68, 50, 7, 117, 110, 105, 48, 52, 68, 51, 7, 117, 110, 105, 48, 52, 68, 52, 7, 117, 110, 105, 48, 52, 68, 53, 7, 117, 110, 105, 48, 52, 68, 54, 7, 117, 110, 105, 48, 52, 68, 55, 7, 117, 110, 105, 48, 52, 68, 65, 7, 117, 110, 105, 48, 52, 68, 57, 7, 117, 110, 105, 48, 52, 68, 66, 7, 117, 110, 105, 48, 52, 68, 67, 7, 117, 110, 105, 48, 52, 68, 68, 7, 117, 110, 105, 48, 52, 68, 69, 7, 117, 110, 105, 48, 52, 68, 70, 7, 117, 110, 105, 48, 52, 69, 50, 7, 117, 110, 105, 48, 52, 69, 51, 7, 117, 110, 105, 48, 52, 69, 52, 7, 117, 110, 105, 48, 52, 69, 53, 7, 117, 110, 105, 48, 52, 69, 54, 7, 117, 110, 105, 48, 52, 69, 55, 7, 117, 110, 105, 48, 52, 69, 56, 7, 117, 110, 105, 48, 52, 69, 57, 7, 117, 110, 105, 48, 52, 69, 65, 7, 117, 110, 105, 48, 52, 69, 66, 7, 117, 110, 105, 48, 52, 69, 67, 7, 117, 110, 105, 48, 52, 69, 68, 7, 117, 110, 105, 48, 52, 69, 69, 7, 117, 110, 105, 48, 52, 69, 70, 7, 117, 110, 105, 48, 52, 70, 48, 7, 117, 110, 105, 48, 52, 70, 49, 7, 117, 110, 105, 48, 52, 70, 50, 7, 117, 110, 105, 48, 52, 70, 51, 7, 117, 110, 105, 48, 52, 70, 52, 7, 117, 110, 105, 48, 52, 70, 53, 7, 117, 110, 105, 48, 52, 70, 56, 7, 117, 110, 105, 48, 52, 70, 57, 7, 117, 110, 105, 48, 52, 70, 67, 7, 117, 110, 105, 48, 52, 70, 68, 7, 117, 110, 105, 48, 53, 48, 49, 7, 117, 110, 105, 48, 53, 49, 50, 7, 117, 110, 105, 48, 53, 49, 51, 7, 117, 110, 105, 49, 69, 65, 48, 7, 117, 110, 105, 49, 69, 65, 49, 7, 117, 110, 105, 49, 69, 65, 50, 7, 117, 110, 105, 49, 69, 65, 51, 7, 117, 110, 105, 49, 69, 65, 52, 7, 117, 110, 105, 49, 69, 65, 53, 7, 117, 110, 105, 49, 69, 65, 54, 7, 117, 110, 105, 49, 69, 65, 55, 7, 117, 110, 105, 49, 69, 65, 56, 7, 117, 110, 105, 49, 69, 65, 57, 7, 117, 110, 105, 49, 69, 65, 65, 7, 117, 110, 105, 49, 69, 65, 66, 7, 117, 110, 105, 49, 69, 65, 67, 7, 117, 110, 105, 49, 69, 65, 68, 7, 117, 110, 105, 49, 69, 65, 69, 7, 117, 110, 105, 49, 69, 65, 70, 7, 117, 110, 105, 49, 69, 66, 48, 7, 117, 110, 105, 49, 69, 66, 49, 7, 117, 110, 105, 49, 69, 66, 50, 7, 117, 110, 105, 49, 69, 66, 51, 7, 117, 110, 105, 49, 69, 66, 52, 7, 117, 110, 105, 49, 69, 66, 53, 7, 117, 110, 105, 49, 69, 66, 54, 7, 117, 110, 105, 49, 69, 66, 55, 7, 117, 110, 105, 49, 69, 66, 56, 7, 117, 110, 105, 49, 69, 66, 57, 7, 117, 110, 105, 49, 69, 66, 65, 7, 117, 110, 105, 49, 69, 66, 66, 7, 117, 110, 105, 49, 69, 66, 67, 7, 117, 110, 105, 49, 69, 66, 68, 7, 117, 110, 105, 49, 69, 66, 69, 7, 117, 110, 105, 49, 69, 66, 70, 7, 117, 110, 105, 49, 69, 67, 48, 7, 117, 110, 105, 49, 69, 67, 49, 7, 117, 110, 105, 49, 69, 67, 50, 7, 117, 110, 105, 49, 69, 67, 51, 7, 117, 110, 105, 49, 69, 67, 52, 7, 117, 110, 105, 49, 69, 67, 53, 7, 117, 110, 105, 49, 69, 67, 54, 7, 117, 110, 105, 49, 69, 67, 55, 7, 117, 110, 105, 49, 69, 67, 56, 7, 117, 110, 105, 49, 69, 67, 57, 7, 117, 110, 105, 49, 69, 67, 65, 7, 117, 110, 105, 49, 69, 67, 66, 7, 117, 110, 105, 49, 69, 67, 67, 7, 117, 110, 105, 49, 69, 67, 68, 7, 117, 110, 105, 49, 69, 67, 69, 7, 117, 110, 105, 49, 69, 67, 70, 7, 117, 110, 105, 49, 69, 68, 48, 7, 117, 110, 105, 49, 69, 68, 49, 7, 117, 110, 105, 49, 69, 68, 50, 7, 117, 110, 105, 49, 69, 68, 51, 7, 117, 110, 105, 49, 69, 68, 52, 7, 117, 110, 105, 49, 69, 68, 53, 7, 117, 110, 105, 49, 69, 68, 54, 7, 117, 110, 105, 49, 69, 68, 55, 7, 117, 110, 105, 49, 69, 68, 56, 7, 117, 110, 105, 49, 69, 68, 57, 7, 117, 110, 105, 49, 69, 68, 65, 7, 117, 110, 105, 49, 69, 68, 66, 7, 117, 110, 105, 49, 69, 68, 67, 7, 117, 110, 105, 49, 69, 68, 68, 7, 117, 110, 105, 49, 69, 68, 69, 7, 117, 110, 105, 49, 69, 68, 70, 7, 117, 110, 105, 49, 69, 69, 48, 7, 117, 110, 105, 49, 69, 69, 49, 7, 117, 110, 105, 49, 69, 69, 50, 7, 117, 110, 105, 49, 69, 69, 51, 7, 117, 110, 105, 49, 69, 69, 52, 7, 117, 110, 105, 49, 69, 69, 53, 7, 117, 110, 105, 49, 69, 69, 54, 7, 117, 110, 105, 49, 69, 69, 55, 7, 117, 110, 105, 49, 69, 69, 56, 7, 117, 110, 105, 49, 69, 69, 57, 7, 117, 110, 105, 49, 69, 69, 65, 7, 117, 110, 105, 49, 69, 69, 66, 7, 117, 110, 105, 49, 69, 69, 67, 7, 117, 110, 105, 49, 69, 69, 68, 7, 117, 110, 105, 49, 69, 69, 69, 7, 117, 110, 105, 49, 69, 69, 70, 7, 117, 110, 105, 49, 69, 70, 48, 7, 117, 110, 105, 49, 69, 70, 49, 7, 117, 110, 105, 49, 69, 70, 52, 7, 117, 110, 105, 49, 69, 70, 53, 7, 117, 110, 105, 49, 69, 70, 54, 7, 117, 110, 105, 49, 69, 70, 55, 7, 117, 110, 105, 49, 69, 70, 56, 7, 117, 110, 105, 49, 69, 70, 57, 7, 117, 110, 105, 50, 48, 65, 66, 7, 117, 110, 105, 48, 52, 57, 65, 7, 117, 110, 105, 48, 52, 57, 66, 7, 117, 110, 105, 48, 52, 65, 50, 7, 117, 110, 105, 48, 52, 65, 51, 7, 117, 110, 105, 48, 52, 65, 67, 7, 117, 110, 105, 48, 52, 65, 68, 7, 117, 110, 105, 48, 52, 66, 50, 7, 117, 110, 105, 48, 52, 66, 51, 7, 117, 110, 105, 48, 52, 66, 54, 7, 117, 110, 105, 48, 52, 66, 55, 7, 117, 110, 105, 48, 52, 67, 66, 7, 117, 110, 105, 48, 52, 67, 67, 7, 117, 110, 105, 48, 52, 70, 54, 7, 117, 110, 105, 48, 52, 70, 55, 7, 117, 110, 105, 48, 52, 57, 54, 7, 117, 110, 105, 48, 52, 57, 55, 7, 117, 110, 105, 48, 52, 66, 69, 7, 117, 110, 105, 48, 52, 66, 70, 7, 117, 110, 105, 48, 52, 66, 66, 7, 117, 110, 105, 48, 52, 56, 68, 7, 117, 110, 105, 48, 52, 56, 67, 7, 117, 110, 105, 48, 52, 54, 50, 7, 117, 110, 105, 48, 52, 57, 50, 7, 117, 110, 105, 48, 52, 57, 51, 7, 117, 110, 105, 48, 52, 57, 69, 7, 117, 110, 105, 48, 52, 57, 70, 7, 117, 110, 105, 48, 52, 56, 65, 7, 117, 110, 105, 48, 52, 56, 66, 7, 117, 110, 105, 48, 52, 67, 57, 7, 117, 110, 105, 48, 52, 67, 65, 7, 117, 110, 105, 48, 52, 67, 68, 7, 117, 110, 105, 48, 52, 67, 69, 7, 117, 110, 105, 48, 52, 67, 53, 7, 117, 110, 105, 48, 52, 67, 54, 7, 117, 110, 105, 48, 52, 66, 48, 7, 117, 110, 105, 48, 52, 66, 49, 7, 117, 110, 105, 48, 52, 70, 69, 7, 117, 110, 105, 48, 52, 70, 70, 7, 117, 110, 105, 48, 53, 49, 49, 7, 117, 110, 105, 50, 48, 49, 53, 0, 1, 0, 1, 255, 255, 0, 15, 0, 1, 0, 0, 0, 10, 0, 48, 0, 62, 0, 4, 68, 70, 76, 84, 0, 26, 99, 121, 114, 108, 0, 26, 103, 114, 101, 107, 0, 26, 108, 97, 116, 110, 0, 26, 0, 4, 0, 0, 0, 0, 255, 255, 0, 1, 0, 0, 0, 1, 115, 109, 99, 112, 0, 8, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4, 0, 1, 0, 0, 0, 1, 0, 8, 0, 2, 1, 190, 0, 220, 2, 79, 2, 80, 2, 81, 2, 82, 2, 83, 2, 84, 2, 85, 2, 86, 2, 87, 2, 88, 2, 89, 2, 90, 2, 91, 2, 92, 2, 93, 2, 112, 2, 94, 2, 95, 2, 96, 2, 97, 2, 98, 2, 99, 2, 100, 2, 101, 2, 102, 2, 103, 2, 79, 2, 80, 2, 81, 2, 82, 2, 83, 2, 84, 2, 85, 2, 86, 2, 87, 2, 88, 2, 89, 2, 90, 2, 91, 2, 92, 2, 93, 2, 112, 2, 94, 2, 95, 2, 96, 2, 97, 2, 98, 2, 99, 2, 100, 2, 101, 2, 102, 2, 103, 2, 130, 2, 114, 2, 133, 2, 160, 2, 134, 2, 136, 2, 132, 2, 159, 2, 161, 2, 137, 2, 138, 2, 135, 2, 162, 2, 164, 2, 139, 2, 163, 2, 165, 2, 129, 2, 141, 2, 167, 2, 170, 2, 142, 2, 143, 2, 168, 2, 140, 2, 166, 2, 169, 2, 130, 2, 172, 2, 171, 2, 173, 2, 174, 2, 145, 2, 177, 2, 146, 2, 147, 2, 179, 2, 144, 2, 176, 2, 178, 2, 175, 2, 180, 2, 181, 2, 182, 2, 184, 2, 183, 2, 185, 2, 186, 2, 188, 2, 187, 2, 148, 2, 150, 2, 190, 2, 151, 2, 153, 2, 149, 2, 191, 2, 189, 2, 152, 2, 192, 2, 194, 2, 193, 2, 195, 2, 198, 2, 197, 2, 196, 2, 131, 2, 199, 2, 155, 2, 202, 2, 156, 2, 157, 2, 154, 2, 204, 2, 201, 2, 205, 2, 203, 2, 200, 2, 206, 2, 158, 2, 207, 2, 208, 2, 209, 2, 211, 2, 210, 2, 133, 2, 160, 2, 134, 2, 136, 2, 132, 2, 159, 2, 161, 2, 137, 2, 138, 2, 135, 2, 162, 2, 164, 2, 139, 2, 163, 2, 165, 2, 129, 2, 141, 2, 167, 2, 170, 2, 142, 2, 143, 2, 168, 2, 140, 2, 166, 2, 169, 2, 172, 2, 171, 2, 173, 2, 174, 2, 145, 2, 177, 2, 146, 2, 147, 2, 144, 2, 176, 2, 178, 2, 175, 2, 180, 2, 181, 2, 182, 2, 184, 2, 183, 2, 185, 2, 186, 2, 188, 2, 187, 2, 148, 2, 150, 2, 190, 2, 151, 2, 153, 2, 149, 2, 191, 2, 189, 2, 152, 2, 192, 2, 194, 2, 193, 2, 195, 2, 198, 2, 197, 2, 196, 2, 131, 2, 199, 2, 155, 2, 202, 2, 156, 2, 157, 2, 154, 2, 204, 2, 201, 2, 205, 2, 203, 2, 200, 2, 206, 2, 158, 2, 207, 2, 208, 2, 209, 2, 211, 2, 210, 2, 127, 2, 127, 0, 2, 0, 26, 0, 2, 0, 53, 0, 0, 0, 76, 0, 76, 0, 52, 0, 80, 0, 80, 0, 53, 0, 158, 0, 167, 0, 54, 0, 169, 0, 182, 0, 64, 0, 184, 0, 188, 0, 78, 0, 190, 0, 205, 0, 83, 0, 207, 0, 215, 0, 99, 0, 217, 0, 218, 0, 108, 0, 221, 0, 235, 0, 110, 0, 237, 0, 241, 0, 125, 0, 243, 0, 243, 0, 130, 0, 246, 0, 248, 0, 131, 0, 250, 1, 6, 0, 134, 1, 8, 1, 21, 0, 147, 1, 23, 1, 26, 0, 161, 1, 28, 1, 42, 0, 165, 1, 44, 1, 52, 0, 180, 1, 54, 1, 55, 0, 189, 1, 58, 1, 72, 0, 191, 1, 74, 1, 78, 0, 206, 1, 80, 1, 80, 0, 211, 1, 83, 1, 85, 0, 212, 1, 87, 1, 89, 0, 215, 2, 126, 2, 126, 0, 218, 2, 128, 2, 128, 0, 219, 0, 1, 0, 1, 0, 8, 0, 2, 0, 0, 0, 20, 0, 2, 0, 0, 0, 36, 0, 2, 119, 103, 104, 116, 1, 0, 0, 0, 105, 116, 97, 108, 1, 11, 0, 1, 0, 4, 0, 20, 0, 3, 0, 0, 0, 2, 1, 14, 1, 144, 0, 0, 2, 188, 0, 0, 0, 3, 0, 1, 0, 2, 1, 17, 0, 0, 0, 0, 0, 1, 0, 0) +font_name = "Roboto Mono" +style_name = "Regular" +font_style = 4 +msdf_pixel_range = 8 +fixed_size = 14 +cache/0/16/0/ascent = 15.0 +cache/0/16/0/descent = 4.0 +cache/0/16/0/underline_position = 1.375 +cache/0/16/0/underline_thickness = 0.6875 +cache/0/16/0/scale = 1.0 +cache/0/16/0/textures/0/offsets = PackedInt32Array(8, 0, 248, 4, 195, 4, 61, 15) +cache/0/16/0/textures/0/image = SubResource("Image_xbauv") +cache/0/16/0/glyphs/1/advance = Vector2(8.40625, 18.4688) +cache/0/16/0/glyphs/1/offset = Vector2(-1, -1) +cache/0/16/0/glyphs/1/size = Vector2(2, 2) +cache/0/16/0/glyphs/1/uv_rect = Rect2(1, 1, 2, 2) +cache/0/16/0/glyphs/1/texture_idx = 0 +cache/0/16/0/glyphs/34/advance = Vector2(8.40625, 18.4688) +cache/0/16/0/glyphs/34/offset = Vector2(-1, -9) +cache/0/16/0/glyphs/34/size = Vector2(10, 13) +cache/0/16/0/glyphs/34/uv_rect = Rect2(1, 5, 10, 13) +cache/0/16/0/glyphs/34/texture_idx = 0 +cache/0/16/0/glyphs/31/advance = Vector2(8.40625, 18.4688) +cache/0/16/0/glyphs/31/offset = Vector2(-1, -12) +cache/0/16/0/glyphs/31/size = Vector2(10, 13) +cache/0/16/0/glyphs/31/uv_rect = Rect2(13, 5, 10, 13) +cache/0/16/0/glyphs/31/texture_idx = 0 +cache/0/16/0/glyphs/22/advance = Vector2(8.40625, 18.4688) +cache/0/16/0/glyphs/22/offset = Vector2(-1, -12) +cache/0/16/0/glyphs/22/size = Vector2(10, 13) +cache/0/16/0/glyphs/22/uv_rect = Rect2(25, 5, 10, 13) +cache/0/16/0/glyphs/22/texture_idx = 0 +cache/0/16/0/glyphs/41/advance = Vector2(8.40625, 18.4688) +cache/0/16/0/glyphs/41/offset = Vector2(0, -9) +cache/0/16/0/glyphs/41/size = Vector2(9, 10) +cache/0/16/0/glyphs/41/uv_rect = Rect2(37, 5, 9, 10) +cache/0/16/0/glyphs/41/texture_idx = 0 +cache/0/16/0/glyphs/36/advance = Vector2(8.40625, 18.4688) +cache/0/16/0/glyphs/36/offset = Vector2(0, -12) +cache/0/16/0/glyphs/36/size = Vector2(9, 13) +cache/0/16/0/glyphs/36/uv_rect = Rect2(48, 5, 9, 13) +cache/0/16/0/glyphs/36/texture_idx = 0 +cache/0/16/0/glyphs/47/advance = Vector2(8.40625, 18.4688) +cache/0/16/0/glyphs/47/offset = Vector2(-1, -11) +cache/0/16/0/glyphs/47/size = Vector2(10, 12) +cache/0/16/0/glyphs/47/uv_rect = Rect2(59, 5, 10, 12) +cache/0/16/0/glyphs/47/texture_idx = 0 +cache/0/16/0/glyphs/58/advance = Vector2(8.40625, 18.4688) +cache/0/16/0/glyphs/58/offset = Vector2(-1, -12) +cache/0/16/0/glyphs/58/size = Vector2(10, 13) +cache/0/16/0/glyphs/58/uv_rect = Rect2(71, 5, 10, 13) +cache/0/16/0/glyphs/58/texture_idx = 0 +cache/0/16/0/glyphs/96/advance = Vector2(8.40625, 18.4688) +cache/0/16/0/glyphs/96/offset = Vector2(2, -4) +cache/0/16/0/glyphs/96/size = Vector2(5, 5) +cache/0/16/0/glyphs/96/uv_rect = Rect2(83, 5, 5, 5) +cache/0/16/0/glyphs/96/texture_idx = 0 +cache/0/16/0/glyphs/57/advance = Vector2(8.40625, 18.4688) +cache/0/16/0/glyphs/57/offset = Vector2(-1, -12) +cache/0/16/0/glyphs/57/size = Vector2(9, 13) +cache/0/16/0/glyphs/57/uv_rect = Rect2(90, 5, 9, 13) +cache/0/16/0/glyphs/57/texture_idx = 0 +cache/0/16/0/glyphs/54/advance = Vector2(8.40625, 18.4688) +cache/0/16/0/glyphs/54/offset = Vector2(-1, -12) +cache/0/16/0/glyphs/54/size = Vector2(10, 13) +cache/0/16/0/glyphs/54/uv_rect = Rect2(101, 5, 10, 13) +cache/0/16/0/glyphs/54/texture_idx = 0 +cache/0/16/0/glyphs/268435487/advance = Vector2(8.40625, 18.4688) +cache/0/16/0/glyphs/268435487/offset = Vector2(0, -12) +cache/0/16/0/glyphs/268435487/size = Vector2(9, 13) +cache/0/16/0/glyphs/268435487/uv_rect = Rect2(113, 5, 9, 13) +cache/0/16/0/glyphs/268435487/texture_idx = 0 +cache/0/16/0/glyphs/402653206/advance = Vector2(8.40625, 18.4688) +cache/0/16/0/glyphs/402653206/offset = Vector2(0, -12) +cache/0/16/0/glyphs/402653206/size = Vector2(10, 13) +cache/0/16/0/glyphs/402653206/uv_rect = Rect2(124, 5, 10, 13) +cache/0/16/0/glyphs/402653206/texture_idx = 0 +cache/0/16/0/glyphs/134217769/advance = Vector2(8.40625, 18.4688) +cache/0/16/0/glyphs/134217769/offset = Vector2(0, -9) +cache/0/16/0/glyphs/134217769/size = Vector2(9, 10) +cache/0/16/0/glyphs/134217769/uv_rect = Rect2(136, 5, 9, 10) +cache/0/16/0/glyphs/134217769/texture_idx = 0 +cache/0/16/0/glyphs/402653220/advance = Vector2(8.40625, 18.4688) +cache/0/16/0/glyphs/402653220/offset = Vector2(1, -12) +cache/0/16/0/glyphs/402653220/size = Vector2(9, 13) +cache/0/16/0/glyphs/402653220/uv_rect = Rect2(147, 5, 9, 13) +cache/0/16/0/glyphs/402653220/texture_idx = 0 +cache/0/16/0/glyphs/268435514/advance = Vector2(8.40625, 18.4688) +cache/0/16/0/glyphs/268435514/offset = Vector2(0, -12) +cache/0/16/0/glyphs/268435514/size = Vector2(10, 13) +cache/0/16/0/glyphs/268435514/uv_rect = Rect2(158, 5, 10, 13) +cache/0/16/0/glyphs/268435514/texture_idx = 0 +cache/0/16/0/glyphs/402653185/advance = Vector2(8.40625, 18.4688) +cache/0/16/0/glyphs/402653185/offset = Vector2(-1, -1) +cache/0/16/0/glyphs/402653185/size = Vector2(2, 2) +cache/0/16/0/glyphs/402653185/uv_rect = Rect2(5, 1, 2, 2) +cache/0/16/0/glyphs/402653185/texture_idx = 0 +cache/0/16/0/glyphs/134217786/advance = Vector2(8.40625, 18.4688) +cache/0/16/0/glyphs/134217786/offset = Vector2(-1, -12) +cache/0/16/0/glyphs/134217786/size = Vector2(10, 13) +cache/0/16/0/glyphs/134217786/uv_rect = Rect2(170, 5, 10, 13) +cache/0/16/0/glyphs/134217786/texture_idx = 0 +cache/0/16/0/glyphs/402653280/advance = Vector2(8.40625, 18.4688) +cache/0/16/0/glyphs/402653280/offset = Vector2(3, -4) +cache/0/16/0/glyphs/402653280/size = Vector2(5, 5) +cache/0/16/0/glyphs/402653280/uv_rect = Rect2(182, 5, 5, 5) +cache/0/16/0/glyphs/402653280/texture_idx = 0 +cache/0/16/0/glyphs/268435552/advance = Vector2(8.40625, 18.4688) +cache/0/16/0/glyphs/268435552/offset = Vector2(2, -4) +cache/0/16/0/glyphs/268435552/size = Vector2(5, 5) +cache/0/16/0/glyphs/268435552/uv_rect = Rect2(189, 5, 5, 5) +cache/0/16/0/glyphs/268435552/texture_idx = 0 +cache/0/16/0/kerning_overrides/16/0 = Vector2(0, 0) +cache/0/16/0/kerning_overrides/14/0 = Vector2(0, 0) +cache/0/14/0/ascent = 15.0 +cache/0/14/0/descent = 4.0 +cache/0/14/0/underline_position = 1.375 +cache/0/14/0/underline_thickness = 0.6875 +cache/0/14/0/scale = 1.0 +cache/0/14/0/textures/0/offsets = PackedInt32Array(8, 0, 248, 4, 195, 4, 61, 15) +cache/0/14/0/textures/0/image = SubResource("Image_pi2b6") +cache/0/14/0/glyphs/1/advance = Vector2(8.40625, 18.4688) +cache/0/14/0/glyphs/1/offset = Vector2(-1, -1) +cache/0/14/0/glyphs/1/size = Vector2(2, 2) +cache/0/14/0/glyphs/1/uv_rect = Rect2(1, 1, 2, 2) +cache/0/14/0/glyphs/1/texture_idx = 0 +cache/0/14/0/glyphs/34/advance = Vector2(8.40625, 18.4688) +cache/0/14/0/glyphs/34/offset = Vector2(-1, -9) +cache/0/14/0/glyphs/34/size = Vector2(10, 13) +cache/0/14/0/glyphs/34/uv_rect = Rect2(1, 5, 10, 13) +cache/0/14/0/glyphs/34/texture_idx = 0 +cache/0/14/0/glyphs/31/advance = Vector2(8.40625, 18.4688) +cache/0/14/0/glyphs/31/offset = Vector2(-1, -12) +cache/0/14/0/glyphs/31/size = Vector2(10, 13) +cache/0/14/0/glyphs/31/uv_rect = Rect2(13, 5, 10, 13) +cache/0/14/0/glyphs/31/texture_idx = 0 +cache/0/14/0/glyphs/22/advance = Vector2(8.40625, 18.4688) +cache/0/14/0/glyphs/22/offset = Vector2(-1, -12) +cache/0/14/0/glyphs/22/size = Vector2(10, 13) +cache/0/14/0/glyphs/22/uv_rect = Rect2(25, 5, 10, 13) +cache/0/14/0/glyphs/22/texture_idx = 0 +cache/0/14/0/glyphs/41/advance = Vector2(8.40625, 18.4688) +cache/0/14/0/glyphs/41/offset = Vector2(0, -9) +cache/0/14/0/glyphs/41/size = Vector2(9, 10) +cache/0/14/0/glyphs/41/uv_rect = Rect2(37, 5, 9, 10) +cache/0/14/0/glyphs/41/texture_idx = 0 +cache/0/14/0/glyphs/36/advance = Vector2(8.40625, 18.4688) +cache/0/14/0/glyphs/36/offset = Vector2(0, -12) +cache/0/14/0/glyphs/36/size = Vector2(9, 13) +cache/0/14/0/glyphs/36/uv_rect = Rect2(48, 5, 9, 13) +cache/0/14/0/glyphs/36/texture_idx = 0 +cache/0/14/0/glyphs/47/advance = Vector2(8.40625, 18.4688) +cache/0/14/0/glyphs/47/offset = Vector2(-1, -11) +cache/0/14/0/glyphs/47/size = Vector2(10, 12) +cache/0/14/0/glyphs/47/uv_rect = Rect2(59, 5, 10, 12) +cache/0/14/0/glyphs/47/texture_idx = 0 +cache/0/14/0/glyphs/58/advance = Vector2(8.40625, 18.4688) +cache/0/14/0/glyphs/58/offset = Vector2(-1, -12) +cache/0/14/0/glyphs/58/size = Vector2(10, 13) +cache/0/14/0/glyphs/58/uv_rect = Rect2(71, 5, 10, 13) +cache/0/14/0/glyphs/58/texture_idx = 0 +cache/0/14/0/glyphs/96/advance = Vector2(8.40625, 18.4688) +cache/0/14/0/glyphs/96/offset = Vector2(2, -4) +cache/0/14/0/glyphs/96/size = Vector2(5, 5) +cache/0/14/0/glyphs/96/uv_rect = Rect2(83, 5, 5, 5) +cache/0/14/0/glyphs/96/texture_idx = 0 +cache/0/14/0/glyphs/57/advance = Vector2(8.40625, 18.4688) +cache/0/14/0/glyphs/57/offset = Vector2(-1, -12) +cache/0/14/0/glyphs/57/size = Vector2(9, 13) +cache/0/14/0/glyphs/57/uv_rect = Rect2(90, 5, 9, 13) +cache/0/14/0/glyphs/57/texture_idx = 0 +cache/0/14/0/glyphs/54/advance = Vector2(8.40625, 18.4688) +cache/0/14/0/glyphs/54/offset = Vector2(-1, -12) +cache/0/14/0/glyphs/54/size = Vector2(10, 13) +cache/0/14/0/glyphs/54/uv_rect = Rect2(101, 5, 10, 13) +cache/0/14/0/glyphs/54/texture_idx = 0 +cache/0/14/0/glyphs/268435487/advance = Vector2(8.40625, 18.4688) +cache/0/14/0/glyphs/268435487/offset = Vector2(0, -12) +cache/0/14/0/glyphs/268435487/size = Vector2(9, 13) +cache/0/14/0/glyphs/268435487/uv_rect = Rect2(113, 5, 9, 13) +cache/0/14/0/glyphs/268435487/texture_idx = 0 +cache/0/14/0/glyphs/402653206/advance = Vector2(8.40625, 18.4688) +cache/0/14/0/glyphs/402653206/offset = Vector2(0, -12) +cache/0/14/0/glyphs/402653206/size = Vector2(10, 13) +cache/0/14/0/glyphs/402653206/uv_rect = Rect2(124, 5, 10, 13) +cache/0/14/0/glyphs/402653206/texture_idx = 0 +cache/0/14/0/glyphs/134217769/advance = Vector2(8.40625, 18.4688) +cache/0/14/0/glyphs/134217769/offset = Vector2(0, -9) +cache/0/14/0/glyphs/134217769/size = Vector2(9, 10) +cache/0/14/0/glyphs/134217769/uv_rect = Rect2(136, 5, 9, 10) +cache/0/14/0/glyphs/134217769/texture_idx = 0 +cache/0/14/0/glyphs/402653220/advance = Vector2(8.40625, 18.4688) +cache/0/14/0/glyphs/402653220/offset = Vector2(1, -12) +cache/0/14/0/glyphs/402653220/size = Vector2(9, 13) +cache/0/14/0/glyphs/402653220/uv_rect = Rect2(147, 5, 9, 13) +cache/0/14/0/glyphs/402653220/texture_idx = 0 +cache/0/14/0/glyphs/268435514/advance = Vector2(8.40625, 18.4688) +cache/0/14/0/glyphs/268435514/offset = Vector2(0, -12) +cache/0/14/0/glyphs/268435514/size = Vector2(10, 13) +cache/0/14/0/glyphs/268435514/uv_rect = Rect2(158, 5, 10, 13) +cache/0/14/0/glyphs/268435514/texture_idx = 0 +cache/0/14/0/glyphs/402653185/advance = Vector2(8.40625, 18.4688) +cache/0/14/0/glyphs/402653185/offset = Vector2(-1, -1) +cache/0/14/0/glyphs/402653185/size = Vector2(2, 2) +cache/0/14/0/glyphs/402653185/uv_rect = Rect2(5, 1, 2, 2) +cache/0/14/0/glyphs/402653185/texture_idx = 0 +cache/0/14/0/glyphs/134217786/advance = Vector2(8.40625, 18.4688) +cache/0/14/0/glyphs/134217786/offset = Vector2(-1, -12) +cache/0/14/0/glyphs/134217786/size = Vector2(10, 13) +cache/0/14/0/glyphs/134217786/uv_rect = Rect2(170, 5, 10, 13) +cache/0/14/0/glyphs/134217786/texture_idx = 0 +cache/0/14/0/glyphs/402653280/advance = Vector2(8.40625, 18.4688) +cache/0/14/0/glyphs/402653280/offset = Vector2(3, -4) +cache/0/14/0/glyphs/402653280/size = Vector2(5, 5) +cache/0/14/0/glyphs/402653280/uv_rect = Rect2(182, 5, 5, 5) +cache/0/14/0/glyphs/402653280/texture_idx = 0 +cache/0/14/0/glyphs/268435552/advance = Vector2(8.40625, 18.4688) +cache/0/14/0/glyphs/268435552/offset = Vector2(2, -4) +cache/0/14/0/glyphs/268435552/size = Vector2(5, 5) +cache/0/14/0/glyphs/268435552/uv_rect = Rect2(189, 5, 5, 5) +cache/0/14/0/glyphs/268435552/texture_idx = 0 +cache/0/14/0/kerning_overrides/16/0 = Vector2(0, 0) +cache/0/14/0/kerning_overrides/14/0 = Vector2(0, 0) + +[sub_resource type="FontFile" id="FontFile_ia6yb"] +data = PackedByteArray(0, 1, 0, 0, 0, 14, 0, 128, 0, 3, 0, 96, 71, 83, 85, 66, 54, 189, 53, 203, 0, 1, 80, 244, 0, 0, 2, 168, 79, 83, 47, 50, 152, 227, 193, 84, 0, 1, 35, 212, 0, 0, 0, 96, 83, 84, 65, 84, 229, 220, 204, 44, 0, 1, 83, 156, 0, 0, 0, 68, 99, 109, 97, 112, 171, 156, 209, 185, 0, 1, 36, 52, 0, 0, 7, 96, 103, 97, 115, 112, 0, 0, 0, 16, 0, 1, 80, 236, 0, 0, 0, 8, 103, 108, 121, 102, 206, 236, 63, 58, 0, 0, 0, 236, 0, 1, 18, 204, 104, 101, 97, 100, 1, 54, 156, 14, 0, 1, 27, 168, 0, 0, 0, 54, 104, 104, 101, 97, 10, 177, 1, 42, 0, 1, 35, 176, 0, 0, 0, 36, 104, 109, 116, 120, 206, 14, 221, 24, 0, 1, 27, 224, 0, 0, 7, 208, 108, 111, 99, 97, 131, 49, 198, 248, 0, 1, 19, 216, 0, 0, 7, 208, 109, 97, 120, 112, 4, 6, 1, 58, 0, 1, 19, 184, 0, 0, 0, 32, 110, 97, 109, 101, 93, 25, 135, 121, 0, 1, 43, 156, 0, 0, 3, 148, 112, 111, 115, 116, 151, 185, 175, 6, 0, 1, 47, 48, 0, 0, 33, 188, 112, 114, 101, 112, 104, 6, 140, 133, 0, 1, 43, 148, 0, 0, 0, 7, 0, 2, 0, 28, 0, 0, 4, 204, 5, 176, 0, 7, 0, 10, 0, 0, 65, 19, 33, 1, 35, 1, 33, 19, 55, 19, 19, 3, 79, 85, 1, 40, 254, 44, 255, 254, 35, 1, 40, 86, 69, 153, 149, 1, 48, 254, 208, 5, 176, 250, 80, 1, 48, 239, 2, 24, 253, 232, 0, 3, 0, 129, 0, 0, 4, 154, 5, 176, 0, 27, 0, 42, 0, 57, 0, 0, 115, 33, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 53, 54, 54, 55, 54, 54, 55, 52, 38, 39, 38, 38, 35, 33, 1, 33, 22, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 35, 17, 17, 51, 22, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 7, 129, 2, 19, 120, 192, 67, 67, 72, 29, 30, 29, 85, 72, 37, 61, 24, 44, 45, 1, 75, 69, 69, 195, 119, 254, 23, 1, 26, 1, 6, 59, 86, 27, 27, 25, 33, 32, 29, 87, 55, 250, 208, 68, 101, 30, 23, 23, 27, 25, 30, 98, 64, 54, 54, 54, 160, 105, 55, 103, 44, 41, 62, 20, 1, 14, 40, 24, 44, 117, 66, 102, 150, 49, 49, 48, 252, 210, 1, 30, 28, 27, 78, 49, 47, 76, 27, 24, 28, 2, 106, 1, 126, 1, 28, 31, 22, 66, 44, 42, 66, 23, 29, 29, 1, 0, 1, 0, 79, 255, 235, 4, 119, 5, 197, 0, 63, 0, 0, 65, 33, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 38, 38, 53, 53, 52, 54, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 33, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 6, 6, 21, 21, 20, 22, 23, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 4, 118, 254, 231, 4, 36, 31, 31, 88, 55, 41, 67, 27, 25, 39, 14, 20, 19, 12, 13, 17, 57, 41, 24, 57, 33, 62, 89, 30, 29, 31, 4, 1, 24, 10, 76, 66, 66, 187, 120, 81, 141, 59, 66, 104, 32, 28, 28, 31, 29, 30, 87, 56, 61, 153, 90, 114, 188, 68, 68, 81, 1, 200, 66, 94, 30, 30, 28, 19, 20, 18, 54, 35, 51, 137, 87, 198, 64, 111, 46, 59, 89, 24, 14, 14, 33, 32, 33, 98, 65, 114, 182, 63, 63, 68, 41, 38, 45, 130, 83, 68, 159, 88, 196, 94, 168, 70, 70, 116, 41, 44, 47, 67, 62, 62, 176, 0, 2, 0, 125, 0, 0, 4, 116, 5, 176, 0, 21, 0, 43, 0, 0, 115, 33, 50, 54, 55, 54, 54, 55, 54, 54, 53, 53, 52, 38, 39, 38, 38, 39, 38, 38, 35, 33, 5, 51, 50, 22, 23, 22, 22, 23, 22, 22, 21, 21, 20, 6, 7, 6, 6, 7, 6, 6, 35, 35, 125, 1, 135, 97, 171, 71, 61, 102, 38, 40, 44, 47, 43, 37, 99, 63, 72, 176, 101, 254, 135, 1, 27, 94, 51, 87, 36, 47, 71, 22, 18, 19, 19, 18, 22, 61, 38, 37, 90, 52, 108, 48, 45, 38, 113, 67, 75, 180, 101, 120, 105, 186, 77, 63, 107, 37, 45, 49, 228, 23, 21, 28, 88, 56, 47, 113, 63, 122, 67, 115, 47, 54, 81, 26, 25, 26, 0, 1, 0, 147, 0, 0, 4, 104, 5, 176, 0, 11, 0, 0, 65, 53, 33, 17, 33, 53, 33, 17, 33, 53, 33, 17, 4, 3, 253, 170, 2, 184, 252, 46, 3, 213, 253, 69, 2, 126, 222, 1, 111, 229, 250, 80, 227, 1, 155, 0, 0, 1, 0, 149, 0, 0, 4, 109, 5, 176, 0, 9, 0, 0, 65, 53, 33, 17, 33, 53, 33, 17, 33, 17, 4, 31, 253, 144, 2, 190, 252, 40, 1, 26, 2, 91, 228, 1, 140, 229, 250, 80, 2, 91, 0, 1, 0, 87, 255, 236, 4, 108, 5, 196, 0, 67, 0, 0, 101, 3, 33, 21, 51, 3, 6, 6, 7, 6, 6, 35, 38, 38, 39, 38, 38, 39, 38, 38, 53, 53, 52, 54, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 33, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 6, 6, 21, 21, 20, 22, 23, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 4, 108, 1, 253, 247, 241, 1, 11, 43, 28, 28, 64, 33, 54, 85, 32, 19, 31, 12, 19, 21, 15, 14, 18, 55, 34, 26, 60, 32, 59, 85, 28, 25, 29, 7, 1, 18, 11, 71, 63, 63, 183, 123, 80, 144, 61, 52, 87, 33, 35, 38, 39, 38, 33, 95, 58, 59, 141, 80, 92, 160, 65, 64, 94, 170, 2, 62, 210, 254, 248, 13, 23, 9, 9, 10, 1, 33, 32, 19, 49, 29, 50, 130, 79, 200, 63, 108, 44, 57, 84, 26, 19, 20, 31, 31, 28, 82, 53, 105, 168, 59, 58, 62, 44, 43, 38, 104, 65, 73, 179, 104, 198, 109, 186, 74, 67, 104, 36, 35, 37, 34, 28, 27, 68, 0, 1, 0, 123, 0, 0, 4, 68, 5, 176, 0, 11, 0, 0, 97, 17, 33, 17, 33, 17, 33, 17, 33, 17, 33, 17, 4, 68, 254, 234, 254, 100, 254, 233, 1, 23, 1, 156, 5, 176, 253, 171, 2, 85, 250, 80, 2, 119, 253, 137, 0, 1, 0, 193, 0, 0, 4, 11, 5, 176, 0, 11, 0, 0, 83, 21, 33, 17, 33, 21, 33, 53, 33, 17, 33, 53, 193, 1, 21, 254, 235, 3, 74, 254, 228, 1, 28, 5, 176, 227, 252, 21, 226, 226, 3, 235, 227, 0, 0, 1, 0, 111, 255, 236, 4, 76, 5, 176, 0, 27, 0, 0, 65, 17, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 33, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 3, 3, 50, 31, 28, 28, 80, 48, 60, 84, 26, 20, 20, 254, 230, 1, 72, 65, 64, 180, 110, 104, 181, 67, 67, 77, 1, 1, 5, 176, 252, 15, 51, 89, 32, 32, 37, 32, 33, 27, 78, 52, 113, 168, 55, 56, 56, 68, 62, 62, 171, 104, 3, 241, 0, 0, 1, 0, 129, 0, 0, 4, 235, 5, 176, 0, 12, 0, 0, 65, 1, 33, 1, 1, 33, 1, 7, 17, 33, 17, 33, 17, 2, 53, 1, 104, 1, 78, 254, 4, 1, 234, 254, 168, 254, 158, 132, 254, 230, 1, 26, 2, 86, 253, 170, 3, 44, 2, 132, 254, 23, 178, 2, 155, 250, 80, 1, 173, 0, 0, 1, 0, 150, 0, 0, 4, 90, 5, 176, 0, 5, 0, 0, 101, 17, 33, 17, 33, 53, 1, 176, 254, 230, 3, 196, 227, 4, 205, 250, 80, 227, 0, 1, 0, 127, 0, 0, 4, 96, 5, 176, 0, 14, 0, 0, 65, 33, 17, 33, 17, 3, 19, 51, 19, 3, 17, 33, 17, 33, 3, 1, 220, 254, 163, 1, 2, 12, 171, 139, 191, 12, 1, 2, 254, 163, 157, 5, 176, 250, 80, 1, 175, 2, 142, 253, 163, 2, 120, 253, 87, 254, 81, 5, 176, 253, 221, 0, 0, 1, 0, 123, 0, 0, 4, 67, 5, 176, 0, 9, 0, 0, 97, 17, 33, 3, 1, 33, 17, 33, 17, 1, 4, 67, 254, 230, 1, 254, 110, 254, 229, 1, 27, 1, 149, 5, 176, 252, 89, 3, 167, 250, 80, 3, 171, 252, 85, 0, 0, 2, 0, 80, 255, 236, 4, 123, 5, 196, 0, 37, 0, 75, 0, 0, 65, 53, 52, 38, 39, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 6, 6, 21, 21, 20, 22, 23, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 54, 54, 1, 21, 20, 6, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 38, 38, 53, 53, 52, 54, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 22, 22, 4, 123, 37, 35, 32, 89, 59, 59, 147, 84, 83, 142, 57, 58, 89, 31, 32, 33, 29, 28, 31, 92, 58, 59, 144, 85, 80, 139, 58, 64, 100, 34, 32, 34, 254, 227, 11, 11, 14, 47, 34, 27, 70, 42, 44, 69, 27, 29, 43, 11, 10, 8, 9, 10, 13, 47, 34, 25, 63, 39, 41, 67, 27, 34, 50, 15, 12, 11, 2, 109, 212, 99, 176, 74, 65, 108, 38, 40, 43, 42, 39, 40, 112, 69, 73, 172, 96, 212, 90, 162, 69, 75, 119, 42, 40, 44, 39, 35, 40, 120, 72, 72, 169, 1, 52, 214, 54, 100, 42, 54, 85, 28, 23, 24, 26, 24, 27, 87, 53, 42, 98, 53, 214, 56, 102, 43, 56, 84, 28, 19, 20, 22, 20, 27, 85, 54, 43, 101, 0, 2, 0, 149, 0, 0, 4, 142, 5, 176, 0, 16, 0, 31, 0, 0, 65, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 33, 17, 33, 17, 17, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 1, 174, 217, 119, 192, 68, 67, 73, 73, 67, 68, 192, 119, 254, 14, 1, 25, 217, 60, 88, 30, 29, 29, 29, 29, 30, 88, 60, 2, 22, 68, 61, 60, 166, 98, 105, 172, 62, 61, 69, 250, 80, 2, 250, 1, 210, 38, 33, 33, 88, 51, 44, 81, 31, 31, 36, 0, 2, 0, 85, 254, 255, 4, 193, 5, 196, 0, 40, 0, 78, 0, 0, 65, 53, 52, 38, 39, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 6, 6, 21, 21, 20, 22, 23, 22, 22, 23, 22, 22, 51, 50, 54, 55, 1, 55, 39, 54, 54, 55, 54, 54, 1, 21, 20, 6, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 38, 38, 53, 53, 52, 54, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 22, 22, 4, 132, 22, 22, 30, 104, 69, 61, 150, 86, 86, 146, 59, 65, 94, 28, 24, 25, 26, 25, 28, 91, 61, 60, 148, 88, 39, 73, 35, 1, 21, 181, 241, 39, 61, 22, 28, 29, 254, 228, 10, 10, 14, 49, 35, 28, 70, 43, 42, 67, 25, 35, 46, 12, 8, 7, 6, 6, 10, 45, 38, 26, 68, 43, 45, 73, 28, 29, 46, 12, 14, 12, 2, 65, 252, 77, 141, 62, 88, 142, 49, 42, 46, 46, 42, 46, 131, 81, 65, 153, 83, 252, 72, 137, 61, 70, 122, 44, 43, 48, 10, 9, 255, 0, 161, 218, 37, 89, 49, 63, 142, 1, 73, 254, 40, 79, 37, 49, 86, 29, 21, 25, 24, 22, 29, 88, 54, 35, 76, 38, 254, 45, 83, 37, 64, 103, 33, 23, 24, 26, 23, 27, 77, 47, 45, 108, 0, 0, 2, 0, 131, 0, 0, 4, 176, 5, 176, 0, 20, 0, 35, 0, 0, 65, 1, 33, 53, 1, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 33, 17, 33, 17, 53, 17, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 2, 113, 1, 18, 1, 45, 254, 199, 60, 97, 35, 34, 37, 75, 69, 70, 196, 121, 254, 24, 1, 25, 207, 58, 90, 31, 35, 35, 27, 26, 31, 99, 65, 2, 32, 253, 224, 13, 2, 89, 27, 74, 50, 49, 125, 78, 108, 164, 55, 55, 57, 250, 80, 2, 32, 228, 1, 200, 28, 26, 29, 89, 58, 48, 78, 28, 35, 37, 0, 1, 0, 89, 255, 237, 4, 140, 5, 196, 0, 73, 0, 0, 65, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 33, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 38, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 33, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 23, 22, 22, 23, 22, 22, 3, 119, 32, 30, 30, 87, 56, 63, 105, 37, 38, 42, 2, 254, 236, 87, 75, 79, 213, 109, 111, 188, 68, 68, 77, 102, 86, 57, 136, 75, 70, 111, 39, 39, 41, 31, 30, 30, 87, 56, 61, 91, 31, 30, 31, 2, 1, 18, 76, 68, 68, 189, 114, 110, 188, 69, 69, 78, 59, 58, 58, 183, 121, 78, 105, 33, 32, 27, 1, 124, 39, 65, 23, 23, 26, 28, 30, 30, 94, 66, 113, 168, 62, 63, 65, 53, 52, 51, 149, 96, 111, 170, 64, 39, 60, 21, 19, 44, 27, 26, 66, 41, 39, 67, 25, 24, 27, 33, 29, 30, 82, 49, 98, 164, 60, 59, 66, 57, 53, 53, 150, 92, 80, 136, 56, 56, 94, 33, 21, 49, 29, 30, 68, 0, 0, 1, 0, 27, 0, 0, 4, 177, 5, 176, 0, 7, 0, 0, 65, 53, 33, 21, 33, 17, 33, 17, 4, 177, 251, 106, 1, 187, 1, 26, 4, 203, 229, 229, 251, 53, 4, 203, 0, 1, 0, 126, 255, 236, 4, 78, 5, 176, 0, 29, 0, 0, 65, 33, 3, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 3, 33, 3, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 4, 77, 254, 233, 1, 1, 28, 28, 26, 79, 51, 47, 72, 25, 27, 27, 1, 1, 254, 231, 1, 69, 63, 63, 177, 110, 117, 183, 64, 63, 67, 5, 176, 252, 59, 71, 108, 36, 35, 35, 33, 33, 36, 110, 73, 3, 197, 252, 59, 122, 191, 65, 65, 68, 68, 66, 65, 190, 122, 0, 0, 1, 0, 31, 0, 0, 4, 174, 5, 176, 0, 8, 0, 0, 97, 33, 1, 33, 3, 7, 39, 3, 33, 1, 215, 1, 30, 1, 185, 254, 202, 248, 27, 25, 247, 254, 202, 5, 176, 252, 74, 99, 98, 3, 183, 0, 0, 1, 0, 26, 0, 0, 4, 183, 5, 176, 0, 18, 0, 0, 115, 51, 19, 55, 23, 19, 51, 19, 33, 3, 7, 39, 3, 35, 3, 7, 39, 3, 33, 226, 254, 122, 11, 11, 127, 254, 202, 254, 254, 99, 7, 9, 122, 201, 115, 9, 7, 97, 254, 255, 3, 18, 74, 74, 252, 238, 5, 176, 252, 208, 61, 60, 3, 49, 252, 213, 60, 57, 3, 46, 0, 1, 0, 30, 0, 0, 4, 199, 5, 176, 0, 11, 0, 0, 65, 3, 33, 1, 1, 33, 1, 1, 33, 1, 1, 33, 2, 112, 255, 254, 184, 1, 153, 254, 92, 1, 76, 1, 10, 1, 11, 1, 72, 254, 92, 1, 154, 254, 182, 3, 166, 2, 10, 253, 46, 253, 34, 2, 18, 253, 238, 2, 222, 2, 210, 0, 0, 1, 0, 33, 0, 0, 4, 200, 5, 176, 0, 8, 0, 0, 65, 1, 33, 1, 19, 33, 19, 1, 33, 2, 116, 254, 225, 254, 204, 1, 195, 1, 1, 24, 1, 1, 202, 254, 203, 3, 17, 2, 159, 252, 84, 253, 252, 1, 248, 3, 184, 0, 0, 1, 0, 89, 0, 0, 4, 129, 5, 176, 0, 9, 0, 0, 101, 1, 39, 33, 21, 33, 1, 21, 33, 53, 1, 175, 2, 193, 1, 251, 236, 2, 192, 253, 62, 4, 40, 227, 4, 38, 167, 229, 251, 225, 172, 227, 0, 2, 0, 115, 255, 236, 4, 75, 4, 78, 0, 53, 0, 73, 0, 0, 97, 33, 53, 38, 38, 53, 17, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 33, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 21, 35, 34, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 22, 22, 39, 34, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 51, 51, 21, 6, 6, 7, 6, 6, 3, 49, 1, 26, 21, 22, 70, 62, 62, 169, 98, 109, 169, 58, 59, 61, 1, 22, 17, 18, 20, 64, 44, 50, 75, 25, 24, 24, 155, 120, 185, 63, 70, 70, 56, 50, 50, 139, 83, 51, 88, 37, 36, 60, 23, 5, 14, 255, 39, 59, 20, 20, 21, 28, 29, 29, 92, 65, 142, 12, 42, 29, 29, 72, 17, 41, 114, 87, 1, 208, 94, 143, 47, 47, 48, 55, 47, 47, 124, 69, 29, 48, 17, 19, 21, 25, 23, 22, 61, 38, 64, 43, 41, 45, 139, 90, 70, 119, 43, 43, 48, 19, 17, 16, 44, 25, 29, 52, 175, 19, 16, 17, 49, 29, 37, 63, 23, 22, 25, 186, 21, 41, 16, 16, 20, 0, 0, 2, 0, 147, 255, 236, 4, 92, 6, 0, 0, 35, 0, 67, 0, 0, 65, 53, 52, 38, 39, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 17, 33, 17, 51, 55, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 54, 54, 37, 21, 20, 6, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 17, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 22, 22, 4, 92, 35, 36, 23, 60, 37, 46, 117, 70, 51, 87, 37, 26, 46, 20, 254, 234, 250, 13, 17, 38, 22, 41, 103, 63, 69, 115, 46, 51, 75, 23, 21, 22, 254, 234, 7, 8, 10, 39, 31, 22, 60, 37, 43, 67, 25, 21, 31, 12, 9, 22, 13, 27, 76, 50, 37, 58, 23, 35, 35, 11, 9, 8, 2, 18, 21, 98, 172, 69, 43, 73, 26, 34, 36, 21, 21, 14, 39, 23, 2, 40, 250, 0, 115, 22, 37, 15, 30, 31, 35, 33, 35, 106, 65, 59, 139, 99, 21, 42, 78, 33, 45, 71, 22, 16, 18, 20, 19, 15, 41, 25, 1, 175, 19, 33, 13, 27, 28, 17, 17, 27, 65, 41, 35, 80, 0, 1, 0, 117, 255, 235, 4, 60, 4, 78, 0, 51, 0, 0, 101, 34, 38, 39, 38, 38, 53, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 7, 33, 54, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 39, 33, 22, 6, 7, 6, 6, 2, 108, 67, 87, 25, 26, 20, 21, 26, 25, 86, 66, 45, 76, 27, 27, 28, 2, 1, 6, 2, 68, 61, 62, 170, 100, 125, 189, 64, 64, 64, 65, 64, 63, 190, 126, 93, 167, 63, 63, 73, 2, 254, 250, 2, 31, 28, 28, 74, 202, 54, 45, 44, 117, 63, 30, 62, 116, 45, 45, 54, 31, 26, 26, 72, 40, 96, 155, 55, 54, 60, 86, 74, 74, 199, 114, 30, 114, 199, 74, 74, 85, 59, 52, 52, 144, 84, 38, 62, 22, 22, 24, 0, 2, 0, 112, 255, 236, 4, 56, 6, 0, 0, 23, 0, 43, 0, 0, 83, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 23, 51, 17, 33, 17, 38, 38, 35, 34, 6, 7, 6, 6, 5, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 17, 6, 6, 35, 34, 38, 39, 38, 38, 112, 58, 55, 54, 157, 99, 91, 138, 51, 14, 251, 254, 233, 50, 129, 85, 101, 157, 55, 55, 57, 1, 22, 24, 26, 26, 83, 59, 71, 94, 28, 28, 95, 72, 59, 82, 26, 26, 23, 2, 37, 21, 118, 201, 73, 73, 83, 70, 63, 113, 6, 0, 253, 217, 56, 61, 80, 73, 73, 204, 144, 21, 68, 119, 45, 44, 51, 61, 55, 254, 74, 54, 62, 50, 44, 43, 117, 0, 0, 2, 0, 112, 255, 236, 4, 104, 4, 78, 0, 34, 0, 48, 0, 0, 69, 50, 54, 55, 39, 6, 6, 35, 34, 38, 39, 38, 38, 39, 53, 33, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 21, 20, 22, 23, 22, 22, 19, 50, 22, 23, 22, 22, 21, 21, 33, 54, 54, 55, 54, 54, 2, 154, 157, 230, 53, 139, 48, 154, 82, 58, 98, 38, 37, 44, 14, 2, 222, 66, 63, 64, 183, 117, 113, 192, 70, 70, 78, 79, 73, 73, 204, 92, 53, 81, 28, 28, 32, 254, 56, 10, 40, 30, 29, 78, 20, 122, 75, 150, 62, 62, 36, 33, 32, 79, 65, 3, 118, 119, 197, 70, 70, 77, 82, 74, 74, 205, 124, 40, 109, 191, 70, 71, 82, 3, 129, 33, 28, 29, 78, 44, 22, 53, 86, 31, 31, 33, 0, 0, 1, 0, 126, 0, 0, 4, 130, 6, 45, 0, 32, 0, 0, 97, 33, 17, 33, 53, 33, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 55, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 21, 33, 21, 33, 1, 154, 1, 23, 1, 134, 254, 122, 25, 26, 29, 98, 70, 65, 96, 38, 18, 34, 63, 31, 31, 65, 35, 111, 180, 63, 63, 68, 254, 228, 1, 28, 3, 109, 205, 59, 48, 76, 26, 31, 32, 12, 8, 218, 6, 10, 4, 4, 5, 57, 56, 56, 164, 107, 59, 205, 0, 0, 2, 0, 113, 254, 86, 4, 71, 4, 78, 0, 53, 0, 79, 0, 0, 83, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 7, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 17, 35, 7, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 5, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 17, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 113, 61, 57, 57, 161, 101, 51, 89, 37, 25, 44, 20, 31, 29, 32, 95, 61, 38, 71, 33, 34, 62, 27, 125, 35, 98, 55, 55, 112, 49, 114, 189, 68, 67, 75, 253, 11, 20, 48, 28, 37, 91, 55, 102, 162, 57, 57, 61, 1, 23, 28, 29, 28, 86, 59, 32, 55, 23, 27, 42, 15, 14, 38, 25, 24, 59, 36, 59, 86, 28, 28, 27, 2, 37, 21, 118, 201, 73, 73, 83, 22, 20, 14, 36, 22, 62, 55, 88, 30, 33, 34, 15, 15, 15, 47, 31, 169, 45, 65, 21, 21, 20, 61, 59, 59, 172, 110, 4, 23, 103, 25, 41, 15, 21, 21, 80, 73, 73, 204, 144, 21, 68, 119, 45, 44, 51, 12, 11, 13, 42, 28, 254, 54, 25, 40, 14, 13, 14, 50, 44, 43, 117, 0, 1, 0, 141, 0, 0, 4, 86, 6, 0, 0, 31, 0, 0, 65, 17, 33, 17, 33, 17, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 17, 33, 17, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 1, 163, 254, 234, 1, 22, 16, 39, 24, 26, 64, 37, 48, 76, 27, 27, 29, 1, 22, 57, 51, 51, 142, 85, 58, 104, 43, 28, 51, 3, 165, 2, 91, 250, 0, 3, 13, 21, 34, 12, 14, 14, 25, 26, 26, 84, 58, 253, 111, 2, 143, 119, 169, 54, 54, 51, 34, 31, 20, 53, 0, 2, 0, 215, 0, 0, 4, 73, 5, 227, 0, 9, 0, 27, 0, 0, 83, 21, 33, 17, 33, 21, 33, 53, 33, 17, 1, 20, 22, 23, 22, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 7, 6, 6, 215, 1, 52, 254, 204, 3, 114, 254, 219, 254, 211, 23, 21, 21, 59, 36, 74, 87, 87, 74, 36, 59, 21, 21, 23, 4, 58, 227, 253, 139, 226, 226, 3, 88, 1, 21, 32, 55, 19, 20, 22, 83, 65, 65, 83, 22, 19, 20, 55, 0, 0, 2, 0, 223, 254, 75, 3, 113, 5, 227, 0, 29, 0, 41, 0, 0, 65, 21, 33, 17, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 7, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 17, 1, 20, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 1, 51, 1, 17, 30, 25, 26, 71, 40, 10, 41, 22, 23, 43, 12, 14, 18, 37, 19, 26, 53, 26, 109, 170, 59, 59, 62, 254, 212, 87, 72, 74, 87, 87, 74, 74, 85, 4, 58, 227, 252, 144, 52, 69, 21, 21, 18, 1, 2, 1, 5, 3, 226, 4, 6, 2, 3, 2, 48, 51, 50, 155, 108, 4, 83, 1, 21, 64, 84, 83, 65, 65, 83, 86, 0, 1, 0, 144, 0, 0, 4, 172, 6, 0, 0, 12, 0, 0, 65, 1, 33, 1, 1, 33, 1, 7, 17, 33, 17, 33, 17, 2, 36, 1, 51, 1, 85, 254, 47, 1, 152, 254, 178, 254, 213, 84, 254, 234, 1, 22, 1, 191, 254, 65, 2, 119, 1, 195, 254, 184, 96, 3, 110, 250, 0, 1, 74, 0, 0, 1, 0, 199, 0, 0, 4, 90, 6, 0, 0, 9, 0, 0, 83, 21, 33, 17, 33, 21, 33, 53, 33, 17, 199, 1, 68, 254, 188, 3, 147, 254, 202, 6, 0, 227, 251, 197, 226, 226, 5, 30, 0, 1, 0, 75, 0, 0, 4, 120, 4, 78, 0, 58, 0, 0, 65, 35, 17, 51, 17, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 17, 51, 17, 52, 52, 53, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 17, 51, 17, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 38, 38, 39, 38, 38, 35, 34, 6, 7, 1, 58, 239, 253, 5, 12, 8, 11, 28, 18, 16, 28, 11, 10, 12, 245, 5, 14, 9, 11, 25, 16, 15, 29, 11, 11, 13, 253, 35, 31, 32, 85, 49, 39, 66, 26, 21, 35, 14, 9, 25, 17, 22, 60, 38, 78, 109, 31, 4, 58, 251, 198, 3, 42, 13, 22, 8, 11, 12, 9, 11, 11, 40, 31, 252, 250, 3, 30, 12, 14, 2, 11, 17, 7, 7, 8, 9, 11, 12, 40, 31, 252, 251, 3, 4, 90, 125, 40, 39, 36, 20, 18, 14, 39, 24, 25, 39, 14, 19, 18, 81, 70, 0, 0, 1, 0, 141, 0, 0, 4, 83, 4, 78, 0, 31, 0, 0, 115, 33, 17, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 17, 33, 17, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 39, 35, 141, 1, 23, 14, 34, 21, 26, 67, 40, 48, 76, 27, 27, 29, 1, 22, 55, 49, 50, 136, 82, 64, 114, 48, 28, 50, 21, 17, 252, 3, 1, 22, 36, 13, 18, 18, 19, 24, 24, 83, 64, 253, 106, 2, 154, 118, 165, 53, 52, 48, 36, 34, 20, 50, 30, 150, 0, 2, 0, 103, 255, 235, 4, 100, 4, 78, 0, 25, 0, 51, 0, 0, 83, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 5, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 103, 68, 66, 65, 191, 122, 121, 190, 65, 65, 68, 68, 65, 66, 190, 122, 122, 189, 65, 66, 68, 1, 22, 26, 28, 28, 88, 62, 63, 88, 28, 27, 26, 26, 27, 28, 88, 61, 63, 89, 28, 28, 26, 2, 39, 21, 119, 201, 74, 74, 83, 83, 74, 74, 201, 119, 21, 118, 201, 74, 74, 84, 84, 74, 74, 201, 139, 21, 66, 118, 45, 45, 52, 52, 45, 45, 118, 66, 21, 68, 119, 44, 45, 52, 52, 45, 44, 119, 0, 2, 0, 145, 254, 96, 4, 89, 4, 78, 0, 29, 0, 55, 0, 0, 83, 33, 17, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 39, 33, 1, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 17, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 145, 1, 22, 19, 42, 23, 39, 91, 54, 102, 158, 54, 53, 55, 55, 54, 54, 158, 103, 50, 87, 36, 30, 52, 22, 10, 254, 255, 2, 178, 24, 26, 26, 83, 59, 37, 60, 23, 24, 37, 13, 14, 39, 26, 23, 56, 34, 59, 83, 27, 26, 25, 254, 96, 1, 254, 21, 34, 14, 22, 23, 84, 74, 73, 202, 118, 21, 123, 203, 73, 72, 79, 21, 19, 16, 43, 27, 106, 253, 238, 21, 67, 119, 45, 45, 52, 15, 14, 15, 42, 26, 1, 196, 28, 42, 14, 12, 13, 50, 43, 44, 119, 0, 2, 0, 113, 254, 96, 4, 57, 4, 78, 0, 29, 0, 55, 0, 0, 83, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 17, 33, 17, 35, 7, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 5, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 17, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 113, 57, 54, 54, 158, 102, 48, 83, 35, 27, 50, 21, 1, 23, 245, 17, 21, 48, 27, 38, 91, 54, 103, 159, 54, 55, 56, 1, 22, 25, 27, 26, 83, 59, 35, 59, 23, 24, 36, 14, 14, 36, 24, 24, 59, 36, 59, 83, 26, 26, 24, 2, 38, 21, 118, 201, 73, 74, 83, 19, 17, 14, 38, 24, 254, 4, 5, 218, 110, 26, 42, 16, 22, 24, 80, 72, 73, 204, 144, 21, 69, 119, 44, 44, 51, 14, 13, 14, 39, 25, 254, 52, 26, 41, 14, 13, 15, 52, 45, 44, 118, 0, 0, 1, 1, 31, 0, 0, 4, 97, 4, 78, 0, 21, 0, 0, 65, 34, 6, 7, 39, 39, 33, 17, 33, 17, 54, 54, 55, 54, 54, 51, 50, 22, 23, 19, 38, 38, 3, 150, 109, 184, 66, 2, 11, 254, 253, 1, 22, 19, 58, 41, 34, 87, 54, 52, 115, 55, 41, 33, 107, 4, 78, 105, 92, 24, 153, 251, 198, 2, 138, 46, 68, 22, 19, 19, 13, 13, 1, 21, 10, 17, 0, 1, 0, 122, 255, 235, 4, 85, 4, 78, 0, 73, 0, 0, 65, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 33, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 38, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 33, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 23, 22, 22, 23, 22, 22, 3, 71, 25, 25, 26, 81, 54, 45, 85, 33, 33, 42, 3, 254, 247, 65, 63, 63, 187, 122, 111, 180, 64, 63, 69, 69, 61, 61, 168, 98, 68, 88, 25, 26, 20, 23, 22, 24, 76, 51, 60, 85, 25, 18, 18, 1, 22, 66, 62, 63, 180, 113, 108, 172, 60, 60, 64, 63, 56, 56, 157, 95, 75, 98, 30, 29, 23, 1, 41, 25, 42, 16, 16, 19, 18, 20, 19, 63, 44, 66, 131, 51, 52, 64, 49, 44, 44, 121, 72, 78, 113, 40, 39, 50, 16, 10, 27, 17, 16, 41, 24, 24, 43, 16, 18, 20, 30, 25, 19, 47, 27, 75, 128, 47, 46, 53, 54, 46, 46, 122, 67, 69, 106, 40, 41, 57, 19, 14, 28, 16, 17, 38, 0, 1, 0, 126, 255, 235, 4, 78, 5, 67, 0, 35, 0, 0, 65, 33, 17, 35, 21, 51, 17, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 39, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 17, 33, 53, 33, 2, 139, 254, 234, 247, 247, 56, 52, 51, 145, 89, 46, 95, 44, 44, 78, 29, 27, 19, 53, 30, 31, 67, 32, 44, 71, 25, 25, 27, 1, 148, 254, 108, 5, 67, 254, 247, 205, 254, 20, 107, 153, 49, 50, 47, 9, 8, 8, 25, 17, 191, 5, 10, 4, 5, 6, 20, 24, 23, 79, 59, 1, 209, 205, 0, 1, 0, 150, 255, 235, 4, 75, 4, 58, 0, 28, 0, 0, 97, 51, 17, 33, 17, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 17, 33, 17, 20, 22, 23, 22, 22, 51, 50, 54, 55, 3, 79, 252, 254, 233, 13, 36, 23, 27, 71, 44, 49, 68, 21, 21, 19, 254, 234, 55, 50, 50, 140, 84, 92, 155, 55, 4, 58, 253, 9, 26, 42, 15, 17, 18, 24, 28, 27, 90, 66, 2, 130, 253, 128, 123, 175, 56, 57, 52, 92, 81, 0, 1, 0, 72, 0, 0, 4, 133, 4, 58, 0, 8, 0, 0, 97, 33, 1, 33, 3, 7, 39, 3, 33, 1, 229, 1, 5, 1, 155, 254, 222, 237, 15, 15, 238, 254, 222, 4, 58, 253, 5, 76, 76, 2, 251, 0, 0, 1, 0, 27, 0, 0, 4, 158, 4, 58, 0, 18, 0, 0, 115, 51, 19, 55, 23, 19, 51, 19, 35, 3, 7, 39, 3, 35, 3, 7, 39, 3, 35, 221, 244, 115, 22, 23, 119, 244, 194, 255, 80, 14, 19, 117, 186, 117, 19, 13, 81, 254, 2, 66, 110, 110, 253, 190, 4, 58, 253, 130, 105, 103, 2, 128, 253, 125, 103, 103, 2, 131, 0, 1, 0, 89, 0, 0, 4, 162, 4, 58, 0, 11, 0, 0, 65, 3, 33, 1, 1, 33, 19, 19, 33, 1, 1, 33, 2, 124, 234, 254, 213, 1, 106, 254, 136, 1, 45, 247, 249, 1, 44, 254, 136, 1, 107, 254, 213, 2, 232, 1, 82, 253, 237, 253, 217, 1, 98, 254, 158, 2, 39, 2, 19, 0, 0, 1, 0, 52, 254, 75, 4, 205, 4, 58, 0, 27, 0, 0, 65, 50, 54, 55, 54, 54, 55, 1, 33, 3, 7, 39, 3, 33, 1, 7, 6, 6, 7, 6, 6, 35, 34, 38, 35, 7, 22, 22, 1, 56, 84, 123, 43, 43, 57, 18, 2, 37, 254, 205, 247, 41, 30, 248, 254, 208, 1, 202, 64, 12, 17, 18, 18, 51, 33, 16, 53, 17, 34, 36, 59, 254, 75, 56, 41, 41, 96, 41, 4, 220, 253, 132, 108, 110, 2, 122, 251, 244, 119, 22, 24, 24, 24, 41, 3, 212, 10, 10, 0, 1, 0, 118, 0, 0, 4, 111, 4, 58, 0, 9, 0, 0, 101, 1, 53, 33, 21, 33, 1, 21, 33, 53, 1, 242, 2, 100, 252, 46, 2, 80, 253, 162, 3, 249, 223, 2, 180, 167, 226, 253, 84, 172, 223, 0, 0, 3, 0, 141, 255, 235, 4, 65, 5, 197, 0, 25, 0, 42, 0, 59, 0, 0, 65, 17, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 17, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 1, 52, 52, 53, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 17, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 1, 20, 20, 21, 4, 65, 66, 61, 62, 176, 110, 109, 175, 61, 62, 66, 67, 62, 61, 176, 109, 110, 176, 61, 61, 65, 253, 100, 25, 26, 24, 71, 47, 42, 67, 23, 30, 31, 2, 25, 25, 24, 72, 47, 51, 74, 24, 21, 23, 2, 1, 132, 2, 42, 1, 92, 141, 215, 73, 72, 74, 74, 72, 73, 215, 141, 254, 164, 141, 215, 72, 73, 74, 74, 73, 72, 215, 1, 5, 31, 32, 48, 161, 81, 118, 37, 35, 35, 27, 28, 35, 117, 82, 254, 61, 81, 119, 38, 36, 35, 40, 41, 34, 102, 66, 1, 32, 29, 31, 33, 0, 1, 0, 173, 0, 0, 3, 54, 5, 176, 0, 6, 0, 0, 97, 17, 35, 5, 21, 37, 17, 3, 54, 15, 253, 134, 1, 112, 5, 176, 229, 242, 132, 251, 163, 0, 0, 1, 0, 70, 0, 0, 4, 69, 5, 196, 0, 42, 0, 0, 97, 53, 33, 1, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 33, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 7, 1, 21, 4, 69, 253, 129, 1, 18, 71, 116, 42, 41, 45, 60, 57, 58, 171, 111, 116, 191, 67, 68, 74, 1, 23, 30, 29, 28, 85, 56, 43, 71, 26, 25, 28, 21, 23, 24, 76, 55, 254, 41, 223, 1, 34, 73, 133, 64, 64, 131, 72, 95, 157, 56, 56, 62, 75, 65, 65, 173, 97, 59, 92, 31, 30, 31, 28, 26, 27, 76, 49, 33, 70, 40, 41, 98, 60, 254, 6, 190, 0, 0, 1, 0, 96, 255, 236, 4, 72, 5, 196, 0, 76, 0, 0, 65, 21, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 33, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 33, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 1, 165, 151, 57, 91, 33, 32, 34, 29, 28, 29, 86, 54, 48, 80, 29, 30, 32, 254, 234, 83, 69, 69, 177, 93, 108, 187, 68, 68, 78, 28, 29, 29, 89, 61, 52, 80, 27, 27, 28, 71, 64, 64, 180, 108, 100, 173, 64, 64, 73, 1, 22, 32, 28, 27, 73, 42, 51, 77, 25, 25, 25, 25, 25, 27, 87, 60, 3, 82, 216, 26, 27, 27, 84, 59, 47, 76, 26, 29, 30, 29, 26, 25, 71, 42, 106, 156, 51, 52, 51, 57, 55, 54, 160, 102, 58, 104, 44, 43, 68, 22, 25, 69, 41, 41, 91, 47, 102, 155, 53, 52, 53, 58, 52, 53, 146, 89, 40, 64, 23, 22, 24, 28, 25, 26, 71, 43, 44, 75, 26, 30, 33, 0, 0, 2, 0, 59, 0, 0, 4, 98, 5, 176, 0, 10, 0, 14, 0, 0, 65, 17, 33, 1, 23, 33, 17, 33, 17, 51, 53, 33, 1, 55, 17, 3, 185, 254, 230, 253, 156, 11, 2, 93, 1, 22, 169, 252, 234, 1, 60, 27, 2, 29, 3, 147, 252, 58, 174, 254, 196, 1, 60, 225, 1, 237, 48, 253, 227, 0, 0, 1, 0, 117, 255, 236, 4, 70, 5, 176, 0, 48, 0, 0, 83, 23, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 33, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 19, 33, 53, 33, 155, 222, 16, 36, 23, 23, 60, 41, 61, 90, 30, 30, 29, 23, 24, 25, 79, 56, 91, 117, 10, 254, 238, 3, 85, 68, 68, 175, 94, 124, 182, 60, 60, 58, 60, 56, 57, 165, 105, 74, 114, 31, 35, 2, 67, 252, 216, 2, 205, 55, 16, 29, 11, 11, 14, 38, 35, 35, 97, 58, 59, 102, 37, 37, 42, 104, 95, 101, 157, 54, 54, 56, 78, 67, 67, 176, 98, 115, 182, 63, 63, 67, 38, 18, 1, 64, 236, 0, 2, 0, 105, 255, 236, 4, 74, 5, 188, 0, 39, 0, 64, 0, 0, 65, 35, 34, 4, 7, 6, 2, 21, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 54, 54, 55, 54, 54, 51, 51, 1, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 53, 54, 54, 55, 54, 54, 3, 111, 37, 181, 254, 236, 93, 93, 94, 71, 66, 65, 188, 117, 112, 180, 63, 63, 68, 51, 52, 52, 155, 104, 51, 88, 37, 38, 60, 23, 9, 69, 60, 59, 169, 110, 16, 254, 236, 52, 81, 28, 28, 30, 30, 28, 28, 80, 49, 48, 82, 30, 30, 33, 14, 41, 25, 29, 70, 5, 188, 121, 107, 108, 254, 217, 173, 107, 125, 211, 77, 77, 87, 77, 67, 67, 182, 106, 99, 179, 68, 67, 79, 24, 19, 20, 49, 25, 91, 148, 53, 53, 58, 254, 23, 41, 36, 37, 100, 59, 59, 99, 36, 36, 41, 40, 40, 39, 120, 80, 82, 30, 50, 19, 21, 23, 0, 0, 1, 0, 69, 0, 0, 4, 68, 5, 176, 0, 6, 0, 0, 65, 53, 33, 21, 33, 1, 33, 4, 68, 252, 1, 2, 219, 253, 200, 1, 37, 5, 21, 155, 227, 251, 51, 0, 0, 3, 0, 109, 255, 236, 4, 62, 5, 196, 0, 47, 0, 71, 0, 95, 0, 0, 65, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 23, 6, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 3, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 3, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 4, 31, 69, 61, 62, 168, 99, 99, 167, 60, 61, 68, 29, 27, 25, 73, 45, 53, 85, 30, 30, 33, 75, 66, 66, 179, 104, 103, 178, 66, 65, 75, 54, 48, 26, 66, 37, 41, 67, 25, 32, 35, 248, 31, 27, 28, 76, 46, 47, 76, 27, 29, 32, 30, 27, 27, 77, 48, 48, 77, 28, 27, 30, 29, 25, 23, 23, 66, 42, 42, 67, 23, 24, 24, 23, 23, 22, 66, 43, 42, 67, 24, 23, 26, 4, 45, 99, 151, 52, 52, 53, 53, 52, 52, 151, 99, 54, 98, 41, 39, 64, 23, 25, 71, 44, 45, 107, 60, 103, 156, 52, 53, 54, 54, 53, 52, 156, 103, 78, 132, 50, 28, 45, 18, 21, 57, 33, 44, 105, 253, 176, 50, 79, 28, 28, 29, 27, 26, 27, 82, 52, 50, 80, 29, 28, 30, 30, 28, 29, 80, 2, 77, 44, 73, 26, 26, 29, 29, 26, 26, 73, 45, 44, 73, 25, 25, 27, 28, 25, 26, 72, 0, 0, 2, 0, 97, 255, 244, 4, 47, 5, 196, 0, 40, 0, 65, 0, 0, 101, 35, 21, 51, 50, 36, 55, 54, 18, 53, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 21, 6, 6, 7, 6, 6, 19, 34, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 21, 6, 6, 7, 6, 6, 1, 76, 19, 21, 193, 1, 22, 90, 90, 86, 67, 63, 64, 182, 114, 112, 179, 63, 63, 67, 55, 54, 53, 158, 104, 49, 82, 33, 31, 52, 21, 10, 61, 54, 56, 164, 143, 54, 80, 26, 27, 26, 28, 26, 26, 77, 49, 45, 78, 29, 29, 33, 12, 39, 26, 27, 65, 221, 233, 119, 107, 106, 1, 36, 174, 96, 130, 218, 79, 79, 88, 81, 70, 70, 187, 106, 103, 179, 66, 66, 76, 17, 15, 13, 36, 21, 6, 80, 129, 44, 46, 48, 1, 210, 45, 38, 38, 102, 56, 56, 103, 40, 39, 47, 40, 40, 40, 120, 80, 99, 31, 53, 19, 20, 22, 0, 0, 1, 1, 138, 2, 147, 3, 16, 5, 165, 0, 6, 0, 0, 65, 17, 35, 5, 21, 55, 17, 3, 16, 19, 254, 141, 191, 2, 147, 3, 18, 120, 156, 43, 253, 215, 0, 1, 1, 42, 2, 155, 3, 166, 5, 187, 0, 42, 0, 0, 65, 53, 33, 55, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 51, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 7, 1, 21, 3, 166, 254, 157, 117, 54, 80, 27, 27, 27, 32, 31, 39, 124, 82, 71, 112, 40, 40, 42, 201, 13, 14, 14, 43, 29, 24, 37, 12, 12, 12, 15, 17, 13, 36, 25, 254, 225, 2, 155, 159, 93, 43, 72, 35, 35, 72, 44, 52, 85, 30, 39, 41, 43, 37, 38, 99, 56, 22, 40, 15, 16, 19, 13, 11, 11, 33, 19, 14, 40, 24, 18, 41, 22, 254, 253, 134, 0, 1, 1, 37, 2, 143, 3, 166, 5, 186, 0, 76, 0, 0, 65, 21, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 35, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 51, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 2, 3, 88, 30, 49, 16, 17, 17, 12, 12, 14, 45, 32, 30, 47, 16, 14, 15, 202, 56, 45, 44, 111, 56, 70, 120, 45, 44, 50, 23, 21, 19, 54, 33, 27, 44, 17, 23, 24, 46, 41, 41, 116, 70, 60, 108, 41, 41, 49, 201, 17, 15, 14, 37, 21, 30, 41, 13, 12, 12, 16, 18, 14, 41, 27, 4, 111, 135, 10, 11, 11, 36, 27, 17, 32, 12, 13, 16, 15, 13, 11, 30, 16, 67, 93, 29, 30, 26, 31, 30, 29, 86, 56, 41, 63, 22, 20, 28, 9, 10, 27, 17, 22, 59, 35, 55, 85, 29, 28, 29, 29, 28, 29, 84, 55, 16, 24, 8, 8, 8, 14, 11, 12, 28, 15, 22, 36, 12, 10, 10, 0, 0, 2, 1, 17, 2, 179, 3, 174, 5, 196, 0, 52, 0, 72, 0, 0, 65, 51, 38, 38, 53, 17, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 23, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 21, 35, 34, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 22, 22, 39, 34, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 51, 51, 21, 6, 6, 7, 6, 6, 2, 253, 177, 14, 12, 42, 38, 39, 107, 65, 71, 114, 41, 41, 44, 173, 13, 13, 17, 57, 38, 30, 44, 14, 14, 14, 137, 79, 122, 42, 43, 45, 33, 32, 31, 93, 60, 42, 70, 28, 27, 41, 14, 3, 11, 193, 32, 46, 14, 13, 12, 20, 20, 20, 58, 39, 136, 8, 37, 24, 25, 56, 2, 193, 44, 88, 49, 1, 58, 69, 103, 35, 34, 35, 35, 31, 31, 85, 51, 14, 20, 33, 12, 17, 17, 17, 16, 16, 47, 31, 51, 29, 27, 29, 89, 57, 52, 84, 30, 30, 32, 18, 15, 15, 39, 21, 25, 47, 108, 13, 13, 11, 31, 20, 22, 40, 15, 15, 18, 103, 17, 34, 13, 14, 17, 0, 2, 1, 10, 2, 178, 3, 191, 5, 196, 0, 25, 0, 51, 0, 0, 65, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 23, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 1, 10, 49, 45, 45, 129, 80, 80, 128, 45, 44, 48, 48, 45, 45, 128, 80, 81, 128, 45, 45, 48, 175, 21, 22, 21, 64, 43, 43, 65, 22, 21, 21, 21, 21, 21, 64, 43, 44, 65, 21, 22, 21, 4, 117, 117, 73, 123, 44, 44, 50, 50, 44, 44, 123, 73, 117, 73, 123, 45, 44, 50, 50, 44, 45, 123, 190, 117, 40, 68, 25, 25, 29, 29, 25, 25, 68, 40, 117, 41, 68, 25, 26, 28, 28, 26, 25, 68, 0, 3, 0, 24, 0, 0, 4, 183, 5, 179, 0, 6, 0, 49, 0, 53, 0, 0, 65, 17, 35, 5, 21, 55, 17, 1, 53, 33, 55, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 51, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 7, 5, 21, 37, 1, 39, 1, 1, 119, 17, 254, 178, 172, 3, 243, 254, 192, 106, 48, 72, 24, 25, 24, 33, 32, 35, 108, 69, 64, 101, 36, 36, 38, 181, 10, 11, 13, 40, 28, 24, 35, 11, 8, 9, 13, 15, 11, 34, 22, 254, 254, 254, 217, 1, 255, 131, 254, 1, 2, 240, 2, 195, 108, 140, 39, 254, 14, 253, 16, 143, 84, 39, 64, 32, 31, 65, 40, 50, 80, 28, 32, 32, 39, 33, 34, 89, 51, 18, 35, 13, 16, 19, 13, 13, 10, 27, 15, 13, 35, 21, 18, 36, 20, 233, 121, 235, 3, 170, 67, 252, 86, 0, 4, 0, 65, 0, 0, 4, 146, 5, 178, 0, 6, 0, 17, 0, 21, 0, 25, 0, 0, 65, 17, 35, 5, 21, 55, 17, 1, 17, 35, 1, 23, 33, 21, 51, 53, 51, 53, 33, 55, 55, 21, 5, 1, 39, 1, 1, 160, 17, 254, 178, 172, 3, 83, 181, 254, 190, 10, 1, 55, 182, 82, 254, 100, 137, 11, 254, 31, 1, 255, 131, 254, 1, 2, 239, 2, 195, 108, 140, 39, 254, 14, 254, 52, 1, 163, 254, 64, 118, 144, 144, 147, 176, 17, 193, 56, 3, 170, 67, 252, 86, 0, 0, 4, 0, 33, 0, 0, 4, 194, 5, 184, 0, 10, 0, 14, 0, 91, 0, 95, 0, 0, 65, 17, 35, 1, 23, 33, 21, 51, 53, 51, 53, 33, 55, 55, 21, 1, 21, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 35, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 51, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 19, 1, 39, 1, 4, 112, 181, 254, 190, 10, 1, 55, 182, 82, 254, 100, 137, 11, 253, 47, 79, 34, 51, 14, 8, 9, 10, 12, 13, 39, 29, 27, 42, 14, 13, 14, 182, 51, 40, 40, 100, 50, 63, 108, 41, 39, 45, 24, 23, 17, 44, 27, 23, 37, 16, 21, 25, 42, 37, 37, 104, 63, 54, 97, 37, 37, 44, 181, 12, 12, 13, 36, 20, 27, 37, 12, 11, 11, 13, 13, 13, 40, 26, 197, 1, 255, 131, 254, 1, 1, 35, 1, 163, 254, 64, 118, 144, 144, 147, 176, 17, 193, 3, 107, 121, 15, 16, 10, 27, 18, 15, 29, 11, 11, 15, 14, 10, 11, 27, 15, 61, 83, 26, 27, 24, 28, 27, 26, 78, 50, 40, 60, 21, 15, 21, 8, 8, 22, 14, 21, 54, 34, 49, 77, 26, 25, 26, 26, 25, 26, 76, 49, 12, 21, 7, 8, 9, 12, 10, 11, 25, 14, 19, 30, 11, 10, 11, 252, 93, 3, 170, 67, 252, 86, 0, 2, 0, 48, 0, 0, 4, 153, 5, 176, 0, 15, 0, 18, 0, 0, 97, 53, 33, 17, 51, 53, 35, 17, 51, 53, 33, 1, 33, 19, 51, 17, 3, 19, 17, 4, 153, 254, 243, 217, 217, 248, 253, 139, 254, 33, 1, 26, 94, 217, 150, 150, 226, 1, 153, 227, 1, 110, 228, 250, 80, 1, 78, 254, 178, 2, 62, 2, 20, 253, 236, 0, 0, 3, 0, 46, 255, 236, 4, 170, 4, 79, 0, 87, 0, 112, 0, 130, 0, 0, 69, 50, 54, 55, 54, 54, 55, 39, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 38, 38, 53, 53, 33, 53, 52, 38, 39, 38, 38, 35, 38, 6, 7, 6, 6, 7, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 5, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 21, 35, 34, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 22, 22, 23, 22, 22, 37, 34, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 51, 51, 20, 20, 21, 20, 20, 21, 6, 6, 7, 6, 6, 1, 35, 53, 52, 54, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 3, 100, 50, 90, 39, 38, 61, 20, 55, 21, 40, 22, 23, 54, 34, 32, 51, 19, 21, 28, 9, 7, 7, 1, 195, 47, 42, 43, 121, 74, 42, 74, 31, 23, 40, 17, 17, 37, 21, 33, 79, 45, 79, 125, 44, 44, 47, 1, 5, 8, 9, 11, 38, 26, 17, 25, 10, 13, 13, 3, 126, 184, 56, 42, 43, 42, 41, 40, 118, 77, 41, 69, 30, 29, 47, 18, 18, 44, 25, 38, 91, 254, 132, 29, 43, 13, 13, 13, 23, 23, 22, 65, 43, 1, 4, 12, 7, 10, 23, 1, 238, 195, 2, 3, 4, 18, 16, 11, 30, 20, 24, 34, 11, 11, 11, 20, 13, 11, 11, 29, 16, 192, 9, 18, 6, 7, 9, 10, 10, 11, 31, 19, 17, 40, 22, 91, 245, 93, 150, 52, 52, 56, 1, 14, 13, 9, 25, 15, 15, 23, 9, 14, 14, 45, 41, 41, 118, 72, 9, 24, 35, 12, 16, 14, 9, 10, 13, 46, 32, 119, 59, 57, 43, 119, 73, 72, 118, 41, 41, 45, 19, 16, 16, 44, 24, 23, 38, 14, 22, 22, 205, 16, 15, 14, 39, 24, 34, 62, 24, 23, 28, 35, 50, 27, 36, 54, 48, 5, 10, 3, 5, 6, 1, 202, 61, 21, 39, 17, 26, 41, 12, 8, 9, 16, 15, 16, 46, 29, 0, 0, 2, 0, 71, 255, 235, 4, 166, 5, 197, 0, 29, 0, 49, 0, 0, 97, 53, 33, 17, 33, 53, 33, 17, 33, 53, 33, 38, 38, 35, 34, 6, 7, 6, 6, 21, 17, 20, 22, 23, 22, 22, 51, 50, 54, 55, 37, 34, 38, 39, 38, 38, 53, 17, 52, 54, 55, 54, 54, 51, 50, 22, 23, 17, 6, 6, 4, 166, 254, 154, 1, 40, 254, 216, 1, 91, 254, 102, 63, 136, 71, 93, 157, 57, 57, 64, 64, 58, 57, 158, 93, 71, 134, 63, 254, 244, 44, 70, 24, 25, 26, 26, 24, 24, 69, 44, 23, 47, 23, 22, 46, 232, 1, 160, 217, 1, 118, 217, 8, 13, 62, 64, 64, 195, 132, 254, 48, 132, 195, 64, 64, 62, 13, 8, 211, 26, 32, 32, 111, 84, 1, 210, 88, 115, 34, 34, 27, 2, 2, 251, 238, 1, 2, 0, 0, 3, 0, 38, 255, 236, 4, 161, 4, 79, 0, 67, 0, 99, 0, 117, 0, 0, 83, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 39, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 38, 38, 53, 53, 33, 53, 52, 38, 39, 38, 38, 35, 38, 6, 7, 6, 6, 7, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 1, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 22, 22, 21, 21, 20, 6, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 1, 50, 22, 23, 22, 22, 21, 21, 35, 53, 52, 54, 55, 54, 54, 55, 54, 54, 38, 49, 47, 46, 136, 88, 47, 81, 34, 21, 37, 17, 17, 39, 21, 40, 94, 54, 43, 75, 31, 26, 43, 17, 60, 17, 31, 17, 17, 40, 26, 39, 60, 20, 13, 19, 6, 6, 5, 1, 164, 45, 43, 44, 126, 80, 41, 73, 31, 20, 35, 16, 15, 32, 18, 35, 82, 47, 87, 136, 46, 47, 48, 1, 5, 10, 12, 12, 39, 30, 31, 41, 12, 5, 7, 3, 4, 3, 3, 4, 3, 11, 7, 12, 38, 26, 27, 37, 12, 16, 13, 2, 36, 20, 30, 10, 11, 10, 163, 2, 3, 4, 11, 9, 8, 27, 2, 128, 200, 109, 171, 59, 59, 62, 19, 18, 11, 29, 18, 16, 27, 11, 20, 21, 15, 13, 11, 29, 16, 180, 9, 15, 5, 6, 6, 23, 22, 14, 38, 23, 21, 48, 28, 34, 218, 97, 159, 56, 56, 62, 1, 17, 17, 10, 27, 17, 14, 24, 10, 19, 20, 64, 59, 60, 171, 254, 204, 201, 56, 88, 30, 30, 32, 32, 30, 12, 30, 17, 24, 58, 33, 201, 34, 58, 24, 24, 38, 14, 22, 23, 23, 22, 29, 97, 1, 247, 17, 16, 19, 57, 36, 85, 26, 31, 53, 22, 29, 32, 12, 12, 13, 0, 0, 2, 0, 38, 255, 235, 4, 77, 5, 235, 0, 43, 0, 71, 0, 0, 65, 55, 39, 7, 38, 38, 39, 7, 22, 22, 23, 7, 23, 55, 22, 22, 23, 38, 38, 35, 34, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 54, 54, 53, 53, 52, 2, 1, 34, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 20, 20, 21, 21, 20, 6, 7, 6, 6, 7, 6, 6, 3, 131, 177, 78, 199, 65, 148, 84, 88, 35, 70, 33, 211, 78, 242, 44, 68, 21, 54, 135, 75, 114, 182, 63, 64, 69, 75, 69, 68, 192, 116, 73, 135, 58, 72, 114, 36, 26, 29, 107, 254, 80, 59, 91, 31, 32, 33, 31, 30, 29, 84, 54, 107, 139, 32, 13, 13, 15, 52, 33, 28, 68, 4, 240, 98, 113, 110, 54, 75, 21, 217, 13, 34, 22, 117, 112, 133, 49, 126, 79, 42, 46, 72, 65, 66, 184, 112, 102, 178, 66, 67, 76, 35, 34, 40, 128, 83, 60, 142, 78, 68, 192, 1, 54, 252, 77, 43, 37, 36, 96, 54, 56, 104, 40, 39, 48, 56, 38, 20, 15, 7, 65, 47, 85, 36, 46, 71, 25, 20, 22, 0, 2, 0, 136, 0, 0, 4, 150, 5, 176, 0, 18, 0, 33, 0, 0, 65, 33, 17, 33, 17, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 35, 21, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 35, 1, 159, 254, 233, 1, 23, 227, 129, 198, 68, 67, 70, 70, 67, 68, 198, 129, 227, 227, 68, 96, 31, 30, 28, 28, 30, 31, 96, 68, 227, 5, 176, 250, 80, 1, 33, 67, 60, 59, 165, 98, 97, 165, 59, 59, 67, 224, 38, 31, 31, 82, 43, 43, 81, 31, 31, 37, 0, 0, 2, 0, 145, 254, 96, 4, 89, 6, 7, 0, 29, 0, 55, 0, 0, 65, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 17, 33, 17, 33, 17, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 37, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 17, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 4, 89, 55, 53, 54, 158, 103, 48, 82, 35, 29, 51, 22, 254, 234, 1, 22, 17, 37, 20, 40, 97, 58, 102, 157, 54, 53, 55, 254, 234, 23, 26, 26, 83, 59, 37, 61, 24, 24, 36, 13, 15, 43, 29, 21, 54, 31, 58, 84, 26, 26, 25, 2, 19, 21, 123, 203, 73, 72, 79, 18, 18, 14, 40, 25, 2, 44, 248, 89, 1, 255, 19, 32, 13, 25, 26, 84, 74, 73, 202, 139, 21, 67, 119, 45, 45, 52, 16, 14, 15, 42, 26, 1, 194, 30, 45, 14, 10, 11, 50, 43, 44, 119, 0, 0, 1, 0, 159, 0, 0, 4, 183, 4, 58, 0, 12, 0, 0, 65, 19, 33, 1, 1, 33, 1, 7, 17, 33, 17, 33, 17, 2, 92, 247, 1, 100, 254, 107, 1, 130, 254, 163, 254, 217, 107, 254, 234, 1, 22, 1, 171, 254, 85, 2, 122, 1, 192, 254, 165, 127, 1, 218, 251, 198, 1, 30, 0, 1, 0, 162, 255, 235, 4, 157, 6, 26, 0, 81, 0, 0, 97, 17, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 7, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 17, 1, 183, 27, 23, 23, 63, 35, 25, 50, 20, 20, 25, 28, 19, 25, 42, 40, 30, 29, 69, 30, 29, 40, 19, 18, 17, 46, 29, 35, 66, 28, 29, 46, 16, 54, 21, 64, 38, 38, 82, 39, 95, 149, 51, 51, 53, 40, 29, 30, 69, 29, 30, 40, 33, 21, 19, 37, 65, 54, 55, 144, 79, 102, 171, 61, 62, 69, 4, 48, 70, 101, 33, 32, 31, 22, 20, 21, 59, 37, 51, 73, 31, 40, 95, 69, 65, 98, 39, 39, 65, 31, 32, 67, 41, 34, 55, 18, 17, 18, 11, 8, 8, 20, 9, 221, 14, 21, 7, 8, 8, 49, 47, 47, 139, 89, 63, 101, 42, 41, 71, 33, 32, 64, 35, 57, 73, 33, 33, 90, 78, 92, 137, 46, 46, 45, 63, 61, 62, 182, 118, 251, 204, 0, 2, 0, 156, 255, 236, 4, 115, 4, 79, 0, 42, 0, 56, 0, 0, 65, 34, 6, 7, 6, 6, 7, 23, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 20, 20, 21, 33, 21, 20, 22, 23, 22, 22, 51, 22, 54, 55, 54, 54, 53, 53, 52, 38, 39, 38, 38, 3, 34, 38, 39, 38, 38, 53, 53, 33, 6, 6, 7, 6, 6, 2, 96, 75, 130, 54, 54, 84, 30, 79, 31, 66, 38, 38, 91, 57, 63, 97, 35, 32, 40, 9, 253, 67, 62, 61, 60, 179, 117, 114, 186, 66, 66, 72, 74, 68, 69, 197, 96, 54, 78, 25, 25, 24, 1, 168, 9, 35, 27, 27, 74, 4, 79, 22, 17, 18, 45, 24, 180, 17, 30, 11, 11, 13, 39, 34, 33, 89, 51, 3, 2, 1, 158, 111, 180, 63, 64, 70, 1, 83, 74, 73, 202, 119, 40, 113, 194, 72, 71, 82, 252, 125, 31, 27, 27, 75, 45, 25, 50, 84, 30, 31, 35, 0, 0, 1, 0, 127, 255, 43, 4, 116, 6, 152, 0, 79, 0, 0, 65, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 33, 20, 22, 23, 22, 22, 23, 21, 51, 53, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 38, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 33, 52, 38, 39, 38, 38, 39, 53, 35, 21, 6, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 23, 22, 22, 23, 22, 22, 3, 95, 25, 24, 27, 84, 57, 45, 86, 33, 34, 42, 254, 233, 74, 62, 61, 160, 85, 159, 94, 152, 54, 54, 58, 63, 58, 59, 164, 101, 67, 90, 27, 28, 23, 23, 24, 24, 75, 51, 44, 73, 26, 29, 32, 1, 22, 55, 50, 51, 144, 90, 160, 92, 150, 53, 53, 58, 64, 59, 58, 166, 101, 63, 89, 28, 27, 25, 1, 126, 37, 64, 23, 26, 29, 24, 29, 28, 97, 72, 120, 171, 56, 56, 59, 8, 196, 196, 9, 61, 51, 51, 141, 88, 96, 141, 54, 53, 81, 38, 24, 47, 26, 26, 61, 39, 39, 66, 25, 24, 27, 28, 27, 31, 96, 64, 100, 161, 60, 59, 74, 12, 217, 215, 9, 64, 52, 52, 141, 85, 97, 141, 53, 53, 80, 36, 22, 45, 27, 27, 65, 0, 0, 1, 0, 142, 255, 11, 4, 85, 5, 38, 0, 57, 0, 0, 101, 34, 38, 39, 38, 38, 53, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 7, 33, 54, 38, 39, 38, 38, 39, 53, 35, 21, 6, 6, 7, 6, 6, 21, 21, 20, 22, 23, 22, 22, 23, 21, 51, 53, 54, 54, 55, 54, 54, 39, 33, 22, 6, 7, 6, 6, 2, 133, 67, 87, 25, 26, 20, 21, 26, 25, 86, 66, 45, 76, 27, 27, 28, 2, 1, 6, 2, 53, 48, 49, 136, 81, 200, 99, 150, 50, 50, 51, 51, 50, 50, 150, 99, 200, 77, 135, 50, 49, 56, 2, 254, 250, 2, 31, 28, 28, 74, 202, 54, 45, 44, 117, 63, 30, 62, 116, 45, 45, 54, 31, 26, 26, 72, 40, 84, 140, 54, 53, 69, 13, 223, 225, 18, 97, 71, 71, 180, 101, 30, 101, 180, 71, 71, 96, 18, 233, 232, 13, 67, 51, 50, 128, 74, 38, 62, 22, 22, 24, 0, 1, 0, 115, 0, 0, 4, 149, 5, 196, 0, 51, 0, 0, 65, 33, 53, 33, 39, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 33, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 23, 35, 21, 51, 23, 20, 6, 7, 6, 6, 7, 35, 21, 33, 53, 33, 54, 54, 55, 54, 54, 53, 2, 48, 1, 46, 254, 202, 9, 26, 23, 22, 62, 36, 36, 65, 25, 25, 29, 1, 13, 59, 56, 57, 166, 107, 100, 167, 60, 60, 66, 7, 155, 162, 5, 5, 8, 9, 29, 24, 89, 4, 31, 253, 98, 14, 21, 7, 11, 10, 2, 73, 221, 234, 51, 79, 26, 26, 27, 19, 22, 22, 71, 51, 93, 152, 54, 54, 59, 59, 55, 56, 163, 103, 234, 221, 167, 30, 63, 27, 27, 39, 6, 226, 226, 17, 36, 20, 29, 66, 37, 0, 0, 1, 0, 21, 0, 0, 4, 200, 5, 176, 0, 25, 0, 0, 97, 33, 17, 33, 53, 33, 53, 33, 53, 35, 1, 33, 1, 7, 35, 39, 1, 33, 1, 33, 21, 33, 21, 33, 21, 33, 1, 223, 1, 25, 1, 75, 254, 181, 1, 75, 250, 1, 127, 254, 203, 254, 246, 25, 2, 25, 254, 246, 254, 202, 1, 128, 254, 243, 1, 87, 254, 169, 1, 87, 1, 31, 165, 124, 166, 2, 202, 253, 206, 57, 56, 2, 51, 253, 54, 166, 124, 165, 0, 1, 0, 148, 254, 75, 4, 106, 6, 45, 0, 47, 0, 0, 65, 53, 35, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 55, 38, 38, 35, 34, 6, 7, 6, 6, 21, 21, 35, 21, 51, 17, 20, 6, 7, 6, 6, 35, 34, 38, 39, 7, 22, 22, 51, 50, 54, 55, 54, 54, 53, 17, 3, 177, 206, 25, 26, 28, 89, 60, 44, 67, 28, 24, 51, 95, 51, 111, 175, 61, 61, 65, 161, 161, 24, 26, 18, 52, 34, 24, 99, 20, 15, 48, 94, 48, 94, 149, 52, 51, 55, 3, 109, 205, 79, 45, 70, 24, 27, 27, 16, 14, 216, 17, 24, 55, 53, 53, 157, 102, 79, 205, 252, 134, 56, 84, 24, 17, 18, 17, 16, 221, 21, 16, 55, 54, 54, 158, 103, 3, 122, 0, 255, 255, 0, 0, 0, 0, 4, 109, 5, 176, 6, 38, 0, 7, 0, 0, 0, 7, 2, 106, 254, 211, 254, 86, 0, 1, 0, 111, 0, 0, 4, 143, 5, 196, 0, 59, 0, 0, 65, 53, 33, 39, 33, 53, 33, 39, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 33, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 23, 35, 21, 51, 23, 35, 21, 51, 23, 20, 6, 7, 6, 6, 7, 35, 21, 33, 53, 33, 54, 54, 55, 54, 54, 39, 39, 3, 76, 254, 221, 5, 1, 40, 254, 210, 5, 25, 23, 22, 62, 36, 36, 66, 25, 25, 29, 1, 13, 59, 56, 57, 166, 107, 100, 167, 60, 60, 66, 4, 150, 155, 3, 158, 163, 2, 5, 8, 9, 29, 24, 89, 4, 31, 253, 98, 15, 23, 7, 11, 9, 2, 2, 1, 213, 153, 114, 153, 151, 51, 79, 26, 26, 27, 19, 22, 22, 71, 51, 93, 152, 54, 54, 59, 59, 55, 56, 163, 103, 151, 153, 114, 153, 51, 30, 63, 27, 27, 39, 6, 226, 226, 18, 39, 21, 28, 64, 35, 38, 0, 2, 0, 123, 255, 235, 4, 180, 5, 176, 0, 45, 0, 60, 0, 0, 65, 53, 35, 17, 35, 17, 35, 38, 38, 39, 38, 38, 35, 35, 17, 51, 17, 51, 50, 54, 55, 54, 54, 55, 51, 17, 20, 22, 23, 22, 22, 51, 50, 54, 55, 39, 6, 6, 35, 34, 38, 39, 38, 38, 53, 17, 5, 17, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 4, 160, 174, 200, 84, 8, 53, 44, 44, 122, 77, 255, 200, 55, 76, 121, 45, 44, 53, 9, 84, 37, 33, 33, 89, 51, 43, 86, 22, 27, 11, 42, 20, 19, 34, 13, 13, 15, 253, 81, 55, 41, 58, 18, 18, 17, 17, 18, 18, 58, 41, 3, 164, 150, 1, 4, 254, 252, 82, 138, 50, 49, 55, 250, 80, 2, 50, 54, 49, 49, 136, 82, 253, 136, 87, 122, 38, 39, 35, 23, 20, 139, 4, 10, 14, 17, 17, 59, 45, 2, 121, 210, 2, 62, 49, 40, 41, 104, 55, 54, 103, 39, 40, 49, 0, 0, 2, 0, 83, 255, 229, 4, 125, 4, 41, 0, 35, 0, 59, 0, 0, 101, 23, 55, 39, 54, 54, 53, 52, 38, 39, 55, 39, 7, 38, 38, 35, 34, 6, 7, 39, 7, 23, 6, 6, 21, 20, 22, 23, 7, 23, 55, 22, 22, 51, 50, 54, 1, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 3, 136, 103, 142, 112, 34, 37, 41, 38, 120, 142, 116, 60, 140, 77, 77, 139, 60, 114, 141, 116, 38, 43, 38, 35, 108, 141, 100, 62, 147, 81, 81, 148, 253, 229, 48, 42, 42, 113, 65, 64, 113, 42, 42, 48, 48, 42, 42, 113, 64, 65, 113, 42, 42, 48, 78, 105, 145, 113, 60, 139, 78, 81, 146, 62, 123, 145, 119, 42, 46, 45, 42, 117, 144, 119, 62, 148, 83, 78, 142, 60, 110, 144, 102, 46, 50, 50, 1, 222, 72, 123, 45, 45, 52, 52, 45, 45, 123, 72, 72, 124, 45, 46, 53, 53, 46, 45, 124, 0, 2, 1, 196, 255, 241, 3, 8, 5, 176, 0, 3, 0, 15, 0, 0, 65, 19, 33, 19, 3, 20, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 2, 229, 16, 254, 227, 16, 36, 86, 76, 74, 88, 88, 74, 76, 86, 1, 253, 3, 179, 252, 77, 254, 139, 64, 87, 87, 64, 66, 88, 88, 0, 2, 1, 226, 254, 132, 3, 39, 4, 79, 0, 3, 0, 15, 0, 0, 65, 3, 33, 3, 19, 52, 38, 35, 34, 6, 21, 20, 22, 51, 50, 54, 2, 2, 17, 1, 30, 16, 40, 90, 73, 76, 86, 86, 76, 73, 90, 2, 53, 252, 79, 3, 177, 1, 126, 67, 89, 90, 66, 64, 87, 86, 0, 2, 0, 160, 255, 244, 4, 78, 5, 197, 0, 49, 0, 61, 0, 0, 65, 51, 52, 54, 55, 54, 54, 55, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 33, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 7, 6, 6, 7, 6, 6, 3, 20, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 1, 243, 250, 4, 8, 7, 34, 30, 49, 97, 38, 38, 48, 64, 60, 61, 176, 111, 99, 170, 63, 63, 74, 1, 1, 23, 1, 33, 27, 26, 68, 36, 46, 71, 25, 24, 26, 34, 27, 28, 68, 34, 47, 52, 13, 13, 7, 41, 86, 76, 74, 89, 89, 74, 76, 86, 1, 186, 40, 57, 24, 24, 46, 30, 43, 91, 51, 50, 117, 71, 96, 146, 50, 49, 50, 49, 50, 50, 151, 102, 46, 66, 21, 21, 19, 20, 20, 22, 67, 46, 38, 76, 36, 37, 69, 31, 37, 65, 38, 39, 96, 254, 140, 64, 87, 87, 64, 66, 89, 89, 0, 2, 0, 202, 254, 119, 4, 73, 4, 52, 0, 49, 0, 61, 0, 0, 65, 35, 6, 6, 7, 6, 6, 7, 6, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 33, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 55, 54, 54, 55, 54, 54, 3, 20, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 3, 23, 249, 1, 1, 7, 7, 31, 31, 47, 94, 37, 38, 46, 61, 57, 57, 165, 105, 94, 164, 60, 60, 70, 2, 254, 233, 1, 29, 24, 24, 63, 35, 38, 62, 20, 20, 21, 33, 26, 26, 65, 32, 48, 51, 12, 12, 5, 253, 56, 76, 75, 60, 60, 75, 76, 56, 2, 127, 40, 55, 23, 23, 44, 29, 44, 92, 51, 52, 118, 70, 95, 146, 49, 50, 51, 48, 49, 49, 149, 101, 45, 64, 20, 20, 19, 21, 21, 21, 61, 40, 42, 79, 38, 37, 71, 33, 36, 64, 38, 37, 97, 1, 115, 52, 73, 72, 53, 57, 77, 78, 0, 0, 1, 1, 104, 254, 106, 2, 199, 0, 243, 0, 9, 0, 0, 101, 55, 33, 21, 20, 6, 7, 23, 54, 54, 2, 198, 1, 254, 251, 52, 38, 147, 90, 113, 22, 221, 234, 110, 157, 72, 76, 80, 234, 0, 0, 1, 1, 166, 255, 236, 3, 40, 1, 89, 0, 11, 0, 0, 101, 20, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 1, 166, 104, 89, 88, 105, 103, 90, 91, 102, 161, 77, 104, 103, 78, 78, 106, 107, 255, 255, 1, 180, 255, 236, 3, 54, 4, 147, 4, 38, 0, 96, 14, 0, 0, 7, 0, 96, 0, 14, 3, 58, 255, 255, 1, 180, 254, 106, 3, 93, 4, 147, 4, 39, 0, 96, 0, 53, 3, 58, 0, 6, 0, 95, 76, 0, 255, 255, 0, 101, 255, 235, 5, 1, 1, 88, 4, 39, 0, 96, 254, 191, 255, 255, 0, 38, 0, 96, 76, 255, 0, 7, 0, 96, 1, 217, 255, 255, 0, 1, 1, 238, 2, 40, 3, 42, 3, 83, 0, 11, 0, 0, 65, 20, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 1, 238, 85, 73, 71, 87, 87, 71, 73, 85, 2, 189, 63, 86, 84, 65, 65, 85, 87, 0, 0, 1, 1, 148, 1, 248, 3, 104, 3, 245, 0, 25, 0, 0, 65, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 1, 148, 33, 30, 30, 87, 54, 54, 87, 31, 30, 32, 32, 30, 31, 87, 54, 55, 86, 30, 30, 33, 3, 18, 58, 49, 82, 30, 30, 33, 33, 30, 30, 82, 49, 58, 49, 84, 30, 30, 34, 34, 30, 30, 84, 0, 0, 1, 0, 148, 255, 39, 4, 36, 0, 0, 0, 3, 0, 0, 69, 53, 33, 21, 4, 36, 252, 112, 217, 217, 217, 0, 0, 1, 1, 26, 2, 18, 4, 91, 2, 243, 0, 3, 0, 0, 65, 53, 33, 21, 4, 91, 252, 191, 2, 18, 225, 225, 0, 1, 0, 61, 2, 89, 4, 155, 3, 60, 0, 3, 0, 0, 65, 53, 33, 21, 4, 155, 251, 162, 2, 89, 227, 227, 0, 1, 0, 57, 2, 89, 4, 151, 3, 60, 0, 3, 0, 0, 65, 53, 33, 21, 4, 151, 251, 162, 2, 89, 227, 227, 0, 1, 1, 201, 3, 225, 2, 159, 6, 0, 0, 5, 0, 0, 65, 53, 35, 21, 17, 51, 2, 159, 214, 186, 5, 114, 142, 141, 254, 110, 0, 2, 1, 25, 3, 240, 3, 130, 6, 0, 0, 5, 0, 11, 0, 0, 65, 53, 35, 21, 17, 51, 1, 53, 35, 21, 17, 51, 1, 231, 206, 177, 1, 184, 205, 177, 5, 148, 108, 113, 254, 97, 1, 164, 108, 110, 254, 94, 0, 1, 1, 235, 3, 244, 3, 34, 6, 43, 0, 12, 0, 0, 65, 21, 51, 53, 52, 54, 55, 39, 6, 6, 7, 6, 6, 1, 235, 223, 50, 38, 128, 39, 66, 25, 25, 28, 4, 164, 176, 177, 97, 149, 65, 79, 35, 92, 52, 52, 109, 0, 0, 1, 1, 210, 3, 228, 3, 8, 6, 24, 0, 12, 0, 0, 65, 53, 35, 21, 20, 6, 7, 23, 54, 54, 55, 54, 54, 3, 8, 223, 49, 38, 127, 39, 66, 25, 25, 28, 5, 107, 173, 173, 97, 150, 65, 79, 35, 93, 52, 51, 109, 0, 0, 1, 1, 208, 254, 187, 3, 12, 1, 13, 0, 12, 0, 0, 101, 53, 35, 21, 20, 6, 7, 23, 54, 54, 55, 54, 54, 3, 12, 233, 45, 38, 133, 38, 67, 25, 24, 29, 65, 204, 205, 97, 147, 66, 79, 35, 92, 52, 52, 108, 255, 255, 1, 70, 3, 244, 3, 210, 6, 43, 4, 39, 0, 108, 255, 91, 0, 0, 0, 7, 0, 108, 0, 176, 0, 0, 255, 255, 1, 44, 3, 228, 3, 201, 6, 24, 4, 39, 0, 109, 255, 90, 0, 0, 0, 7, 0, 109, 0, 193, 0, 0, 0, 2, 1, 65, 254, 185, 3, 197, 0, 235, 0, 12, 0, 25, 0, 0, 101, 53, 35, 21, 20, 6, 7, 23, 54, 54, 55, 54, 54, 37, 55, 35, 21, 20, 6, 7, 23, 54, 54, 55, 54, 54, 2, 124, 232, 45, 38, 139, 39, 64, 24, 23, 26, 1, 72, 1, 233, 51, 38, 139, 39, 66, 25, 24, 28, 63, 172, 173, 97, 148, 65, 79, 34, 93, 52, 52, 108, 51, 172, 173, 97, 148, 65, 79, 34, 93, 52, 52, 108, 0, 255, 255, 1, 201, 3, 225, 2, 159, 6, 0, 6, 6, 0, 106, 0, 0, 255, 255, 1, 25, 3, 240, 3, 130, 6, 0, 6, 6, 0, 107, 0, 0, 0, 1, 1, 89, 254, 55, 3, 129, 6, 83, 0, 39, 0, 0, 65, 21, 20, 22, 23, 22, 22, 23, 22, 22, 23, 55, 38, 38, 39, 38, 38, 39, 38, 38, 53, 53, 52, 54, 55, 54, 54, 55, 54, 54, 55, 39, 6, 6, 7, 6, 6, 7, 6, 6, 1, 89, 43, 37, 37, 99, 55, 55, 117, 55, 54, 39, 80, 36, 34, 59, 22, 16, 27, 28, 23, 26, 69, 40, 31, 64, 32, 54, 55, 117, 55, 55, 99, 37, 37, 43, 2, 80, 22, 142, 248, 105, 106, 174, 66, 67, 94, 25, 150, 30, 90, 61, 56, 150, 88, 63, 212, 125, 26, 127, 216, 89, 92, 156, 57, 44, 68, 24, 152, 25, 93, 67, 67, 174, 105, 106, 249, 0, 0, 1, 1, 60, 254, 55, 3, 113, 6, 83, 0, 39, 0, 0, 65, 53, 52, 38, 39, 38, 38, 39, 38, 38, 39, 7, 22, 22, 23, 22, 22, 23, 22, 22, 21, 21, 20, 6, 7, 6, 6, 7, 6, 6, 7, 23, 54, 54, 55, 54, 54, 55, 54, 54, 3, 113, 44, 38, 38, 101, 57, 57, 120, 57, 53, 30, 61, 29, 43, 77, 27, 21, 25, 25, 21, 25, 65, 39, 33, 70, 35, 53, 57, 120, 57, 57, 101, 38, 38, 44, 2, 58, 22, 137, 245, 106, 106, 175, 69, 68, 96, 25, 149, 23, 65, 41, 62, 170, 107, 86, 204, 118, 26, 121, 208, 86, 94, 152, 60, 51, 77, 26, 150, 25, 96, 69, 68, 175, 106, 106, 245, 0, 0, 1, 1, 144, 254, 177, 3, 79, 6, 154, 0, 7, 0, 0, 65, 53, 33, 17, 33, 53, 35, 17, 3, 79, 254, 65, 1, 191, 170, 5, 195, 215, 248, 23, 215, 6, 59, 0, 0, 1, 1, 144, 254, 177, 3, 80, 6, 154, 0, 7, 0, 0, 65, 21, 51, 17, 35, 21, 33, 17, 1, 144, 171, 171, 1, 192, 6, 154, 215, 249, 197, 215, 7, 233, 0, 1, 1, 53, 254, 152, 3, 206, 6, 61, 0, 42, 0, 0, 65, 55, 6, 38, 39, 38, 38, 53, 53, 52, 38, 39, 54, 54, 53, 53, 52, 54, 55, 54, 54, 23, 39, 34, 6, 7, 6, 6, 21, 21, 20, 6, 35, 21, 50, 22, 21, 21, 20, 22, 23, 22, 22, 3, 172, 34, 50, 63, 18, 18, 13, 116, 124, 123, 117, 5, 15, 15, 66, 61, 34, 97, 140, 43, 52, 48, 124, 127, 127, 124, 43, 48, 45, 145, 254, 152, 158, 2, 55, 45, 45, 111, 54, 163, 119, 182, 48, 48, 184, 119, 163, 54, 111, 45, 45, 55, 2, 157, 74, 58, 67, 181, 85, 163, 135, 116, 200, 116, 133, 163, 79, 165, 69, 66, 87, 0, 0, 1, 1, 76, 254, 152, 3, 229, 6, 61, 0, 54, 0, 0, 69, 23, 50, 54, 55, 54, 54, 53, 53, 52, 54, 55, 54, 54, 51, 53, 34, 38, 39, 38, 38, 53, 53, 52, 38, 39, 38, 38, 35, 7, 54, 22, 23, 22, 22, 21, 21, 20, 22, 23, 22, 22, 23, 6, 6, 7, 6, 6, 21, 21, 20, 6, 7, 6, 6, 1, 76, 34, 99, 145, 45, 45, 46, 15, 15, 28, 110, 83, 74, 105, 29, 22, 21, 37, 44, 46, 146, 107, 34, 61, 66, 15, 15, 5, 38, 40, 27, 74, 48, 59, 85, 28, 28, 27, 14, 18, 18, 63, 202, 158, 85, 69, 66, 168, 78, 163, 47, 75, 28, 52, 47, 200, 38, 41, 30, 86, 56, 163, 76, 163, 66, 73, 87, 157, 2, 55, 45, 45, 111, 54, 163, 69, 123, 50, 34, 56, 20, 25, 71, 45, 45, 104, 58, 163, 54, 111, 45, 45, 55, 0, 0, 1, 1, 136, 0, 128, 3, 87, 3, 159, 0, 6, 0, 0, 65, 19, 35, 1, 21, 1, 51, 2, 101, 242, 181, 254, 230, 1, 26, 181, 2, 15, 1, 144, 254, 122, 19, 254, 122, 0, 0, 1, 1, 129, 0, 127, 3, 81, 3, 158, 0, 6, 0, 0, 65, 35, 19, 3, 51, 1, 53, 2, 54, 181, 241, 241, 181, 1, 27, 3, 158, 254, 112, 254, 113, 1, 134, 19, 0, 1, 0, 99, 0, 146, 4, 73, 4, 182, 0, 11, 0, 0, 65, 17, 33, 17, 33, 21, 33, 17, 33, 17, 33, 53, 2, 219, 254, 247, 254, 145, 1, 111, 1, 9, 1, 110, 3, 44, 1, 138, 254, 118, 254, 254, 100, 1, 156, 254, 0, 1, 0, 149, 2, 89, 3, 241, 3, 60, 0, 3, 0, 0, 65, 53, 33, 21, 3, 241, 252, 164, 2, 89, 227, 227, 0, 2, 0, 147, 0, 0, 4, 39, 5, 4, 0, 11, 0, 15, 0, 0, 65, 17, 35, 17, 33, 21, 33, 17, 51, 17, 33, 53, 3, 53, 33, 21, 2, 220, 245, 254, 172, 1, 84, 245, 1, 75, 32, 252, 164, 3, 165, 1, 95, 254, 161, 232, 254, 142, 1, 114, 232, 252, 91, 227, 227, 0, 0, 1, 0, 157, 0, 207, 4, 77, 4, 141, 0, 11, 0, 0, 83, 23, 1, 1, 55, 1, 1, 39, 1, 1, 7, 1, 157, 165, 1, 51, 1, 51, 165, 254, 203, 1, 53, 165, 254, 205, 254, 205, 165, 1, 53, 1, 115, 164, 1, 57, 254, 199, 164, 1, 59, 1, 59, 164, 254, 199, 1, 57, 164, 254, 197, 0, 0, 3, 0, 108, 0, 137, 4, 108, 4, 206, 0, 3, 0, 15, 0, 27, 0, 0, 65, 53, 33, 21, 1, 20, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 3, 20, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 4, 108, 252, 0, 1, 101, 82, 70, 71, 82, 82, 71, 70, 82, 2, 82, 70, 71, 82, 82, 71, 70, 82, 2, 61, 227, 227, 2, 4, 61, 80, 80, 61, 61, 80, 80, 252, 152, 61, 80, 80, 61, 61, 81, 82, 0, 0, 2, 0, 158, 1, 30, 4, 80, 3, 177, 0, 3, 0, 7, 0, 0, 65, 53, 33, 21, 1, 53, 33, 21, 4, 80, 252, 78, 3, 178, 252, 78, 2, 205, 228, 228, 254, 81, 227, 227, 0, 1, 0, 152, 0, 129, 4, 74, 4, 81, 0, 19, 0, 0, 65, 53, 33, 55, 33, 53, 35, 55, 39, 7, 33, 21, 33, 7, 33, 21, 51, 7, 23, 55, 4, 74, 254, 71, 109, 1, 76, 210, 52, 122, 86, 253, 188, 1, 202, 109, 254, 163, 228, 50, 123, 83, 1, 30, 227, 204, 228, 97, 63, 160, 228, 204, 227, 94, 63, 157, 0, 2, 0, 142, 0, 241, 4, 80, 4, 8, 0, 25, 0, 51, 0, 0, 83, 23, 54, 54, 51, 54, 22, 23, 22, 22, 51, 50, 54, 55, 39, 6, 6, 35, 34, 38, 39, 38, 38, 7, 34, 6, 3, 23, 54, 54, 51, 54, 22, 23, 22, 22, 51, 50, 54, 55, 39, 6, 6, 35, 34, 38, 39, 38, 38, 7, 34, 6, 152, 10, 48, 127, 66, 79, 103, 65, 60, 97, 74, 67, 109, 47, 10, 47, 116, 67, 75, 96, 59, 65, 102, 79, 67, 122, 57, 10, 48, 121, 67, 79, 102, 65, 59, 96, 75, 66, 117, 47, 10, 49, 121, 66, 74, 97, 60, 65, 102, 79, 66, 114, 3, 114, 211, 70, 76, 2, 42, 33, 30, 39, 76, 70, 211, 69, 77, 39, 30, 33, 42, 2, 79, 254, 15, 211, 67, 79, 2, 42, 33, 30, 39, 78, 68, 211, 68, 78, 39, 30, 33, 42, 2, 78, 0, 1, 0, 156, 0, 144, 4, 17, 4, 79, 0, 8, 0, 0, 101, 17, 37, 39, 55, 37, 17, 1, 21, 4, 17, 253, 220, 68, 68, 2, 36, 252, 139, 144, 1, 15, 183, 24, 25, 186, 1, 14, 254, 145, 225, 0, 0, 1, 0, 161, 0, 143, 4, 37, 4, 79, 0, 8, 0, 0, 119, 1, 53, 1, 17, 5, 23, 7, 5, 161, 3, 132, 252, 124, 2, 62, 60, 61, 253, 195, 143, 1, 111, 227, 1, 110, 254, 243, 189, 20, 20, 192, 0, 2, 0, 170, 0, 35, 4, 31, 4, 231, 0, 8, 0, 12, 0, 0, 65, 53, 37, 39, 55, 37, 53, 1, 21, 1, 53, 33, 21, 4, 31, 253, 220, 68, 68, 2, 36, 252, 139, 3, 103, 252, 164, 1, 136, 244, 164, 22, 22, 168, 243, 254, 181, 202, 253, 81, 227, 227, 0, 2, 0, 171, 0, 34, 4, 47, 4, 239, 0, 8, 0, 12, 0, 0, 83, 1, 53, 1, 21, 5, 23, 7, 5, 1, 53, 33, 21, 171, 3, 132, 252, 124, 2, 62, 60, 61, 253, 195, 3, 96, 252, 164, 1, 143, 1, 74, 204, 1, 74, 242, 170, 18, 18, 173, 253, 160, 227, 227, 0, 1, 0, 185, 1, 118, 3, 252, 3, 37, 0, 5, 0, 0, 65, 17, 33, 21, 33, 17, 3, 252, 252, 189, 2, 123, 1, 118, 1, 175, 171, 254, 252, 0, 0, 1, 0, 220, 255, 131, 4, 0, 5, 176, 0, 3, 0, 0, 69, 1, 33, 1, 1, 223, 2, 33, 254, 253, 253, 223, 125, 6, 45, 249, 211, 0, 0, 1, 0, 240, 255, 131, 4, 21, 5, 176, 0, 3, 0, 0, 83, 1, 33, 1, 240, 2, 33, 1, 4, 253, 223, 5, 176, 249, 211, 6, 45, 0, 0, 1, 1, 24, 0, 227, 3, 154, 4, 208, 0, 3, 0, 0, 101, 1, 39, 1, 1, 155, 1, 255, 131, 254, 1, 227, 3, 170, 67, 252, 86, 0, 0, 5, 0, 35, 255, 236, 4, 169, 5, 197, 0, 25, 0, 51, 0, 77, 0, 103, 0, 107, 0, 0, 83, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 23, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 1, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 23, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 5, 1, 39, 1, 35, 36, 36, 35, 107, 72, 72, 106, 35, 35, 35, 35, 35, 35, 107, 73, 71, 107, 35, 36, 35, 188, 10, 12, 11, 36, 27, 28, 37, 12, 11, 10, 10, 11, 11, 37, 27, 27, 38, 11, 12, 10, 1, 144, 36, 36, 35, 108, 72, 72, 106, 36, 35, 34, 35, 35, 35, 107, 73, 71, 107, 35, 36, 36, 188, 10, 11, 11, 38, 27, 27, 37, 12, 11, 10, 6, 10, 10, 38, 31, 25, 37, 12, 13, 12, 254, 116, 2, 49, 136, 253, 207, 4, 172, 77, 57, 101, 38, 39, 44, 44, 39, 38, 101, 57, 77, 58, 102, 38, 38, 45, 45, 38, 38, 102, 135, 77, 23, 43, 17, 16, 19, 19, 16, 17, 43, 23, 77, 23, 43, 16, 17, 19, 19, 17, 16, 43, 253, 9, 78, 57, 102, 38, 38, 44, 44, 38, 38, 102, 57, 78, 57, 102, 39, 38, 44, 44, 38, 39, 102, 135, 78, 23, 42, 17, 16, 19, 19, 16, 17, 42, 23, 78, 24, 42, 16, 17, 19, 19, 17, 16, 43, 38, 4, 4, 65, 251, 252, 0, 6, 0, 75, 255, 236, 4, 181, 5, 196, 0, 49, 0, 75, 0, 101, 0, 127, 0, 153, 0, 157, 0, 0, 65, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 3, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 1, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 1, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 1, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 37, 1, 39, 1, 1, 63, 35, 34, 33, 99, 65, 33, 59, 24, 18, 31, 13, 12, 29, 17, 25, 62, 35, 64, 98, 33, 33, 34, 34, 33, 34, 99, 64, 37, 64, 27, 14, 26, 11, 13, 32, 18, 24, 58, 34, 64, 98, 33, 34, 35, 244, 33, 33, 32, 94, 61, 63, 98, 34, 33, 35, 34, 34, 34, 99, 64, 61, 93, 32, 32, 33, 1, 175, 7, 9, 9, 30, 22, 21, 30, 9, 9, 8, 4, 8, 8, 30, 25, 20, 30, 9, 10, 10, 254, 255, 7, 9, 9, 30, 22, 21, 30, 10, 9, 8, 8, 9, 9, 29, 21, 22, 30, 9, 10, 8, 2, 103, 7, 9, 9, 30, 22, 21, 30, 9, 9, 8, 4, 7, 8, 30, 26, 20, 30, 9, 10, 10, 253, 105, 3, 53, 97, 252, 203, 1, 41, 38, 57, 102, 38, 38, 44, 12, 12, 8, 22, 13, 12, 21, 8, 13, 13, 44, 38, 38, 102, 57, 38, 57, 102, 39, 38, 44, 15, 15, 7, 20, 11, 13, 23, 8, 12, 12, 44, 38, 39, 102, 3, 73, 36, 57, 101, 38, 39, 44, 44, 39, 38, 101, 57, 36, 58, 102, 38, 38, 45, 45, 38, 38, 102, 252, 30, 38, 23, 42, 17, 16, 19, 19, 16, 17, 42, 23, 38, 24, 42, 16, 17, 19, 19, 17, 16, 43, 3, 155, 36, 23, 43, 17, 16, 20, 20, 16, 17, 43, 23, 36, 23, 43, 16, 17, 19, 19, 17, 16, 43, 252, 147, 38, 23, 42, 17, 16, 19, 19, 16, 17, 42, 23, 38, 24, 42, 16, 17, 19, 19, 17, 16, 43, 239, 2, 86, 94, 253, 170, 0, 0, 1, 2, 21, 254, 102, 2, 195, 5, 176, 0, 3, 0, 0, 65, 17, 35, 17, 2, 195, 174, 254, 102, 7, 74, 248, 182, 0, 0, 2, 1, 232, 254, 242, 2, 229, 5, 176, 0, 3, 0, 7, 0, 0, 65, 51, 17, 35, 55, 17, 35, 17, 1, 232, 253, 253, 253, 253, 254, 242, 3, 27, 173, 2, 246, 253, 10, 0, 0, 1, 0, 106, 0, 0, 4, 72, 5, 176, 0, 11, 0, 0, 65, 53, 33, 17, 33, 17, 33, 21, 33, 17, 33, 17, 4, 72, 254, 154, 254, 233, 254, 159, 1, 97, 1, 23, 3, 82, 232, 1, 118, 254, 138, 232, 252, 174, 3, 82, 0, 1, 0, 128, 254, 96, 4, 93, 5, 176, 0, 19, 0, 0, 97, 53, 33, 17, 33, 53, 33, 17, 33, 17, 33, 21, 33, 17, 33, 21, 33, 17, 33, 17, 4, 93, 254, 154, 1, 102, 254, 154, 254, 233, 254, 160, 1, 96, 254, 160, 1, 96, 1, 23, 223, 2, 121, 226, 1, 118, 254, 138, 226, 253, 135, 223, 254, 96, 1, 160, 0, 3, 0, 89, 255, 236, 4, 130, 4, 78, 0, 51, 0, 75, 0, 99, 0, 0, 65, 35, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 51, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 37, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 3, 94, 117, 14, 13, 17, 53, 37, 36, 54, 18, 19, 18, 18, 19, 18, 54, 36, 34, 52, 17, 16, 16, 117, 30, 28, 33, 98, 63, 60, 97, 34, 34, 36, 36, 34, 34, 97, 60, 63, 98, 33, 27, 30, 253, 86, 69, 60, 60, 161, 92, 91, 160, 60, 60, 69, 69, 60, 60, 160, 91, 92, 161, 60, 60, 69, 91, 84, 73, 72, 194, 110, 110, 194, 72, 72, 84, 84, 72, 72, 194, 110, 110, 194, 72, 73, 84, 1, 186, 33, 49, 16, 19, 17, 28, 25, 24, 69, 42, 91, 41, 69, 25, 25, 28, 16, 17, 16, 51, 35, 55, 85, 29, 34, 34, 43, 38, 39, 107, 64, 90, 65, 106, 38, 38, 42, 33, 34, 29, 84, 155, 99, 170, 63, 63, 71, 71, 63, 63, 170, 99, 99, 172, 63, 64, 72, 72, 64, 63, 172, 99, 119, 205, 76, 76, 86, 86, 76, 76, 205, 119, 118, 205, 76, 75, 86, 86, 75, 76, 205, 0, 4, 0, 88, 255, 235, 4, 128, 4, 78, 0, 23, 0, 47, 0, 61, 0, 73, 0, 0, 83, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 23, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 37, 51, 23, 51, 3, 54, 54, 53, 52, 38, 35, 35, 17, 51, 17, 53, 51, 50, 22, 21, 20, 6, 7, 6, 6, 35, 88, 84, 72, 72, 194, 110, 110, 194, 72, 72, 84, 84, 72, 72, 194, 110, 110, 194, 72, 72, 84, 91, 69, 60, 60, 161, 91, 91, 161, 60, 60, 69, 69, 60, 60, 161, 91, 91, 161, 60, 60, 69, 1, 77, 119, 117, 116, 146, 66, 70, 133, 111, 211, 113, 98, 73, 58, 19, 16, 16, 42, 22, 2, 29, 119, 205, 76, 76, 86, 86, 76, 76, 205, 119, 119, 205, 76, 75, 86, 86, 75, 76, 205, 119, 99, 171, 63, 63, 71, 71, 63, 63, 171, 99, 99, 171, 63, 63, 72, 72, 63, 63, 171, 42, 252, 1, 31, 23, 78, 56, 97, 96, 253, 131, 1, 97, 184, 42, 55, 21, 32, 11, 11, 12, 0, 2, 0, 115, 3, 146, 4, 112, 5, 176, 0, 12, 0, 20, 0, 0, 65, 17, 51, 17, 35, 3, 3, 35, 17, 51, 17, 19, 51, 1, 53, 33, 21, 51, 17, 51, 17, 3, 244, 124, 145, 128, 120, 153, 124, 114, 70, 254, 133, 254, 108, 136, 136, 4, 247, 254, 155, 2, 30, 254, 140, 1, 116, 253, 226, 1, 102, 254, 154, 1, 181, 105, 105, 254, 78, 1, 178, 0, 0, 2, 1, 101, 3, 163, 3, 125, 5, 196, 0, 23, 0, 47, 0, 0, 65, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 23, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 1, 101, 43, 37, 37, 98, 56, 54, 97, 36, 36, 42, 42, 36, 36, 97, 54, 56, 98, 37, 37, 43, 145, 20, 18, 17, 45, 26, 25, 45, 16, 16, 19, 19, 16, 16, 45, 25, 26, 45, 17, 18, 20, 4, 178, 57, 98, 37, 37, 42, 42, 37, 37, 98, 57, 56, 99, 38, 37, 44, 44, 37, 38, 99, 56, 27, 47, 18, 17, 19, 19, 17, 18, 47, 27, 27, 46, 16, 17, 18, 19, 17, 16, 45, 0, 1, 0, 154, 1, 173, 4, 153, 5, 176, 0, 14, 0, 0, 65, 1, 23, 19, 19, 55, 1, 37, 39, 5, 19, 35, 19, 37, 7, 2, 34, 254, 234, 179, 211, 211, 178, 254, 244, 1, 142, 66, 254, 140, 39, 219, 36, 254, 137, 66, 3, 122, 254, 185, 123, 1, 105, 254, 140, 129, 1, 67, 91, 209, 163, 1, 182, 254, 81, 166, 205, 0, 0, 2, 0, 41, 0, 0, 4, 133, 5, 176, 0, 27, 0, 31, 0, 0, 65, 3, 51, 19, 51, 53, 35, 19, 51, 53, 35, 19, 35, 3, 35, 19, 35, 3, 33, 21, 51, 3, 33, 21, 51, 3, 51, 19, 55, 19, 51, 3, 2, 137, 73, 179, 73, 253, 223, 52, 247, 217, 75, 180, 74, 201, 74, 178, 75, 254, 247, 235, 52, 254, 254, 228, 73, 179, 73, 30, 51, 201, 51, 1, 154, 254, 102, 1, 154, 169, 1, 34, 171, 1, 160, 254, 96, 1, 160, 254, 96, 171, 254, 222, 169, 254, 102, 1, 154, 169, 1, 34, 254, 222, 0, 3, 0, 75, 255, 235, 4, 212, 5, 197, 0, 54, 0, 74, 0, 99, 0, 0, 83, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 23, 33, 39, 54, 54, 53, 35, 20, 6, 7, 3, 55, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 23, 7, 6, 6, 7, 6, 6, 5, 34, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 55, 55, 1, 6, 6, 7, 6, 6, 3, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 20, 20, 7, 6, 6, 7, 7, 38, 38, 39, 38, 38, 75, 60, 57, 56, 162, 101, 63, 108, 49, 31, 61, 30, 65, 1, 62, 188, 78, 73, 238, 35, 32, 247, 80, 43, 75, 28, 28, 32, 48, 43, 44, 123, 75, 89, 144, 51, 51, 55, 24, 23, 15, 39, 23, 18, 53, 86, 31, 34, 37, 1, 192, 38, 63, 22, 22, 24, 7, 11, 10, 42, 28, 6, 1, 7, 19, 39, 20, 29, 60, 92, 17, 17, 17, 52, 35, 23, 37, 13, 13, 14, 6, 7, 32, 31, 93, 13, 23, 8, 12, 13, 1, 115, 86, 144, 52, 52, 58, 20, 19, 12, 33, 20, 83, 240, 94, 237, 137, 78, 136, 57, 1, 61, 65, 31, 70, 40, 39, 90, 51, 68, 122, 47, 46, 54, 53, 49, 49, 140, 86, 52, 98, 49, 32, 67, 35, 13, 38, 78, 43, 48, 110, 235, 28, 25, 24, 68, 40, 21, 47, 26, 26, 63, 23, 5, 254, 170, 11, 17, 7, 9, 10, 3, 130, 31, 55, 21, 21, 24, 22, 18, 18, 46, 24, 9, 31, 19, 20, 43, 20, 69, 21, 41, 20, 27, 52, 0, 0, 2, 0, 37, 255, 248, 4, 150, 5, 162, 0, 94, 0, 117, 0, 0, 65, 54, 38, 39, 38, 38, 35, 34, 6, 7, 6, 2, 7, 6, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 39, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 7, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 55, 19, 38, 38, 35, 34, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 5, 54, 54, 55, 54, 54, 51, 50, 22, 23, 3, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 4, 146, 4, 66, 65, 66, 190, 118, 136, 226, 82, 83, 95, 5, 5, 63, 69, 69, 212, 146, 34, 74, 37, 37, 67, 26, 32, 23, 57, 31, 32, 66, 31, 98, 151, 49, 50, 47, 5, 4, 66, 58, 57, 163, 102, 90, 138, 46, 46, 43, 4, 17, 16, 16, 43, 26, 10, 20, 7, 8, 7, 2, 43, 31, 100, 77, 76, 122, 45, 45, 57, 11, 8, 21, 28, 28, 90, 60, 30, 54, 24, 16, 30, 13, 11, 28, 17, 21, 52, 29, 77, 110, 36, 35, 36, 253, 103, 7, 31, 24, 24, 67, 44, 12, 14, 5, 38, 1, 9, 18, 9, 15, 31, 15, 25, 38, 12, 11, 9, 3, 55, 139, 228, 82, 81, 89, 119, 103, 104, 254, 234, 158, 159, 255, 89, 89, 96, 9, 10, 9, 28, 19, 135, 12, 20, 7, 8, 8, 66, 67, 66, 200, 134, 133, 223, 81, 81, 91, 56, 58, 58, 179, 122, 79, 133, 48, 48, 54, 4, 8, 8, 32, 29, 2, 15, 31, 45, 63, 58, 59, 164, 102, 87, 142, 50, 51, 54, 19, 17, 12, 31, 18, 21, 34, 12, 16, 16, 91, 74, 73, 185, 37, 71, 109, 37, 38, 38, 2, 1, 254, 65, 13, 14, 20, 7, 11, 9, 30, 31, 28, 86, 0, 0, 2, 0, 86, 254, 55, 4, 145, 5, 196, 0, 106, 0, 139, 0, 0, 65, 52, 38, 39, 38, 38, 39, 38, 38, 39, 38, 38, 39, 38, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 33, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 23, 6, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 23, 22, 22, 23, 22, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 5, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 37, 22, 22, 23, 22, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 7, 38, 38, 39, 38, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 55, 22, 22, 4, 145, 63, 61, 37, 96, 58, 36, 82, 44, 53, 82, 32, 22, 35, 14, 33, 25, 27, 29, 29, 90, 62, 59, 89, 30, 30, 30, 1, 23, 72, 66, 67, 192, 120, 117, 191, 67, 68, 73, 30, 29, 15, 38, 23, 27, 46, 19, 34, 37, 65, 62, 39, 102, 61, 58, 143, 53, 43, 64, 23, 34, 28, 19, 18, 28, 101, 70, 48, 95, 37, 38, 46, 254, 234, 93, 77, 76, 195, 101, 117, 189, 67, 67, 73, 26, 26, 16, 41, 25, 24, 41, 17, 39, 41, 253, 193, 43, 72, 29, 29, 47, 18, 35, 29, 17, 15, 11, 29, 17, 34, 72, 39, 90, 115, 33, 33, 25, 12, 12, 11, 29, 20, 33, 72, 1, 219, 91, 132, 49, 30, 49, 21, 14, 24, 12, 14, 25, 12, 9, 17, 10, 22, 54, 38, 31, 56, 21, 21, 25, 32, 27, 28, 74, 43, 103, 160, 55, 54, 56, 54, 49, 50, 141, 86, 66, 103, 42, 21, 39, 17, 15, 37, 21, 40, 100, 60, 91, 132, 49, 32, 51, 22, 21, 38, 19, 15, 28, 14, 23, 52, 33, 26, 45, 18, 27, 31, 17, 22, 22, 75, 59, 1, 120, 161, 48, 49, 41, 49, 48, 47, 139, 90, 62, 99, 40, 24, 43, 19, 13, 31, 18, 40, 105, 253, 13, 24, 11, 12, 24, 13, 25, 56, 36, 29, 50, 21, 14, 24, 9, 12, 21, 11, 27, 43, 24, 24, 57, 40, 27, 48, 20, 16, 27, 9, 12, 22, 0, 0, 1, 0, 216, 0, 0, 3, 239, 5, 176, 0, 16, 0, 0, 97, 51, 17, 33, 34, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 51, 51, 3, 23, 216, 254, 213, 119, 184, 62, 63, 64, 64, 63, 62, 184, 119, 83, 5, 176, 71, 62, 63, 172, 100, 101, 172, 62, 63, 70, 0, 0, 1, 0, 213, 2, 175, 4, 27, 5, 176, 0, 8, 0, 0, 83, 51, 19, 55, 23, 19, 51, 1, 35, 213, 224, 173, 21, 21, 176, 223, 254, 194, 201, 2, 175, 1, 198, 84, 84, 254, 58, 3, 1, 0, 0, 1, 0, 26, 1, 122, 4, 120, 3, 56, 0, 49, 0, 0, 65, 39, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 23, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 4, 120, 188, 22, 18, 18, 48, 27, 22, 44, 22, 23, 47, 25, 36, 71, 37, 38, 81, 45, 68, 113, 40, 41, 44, 180, 23, 20, 19, 50, 27, 25, 47, 24, 22, 45, 23, 38, 72, 37, 37, 77, 44, 68, 114, 41, 40, 45, 2, 240, 19, 31, 59, 23, 23, 28, 10, 10, 11, 32, 21, 32, 49, 16, 18, 18, 54, 48, 49, 135, 81, 22, 31, 58, 23, 22, 27, 12, 12, 10, 31, 19, 35, 50, 16, 17, 16, 56, 50, 49, 138, 0, 255, 255, 0, 28, 0, 0, 4, 204, 7, 31, 6, 38, 0, 2, 0, 0, 0, 7, 1, 91, 0, 134, 1, 89, 255, 255, 0, 28, 0, 0, 4, 204, 7, 65, 6, 38, 0, 2, 0, 0, 0, 7, 1, 95, 0, 0, 1, 159, 255, 255, 0, 28, 0, 0, 4, 204, 7, 73, 6, 38, 0, 2, 0, 0, 0, 7, 1, 92, 0, 134, 1, 93, 255, 255, 0, 28, 0, 0, 4, 204, 7, 47, 6, 38, 0, 2, 0, 0, 0, 7, 1, 97, 255, 243, 1, 93, 255, 255, 0, 28, 0, 0, 4, 204, 7, 34, 6, 38, 0, 2, 0, 0, 0, 7, 1, 90, 255, 108, 1, 92, 255, 255, 0, 28, 0, 0, 4, 204, 6, 242, 6, 38, 0, 2, 0, 0, 0, 7, 1, 94, 255, 254, 1, 66, 0, 2, 0, 28, 254, 88, 4, 204, 5, 176, 0, 35, 0, 38, 0, 0, 65, 35, 1, 33, 19, 33, 19, 6, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 39, 6, 6, 35, 34, 38, 53, 52, 54, 55, 54, 54, 55, 51, 1, 19, 19, 2, 248, 255, 254, 35, 1, 40, 86, 1, 181, 81, 31, 49, 16, 20, 20, 35, 30, 30, 81, 46, 69, 89, 28, 47, 14, 40, 29, 37, 30, 15, 18, 18, 60, 45, 69, 253, 19, 153, 149, 5, 176, 250, 80, 1, 48, 254, 222, 22, 51, 27, 31, 67, 33, 51, 77, 26, 26, 27, 29, 15, 154, 6, 14, 39, 29, 27, 49, 22, 22, 40, 18, 2, 31, 2, 24, 253, 232, 0, 255, 255, 0, 28, 0, 0, 4, 204, 7, 136, 6, 38, 0, 2, 0, 0, 0, 7, 1, 98, 0, 18, 1, 245, 255, 255, 0, 28, 0, 0, 4, 204, 8, 86, 6, 38, 0, 2, 0, 0, 0, 7, 2, 107, 255, 242, 1, 160, 255, 255, 0, 28, 0, 0, 4, 204, 7, 100, 6, 38, 0, 2, 0, 0, 0, 7, 1, 93, 0, 141, 1, 94, 255, 255, 0, 48, 0, 0, 4, 153, 7, 31, 6, 38, 0, 72, 0, 0, 0, 7, 1, 91, 0, 230, 1, 89, 255, 255, 0, 79, 255, 235, 4, 119, 7, 30, 6, 38, 0, 4, 0, 0, 0, 7, 1, 91, 0, 184, 1, 88, 255, 255, 0, 79, 255, 235, 4, 119, 7, 73, 6, 38, 0, 4, 0, 0, 0, 7, 1, 100, 0, 50, 1, 92, 255, 255, 0, 79, 254, 59, 4, 119, 5, 197, 6, 38, 0, 4, 0, 0, 0, 6, 1, 102, 51, 5, 255, 255, 0, 79, 255, 235, 4, 119, 7, 72, 6, 38, 0, 4, 0, 0, 0, 7, 1, 92, 0, 184, 1, 92, 255, 255, 0, 125, 0, 0, 4, 116, 7, 65, 6, 38, 0, 5, 0, 0, 0, 7, 1, 100, 255, 162, 1, 84, 0, 2, 255, 214, 0, 0, 4, 131, 5, 176, 0, 19, 0, 39, 0, 0, 115, 33, 50, 54, 55, 54, 54, 53, 53, 52, 38, 39, 38, 38, 35, 33, 17, 35, 21, 51, 33, 53, 35, 17, 51, 50, 22, 23, 22, 22, 21, 21, 20, 6, 7, 6, 6, 35, 35, 17, 140, 1, 135, 139, 230, 82, 82, 91, 91, 83, 84, 235, 145, 254, 135, 182, 182, 1, 254, 227, 94, 86, 131, 45, 44, 45, 46, 43, 44, 125, 79, 108, 98, 89, 88, 245, 147, 120, 147, 246, 89, 88, 99, 253, 135, 180, 180, 1, 149, 64, 58, 58, 161, 98, 122, 104, 163, 57, 57, 60, 1, 161, 255, 255, 0, 147, 0, 0, 4, 104, 7, 22, 6, 38, 0, 6, 0, 0, 0, 7, 1, 91, 0, 143, 1, 80, 255, 255, 0, 147, 0, 0, 4, 104, 7, 56, 6, 38, 0, 6, 0, 0, 0, 7, 1, 95, 0, 9, 1, 150, 255, 255, 0, 147, 0, 0, 4, 104, 7, 65, 6, 38, 0, 6, 0, 0, 0, 7, 1, 100, 0, 9, 1, 84, 255, 255, 0, 147, 0, 0, 4, 104, 7, 64, 6, 38, 0, 6, 0, 0, 0, 7, 1, 92, 0, 143, 1, 84, 255, 255, 0, 147, 0, 0, 4, 104, 7, 38, 6, 38, 0, 6, 0, 0, 0, 7, 1, 97, 255, 252, 1, 84, 255, 255, 0, 147, 0, 0, 4, 104, 7, 67, 6, 38, 0, 6, 0, 0, 0, 7, 1, 96, 0, 18, 1, 100, 255, 255, 0, 147, 0, 0, 4, 104, 7, 25, 6, 38, 0, 6, 0, 0, 0, 7, 1, 90, 255, 117, 1, 83, 255, 255, 0, 147, 0, 0, 4, 104, 6, 233, 6, 38, 0, 6, 0, 0, 0, 7, 1, 94, 0, 6, 1, 57, 0, 1, 0, 148, 254, 75, 4, 71, 5, 176, 0, 29, 0, 0, 65, 33, 17, 1, 39, 33, 17, 33, 17, 1, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 7, 22, 22, 51, 50, 54, 55, 54, 54, 53, 4, 71, 254, 231, 254, 128, 1, 254, 231, 1, 25, 1, 129, 21, 21, 15, 40, 25, 26, 51, 22, 14, 38, 64, 38, 88, 139, 49, 48, 52, 5, 176, 252, 142, 3, 111, 3, 250, 80, 3, 113, 252, 143, 39, 48, 69, 21, 16, 16, 5, 6, 222, 10, 7, 52, 51, 50, 149, 96, 0, 0, 1, 0, 147, 254, 88, 4, 104, 5, 176, 0, 40, 0, 0, 65, 53, 33, 17, 33, 53, 33, 17, 33, 6, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 39, 6, 6, 35, 34, 38, 53, 52, 54, 55, 54, 54, 55, 51, 53, 33, 17, 4, 3, 253, 170, 2, 184, 252, 46, 2, 94, 24, 39, 15, 19, 20, 35, 30, 30, 81, 46, 69, 89, 28, 47, 14, 40, 29, 37, 30, 15, 18, 18, 60, 45, 125, 253, 69, 2, 126, 222, 1, 111, 229, 250, 80, 20, 44, 23, 31, 66, 33, 51, 77, 26, 26, 27, 29, 15, 154, 6, 14, 39, 29, 27, 49, 22, 22, 40, 18, 227, 1, 155, 0, 0, 2, 255, 214, 0, 0, 4, 131, 5, 176, 0, 19, 0, 39, 0, 0, 115, 33, 50, 54, 55, 54, 54, 53, 53, 52, 38, 39, 38, 38, 35, 33, 17, 35, 21, 51, 33, 53, 35, 17, 51, 50, 22, 23, 22, 22, 21, 21, 20, 6, 7, 6, 6, 35, 35, 17, 140, 1, 135, 139, 230, 82, 82, 91, 91, 83, 84, 235, 145, 254, 135, 182, 182, 1, 254, 227, 94, 86, 131, 45, 44, 45, 46, 43, 44, 125, 79, 108, 98, 89, 88, 245, 147, 120, 147, 246, 89, 88, 99, 253, 135, 180, 180, 1, 149, 64, 58, 58, 161, 98, 122, 104, 163, 57, 57, 60, 1, 161, 255, 255, 0, 87, 255, 236, 4, 108, 7, 64, 6, 38, 0, 8, 0, 0, 0, 7, 1, 95, 0, 21, 1, 158, 255, 255, 0, 87, 255, 236, 4, 108, 7, 72, 6, 38, 0, 8, 0, 0, 0, 7, 1, 92, 0, 155, 1, 92, 255, 255, 0, 87, 254, 22, 4, 108, 5, 196, 6, 38, 0, 8, 0, 0, 0, 7, 1, 104, 0, 224, 254, 190, 0, 2, 0, 23, 0, 0, 4, 216, 5, 176, 0, 19, 0, 23, 0, 0, 65, 53, 33, 21, 33, 53, 33, 21, 35, 21, 51, 17, 33, 17, 33, 17, 33, 17, 51, 53, 1, 53, 33, 21, 4, 17, 254, 234, 254, 100, 254, 233, 49, 49, 1, 23, 1, 156, 1, 22, 199, 252, 135, 1, 156, 4, 194, 238, 238, 238, 238, 171, 251, 233, 2, 119, 253, 137, 4, 23, 171, 254, 153, 188, 188, 0, 255, 255, 0, 123, 0, 0, 4, 68, 7, 64, 6, 38, 0, 9, 0, 0, 0, 7, 1, 92, 0, 107, 1, 84, 255, 255, 0, 193, 0, 0, 4, 11, 7, 31, 6, 38, 0, 10, 0, 0, 0, 7, 1, 91, 0, 101, 1, 89, 255, 255, 0, 193, 0, 0, 4, 11, 7, 65, 6, 38, 0, 10, 0, 0, 0, 7, 1, 95, 255, 224, 1, 159, 255, 255, 0, 193, 0, 0, 4, 11, 7, 73, 6, 38, 0, 10, 0, 0, 0, 7, 1, 92, 0, 101, 1, 93, 255, 255, 0, 193, 0, 0, 4, 11, 7, 47, 6, 38, 0, 10, 0, 0, 0, 7, 1, 97, 255, 210, 1, 93, 255, 255, 0, 193, 0, 0, 4, 11, 7, 76, 6, 38, 0, 10, 0, 0, 0, 7, 1, 96, 255, 233, 1, 109, 255, 255, 0, 193, 0, 0, 4, 11, 7, 34, 6, 38, 0, 10, 0, 0, 0, 7, 1, 90, 255, 75, 1, 92, 255, 255, 0, 193, 0, 0, 4, 11, 6, 242, 6, 38, 0, 10, 0, 0, 0, 7, 1, 94, 255, 221, 1, 66, 0, 1, 0, 193, 254, 88, 4, 11, 5, 176, 0, 40, 0, 0, 83, 21, 33, 17, 33, 21, 33, 6, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 39, 6, 6, 35, 34, 38, 53, 52, 54, 55, 54, 54, 55, 33, 53, 33, 17, 33, 53, 193, 1, 21, 254, 235, 1, 78, 24, 38, 15, 20, 20, 35, 30, 30, 81, 46, 69, 89, 28, 47, 14, 40, 29, 37, 30, 15, 18, 18, 60, 45, 1, 2, 254, 228, 1, 28, 5, 176, 227, 252, 21, 226, 20, 43, 22, 32, 67, 33, 51, 77, 26, 26, 27, 29, 15, 154, 6, 14, 39, 29, 27, 49, 22, 22, 40, 18, 226, 3, 235, 227, 255, 255, 0, 193, 0, 0, 4, 11, 7, 100, 6, 38, 0, 10, 0, 0, 0, 7, 1, 93, 0, 108, 1, 94, 255, 255, 0, 111, 255, 236, 5, 64, 7, 61, 6, 38, 0, 11, 0, 0, 0, 7, 1, 92, 1, 214, 1, 81, 255, 255, 0, 129, 254, 12, 4, 235, 5, 176, 6, 38, 0, 12, 0, 0, 0, 7, 1, 104, 0, 172, 254, 180, 255, 255, 0, 150, 0, 0, 4, 90, 7, 2, 6, 38, 0, 13, 0, 0, 0, 7, 1, 91, 255, 53, 1, 60, 255, 255, 0, 150, 0, 0, 4, 90, 5, 177, 6, 38, 0, 13, 0, 0, 0, 7, 0, 109, 0, 254, 255, 153, 255, 255, 0, 150, 254, 35, 4, 90, 5, 176, 6, 38, 0, 13, 0, 0, 0, 7, 1, 104, 0, 177, 254, 203, 255, 255, 0, 150, 0, 0, 4, 90, 5, 176, 6, 38, 0, 13, 0, 0, 0, 7, 1, 96, 0, 142, 253, 221, 0, 1, 0, 51, 0, 0, 4, 119, 5, 176, 0, 13, 0, 0, 65, 17, 33, 17, 7, 21, 55, 17, 33, 53, 33, 17, 55, 53, 1, 205, 254, 230, 128, 128, 3, 196, 253, 86, 232, 3, 118, 2, 58, 253, 116, 37, 195, 37, 253, 159, 227, 1, 208, 68, 195, 0, 255, 255, 0, 123, 0, 0, 4, 67, 7, 31, 6, 38, 0, 15, 0, 0, 0, 7, 1, 91, 0, 114, 1, 89, 255, 255, 0, 123, 0, 0, 4, 67, 7, 74, 6, 38, 0, 15, 0, 0, 0, 7, 1, 100, 255, 237, 1, 93, 255, 255, 0, 123, 254, 28, 4, 67, 5, 176, 6, 38, 0, 15, 0, 0, 0, 7, 1, 104, 0, 177, 254, 196, 255, 255, 0, 123, 0, 0, 4, 67, 7, 100, 6, 38, 0, 15, 0, 0, 0, 7, 1, 93, 0, 121, 1, 94, 255, 255, 0, 80, 255, 236, 4, 123, 7, 52, 6, 38, 0, 16, 0, 0, 0, 7, 1, 91, 0, 116, 1, 110, 255, 255, 0, 80, 255, 236, 4, 123, 7, 86, 6, 38, 0, 16, 0, 0, 0, 7, 1, 95, 255, 239, 1, 180, 255, 255, 0, 80, 255, 236, 4, 123, 7, 94, 6, 38, 0, 16, 0, 0, 0, 7, 1, 92, 0, 116, 1, 114, 255, 255, 0, 80, 255, 236, 4, 123, 7, 68, 6, 38, 0, 16, 0, 0, 0, 7, 1, 97, 255, 225, 1, 114, 255, 255, 0, 80, 255, 236, 4, 123, 7, 55, 6, 38, 0, 16, 0, 0, 0, 7, 1, 90, 255, 90, 1, 113, 0, 2, 0, 93, 255, 236, 4, 224, 5, 223, 0, 41, 0, 67, 0, 0, 65, 53, 52, 38, 39, 54, 54, 55, 54, 54, 53, 35, 20, 6, 7, 6, 6, 7, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 1, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 4, 136, 32, 33, 39, 58, 19, 18, 19, 194, 6, 6, 6, 19, 13, 31, 73, 41, 52, 121, 68, 126, 195, 67, 67, 70, 70, 67, 67, 196, 126, 126, 201, 70, 70, 74, 254, 227, 30, 30, 31, 97, 68, 69, 92, 28, 28, 24, 24, 28, 28, 92, 68, 69, 97, 31, 31, 29, 2, 109, 212, 94, 165, 72, 22, 67, 44, 42, 103, 61, 35, 60, 25, 24, 38, 13, 35, 58, 21, 26, 28, 96, 85, 86, 236, 140, 212, 140, 235, 85, 86, 95, 95, 85, 85, 236, 1, 98, 214, 89, 150, 54, 55, 62, 62, 55, 55, 150, 88, 214, 89, 150, 54, 54, 61, 61, 54, 54, 150, 0, 255, 255, 0, 80, 255, 236, 4, 153, 7, 96, 6, 38, 0, 16, 0, 0, 0, 7, 1, 99, 0, 124, 1, 114, 255, 255, 0, 80, 255, 236, 4, 123, 7, 7, 6, 38, 0, 16, 0, 0, 0, 7, 1, 94, 255, 236, 1, 87, 0, 3, 0, 48, 255, 161, 4, 128, 5, 238, 0, 37, 0, 57, 0, 71, 0, 0, 65, 53, 52, 38, 39, 55, 35, 7, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 21, 20, 22, 23, 22, 22, 23, 3, 51, 55, 22, 22, 51, 50, 54, 55, 54, 54, 37, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 1, 38, 38, 39, 38, 38, 37, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 1, 22, 22, 4, 128, 71, 68, 130, 184, 68, 26, 58, 30, 38, 84, 45, 126, 195, 67, 67, 70, 15, 15, 15, 45, 30, 157, 183, 91, 59, 144, 86, 126, 201, 70, 70, 74, 252, 242, 24, 28, 28, 92, 68, 25, 46, 20, 19, 33, 15, 254, 122, 2, 2, 1, 2, 1, 1, 241, 30, 30, 31, 97, 68, 55, 80, 29, 1, 148, 8, 8, 2, 109, 212, 138, 231, 86, 230, 120, 17, 27, 10, 12, 12, 96, 85, 86, 236, 140, 212, 66, 123, 55, 54, 98, 42, 254, 234, 160, 42, 43, 95, 85, 85, 236, 140, 214, 89, 150, 54, 54, 61, 9, 8, 8, 23, 15, 253, 77, 13, 26, 13, 19, 40, 235, 214, 89, 150, 54, 55, 62, 40, 36, 2, 203, 38, 84, 255, 255, 0, 48, 255, 161, 4, 128, 7, 93, 6, 38, 0, 219, 0, 0, 0, 7, 1, 91, 0, 116, 1, 151, 255, 255, 0, 80, 255, 236, 4, 123, 7, 121, 6, 38, 0, 16, 0, 0, 0, 7, 1, 93, 0, 123, 1, 115, 255, 255, 0, 131, 0, 0, 4, 176, 7, 19, 6, 38, 0, 19, 0, 0, 0, 7, 1, 91, 0, 95, 1, 77, 255, 255, 0, 131, 0, 0, 4, 176, 7, 62, 6, 38, 0, 19, 0, 0, 0, 7, 1, 100, 255, 218, 1, 81, 255, 255, 0, 131, 254, 35, 4, 176, 5, 176, 6, 38, 0, 19, 0, 0, 0, 7, 1, 104, 0, 166, 254, 203, 255, 255, 0, 89, 255, 237, 4, 140, 7, 52, 6, 38, 0, 20, 0, 0, 0, 7, 1, 91, 0, 147, 1, 110, 255, 255, 0, 89, 255, 237, 4, 140, 7, 95, 6, 38, 0, 20, 0, 0, 0, 7, 1, 100, 0, 13, 1, 114, 255, 255, 0, 89, 254, 45, 4, 140, 5, 196, 6, 38, 0, 20, 0, 0, 0, 6, 1, 102, 86, 247, 255, 255, 0, 89, 255, 237, 4, 140, 7, 94, 6, 38, 0, 20, 0, 0, 0, 7, 1, 92, 0, 147, 1, 114, 0, 1, 0, 27, 0, 0, 4, 177, 5, 176, 0, 15, 0, 0, 65, 53, 35, 17, 33, 53, 33, 21, 33, 17, 35, 21, 51, 17, 33, 17, 3, 214, 230, 1, 193, 251, 106, 1, 187, 229, 229, 1, 26, 2, 245, 180, 1, 34, 229, 229, 254, 222, 180, 253, 11, 2, 245, 0, 255, 255, 0, 27, 0, 0, 4, 177, 7, 71, 6, 38, 0, 21, 0, 0, 0, 7, 1, 100, 255, 238, 1, 90, 255, 255, 0, 126, 255, 236, 4, 78, 7, 28, 6, 38, 0, 22, 0, 0, 0, 7, 1, 91, 0, 124, 1, 86, 255, 255, 0, 126, 255, 236, 4, 78, 7, 62, 6, 38, 0, 22, 0, 0, 0, 7, 1, 95, 255, 247, 1, 156, 255, 255, 0, 126, 255, 236, 4, 78, 7, 70, 6, 38, 0, 22, 0, 0, 0, 7, 1, 92, 0, 124, 1, 90, 255, 255, 0, 126, 255, 236, 4, 78, 7, 44, 6, 38, 0, 22, 0, 0, 0, 7, 1, 97, 255, 233, 1, 90, 255, 255, 0, 126, 255, 236, 4, 78, 7, 31, 6, 38, 0, 22, 0, 0, 0, 7, 1, 90, 255, 98, 1, 89, 0, 1, 0, 133, 255, 236, 5, 183, 5, 229, 0, 43, 0, 0, 65, 33, 3, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 3, 33, 3, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 17, 54, 54, 55, 54, 54, 53, 35, 20, 6, 7, 6, 6, 7, 4, 84, 254, 233, 1, 1, 29, 29, 27, 77, 50, 52, 78, 25, 21, 23, 1, 254, 231, 1, 69, 63, 63, 177, 110, 117, 183, 64, 63, 66, 96, 135, 43, 42, 39, 200, 9, 16, 16, 62, 52, 5, 176, 252, 59, 73, 110, 35, 33, 34, 42, 41, 35, 102, 65, 3, 197, 252, 59, 122, 191, 65, 65, 68, 68, 66, 65, 190, 122, 2, 100, 3, 54, 51, 50, 149, 99, 60, 91, 30, 31, 34, 3, 0, 255, 255, 0, 126, 255, 236, 4, 161, 7, 72, 6, 38, 0, 22, 0, 0, 0, 7, 1, 99, 0, 132, 1, 90, 255, 255, 0, 126, 255, 236, 4, 78, 6, 239, 6, 38, 0, 22, 0, 0, 0, 7, 1, 94, 255, 244, 1, 63, 0, 1, 0, 126, 254, 153, 4, 78, 5, 176, 0, 60, 0, 0, 65, 33, 3, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 3, 33, 3, 20, 22, 23, 22, 22, 23, 50, 50, 51, 6, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 39, 6, 6, 35, 34, 38, 53, 52, 54, 55, 54, 54, 55, 54, 54, 55, 54, 54, 53, 4, 77, 254, 233, 1, 28, 26, 27, 80, 52, 49, 75, 25, 24, 26, 1, 254, 231, 1, 66, 60, 58, 165, 101, 2, 6, 3, 9, 14, 5, 6, 7, 35, 30, 30, 81, 46, 69, 89, 28, 47, 14, 40, 29, 37, 30, 8, 8, 8, 26, 18, 61, 98, 34, 41, 43, 5, 176, 252, 59, 70, 106, 36, 36, 37, 37, 37, 35, 107, 69, 3, 197, 252, 59, 119, 187, 65, 63, 71, 5, 14, 30, 14, 19, 37, 19, 51, 77, 26, 26, 27, 29, 15, 154, 6, 14, 39, 29, 20, 36, 17, 15, 29, 13, 24, 77, 52, 61, 162, 98, 0, 255, 255, 0, 126, 255, 236, 4, 78, 7, 133, 6, 38, 0, 22, 0, 0, 0, 7, 1, 98, 0, 8, 1, 242, 255, 255, 0, 126, 255, 236, 4, 78, 7, 97, 6, 38, 0, 22, 0, 0, 0, 7, 1, 93, 0, 131, 1, 91, 255, 255, 0, 26, 0, 0, 4, 183, 7, 31, 6, 38, 0, 24, 0, 0, 0, 7, 1, 91, 0, 109, 1, 89, 255, 255, 0, 26, 0, 0, 4, 183, 7, 73, 6, 38, 0, 24, 0, 0, 0, 7, 1, 92, 0, 109, 1, 93, 255, 255, 0, 26, 0, 0, 4, 183, 7, 47, 6, 38, 0, 24, 0, 0, 0, 7, 1, 97, 255, 218, 1, 93, 255, 255, 0, 26, 0, 0, 4, 183, 7, 34, 6, 38, 0, 24, 0, 0, 0, 7, 1, 90, 255, 83, 1, 92, 255, 255, 0, 33, 0, 0, 4, 200, 7, 31, 6, 38, 0, 26, 0, 0, 0, 7, 1, 91, 0, 128, 1, 89, 255, 255, 0, 33, 0, 0, 4, 200, 7, 73, 6, 38, 0, 26, 0, 0, 0, 7, 1, 92, 0, 128, 1, 93, 255, 255, 0, 33, 0, 0, 4, 200, 7, 47, 6, 38, 0, 26, 0, 0, 0, 7, 1, 97, 255, 237, 1, 93, 255, 255, 0, 33, 0, 0, 4, 200, 7, 34, 6, 38, 0, 26, 0, 0, 0, 7, 1, 90, 255, 102, 1, 92, 255, 255, 0, 89, 0, 0, 4, 129, 7, 28, 6, 38, 0, 27, 0, 0, 0, 7, 1, 91, 0, 130, 1, 86, 255, 255, 0, 89, 0, 0, 4, 129, 7, 71, 6, 38, 0, 27, 0, 0, 0, 7, 1, 100, 255, 253, 1, 90, 255, 255, 0, 89, 0, 0, 4, 129, 7, 73, 6, 38, 0, 27, 0, 0, 0, 7, 1, 96, 0, 5, 1, 106, 255, 255, 0, 115, 255, 236, 4, 75, 5, 221, 6, 38, 0, 28, 0, 0, 0, 6, 1, 91, 97, 23, 255, 255, 0, 115, 255, 236, 4, 75, 5, 255, 6, 38, 0, 28, 0, 0, 0, 6, 1, 95, 220, 93, 255, 255, 0, 115, 255, 236, 4, 75, 6, 7, 6, 38, 0, 28, 0, 0, 0, 6, 1, 92, 97, 27, 255, 255, 0, 115, 255, 236, 4, 75, 5, 237, 6, 38, 0, 28, 0, 0, 0, 6, 1, 97, 206, 27, 255, 255, 0, 115, 255, 236, 4, 75, 5, 224, 6, 38, 0, 28, 0, 0, 0, 7, 1, 90, 255, 71, 0, 26, 255, 255, 0, 115, 255, 236, 4, 75, 5, 176, 6, 38, 0, 28, 0, 0, 0, 6, 1, 94, 217, 0, 0, 2, 0, 115, 254, 88, 4, 75, 4, 78, 0, 81, 0, 101, 0, 0, 101, 6, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 39, 6, 6, 35, 34, 38, 53, 52, 54, 55, 54, 54, 55, 51, 53, 38, 38, 53, 17, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 33, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 21, 35, 34, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 22, 22, 39, 34, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 51, 51, 21, 6, 6, 7, 6, 6, 3, 44, 29, 45, 16, 20, 21, 35, 30, 30, 81, 46, 69, 89, 28, 47, 14, 40, 29, 37, 30, 15, 18, 18, 60, 45, 51, 21, 22, 70, 62, 62, 169, 98, 109, 169, 58, 59, 61, 1, 22, 23, 23, 20, 58, 39, 53, 79, 25, 20, 21, 155, 113, 178, 63, 76, 78, 56, 50, 50, 139, 83, 51, 88, 37, 36, 60, 23, 5, 11, 252, 44, 63, 20, 16, 16, 28, 29, 29, 92, 65, 142, 12, 42, 29, 29, 72, 10, 21, 48, 25, 32, 67, 34, 51, 77, 26, 26, 27, 29, 15, 154, 6, 14, 39, 29, 27, 49, 22, 22, 40, 18, 17, 41, 114, 87, 1, 208, 94, 143, 47, 47, 48, 55, 47, 47, 124, 69, 33, 53, 18, 14, 16, 29, 26, 21, 58, 35, 64, 38, 37, 45, 144, 94, 70, 119, 43, 43, 48, 19, 17, 16, 44, 25, 26, 46, 166, 23, 20, 17, 45, 25, 37, 63, 23, 22, 25, 186, 21, 41, 16, 16, 20, 0, 255, 255, 0, 115, 255, 236, 4, 75, 6, 70, 6, 38, 0, 28, 0, 0, 0, 7, 1, 98, 255, 238, 0, 179, 255, 255, 0, 115, 255, 236, 4, 75, 7, 20, 6, 38, 0, 28, 0, 0, 0, 6, 2, 107, 205, 94, 255, 255, 0, 115, 255, 236, 4, 75, 6, 34, 6, 38, 0, 28, 0, 0, 0, 6, 1, 93, 104, 28, 255, 255, 0, 46, 255, 236, 4, 170, 5, 222, 6, 38, 0, 73, 0, 0, 0, 7, 1, 91, 0, 157, 0, 24, 255, 255, 0, 117, 255, 235, 4, 60, 5, 221, 6, 38, 0, 30, 0, 0, 0, 7, 1, 91, 0, 129, 0, 23, 255, 255, 0, 117, 255, 235, 4, 60, 6, 8, 6, 38, 0, 30, 0, 0, 0, 6, 1, 100, 252, 27, 255, 255, 0, 117, 254, 59, 4, 60, 4, 78, 6, 38, 0, 30, 0, 0, 0, 6, 1, 102, 51, 5, 255, 255, 0, 117, 255, 235, 4, 60, 6, 7, 6, 38, 0, 30, 0, 0, 0, 7, 1, 92, 0, 129, 0, 27, 255, 255, 0, 40, 255, 236, 5, 122, 6, 24, 4, 38, 0, 31, 184, 0, 0, 7, 0, 109, 2, 114, 0, 0, 0, 2, 0, 97, 255, 236, 4, 210, 6, 0, 0, 37, 0, 63, 0, 0, 65, 53, 35, 53, 33, 21, 35, 21, 51, 21, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 23, 51, 17, 1, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 17, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 4, 210, 169, 254, 233, 244, 244, 17, 37, 19, 40, 95, 56, 101, 157, 55, 55, 57, 58, 55, 54, 157, 99, 55, 93, 39, 26, 47, 20, 14, 251, 253, 78, 24, 26, 26, 83, 59, 33, 56, 22, 27, 40, 15, 14, 36, 23, 24, 61, 37, 59, 82, 26, 26, 23, 4, 196, 180, 136, 136, 180, 235, 19, 32, 13, 26, 27, 80, 73, 73, 204, 123, 21, 118, 201, 73, 73, 83, 26, 24, 16, 42, 25, 113, 4, 196, 253, 76, 21, 68, 119, 45, 44, 51, 14, 12, 15, 46, 29, 254, 74, 26, 43, 15, 15, 17, 50, 44, 43, 117, 255, 255, 0, 112, 255, 236, 4, 104, 5, 222, 6, 38, 0, 32, 0, 0, 0, 6, 1, 91, 102, 24, 255, 255, 0, 112, 255, 236, 4, 104, 6, 0, 6, 38, 0, 32, 0, 0, 0, 6, 1, 95, 225, 94, 255, 255, 0, 112, 255, 236, 4, 104, 6, 9, 6, 38, 0, 32, 0, 0, 0, 6, 1, 100, 225, 28, 255, 255, 0, 112, 255, 236, 4, 104, 6, 8, 6, 38, 0, 32, 0, 0, 0, 6, 1, 92, 102, 28, 255, 255, 0, 112, 255, 236, 4, 104, 5, 238, 6, 38, 0, 32, 0, 0, 0, 6, 1, 97, 211, 28, 255, 255, 0, 112, 255, 236, 4, 104, 6, 11, 6, 38, 0, 32, 0, 0, 0, 6, 1, 96, 234, 44, 255, 255, 0, 112, 255, 236, 4, 104, 5, 225, 6, 38, 0, 32, 0, 0, 0, 7, 1, 90, 255, 76, 0, 27, 255, 255, 0, 112, 255, 236, 4, 104, 5, 177, 6, 38, 0, 32, 0, 0, 0, 6, 1, 94, 222, 1, 0, 1, 0, 149, 254, 75, 4, 56, 4, 78, 0, 50, 0, 0, 115, 33, 17, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 17, 20, 6, 7, 6, 6, 35, 34, 38, 39, 7, 22, 22, 51, 50, 54, 55, 54, 54, 53, 17, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 39, 39, 33, 149, 1, 22, 13, 34, 20, 27, 67, 40, 42, 64, 22, 21, 23, 19, 17, 16, 42, 26, 26, 52, 22, 14, 37, 65, 37, 87, 139, 49, 48, 52, 51, 46, 46, 129, 79, 57, 101, 42, 31, 55, 23, 1, 12, 254, 254, 3, 16, 18, 30, 12, 15, 17, 22, 25, 25, 82, 60, 253, 66, 45, 67, 21, 17, 18, 6, 6, 224, 10, 7, 52, 50, 50, 149, 96, 2, 191, 119, 167, 53, 52, 48, 30, 29, 21, 57, 35, 12, 140, 0, 2, 0, 112, 254, 111, 4, 104, 4, 78, 0, 62, 0, 76, 0, 0, 83, 20, 22, 23, 22, 22, 23, 22, 22, 51, 6, 6, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 39, 6, 6, 35, 34, 38, 53, 52, 54, 55, 54, 54, 55, 54, 54, 55, 39, 6, 6, 35, 34, 38, 39, 38, 38, 39, 39, 33, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 1, 50, 22, 23, 22, 22, 23, 21, 33, 54, 54, 55, 54, 54, 112, 70, 65, 64, 183, 106, 5, 4, 3, 43, 38, 35, 30, 30, 81, 46, 69, 89, 28, 47, 14, 40, 29, 37, 30, 15, 18, 18, 57, 45, 73, 107, 31, 139, 48, 154, 82, 58, 98, 38, 38, 49, 8, 1, 2, 223, 66, 63, 64, 183, 117, 113, 192, 70, 70, 78, 2, 9, 53, 81, 28, 28, 30, 2, 254, 56, 10, 40, 30, 29, 78, 1, 247, 102, 181, 69, 70, 88, 10, 1, 1, 38, 94, 43, 51, 77, 26, 26, 27, 29, 15, 154, 6, 14, 39, 29, 27, 49, 22, 22, 41, 16, 27, 84, 44, 150, 62, 62, 36, 33, 33, 90, 51, 5, 118, 119, 197, 70, 70, 77, 82, 74, 74, 205, 124, 1, 78, 33, 28, 29, 78, 44, 22, 53, 86, 31, 31, 33, 0, 255, 255, 0, 113, 254, 86, 4, 71, 5, 255, 6, 38, 0, 34, 0, 0, 0, 6, 1, 95, 223, 93, 255, 255, 0, 113, 254, 86, 4, 71, 6, 7, 6, 38, 0, 34, 0, 0, 0, 6, 1, 92, 100, 27, 255, 255, 0, 113, 254, 86, 4, 71, 6, 179, 6, 38, 0, 34, 0, 0, 0, 7, 2, 78, 0, 11, 0, 153, 0, 1, 255, 252, 0, 0, 4, 101, 6, 0, 0, 39, 0, 0, 65, 53, 35, 53, 33, 21, 35, 21, 51, 17, 33, 17, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 17, 33, 17, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 17, 2, 176, 254, 254, 234, 160, 160, 1, 22, 19, 49, 30, 23, 54, 31, 48, 76, 27, 27, 29, 1, 22, 57, 51, 51, 142, 85, 56, 100, 43, 30, 54, 22, 4, 192, 180, 140, 140, 180, 251, 64, 3, 13, 25, 39, 12, 9, 10, 25, 26, 26, 84, 58, 253, 111, 2, 143, 119, 169, 54, 54, 51, 32, 29, 20, 55, 33, 1, 27, 0, 255, 255, 255, 163, 0, 0, 4, 86, 7, 168, 6, 38, 0, 35, 0, 0, 0, 7, 1, 92, 255, 34, 1, 188, 255, 255, 0, 199, 0, 0, 4, 90, 5, 196, 6, 38, 1, 109, 0, 0, 0, 7, 1, 91, 0, 168, 255, 254, 255, 255, 0, 199, 0, 0, 4, 90, 5, 229, 6, 38, 1, 109, 0, 0, 0, 6, 1, 95, 34, 67, 255, 255, 0, 199, 0, 0, 4, 90, 5, 237, 6, 38, 1, 109, 0, 0, 0, 7, 1, 92, 0, 168, 0, 1, 255, 255, 0, 199, 0, 0, 4, 90, 5, 211, 6, 38, 1, 109, 0, 0, 0, 6, 1, 97, 20, 1, 255, 255, 0, 199, 0, 0, 4, 90, 5, 198, 6, 38, 1, 109, 0, 0, 0, 6, 1, 90, 142, 0, 255, 255, 0, 199, 0, 0, 4, 90, 5, 151, 6, 38, 1, 109, 0, 0, 0, 6, 1, 94, 31, 231, 0, 2, 0, 215, 254, 88, 4, 73, 5, 227, 0, 38, 0, 50, 0, 0, 83, 21, 33, 17, 33, 21, 33, 6, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 39, 6, 6, 35, 34, 38, 53, 52, 54, 55, 54, 54, 55, 33, 53, 33, 17, 1, 20, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 215, 1, 52, 254, 204, 1, 43, 23, 37, 14, 22, 21, 35, 30, 30, 81, 46, 69, 89, 28, 47, 14, 40, 29, 37, 30, 15, 18, 18, 60, 45, 1, 77, 254, 219, 254, 211, 89, 71, 74, 87, 87, 74, 73, 87, 4, 58, 227, 253, 139, 226, 19, 41, 22, 32, 69, 34, 51, 77, 26, 26, 27, 29, 15, 154, 6, 14, 39, 29, 27, 49, 22, 22, 40, 18, 226, 3, 88, 1, 21, 65, 83, 83, 65, 65, 83, 85, 255, 255, 0, 199, 0, 0, 4, 90, 6, 8, 6, 38, 1, 109, 0, 0, 0, 7, 1, 93, 0, 175, 0, 2, 255, 255, 0, 226, 254, 75, 4, 85, 5, 223, 6, 38, 1, 113, 0, 0, 0, 7, 1, 92, 0, 235, 255, 243, 255, 255, 0, 144, 254, 13, 4, 172, 6, 0, 6, 38, 0, 38, 0, 0, 0, 7, 1, 104, 0, 150, 254, 181, 255, 255, 0, 199, 0, 0, 4, 90, 7, 101, 6, 38, 0, 39, 0, 0, 0, 7, 1, 91, 0, 164, 1, 159, 255, 255, 0, 129, 0, 0, 4, 181, 6, 5, 4, 38, 0, 39, 186, 0, 0, 7, 0, 109, 1, 173, 255, 237, 255, 255, 0, 199, 254, 36, 4, 90, 6, 0, 6, 38, 0, 39, 0, 0, 0, 7, 1, 104, 0, 229, 254, 204, 255, 255, 0, 129, 0, 0, 4, 102, 6, 0, 4, 38, 0, 39, 186, 0, 0, 7, 1, 96, 1, 98, 253, 217, 0, 1, 0, 213, 0, 0, 4, 104, 6, 0, 0, 17, 0, 0, 65, 17, 33, 21, 33, 17, 5, 21, 37, 17, 33, 21, 33, 53, 33, 17, 37, 53, 3, 50, 253, 163, 1, 68, 254, 200, 1, 56, 254, 188, 3, 147, 254, 202, 1, 25, 3, 251, 2, 5, 227, 254, 98, 138, 195, 138, 254, 38, 226, 226, 2, 86, 125, 195, 255, 255, 0, 141, 0, 0, 4, 83, 5, 221, 6, 38, 0, 41, 0, 0, 0, 6, 1, 91, 108, 23, 255, 255, 0, 141, 0, 0, 4, 83, 6, 8, 6, 38, 0, 41, 0, 0, 0, 6, 1, 100, 231, 27, 255, 255, 0, 141, 254, 35, 4, 83, 4, 78, 6, 38, 0, 41, 0, 0, 0, 7, 1, 104, 0, 174, 254, 203, 255, 255, 0, 141, 0, 0, 4, 83, 6, 34, 6, 38, 0, 41, 0, 0, 0, 6, 1, 93, 115, 28, 255, 255, 0, 103, 255, 235, 4, 100, 5, 221, 6, 38, 0, 42, 0, 0, 0, 6, 1, 91, 121, 23, 255, 255, 0, 103, 255, 235, 4, 100, 5, 255, 6, 38, 0, 42, 0, 0, 0, 6, 1, 95, 244, 93, 255, 255, 0, 103, 255, 235, 4, 100, 6, 7, 6, 38, 0, 42, 0, 0, 0, 6, 1, 92, 121, 27, 255, 255, 0, 103, 255, 235, 4, 100, 5, 237, 6, 38, 0, 42, 0, 0, 0, 6, 1, 97, 230, 27, 255, 255, 0, 103, 255, 235, 4, 100, 5, 224, 6, 38, 0, 42, 0, 0, 0, 7, 1, 90, 255, 95, 0, 26, 0, 2, 0, 95, 255, 235, 4, 166, 4, 155, 0, 38, 0, 64, 0, 0, 83, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 53, 52, 38, 39, 54, 54, 55, 54, 54, 53, 35, 20, 6, 7, 6, 6, 7, 38, 38, 35, 34, 6, 7, 6, 6, 5, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 95, 68, 66, 65, 191, 122, 121, 190, 65, 65, 68, 38, 37, 35, 56, 19, 19, 20, 193, 9, 9, 8, 21, 13, 63, 166, 103, 122, 189, 65, 66, 68, 1, 22, 26, 28, 28, 88, 62, 63, 88, 28, 27, 26, 26, 27, 28, 88, 61, 63, 89, 28, 28, 26, 2, 39, 21, 119, 201, 74, 74, 83, 83, 74, 74, 201, 119, 21, 88, 156, 66, 22, 63, 39, 40, 97, 57, 37, 62, 25, 20, 33, 13, 54, 59, 84, 74, 74, 201, 139, 21, 66, 118, 45, 45, 52, 52, 45, 45, 118, 66, 21, 68, 119, 44, 45, 52, 52, 45, 44, 119, 255, 255, 0, 103, 255, 235, 4, 158, 6, 9, 6, 38, 0, 42, 0, 0, 0, 7, 1, 99, 0, 129, 0, 27, 255, 255, 0, 103, 255, 235, 4, 100, 5, 176, 6, 38, 0, 42, 0, 0, 0, 6, 1, 94, 241, 0, 0, 3, 0, 103, 255, 115, 4, 100, 4, 191, 0, 34, 0, 48, 0, 65, 0, 0, 83, 21, 20, 22, 23, 7, 51, 55, 22, 22, 51, 50, 54, 55, 54, 54, 53, 53, 52, 38, 39, 38, 38, 39, 55, 35, 7, 38, 38, 35, 34, 6, 7, 6, 6, 5, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 1, 38, 38, 37, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 1, 22, 22, 23, 22, 22, 103, 108, 103, 102, 157, 71, 41, 87, 47, 121, 190, 65, 65, 68, 32, 32, 24, 66, 42, 104, 157, 71, 43, 96, 52, 122, 189, 65, 66, 68, 1, 22, 26, 28, 28, 88, 62, 25, 44, 19, 254, 241, 26, 23, 1, 208, 26, 27, 28, 88, 61, 19, 36, 18, 1, 8, 9, 14, 5, 6, 5, 2, 39, 21, 150, 241, 72, 208, 146, 13, 13, 83, 74, 74, 201, 119, 21, 82, 147, 62, 47, 81, 32, 213, 145, 16, 16, 84, 74, 74, 201, 139, 21, 66, 118, 45, 45, 52, 8, 9, 253, 213, 44, 115, 87, 21, 68, 119, 44, 45, 52, 6, 5, 2, 28, 19, 44, 23, 27, 58, 255, 255, 0, 103, 255, 115, 4, 100, 5, 217, 6, 38, 1, 56, 0, 0, 0, 6, 1, 91, 79, 19, 255, 255, 0, 103, 255, 235, 4, 100, 6, 34, 6, 38, 0, 42, 0, 0, 0, 7, 1, 93, 0, 128, 0, 28, 255, 255, 1, 31, 0, 0, 4, 97, 5, 221, 6, 38, 0, 45, 0, 0, 0, 6, 1, 91, 81, 23, 255, 255, 0, 197, 0, 0, 4, 97, 6, 8, 6, 38, 0, 45, 0, 0, 0, 6, 1, 100, 204, 27, 255, 255, 1, 11, 254, 35, 4, 97, 4, 78, 6, 38, 0, 45, 0, 0, 0, 7, 1, 104, 255, 247, 254, 203, 255, 255, 0, 122, 255, 235, 4, 85, 5, 221, 6, 38, 0, 46, 0, 0, 0, 6, 1, 91, 92, 23, 255, 255, 0, 122, 255, 235, 4, 85, 6, 8, 6, 38, 0, 46, 0, 0, 0, 6, 1, 100, 215, 27, 255, 255, 0, 122, 254, 45, 4, 85, 4, 78, 6, 38, 0, 46, 0, 0, 0, 6, 1, 102, 22, 247, 255, 255, 0, 122, 255, 235, 4, 85, 6, 7, 6, 38, 0, 46, 0, 0, 0, 6, 1, 92, 92, 27, 0, 1, 0, 126, 255, 235, 4, 78, 5, 67, 0, 43, 0, 0, 65, 33, 17, 35, 21, 51, 21, 35, 21, 51, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 39, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 53, 51, 53, 35, 53, 33, 53, 33, 2, 139, 254, 234, 247, 247, 195, 195, 56, 52, 51, 145, 89, 46, 95, 44, 44, 78, 29, 27, 19, 53, 30, 31, 67, 32, 44, 71, 25, 25, 27, 219, 219, 1, 148, 254, 108, 5, 67, 254, 247, 205, 158, 180, 154, 107, 153, 49, 50, 47, 9, 8, 8, 25, 17, 191, 5, 10, 4, 5, 6, 20, 24, 23, 79, 59, 127, 180, 158, 205, 255, 255, 0, 103, 255, 232, 4, 183, 6, 184, 4, 38, 0, 47, 233, 253, 0, 7, 0, 109, 1, 175, 0, 160, 255, 255, 0, 150, 255, 235, 4, 75, 5, 200, 6, 38, 0, 48, 0, 0, 0, 6, 1, 91, 123, 2, 255, 255, 0, 150, 255, 235, 4, 75, 5, 234, 6, 38, 0, 48, 0, 0, 0, 6, 1, 95, 246, 72, 255, 255, 0, 150, 255, 235, 4, 75, 5, 242, 6, 38, 0, 48, 0, 0, 0, 6, 1, 92, 123, 6, 255, 255, 0, 150, 255, 235, 4, 75, 5, 216, 6, 38, 0, 48, 0, 0, 0, 6, 1, 97, 232, 6, 255, 255, 0, 150, 255, 235, 4, 75, 5, 203, 6, 38, 0, 48, 0, 0, 0, 7, 1, 90, 255, 97, 0, 5, 0, 1, 0, 118, 255, 235, 5, 95, 4, 154, 0, 39, 0, 0, 65, 35, 20, 6, 7, 6, 6, 7, 53, 33, 17, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 17, 33, 17, 20, 22, 23, 22, 22, 51, 50, 54, 55, 23, 51, 17, 54, 54, 5, 95, 198, 17, 19, 13, 37, 24, 254, 233, 12, 33, 22, 27, 74, 46, 49, 68, 21, 21, 19, 254, 234, 55, 50, 50, 140, 84, 92, 155, 55, 16, 252, 156, 152, 4, 154, 58, 88, 32, 21, 31, 11, 145, 253, 9, 24, 40, 15, 19, 20, 24, 28, 27, 90, 66, 2, 130, 253, 128, 123, 175, 56, 57, 52, 92, 81, 152, 3, 0, 26, 200, 255, 255, 0, 150, 255, 235, 4, 160, 5, 244, 6, 38, 0, 48, 0, 0, 0, 7, 1, 99, 0, 131, 0, 6, 255, 255, 0, 150, 255, 235, 4, 75, 5, 156, 6, 38, 0, 48, 0, 0, 0, 6, 1, 94, 243, 236, 0, 1, 0, 150, 254, 88, 4, 97, 4, 58, 0, 56, 0, 0, 97, 51, 17, 33, 17, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 17, 33, 17, 20, 22, 23, 22, 22, 51, 50, 54, 55, 23, 6, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 39, 6, 6, 35, 34, 38, 53, 52, 54, 55, 54, 54, 4, 56, 19, 254, 233, 12, 32, 21, 28, 74, 47, 49, 68, 21, 21, 19, 254, 234, 55, 50, 50, 140, 84, 92, 155, 55, 15, 27, 43, 16, 23, 24, 35, 30, 30, 81, 46, 69, 89, 28, 47, 14, 40, 29, 37, 30, 15, 18, 18, 60, 4, 58, 253, 9, 24, 39, 15, 19, 21, 24, 28, 27, 90, 66, 2, 130, 253, 128, 123, 175, 56, 57, 52, 92, 81, 140, 19, 44, 23, 34, 73, 36, 51, 77, 26, 26, 27, 29, 15, 154, 6, 14, 39, 29, 27, 49, 22, 22, 40, 255, 255, 0, 150, 255, 235, 4, 75, 6, 49, 6, 38, 0, 48, 0, 0, 0, 7, 1, 98, 0, 7, 0, 158, 255, 255, 0, 150, 255, 235, 4, 75, 6, 13, 6, 38, 0, 48, 0, 0, 0, 7, 1, 93, 0, 130, 0, 7, 255, 255, 0, 27, 0, 0, 4, 158, 5, 200, 6, 38, 0, 50, 0, 0, 0, 6, 1, 91, 104, 2, 255, 255, 0, 27, 0, 0, 4, 158, 5, 242, 6, 38, 0, 50, 0, 0, 0, 6, 1, 92, 104, 6, 255, 255, 0, 27, 0, 0, 4, 158, 5, 216, 6, 38, 0, 50, 0, 0, 0, 6, 1, 97, 213, 6, 255, 255, 0, 27, 0, 0, 4, 158, 5, 203, 6, 38, 0, 50, 0, 0, 0, 7, 1, 90, 255, 78, 0, 5, 255, 255, 0, 52, 254, 75, 4, 205, 5, 200, 6, 38, 0, 52, 0, 0, 0, 7, 1, 91, 0, 147, 0, 2, 255, 255, 0, 52, 254, 75, 4, 205, 5, 242, 6, 38, 0, 52, 0, 0, 0, 7, 1, 92, 0, 147, 0, 6, 255, 255, 0, 52, 254, 75, 4, 205, 5, 216, 6, 38, 0, 52, 0, 0, 0, 6, 1, 97, 0, 6, 255, 255, 0, 52, 254, 75, 4, 205, 5, 203, 6, 38, 0, 52, 0, 0, 0, 7, 1, 90, 255, 121, 0, 5, 255, 255, 0, 118, 0, 0, 4, 111, 5, 200, 6, 38, 0, 53, 0, 0, 0, 7, 1, 91, 0, 158, 0, 2, 255, 255, 0, 118, 0, 0, 4, 111, 5, 243, 6, 38, 0, 53, 0, 0, 0, 6, 1, 100, 24, 6, 255, 255, 0, 118, 0, 0, 4, 111, 5, 245, 6, 38, 0, 53, 0, 0, 0, 6, 1, 96, 33, 22, 0, 1, 1, 155, 4, 175, 3, 126, 5, 198, 0, 3, 0, 0, 65, 3, 33, 1, 3, 126, 177, 254, 206, 1, 8, 4, 175, 1, 23, 254, 233, 0, 0, 1, 1, 126, 4, 175, 3, 107, 5, 198, 0, 3, 0, 0, 65, 3, 51, 1, 2, 57, 187, 216, 1, 21, 5, 198, 254, 233, 1, 23, 0, 1, 0, 129, 4, 221, 3, 106, 5, 236, 0, 8, 0, 0, 65, 37, 35, 5, 21, 51, 55, 23, 51, 3, 106, 254, 218, 161, 254, 222, 217, 153, 154, 221, 4, 249, 243, 241, 30, 127, 127, 0, 0, 1, 0, 128, 4, 232, 3, 88, 6, 6, 0, 37, 0, 0, 65, 39, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 23, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 3, 88, 140, 13, 11, 12, 35, 19, 38, 68, 33, 34, 70, 40, 49, 79, 28, 28, 31, 140, 14, 13, 12, 32, 18, 39, 62, 32, 31, 71, 48, 49, 79, 29, 28, 31, 5, 231, 31, 21, 35, 12, 14, 15, 27, 17, 16, 27, 44, 35, 35, 88, 44, 30, 23, 37, 12, 13, 13, 27, 16, 17, 27, 42, 35, 34, 88, 0, 0, 1, 1, 17, 5, 12, 3, 235, 5, 176, 0, 3, 0, 0, 65, 53, 33, 21, 3, 235, 253, 38, 5, 12, 164, 164, 0, 1, 1, 37, 4, 125, 3, 206, 5, 162, 0, 25, 0, 0, 65, 35, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 35, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 3, 206, 201, 15, 16, 17, 53, 38, 39, 53, 17, 17, 15, 200, 47, 45, 44, 126, 79, 78, 126, 45, 44, 47, 5, 162, 26, 49, 18, 19, 22, 22, 19, 18, 49, 26, 65, 108, 38, 39, 43, 43, 39, 38, 108, 0, 0, 1, 1, 216, 4, 200, 3, 4, 5, 223, 0, 11, 0, 0, 65, 20, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 1, 216, 80, 70, 70, 80, 80, 70, 70, 80, 5, 83, 60, 79, 79, 60, 61, 79, 79, 0, 0, 2, 1, 9, 4, 215, 3, 249, 5, 210, 0, 11, 0, 23, 0, 0, 65, 20, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 5, 20, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 1, 9, 77, 59, 59, 77, 76, 60, 60, 76, 1, 224, 76, 60, 60, 76, 75, 61, 61, 75, 5, 85, 53, 71, 71, 53, 52, 73, 73, 52, 54, 72, 72, 54, 51, 73, 73, 0, 0, 2, 1, 147, 4, 15, 3, 56, 5, 147, 0, 23, 0, 47, 0, 0, 65, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 23, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 1, 147, 33, 29, 29, 78, 44, 44, 76, 28, 28, 32, 32, 28, 28, 76, 44, 44, 78, 29, 29, 33, 114, 15, 12, 13, 38, 21, 21, 35, 13, 12, 14, 15, 14, 12, 34, 20, 21, 36, 13, 13, 16, 4, 207, 42, 71, 25, 26, 28, 28, 26, 25, 71, 42, 42, 72, 26, 26, 30, 30, 26, 26, 72, 42, 22, 36, 13, 14, 15, 14, 13, 13, 38, 22, 23, 37, 13, 12, 13, 14, 12, 13, 37, 0, 2, 0, 210, 4, 229, 4, 29, 5, 238, 0, 3, 0, 7, 0, 0, 65, 3, 51, 1, 33, 3, 51, 1, 3, 12, 245, 212, 1, 50, 253, 128, 203, 206, 1, 2, 5, 238, 254, 247, 1, 9, 254, 247, 1, 9, 0, 1, 0, 249, 4, 221, 3, 248, 5, 237, 0, 8, 0, 0, 65, 39, 35, 21, 5, 51, 37, 53, 35, 2, 120, 146, 237, 1, 40, 175, 1, 40, 237, 5, 111, 126, 20, 252, 253, 19, 0, 1, 253, 13, 254, 148, 254, 81, 255, 173, 0, 11, 0, 0, 69, 20, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 253, 13, 86, 76, 74, 88, 87, 75, 77, 85, 224, 60, 80, 80, 60, 59, 82, 82, 0, 1, 1, 182, 254, 54, 3, 47, 0, 5, 0, 27, 0, 0, 101, 35, 7, 22, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 23, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 2, 164, 207, 31, 39, 56, 17, 17, 16, 19, 16, 16, 43, 25, 7, 85, 128, 44, 43, 44, 26, 21, 21, 54, 28, 5, 141, 3, 9, 10, 9, 28, 20, 23, 32, 10, 9, 9, 160, 34, 31, 30, 86, 53, 43, 61, 21, 20, 23, 5, 0, 1, 1, 125, 254, 88, 3, 21, 0, 60, 0, 28, 0, 0, 97, 39, 6, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 39, 6, 6, 35, 34, 38, 53, 52, 54, 55, 54, 54, 2, 236, 153, 43, 69, 26, 38, 38, 35, 30, 30, 81, 46, 69, 89, 28, 47, 14, 40, 29, 37, 30, 15, 18, 18, 60, 60, 20, 50, 28, 41, 92, 46, 51, 77, 26, 26, 27, 29, 15, 154, 6, 14, 39, 29, 27, 49, 22, 22, 40, 0, 0, 1, 1, 20, 255, 88, 2, 29, 0, 250, 0, 9, 0, 0, 101, 53, 35, 21, 20, 6, 7, 23, 54, 54, 2, 29, 190, 37, 38, 113, 78, 74, 181, 69, 72, 76, 131, 63, 76, 68, 194, 0, 255, 255, 0, 187, 0, 93, 4, 5, 3, 124, 4, 39, 0, 122, 255, 51, 255, 221, 0, 7, 0, 122, 0, 174, 255, 221, 0, 1, 0, 172, 254, 96, 4, 99, 4, 58, 0, 30, 0, 0, 65, 33, 17, 33, 17, 22, 22, 51, 50, 54, 55, 54, 54, 55, 23, 33, 17, 33, 17, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 1, 194, 254, 234, 1, 22, 37, 90, 53, 46, 80, 34, 19, 34, 15, 6, 1, 3, 254, 233, 11, 28, 19, 27, 75, 49, 41, 68, 24, 25, 27, 4, 58, 250, 38, 1, 187, 24, 24, 20, 19, 11, 27, 16, 72, 4, 58, 252, 255, 20, 34, 13, 20, 21, 20, 29, 28, 100, 80, 255, 255, 0, 227, 0, 127, 4, 44, 3, 158, 4, 39, 0, 123, 255, 98, 0, 0, 0, 7, 0, 123, 0, 219, 0, 0, 0, 1, 0, 199, 0, 0, 4, 90, 4, 58, 0, 9, 0, 0, 83, 21, 33, 17, 33, 21, 33, 53, 33, 17, 199, 1, 68, 254, 188, 3, 147, 254, 202, 4, 58, 227, 253, 139, 226, 226, 3, 88, 0, 2, 0, 126, 255, 237, 4, 78, 5, 176, 0, 3, 0, 28, 0, 0, 97, 17, 35, 17, 1, 17, 20, 6, 7, 6, 6, 35, 34, 38, 53, 35, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 17, 1, 70, 200, 3, 8, 13, 16, 17, 55, 41, 60, 72, 200, 49, 45, 44, 122, 72, 87, 129, 43, 42, 41, 5, 176, 250, 80, 5, 176, 251, 146, 42, 67, 23, 24, 25, 86, 94, 87, 128, 42, 42, 41, 46, 44, 44, 127, 80, 4, 110, 0, 0, 4, 0, 75, 254, 78, 4, 87, 5, 192, 0, 29, 0, 39, 0, 51, 0, 63, 0, 0, 65, 21, 51, 17, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 7, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 17, 33, 21, 51, 17, 35, 21, 33, 53, 35, 17, 3, 20, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 5, 20, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 2, 176, 216, 37, 32, 33, 88, 50, 14, 48, 27, 27, 51, 17, 14, 24, 45, 22, 29, 60, 32, 101, 158, 55, 55, 57, 252, 1, 229, 235, 2, 148, 225, 213, 58, 57, 57, 59, 59, 57, 57, 58, 2, 71, 58, 57, 57, 59, 59, 57, 57, 58, 4, 58, 170, 252, 106, 75, 98, 29, 30, 24, 1, 2, 1, 5, 3, 167, 4, 6, 2, 3, 2, 56, 54, 54, 160, 104, 4, 64, 170, 253, 26, 170, 170, 3, 144, 1, 23, 47, 63, 63, 46, 47, 64, 64, 45, 47, 63, 63, 46, 47, 64, 64, 0, 1, 1, 156, 0, 0, 4, 37, 6, 45, 0, 21, 0, 0, 97, 33, 17, 52, 54, 55, 54, 54, 51, 50, 22, 23, 55, 38, 38, 35, 34, 6, 7, 6, 6, 21, 1, 156, 1, 21, 34, 33, 32, 93, 60, 32, 43, 21, 24, 40, 77, 41, 114, 182, 63, 64, 68, 4, 77, 61, 96, 33, 31, 34, 6, 5, 215, 9, 12, 63, 60, 61, 179, 117, 0, 1, 0, 226, 254, 75, 3, 96, 4, 58, 0, 29, 0, 0, 65, 21, 33, 17, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 7, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 17, 1, 54, 1, 18, 30, 26, 26, 70, 40, 11, 40, 23, 23, 43, 12, 14, 20, 40, 21, 25, 50, 24, 109, 170, 59, 58, 62, 4, 58, 227, 252, 144, 52, 69, 21, 21, 18, 1, 2, 1, 5, 3, 226, 5, 6, 2, 2, 2, 48, 51, 50, 155, 108, 4, 83, 0, 0, 2, 1, 185, 254, 142, 3, 3, 255, 187, 0, 23, 0, 35, 0, 0, 69, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 23, 52, 54, 51, 50, 22, 21, 20, 6, 35, 34, 38, 1, 185, 26, 23, 22, 61, 35, 34, 60, 22, 22, 25, 25, 22, 22, 60, 34, 35, 61, 22, 23, 26, 110, 32, 25, 23, 30, 30, 23, 25, 32, 222, 32, 55, 19, 20, 22, 22, 20, 19, 54, 33, 33, 56, 21, 20, 23, 23, 20, 21, 56, 33, 26, 33, 33, 26, 24, 31, 31, 0, 0, 1, 252, 152, 4, 186, 254, 29, 6, 24, 0, 3, 0, 0, 65, 3, 35, 19, 254, 29, 164, 225, 219, 4, 186, 1, 94, 254, 162, 0, 0, 1, 253, 112, 4, 185, 254, 226, 6, 25, 0, 3, 0, 0, 65, 3, 51, 19, 254, 2, 146, 166, 204, 6, 25, 254, 160, 1, 96, 0, 255, 255, 252, 111, 4, 232, 255, 71, 6, 6, 4, 7, 1, 93, 251, 239, 0, 0, 0, 1, 253, 38, 4, 239, 254, 159, 6, 133, 0, 27, 0, 0, 65, 51, 53, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 7, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 7, 253, 58, 207, 28, 54, 21, 21, 26, 56, 55, 46, 130, 83, 7, 31, 54, 19, 19, 22, 13, 14, 17, 55, 39, 4, 239, 66, 4, 20, 18, 17, 51, 35, 49, 78, 25, 21, 22, 133, 7, 8, 8, 27, 20, 15, 21, 8, 9, 10, 3, 0, 2, 251, 247, 4, 228, 255, 78, 5, 238, 0, 3, 0, 7, 0, 0, 65, 3, 33, 1, 33, 3, 33, 19, 254, 4, 245, 254, 232, 1, 37, 2, 50, 196, 254, 239, 245, 4, 228, 1, 10, 254, 246, 1, 10, 254, 246, 0, 0, 1, 2, 69, 4, 242, 3, 170, 6, 129, 0, 3, 0, 0, 65, 3, 51, 19, 2, 149, 80, 140, 217, 6, 129, 254, 113, 1, 143, 0, 0, 3, 1, 3, 4, 200, 4, 67, 7, 9, 0, 3, 0, 15, 0, 27, 0, 0, 65, 3, 51, 19, 1, 20, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 5, 20, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 2, 134, 43, 147, 168, 253, 109, 77, 65, 61, 80, 79, 62, 66, 76, 2, 37, 78, 64, 60, 81, 79, 62, 66, 76, 7, 9, 254, 188, 1, 68, 254, 64, 53, 76, 74, 55, 56, 75, 77, 52, 56, 75, 73, 58, 56, 74, 76, 255, 255, 2, 45, 2, 40, 3, 105, 3, 83, 4, 6, 0, 100, 63, 0, 0, 1, 0, 141, 0, 0, 4, 59, 5, 176, 0, 5, 0, 0, 65, 53, 33, 17, 33, 17, 4, 59, 252, 82, 1, 25, 4, 204, 228, 250, 80, 4, 204, 0, 0, 2, 0, 35, 0, 0, 5, 0, 5, 176, 0, 3, 0, 8, 0, 0, 65, 1, 33, 1, 1, 19, 55, 23, 19, 2, 11, 254, 24, 4, 221, 254, 39, 254, 104, 250, 13, 12, 244, 5, 176, 250, 80, 5, 176, 251, 50, 3, 44, 41, 41, 252, 212, 0, 0, 3, 0, 91, 255, 236, 4, 134, 5, 196, 0, 3, 0, 29, 0, 55, 0, 0, 65, 53, 33, 21, 37, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 1, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 3, 50, 254, 124, 2, 216, 74, 70, 70, 201, 127, 126, 195, 67, 67, 70, 70, 67, 67, 196, 126, 126, 201, 70, 70, 74, 254, 227, 30, 30, 31, 97, 68, 69, 92, 28, 28, 24, 24, 28, 28, 92, 68, 69, 97, 31, 31, 29, 2, 102, 223, 223, 7, 212, 140, 236, 86, 85, 96, 96, 85, 86, 236, 140, 212, 140, 235, 85, 86, 95, 95, 85, 85, 236, 1, 98, 214, 89, 150, 54, 55, 62, 62, 55, 55, 150, 88, 214, 89, 150, 54, 54, 61, 61, 54, 54, 150, 0, 0, 1, 0, 23, 0, 0, 4, 180, 5, 176, 0, 6, 0, 0, 65, 1, 33, 1, 33, 1, 33, 2, 100, 1, 42, 1, 38, 254, 63, 254, 228, 254, 64, 1, 37, 4, 55, 251, 201, 5, 176, 250, 80, 0, 0, 3, 0, 121, 0, 0, 4, 72, 5, 176, 0, 3, 0, 7, 0, 11, 0, 0, 119, 21, 33, 53, 1, 21, 33, 53, 1, 21, 33, 53, 121, 3, 207, 252, 157, 2, 244, 252, 179, 3, 152, 226, 226, 226, 2, 111, 219, 219, 2, 95, 228, 228, 0, 1, 0, 121, 0, 0, 4, 71, 5, 176, 0, 7, 0, 0, 97, 17, 33, 17, 33, 17, 33, 17, 4, 71, 252, 50, 1, 25, 1, 156, 5, 176, 250, 80, 4, 204, 251, 52, 0, 1, 0, 111, 0, 1, 4, 120, 5, 176, 0, 12, 0, 0, 65, 53, 1, 33, 53, 33, 21, 1, 1, 21, 33, 53, 33, 3, 88, 254, 149, 2, 110, 252, 20, 1, 192, 254, 64, 4, 9, 253, 112, 2, 212, 17, 1, 231, 228, 152, 253, 197, 253, 187, 151, 224, 0, 3, 0, 65, 0, 0, 4, 238, 5, 176, 0, 29, 0, 42, 0, 55, 0, 0, 65, 53, 33, 21, 6, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 23, 21, 33, 53, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 1, 52, 54, 55, 54, 54, 55, 17, 38, 38, 39, 38, 38, 37, 20, 6, 7, 6, 6, 7, 17, 22, 22, 23, 22, 22, 3, 36, 254, 232, 102, 169, 60, 61, 67, 67, 61, 60, 169, 102, 1, 24, 102, 168, 61, 60, 67, 67, 60, 61, 168, 253, 203, 29, 27, 23, 65, 39, 40, 66, 24, 25, 28, 2, 131, 30, 28, 23, 62, 37, 32, 55, 21, 34, 38, 4, 236, 196, 196, 11, 86, 70, 71, 190, 114, 112, 185, 68, 69, 84, 11, 189, 189, 11, 85, 69, 69, 185, 112, 114, 189, 70, 70, 86, 253, 237, 68, 106, 38, 33, 42, 10, 253, 187, 10, 42, 33, 35, 101, 65, 67, 105, 36, 29, 39, 9, 2, 68, 8, 32, 23, 38, 117, 0, 0, 1, 0, 69, 0, 0, 4, 219, 5, 176, 0, 35, 0, 0, 65, 17, 33, 17, 38, 38, 39, 38, 38, 53, 17, 33, 17, 20, 22, 23, 22, 22, 23, 17, 33, 17, 54, 54, 55, 54, 54, 53, 17, 33, 17, 20, 6, 7, 6, 6, 3, 39, 254, 232, 40, 64, 22, 25, 26, 254, 231, 65, 60, 60, 169, 104, 1, 24, 99, 161, 57, 57, 62, 254, 230, 22, 21, 19, 56, 2, 63, 3, 113, 252, 143, 10, 44, 35, 39, 112, 75, 2, 54, 253, 202, 128, 195, 68, 68, 77, 10, 254, 168, 1, 89, 12, 80, 68, 67, 192, 126, 2, 54, 253, 202, 76, 113, 38, 34, 44, 0, 1, 0, 86, 0, 0, 4, 130, 5, 196, 0, 59, 0, 0, 65, 17, 33, 53, 33, 54, 54, 55, 54, 54, 53, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 21, 20, 22, 23, 22, 22, 23, 33, 21, 33, 17, 38, 38, 39, 38, 38, 53, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 21, 20, 6, 7, 6, 6, 2, 165, 1, 214, 254, 239, 59, 103, 38, 37, 43, 78, 70, 71, 197, 119, 119, 196, 70, 70, 78, 43, 38, 38, 103, 60, 254, 244, 1, 213, 40, 64, 23, 23, 25, 30, 27, 29, 86, 53, 45, 74, 27, 39, 41, 24, 22, 23, 62, 1, 16, 254, 240, 228, 43, 122, 74, 74, 172, 92, 51, 136, 228, 83, 82, 91, 91, 82, 83, 228, 136, 51, 92, 171, 74, 75, 122, 43, 228, 1, 16, 16, 77, 65, 65, 186, 124, 53, 94, 143, 49, 51, 51, 34, 34, 47, 161, 112, 53, 123, 186, 65, 65, 78, 0, 2, 0, 106, 255, 235, 4, 143, 4, 78, 0, 47, 0, 76, 0, 0, 65, 35, 7, 7, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 22, 22, 23, 22, 22, 51, 50, 54, 55, 39, 6, 6, 35, 34, 38, 39, 38, 38, 53, 37, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 17, 20, 20, 23, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 4, 4, 191, 53, 3, 18, 41, 23, 39, 95, 56, 98, 150, 51, 51, 53, 53, 51, 51, 149, 97, 56, 94, 38, 27, 46, 20, 15, 39, 25, 34, 88, 52, 35, 59, 32, 24, 9, 21, 13, 15, 25, 9, 11, 12, 253, 124, 21, 23, 23, 75, 53, 31, 52, 22, 20, 33, 13, 1, 12, 31, 20, 22, 56, 33, 54, 73, 23, 23, 20, 4, 58, 110, 7, 24, 41, 16, 27, 29, 84, 76, 76, 209, 125, 21, 117, 195, 70, 71, 78, 27, 24, 17, 45, 27, 30, 47, 17, 24, 23, 10, 16, 209, 2, 3, 9, 11, 13, 46, 35, 188, 21, 71, 125, 47, 47, 55, 10, 10, 10, 26, 17, 254, 31, 12, 23, 11, 16, 26, 10, 11, 11, 47, 41, 41, 113, 0, 0, 2, 0, 158, 254, 110, 4, 141, 5, 197, 0, 38, 0, 78, 0, 0, 65, 34, 6, 7, 6, 6, 21, 17, 33, 17, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 3, 35, 21, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 17, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 2, 126, 99, 174, 65, 66, 76, 1, 21, 25, 53, 27, 43, 91, 44, 102, 166, 58, 58, 63, 48, 46, 30, 80, 49, 30, 52, 21, 42, 45, 66, 60, 61, 172, 109, 67, 102, 53, 82, 28, 27, 28, 31, 29, 29, 86, 54, 36, 65, 29, 27, 47, 19, 31, 27, 27, 74, 44, 46, 70, 24, 23, 23, 24, 27, 23, 69, 5, 197, 64, 57, 58, 162, 98, 250, 96, 1, 204, 16, 25, 10, 14, 14, 58, 56, 55, 163, 104, 79, 131, 48, 33, 50, 17, 16, 41, 23, 46, 117, 66, 93, 147, 51, 50, 54, 253, 150, 206, 34, 30, 31, 87, 53, 46, 79, 29, 29, 33, 9, 9, 8, 23, 15, 3, 4, 49, 79, 28, 28, 30, 32, 26, 26, 68, 37, 51, 80, 26, 23, 24, 0, 0, 1, 0, 40, 254, 95, 4, 182, 4, 58, 0, 11, 0, 0, 65, 1, 7, 35, 39, 1, 33, 1, 17, 33, 17, 1, 3, 148, 254, 239, 16, 2, 13, 254, 231, 254, 221, 1, 187, 1, 22, 1, 189, 4, 58, 252, 251, 65, 65, 3, 5, 251, 221, 254, 72, 1, 180, 4, 39, 0, 0, 2, 0, 93, 255, 236, 4, 128, 6, 34, 0, 57, 0, 83, 0, 0, 83, 20, 22, 23, 22, 22, 23, 7, 6, 6, 7, 6, 6, 21, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 53, 52, 38, 39, 38, 38, 39, 38, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 55, 38, 38, 35, 34, 6, 7, 6, 6, 19, 53, 52, 54, 55, 54, 54, 51, 22, 22, 23, 22, 22, 21, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 237, 26, 24, 24, 71, 44, 2, 68, 120, 45, 45, 53, 71, 68, 68, 198, 127, 125, 196, 68, 67, 71, 71, 71, 59, 172, 110, 53, 66, 18, 18, 12, 24, 22, 20, 59, 37, 71, 124, 47, 44, 80, 147, 79, 96, 151, 52, 53, 55, 133, 30, 32, 31, 96, 66, 57, 93, 33, 32, 35, 29, 31, 31, 94, 65, 66, 97, 31, 31, 30, 4, 227, 46, 79, 33, 33, 56, 21, 13, 16, 78, 57, 58, 147, 84, 20, 113, 194, 71, 71, 81, 83, 73, 72, 198, 116, 20, 113, 188, 73, 63, 100, 37, 19, 38, 18, 18, 34, 15, 24, 39, 14, 13, 14, 38, 15, 184, 33, 44, 43, 41, 42, 118, 252, 232, 20, 64, 117, 45, 44, 53, 11, 64, 45, 45, 106, 52, 20, 68, 121, 45, 45, 53, 53, 45, 45, 121, 0, 0, 1, 0, 132, 255, 236, 4, 156, 4, 77, 0, 82, 0, 0, 83, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 33, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 55, 54, 54, 51, 51, 53, 35, 34, 38, 39, 38, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 33, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 23, 6, 6, 7, 6, 6, 132, 78, 71, 71, 198, 119, 94, 183, 73, 72, 89, 254, 235, 33, 31, 32, 93, 59, 65, 93, 29, 30, 28, 21, 22, 16, 45, 29, 24, 56, 32, 230, 230, 28, 48, 20, 25, 40, 14, 27, 23, 21, 26, 26, 87, 66, 49, 83, 31, 31, 35, 1, 22, 78, 67, 68, 180, 101, 120, 191, 67, 68, 72, 36, 34, 24, 65, 39, 45, 72, 27, 36, 37, 1, 50, 77, 121, 42, 42, 44, 40, 42, 41, 128, 89, 26, 47, 18, 18, 21, 23, 19, 18, 48, 26, 31, 47, 16, 12, 16, 4, 4, 4, 188, 3, 4, 4, 13, 9, 16, 43, 27, 23, 45, 18, 17, 22, 16, 15, 16, 44, 28, 77, 123, 43, 42, 45, 41, 39, 40, 118, 77, 42, 78, 32, 23, 39, 15, 13, 39, 24, 33, 89, 0, 1, 0, 80, 254, 124, 4, 44, 5, 176, 0, 56, 0, 0, 65, 33, 21, 33, 7, 6, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 23, 23, 22, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 7, 23, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 39, 38, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 55, 1, 4, 44, 252, 36, 2, 100, 231, 88, 133, 44, 44, 45, 40, 44, 43, 136, 96, 177, 34, 45, 14, 14, 10, 13, 15, 11, 32, 21, 142, 39, 79, 33, 32, 42, 41, 38, 38, 106, 64, 187, 45, 67, 21, 22, 22, 35, 34, 34, 100, 65, 1, 160, 5, 176, 224, 247, 80, 144, 71, 71, 145, 80, 75, 122, 47, 47, 65, 18, 31, 6, 19, 13, 13, 30, 18, 19, 43, 25, 18, 41, 22, 110, 27, 80, 45, 45, 94, 43, 61, 84, 29, 29, 37, 15, 37, 9, 29, 23, 23, 65, 47, 68, 109, 50, 49, 99, 59, 1, 172, 0, 1, 0, 129, 254, 97, 4, 76, 4, 78, 0, 32, 0, 0, 115, 33, 17, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 17, 33, 17, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 39, 39, 33, 129, 1, 22, 17, 41, 25, 28, 70, 40, 49, 74, 24, 22, 23, 1, 24, 54, 48, 49, 137, 83, 67, 116, 48, 28, 49, 21, 1, 12, 254, 254, 3, 23, 18, 31, 10, 13, 14, 25, 26, 24, 72, 48, 251, 183, 4, 73, 114, 159, 51, 50, 46, 38, 35, 21, 52, 31, 9, 148, 0, 3, 0, 176, 255, 235, 4, 71, 5, 197, 0, 25, 0, 40, 0, 55, 0, 0, 69, 50, 54, 55, 54, 54, 53, 17, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 17, 20, 22, 23, 22, 22, 55, 34, 38, 39, 38, 38, 53, 53, 33, 21, 20, 6, 7, 6, 6, 3, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 21, 2, 125, 105, 169, 60, 59, 65, 65, 60, 60, 170, 105, 105, 169, 60, 60, 65, 66, 60, 60, 170, 105, 45, 69, 22, 23, 23, 1, 107, 23, 23, 23, 68, 226, 22, 23, 22, 68, 45, 45, 69, 23, 23, 23, 21, 70, 69, 68, 202, 133, 1, 149, 133, 206, 70, 70, 72, 72, 70, 70, 206, 133, 254, 107, 133, 202, 68, 69, 70, 223, 26, 32, 31, 104, 79, 159, 159, 79, 104, 31, 32, 26, 2, 134, 128, 78, 105, 33, 32, 28, 28, 32, 33, 105, 78, 128, 0, 1, 0, 179, 255, 235, 4, 63, 4, 58, 0, 26, 0, 0, 83, 21, 33, 17, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 39, 6, 6, 35, 34, 38, 39, 38, 38, 53, 17, 179, 1, 27, 49, 48, 47, 140, 92, 32, 62, 31, 30, 62, 32, 45, 27, 79, 45, 30, 54, 20, 20, 24, 4, 58, 227, 254, 12, 103, 143, 45, 45, 40, 6, 8, 8, 30, 24, 201, 17, 30, 7, 15, 15, 60, 54, 2, 210, 0, 0, 1, 0, 32, 255, 238, 4, 126, 6, 6, 0, 45, 0, 0, 97, 19, 55, 23, 19, 22, 22, 23, 22, 22, 51, 50, 54, 55, 55, 6, 6, 35, 34, 38, 39, 38, 38, 39, 1, 38, 38, 39, 38, 38, 35, 34, 6, 7, 23, 54, 54, 51, 50, 22, 23, 22, 22, 23, 23, 1, 1, 77, 181, 29, 49, 109, 20, 61, 43, 43, 116, 75, 20, 45, 20, 6, 18, 10, 16, 26, 45, 18, 19, 26, 12, 254, 165, 17, 55, 41, 42, 113, 73, 41, 90, 31, 6, 20, 40, 17, 36, 59, 25, 24, 37, 13, 30, 254, 127, 2, 62, 139, 138, 254, 209, 56, 105, 40, 41, 48, 5, 6, 218, 2, 1, 31, 25, 25, 64, 30, 3, 116, 40, 97, 41, 41, 56, 15, 8, 208, 2, 4, 33, 27, 27, 67, 33, 74, 251, 224, 0, 1, 0, 176, 254, 119, 4, 122, 5, 196, 0, 90, 0, 0, 65, 55, 38, 38, 35, 34, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 23, 6, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 23, 23, 22, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 7, 23, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 39, 38, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 55, 54, 54, 51, 51, 53, 35, 34, 38, 39, 38, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 51, 50, 22, 4, 26, 43, 66, 135, 94, 128, 201, 69, 69, 73, 47, 45, 29, 76, 46, 71, 114, 40, 49, 51, 67, 66, 65, 192, 125, 62, 33, 48, 14, 12, 11, 10, 11, 10, 32, 23, 135, 39, 80, 33, 32, 42, 44, 39, 39, 105, 61, 99, 65, 112, 41, 41, 46, 20, 20, 18, 56, 37, 45, 118, 74, 143, 149, 46, 75, 30, 27, 42, 16, 35, 29, 29, 34, 34, 111, 81, 58, 93, 4, 186, 217, 24, 25, 52, 49, 49, 141, 89, 59, 96, 37, 23, 39, 15, 21, 62, 40, 49, 129, 78, 112, 145, 48, 48, 64, 31, 16, 8, 23, 15, 12, 25, 15, 20, 41, 22, 20, 43, 24, 109, 27, 79, 45, 45, 95, 43, 67, 85, 28, 27, 33, 14, 22, 15, 33, 29, 28, 80, 54, 42, 71, 29, 26, 41, 14, 17, 18, 230, 7, 6, 6, 16, 10, 21, 57, 34, 31, 54, 20, 19, 22, 19, 0, 1, 0, 100, 255, 237, 4, 249, 4, 58, 0, 29, 0, 0, 65, 53, 33, 21, 51, 17, 33, 17, 51, 17, 20, 22, 23, 22, 22, 51, 50, 54, 55, 39, 6, 6, 35, 34, 38, 39, 38, 38, 53, 17, 4, 174, 251, 182, 134, 1, 22, 254, 36, 36, 36, 110, 74, 50, 103, 62, 45, 20, 40, 31, 24, 35, 11, 12, 11, 3, 100, 214, 214, 252, 156, 3, 100, 253, 206, 91, 124, 38, 39, 33, 20, 39, 190, 10, 13, 7, 12, 11, 46, 39, 2, 34, 0, 2, 0, 133, 254, 96, 4, 95, 4, 78, 0, 27, 0, 53, 0, 0, 65, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 17, 33, 17, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 37, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 4, 95, 61, 60, 60, 179, 118, 116, 187, 66, 67, 72, 1, 22, 19, 43, 25, 41, 102, 60, 102, 156, 53, 53, 54, 254, 234, 23, 25, 26, 82, 59, 46, 73, 28, 21, 34, 13, 25, 27, 26, 82, 58, 58, 81, 26, 25, 22, 1, 255, 21, 125, 209, 76, 76, 84, 77, 69, 69, 194, 117, 252, 32, 2, 12, 23, 39, 15, 25, 27, 79, 71, 70, 195, 138, 21, 66, 113, 41, 42, 47, 19, 17, 13, 36, 22, 245, 64, 117, 45, 44, 53, 55, 47, 47, 125, 0, 1, 0, 86, 254, 85, 4, 60, 4, 78, 0, 63, 0, 0, 65, 34, 6, 7, 6, 6, 21, 21, 20, 22, 23, 22, 22, 23, 22, 22, 23, 22, 22, 21, 22, 6, 7, 6, 6, 7, 23, 54, 54, 55, 54, 54, 53, 38, 38, 39, 38, 38, 39, 38, 38, 39, 38, 38, 53, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 33, 52, 38, 39, 38, 38, 2, 91, 126, 194, 65, 65, 67, 65, 67, 59, 175, 116, 33, 96, 34, 18, 18, 1, 33, 24, 24, 56, 22, 122, 59, 111, 44, 43, 53, 2, 51, 50, 51, 152, 103, 63, 94, 32, 41, 37, 24, 28, 28, 91, 67, 56, 83, 27, 27, 26, 1, 6, 70, 64, 64, 177, 4, 78, 86, 74, 74, 199, 114, 30, 114, 180, 65, 59, 79, 22, 7, 14, 22, 12, 32, 20, 30, 56, 23, 23, 34, 7, 153, 25, 71, 46, 45, 111, 66, 67, 93, 32, 31, 41, 16, 7, 39, 31, 39, 117, 75, 30, 62, 116, 45, 45, 54, 31, 26, 26, 72, 40, 99, 156, 54, 54, 57, 0, 0, 2, 0, 79, 255, 235, 4, 134, 4, 58, 0, 28, 0, 54, 0, 0, 65, 53, 33, 34, 6, 7, 6, 6, 21, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 53, 52, 38, 39, 38, 38, 39, 1, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 4, 134, 253, 195, 121, 189, 64, 65, 67, 67, 65, 65, 189, 122, 118, 184, 63, 63, 65, 26, 23, 24, 65, 38, 253, 222, 25, 27, 27, 87, 62, 60, 82, 26, 25, 23, 23, 26, 26, 82, 58, 63, 88, 27, 27, 24, 3, 88, 226, 81, 71, 71, 194, 114, 21, 119, 201, 74, 74, 83, 80, 69, 69, 186, 106, 21, 52, 98, 44, 44, 77, 31, 254, 186, 21, 62, 111, 42, 41, 49, 49, 41, 42, 111, 62, 21, 68, 119, 44, 45, 52, 52, 45, 44, 119, 0, 1, 0, 65, 255, 235, 4, 10, 4, 58, 0, 28, 0, 0, 65, 53, 33, 21, 33, 17, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 39, 6, 6, 35, 34, 38, 39, 38, 38, 53, 17, 4, 10, 252, 55, 1, 94, 50, 48, 48, 138, 88, 34, 61, 30, 30, 60, 32, 32, 35, 71, 51, 33, 55, 20, 21, 23, 3, 83, 231, 231, 254, 44, 111, 154, 48, 48, 43, 5, 6, 6, 21, 17, 209, 15, 23, 10, 18, 17, 70, 60, 1, 215, 0, 0, 1, 0, 126, 255, 235, 4, 84, 4, 58, 0, 36, 0, 0, 65, 33, 17, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 33, 22, 18, 23, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 1, 148, 254, 234, 68, 64, 64, 183, 114, 135, 187, 58, 57, 52, 18, 16, 16, 41, 23, 254, 243, 45, 58, 2, 24, 26, 27, 84, 60, 45, 75, 27, 27, 31, 4, 58, 253, 145, 125, 182, 58, 59, 56, 92, 80, 79, 214, 122, 82, 148, 65, 64, 111, 46, 125, 254, 255, 134, 66, 131, 51, 52, 64, 26, 30, 30, 97, 72, 0, 0, 2, 0, 77, 254, 34, 4, 205, 4, 70, 0, 46, 0, 65, 0, 0, 69, 17, 33, 17, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 17, 38, 38, 39, 38, 38, 53, 54, 54, 55, 54, 54, 55, 39, 6, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 37, 17, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 20, 6, 7, 6, 6, 1, 254, 1, 23, 122, 168, 52, 52, 46, 49, 51, 52, 158, 109, 63, 110, 40, 41, 46, 44, 59, 18, 18, 16, 1, 18, 17, 17, 50, 35, 188, 51, 84, 30, 30, 33, 45, 51, 51, 166, 1, 143, 7, 8, 6, 18, 12, 26, 40, 14, 14, 15, 1, 16, 19, 19, 62, 9, 254, 43, 1, 211, 20, 108, 77, 76, 187, 99, 99, 193, 76, 76, 94, 43, 38, 39, 107, 65, 253, 197, 21, 68, 44, 44, 105, 58, 47, 99, 48, 48, 90, 39, 152, 41, 111, 67, 67, 153, 84, 102, 191, 78, 78, 110, 215, 2, 67, 15, 25, 9, 7, 8, 48, 42, 42, 115, 67, 54, 101, 43, 44, 67, 0, 1, 0, 69, 254, 34, 4, 220, 4, 58, 0, 39, 0, 0, 65, 33, 17, 38, 38, 39, 38, 38, 53, 17, 33, 17, 20, 22, 23, 22, 22, 23, 17, 33, 17, 54, 54, 55, 54, 54, 53, 52, 38, 39, 33, 22, 22, 23, 20, 6, 7, 6, 6, 7, 3, 16, 254, 234, 35, 58, 20, 21, 23, 254, 232, 61, 57, 56, 162, 101, 1, 22, 128, 176, 54, 54, 48, 53, 35, 254, 251, 29, 41, 1, 19, 21, 22, 70, 50, 4, 58, 252, 172, 17, 58, 44, 43, 118, 77, 1, 239, 254, 20, 138, 208, 73, 74, 88, 18, 254, 43, 1, 211, 19, 112, 82, 81, 200, 108, 158, 244, 89, 118, 246, 127, 63, 114, 47, 48, 71, 21, 0, 0, 1, 0, 46, 255, 236, 4, 171, 4, 58, 0, 82, 0, 0, 65, 33, 6, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 33, 22, 18, 23, 20, 6, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 38, 38, 53, 17, 33, 17, 20, 6, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 54, 18, 1, 166, 254, 243, 21, 39, 14, 15, 18, 33, 39, 39, 127, 94, 48, 83, 34, 23, 38, 16, 16, 39, 22, 34, 84, 49, 93, 127, 39, 19, 26, 9, 9, 9, 17, 14, 15, 39, 22, 254, 244, 43, 53, 2, 2, 2, 2, 4, 3, 8, 25, 19, 10, 18, 8, 13, 19, 9, 4, 5, 254, 220, 14, 12, 6, 13, 7, 8, 17, 10, 18, 25, 7, 7, 6, 2, 51, 4, 58, 46, 111, 64, 65, 148, 82, 122, 214, 79, 80, 91, 34, 33, 22, 60, 36, 36, 59, 22, 34, 34, 91, 80, 38, 88, 49, 55, 121, 64, 82, 148, 65, 64, 111, 46, 125, 254, 255, 134, 41, 80, 36, 26, 48, 21, 50, 61, 8, 9, 15, 57, 45, 30, 76, 46, 1, 89, 254, 167, 79, 109, 34, 16, 23, 8, 9, 8, 61, 51, 50, 131, 70, 134, 1, 1, 0, 0, 2, 0, 148, 255, 236, 4, 207, 5, 196, 0, 55, 0, 75, 0, 0, 65, 39, 6, 6, 7, 17, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 21, 20, 22, 23, 22, 22, 23, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 17, 5, 17, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 53, 54, 54, 1, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 17, 38, 38, 39, 38, 38, 4, 207, 9, 24, 54, 29, 51, 47, 48, 135, 85, 83, 139, 50, 51, 56, 67, 61, 60, 167, 100, 32, 31, 23, 60, 37, 54, 84, 29, 30, 31, 254, 246, 69, 63, 63, 178, 108, 109, 180, 64, 63, 70, 32, 58, 253, 197, 13, 12, 13, 40, 24, 19, 30, 10, 15, 15, 38, 62, 23, 33, 35, 2, 70, 233, 6, 10, 5, 1, 12, 98, 154, 53, 53, 56, 54, 51, 51, 146, 92, 22, 97, 168, 66, 66, 91, 20, 97, 66, 100, 31, 22, 24, 36, 33, 32, 89, 53, 1, 1, 1, 255, 0, 103, 174, 63, 64, 71, 67, 62, 62, 175, 109, 98, 6, 15, 1, 241, 24, 33, 49, 16, 18, 18, 11, 12, 16, 59, 43, 254, 230, 13, 40, 25, 37, 96, 0, 1, 0, 66, 0, 0, 5, 1, 5, 200, 0, 46, 0, 0, 65, 3, 7, 39, 3, 38, 38, 39, 38, 38, 35, 34, 6, 7, 23, 54, 54, 51, 50, 22, 23, 22, 22, 23, 1, 17, 33, 17, 1, 54, 54, 55, 54, 54, 51, 50, 22, 23, 55, 38, 38, 35, 34, 6, 7, 6, 6, 3, 68, 150, 14, 13, 152, 28, 67, 39, 40, 90, 51, 35, 65, 26, 23, 3, 31, 12, 17, 32, 13, 14, 23, 8, 1, 33, 1, 23, 1, 38, 6, 17, 10, 15, 37, 21, 13, 31, 4, 23, 27, 66, 34, 56, 98, 42, 35, 62, 4, 174, 254, 109, 63, 64, 1, 152, 76, 105, 33, 33, 29, 11, 12, 220, 2, 3, 9, 9, 8, 26, 17, 253, 94, 254, 13, 1, 231, 2, 174, 14, 22, 8, 12, 13, 3, 2, 219, 12, 12, 38, 40, 34, 102, 0, 0, 2, 255, 255, 255, 236, 4, 255, 4, 58, 0, 43, 0, 89, 0, 0, 65, 53, 33, 21, 51, 6, 6, 21, 20, 22, 23, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 3, 20, 6, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 38, 38, 53, 53, 33, 21, 20, 6, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 38, 38, 53, 54, 54, 55, 33, 22, 22, 4, 255, 251, 0, 108, 29, 37, 6, 7, 8, 30, 22, 39, 129, 95, 53, 91, 37, 21, 38, 15, 13, 33, 19, 38, 97, 57, 94, 129, 39, 19, 28, 8, 10, 8, 11, 9, 9, 24, 14, 210, 2, 2, 1, 5, 4, 8, 27, 20, 20, 36, 13, 7, 12, 3, 4, 4, 254, 220, 3, 3, 4, 12, 7, 14, 36, 21, 20, 27, 8, 4, 5, 1, 2, 2, 2, 37, 32, 1, 231, 31, 37, 3, 113, 201, 201, 98, 229, 128, 43, 80, 37, 46, 82, 33, 59, 66, 39, 38, 22, 59, 35, 31, 53, 21, 44, 44, 66, 59, 29, 69, 40, 41, 92, 50, 67, 129, 59, 53, 101, 46, 254, 57, 24, 48, 21, 17, 32, 13, 31, 37, 30, 34, 18, 45, 29, 26, 66, 38, 206, 206, 34, 58, 25, 33, 53, 19, 34, 30, 37, 31, 14, 31, 18, 21, 47, 24, 112, 231, 112, 112, 231, 0, 1, 0, 31, 255, 240, 4, 154, 5, 176, 0, 39, 0, 0, 65, 53, 33, 21, 33, 17, 33, 17, 54, 54, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 23, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 17, 4, 72, 251, 215, 1, 47, 1, 25, 12, 26, 20, 53, 82, 27, 31, 31, 8, 18, 18, 72, 64, 1, 130, 176, 54, 54, 46, 71, 64, 65, 181, 111, 23, 34, 14, 4, 204, 228, 228, 251, 52, 2, 108, 2, 2, 28, 26, 29, 88, 58, 31, 70, 29, 30, 39, 212, 73, 60, 60, 152, 80, 113, 168, 55, 55, 54, 3, 2, 1, 123, 0, 1, 0, 95, 255, 236, 4, 132, 5, 198, 0, 55, 0, 0, 65, 33, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 53, 33, 53, 33, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 33, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 17, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 4, 131, 254, 231, 4, 35, 29, 31, 90, 57, 61, 94, 32, 33, 33, 1, 216, 254, 40, 47, 44, 28, 75, 45, 66, 95, 32, 31, 33, 5, 1, 24, 10, 77, 68, 68, 193, 126, 116, 192, 68, 68, 75, 73, 69, 69, 197, 125, 116, 188, 68, 68, 80, 1, 200, 66, 95, 30, 31, 30, 43, 47, 46, 145, 101, 31, 227, 27, 115, 160, 45, 29, 30, 32, 32, 33, 99, 66, 115, 182, 63, 63, 67, 86, 79, 79, 226, 139, 254, 229, 140, 224, 78, 79, 85, 67, 62, 62, 176, 0, 0, 2, 0, 38, 0, 0, 4, 153, 5, 176, 0, 46, 0, 61, 0, 0, 65, 33, 17, 20, 6, 7, 6, 6, 7, 6, 6, 7, 6, 6, 35, 35, 21, 51, 50, 54, 55, 54, 54, 55, 54, 54, 55, 54, 54, 53, 17, 51, 17, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 35, 21, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 35, 3, 11, 253, 164, 3, 4, 3, 12, 8, 9, 21, 13, 10, 22, 12, 20, 25, 54, 91, 37, 31, 52, 20, 23, 30, 8, 4, 4, 136, 241, 88, 142, 50, 50, 53, 53, 50, 50, 142, 88, 15, 15, 37, 57, 19, 19, 19, 17, 17, 17, 55, 37, 23, 5, 176, 252, 146, 45, 79, 33, 36, 59, 22, 23, 32, 10, 6, 7, 226, 24, 24, 21, 61, 40, 46, 121, 74, 38, 84, 45, 2, 138, 251, 52, 71, 63, 63, 174, 104, 102, 174, 63, 63, 71, 226, 41, 34, 35, 88, 47, 49, 91, 34, 35, 42, 0, 0, 2, 0, 91, 0, 0, 4, 133, 5, 176, 0, 24, 0, 39, 0, 0, 115, 33, 17, 51, 17, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 35, 17, 35, 17, 35, 17, 33, 1, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 35, 91, 1, 1, 173, 248, 90, 143, 51, 50, 54, 54, 50, 51, 143, 90, 7, 241, 173, 254, 255, 2, 159, 7, 39, 58, 20, 19, 19, 17, 18, 18, 55, 39, 15, 2, 102, 253, 154, 70, 63, 62, 173, 102, 102, 171, 63, 62, 70, 2, 6, 253, 152, 2, 104, 253, 24, 40, 33, 34, 87, 46, 48, 88, 34, 34, 40, 0, 1, 0, 39, 0, 0, 4, 76, 5, 176, 0, 29, 0, 0, 65, 53, 33, 21, 33, 17, 33, 17, 50, 22, 51, 22, 22, 23, 22, 22, 21, 17, 33, 17, 52, 38, 39, 38, 38, 39, 38, 34, 35, 17, 4, 41, 251, 254, 1, 41, 1, 25, 6, 13, 6, 45, 67, 22, 21, 22, 1, 25, 70, 63, 60, 163, 98, 7, 15, 7, 4, 204, 228, 228, 251, 52, 2, 140, 1, 3, 25, 24, 23, 73, 51, 254, 60, 1, 196, 108, 159, 53, 48, 53, 4, 1, 1, 94, 0, 1, 0, 109, 254, 152, 4, 59, 5, 176, 0, 11, 0, 0, 83, 17, 33, 17, 33, 17, 33, 17, 33, 17, 33, 17, 109, 1, 99, 1, 27, 1, 80, 254, 230, 254, 100, 5, 176, 250, 80, 254, 152, 1, 104, 5, 176, 251, 50, 4, 206, 0, 0, 2, 0, 131, 0, 0, 4, 93, 5, 176, 0, 18, 0, 33, 0, 0, 65, 53, 33, 17, 33, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 35, 17, 17, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 35, 4, 50, 252, 81, 1, 190, 126, 201, 70, 69, 74, 74, 69, 70, 201, 126, 164, 164, 66, 97, 33, 32, 31, 31, 32, 33, 97, 66, 164, 4, 204, 228, 250, 80, 68, 61, 61, 171, 104, 102, 168, 59, 59, 65, 1, 54, 253, 232, 35, 30, 31, 82, 47, 49, 88, 33, 33, 38, 0, 2, 0, 45, 254, 154, 4, 135, 5, 176, 0, 20, 0, 33, 0, 0, 65, 19, 35, 17, 33, 3, 6, 6, 7, 6, 6, 7, 6, 6, 7, 35, 19, 51, 17, 33, 17, 1, 19, 51, 17, 33, 54, 54, 55, 54, 54, 55, 54, 54, 4, 95, 40, 107, 253, 49, 40, 2, 5, 4, 8, 22, 16, 23, 68, 46, 54, 44, 237, 2, 39, 254, 210, 24, 173, 254, 197, 24, 40, 15, 8, 14, 5, 4, 6, 254, 154, 2, 72, 4, 206, 253, 172, 51, 92, 41, 85, 132, 49, 74, 86, 24, 253, 184, 1, 102, 254, 154, 4, 194, 1, 112, 252, 22, 49, 123, 78, 43, 98, 54, 43, 94, 0, 1, 255, 248, 0, 0, 4, 195, 5, 176, 0, 21, 0, 0, 65, 19, 33, 3, 19, 33, 3, 35, 17, 35, 17, 35, 3, 33, 19, 3, 33, 19, 51, 17, 51, 17, 3, 17, 136, 1, 42, 242, 219, 254, 218, 127, 42, 246, 45, 134, 254, 218, 224, 246, 1, 40, 143, 56, 246, 2, 75, 253, 181, 3, 6, 2, 170, 253, 153, 2, 103, 253, 153, 2, 103, 253, 86, 252, 250, 2, 75, 253, 181, 2, 75, 0, 0, 1, 0, 78, 255, 236, 4, 148, 5, 196, 0, 82, 0, 0, 83, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 33, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 7, 6, 6, 35, 35, 21, 51, 50, 22, 23, 22, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 78, 95, 77, 76, 192, 98, 121, 205, 74, 73, 83, 48, 46, 29, 78, 47, 53, 84, 29, 29, 31, 76, 69, 70, 198, 121, 105, 187, 71, 71, 83, 1, 25, 37, 32, 31, 86, 50, 65, 95, 31, 31, 30, 14, 14, 17, 69, 48, 16, 38, 20, 196, 196, 19, 36, 16, 47, 71, 24, 22, 23, 36, 35, 35, 102, 66, 57, 94, 34, 34, 37, 1, 148, 112, 160, 51, 52, 49, 57, 55, 54, 160, 102, 78, 124, 46, 30, 46, 16, 24, 66, 41, 40, 92, 50, 102, 155, 53, 52, 53, 57, 53, 53, 152, 96, 42, 68, 24, 24, 26, 31, 26, 26, 71, 39, 33, 57, 24, 30, 45, 9, 3, 3, 220, 2, 2, 7, 33, 27, 27, 75, 48, 44, 75, 28, 28, 31, 31, 27, 27, 72, 42, 0, 0, 1, 0, 111, 0, 0, 4, 63, 5, 176, 0, 9, 0, 0, 65, 1, 17, 33, 17, 33, 1, 17, 33, 17, 3, 37, 254, 99, 254, 231, 1, 25, 1, 157, 1, 26, 5, 176, 252, 94, 3, 162, 250, 80, 3, 161, 252, 95, 5, 176, 0, 1, 0, 39, 0, 0, 4, 79, 5, 176, 0, 30, 0, 0, 65, 33, 3, 6, 6, 7, 6, 6, 7, 6, 6, 35, 35, 21, 51, 50, 54, 55, 54, 54, 55, 54, 54, 55, 54, 54, 55, 19, 33, 17, 33, 4, 79, 252, 161, 6, 1, 2, 2, 3, 12, 10, 17, 66, 49, 33, 70, 100, 150, 50, 24, 37, 13, 8, 12, 4, 3, 4, 1, 5, 1, 45, 1, 26, 5, 176, 253, 6, 47, 83, 36, 64, 96, 34, 54, 54, 226, 74, 83, 39, 100, 61, 37, 82, 46, 39, 86, 47, 2, 22, 251, 52, 0, 1, 0, 2, 255, 235, 4, 213, 5, 176, 0, 27, 0, 0, 119, 22, 22, 51, 50, 54, 55, 54, 54, 55, 1, 33, 1, 7, 39, 3, 33, 1, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 95, 34, 109, 71, 88, 130, 49, 48, 69, 26, 2, 6, 254, 206, 254, 238, 30, 91, 230, 254, 208, 1, 252, 28, 11, 35, 26, 26, 72, 48, 38, 87, 26, 11, 9, 23, 48, 41, 41, 108, 59, 4, 156, 253, 76, 77, 254, 2, 3, 251, 230, 62, 32, 51, 18, 18, 20, 18, 8, 0, 0, 1, 0, 109, 254, 161, 4, 233, 5, 176, 0, 11, 0, 0, 83, 17, 33, 17, 33, 19, 35, 17, 33, 17, 33, 17, 109, 3, 100, 1, 4, 20, 189, 254, 230, 254, 115, 5, 176, 250, 80, 254, 161, 2, 64, 4, 207, 251, 50, 4, 206, 0, 0, 1, 0, 157, 0, 0, 4, 95, 5, 176, 0, 25, 0, 0, 65, 33, 17, 6, 6, 35, 34, 38, 39, 38, 38, 53, 17, 33, 17, 20, 22, 23, 22, 22, 51, 50, 54, 55, 17, 33, 4, 95, 254, 230, 53, 115, 39, 49, 72, 24, 24, 23, 254, 231, 67, 62, 61, 175, 108, 37, 117, 53, 1, 26, 5, 176, 253, 93, 14, 13, 23, 29, 28, 96, 73, 1, 197, 254, 59, 125, 181, 58, 58, 55, 15, 14, 253, 213, 0, 1, 0, 81, 0, 0, 4, 147, 5, 176, 0, 11, 0, 0, 65, 33, 17, 33, 17, 33, 17, 35, 17, 33, 17, 35, 1, 99, 254, 238, 4, 66, 254, 239, 138, 254, 247, 140, 5, 176, 250, 80, 5, 176, 251, 50, 4, 206, 251, 50, 0, 1, 0, 81, 254, 162, 5, 20, 5, 176, 0, 15, 0, 0, 65, 33, 17, 33, 17, 33, 19, 35, 17, 33, 17, 35, 17, 33, 17, 35, 1, 99, 254, 238, 3, 174, 1, 1, 20, 129, 254, 239, 138, 254, 247, 140, 5, 176, 250, 80, 254, 162, 2, 61, 4, 209, 251, 50, 4, 206, 251, 50, 0, 2, 0, 51, 0, 0, 4, 136, 5, 176, 0, 18, 0, 33, 0, 0, 83, 21, 51, 17, 33, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 35, 17, 17, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 35, 51, 251, 1, 114, 118, 182, 62, 62, 64, 64, 62, 62, 182, 118, 89, 89, 56, 79, 25, 24, 23, 23, 24, 25, 79, 56, 89, 5, 176, 217, 251, 41, 64, 58, 58, 161, 96, 97, 160, 58, 57, 63, 2, 72, 252, 215, 32, 28, 28, 76, 44, 46, 78, 29, 29, 33, 0, 3, 0, 74, 0, 0, 4, 128, 5, 176, 0, 16, 0, 20, 0, 35, 0, 0, 65, 17, 33, 17, 33, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 1, 17, 33, 17, 1, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 35, 1, 99, 254, 231, 1, 55, 99, 152, 52, 52, 53, 49, 47, 48, 140, 91, 2, 222, 254, 231, 253, 252, 46, 31, 42, 14, 13, 12, 12, 13, 14, 43, 30, 46, 3, 96, 2, 80, 250, 80, 64, 58, 58, 161, 96, 97, 157, 56, 56, 61, 252, 160, 5, 176, 250, 80, 2, 135, 32, 28, 28, 76, 44, 46, 81, 30, 31, 35, 0, 2, 0, 131, 0, 0, 4, 93, 5, 176, 0, 16, 0, 31, 0, 0, 65, 17, 33, 17, 33, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 7, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 35, 1, 157, 254, 230, 1, 190, 126, 201, 70, 69, 74, 74, 69, 70, 201, 126, 164, 164, 66, 97, 33, 32, 31, 31, 32, 33, 97, 66, 164, 3, 150, 2, 26, 250, 80, 68, 61, 61, 171, 104, 102, 168, 59, 59, 65, 226, 35, 30, 31, 82, 47, 49, 88, 33, 33, 38, 0, 1, 0, 32, 255, 236, 4, 62, 5, 198, 0, 55, 0, 0, 65, 33, 6, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 17, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 33, 38, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 21, 33, 21, 33, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 1, 60, 254, 231, 3, 74, 69, 68, 189, 111, 125, 201, 71, 70, 76, 78, 70, 70, 195, 117, 120, 193, 68, 68, 73, 1, 25, 5, 28, 31, 31, 95, 61, 57, 93, 33, 32, 35, 254, 129, 1, 127, 37, 34, 34, 98, 60, 51, 87, 31, 32, 32, 1, 228, 119, 187, 65, 65, 68, 82, 77, 76, 221, 140, 1, 47, 139, 223, 77, 77, 83, 81, 70, 70, 186, 105, 67, 106, 37, 36, 38, 44, 45, 46, 140, 96, 39, 227, 39, 101, 140, 44, 45, 40, 38, 36, 36, 104, 0, 2, 0, 84, 255, 235, 4, 109, 5, 197, 0, 33, 0, 59, 0, 0, 65, 17, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 21, 35, 17, 35, 17, 51, 17, 51, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 1, 17, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 17, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 4, 109, 69, 66, 44, 116, 71, 73, 116, 43, 55, 58, 89, 249, 249, 89, 44, 44, 43, 130, 84, 82, 130, 46, 53, 55, 254, 255, 10, 12, 13, 42, 32, 27, 37, 11, 12, 10, 10, 12, 11, 37, 27, 32, 42, 13, 12, 10, 1, 251, 1, 186, 158, 223, 63, 42, 42, 49, 49, 65, 216, 149, 128, 2, 123, 250, 80, 2, 92, 97, 131, 199, 65, 66, 67, 57, 56, 65, 209, 2, 105, 254, 3, 76, 104, 32, 32, 28, 28, 32, 32, 104, 76, 1, 253, 75, 103, 32, 32, 28, 28, 32, 32, 103, 0, 2, 255, 217, 0, 0, 4, 19, 5, 176, 0, 19, 0, 34, 0, 0, 97, 33, 17, 33, 34, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 23, 1, 33, 1, 51, 1, 52, 54, 55, 54, 54, 51, 51, 17, 35, 34, 38, 39, 38, 38, 2, 249, 1, 26, 254, 42, 123, 198, 69, 70, 74, 53, 51, 27, 67, 39, 254, 197, 1, 45, 1, 18, 225, 254, 71, 28, 29, 31, 98, 67, 188, 188, 66, 97, 32, 29, 29, 5, 176, 55, 54, 54, 160, 105, 86, 138, 53, 27, 47, 19, 253, 110, 2, 61, 1, 182, 50, 79, 28, 29, 31, 254, 72, 29, 29, 28, 82, 0, 2, 0, 115, 255, 235, 4, 105, 6, 21, 0, 53, 0, 79, 0, 0, 65, 34, 6, 7, 6, 6, 7, 54, 54, 55, 54, 54, 55, 54, 54, 55, 54, 54, 53, 35, 20, 6, 7, 6, 6, 7, 6, 6, 7, 6, 6, 7, 6, 6, 21, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 53, 52, 38, 39, 38, 38, 7, 50, 22, 23, 22, 22, 21, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 53, 52, 54, 55, 54, 54, 2, 163, 52, 95, 42, 38, 70, 32, 14, 54, 39, 39, 101, 61, 102, 144, 47, 46, 43, 225, 24, 25, 26, 78, 54, 111, 180, 63, 34, 51, 17, 16, 17, 67, 65, 65, 189, 122, 121, 189, 65, 64, 67, 60, 58, 58, 169, 163, 63, 88, 27, 27, 25, 25, 27, 27, 87, 62, 63, 88, 27, 27, 24, 24, 27, 27, 87, 3, 254, 20, 19, 17, 49, 32, 74, 108, 38, 38, 47, 13, 20, 54, 41, 40, 116, 83, 30, 42, 15, 15, 22, 11, 24, 118, 100, 52, 130, 77, 70, 163, 93, 61, 120, 203, 74, 74, 84, 78, 69, 69, 190, 112, 21, 108, 184, 68, 67, 77, 225, 45, 38, 39, 101, 56, 21, 61, 108, 40, 40, 46, 46, 40, 40, 108, 61, 21, 56, 101, 39, 38, 45, 0, 0, 3, 0, 138, 0, 0, 4, 72, 4, 58, 0, 27, 0, 42, 0, 57, 0, 0, 115, 33, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 39, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 33, 1, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 35, 17, 53, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 7, 138, 2, 7, 105, 163, 56, 56, 59, 30, 30, 30, 86, 57, 12, 41, 65, 23, 31, 32, 63, 59, 60, 169, 105, 254, 63, 1, 22, 241, 45, 63, 19, 18, 16, 18, 20, 19, 62, 42, 241, 171, 49, 71, 21, 19, 18, 19, 20, 20, 62, 42, 39, 39, 38, 116, 77, 43, 78, 32, 30, 47, 13, 2, 14, 39, 23, 31, 76, 43, 76, 114, 38, 37, 37, 253, 137, 18, 17, 15, 41, 25, 28, 42, 15, 14, 15, 1, 163, 219, 16, 16, 14, 41, 28, 25, 38, 13, 13, 14, 1, 0, 1, 0, 143, 0, 0, 4, 50, 4, 58, 0, 5, 0, 0, 65, 53, 33, 17, 33, 17, 4, 50, 252, 93, 1, 21, 3, 88, 226, 251, 198, 3, 88, 0, 0, 2, 0, 33, 254, 188, 4, 224, 4, 58, 0, 17, 0, 27, 0, 0, 119, 35, 19, 33, 17, 33, 17, 33, 19, 35, 17, 33, 3, 6, 6, 7, 6, 6, 1, 55, 51, 17, 33, 54, 54, 55, 54, 54, 145, 112, 21, 1, 7, 2, 141, 1, 2, 20, 154, 252, 238, 6, 2, 7, 15, 15, 61, 1, 122, 2, 234, 254, 195, 15, 22, 9, 14, 16, 224, 253, 220, 1, 68, 254, 188, 2, 35, 3, 91, 254, 146, 92, 166, 66, 66, 89, 1, 223, 133, 253, 142, 36, 80, 44, 72, 167, 0, 1, 0, 34, 0, 0, 4, 164, 4, 58, 0, 21, 0, 0, 65, 19, 33, 3, 19, 33, 3, 35, 17, 35, 17, 35, 3, 33, 19, 3, 33, 19, 51, 17, 51, 17, 3, 13, 126, 1, 25, 227, 215, 254, 231, 124, 43, 241, 41, 124, 254, 232, 217, 225, 1, 20, 125, 52, 241, 1, 153, 254, 103, 2, 69, 1, 245, 254, 103, 1, 153, 254, 103, 1, 153, 254, 5, 253, 193, 1, 153, 254, 103, 1, 153, 0, 0, 1, 0, 114, 255, 236, 4, 94, 4, 77, 0, 82, 0, 0, 83, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 33, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 7, 6, 6, 35, 35, 21, 51, 50, 22, 23, 22, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 114, 86, 70, 69, 177, 91, 111, 187, 68, 68, 77, 39, 37, 26, 67, 41, 34, 58, 22, 37, 40, 71, 64, 65, 182, 110, 98, 174, 64, 65, 75, 1, 21, 32, 29, 28, 77, 45, 54, 77, 25, 24, 22, 18, 19, 14, 40, 26, 18, 42, 24, 204, 204, 26, 47, 20, 33, 49, 16, 14, 15, 27, 27, 28, 83, 55, 54, 86, 29, 29, 31, 1, 64, 89, 128, 41, 42, 40, 44, 42, 42, 121, 77, 55, 90, 34, 23, 36, 13, 14, 35, 20, 33, 82, 45, 77, 118, 40, 39, 41, 45, 42, 43, 123, 77, 28, 44, 16, 15, 16, 22, 17, 18, 45, 23, 23, 40, 16, 11, 17, 6, 3, 4, 185, 4, 3, 6, 23, 17, 15, 42, 26, 26, 48, 19, 19, 23, 22, 18, 18, 47, 26, 0, 0, 1, 0, 121, 0, 0, 4, 60, 4, 58, 0, 9, 0, 0, 65, 1, 17, 33, 17, 33, 1, 17, 33, 17, 3, 38, 254, 105, 254, 234, 1, 22, 1, 151, 1, 22, 4, 58, 253, 78, 2, 178, 251, 198, 2, 178, 253, 78, 4, 58, 0, 1, 0, 133, 0, 0, 4, 204, 4, 58, 0, 12, 0, 0, 65, 1, 33, 1, 1, 33, 1, 35, 17, 33, 17, 33, 17, 2, 62, 1, 30, 1, 112, 254, 83, 1, 141, 254, 162, 254, 221, 144, 254, 234, 1, 22, 1, 149, 254, 107, 2, 49, 2, 9, 254, 98, 1, 158, 251, 198, 1, 149, 0, 1, 0, 34, 0, 0, 4, 59, 4, 58, 0, 27, 0, 0, 65, 33, 17, 20, 6, 7, 6, 6, 7, 6, 6, 35, 35, 23, 51, 50, 54, 55, 54, 54, 55, 54, 54, 53, 53, 33, 17, 33, 4, 59, 252, 172, 1, 3, 3, 12, 9, 18, 65, 53, 33, 2, 49, 120, 163, 50, 31, 40, 10, 6, 5, 1, 38, 1, 23, 4, 58, 254, 51, 48, 83, 35, 43, 68, 26, 47, 42, 229, 78, 78, 50, 130, 79, 46, 104, 56, 235, 252, 168, 0, 0, 1, 0, 113, 0, 0, 4, 85, 4, 58, 0, 12, 0, 0, 65, 3, 33, 17, 51, 17, 19, 51, 19, 17, 51, 17, 33, 2, 97, 150, 254, 166, 246, 156, 187, 161, 246, 254, 164, 1, 75, 2, 239, 251, 198, 2, 76, 253, 180, 2, 91, 253, 165, 4, 58, 0, 0, 1, 0, 121, 0, 0, 4, 59, 4, 58, 0, 11, 0, 0, 97, 17, 33, 17, 33, 17, 33, 17, 33, 17, 33, 17, 4, 59, 254, 233, 254, 108, 254, 233, 1, 23, 1, 148, 4, 58, 254, 74, 1, 182, 251, 198, 1, 164, 254, 92, 0, 1, 0, 121, 0, 0, 4, 60, 4, 58, 0, 7, 0, 0, 97, 17, 33, 17, 33, 17, 33, 17, 4, 60, 252, 61, 1, 23, 1, 149, 4, 58, 251, 198, 3, 88, 252, 168, 0, 1, 0, 93, 0, 0, 4, 178, 4, 58, 0, 7, 0, 0, 65, 53, 33, 21, 33, 17, 33, 17, 4, 178, 251, 171, 1, 157, 1, 23, 3, 91, 223, 223, 252, 165, 3, 91, 0, 3, 0, 55, 254, 96, 4, 149, 6, 0, 0, 31, 0, 45, 0, 59, 0, 0, 83, 21, 20, 22, 23, 22, 22, 23, 17, 33, 17, 54, 54, 55, 54, 54, 53, 53, 52, 38, 39, 38, 38, 39, 17, 33, 17, 6, 6, 7, 6, 6, 5, 53, 52, 54, 55, 54, 54, 55, 17, 38, 38, 39, 38, 38, 37, 21, 20, 6, 7, 6, 6, 7, 17, 22, 22, 23, 22, 22, 55, 55, 54, 53, 155, 100, 1, 25, 100, 157, 54, 53, 56, 56, 53, 54, 156, 101, 254, 231, 100, 155, 53, 54, 55, 1, 9, 18, 19, 18, 57, 40, 40, 58, 18, 19, 17, 2, 76, 18, 19, 20, 59, 40, 40, 59, 20, 19, 18, 2, 39, 21, 101, 177, 70, 70, 97, 21, 254, 102, 1, 153, 20, 97, 71, 70, 178, 101, 21, 101, 178, 71, 70, 97, 20, 1, 192, 254, 64, 21, 97, 70, 71, 178, 121, 21, 48, 89, 39, 38, 61, 20, 253, 155, 20, 61, 39, 39, 90, 69, 21, 49, 91, 39, 39, 62, 19, 2, 104, 20, 61, 39, 39, 89, 0, 1, 0, 121, 254, 191, 4, 188, 4, 58, 0, 11, 0, 0, 83, 17, 33, 17, 33, 19, 35, 17, 33, 17, 33, 17, 121, 3, 46, 1, 1, 20, 158, 254, 233, 254, 137, 4, 58, 251, 198, 254, 191, 2, 31, 3, 92, 252, 165, 3, 91, 0, 0, 1, 0, 124, 0, 0, 4, 97, 4, 58, 0, 28, 0, 0, 97, 17, 33, 17, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 17, 33, 17, 20, 22, 23, 22, 22, 51, 50, 54, 55, 17, 4, 97, 254, 233, 20, 39, 20, 32, 66, 35, 59, 86, 28, 28, 27, 254, 234, 70, 66, 65, 188, 117, 51, 109, 52, 4, 58, 254, 4, 4, 7, 3, 4, 4, 19, 22, 22, 73, 54, 1, 84, 254, 172, 108, 156, 50, 51, 49, 11, 10, 254, 163, 0, 0, 1, 0, 83, 0, 0, 4, 127, 4, 58, 0, 11, 0, 0, 65, 33, 17, 33, 17, 33, 17, 35, 17, 33, 17, 35, 1, 97, 254, 242, 4, 44, 254, 242, 133, 254, 250, 133, 4, 58, 251, 198, 4, 58, 252, 165, 3, 91, 252, 165, 0, 1, 0, 79, 254, 191, 4, 235, 4, 58, 0, 15, 0, 0, 65, 33, 17, 33, 17, 51, 19, 35, 17, 33, 17, 35, 17, 33, 17, 35, 1, 93, 254, 242, 3, 167, 225, 20, 112, 254, 242, 133, 254, 250, 133, 4, 58, 251, 198, 254, 191, 2, 31, 3, 92, 252, 165, 3, 91, 252, 165, 0, 0, 2, 0, 56, 0, 0, 4, 153, 4, 58, 0, 18, 0, 33, 0, 0, 97, 33, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 35, 17, 33, 21, 33, 1, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 35, 1, 63, 1, 164, 106, 164, 56, 55, 57, 57, 55, 56, 164, 106, 139, 253, 224, 1, 7, 1, 25, 139, 43, 60, 19, 18, 16, 16, 18, 19, 60, 43, 139, 56, 48, 48, 130, 75, 72, 121, 45, 44, 50, 1, 137, 217, 254, 119, 23, 18, 18, 43, 21, 24, 47, 19, 19, 24, 0, 3, 0, 99, 0, 0, 4, 124, 4, 58, 0, 16, 0, 20, 0, 35, 0, 0, 65, 17, 33, 17, 33, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 1, 17, 33, 17, 1, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 35, 1, 108, 254, 247, 1, 50, 98, 144, 48, 47, 46, 46, 47, 48, 144, 98, 2, 231, 254, 231, 254, 9, 41, 46, 53, 14, 13, 7, 7, 13, 14, 53, 46, 41, 2, 185, 1, 129, 251, 198, 56, 48, 48, 130, 75, 72, 124, 46, 45, 53, 253, 71, 4, 58, 251, 198, 1, 248, 29, 22, 23, 55, 26, 24, 47, 19, 19, 24, 0, 2, 0, 138, 0, 0, 4, 125, 4, 58, 0, 16, 0, 31, 0, 0, 65, 17, 33, 17, 33, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 5, 33, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 33, 1, 160, 254, 234, 2, 39, 109, 172, 59, 58, 62, 62, 58, 59, 172, 109, 254, 239, 1, 17, 49, 69, 22, 22, 20, 20, 22, 22, 69, 49, 254, 239, 2, 206, 1, 108, 251, 198, 54, 48, 47, 131, 77, 80, 133, 48, 47, 53, 223, 22, 19, 19, 51, 28, 27, 48, 18, 19, 22, 0, 0, 1, 0, 111, 255, 236, 4, 84, 4, 78, 0, 53, 0, 0, 65, 50, 22, 23, 22, 22, 23, 33, 21, 33, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 33, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 33, 52, 54, 55, 54, 54, 2, 75, 63, 86, 28, 28, 28, 5, 254, 191, 1, 66, 5, 28, 27, 28, 87, 63, 50, 80, 28, 28, 30, 254, 251, 70, 63, 63, 175, 106, 132, 195, 65, 64, 64, 64, 64, 65, 196, 132, 98, 174, 64, 65, 75, 1, 5, 33, 29, 28, 79, 3, 109, 39, 33, 33, 89, 51, 174, 52, 92, 35, 35, 41, 31, 26, 26, 71, 41, 96, 154, 54, 55, 59, 85, 74, 73, 199, 114, 30, 114, 199, 74, 74, 86, 59, 52, 53, 143, 84, 37, 62, 22, 21, 24, 0, 0, 2, 0, 54, 255, 235, 4, 163, 4, 78, 0, 31, 0, 57, 0, 0, 65, 17, 33, 17, 33, 17, 51, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 5, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 1, 87, 254, 223, 1, 33, 83, 1, 49, 48, 47, 141, 95, 96, 142, 48, 47, 47, 47, 48, 48, 143, 96, 92, 139, 47, 47, 51, 3, 1, 8, 10, 13, 13, 45, 34, 34, 46, 13, 13, 11, 10, 13, 13, 45, 34, 35, 45, 13, 13, 11, 2, 117, 1, 197, 251, 198, 1, 172, 95, 164, 60, 61, 69, 76, 68, 67, 184, 107, 118, 107, 184, 68, 67, 77, 72, 63, 63, 173, 102, 148, 118, 55, 103, 40, 40, 48, 48, 40, 40, 103, 55, 118, 56, 103, 40, 40, 47, 47, 40, 40, 103, 0, 2, 0, 77, 0, 0, 4, 81, 4, 58, 0, 16, 0, 31, 0, 0, 65, 33, 34, 6, 7, 6, 6, 21, 20, 22, 23, 3, 33, 19, 51, 17, 33, 1, 52, 54, 55, 54, 54, 51, 33, 17, 33, 34, 38, 39, 38, 38, 4, 81, 253, 234, 107, 169, 59, 59, 63, 108, 95, 240, 1, 28, 214, 252, 1, 22, 253, 55, 22, 22, 22, 67, 46, 1, 0, 254, 248, 44, 64, 21, 21, 21, 4, 58, 54, 48, 48, 131, 78, 99, 156, 42, 254, 86, 1, 123, 254, 133, 2, 203, 26, 51, 21, 20, 26, 254, 228, 25, 20, 20, 50, 0, 0, 1, 255, 206, 254, 75, 4, 77, 6, 0, 0, 57, 0, 0, 65, 53, 35, 53, 33, 21, 35, 21, 51, 17, 33, 17, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 19, 6, 6, 7, 6, 6, 35, 34, 38, 39, 7, 22, 22, 51, 50, 54, 55, 54, 54, 53, 3, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 17, 2, 130, 233, 254, 234, 181, 181, 1, 22, 18, 47, 29, 24, 56, 32, 48, 76, 27, 27, 29, 1, 2, 22, 19, 15, 39, 24, 26, 52, 22, 14, 37, 65, 38, 87, 139, 48, 48, 51, 1, 57, 51, 51, 142, 85, 54, 97, 42, 32, 56, 24, 4, 166, 180, 166, 166, 180, 251, 90, 3, 13, 24, 38, 12, 10, 11, 25, 26, 26, 84, 58, 253, 69, 48, 71, 21, 15, 16, 6, 6, 219, 10, 7, 52, 50, 50, 147, 96, 2, 185, 119, 169, 54, 54, 51, 29, 27, 21, 57, 35, 1, 1, 0, 1, 0, 107, 255, 235, 4, 50, 4, 78, 0, 53, 0, 0, 101, 34, 38, 39, 38, 38, 39, 33, 53, 33, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 7, 33, 54, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 39, 33, 22, 6, 7, 6, 6, 2, 98, 56, 78, 26, 27, 28, 6, 1, 61, 254, 193, 4, 28, 26, 26, 81, 57, 45, 76, 27, 27, 28, 2, 1, 6, 2, 68, 61, 62, 170, 100, 125, 189, 64, 64, 64, 65, 64, 63, 190, 126, 93, 167, 63, 63, 73, 2, 254, 250, 2, 31, 28, 28, 74, 202, 38, 33, 32, 87, 50, 176, 52, 94, 36, 35, 42, 31, 26, 26, 72, 40, 96, 155, 55, 54, 60, 86, 74, 74, 199, 114, 30, 114, 199, 74, 74, 85, 59, 52, 52, 144, 84, 38, 62, 22, 22, 24, 0, 2, 0, 21, 0, 0, 4, 214, 4, 58, 0, 40, 0, 55, 0, 0, 65, 33, 17, 20, 6, 7, 6, 6, 7, 6, 6, 35, 35, 23, 51, 50, 54, 55, 54, 54, 55, 54, 54, 53, 53, 51, 17, 33, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 35, 19, 20, 6, 7, 6, 6, 7, 35, 17, 51, 22, 22, 23, 22, 22, 3, 58, 253, 122, 4, 5, 7, 24, 18, 15, 40, 23, 23, 2, 39, 103, 145, 46, 29, 38, 10, 5, 6, 111, 1, 8, 99, 156, 54, 54, 56, 56, 52, 52, 156, 91, 5, 134, 15, 16, 17, 50, 35, 1, 4, 35, 48, 16, 16, 15, 4, 58, 254, 51, 49, 87, 36, 56, 81, 26, 23, 22, 241, 78, 78, 49, 128, 78, 47, 105, 58, 235, 252, 168, 54, 49, 49, 135, 80, 79, 133, 48, 47, 57, 254, 150, 28, 53, 20, 20, 26, 1, 1, 31, 2, 24, 18, 19, 49, 0, 0, 2, 0, 91, 0, 0, 4, 159, 4, 58, 0, 24, 0, 39, 0, 0, 65, 17, 33, 17, 33, 17, 51, 17, 33, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 35, 17, 33, 17, 5, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 35, 1, 114, 254, 233, 1, 23, 123, 1, 35, 95, 148, 51, 51, 54, 54, 51, 51, 148, 95, 12, 254, 233, 1, 23, 12, 33, 46, 15, 14, 13, 13, 14, 15, 46, 33, 12, 2, 153, 1, 161, 251, 198, 1, 186, 254, 70, 54, 49, 49, 135, 80, 80, 134, 48, 48, 54, 1, 95, 254, 95, 157, 23, 19, 19, 50, 28, 29, 53, 20, 21, 25, 0, 0, 1, 255, 249, 0, 0, 4, 86, 6, 0, 0, 39, 0, 0, 65, 53, 33, 53, 33, 21, 35, 21, 51, 17, 33, 17, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 17, 33, 17, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 17, 2, 173, 254, 246, 254, 234, 148, 148, 1, 22, 17, 44, 27, 25, 59, 34, 48, 76, 27, 27, 29, 1, 22, 57, 51, 51, 142, 85, 51, 93, 39, 35, 62, 25, 4, 177, 180, 155, 155, 180, 251, 79, 3, 13, 23, 37, 12, 11, 12, 25, 26, 26, 84, 58, 253, 111, 2, 143, 119, 169, 54, 54, 51, 26, 25, 21, 60, 37, 1, 12, 0, 1, 0, 121, 254, 154, 4, 60, 4, 58, 0, 11, 0, 0, 65, 33, 17, 33, 17, 33, 17, 33, 17, 33, 17, 33, 1, 144, 254, 233, 1, 87, 1, 22, 1, 86, 254, 233, 254, 107, 4, 58, 251, 198, 254, 154, 1, 102, 4, 58, 252, 165, 0, 1, 0, 71, 255, 235, 4, 167, 5, 176, 0, 56, 0, 0, 65, 33, 17, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 17, 33, 17, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 17, 33, 17, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 4, 167, 254, 252, 12, 11, 10, 25, 16, 17, 29, 11, 19, 20, 254, 252, 17, 15, 10, 25, 15, 16, 26, 10, 18, 19, 254, 253, 52, 47, 46, 128, 75, 48, 84, 33, 13, 24, 11, 10, 23, 13, 35, 91, 53, 72, 122, 45, 45, 50, 5, 176, 251, 193, 48, 66, 19, 16, 15, 10, 11, 18, 71, 54, 4, 63, 251, 193, 53, 70, 18, 12, 11, 10, 11, 17, 71, 55, 4, 63, 251, 193, 96, 146, 49, 49, 50, 32, 32, 13, 31, 18, 17, 29, 12, 34, 34, 50, 49, 49, 146, 96, 0, 0, 1, 0, 69, 255, 235, 4, 141, 4, 58, 0, 56, 0, 0, 65, 35, 17, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 17, 33, 17, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 17, 35, 17, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 4, 141, 253, 9, 8, 9, 26, 17, 22, 33, 12, 14, 13, 254, 253, 12, 12, 10, 32, 21, 19, 30, 10, 11, 11, 253, 50, 44, 44, 123, 73, 48, 83, 33, 15, 26, 11, 14, 32, 19, 33, 80, 46, 71, 118, 43, 43, 47, 4, 58, 253, 79, 51, 73, 23, 22, 22, 18, 19, 23, 77, 54, 2, 177, 253, 79, 53, 75, 23, 21, 19, 21, 21, 23, 74, 52, 2, 177, 253, 79, 102, 155, 52, 52, 53, 32, 33, 14, 36, 21, 25, 41, 16, 27, 27, 53, 52, 52, 155, 102, 0, 0, 2, 0, 35, 0, 0, 4, 123, 6, 26, 0, 24, 0, 39, 0, 0, 65, 53, 33, 17, 33, 17, 35, 21, 51, 17, 33, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 35, 17, 17, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 35, 2, 229, 254, 247, 254, 233, 162, 162, 1, 236, 109, 171, 59, 58, 61, 61, 58, 59, 171, 109, 213, 213, 49, 69, 22, 21, 20, 20, 21, 22, 69, 49, 213, 4, 52, 180, 1, 50, 254, 206, 180, 251, 204, 52, 47, 47, 130, 78, 77, 129, 47, 46, 52, 1, 115, 253, 174, 21, 17, 18, 47, 26, 27, 48, 17, 18, 21, 0, 0, 1, 0, 56, 255, 237, 4, 173, 5, 196, 0, 84, 0, 0, 65, 17, 33, 17, 33, 17, 51, 21, 20, 22, 23, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 54, 54, 53, 35, 6, 6, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 38, 52, 53, 53, 51, 53, 35, 53, 52, 54, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 22, 22, 21, 51, 54, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 6, 6, 7, 21, 1, 61, 254, 251, 1, 5, 102, 16, 19, 18, 59, 44, 43, 119, 78, 73, 137, 52, 38, 55, 11, 4, 3, 250, 2, 5, 4, 2, 8, 5, 12, 46, 39, 35, 46, 14, 14, 14, 2, 3, 213, 213, 2, 2, 3, 15, 14, 14, 43, 33, 26, 39, 14, 18, 20, 4, 3, 3, 249, 8, 59, 53, 54, 142, 76, 76, 116, 43, 44, 60, 18, 18, 17, 2, 3, 93, 2, 83, 250, 80, 2, 108, 14, 77, 152, 69, 70, 120, 43, 44, 50, 51, 58, 43, 133, 80, 29, 63, 34, 26, 51, 23, 18, 34, 14, 34, 40, 37, 31, 31, 79, 42, 41, 81, 32, 14, 241, 40, 26, 56, 28, 40, 77, 30, 29, 37, 16, 14, 18, 58, 34, 24, 56, 30, 141, 192, 59, 59, 51, 49, 43, 44, 118, 68, 65, 138, 70, 20, 0, 0, 1, 0, 77, 255, 236, 4, 160, 4, 81, 0, 73, 0, 0, 65, 53, 35, 52, 54, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 51, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 6, 6, 7, 35, 17, 33, 17, 33, 17, 51, 23, 22, 22, 23, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 35, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 38, 38, 39, 53, 3, 131, 182, 3, 2, 4, 24, 24, 11, 26, 17, 28, 38, 12, 11, 12, 2, 253, 1, 54, 47, 48, 127, 75, 58, 98, 40, 65, 86, 23, 11, 13, 2, 92, 254, 245, 1, 11, 92, 1, 2, 11, 10, 18, 74, 52, 44, 115, 70, 67, 124, 48, 48, 61, 3, 253, 2, 11, 9, 12, 40, 28, 21, 33, 12, 14, 19, 5, 4, 3, 1, 1, 197, 185, 17, 37, 19, 40, 74, 20, 9, 10, 21, 19, 20, 57, 38, 109, 151, 47, 47, 42, 27, 24, 40, 131, 79, 39, 84, 43, 1, 189, 251, 197, 1, 197, 15, 38, 74, 35, 72, 125, 41, 35, 38, 45, 46, 45, 138, 93, 26, 41, 16, 22, 22, 16, 14, 17, 50, 31, 20, 41, 20, 24, 0, 2, 0, 13, 0, 0, 5, 4, 5, 176, 0, 11, 0, 16, 0, 0, 65, 19, 33, 1, 33, 1, 33, 19, 51, 17, 51, 17, 37, 19, 55, 23, 19, 3, 89, 134, 1, 37, 254, 20, 254, 227, 254, 18, 1, 37, 134, 83, 240, 254, 252, 117, 29, 29, 116, 1, 166, 254, 90, 5, 176, 250, 80, 1, 166, 254, 90, 1, 166, 201, 1, 111, 92, 92, 254, 145, 0, 2, 0, 77, 0, 0, 4, 181, 4, 58, 0, 11, 0, 16, 0, 0, 65, 19, 33, 1, 33, 1, 33, 19, 51, 17, 51, 17, 39, 55, 55, 23, 23, 3, 56, 97, 1, 28, 254, 88, 254, 231, 254, 89, 1, 28, 95, 85, 192, 212, 90, 29, 28, 90, 1, 15, 254, 241, 4, 58, 251, 198, 1, 15, 254, 241, 1, 15, 184, 253, 111, 111, 253, 0, 0, 2, 0, 82, 0, 0, 4, 190, 5, 176, 0, 19, 0, 24, 0, 0, 65, 19, 51, 1, 35, 3, 35, 17, 35, 17, 51, 17, 51, 3, 51, 19, 51, 17, 51, 17, 39, 19, 55, 23, 19, 3, 138, 79, 229, 254, 202, 220, 191, 186, 225, 225, 140, 102, 228, 88, 44, 159, 164, 82, 9, 8, 73, 1, 184, 254, 72, 5, 176, 252, 203, 3, 53, 250, 80, 1, 184, 254, 72, 1, 184, 254, 72, 1, 184, 195, 1, 156, 45, 44, 254, 99, 0, 2, 0, 82, 0, 0, 4, 190, 4, 58, 0, 19, 0, 24, 0, 0, 65, 19, 51, 1, 35, 3, 35, 17, 35, 17, 51, 17, 51, 3, 51, 19, 51, 17, 51, 17, 39, 55, 55, 23, 23, 3, 151, 66, 229, 254, 202, 220, 197, 180, 225, 225, 119, 81, 228, 74, 56, 169, 169, 67, 21, 18, 60, 1, 4, 254, 252, 4, 58, 253, 141, 2, 115, 251, 198, 1, 4, 254, 252, 1, 4, 254, 252, 1, 4, 195, 234, 72, 71, 235, 0, 2, 0, 46, 0, 0, 4, 189, 5, 176, 0, 39, 0, 44, 0, 0, 115, 33, 17, 52, 54, 55, 54, 54, 51, 51, 17, 33, 17, 51, 50, 22, 23, 22, 22, 21, 17, 33, 17, 52, 38, 39, 38, 38, 39, 35, 1, 33, 1, 35, 6, 6, 7, 6, 6, 21, 1, 3, 7, 39, 3, 46, 1, 25, 16, 16, 15, 49, 33, 45, 1, 24, 21, 33, 49, 16, 16, 16, 1, 25, 47, 44, 44, 125, 85, 3, 1, 41, 251, 206, 1, 70, 6, 85, 134, 46, 47, 50, 2, 209, 124, 3, 4, 141, 1, 146, 44, 59, 18, 17, 15, 253, 213, 2, 43, 15, 17, 18, 59, 44, 254, 110, 1, 146, 95, 138, 46, 44, 50, 6, 2, 163, 253, 95, 5, 47, 44, 46, 141, 98, 3, 56, 254, 178, 9, 9, 1, 78, 0, 2, 0, 65, 0, 0, 4, 114, 4, 58, 0, 41, 0, 47, 0, 0, 115, 33, 53, 52, 54, 55, 54, 54, 51, 51, 21, 17, 33, 17, 53, 51, 50, 22, 23, 22, 22, 21, 21, 33, 53, 52, 38, 39, 38, 38, 39, 39, 1, 33, 1, 7, 6, 6, 7, 6, 6, 21, 1, 3, 7, 35, 39, 3, 65, 1, 22, 12, 12, 12, 36, 24, 28, 1, 22, 18, 25, 36, 12, 12, 11, 1, 23, 38, 36, 36, 105, 54, 12, 1, 21, 251, 230, 1, 19, 8, 67, 105, 36, 38, 40, 2, 163, 125, 4, 3, 5, 125, 238, 46, 62, 19, 18, 15, 2, 254, 116, 1, 139, 3, 15, 18, 19, 62, 46, 238, 238, 87, 129, 45, 44, 52, 8, 2, 1, 221, 254, 37, 1, 9, 50, 43, 45, 132, 89, 2, 144, 255, 0, 13, 13, 1, 0, 0, 0, 2, 0, 54, 0, 0, 4, 204, 5, 176, 0, 45, 0, 50, 0, 0, 97, 51, 19, 52, 54, 55, 54, 54, 51, 51, 17, 51, 17, 51, 50, 22, 23, 22, 22, 21, 19, 51, 19, 52, 38, 39, 38, 38, 39, 39, 19, 33, 19, 33, 17, 35, 17, 51, 17, 51, 6, 6, 7, 6, 6, 21, 1, 3, 7, 39, 3, 1, 109, 210, 3, 7, 10, 10, 35, 27, 25, 211, 14, 28, 33, 9, 9, 5, 8, 215, 4, 33, 32, 31, 97, 64, 5, 227, 252, 234, 226, 254, 160, 223, 223, 104, 4, 7, 2, 5, 4, 2, 14, 84, 2, 2, 86, 1, 179, 30, 55, 22, 21, 26, 253, 179, 2, 77, 26, 21, 22, 55, 30, 254, 77, 1, 179, 76, 125, 46, 45, 56, 8, 1, 2, 152, 253, 108, 2, 148, 250, 80, 2, 83, 12, 27, 13, 25, 54, 29, 3, 46, 254, 240, 7, 7, 1, 16, 0, 2, 0, 60, 0, 0, 4, 198, 4, 58, 0, 47, 0, 52, 0, 0, 115, 51, 17, 51, 6, 6, 7, 6, 6, 21, 19, 51, 19, 52, 54, 55, 54, 54, 51, 51, 21, 17, 51, 17, 55, 51, 50, 22, 23, 22, 22, 21, 19, 51, 19, 52, 38, 39, 38, 38, 39, 35, 19, 33, 19, 33, 17, 35, 5, 7, 7, 39, 39, 60, 224, 118, 5, 8, 3, 3, 3, 6, 213, 6, 7, 9, 9, 32, 26, 10, 212, 3, 1, 26, 33, 9, 9, 6, 7, 212, 6, 43, 42, 28, 72, 46, 1, 200, 253, 1, 198, 254, 175, 224, 3, 61, 78, 4, 3, 78, 1, 159, 16, 34, 18, 20, 43, 23, 254, 251, 1, 5, 29, 53, 21, 21, 25, 1, 254, 103, 1, 147, 7, 25, 21, 21, 53, 29, 254, 251, 1, 5, 87, 133, 43, 28, 36, 9, 1, 229, 254, 34, 1, 222, 171, 216, 9, 9, 216, 0, 0, 2, 0, 145, 254, 64, 4, 50, 7, 116, 0, 92, 0, 101, 0, 0, 65, 35, 21, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 7, 6, 6, 35, 35, 34, 6, 7, 6, 6, 21, 22, 22, 23, 22, 22, 23, 55, 38, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 51, 51, 50, 54, 55, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 38, 38, 35, 33, 21, 33, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 7, 6, 6, 3, 39, 35, 21, 5, 51, 37, 53, 35, 2, 10, 150, 143, 75, 112, 35, 29, 30, 9, 8, 14, 49, 34, 25, 62, 35, 60, 81, 132, 46, 46, 50, 1, 44, 42, 40, 117, 75, 82, 20, 51, 22, 23, 30, 12, 12, 14, 47, 33, 56, 62, 112, 48, 72, 113, 36, 28, 29, 46, 45, 34, 91, 56, 58, 90, 30, 26, 27, 25, 23, 31, 96, 60, 59, 141, 80, 254, 246, 1, 10, 68, 95, 28, 23, 22, 11, 11, 13, 45, 31, 24, 61, 26, 146, 237, 1, 40, 175, 1, 40, 237, 3, 94, 232, 34, 34, 28, 79, 51, 22, 40, 18, 31, 47, 13, 11, 12, 35, 36, 36, 110, 74, 71, 121, 47, 45, 65, 18, 171, 9, 26, 19, 19, 52, 35, 20, 34, 13, 13, 16, 17, 17, 25, 88, 59, 46, 112, 65, 73, 118, 45, 34, 51, 18, 23, 69, 45, 39, 96, 56, 56, 95, 39, 50, 73, 24, 22, 22, 230, 31, 28, 22, 59, 35, 27, 48, 21, 24, 37, 13, 9, 10, 3, 152, 126, 20, 252, 253, 19, 0, 2, 0, 181, 254, 78, 4, 39, 5, 246, 0, 98, 0, 107, 0, 0, 65, 35, 21, 51, 50, 22, 23, 22, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 7, 6, 6, 35, 35, 34, 6, 7, 6, 6, 21, 22, 22, 23, 22, 22, 23, 55, 38, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 51, 51, 50, 54, 55, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 38, 38, 35, 33, 21, 33, 50, 22, 23, 22, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 7, 6, 6, 19, 39, 35, 21, 5, 51, 37, 53, 35, 2, 40, 163, 157, 25, 45, 19, 42, 61, 18, 15, 15, 7, 7, 12, 48, 34, 24, 57, 33, 53, 75, 122, 43, 43, 47, 1, 47, 40, 40, 106, 60, 82, 18, 47, 20, 21, 28, 11, 12, 15, 54, 40, 49, 44, 82, 37, 90, 138, 35, 16, 17, 32, 31, 28, 79, 51, 34, 57, 21, 33, 35, 27, 25, 28, 86, 55, 56, 134, 76, 254, 246, 1, 10, 27, 46, 20, 28, 43, 14, 16, 15, 21, 23, 14, 37, 23, 16, 37, 12, 146, 237, 1, 40, 175, 1, 40, 237, 2, 114, 177, 3, 3, 7, 26, 19, 16, 39, 23, 14, 25, 11, 22, 33, 10, 7, 8, 32, 32, 33, 100, 67, 65, 112, 45, 45, 66, 20, 157, 9, 26, 19, 19, 52, 35, 18, 32, 12, 16, 18, 7, 9, 21, 86, 63, 30, 70, 39, 45, 77, 30, 27, 43, 15, 14, 36, 22, 33, 85, 52, 47, 78, 32, 35, 54, 18, 18, 17, 204, 4, 4, 6, 20, 13, 14, 36, 21, 29, 49, 18, 11, 16, 5, 3, 3, 3, 6, 126, 20, 252, 253, 19, 0, 3, 0, 78, 255, 236, 4, 121, 5, 196, 0, 37, 0, 58, 0, 79, 0, 0, 65, 53, 52, 38, 39, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 6, 6, 21, 21, 20, 22, 23, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 54, 54, 1, 53, 52, 54, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 22, 22, 29, 3, 20, 6, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 38, 38, 53, 53, 4, 121, 15, 15, 32, 134, 97, 53, 126, 70, 80, 138, 57, 75, 107, 30, 19, 19, 18, 17, 30, 103, 70, 58, 145, 85, 81, 142, 59, 71, 108, 33, 23, 24, 252, 242, 8, 10, 13, 46, 34, 25, 64, 40, 41, 67, 27, 42, 56, 12, 6, 6, 10, 9, 15, 48, 36, 27, 69, 42, 43, 67, 26, 36, 45, 11, 7, 6, 2, 109, 212, 63, 117, 53, 119, 181, 52, 28, 30, 40, 37, 47, 156, 96, 60, 134, 73, 212, 71, 130, 58, 97, 152, 48, 41, 44, 40, 37, 47, 140, 89, 63, 146, 1, 29, 8, 54, 98, 42, 59, 87, 27, 20, 21, 22, 20, 32, 112, 70, 35, 76, 41, 8, 180, 26, 51, 93, 40, 59, 92, 29, 22, 24, 24, 23, 31, 99, 64, 38, 85, 46, 26, 0, 3, 0, 97, 255, 235, 4, 94, 4, 78, 0, 25, 0, 38, 0, 51, 0, 0, 83, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 37, 50, 22, 23, 22, 22, 23, 33, 54, 54, 55, 54, 54, 19, 34, 38, 39, 38, 38, 39, 33, 6, 6, 7, 6, 6, 97, 68, 66, 65, 191, 122, 121, 190, 65, 65, 68, 68, 65, 66, 190, 122, 122, 189, 65, 66, 68, 1, 254, 53, 80, 28, 27, 33, 6, 254, 57, 6, 33, 28, 28, 80, 55, 53, 80, 28, 28, 33, 7, 1, 198, 7, 33, 27, 28, 78, 2, 39, 21, 119, 201, 74, 74, 83, 83, 74, 74, 201, 119, 21, 118, 201, 74, 74, 84, 84, 74, 74, 201, 208, 39, 33, 34, 92, 53, 53, 92, 34, 33, 39, 253, 93, 37, 33, 32, 89, 53, 53, 89, 32, 33, 37, 0, 1, 0, 12, 0, 0, 5, 3, 5, 194, 0, 22, 0, 0, 65, 1, 33, 1, 33, 1, 54, 54, 55, 54, 54, 51, 51, 55, 39, 34, 6, 7, 6, 6, 7, 3, 7, 2, 115, 254, 203, 254, 206, 1, 233, 1, 39, 1, 81, 9, 24, 16, 14, 37, 21, 27, 2, 41, 72, 111, 43, 44, 66, 26, 212, 20, 1, 139, 4, 37, 250, 80, 4, 87, 28, 45, 15, 14, 16, 244, 1, 45, 44, 44, 129, 84, 253, 30, 91, 0, 0, 1, 0, 54, 0, 0, 4, 117, 4, 78, 0, 26, 0, 0, 97, 33, 1, 54, 54, 55, 54, 54, 51, 50, 22, 23, 55, 38, 38, 35, 34, 6, 7, 6, 6, 7, 3, 7, 39, 3, 33, 1, 181, 1, 4, 1, 6, 7, 19, 13, 15, 36, 20, 12, 32, 4, 24, 23, 52, 29, 63, 103, 41, 40, 62, 23, 120, 20, 20, 200, 254, 221, 2, 253, 20, 35, 14, 15, 17, 2, 2, 220, 13, 7, 43, 43, 40, 120, 78, 254, 135, 106, 106, 2, 169, 0, 0, 3, 0, 69, 254, 81, 4, 191, 5, 197, 0, 25, 0, 51, 0, 79, 0, 0, 65, 17, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 17, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 3, 17, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 17, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 19, 22, 22, 51, 50, 54, 55, 54, 54, 55, 19, 35, 3, 7, 39, 3, 35, 19, 7, 6, 6, 7, 6, 6, 35, 34, 38, 35, 2, 149, 41, 40, 40, 115, 73, 69, 106, 35, 36, 37, 36, 36, 36, 106, 69, 74, 115, 40, 39, 41, 200, 11, 11, 13, 43, 31, 31, 41, 11, 11, 9, 10, 12, 12, 40, 29, 28, 40, 13, 15, 13, 188, 14, 60, 21, 58, 82, 28, 28, 32, 9, 234, 176, 67, 28, 17, 45, 176, 152, 21, 5, 14, 13, 13, 39, 29, 10, 50, 11, 1, 221, 1, 246, 113, 184, 65, 65, 71, 71, 65, 65, 184, 113, 254, 10, 113, 184, 65, 65, 71, 71, 65, 65, 184, 2, 145, 253, 184, 66, 105, 36, 41, 43, 43, 42, 36, 105, 65, 2, 72, 69, 107, 37, 37, 39, 35, 32, 37, 112, 250, 27, 4, 12, 54, 40, 40, 91, 38, 4, 226, 254, 103, 171, 171, 1, 153, 251, 191, 82, 18, 61, 29, 29, 42, 5, 0, 0, 3, 0, 52, 254, 81, 4, 191, 4, 78, 0, 25, 0, 51, 0, 79, 0, 0, 83, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 23, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 1, 22, 22, 51, 50, 54, 55, 54, 54, 55, 19, 35, 3, 7, 39, 3, 35, 19, 7, 6, 6, 7, 6, 6, 35, 34, 38, 35, 52, 39, 41, 40, 126, 87, 87, 125, 41, 40, 39, 39, 40, 41, 126, 88, 87, 125, 40, 41, 38, 200, 9, 14, 14, 51, 43, 43, 53, 15, 14, 9, 9, 14, 14, 52, 43, 44, 52, 14, 14, 9, 1, 141, 17, 57, 21, 58, 82, 28, 28, 32, 9, 234, 176, 67, 28, 17, 45, 176, 152, 21, 5, 14, 13, 13, 39, 29, 10, 50, 11, 2, 39, 21, 117, 202, 74, 74, 84, 84, 74, 74, 202, 117, 21, 117, 202, 74, 74, 84, 84, 74, 74, 202, 138, 21, 78, 142, 54, 54, 63, 63, 54, 54, 142, 78, 21, 79, 142, 53, 54, 63, 63, 54, 53, 142, 252, 158, 5, 11, 54, 40, 40, 91, 38, 4, 226, 254, 104, 175, 175, 1, 152, 251, 191, 82, 18, 61, 29, 29, 42, 5, 0, 4, 0, 80, 255, 120, 4, 123, 6, 41, 0, 3, 0, 7, 0, 45, 0, 83, 0, 0, 65, 17, 35, 17, 19, 17, 35, 17, 1, 53, 52, 38, 39, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 6, 6, 21, 21, 20, 22, 23, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 54, 54, 1, 21, 20, 6, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 38, 38, 53, 53, 52, 54, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 22, 22, 2, 198, 196, 198, 196, 2, 119, 14, 14, 32, 138, 97, 53, 124, 70, 80, 137, 58, 70, 108, 32, 19, 21, 23, 23, 32, 104, 73, 56, 136, 79, 82, 142, 59, 71, 106, 34, 23, 24, 254, 227, 12, 11, 14, 43, 33, 27, 72, 44, 47, 71, 27, 31, 40, 10, 8, 7, 24, 28, 11, 25, 16, 26, 67, 43, 48, 75, 29, 37, 46, 11, 6, 5, 4, 100, 1, 197, 254, 59, 251, 20, 1, 208, 254, 48, 2, 245, 212, 61, 116, 52, 121, 184, 52, 27, 30, 40, 37, 44, 152, 94, 61, 139, 76, 212, 80, 148, 63, 90, 142, 45, 35, 38, 41, 37, 47, 136, 92, 63, 146, 1, 37, 214, 55, 101, 43, 51, 82, 27, 25, 26, 29, 26, 31, 90, 55, 40, 90, 49, 214, 90, 151, 52, 20, 35, 13, 23, 24, 30, 27, 34, 106, 67, 33, 73, 0, 0, 4, 0, 104, 255, 109, 4, 101, 4, 199, 0, 3, 0, 7, 0, 33, 0, 59, 0, 0, 65, 17, 35, 17, 19, 17, 35, 17, 1, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 5, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 2, 186, 170, 166, 171, 254, 93, 68, 66, 65, 191, 122, 121, 190, 65, 65, 68, 68, 65, 66, 190, 122, 122, 189, 65, 66, 68, 1, 22, 26, 28, 28, 88, 62, 63, 88, 28, 27, 26, 26, 27, 28, 88, 61, 63, 89, 28, 28, 26, 2, 252, 1, 203, 254, 53, 252, 113, 1, 221, 254, 35, 2, 186, 21, 119, 201, 74, 74, 83, 83, 74, 74, 201, 119, 21, 118, 201, 74, 74, 84, 84, 74, 74, 201, 139, 21, 66, 118, 45, 45, 52, 52, 45, 45, 118, 66, 21, 68, 119, 44, 45, 52, 52, 45, 44, 119, 0, 3, 0, 47, 255, 235, 5, 3, 7, 42, 0, 98, 0, 134, 0, 147, 0, 0, 65, 21, 50, 22, 23, 22, 22, 23, 22, 22, 21, 17, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 38, 38, 53, 17, 33, 17, 20, 6, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 17, 52, 54, 55, 54, 54, 55, 54, 54, 51, 53, 34, 6, 7, 6, 6, 7, 6, 6, 21, 17, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 17, 52, 38, 39, 38, 38, 39, 38, 38, 19, 35, 34, 38, 39, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 21, 51, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 22, 22, 51, 51, 5, 23, 54, 54, 55, 54, 54, 53, 53, 35, 21, 20, 6, 3, 78, 19, 34, 15, 24, 36, 13, 7, 8, 19, 17, 15, 41, 24, 16, 26, 10, 11, 15, 4, 2, 3, 254, 244, 2, 2, 4, 14, 9, 11, 28, 17, 25, 42, 15, 17, 18, 5, 4, 11, 40, 29, 15, 34, 19, 65, 117, 49, 51, 83, 26, 22, 24, 59, 53, 53, 146, 86, 41, 74, 31, 21, 37, 16, 18, 42, 23, 30, 70, 39, 86, 145, 53, 53, 60, 25, 23, 32, 100, 65, 43, 97, 152, 22, 42, 74, 34, 36, 70, 33, 35, 69, 36, 58, 90, 30, 27, 28, 133, 14, 13, 14, 38, 24, 21, 46, 26, 33, 82, 44, 38, 87, 48, 23, 254, 5, 82, 25, 49, 19, 19, 23, 149, 35, 5, 176, 228, 7, 6, 11, 41, 32, 20, 51, 30, 253, 101, 44, 63, 18, 17, 16, 10, 11, 11, 36, 25, 15, 36, 20, 1, 191, 254, 65, 19, 33, 14, 25, 36, 12, 13, 12, 16, 17, 19, 62, 44, 2, 155, 24, 41, 18, 40, 51, 11, 7, 6, 228, 26, 25, 28, 81, 53, 44, 107, 62, 253, 101, 95, 144, 48, 48, 49, 20, 21, 13, 36, 22, 25, 38, 14, 17, 18, 49, 48, 48, 144, 95, 2, 155, 64, 110, 45, 59, 89, 25, 17, 17, 1, 2, 15, 11, 14, 31, 14, 14, 21, 29, 29, 27, 79, 53, 37, 18, 26, 39, 12, 13, 12, 14, 10, 15, 36, 15, 13, 17, 239, 57, 13, 45, 27, 27, 60, 29, 102, 95, 38, 71, 0, 0, 3, 0, 74, 255, 235, 4, 154, 5, 222, 0, 86, 0, 122, 0, 135, 0, 0, 65, 21, 50, 22, 23, 22, 22, 21, 17, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 38, 38, 53, 53, 35, 21, 20, 6, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 17, 52, 54, 55, 54, 54, 51, 53, 34, 6, 7, 6, 6, 21, 17, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 17, 52, 38, 39, 38, 38, 37, 51, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 22, 22, 51, 51, 53, 35, 34, 38, 39, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 19, 23, 54, 54, 55, 54, 54, 53, 53, 35, 21, 20, 6, 3, 38, 30, 43, 15, 14, 13, 9, 11, 9, 27, 19, 26, 38, 13, 8, 11, 3, 2, 2, 234, 2, 2, 3, 9, 6, 11, 37, 25, 18, 27, 10, 14, 14, 13, 15, 14, 44, 30, 74, 134, 52, 52, 61, 55, 47, 46, 120, 65, 48, 82, 33, 16, 29, 11, 12, 31, 17, 32, 82, 46, 64, 120, 47, 46, 55, 61, 51, 52, 135, 253, 198, 136, 11, 10, 13, 44, 27, 21, 43, 23, 35, 79, 48, 36, 82, 47, 45, 43, 46, 79, 35, 36, 64, 31, 32, 63, 34, 58, 92, 31, 27, 29, 210, 82, 25, 49, 19, 19, 23, 149, 35, 4, 78, 193, 18, 22, 22, 77, 58, 254, 153, 45, 64, 19, 15, 15, 11, 15, 9, 28, 19, 11, 29, 16, 244, 244, 18, 31, 12, 17, 25, 9, 15, 11, 12, 13, 18, 67, 48, 1, 103, 58, 77, 22, 22, 18, 193, 48, 48, 49, 147, 98, 254, 129, 89, 131, 43, 44, 43, 35, 33, 16, 42, 25, 26, 44, 17, 31, 33, 43, 44, 43, 131, 89, 1, 127, 98, 147, 49, 48, 48, 146, 18, 23, 34, 13, 16, 16, 13, 10, 15, 37, 18, 11, 16, 134, 18, 13, 13, 32, 13, 13, 18, 29, 29, 27, 79, 53, 254, 229, 57, 13, 45, 27, 27, 60, 29, 102, 95, 38, 71, 0, 2, 0, 77, 255, 235, 4, 173, 7, 7, 0, 7, 0, 70, 0, 0, 65, 21, 33, 21, 51, 53, 33, 53, 19, 33, 17, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 38, 38, 53, 17, 33, 17, 20, 6, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 17, 33, 17, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 1, 7, 1, 17, 181, 1, 34, 190, 254, 252, 16, 16, 8, 22, 12, 18, 31, 12, 10, 15, 4, 3, 3, 254, 252, 3, 2, 4, 13, 9, 10, 26, 15, 16, 27, 10, 18, 18, 254, 253, 52, 47, 46, 128, 75, 48, 84, 33, 13, 25, 10, 9, 20, 11, 36, 94, 55, 72, 122, 45, 45, 50, 7, 7, 112, 127, 127, 112, 254, 169, 251, 193, 56, 71, 18, 10, 9, 12, 13, 11, 34, 23, 15, 36, 20, 4, 63, 251, 193, 21, 37, 15, 22, 34, 11, 12, 12, 11, 11, 18, 70, 54, 4, 63, 251, 193, 96, 146, 49, 49, 50, 32, 33, 12, 31, 18, 15, 26, 11, 37, 37, 50, 49, 49, 146, 96, 0, 0, 2, 0, 69, 255, 235, 4, 141, 5, 177, 0, 7, 0, 64, 0, 0, 65, 21, 33, 21, 51, 53, 33, 53, 19, 35, 17, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 17, 33, 17, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 17, 35, 17, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 1, 3, 1, 17, 181, 1, 34, 162, 253, 10, 9, 9, 25, 16, 25, 37, 12, 10, 10, 254, 253, 7, 8, 10, 36, 26, 19, 29, 10, 11, 12, 253, 50, 44, 44, 123, 73, 42, 76, 31, 19, 34, 14, 15, 38, 23, 31, 74, 43, 71, 118, 43, 43, 47, 5, 177, 112, 127, 127, 112, 254, 137, 253, 79, 53, 76, 23, 20, 19, 25, 26, 23, 70, 47, 2, 177, 253, 79, 42, 65, 23, 31, 30, 20, 21, 23, 74, 53, 2, 177, 253, 79, 102, 155, 52, 52, 53, 26, 25, 16, 43, 26, 28, 45, 17, 23, 23, 53, 52, 52, 155, 102, 0, 0, 1, 0, 125, 254, 147, 4, 85, 5, 197, 0, 42, 0, 0, 65, 17, 35, 34, 38, 39, 38, 38, 53, 17, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 33, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 17, 20, 22, 23, 22, 22, 23, 17, 3, 98, 180, 69, 105, 35, 36, 36, 28, 28, 27, 83, 55, 53, 76, 24, 25, 24, 1, 25, 65, 62, 62, 179, 115, 114, 185, 65, 66, 71, 64, 60, 60, 170, 106, 254, 147, 2, 58, 57, 51, 50, 138, 81, 1, 36, 81, 137, 51, 50, 56, 32, 32, 34, 106, 72, 122, 188, 64, 64, 66, 90, 80, 80, 223, 132, 254, 222, 119, 203, 78, 78, 101, 16, 254, 160, 0, 0, 1, 0, 177, 254, 145, 4, 90, 4, 78, 0, 45, 0, 0, 65, 17, 35, 34, 38, 39, 38, 38, 53, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 33, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 6, 6, 21, 21, 20, 22, 23, 22, 22, 23, 17, 3, 83, 176, 63, 85, 25, 26, 21, 22, 26, 25, 83, 62, 42, 67, 23, 23, 24, 1, 6, 65, 58, 58, 163, 97, 71, 123, 50, 66, 98, 29, 29, 30, 51, 50, 49, 148, 98, 254, 145, 2, 57, 54, 45, 44, 117, 63, 30, 62, 116, 45, 45, 54, 31, 26, 26, 72, 40, 96, 155, 55, 54, 60, 30, 28, 34, 108, 66, 61, 143, 77, 30, 102, 180, 71, 71, 96, 17, 254, 157, 0, 1, 0, 107, 0, 0, 4, 145, 5, 62, 0, 19, 0, 0, 65, 19, 5, 55, 37, 19, 35, 3, 37, 7, 5, 3, 37, 7, 5, 3, 51, 19, 5, 55, 2, 89, 204, 1, 32, 76, 254, 219, 228, 172, 185, 254, 221, 73, 1, 34, 202, 254, 219, 71, 1, 33, 225, 175, 181, 1, 35, 72, 1, 193, 1, 104, 170, 127, 171, 1, 149, 254, 186, 171, 130, 171, 254, 152, 171, 128, 171, 254, 114, 1, 63, 170, 128, 0, 0, 1, 253, 39, 4, 162, 255, 250, 5, 253, 0, 7, 0, 0, 65, 33, 53, 39, 23, 33, 7, 23, 253, 217, 2, 33, 177, 1, 253, 222, 1, 178, 5, 32, 220, 1, 108, 238, 1, 0, 0, 1, 252, 251, 5, 23, 255, 249, 6, 21, 0, 35, 0, 0, 65, 35, 23, 51, 50, 54, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 21, 51, 55, 54, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 6, 6, 253, 42, 47, 2, 47, 52, 93, 42, 47, 85, 39, 31, 57, 27, 24, 40, 14, 13, 15, 136, 1, 1, 31, 32, 30, 89, 58, 40, 74, 37, 37, 76, 40, 40, 87, 5, 157, 134, 17, 12, 14, 34, 16, 11, 16, 12, 13, 12, 39, 26, 18, 37, 58, 84, 26, 25, 24, 18, 13, 13, 32, 13, 13, 18, 0, 1, 253, 246, 5, 19, 254, 237, 6, 91, 0, 5, 0, 0, 65, 23, 55, 39, 55, 39, 253, 247, 164, 82, 58, 1, 190, 5, 225, 206, 86, 115, 122, 5, 0, 1, 253, 212, 5, 19, 254, 204, 6, 91, 0, 5, 0, 0, 65, 55, 39, 7, 23, 7, 254, 37, 167, 1, 189, 1, 59, 5, 19, 206, 122, 5, 122, 115, 0, 8, 254, 158, 254, 196, 6, 57, 5, 175, 0, 19, 0, 39, 0, 59, 0, 79, 0, 99, 0, 119, 0, 139, 0, 159, 0, 0, 65, 51, 52, 54, 51, 50, 22, 21, 51, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 1, 51, 52, 54, 51, 50, 22, 21, 51, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 19, 51, 52, 54, 51, 50, 22, 21, 51, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 3, 51, 52, 54, 51, 50, 22, 21, 51, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 1, 51, 52, 54, 51, 50, 22, 21, 51, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 1, 51, 52, 54, 51, 50, 22, 21, 51, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 3, 51, 52, 54, 51, 50, 22, 21, 51, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 19, 51, 52, 54, 51, 50, 22, 21, 51, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 1, 139, 113, 42, 55, 53, 46, 112, 29, 27, 28, 78, 49, 49, 78, 27, 27, 29, 2, 79, 113, 43, 53, 54, 45, 113, 29, 27, 28, 79, 49, 48, 78, 27, 27, 29, 186, 113, 44, 53, 54, 45, 112, 29, 27, 28, 78, 49, 48, 78, 27, 28, 29, 196, 112, 44, 53, 54, 45, 112, 29, 27, 28, 78, 49, 48, 78, 27, 27, 29, 253, 192, 113, 44, 53, 53, 46, 112, 29, 27, 28, 78, 49, 49, 78, 27, 27, 29, 253, 190, 114, 42, 55, 53, 46, 112, 29, 27, 28, 78, 49, 49, 78, 27, 28, 29, 176, 113, 44, 53, 54, 45, 112, 29, 27, 28, 78, 49, 48, 78, 27, 28, 29, 166, 114, 43, 53, 54, 45, 113, 29, 27, 28, 79, 49, 48, 78, 27, 28, 29, 4, 243, 39, 62, 60, 41, 41, 69, 25, 25, 28, 28, 25, 25, 69, 254, 194, 39, 62, 61, 40, 41, 69, 25, 25, 28, 28, 25, 25, 69, 253, 224, 39, 62, 61, 40, 41, 69, 25, 25, 28, 28, 25, 25, 69, 253, 208, 39, 62, 61, 40, 41, 69, 25, 25, 28, 28, 25, 25, 69, 254, 187, 39, 62, 60, 41, 41, 69, 25, 25, 28, 28, 25, 25, 69, 4, 241, 39, 62, 60, 41, 41, 69, 25, 25, 28, 28, 25, 25, 69, 253, 224, 39, 62, 61, 40, 41, 69, 25, 25, 28, 28, 25, 25, 69, 253, 208, 39, 62, 61, 40, 41, 69, 25, 25, 28, 28, 25, 25, 69, 0, 8, 254, 209, 254, 99, 6, 16, 5, 198, 0, 4, 0, 9, 0, 14, 0, 19, 0, 24, 0, 29, 0, 34, 0, 39, 0, 0, 69, 35, 3, 51, 19, 3, 51, 19, 35, 3, 1, 21, 5, 53, 37, 5, 53, 37, 21, 5, 1, 23, 37, 39, 5, 1, 39, 5, 23, 37, 3, 55, 3, 7, 19, 1, 7, 19, 55, 3, 2, 212, 137, 70, 96, 122, 206, 136, 70, 96, 122, 2, 178, 1, 89, 254, 180, 251, 103, 254, 166, 1, 77, 3, 169, 97, 1, 37, 68, 254, 192, 253, 82, 97, 254, 218, 69, 1, 64, 138, 98, 198, 65, 148, 3, 211, 97, 197, 66, 149, 60, 254, 159, 1, 83, 4, 176, 1, 96, 254, 174, 254, 3, 139, 71, 98, 124, 210, 139, 71, 98, 124, 2, 69, 99, 200, 68, 153, 252, 27, 99, 200, 69, 153, 3, 88, 98, 1, 43, 69, 254, 186, 253, 67, 99, 254, 213, 71, 1, 69, 0, 3, 0, 149, 0, 0, 4, 142, 5, 176, 0, 3, 0, 20, 0, 35, 0, 0, 65, 1, 7, 1, 37, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 33, 17, 33, 17, 17, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 4, 93, 254, 83, 128, 1, 172, 253, 210, 217, 119, 192, 68, 67, 73, 73, 67, 68, 192, 119, 254, 14, 1, 25, 217, 60, 88, 30, 29, 29, 29, 29, 30, 88, 60, 1, 147, 2, 64, 59, 253, 194, 188, 68, 61, 60, 166, 98, 105, 172, 62, 61, 69, 250, 80, 2, 250, 1, 210, 38, 33, 33, 88, 51, 44, 81, 31, 31, 36, 0, 0, 3, 0, 145, 254, 96, 4, 89, 4, 78, 0, 3, 0, 33, 0, 59, 0, 0, 69, 1, 7, 1, 19, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 39, 33, 17, 33, 17, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 37, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 17, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 4, 66, 254, 97, 108, 1, 157, 133, 55, 54, 54, 158, 103, 52, 89, 37, 28, 50, 21, 10, 254, 255, 1, 22, 22, 50, 29, 35, 84, 48, 102, 158, 54, 53, 55, 254, 234, 24, 26, 26, 83, 59, 37, 59, 24, 24, 37, 13, 14, 39, 25, 23, 57, 34, 59, 83, 27, 26, 25, 8, 1, 195, 81, 254, 61, 2, 108, 21, 123, 203, 73, 72, 79, 22, 21, 15, 42, 26, 106, 250, 38, 1, 254, 24, 39, 14, 18, 19, 84, 74, 73, 202, 139, 21, 67, 119, 45, 45, 52, 15, 14, 15, 42, 26, 1, 196, 28, 42, 14, 12, 13, 50, 43, 44, 119, 0, 0, 1, 0, 152, 0, 0, 4, 103, 7, 31, 0, 7, 0, 0, 65, 17, 33, 17, 33, 17, 33, 17, 4, 103, 254, 233, 253, 72, 1, 25, 4, 204, 2, 83, 254, 145, 250, 80, 4, 204, 0, 1, 0, 149, 0, 0, 4, 95, 5, 117, 0, 7, 0, 0, 65, 17, 33, 17, 33, 17, 33, 17, 4, 95, 254, 235, 253, 75, 1, 21, 3, 88, 2, 29, 254, 197, 251, 198, 3, 88, 0, 1, 0, 141, 254, 178, 4, 174, 5, 176, 0, 33, 0, 0, 65, 53, 33, 17, 33, 17, 51, 50, 22, 7, 20, 6, 7, 6, 6, 7, 6, 6, 35, 21, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 35, 17, 4, 59, 252, 82, 1, 25, 172, 159, 167, 1, 7, 10, 10, 36, 28, 29, 81, 56, 147, 204, 64, 64, 57, 86, 79, 79, 223, 137, 172, 4, 204, 228, 250, 80, 2, 96, 185, 187, 38, 83, 39, 40, 72, 26, 27, 32, 213, 99, 82, 82, 209, 111, 146, 220, 74, 73, 74, 1, 136, 0, 0, 1, 0, 149, 254, 226, 4, 131, 4, 58, 0, 33, 0, 0, 65, 53, 33, 17, 33, 17, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 7, 23, 54, 54, 55, 54, 54, 39, 52, 38, 39, 38, 38, 35, 35, 53, 4, 56, 252, 93, 1, 21, 171, 64, 103, 37, 36, 39, 31, 31, 25, 73, 47, 112, 99, 142, 46, 45, 42, 1, 83, 74, 74, 204, 122, 171, 3, 88, 226, 251, 198, 1, 180, 33, 32, 32, 98, 64, 55, 89, 35, 29, 47, 19, 189, 31, 109, 64, 64, 136, 59, 121, 183, 61, 60, 61, 193, 0, 0, 1, 0, 134, 0, 0, 5, 23, 5, 176, 0, 20, 0, 0, 65, 33, 3, 35, 17, 35, 17, 35, 17, 33, 17, 33, 17, 51, 21, 51, 53, 51, 19, 33, 1, 4, 239, 254, 167, 237, 17, 167, 81, 254, 230, 1, 26, 81, 167, 29, 253, 1, 101, 254, 159, 5, 176, 253, 169, 1, 1, 254, 255, 2, 87, 250, 80, 2, 91, 229, 229, 253, 165, 3, 33, 0, 0, 1, 0, 132, 0, 0, 4, 191, 4, 58, 0, 20, 0, 0, 65, 33, 3, 35, 53, 35, 21, 35, 17, 33, 17, 33, 17, 51, 21, 51, 53, 51, 19, 33, 1, 4, 171, 254, 163, 169, 45, 153, 69, 254, 234, 1, 22, 69, 153, 50, 177, 1, 100, 254, 194, 4, 58, 254, 98, 192, 192, 1, 158, 251, 198, 1, 149, 172, 172, 254, 107, 2, 55, 0, 0, 1, 0, 15, 0, 0, 4, 207, 5, 176, 0, 14, 0, 0, 65, 19, 33, 1, 1, 33, 3, 35, 17, 33, 21, 33, 17, 33, 17, 2, 152, 244, 1, 67, 254, 175, 1, 45, 254, 187, 211, 53, 253, 177, 1, 55, 1, 24, 2, 79, 253, 177, 2, 246, 2, 186, 253, 189, 2, 67, 241, 251, 65, 2, 79, 0, 0, 1, 0, 27, 0, 0, 4, 201, 4, 58, 0, 14, 0, 0, 65, 19, 33, 1, 1, 33, 3, 35, 17, 33, 21, 33, 17, 33, 17, 2, 175, 166, 1, 116, 254, 208, 1, 19, 254, 158, 153, 70, 253, 176, 1, 51, 1, 29, 1, 137, 254, 119, 2, 58, 2, 0, 254, 110, 1, 146, 242, 252, 184, 1, 137, 0, 0, 1, 0, 63, 0, 0, 4, 172, 5, 176, 0, 13, 0, 0, 65, 17, 33, 17, 33, 17, 33, 17, 33, 17, 33, 53, 33, 17, 1, 76, 254, 243, 1, 13, 1, 7, 1, 13, 1, 76, 253, 167, 3, 94, 2, 82, 250, 80, 2, 102, 253, 154, 4, 191, 241, 253, 174, 0, 0, 1, 0, 86, 0, 0, 4, 168, 4, 58, 0, 13, 0, 0, 65, 17, 33, 17, 33, 17, 33, 17, 33, 17, 33, 53, 33, 17, 1, 116, 254, 226, 1, 30, 1, 10, 1, 30, 1, 12, 253, 214, 2, 139, 1, 175, 251, 198, 1, 156, 254, 100, 3, 73, 241, 254, 81, 0, 0, 1, 0, 50, 254, 164, 4, 173, 5, 176, 0, 47, 0, 0, 65, 17, 33, 17, 33, 17, 51, 17, 33, 17, 51, 22, 22, 23, 22, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 7, 6, 6, 7, 23, 54, 54, 55, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 38, 38, 39, 2, 239, 253, 67, 1, 12, 165, 1, 12, 19, 32, 46, 15, 15, 17, 5, 4, 2, 1, 3, 4, 17, 15, 16, 49, 37, 2, 80, 126, 48, 48, 67, 22, 21, 19, 19, 20, 11, 28, 18, 50, 162, 117, 3, 66, 2, 110, 250, 80, 4, 183, 251, 73, 2, 80, 1, 39, 31, 31, 78, 40, 40, 75, 27, 35, 79, 38, 39, 70, 27, 28, 33, 1, 228, 1, 47, 41, 40, 111, 66, 65, 147, 76, 69, 138, 63, 35, 65, 30, 83, 104, 1, 0, 1, 0, 84, 254, 235, 4, 171, 4, 58, 0, 35, 0, 0, 115, 33, 17, 51, 17, 33, 17, 51, 22, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 7, 23, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 35, 17, 33, 84, 1, 11, 143, 1, 12, 1, 42, 55, 16, 16, 11, 12, 15, 16, 54, 42, 117, 76, 118, 40, 40, 40, 60, 55, 56, 160, 101, 1, 253, 90, 3, 73, 252, 183, 1, 176, 4, 45, 34, 35, 84, 43, 41, 82, 36, 36, 57, 16, 196, 18, 99, 66, 65, 149, 67, 103, 175, 65, 65, 76, 3, 1, 152, 0, 2, 0, 88, 255, 235, 4, 174, 5, 197, 0, 77, 0, 103, 0, 0, 69, 53, 34, 38, 39, 54, 54, 55, 54, 54, 53, 17, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 17, 20, 22, 23, 22, 22, 23, 34, 34, 35, 38, 38, 39, 38, 38, 39, 38, 38, 53, 17, 52, 54, 55, 54, 54, 55, 54, 54, 51, 53, 34, 6, 7, 6, 6, 7, 6, 6, 21, 17, 20, 22, 23, 22, 22, 23, 22, 22, 51, 50, 54, 55, 22, 22, 1, 17, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 17, 20, 6, 7, 6, 6, 7, 38, 38, 39, 38, 38, 4, 174, 35, 62, 28, 26, 40, 15, 16, 17, 51, 46, 47, 129, 79, 73, 120, 42, 43, 46, 22, 21, 19, 55, 35, 4, 7, 3, 43, 49, 23, 47, 66, 18, 10, 10, 13, 12, 6, 14, 8, 9, 21, 12, 55, 98, 41, 46, 74, 24, 25, 27, 22, 19, 36, 147, 99, 53, 121, 66, 68, 120, 54, 68, 152, 254, 177, 9, 10, 7, 19, 12, 17, 26, 9, 9, 10, 7, 8, 6, 18, 11, 18, 28, 10, 11, 11, 17, 219, 8, 8, 40, 90, 49, 56, 124, 66, 1, 47, 116, 194, 71, 70, 78, 75, 65, 66, 178, 104, 254, 192, 71, 132, 58, 53, 97, 42, 1, 16, 14, 28, 99, 65, 37, 84, 45, 1, 68, 67, 115, 42, 20, 33, 11, 12, 13, 237, 34, 32, 33, 102, 62, 62, 147, 80, 254, 190, 66, 125, 56, 104, 175, 46, 25, 27, 33, 31, 29, 31, 2, 170, 1, 67, 79, 105, 28, 21, 19, 27, 30, 31, 102, 75, 254, 180, 41, 78, 35, 31, 57, 26, 28, 62, 33, 38, 84, 0, 2, 0, 67, 255, 232, 4, 212, 4, 78, 0, 77, 0, 109, 0, 0, 69, 53, 34, 38, 39, 54, 54, 55, 54, 54, 53, 53, 52, 38, 39, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 6, 6, 21, 21, 20, 22, 23, 22, 22, 23, 34, 34, 35, 38, 38, 39, 38, 38, 53, 53, 52, 54, 55, 54, 54, 55, 53, 34, 6, 7, 6, 6, 7, 6, 6, 21, 21, 20, 22, 23, 22, 22, 23, 22, 22, 51, 50, 54, 55, 22, 22, 1, 53, 52, 54, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 22, 22, 21, 21, 20, 6, 7, 6, 6, 7, 38, 38, 39, 38, 38, 4, 212, 43, 79, 36, 27, 45, 16, 23, 23, 21, 20, 22, 66, 42, 38, 92, 52, 48, 86, 36, 41, 68, 22, 18, 20, 14, 15, 13, 38, 26, 2, 5, 2, 59, 94, 33, 35, 37, 17, 16, 16, 48, 30, 64, 113, 46, 50, 79, 25, 20, 22, 36, 34, 35, 98, 59, 62, 150, 85, 74, 133, 59, 72, 171, 254, 109, 6, 5, 6, 22, 13, 10, 25, 14, 14, 24, 10, 13, 20, 7, 6, 6, 14, 14, 13, 38, 24, 25, 38, 13, 11, 11, 24, 165, 8, 7, 29, 65, 36, 47, 108, 58, 143, 62, 115, 49, 56, 89, 30, 28, 30, 25, 24, 28, 82, 53, 44, 104, 57, 148, 49, 92, 42, 38, 71, 32, 2, 49, 41, 43, 118, 69, 95, 52, 85, 31, 32, 37, 4, 232, 34, 31, 34, 98, 59, 48, 111, 60, 93, 78, 144, 61, 61, 100, 35, 36, 40, 26, 24, 26, 27, 2, 36, 152, 26, 48, 20, 25, 42, 12, 10, 11, 11, 11, 13, 43, 27, 24, 54, 29, 145, 38, 69, 31, 28, 48, 20, 26, 60, 32, 29, 64, 0, 0, 1, 0, 1, 254, 161, 4, 240, 5, 176, 0, 15, 0, 0, 83, 17, 33, 17, 33, 19, 35, 17, 33, 17, 33, 17, 51, 53, 33, 21, 233, 2, 240, 1, 7, 16, 152, 254, 233, 254, 190, 221, 253, 37, 4, 191, 251, 65, 254, 161, 2, 85, 4, 186, 251, 72, 3, 199, 241, 241, 0, 1, 0, 33, 254, 191, 4, 191, 4, 58, 0, 15, 0, 0, 83, 17, 33, 17, 33, 19, 35, 17, 33, 17, 33, 17, 51, 53, 33, 21, 221, 2, 195, 1, 12, 19, 148, 254, 225, 254, 239, 172, 253, 122, 3, 73, 252, 183, 254, 191, 2, 47, 3, 76, 252, 182, 2, 89, 241, 241, 0, 2, 0, 133, 0, 0, 4, 71, 5, 176, 0, 3, 0, 35, 0, 0, 65, 17, 35, 17, 1, 33, 17, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 17, 33, 17, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 17, 33, 2, 155, 165, 2, 81, 254, 230, 26, 56, 27, 28, 50, 20, 49, 72, 24, 24, 23, 254, 231, 67, 62, 61, 175, 108, 19, 51, 28, 27, 56, 26, 1, 26, 1, 31, 2, 244, 253, 12, 4, 145, 253, 93, 7, 10, 3, 4, 3, 23, 29, 28, 96, 73, 1, 197, 254, 59, 125, 181, 58, 58, 55, 4, 4, 3, 11, 7, 253, 213, 0, 0, 2, 0, 116, 0, 0, 4, 89, 4, 58, 0, 3, 0, 32, 0, 0, 101, 17, 35, 17, 5, 17, 33, 17, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 17, 33, 17, 20, 22, 23, 22, 22, 51, 50, 54, 55, 17, 2, 185, 165, 2, 69, 254, 233, 18, 36, 17, 34, 70, 37, 59, 86, 28, 28, 27, 254, 234, 70, 66, 65, 188, 117, 51, 109, 52, 165, 2, 128, 253, 128, 165, 4, 58, 254, 4, 4, 6, 3, 4, 5, 19, 22, 22, 73, 54, 1, 84, 254, 172, 108, 156, 50, 51, 49, 11, 10, 254, 163, 0, 1, 0, 119, 0, 0, 4, 94, 5, 176, 0, 25, 0, 0, 115, 33, 17, 54, 54, 51, 50, 22, 23, 22, 22, 21, 19, 33, 19, 38, 38, 39, 38, 38, 35, 34, 6, 7, 17, 33, 119, 1, 35, 52, 103, 56, 54, 74, 23, 22, 20, 6, 1, 36, 6, 1, 72, 65, 66, 182, 111, 57, 103, 51, 254, 221, 2, 146, 11, 16, 32, 30, 30, 88, 58, 254, 65, 1, 191, 118, 182, 62, 61, 63, 13, 11, 2, 35, 0, 2, 255, 213, 255, 233, 4, 140, 5, 195, 0, 57, 0, 78, 0, 0, 67, 6, 22, 23, 22, 22, 23, 21, 22, 22, 23, 22, 22, 51, 50, 54, 55, 39, 6, 6, 7, 6, 6, 35, 38, 38, 39, 38, 38, 39, 53, 33, 55, 52, 38, 39, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 6, 6, 7, 7, 38, 38, 39, 38, 38, 55, 5, 53, 54, 54, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 22, 22, 21, 21, 34, 9, 28, 34, 33, 100, 63, 1, 71, 68, 67, 196, 128, 107, 186, 61, 49, 23, 59, 33, 33, 72, 36, 79, 106, 32, 32, 28, 1, 2, 133, 2, 20, 22, 22, 71, 51, 52, 138, 89, 60, 108, 47, 69, 109, 34, 23, 28, 4, 1, 14, 19, 6, 5, 5, 1, 1, 93, 2, 7, 7, 11, 44, 32, 17, 39, 23, 34, 52, 18, 29, 28, 5, 3, 2, 4, 58, 92, 144, 53, 53, 68, 16, 57, 131, 226, 84, 84, 97, 44, 32, 248, 11, 20, 7, 8, 9, 1, 59, 49, 49, 127, 68, 24, 196, 82, 161, 73, 72, 125, 46, 45, 52, 31, 28, 42, 135, 84, 55, 128, 68, 10, 13, 36, 23, 23, 58, 35, 210, 10, 37, 60, 31, 52, 90, 25, 13, 14, 21, 18, 27, 84, 44, 23, 46, 22, 47, 0, 2, 0, 21, 255, 236, 4, 145, 4, 78, 0, 44, 0, 58, 0, 0, 69, 50, 54, 55, 39, 6, 6, 35, 34, 38, 39, 38, 38, 39, 39, 33, 55, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 38, 38, 39, 35, 6, 22, 23, 22, 22, 23, 23, 22, 22, 23, 22, 22, 19, 50, 22, 23, 22, 22, 23, 21, 33, 54, 54, 55, 54, 54, 2, 241, 122, 198, 69, 120, 47, 100, 89, 45, 71, 26, 25, 32, 7, 1, 2, 77, 1, 1, 55, 54, 54, 162, 106, 91, 151, 57, 57, 76, 16, 38, 38, 5, 185, 2, 34, 33, 33, 97, 61, 1, 6, 78, 61, 62, 168, 80, 36, 53, 18, 17, 17, 2, 254, 216, 6, 22, 18, 18, 53, 20, 93, 85, 156, 41, 54, 35, 31, 29, 80, 46, 6, 134, 108, 190, 71, 71, 82, 66, 57, 58, 158, 91, 26, 97, 69, 77, 130, 51, 51, 70, 17, 12, 96, 181, 62, 65, 72, 3, 113, 29, 25, 26, 69, 40, 26, 41, 78, 30, 30, 36, 0, 0, 1, 0, 164, 254, 174, 4, 196, 5, 176, 0, 38, 0, 0, 65, 1, 33, 1, 35, 17, 33, 17, 33, 17, 51, 50, 22, 23, 22, 22, 7, 20, 6, 7, 6, 6, 7, 6, 6, 35, 21, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 3, 40, 1, 112, 254, 166, 254, 243, 115, 254, 230, 1, 26, 211, 61, 97, 35, 44, 46, 1, 7, 10, 10, 35, 28, 29, 81, 56, 148, 204, 64, 64, 57, 58, 53, 54, 152, 92, 3, 51, 2, 125, 253, 175, 2, 81, 250, 80, 2, 92, 36, 35, 45, 150, 104, 38, 82, 39, 40, 72, 27, 27, 32, 215, 100, 83, 82, 209, 110, 123, 195, 72, 71, 91, 20, 0, 1, 0, 152, 254, 216, 4, 121, 4, 58, 0, 34, 0, 0, 65, 1, 33, 3, 35, 17, 33, 17, 33, 17, 51, 22, 22, 23, 22, 22, 21, 6, 6, 7, 6, 6, 7, 23, 54, 54, 55, 54, 54, 39, 52, 38, 39, 38, 38, 3, 43, 1, 78, 254, 162, 248, 117, 254, 234, 1, 22, 179, 57, 93, 32, 32, 35, 1, 28, 26, 24, 67, 42, 112, 93, 135, 43, 43, 41, 1, 46, 42, 43, 120, 2, 90, 1, 224, 254, 98, 1, 158, 251, 198, 1, 149, 3, 33, 30, 31, 90, 60, 52, 84, 33, 29, 47, 20, 189, 31, 106, 63, 62, 133, 59, 90, 144, 56, 55, 77, 0, 1, 0, 141, 254, 75, 4, 56, 5, 176, 0, 29, 0, 0, 65, 33, 17, 33, 17, 33, 17, 20, 6, 7, 6, 6, 35, 34, 38, 39, 7, 22, 22, 51, 50, 54, 55, 54, 54, 53, 17, 33, 17, 33, 1, 166, 254, 231, 1, 25, 1, 120, 16, 16, 15, 46, 29, 25, 52, 22, 14, 38, 65, 38, 87, 140, 49, 48, 52, 254, 230, 254, 136, 5, 176, 250, 80, 2, 92, 253, 125, 42, 64, 21, 21, 22, 5, 6, 222, 10, 7, 52, 51, 50, 149, 96, 5, 215, 253, 142, 0, 1, 0, 143, 254, 75, 4, 49, 4, 58, 0, 29, 0, 0, 65, 33, 17, 33, 17, 33, 17, 20, 6, 7, 6, 6, 35, 34, 38, 39, 7, 22, 22, 51, 50, 54, 55, 54, 54, 53, 17, 33, 17, 33, 1, 165, 254, 234, 1, 22, 1, 118, 16, 16, 15, 46, 29, 25, 52, 21, 15, 38, 64, 38, 87, 139, 48, 48, 51, 254, 234, 254, 138, 4, 58, 251, 198, 1, 164, 254, 52, 42, 65, 22, 21, 22, 7, 6, 221, 10, 7, 52, 50, 50, 149, 96, 4, 98, 254, 74, 0, 2, 0, 78, 255, 234, 4, 116, 5, 197, 0, 52, 0, 72, 0, 0, 65, 34, 6, 7, 6, 6, 7, 23, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 22, 22, 21, 21, 33, 21, 20, 22, 23, 22, 22, 23, 22, 22, 51, 22, 54, 55, 54, 54, 55, 54, 54, 53, 17, 52, 38, 39, 38, 38, 39, 38, 38, 3, 34, 38, 39, 38, 38, 39, 38, 38, 53, 53, 33, 6, 6, 7, 6, 6, 7, 6, 6, 2, 51, 77, 124, 46, 47, 62, 14, 49, 24, 65, 41, 40, 95, 56, 46, 76, 31, 46, 60, 15, 12, 10, 252, 243, 31, 30, 30, 86, 55, 58, 145, 87, 74, 137, 58, 62, 100, 35, 36, 38, 24, 24, 37, 126, 89, 58, 139, 43, 39, 64, 25, 37, 49, 12, 8, 8, 1, 245, 1, 13, 12, 16, 47, 33, 28, 69, 5, 197, 19, 13, 14, 28, 8, 227, 10, 24, 10, 9, 13, 18, 17, 25, 83, 53, 37, 84, 44, 69, 204, 97, 169, 69, 67, 104, 38, 37, 40, 1, 39, 37, 37, 113, 68, 69, 164, 92, 1, 20, 76, 138, 61, 89, 142, 41, 28, 29, 251, 23, 15, 14, 20, 67, 43, 27, 60, 32, 91, 47, 89, 38, 47, 75, 27, 22, 24, 0, 0, 1, 0, 124, 255, 235, 4, 131, 5, 176, 0, 45, 0, 0, 65, 1, 21, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 33, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 35, 1, 39, 33, 21, 3, 30, 254, 166, 137, 74, 112, 36, 31, 32, 33, 32, 32, 92, 58, 51, 82, 29, 29, 31, 254, 231, 88, 71, 71, 180, 93, 115, 193, 71, 70, 79, 58, 56, 50, 144, 91, 3, 1, 113, 1, 252, 87, 4, 204, 254, 150, 184, 35, 37, 32, 99, 68, 44, 75, 28, 28, 31, 31, 27, 27, 72, 42, 112, 161, 51, 52, 49, 57, 55, 55, 160, 102, 103, 162, 58, 52, 67, 14, 1, 152, 184, 228, 0, 0, 1, 0, 114, 254, 117, 4, 119, 4, 58, 0, 45, 0, 0, 65, 1, 21, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 33, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 35, 1, 39, 33, 21, 3, 13, 254, 172, 138, 70, 107, 36, 36, 37, 34, 31, 32, 93, 58, 51, 83, 29, 29, 31, 254, 232, 88, 71, 71, 180, 93, 114, 193, 70, 70, 79, 62, 60, 49, 138, 86, 2, 1, 107, 1, 252, 84, 3, 88, 254, 146, 180, 31, 33, 33, 104, 73, 44, 75, 27, 28, 32, 31, 27, 27, 73, 41, 111, 161, 51, 52, 49, 57, 55, 55, 159, 102, 106, 167, 58, 49, 63, 14, 1, 153, 183, 226, 0, 255, 255, 0, 40, 254, 75, 4, 146, 5, 176, 4, 38, 1, 123, 87, 0, 0, 39, 2, 106, 254, 251, 0, 23, 0, 6, 2, 111, 189, 0, 255, 255, 0, 73, 254, 70, 4, 125, 4, 58, 4, 38, 1, 181, 75, 0, 0, 39, 2, 106, 255, 28, 255, 59, 0, 7, 2, 111, 255, 126, 255, 251, 0, 2, 0, 77, 0, 0, 4, 78, 5, 176, 0, 16, 0, 31, 0, 0, 65, 35, 34, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 51, 33, 17, 33, 17, 35, 34, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 51, 51, 3, 53, 204, 126, 200, 70, 70, 74, 74, 70, 70, 200, 126, 1, 229, 254, 231, 204, 66, 97, 32, 32, 31, 31, 32, 32, 97, 66, 204, 3, 176, 70, 62, 62, 173, 102, 104, 174, 63, 63, 71, 5, 176, 251, 50, 42, 35, 34, 91, 49, 47, 87, 34, 34, 40, 0, 0, 2, 0, 92, 0, 0, 4, 242, 5, 176, 0, 36, 0, 51, 0, 0, 97, 33, 50, 54, 55, 54, 54, 55, 54, 2, 39, 33, 22, 18, 7, 6, 6, 7, 6, 6, 7, 35, 17, 33, 17, 35, 34, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 55, 35, 34, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 51, 51, 2, 19, 1, 59, 103, 155, 52, 52, 54, 2, 2, 43, 26, 254, 239, 30, 32, 2, 1, 14, 16, 16, 52, 39, 31, 254, 231, 3, 102, 162, 57, 57, 61, 61, 57, 57, 162, 105, 3, 40, 60, 19, 20, 20, 20, 20, 19, 60, 40, 3, 80, 73, 72, 203, 123, 95, 1, 11, 91, 91, 254, 239, 89, 59, 116, 46, 46, 57, 1, 4, 206, 254, 0, 70, 62, 62, 173, 102, 104, 174, 63, 63, 71, 226, 42, 35, 34, 91, 49, 47, 87, 34, 34, 40, 0, 2, 0, 91, 255, 233, 4, 163, 6, 24, 0, 79, 0, 114, 0, 0, 83, 21, 20, 22, 23, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 22, 22, 23, 22, 22, 55, 50, 54, 55, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 33, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 6, 6, 7, 34, 38, 39, 38, 38, 39, 38, 38, 55, 17, 33, 17, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 6, 6, 37, 17, 22, 22, 23, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 38, 38, 53, 53, 52, 54, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 91, 9, 8, 17, 68, 47, 32, 75, 44, 42, 71, 29, 13, 23, 10, 10, 22, 12, 41, 113, 70, 67, 121, 47, 28, 43, 14, 8, 10, 1, 1, 11, 9, 10, 25, 13, 254, 240, 15, 24, 8, 7, 7, 1, 1, 4, 4, 3, 11, 7, 6, 15, 9, 8, 15, 5, 5, 7, 2, 2, 2, 1, 254, 233, 8, 16, 9, 21, 49, 27, 43, 74, 31, 53, 72, 15, 7, 7, 1, 176, 1, 5, 4, 5, 12, 7, 10, 23, 13, 13, 22, 9, 18, 22, 4, 3, 3, 2, 3, 6, 18, 17, 10, 25, 15, 10, 19, 9, 5, 10, 2, 80, 141, 48, 89, 40, 80, 126, 38, 25, 26, 33, 30, 14, 32, 18, 16, 27, 12, 39, 35, 2, 68, 68, 41, 110, 67, 43, 99, 54, 51, 103, 51, 50, 99, 49, 51, 104, 51, 49, 99, 49, 48, 83, 35, 40, 61, 20, 17, 19, 1, 11, 11, 8, 23, 13, 13, 30, 17, 4, 205, 253, 254, 8, 13, 6, 14, 15, 27, 24, 43, 147, 97, 39, 87, 214, 253, 247, 27, 47, 21, 6, 9, 4, 6, 6, 9, 8, 17, 62, 42, 24, 54, 30, 141, 29, 57, 25, 48, 74, 23, 13, 15, 5, 4, 3, 7, 0, 1, 0, 63, 255, 233, 4, 161, 5, 176, 0, 83, 0, 0, 65, 21, 22, 22, 23, 22, 22, 55, 50, 54, 55, 54, 54, 55, 54, 54, 55, 54, 38, 39, 33, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 6, 6, 7, 34, 38, 39, 38, 38, 53, 53, 52, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 35, 21, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 35, 21, 51, 50, 22, 23, 22, 22, 1, 191, 3, 47, 41, 40, 115, 72, 82, 150, 58, 32, 51, 17, 12, 15, 1, 2, 43, 26, 254, 238, 14, 23, 8, 8, 9, 1, 1, 7, 6, 7, 18, 12, 15, 37, 22, 12, 19, 6, 7, 6, 24, 27, 27, 86, 62, 38, 64, 26, 49, 53, 63, 59, 59, 173, 109, 206, 206, 46, 69, 22, 23, 22, 20, 20, 24, 81, 57, 114, 171, 31, 51, 19, 19, 21, 1, 126, 106, 80, 114, 36, 36, 33, 2, 67, 69, 38, 99, 60, 47, 109, 61, 103, 202, 98, 48, 97, 48, 52, 106, 52, 42, 75, 32, 37, 61, 22, 25, 27, 1, 10, 9, 10, 26, 14, 108, 57, 102, 42, 41, 62, 18, 17, 42, 25, 47, 126, 77, 102, 155, 53, 52, 54, 230, 25, 23, 24, 69, 43, 48, 74, 27, 32, 32, 229, 31, 28, 29, 81, 0, 1, 0, 75, 255, 227, 4, 159, 4, 58, 0, 80, 0, 0, 65, 52, 38, 39, 38, 38, 35, 35, 23, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 35, 23, 51, 50, 22, 23, 22, 22, 21, 21, 22, 22, 23, 22, 22, 55, 50, 54, 55, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 33, 22, 22, 7, 6, 6, 7, 6, 6, 7, 34, 38, 39, 38, 38, 55, 53, 52, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 2, 236, 59, 56, 57, 166, 107, 228, 6, 222, 42, 62, 20, 22, 20, 15, 16, 19, 67, 49, 143, 2, 210, 31, 48, 15, 14, 15, 5, 44, 41, 44, 136, 92, 65, 116, 45, 24, 39, 13, 10, 12, 1, 1, 11, 10, 10, 25, 13, 254, 241, 30, 32, 2, 1, 8, 7, 7, 22, 14, 16, 23, 8, 13, 11, 1, 20, 22, 23, 73, 54, 30, 51, 19, 33, 33, 2, 247, 76, 121, 41, 41, 44, 226, 18, 16, 18, 50, 30, 24, 40, 15, 18, 20, 212, 15, 15, 13, 39, 24, 75, 62, 91, 29, 32, 29, 2, 55, 56, 31, 78, 48, 38, 90, 50, 40, 81, 40, 40, 79, 39, 78, 163, 78, 57, 92, 33, 37, 40, 1, 8, 8, 12, 42, 25, 48, 40, 72, 30, 29, 45, 13, 14, 32, 19, 31, 81, 0, 1, 0, 168, 254, 110, 4, 197, 5, 176, 0, 69, 0, 0, 83, 33, 50, 22, 23, 22, 22, 21, 21, 20, 22, 23, 22, 22, 23, 51, 21, 20, 6, 7, 6, 6, 7, 23, 54, 54, 55, 54, 54, 53, 55, 35, 52, 52, 53, 53, 52, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 33, 23, 33, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 35, 236, 1, 3, 57, 88, 29, 28, 29, 3, 6, 6, 25, 23, 171, 16, 10, 12, 33, 19, 147, 43, 75, 27, 27, 31, 1, 217, 25, 28, 28, 92, 67, 47, 76, 28, 41, 41, 72, 67, 68, 194, 123, 254, 207, 5, 1, 44, 63, 93, 30, 30, 30, 25, 26, 30, 101, 71, 232, 2, 71, 32, 31, 29, 85, 53, 104, 17, 67, 38, 38, 70, 19, 22, 40, 78, 35, 41, 74, 36, 76, 39, 100, 56, 56, 120, 57, 221, 11, 14, 14, 69, 60, 110, 45, 44, 67, 20, 21, 51, 30, 44, 112, 67, 102, 160, 55, 55, 58, 224, 32, 28, 29, 81, 48, 47, 73, 26, 30, 31, 0, 0, 1, 0, 192, 254, 96, 4, 149, 4, 58, 0, 73, 0, 0, 83, 33, 50, 22, 23, 22, 22, 21, 21, 20, 22, 23, 22, 22, 23, 51, 21, 20, 6, 7, 6, 6, 7, 23, 54, 54, 55, 54, 54, 53, 55, 34, 34, 35, 52, 52, 53, 38, 38, 39, 38, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 33, 23, 33, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 35, 248, 1, 1, 48, 72, 23, 21, 22, 1, 3, 3, 12, 12, 190, 14, 12, 12, 33, 19, 147, 43, 75, 27, 27, 31, 1, 67, 127, 10, 5, 13, 20, 11, 27, 18, 16, 41, 24, 30, 50, 19, 32, 32, 65, 60, 60, 172, 107, 254, 211, 6, 1, 39, 46, 70, 23, 23, 23, 19, 19, 23, 73, 51, 246, 1, 135, 22, 21, 20, 57, 37, 75, 9, 45, 24, 25, 46, 10, 24, 30, 94, 41, 41, 74, 36, 76, 39, 100, 56, 56, 120, 57, 221, 3, 11, 4, 52, 56, 33, 17, 30, 13, 13, 22, 8, 16, 36, 21, 34, 84, 51, 80, 128, 45, 44, 48, 222, 22, 19, 20, 52, 30, 28, 45, 17, 19, 21, 0, 0, 1, 0, 15, 255, 233, 4, 179, 5, 176, 0, 78, 0, 0, 65, 17, 22, 22, 23, 22, 22, 23, 22, 22, 55, 50, 54, 55, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 35, 22, 22, 7, 6, 6, 7, 6, 6, 7, 6, 6, 7, 34, 38, 39, 38, 38, 39, 38, 38, 53, 17, 33, 17, 20, 6, 7, 6, 6, 7, 6, 6, 7, 6, 6, 35, 35, 21, 51, 50, 54, 55, 54, 54, 55, 54, 54, 55, 54, 54, 53, 17, 2, 46, 1, 7, 5, 11, 37, 26, 39, 111, 69, 66, 121, 47, 29, 45, 13, 8, 8, 1, 1, 10, 8, 6, 16, 8, 243, 20, 23, 2, 1, 4, 2, 3, 8, 6, 9, 24, 16, 10, 15, 5, 3, 4, 1, 2, 1, 253, 105, 2, 2, 2, 6, 3, 4, 8, 5, 17, 54, 37, 21, 33, 93, 137, 49, 29, 47, 15, 10, 15, 5, 4, 4, 4, 202, 252, 91, 29, 53, 24, 44, 68, 25, 38, 35, 2, 67, 69, 44, 116, 72, 40, 92, 50, 58, 115, 56, 43, 88, 43, 100, 203, 100, 33, 60, 26, 36, 62, 24, 38, 42, 1, 10, 9, 5, 13, 8, 9, 20, 12, 4, 139, 253, 80, 52, 93, 41, 36, 65, 29, 27, 49, 21, 66, 61, 228, 64, 65, 41, 109, 68, 44, 100, 55, 50, 112, 60, 1, 202, 0, 1, 0, 40, 255, 233, 4, 176, 4, 58, 0, 75, 0, 0, 65, 33, 17, 20, 6, 7, 6, 6, 7, 6, 6, 35, 7, 7, 51, 50, 54, 55, 54, 54, 55, 54, 54, 55, 54, 54, 53, 53, 51, 17, 22, 22, 23, 22, 22, 23, 22, 22, 55, 50, 54, 55, 54, 54, 55, 54, 54, 55, 54, 38, 39, 33, 22, 22, 23, 22, 22, 7, 20, 6, 7, 6, 6, 7, 6, 6, 7, 34, 38, 39, 38, 38, 39, 38, 38, 53, 3, 41, 253, 115, 2, 1, 3, 8, 6, 11, 35, 25, 21, 4, 51, 65, 103, 39, 17, 30, 13, 18, 28, 10, 10, 11, 95, 1, 8, 5, 11, 39, 27, 41, 114, 72, 69, 126, 48, 30, 46, 14, 8, 8, 1, 2, 42, 27, 254, 240, 14, 22, 7, 9, 9, 1, 3, 2, 3, 9, 6, 9, 25, 14, 8, 13, 5, 4, 5, 2, 1, 1, 4, 58, 254, 52, 44, 77, 33, 42, 68, 26, 47, 43, 1, 241, 38, 37, 17, 41, 24, 36, 89, 52, 60, 145, 83, 231, 253, 226, 30, 56, 24, 47, 73, 26, 41, 37, 2, 63, 63, 40, 108, 67, 37, 85, 46, 97, 191, 93, 43, 87, 43, 52, 104, 52, 28, 52, 23, 34, 56, 21, 32, 36, 1, 11, 9, 8, 20, 12, 10, 24, 12, 0, 0, 1, 0, 72, 255, 233, 4, 174, 5, 176, 0, 56, 0, 0, 65, 33, 17, 35, 17, 33, 17, 33, 17, 51, 17, 22, 22, 23, 22, 22, 23, 22, 22, 55, 50, 54, 55, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 33, 22, 22, 7, 6, 6, 7, 6, 6, 7, 6, 6, 7, 34, 38, 39, 38, 38, 39, 38, 52, 53, 3, 49, 254, 230, 181, 254, 230, 1, 26, 181, 2, 8, 7, 11, 36, 25, 39, 109, 69, 70, 128, 49, 26, 43, 14, 12, 13, 1, 1, 12, 11, 9, 24, 12, 254, 237, 30, 32, 1, 1, 3, 2, 3, 10, 6, 9, 24, 15, 5, 8, 3, 3, 4, 1, 2, 5, 176, 253, 142, 2, 114, 250, 80, 2, 92, 254, 241, 36, 64, 28, 46, 73, 27, 43, 39, 2, 68, 68, 37, 97, 59, 47, 112, 62, 55, 109, 53, 47, 93, 46, 100, 203, 100, 31, 56, 25, 40, 67, 25, 36, 39, 1, 7, 6, 5, 14, 8, 8, 18, 9, 0, 0, 1, 0, 68, 255, 234, 4, 138, 4, 58, 0, 53, 0, 0, 65, 21, 22, 22, 23, 22, 22, 23, 22, 22, 55, 50, 54, 55, 54, 54, 55, 54, 54, 55, 54, 38, 39, 33, 22, 22, 7, 6, 6, 7, 6, 6, 7, 6, 6, 7, 34, 38, 39, 38, 38, 39, 38, 38, 55, 17, 33, 17, 35, 17, 33, 17, 33, 17, 1, 236, 3, 24, 21, 21, 57, 37, 36, 89, 50, 65, 118, 45, 23, 36, 14, 13, 15, 1, 2, 31, 19, 254, 242, 20, 21, 1, 1, 4, 4, 3, 10, 6, 5, 12, 7, 13, 20, 8, 4, 6, 3, 3, 4, 1, 254, 234, 145, 254, 233, 1, 23, 1, 173, 118, 60, 96, 37, 37, 53, 18, 18, 14, 1, 63, 63, 32, 79, 48, 47, 113, 64, 97, 191, 93, 94, 192, 95, 47, 80, 32, 32, 48, 16, 13, 14, 1, 12, 11, 6, 14, 7, 12, 29, 15, 3, 3, 254, 85, 1, 171, 251, 198, 1, 173, 0, 1, 0, 99, 255, 235, 4, 163, 5, 197, 0, 60, 0, 0, 69, 50, 54, 55, 54, 54, 55, 54, 38, 39, 33, 22, 22, 7, 6, 6, 7, 6, 6, 7, 34, 38, 39, 38, 38, 53, 17, 52, 54, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 55, 38, 38, 35, 34, 6, 7, 6, 6, 7, 6, 6, 21, 17, 20, 22, 23, 22, 22, 23, 22, 22, 2, 148, 104, 189, 72, 72, 86, 2, 2, 39, 20, 254, 238, 23, 29, 2, 1, 32, 29, 30, 92, 60, 66, 103, 36, 36, 38, 18, 17, 21, 67, 42, 25, 57, 32, 88, 143, 65, 63, 67, 176, 116, 69, 127, 55, 82, 127, 41, 29, 31, 35, 34, 32, 94, 60, 64, 154, 21, 56, 57, 56, 173, 117, 88, 174, 86, 86, 176, 86, 52, 85, 29, 31, 33, 1, 61, 53, 53, 142, 81, 1, 8, 54, 101, 43, 55, 81, 24, 13, 15, 35, 33, 209, 44, 45, 30, 27, 43, 136, 86, 64, 150, 82, 254, 250, 87, 159, 67, 68, 109, 38, 43, 47, 0, 1, 0, 133, 255, 235, 4, 137, 4, 78, 0, 54, 0, 0, 101, 34, 38, 39, 38, 38, 53, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 55, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 52, 38, 39, 33, 22, 22, 21, 6, 6, 7, 6, 6, 2, 197, 80, 112, 36, 36, 33, 31, 34, 33, 105, 73, 82, 141, 54, 46, 31, 82, 52, 34, 80, 44, 133, 207, 70, 71, 74, 76, 74, 73, 214, 139, 96, 163, 61, 60, 70, 2, 16, 11, 254, 241, 14, 5, 1, 17, 20, 20, 66, 205, 56, 45, 45, 112, 57, 42, 55, 112, 45, 44, 56, 30, 28, 220, 19, 27, 9, 5, 6, 88, 74, 74, 196, 108, 42, 108, 196, 74, 75, 88, 45, 46, 45, 138, 93, 46, 98, 47, 47, 98, 46, 33, 51, 18, 18, 20, 0, 0, 1, 0, 68, 255, 233, 4, 168, 5, 176, 0, 49, 0, 0, 65, 17, 22, 22, 23, 22, 22, 23, 22, 22, 55, 50, 54, 55, 54, 54, 55, 54, 54, 55, 54, 38, 39, 33, 22, 22, 7, 6, 6, 7, 6, 6, 7, 6, 6, 7, 34, 38, 39, 38, 38, 39, 38, 38, 53, 17, 33, 53, 33, 21, 1, 130, 2, 12, 10, 14, 44, 29, 49, 138, 87, 82, 151, 58, 29, 47, 16, 16, 19, 1, 2, 42, 27, 254, 238, 29, 33, 2, 1, 6, 6, 7, 22, 15, 16, 40, 25, 16, 29, 12, 10, 16, 6, 7, 8, 1, 77, 252, 92, 4, 202, 252, 171, 44, 78, 33, 47, 74, 28, 48, 44, 2, 68, 68, 34, 87, 52, 51, 121, 69, 103, 202, 98, 100, 203, 100, 41, 74, 32, 39, 64, 22, 24, 25, 1, 11, 10, 9, 25, 15, 19, 49, 28, 3, 85, 230, 230, 0, 0, 1, 0, 66, 255, 233, 4, 134, 4, 58, 0, 40, 0, 0, 65, 17, 22, 22, 23, 22, 22, 55, 50, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 33, 22, 22, 7, 6, 6, 7, 6, 6, 7, 34, 38, 39, 38, 38, 53, 17, 33, 53, 33, 21, 1, 93, 5, 58, 51, 51, 143, 89, 81, 148, 56, 56, 68, 2, 1, 11, 10, 10, 25, 13, 254, 242, 30, 32, 2, 1, 18, 15, 17, 49, 33, 28, 45, 15, 15, 16, 1, 90, 252, 117, 3, 88, 254, 27, 105, 150, 47, 48, 44, 2, 55, 56, 55, 167, 113, 36, 74, 37, 37, 73, 35, 71, 150, 71, 50, 79, 28, 30, 32, 1, 25, 22, 22, 61, 36, 1, 229, 226, 226, 0, 1, 0, 66, 255, 235, 4, 102, 5, 197, 0, 76, 0, 0, 83, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 33, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 51, 51, 53, 35, 34, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 33, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 23, 6, 6, 7, 6, 6, 66, 83, 74, 74, 204, 121, 97, 191, 72, 65, 79, 254, 231, 33, 29, 29, 83, 49, 66, 102, 35, 35, 37, 24, 24, 32, 106, 72, 197, 197, 63, 90, 28, 29, 26, 30, 31, 31, 95, 66, 43, 74, 27, 27, 31, 1, 26, 78, 66, 66, 176, 98, 121, 197, 70, 70, 76, 31, 29, 29, 84, 53, 50, 81, 30, 42, 45, 1, 152, 102, 160, 55, 55, 57, 55, 58, 53, 154, 105, 42, 72, 27, 27, 31, 31, 28, 28, 75, 44, 50, 76, 27, 35, 33, 220, 29, 27, 27, 75, 46, 39, 71, 26, 26, 31, 26, 24, 24, 68, 42, 96, 152, 54, 53, 57, 54, 52, 53, 155, 102, 50, 92, 40, 41, 66, 24, 17, 50, 32, 45, 122, 255, 255, 0, 158, 254, 34, 4, 46, 0, 0, 4, 39, 0, 102, 0, 10, 254, 251, 0, 6, 0, 102, 10, 0, 0, 1, 1, 195, 3, 228, 2, 249, 6, 24, 0, 12, 0, 0, 65, 53, 51, 21, 20, 22, 23, 7, 38, 38, 39, 38, 38, 1, 195, 223, 49, 38, 127, 39, 66, 25, 25, 28, 5, 107, 173, 173, 97, 150, 65, 79, 35, 93, 52, 51, 109, 0, 255, 255, 0, 239, 255, 236, 4, 70, 1, 89, 4, 39, 0, 96, 255, 73, 0, 0, 0, 7, 0, 96, 1, 30, 0, 0, 0, 2, 1, 13, 2, 48, 4, 26, 5, 197, 0, 10, 0, 14, 0, 0, 65, 17, 35, 1, 23, 33, 21, 51, 53, 51, 53, 33, 19, 55, 17, 3, 134, 180, 254, 59, 4, 1, 198, 175, 148, 253, 180, 247, 18, 3, 108, 2, 89, 253, 133, 99, 183, 183, 133, 1, 87, 36, 254, 133, 0, 1, 1, 43, 2, 141, 3, 211, 5, 186, 0, 31, 0, 0, 65, 35, 17, 51, 17, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 17, 51, 17, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 1, 207, 164, 209, 9, 27, 18, 16, 40, 24, 31, 48, 17, 16, 17, 208, 36, 34, 34, 97, 61, 41, 71, 30, 24, 40, 16, 5, 173, 252, 224, 2, 39, 20, 32, 10, 10, 10, 20, 22, 22, 73, 52, 254, 68, 1, 250, 81, 116, 38, 37, 35, 22, 21, 17, 47, 28, 0, 0, 1, 0, 121, 255, 236, 4, 90, 5, 196, 0, 55, 0, 0, 65, 53, 33, 53, 33, 53, 33, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 55, 38, 38, 35, 34, 6, 7, 6, 6, 21, 21, 35, 21, 51, 21, 35, 21, 51, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 39, 6, 6, 35, 34, 38, 39, 38, 38, 53, 53, 3, 148, 254, 169, 1, 87, 254, 171, 36, 46, 36, 122, 74, 50, 100, 43, 32, 59, 117, 61, 123, 208, 76, 75, 101, 173, 171, 171, 171, 93, 74, 75, 205, 122, 66, 128, 59, 32, 45, 99, 53, 69, 112, 40, 40, 51, 2, 8, 148, 126, 147, 1, 37, 134, 52, 41, 43, 18, 14, 228, 14, 17, 68, 67, 66, 218, 111, 5, 147, 126, 148, 4, 120, 215, 65, 68, 68, 16, 14, 227, 17, 15, 33, 37, 36, 131, 75, 3, 0, 4, 0, 53, 255, 236, 4, 158, 5, 197, 0, 51, 0, 77, 0, 103, 0, 107, 0, 0, 65, 35, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 51, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 19, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 23, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 5, 1, 39, 1, 2, 90, 188, 10, 10, 11, 32, 22, 23, 33, 11, 11, 11, 11, 11, 11, 32, 22, 22, 33, 11, 10, 11, 188, 35, 34, 35, 103, 68, 66, 103, 34, 35, 36, 36, 35, 35, 103, 67, 67, 102, 35, 34, 35, 32, 36, 35, 34, 103, 67, 67, 103, 34, 34, 35, 35, 34, 35, 103, 68, 67, 102, 34, 35, 35, 186, 11, 11, 11, 32, 22, 22, 34, 11, 11, 11, 8, 9, 10, 34, 26, 20, 32, 12, 12, 13, 254, 136, 1, 255, 131, 254, 1, 4, 40, 18, 36, 14, 15, 19, 23, 19, 19, 49, 27, 77, 27, 51, 19, 19, 23, 18, 15, 15, 37, 19, 53, 97, 37, 36, 43, 48, 41, 41, 109, 62, 77, 61, 109, 40, 41, 48, 43, 37, 36, 95, 253, 114, 77, 62, 109, 40, 41, 48, 48, 41, 40, 109, 62, 77, 61, 110, 41, 40, 48, 48, 40, 41, 110, 138, 77, 27, 50, 19, 19, 23, 23, 19, 19, 50, 27, 77, 27, 50, 19, 19, 23, 23, 19, 19, 50, 26, 3, 170, 67, 252, 86, 0, 0, 2, 0, 160, 255, 235, 4, 40, 5, 145, 0, 44, 0, 64, 0, 0, 69, 17, 34, 38, 39, 38, 38, 53, 53, 54, 54, 55, 54, 54, 53, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 6, 6, 21, 17, 6, 6, 35, 21, 50, 54, 55, 21, 20, 22, 23, 22, 22, 3, 17, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 21, 20, 6, 7, 6, 6, 3, 102, 66, 89, 27, 27, 23, 103, 159, 54, 54, 56, 49, 44, 45, 122, 72, 46, 83, 36, 33, 59, 24, 50, 54, 43, 93, 51, 49, 93, 45, 64, 65, 64, 197, 99, 18, 18, 12, 33, 20, 15, 26, 9, 10, 12, 24, 26, 21, 61, 21, 1, 3, 33, 32, 31, 91, 58, 47, 48, 127, 69, 69, 138, 59, 42, 80, 127, 45, 44, 47, 16, 16, 15, 43, 27, 58, 166, 105, 254, 163, 7, 6, 187, 7, 7, 13, 102, 167, 59, 60, 64, 2, 241, 1, 32, 51, 72, 20, 14, 14, 14, 14, 14, 41, 26, 44, 48, 91, 42, 34, 64, 0, 0, 4, 0, 119, 0, 0, 4, 120, 5, 192, 0, 9, 0, 35, 0, 61, 0, 65, 0, 0, 97, 17, 35, 17, 3, 35, 17, 51, 17, 19, 1, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 23, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 19, 53, 33, 21, 2, 236, 190, 249, 190, 190, 249, 1, 15, 25, 22, 21, 57, 33, 37, 58, 20, 20, 22, 22, 20, 20, 59, 37, 36, 59, 20, 20, 22, 106, 2, 3, 5, 22, 19, 14, 18, 6, 8, 6, 5, 7, 6, 19, 14, 14, 19, 6, 7, 6, 207, 254, 209, 5, 176, 252, 149, 3, 107, 250, 80, 3, 111, 252, 145, 5, 8, 214, 45, 70, 23, 22, 23, 27, 25, 24, 67, 40, 214, 40, 68, 25, 24, 27, 27, 24, 25, 68, 244, 194, 16, 28, 11, 18, 20, 9, 9, 11, 39, 25, 194, 25, 38, 11, 10, 9, 9, 9, 12, 38, 254, 187, 98, 98, 0, 2, 0, 148, 255, 236, 4, 143, 4, 78, 0, 33, 0, 42, 0, 0, 101, 39, 6, 6, 35, 34, 38, 39, 17, 33, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 51, 50, 54, 1, 50, 22, 23, 17, 33, 17, 54, 54, 4, 18, 2, 89, 185, 94, 78, 140, 55, 3, 0, 78, 67, 67, 180, 103, 66, 128, 58, 59, 99, 36, 37, 41, 90, 72, 71, 186, 105, 99, 186, 254, 227, 77, 137, 53, 253, 228, 57, 141, 94, 104, 63, 59, 59, 51, 1, 72, 47, 117, 198, 72, 72, 82, 40, 37, 37, 102, 62, 63, 143, 77, 120, 211, 75, 71, 84, 61, 3, 199, 61, 52, 254, 226, 1, 21, 57, 65, 0, 0, 5, 0, 97, 255, 246, 4, 227, 5, 171, 0, 6, 0, 54, 0, 78, 0, 102, 0, 106, 0, 0, 65, 17, 35, 5, 21, 55, 17, 5, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 23, 6, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 3, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 3, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 1, 1, 39, 1, 1, 192, 17, 254, 178, 172, 3, 198, 38, 35, 35, 96, 58, 56, 96, 34, 35, 39, 23, 20, 11, 31, 17, 20, 34, 14, 24, 26, 42, 37, 37, 103, 59, 60, 101, 37, 37, 41, 26, 24, 13, 34, 20, 17, 28, 10, 23, 23, 164, 12, 12, 12, 37, 23, 26, 40, 13, 9, 10, 9, 9, 13, 40, 25, 26, 39, 14, 9, 10, 17, 11, 13, 10, 27, 18, 20, 30, 10, 10, 11, 8, 8, 10, 32, 21, 23, 32, 10, 8, 8, 253, 163, 1, 255, 131, 254, 1, 2, 232, 2, 195, 108, 140, 39, 254, 14, 226, 49, 76, 26, 25, 26, 26, 25, 26, 76, 49, 33, 55, 22, 13, 21, 9, 9, 23, 14, 24, 62, 38, 51, 77, 26, 26, 25, 25, 26, 26, 77, 51, 38, 63, 24, 13, 23, 9, 8, 19, 12, 22, 57, 254, 242, 18, 28, 10, 11, 12, 15, 13, 10, 25, 16, 16, 25, 9, 12, 14, 13, 12, 9, 25, 1, 20, 17, 29, 9, 8, 8, 10, 10, 9, 26, 16, 14, 25, 8, 10, 12, 12, 9, 9, 25, 254, 219, 3, 170, 67, 252, 86, 0, 5, 0, 28, 255, 246, 4, 224, 5, 186, 0, 76, 0, 124, 0, 148, 0, 172, 0, 176, 0, 0, 83, 21, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 35, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 51, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 1, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 23, 6, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 3, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 3, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 1, 1, 39, 1, 228, 79, 34, 51, 14, 8, 9, 10, 12, 13, 39, 29, 27, 42, 14, 13, 14, 182, 51, 40, 40, 100, 50, 63, 108, 41, 39, 45, 24, 23, 17, 44, 27, 23, 37, 16, 21, 25, 42, 37, 37, 104, 63, 54, 97, 37, 37, 44, 181, 12, 12, 13, 36, 20, 27, 37, 12, 11, 11, 13, 13, 13, 40, 26, 3, 157, 38, 35, 35, 96, 58, 56, 96, 34, 35, 39, 23, 20, 11, 31, 17, 20, 34, 14, 24, 26, 42, 37, 37, 103, 59, 60, 101, 37, 37, 41, 26, 24, 13, 34, 20, 17, 28, 10, 23, 23, 164, 12, 12, 12, 37, 23, 26, 40, 13, 9, 10, 9, 9, 13, 40, 25, 26, 39, 14, 9, 10, 17, 11, 13, 10, 27, 18, 20, 30, 10, 10, 11, 8, 8, 10, 32, 21, 23, 32, 10, 8, 8, 253, 163, 1, 255, 131, 254, 1, 4, 144, 121, 15, 16, 10, 27, 18, 15, 29, 11, 11, 15, 14, 10, 11, 27, 15, 61, 83, 26, 27, 24, 28, 27, 26, 78, 50, 40, 60, 21, 15, 21, 8, 8, 22, 14, 21, 54, 34, 49, 77, 26, 25, 26, 26, 25, 26, 76, 49, 12, 21, 7, 8, 9, 12, 10, 11, 25, 14, 19, 30, 11, 10, 11, 253, 118, 49, 76, 26, 25, 26, 26, 25, 26, 76, 49, 33, 55, 22, 13, 21, 9, 9, 23, 14, 24, 62, 38, 51, 77, 26, 26, 25, 25, 26, 26, 77, 51, 38, 63, 24, 13, 23, 9, 8, 19, 12, 22, 57, 254, 242, 18, 28, 10, 11, 12, 15, 13, 10, 25, 16, 16, 25, 9, 12, 14, 13, 12, 9, 25, 1, 20, 17, 29, 9, 8, 8, 10, 10, 9, 26, 16, 14, 25, 8, 10, 12, 12, 9, 9, 25, 254, 210, 3, 170, 67, 252, 86, 0, 0, 5, 0, 27, 255, 243, 4, 190, 5, 183, 0, 45, 0, 93, 0, 117, 0, 141, 0, 145, 0, 0, 83, 23, 54, 54, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 35, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 55, 33, 53, 33, 1, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 23, 6, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 3, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 3, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 1, 1, 39, 1, 43, 144, 13, 46, 46, 28, 43, 13, 13, 13, 9, 10, 12, 37, 28, 44, 52, 2, 181, 1, 48, 38, 39, 100, 53, 70, 105, 34, 34, 33, 29, 29, 31, 93, 62, 38, 68, 12, 19, 1, 47, 254, 61, 4, 83, 38, 35, 35, 96, 58, 56, 96, 34, 35, 39, 23, 20, 11, 31, 17, 20, 34, 14, 24, 26, 42, 37, 37, 103, 59, 60, 101, 37, 37, 41, 26, 24, 13, 34, 20, 17, 28, 10, 23, 23, 164, 12, 12, 12, 37, 23, 26, 40, 13, 9, 10, 9, 9, 13, 40, 25, 26, 39, 14, 9, 10, 17, 11, 13, 10, 27, 18, 20, 30, 10, 10, 11, 8, 8, 10, 32, 21, 23, 32, 10, 8, 8, 253, 183, 1, 255, 131, 254, 1, 4, 72, 35, 10, 24, 15, 15, 13, 37, 23, 21, 38, 14, 15, 17, 29, 37, 49, 78, 27, 27, 29, 42, 35, 34, 89, 48, 53, 83, 29, 31, 32, 18, 5, 124, 143, 252, 76, 49, 76, 26, 25, 26, 26, 25, 26, 76, 49, 33, 55, 22, 13, 21, 9, 9, 23, 14, 24, 62, 38, 51, 77, 26, 26, 25, 25, 26, 26, 77, 51, 38, 63, 24, 13, 23, 9, 8, 19, 12, 22, 57, 254, 242, 18, 28, 10, 11, 12, 15, 13, 10, 25, 16, 16, 25, 9, 12, 14, 13, 12, 9, 25, 1, 20, 17, 29, 9, 8, 8, 10, 10, 9, 26, 16, 14, 25, 8, 10, 12, 12, 9, 9, 25, 254, 222, 3, 170, 67, 252, 86, 0, 5, 0, 72, 255, 246, 4, 212, 5, 177, 0, 6, 0, 54, 0, 78, 0, 102, 0, 106, 0, 0, 65, 53, 33, 21, 33, 1, 51, 5, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 23, 6, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 3, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 3, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 1, 1, 39, 1, 2, 134, 253, 194, 1, 128, 254, 212, 190, 3, 106, 38, 35, 35, 96, 58, 56, 96, 34, 35, 39, 23, 20, 11, 31, 17, 20, 34, 14, 24, 26, 42, 37, 37, 103, 59, 60, 101, 37, 37, 41, 26, 24, 13, 34, 20, 17, 28, 10, 23, 23, 164, 12, 12, 12, 37, 23, 26, 40, 13, 9, 10, 9, 9, 13, 40, 25, 26, 39, 14, 9, 10, 17, 11, 13, 10, 27, 18, 20, 30, 10, 10, 11, 8, 8, 10, 32, 21, 23, 32, 10, 8, 8, 253, 134, 1, 255, 131, 254, 1, 5, 75, 102, 146, 253, 204, 229, 49, 76, 26, 25, 26, 26, 25, 26, 76, 49, 33, 55, 22, 13, 21, 9, 9, 23, 14, 24, 62, 38, 51, 77, 26, 26, 25, 25, 26, 26, 77, 51, 38, 63, 24, 13, 23, 9, 8, 19, 12, 22, 57, 254, 242, 18, 28, 10, 11, 12, 15, 13, 10, 25, 16, 16, 25, 9, 12, 14, 13, 12, 9, 25, 1, 20, 17, 29, 9, 8, 8, 10, 10, 9, 26, 16, 14, 25, 8, 10, 12, 12, 9, 9, 25, 254, 219, 3, 170, 67, 252, 86, 0, 2, 0, 111, 255, 235, 4, 100, 5, 254, 0, 44, 0, 73, 0, 0, 65, 34, 6, 7, 6, 6, 21, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 54, 54, 53, 53, 52, 2, 39, 38, 38, 35, 34, 6, 7, 23, 54, 54, 51, 50, 22, 23, 22, 22, 23, 38, 38, 7, 50, 22, 23, 22, 22, 23, 21, 20, 6, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 53, 52, 54, 55, 54, 54, 2, 73, 114, 177, 60, 61, 62, 67, 65, 64, 188, 122, 80, 137, 56, 70, 102, 27, 17, 18, 77, 73, 74, 212, 136, 114, 144, 53, 41, 68, 101, 78, 65, 112, 44, 43, 61, 15, 60, 143, 47, 49, 76, 28, 28, 36, 10, 4, 5, 6, 21, 15, 28, 87, 63, 62, 87, 27, 27, 25, 24, 28, 27, 88, 4, 10, 76, 67, 68, 184, 108, 21, 115, 194, 71, 71, 80, 45, 42, 51, 163, 99, 61, 136, 72, 59, 198, 1, 52, 106, 105, 110, 48, 26, 202, 26, 25, 56, 51, 51, 145, 89, 60, 57, 224, 27, 21, 21, 51, 23, 108, 32, 61, 29, 36, 66, 27, 49, 57, 46, 40, 40, 108, 61, 21, 58, 106, 41, 40, 47, 0, 1, 0, 156, 255, 9, 4, 37, 5, 176, 0, 7, 0, 0, 69, 17, 33, 17, 33, 17, 33, 17, 4, 37, 252, 119, 1, 24, 1, 90, 247, 6, 167, 249, 89, 5, 203, 250, 53, 0, 0, 1, 0, 37, 254, 243, 4, 186, 5, 176, 0, 12, 0, 0, 65, 53, 1, 33, 53, 33, 21, 1, 1, 21, 33, 53, 33, 3, 137, 254, 25, 2, 240, 251, 147, 2, 63, 253, 193, 4, 149, 252, 231, 2, 69, 33, 2, 105, 225, 152, 253, 62, 253, 52, 151, 225, 0, 1, 0, 37, 0, 0, 4, 99, 5, 176, 0, 10, 0, 0, 65, 3, 33, 21, 51, 19, 51, 1, 35, 1, 7, 2, 39, 133, 254, 131, 222, 193, 234, 1, 181, 227, 254, 204, 22, 1, 54, 1, 196, 227, 253, 233, 5, 176, 251, 146, 86, 0, 0, 3, 0, 56, 0, 246, 4, 202, 3, 212, 0, 64, 0, 102, 0, 140, 0, 0, 65, 53, 52, 38, 39, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 6, 6, 7, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 6, 6, 21, 21, 20, 22, 23, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 54, 54, 39, 21, 20, 6, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 38, 38, 39, 53, 54, 54, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 22, 22, 5, 53, 52, 54, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 22, 22, 23, 21, 6, 6, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 38, 38, 4, 202, 13, 13, 16, 58, 40, 33, 83, 49, 31, 58, 25, 32, 56, 21, 17, 29, 12, 23, 57, 35, 35, 83, 47, 48, 81, 32, 39, 58, 17, 15, 14, 13, 14, 16, 56, 38, 33, 84, 51, 47, 82, 35, 35, 57, 23, 22, 57, 36, 35, 82, 48, 51, 85, 34, 40, 56, 17, 11, 12, 204, 4, 5, 7, 21, 16, 12, 31, 19, 18, 33, 15, 26, 39, 13, 8, 10, 1, 1, 8, 8, 11, 36, 25, 16, 38, 21, 33, 44, 13, 7, 10, 3, 2, 2, 253, 4, 4, 3, 6, 21, 17, 13, 31, 20, 26, 45, 19, 17, 26, 9, 10, 10, 1, 1, 8, 7, 12, 35, 26, 16, 37, 20, 16, 27, 11, 19, 24, 8, 6, 5, 2, 82, 36, 44, 81, 35, 47, 76, 25, 20, 22, 14, 12, 14, 44, 25, 18, 41, 21, 38, 68, 26, 26, 31, 21, 19, 23, 71, 45, 37, 86, 48, 36, 46, 83, 35, 45, 70, 25, 21, 23, 32, 27, 27, 72, 39, 39, 72, 27, 27, 32, 23, 22, 24, 78, 49, 33, 77, 78, 36, 23, 38, 17, 20, 31, 11, 6, 7, 13, 11, 18, 56, 24, 16, 26, 6, 16, 5, 21, 14, 21, 49, 19, 12, 16, 22, 20, 12, 27, 16, 13, 29, 51, 36, 20, 35, 16, 21, 36, 11, 7, 8, 23, 18, 17, 36, 17, 16, 25, 5, 16, 5, 22, 15, 21, 53, 24, 14, 16, 5, 4, 8, 30, 20, 17, 44, 0, 0, 1, 0, 232, 254, 75, 3, 245, 6, 45, 0, 40, 0, 0, 69, 49, 17, 52, 54, 55, 54, 54, 51, 50, 22, 23, 55, 38, 38, 35, 34, 6, 7, 6, 6, 21, 17, 20, 6, 7, 6, 6, 35, 34, 38, 39, 7, 22, 22, 51, 50, 54, 55, 54, 54, 2, 229, 17, 17, 20, 59, 39, 31, 44, 21, 24, 40, 77, 41, 92, 145, 50, 51, 54, 17, 17, 14, 40, 26, 25, 61, 20, 11, 37, 61, 38, 87, 139, 48, 48, 51, 34, 4, 210, 35, 56, 20, 22, 23, 5, 5, 214, 9, 12, 50, 48, 49, 142, 92, 251, 46, 45, 71, 22, 20, 20, 6, 7, 221, 10, 7, 54, 52, 51, 150, 0, 0, 2, 0, 130, 0, 0, 4, 86, 5, 176, 0, 5, 0, 13, 0, 0, 65, 1, 1, 51, 1, 1, 7, 23, 19, 3, 7, 39, 3, 19, 1, 245, 254, 141, 1, 117, 235, 1, 116, 254, 138, 116, 23, 189, 189, 22, 21, 193, 188, 5, 176, 253, 39, 253, 41, 2, 215, 2, 217, 232, 68, 254, 83, 254, 77, 64, 67, 1, 176, 1, 173, 0, 0, 22, 0, 87, 0, 10, 4, 130, 4, 6, 0, 13, 0, 28, 0, 42, 0, 58, 0, 64, 0, 70, 0, 76, 0, 82, 0, 91, 0, 95, 0, 99, 0, 103, 0, 107, 0, 111, 0, 115, 0, 124, 0, 128, 0, 132, 0, 136, 0, 140, 0, 144, 0, 148, 0, 0, 65, 21, 20, 6, 35, 34, 38, 53, 53, 52, 54, 51, 50, 22, 23, 35, 17, 51, 50, 22, 21, 20, 6, 7, 22, 22, 21, 20, 6, 37, 53, 52, 38, 35, 34, 6, 21, 21, 20, 22, 51, 50, 54, 37, 53, 51, 21, 20, 6, 35, 34, 38, 53, 51, 20, 22, 51, 50, 54, 1, 51, 53, 35, 53, 35, 5, 51, 53, 35, 21, 35, 1, 51, 53, 51, 53, 35, 5, 51, 21, 51, 53, 35, 1, 35, 21, 51, 50, 54, 53, 52, 38, 3, 51, 53, 35, 23, 51, 53, 35, 5, 51, 53, 35, 19, 51, 53, 35, 23, 51, 53, 35, 5, 51, 53, 35, 19, 21, 51, 50, 54, 53, 52, 38, 35, 5, 53, 35, 21, 23, 53, 35, 21, 19, 53, 35, 21, 5, 53, 35, 21, 23, 53, 35, 21, 19, 53, 35, 21, 1, 235, 69, 57, 57, 71, 70, 57, 57, 70, 159, 122, 103, 55, 62, 23, 23, 28, 28, 57, 254, 251, 41, 35, 35, 41, 41, 36, 35, 40, 2, 14, 50, 58, 45, 48, 60, 51, 31, 26, 23, 30, 252, 145, 170, 108, 62, 3, 129, 170, 61, 109, 252, 127, 62, 108, 170, 3, 129, 109, 61, 170, 254, 178, 70, 70, 29, 27, 27, 135, 153, 153, 220, 153, 153, 254, 73, 152, 152, 219, 153, 153, 220, 153, 153, 254, 73, 152, 152, 255, 51, 33, 32, 32, 33, 254, 30, 62, 62, 62, 62, 62, 4, 43, 61, 61, 61, 61, 61, 2, 37, 62, 54, 66, 66, 54, 62, 54, 66, 66, 235, 1, 47, 40, 43, 21, 34, 9, 8, 39, 23, 43, 43, 119, 62, 38, 43, 43, 38, 62, 38, 43, 43, 15, 208, 208, 45, 50, 45, 46, 26, 24, 30, 254, 82, 63, 111, 174, 174, 111, 3, 32, 93, 64, 64, 93, 157, 253, 241, 93, 24, 21, 22, 26, 1, 207, 64, 64, 64, 64, 64, 252, 4, 63, 63, 63, 63, 63, 2, 39, 83, 22, 22, 23, 16, 165, 138, 138, 207, 137, 137, 1, 159, 137, 137, 208, 138, 138, 207, 137, 137, 1, 159, 137, 137, 0, 5, 0, 15, 253, 213, 4, 175, 8, 98, 0, 3, 0, 47, 0, 51, 0, 55, 0, 59, 0, 0, 65, 9, 2, 5, 35, 52, 54, 55, 54, 54, 55, 54, 54, 55, 54, 54, 53, 52, 38, 35, 34, 6, 7, 35, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 7, 6, 6, 7, 6, 6, 21, 21, 35, 53, 19, 21, 51, 53, 3, 21, 51, 53, 2, 98, 253, 173, 2, 83, 2, 77, 254, 26, 202, 8, 11, 10, 35, 29, 10, 27, 12, 12, 17, 32, 37, 24, 41, 2, 203, 1, 43, 37, 36, 97, 56, 64, 102, 35, 34, 37, 23, 18, 18, 45, 22, 11, 17, 6, 6, 6, 202, 94, 4, 6, 4, 6, 82, 252, 49, 252, 49, 3, 207, 251, 48, 50, 19, 19, 40, 36, 13, 39, 24, 23, 51, 26, 52, 64, 48, 55, 70, 101, 33, 32, 30, 39, 36, 37, 103, 64, 41, 64, 28, 29, 55, 31, 16, 29, 15, 16, 39, 116, 170, 170, 252, 172, 4, 4, 10, 137, 4, 4, 0, 0, 2, 1, 32, 4, 234, 3, 255, 6, 241, 0, 6, 0, 44, 0, 0, 65, 37, 35, 5, 51, 55, 23, 19, 39, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 23, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 3, 255, 254, 232, 175, 254, 232, 204, 164, 164, 95, 99, 9, 7, 8, 22, 12, 26, 51, 26, 26, 53, 28, 31, 51, 18, 18, 20, 98, 9, 8, 7, 21, 12, 28, 47, 24, 24, 54, 34, 31, 51, 19, 18, 20, 4, 234, 248, 248, 150, 150, 1, 228, 35, 18, 35, 13, 14, 16, 20, 12, 12, 20, 31, 25, 25, 64, 33, 28, 18, 32, 13, 12, 15, 20, 12, 12, 20, 30, 25, 25, 64, 0, 0, 2, 1, 16, 4, 234, 4, 190, 6, 179, 0, 6, 0, 34, 0, 0, 65, 37, 35, 5, 51, 55, 23, 55, 51, 39, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 7, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 3, 239, 254, 233, 177, 254, 233, 204, 164, 164, 198, 95, 1, 21, 43, 17, 16, 21, 53, 53, 28, 73, 44, 4, 35, 59, 21, 21, 24, 22, 20, 14, 39, 23, 4, 234, 235, 235, 141, 141, 129, 61, 3, 17, 15, 15, 44, 30, 43, 64, 17, 9, 10, 83, 7, 7, 8, 25, 18, 15, 22, 7, 4, 5, 0, 0, 2, 255, 246, 4, 247, 4, 15, 6, 145, 0, 6, 0, 10, 0, 0, 65, 37, 35, 5, 51, 55, 23, 37, 3, 35, 19, 4, 15, 254, 226, 162, 254, 225, 215, 153, 153, 254, 65, 160, 228, 224, 4, 247, 235, 235, 130, 130, 140, 1, 14, 254, 242, 0, 0, 2, 1, 16, 4, 234, 5, 43, 6, 133, 0, 6, 0, 10, 0, 0, 65, 5, 51, 55, 23, 51, 37, 37, 3, 51, 19, 2, 47, 254, 225, 215, 153, 153, 215, 254, 225, 1, 117, 160, 164, 225, 5, 213, 235, 130, 130, 235, 176, 254, 241, 1, 15, 0, 0, 2, 1, 43, 4, 201, 3, 214, 6, 113, 0, 3, 0, 29, 0, 0, 65, 39, 35, 23, 5, 35, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 35, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 2, 205, 121, 198, 173, 1, 155, 188, 17, 18, 18, 58, 42, 42, 59, 18, 19, 16, 188, 48, 45, 44, 126, 79, 78, 127, 44, 44, 48, 5, 181, 188, 188, 5, 22, 41, 15, 16, 18, 18, 16, 15, 41, 22, 51, 85, 30, 31, 34, 34, 31, 30, 85, 0, 0, 1, 1, 216, 4, 80, 2, 250, 6, 26, 0, 9, 0, 0, 65, 21, 51, 55, 52, 54, 55, 39, 6, 6, 1, 216, 221, 2, 40, 27, 145, 62, 83, 4, 216, 136, 124, 79, 128, 49, 78, 42, 176, 0, 0, 2, 0, 22, 0, 0, 4, 184, 4, 141, 0, 7, 0, 12, 0, 0, 101, 23, 33, 1, 33, 1, 33, 55, 55, 19, 55, 23, 19, 3, 74, 83, 1, 27, 254, 51, 254, 242, 254, 57, 1, 28, 80, 75, 145, 6, 7, 147, 221, 221, 4, 141, 251, 115, 221, 204, 1, 142, 18, 18, 254, 114, 0, 3, 0, 161, 0, 0, 4, 106, 4, 141, 0, 26, 0, 41, 0, 56, 0, 0, 115, 33, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 33, 1, 51, 22, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 35, 17, 17, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 7, 161, 1, 250, 121, 189, 56, 53, 44, 24, 25, 26, 78, 55, 41, 64, 22, 27, 27, 69, 63, 63, 177, 107, 254, 49, 1, 23, 238, 49, 70, 21, 17, 16, 18, 17, 22, 75, 52, 227, 203, 42, 67, 23, 23, 25, 15, 15, 22, 72, 49, 49, 50, 48, 112, 75, 42, 81, 35, 35, 52, 13, 15, 44, 27, 34, 84, 46, 84, 122, 40, 39, 38, 253, 93, 1, 22, 21, 17, 48, 30, 24, 42, 16, 21, 25, 1, 200, 1, 4, 14, 15, 16, 51, 37, 26, 42, 14, 22, 22, 1, 0, 0, 1, 0, 84, 255, 240, 4, 86, 4, 157, 0, 51, 0, 0, 65, 33, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 33, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 4, 83, 254, 234, 37, 31, 32, 82, 44, 52, 87, 32, 32, 37, 36, 31, 31, 84, 48, 60, 93, 31, 26, 27, 1, 24, 8, 81, 67, 67, 183, 111, 106, 185, 69, 69, 80, 77, 69, 69, 190, 114, 98, 179, 69, 68, 85, 1, 143, 54, 74, 23, 23, 21, 39, 37, 37, 107, 69, 178, 64, 105, 38, 38, 42, 31, 29, 25, 69, 43, 102, 157, 54, 53, 54, 74, 67, 68, 188, 114, 177, 113, 188, 67, 67, 74, 49, 51, 51, 157, 0, 2, 0, 157, 0, 0, 4, 111, 4, 141, 0, 15, 0, 31, 0, 0, 115, 33, 50, 54, 55, 54, 54, 53, 53, 52, 38, 39, 38, 38, 35, 33, 5, 51, 50, 22, 23, 22, 22, 21, 21, 20, 6, 7, 6, 6, 35, 35, 157, 1, 205, 104, 187, 71, 71, 84, 84, 71, 72, 192, 109, 254, 62, 1, 22, 172, 58, 92, 32, 32, 35, 36, 31, 32, 87, 52, 183, 75, 66, 66, 182, 108, 168, 107, 183, 67, 66, 77, 223, 42, 37, 37, 101, 59, 169, 64, 102, 35, 36, 39, 0, 1, 0, 160, 0, 0, 4, 56, 4, 141, 0, 11, 0, 0, 65, 53, 33, 53, 33, 53, 33, 17, 33, 53, 33, 17, 3, 220, 253, 219, 2, 129, 252, 104, 3, 146, 253, 133, 1, 238, 223, 225, 223, 251, 115, 221, 1, 17, 0, 1, 0, 168, 0, 0, 4, 49, 4, 141, 0, 9, 0, 0, 65, 53, 33, 17, 33, 53, 33, 17, 33, 17, 3, 241, 253, 207, 2, 113, 252, 119, 1, 24, 1, 205, 223, 1, 2, 223, 251, 115, 1, 205, 0, 1, 0, 94, 255, 240, 4, 90, 4, 157, 0, 55, 0, 0, 101, 17, 33, 21, 51, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 33, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 4, 90, 254, 15, 219, 1, 12, 42, 27, 27, 65, 34, 66, 97, 31, 31, 31, 40, 34, 33, 88, 49, 49, 81, 30, 29, 33, 1, 1, 14, 1, 64, 62, 63, 186, 124, 107, 187, 69, 70, 82, 74, 68, 67, 192, 120, 90, 158, 65, 64, 95, 147, 1, 234, 205, 187, 9, 15, 5, 6, 6, 43, 38, 37, 102, 59, 199, 61, 102, 37, 36, 40, 18, 20, 20, 66, 49, 88, 146, 52, 52, 58, 73, 66, 66, 185, 111, 197, 111, 184, 66, 66, 72, 28, 23, 23, 58, 0, 0, 1, 0, 142, 0, 0, 4, 24, 4, 141, 0, 11, 0, 0, 97, 17, 33, 17, 33, 17, 33, 17, 33, 17, 33, 17, 4, 24, 254, 235, 254, 160, 254, 235, 1, 21, 1, 96, 4, 141, 254, 23, 1, 233, 251, 115, 1, 197, 254, 59, 0, 1, 0, 202, 0, 0, 4, 9, 4, 140, 0, 11, 0, 0, 83, 21, 33, 17, 33, 21, 33, 53, 33, 17, 33, 53, 202, 1, 16, 254, 240, 3, 63, 254, 233, 1, 23, 4, 140, 226, 253, 56, 226, 226, 2, 200, 226, 0, 0, 1, 0, 160, 255, 240, 4, 41, 4, 141, 0, 27, 0, 0, 65, 19, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 33, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 17, 3, 18, 1, 1, 26, 23, 22, 61, 36, 48, 72, 22, 18, 19, 254, 233, 2, 66, 59, 59, 168, 104, 91, 162, 61, 61, 72, 4, 141, 253, 42, 58, 89, 30, 28, 30, 30, 31, 26, 73, 48, 110, 161, 53, 53, 51, 61, 59, 58, 169, 108, 2, 214, 0, 0, 1, 0, 154, 0, 0, 4, 165, 4, 141, 0, 12, 0, 0, 65, 1, 33, 1, 1, 33, 1, 7, 17, 33, 17, 33, 17, 2, 50, 1, 40, 1, 75, 254, 73, 1, 169, 254, 165, 254, 218, 101, 254, 233, 1, 23, 1, 188, 254, 68, 2, 130, 2, 11, 254, 151, 132, 1, 237, 251, 115, 1, 62, 0, 0, 1, 0, 161, 0, 0, 4, 103, 4, 141, 0, 5, 0, 0, 101, 17, 33, 17, 33, 53, 1, 186, 254, 231, 3, 198, 221, 3, 176, 251, 115, 221, 0, 1, 0, 120, 0, 0, 4, 94, 4, 141, 0, 12, 0, 0, 65, 3, 33, 17, 51, 17, 19, 23, 19, 17, 51, 17, 33, 2, 110, 186, 254, 196, 254, 158, 182, 150, 254, 254, 204, 2, 73, 2, 68, 251, 115, 2, 222, 254, 23, 1, 1, 214, 253, 54, 4, 141, 0, 1, 0, 159, 0, 0, 4, 20, 4, 141, 0, 9, 0, 0, 97, 17, 33, 19, 1, 33, 17, 33, 3, 1, 4, 20, 254, 235, 1, 254, 179, 254, 236, 1, 20, 1, 1, 78, 4, 141, 253, 69, 2, 187, 251, 115, 2, 186, 253, 70, 0, 2, 0, 104, 255, 240, 4, 99, 4, 157, 0, 25, 0, 51, 0, 0, 65, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 1, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 4, 99, 75, 67, 68, 187, 113, 116, 187, 67, 67, 72, 73, 67, 67, 188, 116, 113, 187, 67, 67, 74, 254, 233, 30, 29, 29, 86, 55, 60, 87, 28, 29, 27, 27, 28, 28, 86, 60, 56, 86, 30, 29, 30, 1, 228, 195, 107, 184, 68, 67, 76, 76, 67, 68, 184, 107, 195, 107, 183, 67, 67, 76, 76, 67, 67, 183, 1, 47, 196, 59, 103, 38, 39, 44, 45, 38, 38, 103, 59, 196, 59, 103, 38, 38, 43, 43, 38, 38, 102, 0, 2, 0, 97, 255, 65, 4, 105, 4, 157, 0, 31, 0, 57, 0, 0, 65, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 23, 55, 39, 54, 54, 55, 54, 54, 1, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 4, 105, 77, 68, 69, 190, 113, 116, 190, 67, 68, 74, 74, 68, 68, 191, 116, 35, 66, 31, 207, 169, 178, 39, 64, 23, 28, 31, 254, 232, 32, 30, 30, 87, 56, 61, 89, 29, 30, 28, 28, 29, 29, 89, 60, 57, 88, 30, 30, 32, 1, 228, 195, 108, 184, 67, 67, 76, 76, 67, 67, 184, 108, 195, 108, 184, 66, 67, 75, 8, 7, 190, 119, 162, 31, 74, 43, 53, 124, 1, 9, 196, 60, 103, 38, 39, 43, 43, 39, 38, 103, 60, 196, 60, 103, 38, 37, 43, 42, 37, 38, 103, 0, 2, 0, 147, 0, 0, 4, 115, 4, 141, 0, 20, 0, 35, 0, 0, 65, 19, 33, 53, 1, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 33, 17, 33, 17, 53, 17, 51, 50, 22, 23, 22, 22, 21, 6, 6, 7, 6, 6, 35, 2, 105, 223, 1, 43, 254, 245, 49, 82, 29, 29, 32, 68, 62, 62, 172, 103, 254, 33, 1, 23, 200, 42, 68, 24, 27, 29, 1, 26, 24, 25, 70, 44, 1, 151, 254, 105, 11, 1, 214, 22, 58, 40, 39, 105, 69, 88, 131, 44, 44, 44, 251, 115, 1, 151, 223, 1, 53, 17, 18, 19, 60, 40, 39, 58, 19, 19, 20, 0, 1, 0, 131, 255, 240, 4, 92, 4, 157, 0, 76, 0, 0, 65, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 33, 22, 22, 23, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 38, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 33, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 23, 22, 22, 23, 22, 22, 3, 82, 26, 25, 26, 76, 51, 49, 86, 32, 32, 37, 254, 233, 1, 41, 36, 35, 96, 56, 55, 121, 61, 104, 177, 65, 64, 73, 62, 58, 58, 166, 103, 64, 88, 27, 28, 24, 26, 25, 25, 72, 47, 42, 72, 27, 27, 30, 1, 23, 2, 74, 64, 65, 174, 100, 96, 167, 62, 62, 71, 56, 55, 55, 161, 104, 61, 92, 31, 31, 31, 1, 60, 24, 46, 18, 18, 22, 18, 20, 20, 67, 50, 74, 113, 42, 42, 58, 17, 18, 15, 41, 42, 42, 127, 86, 88, 122, 43, 42, 59, 24, 15, 28, 17, 16, 43, 31, 24, 45, 18, 17, 20, 24, 21, 21, 59, 34, 99, 140, 44, 43, 40, 45, 43, 44, 127, 82, 87, 117, 40, 40, 55, 27, 14, 30, 18, 19, 46, 0, 1, 0, 84, 0, 0, 4, 154, 4, 141, 0, 7, 0, 0, 65, 53, 33, 21, 33, 17, 33, 17, 4, 154, 251, 186, 1, 146, 1, 25, 3, 174, 223, 223, 252, 82, 3, 174, 0, 1, 0, 157, 255, 240, 4, 67, 4, 141, 0, 29, 0, 0, 65, 33, 3, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 17, 33, 17, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 4, 67, 254, 233, 1, 23, 22, 23, 71, 47, 50, 75, 24, 20, 22, 254, 235, 69, 62, 62, 172, 103, 103, 171, 62, 61, 69, 4, 141, 253, 9, 50, 75, 24, 25, 25, 27, 29, 24, 72, 47, 2, 247, 253, 9, 102, 157, 54, 54, 55, 55, 54, 54, 157, 102, 0, 0, 1, 0, 45, 0, 0, 4, 187, 4, 141, 0, 8, 0, 0, 65, 1, 33, 1, 33, 1, 33, 1, 7, 2, 101, 254, 237, 254, 219, 1, 177, 1, 42, 1, 179, 254, 219, 254, 234, 13, 1, 65, 3, 76, 251, 115, 4, 141, 252, 178, 62, 0, 0, 1, 0, 33, 0, 0, 4, 143, 4, 141, 0, 18, 0, 0, 115, 51, 19, 55, 23, 19, 51, 19, 33, 3, 7, 39, 3, 35, 3, 7, 39, 3, 33, 239, 254, 96, 9, 9, 102, 254, 204, 254, 252, 73, 9, 11, 89, 255, 86, 8, 7, 73, 254, 249, 2, 35, 47, 47, 253, 221, 4, 141, 253, 248, 62, 62, 2, 8, 253, 250, 49, 49, 2, 6, 0, 1, 0, 64, 0, 0, 4, 139, 4, 141, 0, 11, 0, 0, 65, 3, 33, 1, 1, 33, 19, 19, 33, 1, 1, 33, 2, 92, 211, 254, 194, 1, 105, 254, 140, 1, 66, 222, 228, 1, 71, 254, 128, 1, 105, 254, 191, 3, 14, 1, 127, 253, 190, 253, 181, 1, 134, 254, 122, 2, 75, 2, 66, 0, 0, 1, 0, 58, 0, 0, 4, 174, 4, 141, 0, 10, 0, 0, 97, 33, 17, 1, 33, 3, 7, 39, 3, 33, 1, 1, 229, 1, 24, 1, 177, 254, 209, 252, 15, 15, 251, 254, 208, 1, 171, 1, 151, 2, 246, 254, 20, 29, 29, 1, 236, 253, 19, 0, 0, 1, 0, 153, 0, 0, 4, 75, 4, 141, 0, 9, 0, 0, 101, 1, 53, 33, 21, 33, 1, 21, 33, 53, 2, 0, 2, 65, 252, 108, 2, 47, 253, 189, 3, 178, 221, 3, 37, 139, 223, 252, 224, 142, 221, 0, 0, 2, 1, 60, 4, 203, 3, 232, 6, 246, 0, 25, 0, 53, 0, 0, 65, 35, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 35, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 37, 51, 39, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 7, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 7, 3, 232, 188, 17, 18, 19, 58, 41, 42, 59, 18, 19, 17, 188, 48, 45, 44, 127, 79, 79, 126, 44, 44, 48, 254, 109, 98, 17, 27, 53, 20, 20, 25, 39, 39, 35, 103, 67, 7, 42, 71, 26, 25, 29, 24, 25, 16, 44, 27, 5, 176, 22, 39, 15, 15, 17, 17, 15, 15, 39, 22, 51, 85, 30, 30, 33, 33, 30, 30, 85, 79, 46, 3, 16, 13, 13, 39, 27, 34, 55, 18, 17, 17, 66, 6, 7, 7, 25, 18, 15, 21, 6, 3, 4, 1, 0, 0, 2, 1, 44, 4, 201, 3, 215, 6, 113, 0, 25, 0, 29, 0, 0, 65, 35, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 35, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 37, 7, 51, 55, 3, 215, 188, 17, 18, 18, 58, 42, 42, 59, 18, 19, 16, 188, 48, 45, 44, 126, 79, 78, 127, 44, 44, 48, 254, 215, 121, 146, 173, 5, 176, 22, 41, 15, 16, 18, 18, 16, 15, 41, 22, 51, 85, 30, 31, 34, 34, 31, 30, 85, 244, 188, 188, 0, 0, 1, 1, 45, 2, 136, 3, 225, 3, 60, 0, 3, 0, 0, 65, 53, 33, 21, 3, 225, 253, 76, 2, 136, 180, 180, 0, 3, 1, 193, 4, 84, 3, 253, 6, 182, 0, 3, 0, 27, 0, 39, 0, 0, 65, 7, 51, 37, 1, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 23, 52, 54, 51, 50, 22, 21, 20, 6, 35, 34, 38, 2, 246, 182, 182, 1, 7, 253, 196, 31, 27, 27, 73, 41, 41, 71, 27, 26, 30, 30, 26, 27, 71, 41, 41, 73, 27, 27, 31, 110, 51, 38, 38, 47, 47, 38, 38, 51, 6, 182, 204, 204, 254, 83, 40, 66, 24, 24, 27, 26, 24, 24, 67, 40, 39, 68, 25, 24, 28, 28, 24, 25, 68, 39, 40, 50, 50, 40, 38, 50, 50, 0, 2, 1, 244, 4, 131, 3, 197, 5, 196, 0, 5, 0, 21, 0, 0, 65, 21, 51, 19, 53, 35, 5, 21, 51, 53, 52, 54, 55, 54, 54, 55, 35, 6, 6, 7, 6, 6, 2, 180, 83, 190, 181, 254, 228, 130, 7, 7, 7, 19, 11, 78, 16, 35, 15, 16, 20, 4, 160, 27, 1, 42, 21, 208, 113, 107, 31, 62, 28, 27, 48, 18, 14, 41, 26, 26, 64, 0, 0, 2, 1, 92, 4, 198, 4, 2, 6, 226, 0, 25, 0, 51, 0, 0, 65, 35, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 35, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 3, 39, 20, 6, 35, 34, 38, 39, 38, 38, 35, 34, 6, 21, 23, 52, 54, 51, 50, 22, 23, 22, 22, 51, 50, 54, 4, 2, 187, 16, 18, 18, 58, 42, 42, 58, 18, 18, 16, 187, 47, 45, 44, 125, 78, 78, 126, 44, 44, 47, 48, 116, 40, 29, 31, 56, 27, 28, 57, 33, 74, 90, 116, 40, 29, 32, 50, 26, 25, 59, 39, 72, 93, 5, 176, 22, 39, 15, 15, 18, 18, 15, 15, 39, 22, 52, 86, 31, 31, 34, 34, 31, 31, 86, 1, 68, 34, 37, 49, 21, 13, 13, 21, 112, 71, 32, 37, 49, 21, 13, 13, 21, 109, 0, 0, 1, 1, 250, 254, 156, 3, 16, 0, 201, 0, 3, 0, 0, 65, 17, 33, 17, 3, 16, 254, 234, 254, 156, 2, 45, 253, 211, 0, 1, 1, 66, 254, 75, 3, 66, 0, 245, 0, 21, 0, 0, 101, 33, 17, 20, 6, 7, 6, 6, 35, 34, 38, 39, 7, 22, 22, 51, 50, 54, 55, 54, 54, 53, 3, 66, 254, 234, 17, 17, 15, 45, 28, 25, 52, 21, 14, 36, 65, 38, 87, 139, 48, 48, 51, 245, 254, 227, 43, 65, 21, 20, 19, 6, 6, 224, 10, 7, 52, 50, 50, 149, 96, 0, 0, 2, 0, 161, 0, 0, 4, 88, 4, 141, 0, 16, 0, 31, 0, 0, 65, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 33, 17, 33, 17, 17, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 1, 183, 208, 104, 171, 62, 61, 67, 67, 61, 62, 171, 104, 254, 26, 1, 22, 208, 45, 69, 24, 23, 25, 25, 23, 24, 69, 45, 1, 121, 58, 51, 51, 141, 84, 89, 148, 54, 53, 59, 251, 115, 2, 87, 1, 87, 29, 25, 25, 66, 37, 31, 58, 22, 23, 27, 0, 1, 0, 151, 0, 0, 4, 200, 5, 176, 0, 12, 0, 0, 65, 1, 33, 1, 1, 33, 1, 35, 17, 33, 17, 33, 17, 2, 37, 1, 93, 1, 70, 254, 61, 1, 178, 254, 187, 254, 131, 69, 254, 231, 1, 25, 2, 86, 253, 170, 2, 243, 2, 189, 253, 127, 2, 129, 250, 80, 2, 86, 0, 1, 0, 147, 255, 235, 4, 105, 4, 156, 0, 62, 0, 0, 65, 7, 22, 22, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 39, 19, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 17, 33, 17, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 7, 21, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 34, 38, 2, 72, 85, 46, 118, 79, 79, 141, 53, 52, 62, 40, 38, 40, 111, 80, 4, 222, 48, 104, 58, 54, 122, 70, 109, 166, 54, 53, 53, 1, 19, 25, 23, 20, 55, 33, 22, 39, 17, 16, 28, 12, 168, 82, 51, 82, 29, 28, 31, 21, 18, 19, 51, 31, 40, 64, 1, 2, 220, 26, 33, 47, 47, 46, 141, 93, 64, 105, 39, 42, 54, 16, 1, 1, 7, 60, 94, 30, 29, 30, 57, 57, 54, 163, 106, 253, 25, 2, 231, 54, 81, 25, 22, 23, 10, 8, 8, 22, 12, 212, 184, 15, 16, 17, 53, 38, 33, 53, 18, 18, 20, 33, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 1, 0, 0, 255, 255, 1, 26, 2, 18, 4, 91, 2, 243, 6, 6, 0, 103, 0, 0, 255, 255, 0, 79, 255, 235, 4, 119, 7, 75, 6, 38, 0, 4, 0, 0, 0, 7, 1, 96, 0, 59, 1, 108, 255, 255, 0, 117, 255, 235, 4, 60, 6, 10, 6, 38, 0, 30, 0, 0, 0, 6, 1, 96, 4, 43, 255, 255, 0, 87, 255, 236, 4, 108, 7, 75, 6, 38, 0, 8, 0, 0, 0, 7, 1, 96, 0, 30, 1, 108, 255, 255, 0, 113, 254, 86, 4, 71, 6, 10, 6, 38, 0, 34, 0, 0, 0, 6, 1, 96, 232, 43, 255, 255, 255, 102, 0, 0, 4, 83, 6, 21, 6, 38, 0, 41, 0, 0, 0, 7, 0, 109, 253, 148, 255, 253, 255, 255, 0, 89, 254, 15, 4, 140, 5, 196, 6, 38, 0, 20, 0, 0, 0, 7, 1, 104, 0, 215, 254, 183, 255, 255, 0, 122, 254, 15, 4, 85, 4, 78, 6, 38, 0, 46, 0, 0, 0, 7, 1, 104, 0, 151, 254, 183, 255, 255, 0, 27, 254, 38, 4, 177, 5, 176, 6, 38, 0, 21, 0, 0, 0, 7, 1, 104, 0, 171, 254, 206, 255, 255, 0, 126, 254, 25, 4, 78, 5, 67, 6, 38, 0, 47, 0, 0, 0, 7, 1, 104, 0, 237, 254, 193, 255, 255, 0, 27, 254, 67, 4, 177, 5, 176, 6, 38, 0, 21, 0, 0, 0, 6, 1, 102, 42, 13, 255, 255, 0, 84, 254, 66, 4, 154, 4, 141, 6, 38, 2, 97, 0, 0, 0, 6, 1, 102, 49, 12, 255, 255, 0, 126, 254, 54, 4, 78, 5, 67, 6, 38, 0, 47, 0, 0, 0, 6, 1, 102, 108, 0, 255, 255, 255, 170, 0, 0, 4, 111, 4, 141, 6, 38, 2, 82, 0, 0, 0, 7, 2, 106, 254, 125, 255, 104, 255, 255, 255, 170, 0, 0, 4, 111, 4, 141, 6, 38, 2, 82, 0, 0, 0, 7, 2, 106, 254, 125, 255, 104, 255, 255, 0, 84, 0, 0, 4, 154, 4, 141, 6, 38, 2, 97, 0, 0, 0, 6, 2, 106, 239, 181, 255, 255, 0, 22, 0, 0, 4, 184, 5, 229, 6, 38, 2, 79, 0, 0, 0, 7, 1, 90, 255, 88, 0, 31, 255, 255, 0, 22, 0, 0, 4, 184, 5, 226, 6, 38, 2, 79, 0, 0, 0, 6, 1, 91, 114, 28, 255, 255, 0, 22, 0, 0, 4, 184, 6, 12, 6, 38, 2, 79, 0, 0, 0, 6, 1, 92, 114, 32, 255, 255, 0, 22, 0, 0, 4, 184, 6, 39, 6, 38, 2, 79, 0, 0, 0, 6, 1, 93, 121, 33, 255, 255, 0, 22, 0, 0, 4, 184, 5, 242, 6, 38, 2, 79, 0, 0, 0, 6, 1, 97, 223, 32, 255, 255, 0, 22, 0, 0, 4, 184, 6, 75, 6, 38, 2, 79, 0, 0, 0, 7, 1, 98, 255, 255, 0, 184, 255, 255, 0, 22, 0, 0, 4, 184, 7, 25, 6, 38, 2, 79, 0, 0, 0, 6, 2, 107, 222, 99, 255, 255, 0, 84, 254, 54, 4, 86, 4, 157, 6, 38, 2, 81, 0, 0, 0, 6, 1, 102, 20, 0, 255, 255, 0, 160, 0, 0, 4, 56, 5, 229, 6, 38, 2, 83, 0, 0, 0, 7, 1, 90, 255, 71, 0, 31, 255, 255, 0, 160, 0, 0, 4, 56, 5, 226, 6, 38, 2, 83, 0, 0, 0, 6, 1, 91, 97, 28, 255, 255, 0, 160, 0, 0, 4, 56, 6, 12, 6, 38, 2, 83, 0, 0, 0, 6, 1, 92, 97, 32, 255, 255, 0, 160, 0, 0, 4, 56, 5, 242, 6, 38, 2, 83, 0, 0, 0, 6, 1, 97, 206, 32, 255, 255, 0, 202, 0, 0, 4, 9, 5, 223, 6, 38, 2, 87, 0, 0, 0, 7, 1, 90, 255, 109, 0, 25, 255, 255, 0, 202, 0, 0, 4, 9, 5, 220, 6, 38, 2, 87, 0, 0, 0, 7, 1, 91, 0, 135, 0, 22, 255, 255, 0, 202, 0, 0, 4, 9, 6, 6, 6, 38, 2, 87, 0, 0, 0, 7, 1, 92, 0, 135, 0, 26, 255, 255, 0, 202, 0, 0, 4, 9, 5, 236, 6, 38, 2, 87, 0, 0, 0, 6, 1, 97, 244, 26, 255, 255, 0, 159, 0, 0, 4, 20, 6, 39, 6, 38, 2, 92, 0, 0, 0, 7, 1, 93, 0, 130, 0, 33, 255, 255, 0, 104, 255, 240, 4, 99, 5, 241, 6, 38, 2, 93, 0, 0, 0, 7, 1, 90, 255, 80, 0, 43, 255, 255, 0, 104, 255, 240, 4, 99, 5, 238, 6, 38, 2, 93, 0, 0, 0, 6, 1, 91, 106, 40, 255, 255, 0, 104, 255, 240, 4, 99, 6, 24, 6, 38, 2, 93, 0, 0, 0, 6, 1, 92, 106, 44, 255, 255, 0, 104, 255, 240, 4, 99, 6, 51, 6, 38, 2, 93, 0, 0, 0, 6, 1, 93, 113, 45, 255, 255, 0, 104, 255, 240, 4, 99, 5, 254, 6, 38, 2, 93, 0, 0, 0, 6, 1, 97, 215, 44, 255, 255, 0, 157, 255, 240, 4, 67, 5, 254, 6, 38, 2, 98, 0, 0, 0, 7, 1, 90, 255, 115, 0, 56, 255, 255, 0, 157, 255, 240, 4, 67, 5, 251, 6, 38, 2, 98, 0, 0, 0, 7, 1, 91, 0, 141, 0, 53, 255, 255, 0, 157, 255, 240, 4, 67, 6, 37, 6, 38, 2, 98, 0, 0, 0, 7, 1, 92, 0, 141, 0, 57, 255, 255, 0, 157, 255, 240, 4, 67, 6, 11, 6, 38, 2, 98, 0, 0, 0, 6, 1, 97, 250, 57, 255, 255, 0, 58, 0, 0, 4, 174, 5, 226, 6, 38, 2, 102, 0, 0, 0, 6, 1, 91, 110, 28, 255, 255, 0, 22, 0, 0, 4, 184, 5, 181, 6, 38, 2, 79, 0, 0, 0, 6, 1, 94, 234, 5, 255, 255, 0, 22, 0, 0, 4, 184, 6, 4, 6, 38, 2, 79, 0, 0, 0, 6, 1, 95, 237, 98, 0, 2, 0, 22, 254, 88, 4, 184, 4, 141, 0, 35, 0, 40, 0, 0, 65, 33, 1, 33, 55, 33, 23, 6, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 39, 6, 6, 35, 34, 38, 53, 52, 54, 55, 54, 54, 55, 51, 1, 19, 55, 23, 19, 2, 235, 254, 242, 254, 57, 1, 28, 80, 1, 200, 78, 30, 46, 17, 21, 22, 35, 30, 30, 81, 46, 69, 89, 28, 47, 14, 40, 29, 37, 30, 15, 18, 18, 60, 45, 57, 253, 20, 145, 6, 6, 149, 4, 141, 251, 115, 221, 207, 21, 48, 25, 33, 69, 35, 51, 77, 26, 26, 27, 29, 15, 154, 6, 14, 39, 29, 27, 49, 22, 22, 40, 18, 1, 169, 1, 144, 16, 16, 254, 112, 255, 255, 0, 84, 255, 240, 4, 86, 5, 238, 6, 38, 2, 81, 0, 0, 0, 6, 1, 91, 93, 40, 255, 255, 0, 84, 255, 240, 4, 86, 6, 24, 6, 38, 2, 81, 0, 0, 0, 6, 1, 92, 93, 44, 255, 255, 0, 84, 255, 240, 4, 86, 6, 25, 6, 38, 2, 81, 0, 0, 0, 6, 1, 100, 216, 44, 255, 255, 0, 80, 0, 0, 4, 111, 6, 13, 6, 38, 2, 82, 0, 0, 0, 7, 1, 100, 255, 87, 0, 32, 255, 255, 0, 160, 0, 0, 4, 56, 5, 181, 6, 38, 2, 83, 0, 0, 0, 6, 1, 94, 217, 5, 255, 255, 0, 160, 0, 0, 4, 56, 6, 4, 6, 38, 2, 83, 0, 0, 0, 6, 1, 95, 220, 98, 255, 255, 0, 160, 0, 0, 4, 56, 6, 15, 6, 38, 2, 83, 0, 0, 0, 6, 1, 96, 229, 48, 0, 1, 0, 160, 254, 88, 4, 56, 4, 141, 0, 40, 0, 0, 65, 53, 33, 53, 33, 53, 33, 17, 33, 6, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 39, 6, 6, 35, 34, 38, 53, 52, 54, 55, 54, 54, 55, 51, 53, 33, 17, 3, 220, 253, 219, 2, 129, 252, 104, 2, 21, 26, 40, 14, 19, 18, 35, 30, 30, 81, 46, 69, 89, 28, 47, 14, 40, 29, 37, 30, 15, 18, 18, 60, 45, 131, 253, 133, 1, 238, 223, 225, 223, 251, 115, 21, 46, 24, 30, 64, 32, 51, 77, 26, 26, 27, 29, 15, 154, 6, 14, 39, 29, 27, 49, 22, 22, 40, 18, 221, 1, 17, 255, 255, 0, 160, 0, 0, 4, 56, 6, 13, 6, 38, 2, 83, 0, 0, 0, 6, 1, 100, 220, 32, 255, 255, 0, 94, 255, 240, 4, 90, 6, 24, 6, 38, 2, 85, 0, 0, 0, 6, 1, 92, 122, 44, 255, 255, 0, 94, 255, 240, 4, 90, 6, 16, 6, 38, 2, 85, 0, 0, 0, 6, 1, 95, 245, 110, 255, 255, 0, 94, 254, 25, 4, 90, 4, 157, 6, 38, 2, 85, 0, 0, 0, 7, 1, 104, 0, 195, 254, 193, 255, 255, 0, 142, 0, 0, 4, 24, 6, 12, 6, 38, 2, 86, 0, 0, 0, 7, 1, 92, 0, 146, 0, 32, 255, 255, 0, 202, 0, 0, 4, 9, 6, 33, 6, 38, 2, 87, 0, 0, 0, 7, 1, 93, 0, 142, 0, 27, 255, 255, 0, 202, 0, 0, 4, 9, 5, 176, 6, 38, 2, 87, 0, 0, 0, 6, 1, 94, 255, 0, 255, 255, 0, 202, 0, 0, 4, 9, 5, 254, 6, 38, 2, 87, 0, 0, 0, 6, 1, 95, 1, 92, 0, 1, 0, 202, 254, 88, 4, 9, 4, 140, 0, 40, 0, 0, 83, 21, 33, 17, 33, 21, 33, 6, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 39, 6, 6, 35, 34, 38, 53, 52, 54, 55, 54, 54, 55, 33, 53, 33, 17, 33, 53, 202, 1, 16, 254, 240, 1, 69, 23, 38, 14, 21, 21, 35, 30, 30, 81, 46, 69, 89, 28, 47, 14, 40, 29, 37, 30, 15, 18, 18, 60, 45, 1, 0, 254, 233, 1, 23, 4, 140, 226, 253, 56, 226, 19, 42, 21, 32, 69, 34, 51, 77, 26, 26, 27, 29, 15, 154, 6, 14, 39, 29, 27, 49, 22, 22, 40, 18, 226, 2, 200, 226, 255, 255, 0, 202, 0, 0, 4, 9, 6, 9, 6, 38, 2, 87, 0, 0, 0, 6, 1, 96, 10, 42, 255, 255, 0, 160, 255, 240, 5, 13, 6, 5, 6, 38, 2, 88, 0, 0, 0, 7, 1, 92, 1, 163, 0, 25, 255, 255, 0, 154, 254, 32, 4, 165, 4, 141, 6, 38, 2, 89, 0, 0, 0, 7, 1, 104, 0, 121, 254, 200, 255, 255, 0, 161, 0, 0, 4, 103, 5, 203, 6, 38, 2, 90, 0, 0, 0, 7, 1, 91, 255, 62, 0, 5, 255, 255, 0, 161, 254, 33, 4, 103, 4, 141, 6, 38, 2, 90, 0, 0, 0, 7, 1, 104, 0, 65, 254, 201, 255, 255, 0, 161, 0, 0, 4, 103, 4, 144, 6, 38, 2, 90, 0, 0, 0, 7, 0, 109, 0, 92, 254, 120, 255, 255, 0, 161, 0, 0, 4, 103, 4, 141, 6, 38, 2, 90, 0, 0, 0, 7, 1, 96, 0, 31, 253, 65, 255, 255, 0, 159, 0, 0, 4, 20, 5, 226, 6, 38, 2, 92, 0, 0, 0, 6, 1, 91, 123, 28, 255, 255, 0, 159, 254, 25, 4, 20, 4, 141, 6, 38, 2, 92, 0, 0, 0, 7, 1, 104, 0, 189, 254, 193, 255, 255, 0, 159, 0, 0, 4, 20, 6, 13, 6, 38, 2, 92, 0, 0, 0, 6, 1, 100, 246, 32, 255, 255, 0, 104, 255, 240, 4, 99, 5, 193, 6, 38, 2, 93, 0, 0, 0, 6, 1, 94, 226, 17, 255, 255, 0, 104, 255, 240, 4, 99, 6, 16, 6, 38, 2, 93, 0, 0, 0, 6, 1, 95, 229, 110, 255, 255, 0, 104, 255, 240, 4, 143, 6, 26, 6, 38, 2, 93, 0, 0, 0, 6, 1, 99, 114, 44, 255, 255, 0, 147, 0, 0, 4, 115, 5, 251, 6, 38, 2, 95, 0, 0, 0, 6, 1, 91, 55, 53, 255, 255, 0, 147, 254, 33, 4, 115, 4, 141, 6, 38, 2, 95, 0, 0, 0, 7, 1, 104, 0, 129, 254, 201, 255, 255, 0, 147, 0, 0, 4, 115, 6, 38, 6, 38, 2, 95, 0, 0, 0, 6, 1, 100, 178, 57, 255, 255, 0, 131, 255, 240, 4, 92, 5, 238, 6, 38, 2, 96, 0, 0, 0, 7, 1, 91, 0, 131, 0, 40, 255, 255, 0, 131, 255, 240, 4, 92, 6, 24, 6, 38, 2, 96, 0, 0, 0, 7, 1, 92, 0, 131, 0, 44, 255, 255, 0, 131, 254, 50, 4, 92, 4, 157, 6, 38, 2, 96, 0, 0, 0, 6, 1, 102, 53, 252, 255, 255, 0, 131, 255, 240, 4, 92, 6, 25, 6, 38, 2, 96, 0, 0, 0, 6, 1, 100, 254, 44, 255, 255, 0, 84, 0, 0, 4, 154, 6, 13, 6, 38, 2, 97, 0, 0, 0, 6, 1, 100, 243, 32, 255, 255, 0, 157, 255, 240, 4, 67, 6, 64, 6, 38, 2, 98, 0, 0, 0, 7, 1, 93, 0, 148, 0, 58, 255, 255, 0, 157, 255, 240, 4, 67, 5, 206, 6, 38, 2, 98, 0, 0, 0, 6, 1, 94, 4, 30, 255, 255, 0, 157, 255, 240, 4, 67, 6, 29, 6, 38, 2, 98, 0, 0, 0, 6, 1, 95, 7, 123, 255, 255, 0, 157, 255, 240, 4, 67, 6, 100, 6, 38, 2, 98, 0, 0, 0, 7, 1, 98, 0, 25, 0, 209, 255, 255, 0, 157, 255, 240, 4, 178, 6, 39, 6, 38, 2, 98, 0, 0, 0, 7, 1, 99, 0, 149, 0, 57, 0, 1, 0, 157, 254, 166, 4, 67, 4, 141, 0, 57, 0, 0, 65, 33, 3, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 17, 33, 17, 20, 22, 23, 22, 22, 23, 50, 50, 51, 6, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 39, 6, 6, 35, 34, 38, 53, 52, 54, 55, 54, 54, 55, 54, 54, 53, 4, 67, 254, 233, 1, 23, 22, 23, 71, 47, 46, 72, 24, 23, 26, 254, 235, 66, 59, 57, 159, 95, 3, 5, 3, 8, 12, 5, 5, 5, 35, 30, 30, 81, 46, 69, 89, 28, 47, 14, 40, 29, 37, 30, 7, 8, 6, 19, 13, 119, 139, 4, 141, 253, 9, 51, 74, 24, 26, 24, 24, 24, 24, 76, 51, 2, 247, 253, 9, 99, 155, 53, 52, 57, 5, 14, 28, 14, 17, 34, 17, 51, 77, 26, 26, 27, 29, 15, 154, 6, 14, 39, 29, 19, 34, 16, 13, 24, 12, 45, 195, 148, 255, 255, 0, 33, 0, 0, 4, 143, 6, 12, 6, 38, 2, 100, 0, 0, 0, 7, 1, 92, 0, 130, 0, 32, 255, 255, 0, 58, 0, 0, 4, 174, 6, 12, 6, 38, 2, 102, 0, 0, 0, 6, 1, 92, 110, 32, 255, 255, 0, 58, 0, 0, 4, 174, 5, 242, 6, 38, 2, 102, 0, 0, 0, 6, 1, 97, 219, 32, 255, 255, 0, 153, 0, 0, 4, 75, 5, 226, 6, 38, 2, 103, 0, 0, 0, 6, 1, 91, 115, 28, 255, 255, 0, 153, 0, 0, 4, 75, 6, 15, 6, 38, 2, 103, 0, 0, 0, 6, 1, 96, 247, 48, 255, 255, 0, 153, 0, 0, 4, 75, 6, 13, 6, 38, 2, 103, 0, 0, 0, 6, 1, 100, 238, 32, 255, 255, 0, 28, 0, 0, 4, 204, 6, 129, 6, 38, 0, 2, 0, 0, 0, 7, 1, 120, 253, 225, 0, 0, 255, 255, 255, 152, 0, 0, 4, 184, 6, 131, 4, 38, 0, 6, 80, 0, 0, 7, 1, 120, 253, 83, 0, 2, 255, 255, 255, 172, 0, 0, 4, 162, 6, 127, 4, 38, 0, 9, 94, 0, 0, 7, 1, 120, 253, 103, 255, 254, 255, 255, 255, 172, 0, 0, 4, 38, 6, 131, 4, 38, 0, 10, 27, 0, 0, 7, 1, 120, 253, 103, 0, 2, 255, 255, 255, 144, 255, 236, 4, 133, 6, 129, 4, 38, 0, 16, 10, 0, 0, 7, 1, 120, 253, 75, 0, 0, 255, 255, 255, 122, 0, 1, 5, 48, 6, 130, 4, 38, 0, 26, 104, 1, 0, 7, 1, 120, 253, 53, 0, 1, 255, 255, 255, 171, 0, 0, 4, 140, 6, 129, 4, 38, 1, 132, 10, 0, 0, 7, 1, 120, 253, 102, 0, 0, 255, 255, 0, 179, 255, 235, 4, 63, 6, 192, 6, 38, 1, 141, 0, 0, 0, 6, 1, 121, 212, 183, 255, 255, 0, 28, 0, 0, 4, 204, 5, 176, 6, 6, 0, 2, 0, 0, 255, 255, 0, 129, 0, 0, 4, 154, 5, 176, 6, 6, 0, 3, 0, 0, 255, 255, 0, 147, 0, 0, 4, 104, 5, 176, 6, 6, 0, 6, 0, 0, 255, 255, 0, 89, 0, 0, 4, 129, 5, 176, 6, 6, 0, 27, 0, 0, 255, 255, 0, 123, 0, 0, 4, 68, 5, 176, 6, 6, 0, 9, 0, 0, 255, 255, 0, 193, 0, 0, 4, 11, 5, 176, 6, 6, 0, 10, 0, 0, 255, 255, 0, 129, 0, 0, 4, 235, 5, 176, 6, 6, 0, 12, 0, 0, 255, 255, 0, 127, 0, 0, 4, 96, 5, 176, 6, 6, 0, 14, 0, 0, 255, 255, 0, 123, 0, 0, 4, 67, 5, 176, 6, 6, 0, 15, 0, 0, 255, 255, 0, 80, 255, 236, 4, 123, 5, 196, 6, 6, 0, 16, 0, 0, 255, 255, 0, 149, 0, 0, 4, 142, 5, 176, 6, 6, 0, 17, 0, 0, 255, 255, 0, 27, 0, 0, 4, 177, 5, 176, 6, 6, 0, 21, 0, 0, 255, 255, 0, 33, 0, 0, 4, 200, 5, 176, 6, 6, 0, 26, 0, 0, 255, 255, 0, 30, 0, 0, 4, 199, 5, 176, 6, 6, 0, 25, 0, 0, 255, 255, 0, 193, 0, 0, 4, 11, 7, 47, 6, 38, 0, 10, 0, 0, 0, 7, 1, 97, 255, 210, 1, 93, 255, 255, 0, 33, 0, 0, 4, 200, 7, 47, 6, 38, 0, 26, 0, 0, 0, 7, 1, 97, 255, 237, 1, 93, 255, 255, 0, 106, 255, 235, 4, 143, 6, 140, 6, 38, 1, 133, 0, 0, 0, 6, 1, 120, 210, 11, 255, 255, 0, 132, 255, 236, 4, 156, 6, 139, 6, 38, 1, 137, 0, 0, 0, 6, 1, 120, 243, 10, 255, 255, 0, 129, 254, 97, 4, 76, 6, 140, 6, 38, 1, 139, 0, 0, 0, 6, 1, 120, 226, 11, 255, 255, 0, 179, 255, 235, 4, 63, 6, 120, 6, 38, 1, 141, 0, 0, 0, 6, 1, 120, 214, 247, 255, 255, 0, 126, 255, 235, 4, 84, 6, 204, 6, 38, 1, 149, 0, 0, 0, 6, 1, 121, 189, 195, 255, 255, 0, 159, 0, 0, 4, 183, 4, 58, 6, 6, 0, 79, 0, 0, 255, 255, 0, 103, 255, 235, 4, 100, 4, 78, 6, 6, 0, 42, 0, 0, 255, 255, 0, 172, 254, 96, 4, 99, 4, 58, 6, 6, 1, 107, 0, 0, 255, 255, 0, 72, 0, 0, 4, 133, 4, 58, 6, 6, 0, 49, 0, 0, 255, 255, 0, 89, 0, 0, 4, 162, 4, 58, 6, 6, 0, 51, 0, 0, 255, 255, 0, 179, 255, 235, 4, 63, 5, 216, 6, 38, 1, 141, 0, 0, 0, 6, 1, 97, 234, 6, 255, 255, 0, 126, 255, 235, 4, 84, 5, 228, 6, 38, 1, 149, 0, 0, 0, 6, 1, 97, 211, 18, 255, 255, 0, 103, 255, 235, 4, 100, 6, 140, 6, 38, 0, 42, 0, 0, 0, 6, 1, 120, 210, 11, 255, 255, 0, 126, 255, 235, 4, 84, 6, 131, 6, 38, 1, 149, 0, 0, 0, 6, 1, 120, 191, 2, 255, 255, 0, 46, 255, 236, 4, 171, 6, 134, 6, 38, 1, 152, 0, 0, 0, 6, 1, 120, 211, 5, 255, 255, 0, 147, 0, 0, 4, 104, 7, 38, 6, 38, 0, 6, 0, 0, 0, 7, 1, 97, 255, 252, 1, 84, 255, 255, 0, 141, 0, 0, 4, 59, 7, 22, 6, 38, 1, 123, 0, 0, 0, 7, 1, 91, 0, 118, 1, 80, 0, 1, 0, 89, 255, 237, 4, 140, 5, 196, 0, 79, 0, 0, 65, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 33, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 39, 38, 38, 39, 38, 38, 39, 38, 38, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 33, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 20, 22, 23, 22, 22, 23, 22, 22, 23, 22, 22, 23, 22, 22, 3, 119, 32, 30, 30, 87, 56, 63, 105, 37, 38, 42, 2, 254, 236, 85, 71, 82, 214, 111, 111, 188, 68, 68, 77, 67, 60, 61, 168, 100, 70, 111, 39, 19, 29, 10, 11, 11, 31, 30, 30, 87, 56, 61, 91, 31, 30, 31, 2, 1, 18, 76, 68, 68, 189, 114, 110, 188, 69, 69, 78, 19, 17, 19, 55, 35, 66, 173, 95, 78, 105, 33, 32, 27, 1, 124, 39, 65, 23, 23, 26, 28, 30, 30, 94, 66, 111, 170, 57, 66, 67, 53, 52, 51, 149, 96, 90, 147, 58, 57, 84, 29, 19, 44, 27, 13, 28, 16, 17, 38, 21, 39, 67, 25, 24, 27, 33, 29, 30, 82, 49, 98, 164, 60, 59, 66, 57, 53, 53, 150, 92, 45, 81, 35, 39, 67, 29, 55, 78, 26, 21, 49, 29, 30, 68, 0, 255, 255, 0, 193, 0, 0, 4, 11, 5, 176, 6, 6, 0, 10, 0, 0, 255, 255, 0, 193, 0, 0, 4, 11, 7, 47, 6, 38, 0, 10, 0, 0, 0, 7, 1, 97, 255, 210, 1, 93, 255, 255, 0, 111, 255, 236, 4, 76, 5, 176, 6, 6, 0, 11, 0, 0, 255, 255, 0, 151, 0, 0, 4, 200, 5, 176, 6, 6, 2, 113, 0, 0, 255, 255, 0, 129, 0, 0, 4, 235, 7, 19, 6, 38, 0, 12, 0, 0, 0, 7, 1, 91, 0, 95, 1, 77, 255, 255, 0, 2, 255, 235, 4, 213, 7, 56, 6, 38, 1, 168, 0, 0, 0, 7, 1, 95, 0, 32, 1, 150, 255, 255, 0, 28, 0, 0, 4, 204, 5, 176, 6, 6, 0, 2, 0, 0, 255, 255, 0, 129, 0, 0, 4, 154, 5, 176, 6, 6, 0, 3, 0, 0, 255, 255, 0, 141, 0, 0, 4, 59, 5, 176, 6, 6, 1, 123, 0, 0, 255, 255, 0, 147, 0, 0, 4, 104, 5, 176, 6, 6, 0, 6, 0, 0, 255, 255, 0, 111, 0, 0, 4, 63, 7, 43, 6, 38, 1, 166, 0, 0, 0, 7, 1, 95, 255, 214, 1, 137, 255, 255, 0, 127, 0, 0, 4, 96, 5, 176, 6, 6, 0, 14, 0, 0, 255, 255, 0, 123, 0, 0, 4, 68, 5, 176, 6, 6, 0, 9, 0, 0, 255, 255, 0, 80, 255, 236, 4, 123, 5, 196, 6, 6, 0, 16, 0, 0, 255, 255, 0, 121, 0, 0, 4, 71, 5, 176, 6, 6, 1, 128, 0, 0, 255, 255, 0, 149, 0, 0, 4, 142, 5, 176, 6, 6, 0, 17, 0, 0, 255, 255, 0, 79, 255, 235, 4, 119, 5, 197, 6, 6, 0, 4, 0, 0, 255, 255, 0, 27, 0, 0, 4, 177, 5, 176, 6, 6, 0, 21, 0, 0, 255, 255, 0, 65, 0, 0, 4, 238, 5, 176, 6, 6, 1, 130, 0, 0, 255, 255, 0, 30, 0, 0, 4, 199, 5, 176, 6, 6, 0, 25, 0, 0, 255, 255, 0, 115, 255, 236, 4, 75, 4, 78, 6, 6, 0, 28, 0, 0, 255, 255, 0, 112, 255, 236, 4, 104, 4, 78, 6, 6, 0, 32, 0, 0, 255, 255, 0, 121, 0, 0, 4, 60, 5, 246, 6, 38, 1, 185, 0, 0, 0, 6, 1, 95, 216, 84, 255, 255, 0, 103, 255, 235, 4, 100, 4, 78, 6, 6, 0, 42, 0, 0, 255, 255, 0, 145, 254, 96, 4, 89, 4, 78, 6, 6, 0, 43, 0, 0, 0, 1, 0, 117, 255, 235, 4, 60, 4, 78, 0, 51, 0, 0, 101, 34, 38, 39, 38, 38, 53, 53, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 7, 33, 54, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 21, 21, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 39, 33, 22, 6, 7, 6, 6, 2, 108, 67, 87, 25, 26, 20, 21, 26, 25, 86, 66, 45, 76, 27, 27, 28, 2, 1, 6, 2, 68, 61, 62, 170, 100, 125, 189, 64, 64, 64, 65, 64, 63, 190, 126, 93, 167, 63, 63, 73, 2, 254, 250, 2, 31, 28, 28, 74, 202, 54, 45, 44, 117, 63, 30, 62, 116, 45, 45, 54, 31, 26, 26, 72, 40, 96, 155, 55, 54, 60, 86, 74, 74, 199, 114, 30, 114, 199, 74, 74, 85, 59, 52, 52, 144, 84, 38, 62, 22, 22, 24, 255, 255, 0, 52, 254, 75, 4, 205, 4, 58, 6, 6, 0, 52, 0, 0, 255, 255, 0, 89, 0, 0, 4, 162, 4, 58, 6, 6, 0, 51, 0, 0, 255, 255, 0, 112, 255, 236, 4, 104, 5, 238, 6, 38, 0, 32, 0, 0, 0, 6, 1, 97, 211, 28, 255, 255, 0, 143, 0, 0, 4, 50, 5, 212, 6, 38, 1, 181, 0, 0, 0, 6, 1, 91, 117, 14, 255, 255, 0, 122, 255, 235, 4, 85, 4, 78, 6, 6, 0, 46, 0, 0, 255, 255, 0, 215, 0, 0, 4, 73, 5, 227, 6, 6, 0, 36, 0, 0, 255, 255, 0, 199, 0, 0, 4, 90, 5, 211, 6, 38, 1, 109, 0, 0, 0, 6, 1, 97, 20, 1, 255, 255, 0, 223, 254, 75, 3, 113, 5, 227, 6, 6, 0, 37, 0, 0, 255, 255, 0, 133, 0, 0, 4, 204, 5, 212, 6, 38, 1, 186, 0, 0, 0, 6, 1, 91, 75, 14, 255, 255, 0, 52, 254, 75, 4, 205, 5, 234, 6, 38, 0, 52, 0, 0, 0, 6, 1, 95, 13, 72, 255, 255, 0, 59, 255, 241, 4, 159, 5, 176, 4, 39, 0, 91, 254, 119, 0, 0, 0, 7, 0, 91, 1, 151, 0, 0, 255, 255, 0, 226, 254, 75, 4, 93, 5, 224, 6, 38, 1, 113, 0, 0, 0, 6, 1, 100, 101, 243, 255, 255, 1, 210, 3, 228, 3, 8, 6, 24, 6, 6, 0, 109, 0, 0, 255, 255, 0, 127, 0, 0, 4, 96, 7, 31, 6, 38, 0, 14, 0, 0, 0, 7, 1, 91, 0, 114, 1, 89, 255, 255, 0, 75, 0, 0, 4, 120, 5, 221, 6, 38, 0, 40, 0, 0, 0, 7, 1, 91, 0, 151, 0, 23, 255, 255, 0, 28, 254, 147, 4, 204, 5, 176, 6, 38, 0, 2, 0, 0, 0, 6, 1, 114, 1, 5, 255, 255, 0, 115, 254, 155, 4, 75, 4, 78, 6, 38, 0, 28, 0, 0, 0, 6, 1, 114, 189, 13, 255, 255, 255, 76, 255, 236, 4, 123, 6, 84, 6, 38, 0, 16, 0, 0, 0, 7, 2, 108, 253, 88, 0, 144, 255, 255, 0, 147, 0, 0, 4, 104, 7, 25, 6, 38, 0, 6, 0, 0, 0, 7, 1, 90, 255, 117, 1, 83, 255, 255, 0, 111, 0, 0, 4, 63, 7, 12, 6, 38, 1, 166, 0, 0, 0, 7, 1, 90, 255, 65, 1, 70, 255, 255, 0, 112, 255, 236, 4, 104, 5, 225, 6, 38, 0, 32, 0, 0, 0, 7, 1, 90, 255, 76, 0, 27, 255, 255, 0, 121, 0, 0, 4, 60, 5, 215, 6, 38, 1, 185, 0, 0, 0, 7, 1, 90, 255, 67, 0, 17, 255, 255, 0, 69, 0, 0, 4, 219, 5, 176, 6, 6, 1, 131, 0, 0, 255, 255, 0, 69, 254, 34, 4, 220, 4, 58, 6, 6, 1, 151, 0, 0, 255, 255, 0, 12, 0, 0, 5, 3, 7, 112, 6, 38, 1, 226, 0, 0, 0, 7, 1, 119, 4, 88, 1, 130, 255, 255, 0, 44, 0, 0, 4, 117, 6, 63, 6, 38, 1, 227, 0, 0, 0, 7, 1, 119, 4, 53, 0, 81, 255, 255, 0, 78, 254, 3, 4, 148, 5, 196, 6, 38, 1, 165, 0, 0, 0, 7, 2, 110, 255, 221, 255, 103, 255, 255, 0, 114, 254, 13, 4, 94, 4, 77, 6, 38, 1, 184, 0, 0, 0, 7, 2, 110, 255, 221, 255, 113, 255, 255, 0, 79, 254, 18, 4, 119, 5, 197, 6, 38, 0, 4, 0, 0, 0, 7, 2, 110, 255, 226, 255, 118, 255, 255, 0, 117, 254, 18, 4, 60, 4, 78, 6, 38, 0, 30, 0, 0, 0, 7, 2, 110, 255, 226, 255, 118, 255, 255, 0, 33, 0, 0, 4, 200, 5, 176, 6, 6, 0, 26, 0, 0, 255, 255, 0, 40, 254, 95, 4, 182, 4, 58, 6, 6, 1, 135, 0, 0, 255, 255, 0, 193, 0, 0, 4, 11, 5, 176, 6, 6, 0, 10, 0, 0, 255, 255, 255, 248, 0, 0, 4, 195, 7, 56, 6, 38, 1, 164, 0, 0, 0, 7, 1, 95, 255, 245, 1, 150, 255, 255, 0, 34, 0, 0, 4, 164, 5, 246, 6, 38, 1, 183, 0, 0, 0, 6, 1, 95, 237, 84, 255, 255, 0, 193, 0, 0, 4, 11, 5, 176, 6, 6, 0, 10, 0, 0, 255, 255, 0, 28, 0, 0, 4, 204, 7, 65, 6, 38, 0, 2, 0, 0, 0, 7, 1, 95, 0, 0, 1, 159, 255, 255, 0, 115, 255, 236, 4, 75, 5, 255, 6, 38, 0, 28, 0, 0, 0, 6, 1, 95, 220, 93, 255, 255, 0, 28, 0, 0, 4, 204, 7, 47, 6, 38, 0, 2, 0, 0, 0, 7, 1, 97, 255, 243, 1, 93, 255, 255, 0, 115, 255, 236, 4, 75, 5, 237, 6, 38, 0, 28, 0, 0, 0, 6, 1, 97, 206, 27, 255, 255, 0, 48, 0, 0, 4, 153, 5, 176, 6, 6, 0, 72, 0, 0, 255, 255, 0, 46, 255, 236, 4, 170, 4, 79, 6, 6, 0, 73, 0, 0, 255, 255, 0, 147, 0, 0, 4, 104, 7, 56, 6, 38, 0, 6, 0, 0, 0, 7, 1, 95, 0, 9, 1, 150, 255, 255, 0, 112, 255, 236, 4, 104, 6, 0, 6, 38, 0, 32, 0, 0, 0, 6, 1, 95, 225, 94, 255, 255, 0, 78, 255, 234, 4, 116, 6, 248, 6, 38, 2, 16, 0, 0, 0, 7, 1, 97, 255, 241, 1, 38, 255, 255, 0, 156, 255, 236, 4, 115, 4, 79, 6, 6, 0, 81, 0, 0, 255, 255, 0, 156, 255, 236, 4, 115, 5, 238, 6, 38, 0, 81, 0, 0, 0, 6, 1, 97, 253, 28, 255, 255, 255, 248, 0, 0, 4, 195, 7, 38, 6, 38, 1, 164, 0, 0, 0, 7, 1, 97, 255, 231, 1, 84, 255, 255, 0, 34, 0, 0, 4, 164, 5, 228, 6, 38, 1, 183, 0, 0, 0, 6, 1, 97, 223, 18, 255, 255, 0, 78, 255, 236, 4, 148, 7, 46, 6, 38, 1, 165, 0, 0, 0, 7, 1, 97, 255, 231, 1, 92, 255, 255, 0, 114, 255, 236, 4, 94, 5, 236, 6, 38, 1, 184, 0, 0, 0, 6, 1, 97, 227, 26, 255, 255, 0, 111, 0, 0, 4, 63, 6, 220, 6, 38, 1, 166, 0, 0, 0, 7, 1, 94, 255, 211, 1, 44, 255, 255, 0, 121, 0, 0, 4, 60, 5, 168, 6, 38, 1, 185, 0, 0, 0, 6, 1, 94, 213, 248, 255, 255, 0, 111, 0, 0, 4, 63, 7, 25, 6, 38, 1, 166, 0, 0, 0, 7, 1, 97, 255, 200, 1, 71, 255, 255, 0, 121, 0, 0, 4, 60, 5, 228, 6, 38, 1, 185, 0, 0, 0, 6, 1, 97, 202, 18, 255, 255, 0, 80, 255, 236, 4, 123, 7, 68, 6, 38, 0, 16, 0, 0, 0, 7, 1, 97, 255, 225, 1, 114, 255, 255, 0, 103, 255, 235, 4, 100, 5, 237, 6, 38, 0, 42, 0, 0, 0, 6, 1, 97, 230, 27, 255, 255, 0, 78, 255, 236, 4, 121, 5, 196, 6, 6, 1, 224, 0, 0, 255, 255, 0, 97, 255, 235, 4, 94, 4, 78, 6, 6, 1, 225, 0, 0, 255, 255, 0, 78, 255, 236, 4, 121, 7, 37, 6, 38, 1, 224, 0, 0, 0, 7, 1, 97, 255, 232, 1, 83, 255, 255, 0, 97, 255, 235, 4, 94, 5, 247, 6, 38, 1, 225, 0, 0, 0, 6, 1, 97, 210, 37, 255, 255, 0, 32, 255, 236, 4, 62, 7, 46, 6, 38, 1, 176, 0, 0, 0, 7, 1, 97, 255, 174, 1, 92, 255, 255, 0, 111, 255, 236, 4, 84, 5, 237, 6, 38, 1, 200, 0, 0, 0, 6, 1, 97, 212, 27, 255, 255, 0, 2, 255, 235, 4, 213, 6, 233, 6, 38, 1, 168, 0, 0, 0, 7, 1, 94, 0, 29, 1, 57, 255, 255, 0, 52, 254, 75, 4, 205, 5, 156, 6, 38, 0, 52, 0, 0, 0, 6, 1, 94, 10, 236, 255, 255, 0, 2, 255, 235, 4, 213, 7, 38, 6, 38, 1, 168, 0, 0, 0, 7, 1, 97, 0, 18, 1, 84, 255, 255, 0, 52, 254, 75, 4, 205, 5, 216, 6, 38, 0, 52, 0, 0, 0, 6, 1, 97, 0, 6, 255, 255, 0, 2, 255, 235, 4, 213, 7, 66, 6, 38, 1, 168, 0, 0, 0, 7, 1, 99, 0, 174, 1, 84, 255, 255, 0, 52, 254, 75, 4, 205, 5, 244, 6, 38, 0, 52, 0, 0, 0, 7, 1, 99, 0, 155, 0, 6, 255, 255, 0, 157, 0, 0, 4, 95, 7, 38, 6, 38, 1, 170, 0, 0, 0, 7, 1, 97, 255, 192, 1, 84, 255, 255, 0, 124, 0, 0, 4, 97, 5, 228, 6, 38, 1, 194, 0, 0, 0, 6, 1, 97, 27, 18, 255, 255, 0, 74, 0, 0, 4, 128, 7, 47, 6, 38, 1, 174, 0, 0, 0, 7, 1, 97, 255, 188, 1, 93, 255, 255, 0, 99, 0, 0, 4, 124, 5, 216, 6, 38, 1, 198, 0, 0, 0, 6, 1, 97, 24, 6, 255, 255, 0, 30, 254, 75, 5, 80, 5, 176, 6, 38, 0, 25, 0, 0, 0, 7, 2, 111, 2, 14, 0, 0, 255, 255, 0, 89, 254, 75, 4, 255, 4, 58, 6, 38, 0, 51, 0, 0, 0, 7, 2, 111, 1, 189, 0, 0, 255, 255, 0, 112, 255, 236, 4, 56, 6, 0, 6, 6, 0, 31, 0, 0, 255, 255, 0, 39, 254, 75, 5, 99, 5, 176, 6, 38, 1, 167, 0, 0, 0, 7, 2, 111, 2, 33, 0, 0, 255, 255, 0, 34, 254, 75, 5, 81, 4, 58, 6, 38, 1, 187, 0, 0, 0, 7, 2, 111, 2, 15, 0, 0, 255, 255, 0, 28, 254, 153, 4, 204, 5, 176, 6, 38, 0, 2, 0, 0, 0, 7, 1, 101, 4, 196, 0, 5, 255, 255, 0, 115, 254, 161, 4, 75, 4, 78, 6, 38, 0, 28, 0, 0, 0, 7, 1, 101, 4, 127, 0, 13, 255, 255, 0, 28, 0, 0, 4, 204, 7, 199, 6, 38, 0, 2, 0, 0, 0, 7, 1, 118, 4, 216, 1, 66, 255, 255, 0, 115, 255, 236, 4, 75, 6, 133, 6, 38, 0, 28, 0, 0, 0, 7, 1, 118, 4, 179, 0, 0, 255, 255, 0, 28, 0, 0, 5, 28, 7, 227, 6, 38, 0, 2, 0, 0, 0, 7, 2, 76, 255, 241, 1, 94, 255, 255, 0, 115, 255, 236, 4, 247, 6, 161, 6, 38, 0, 28, 0, 0, 0, 6, 2, 76, 204, 28, 255, 255, 255, 210, 0, 0, 4, 204, 7, 210, 6, 38, 0, 2, 0, 0, 0, 7, 2, 75, 255, 220, 1, 65, 255, 255, 255, 173, 255, 236, 4, 75, 6, 145, 6, 38, 0, 28, 0, 0, 0, 6, 2, 75, 183, 0, 255, 255, 0, 28, 0, 0, 4, 204, 7, 240, 6, 38, 0, 2, 0, 0, 0, 7, 2, 74, 255, 242, 1, 61, 255, 255, 0, 115, 255, 236, 4, 139, 6, 175, 6, 38, 0, 28, 0, 0, 0, 6, 2, 74, 205, 252, 255, 255, 0, 28, 0, 0, 4, 204, 8, 44, 6, 38, 0, 2, 0, 0, 0, 7, 2, 73, 255, 232, 1, 59, 255, 255, 0, 115, 255, 236, 4, 75, 6, 235, 6, 38, 0, 28, 0, 0, 0, 6, 2, 73, 195, 250, 255, 255, 0, 28, 254, 153, 4, 204, 7, 73, 6, 38, 0, 2, 0, 0, 0, 39, 1, 92, 0, 134, 1, 93, 0, 7, 1, 101, 4, 196, 0, 5, 255, 255, 0, 115, 254, 161, 4, 75, 6, 7, 6, 38, 0, 28, 0, 0, 0, 38, 1, 92, 97, 27, 0, 7, 1, 101, 4, 127, 0, 13, 255, 255, 0, 28, 0, 0, 4, 204, 7, 189, 6, 38, 0, 2, 0, 0, 0, 7, 2, 105, 255, 245, 1, 76, 255, 255, 0, 115, 255, 236, 4, 75, 6, 123, 6, 38, 0, 28, 0, 0, 0, 6, 2, 105, 208, 10, 255, 255, 0, 28, 0, 0, 4, 204, 8, 28, 6, 38, 0, 2, 0, 0, 0, 7, 2, 77, 255, 252, 1, 171, 255, 255, 0, 115, 255, 236, 4, 75, 6, 218, 6, 38, 0, 28, 0, 0, 0, 6, 2, 77, 215, 105, 255, 255, 0, 28, 0, 0, 4, 204, 8, 51, 6, 38, 0, 2, 0, 0, 0, 7, 2, 104, 255, 224, 1, 61, 255, 255, 0, 115, 255, 236, 4, 75, 6, 242, 6, 38, 0, 28, 0, 0, 0, 6, 2, 104, 187, 252, 255, 255, 0, 28, 0, 0, 4, 204, 8, 35, 6, 38, 0, 2, 0, 0, 0, 7, 2, 109, 255, 198, 1, 65, 255, 255, 0, 115, 255, 236, 4, 75, 6, 226, 6, 38, 0, 28, 0, 0, 0, 6, 2, 109, 161, 0, 255, 255, 0, 28, 254, 153, 4, 204, 7, 65, 6, 38, 0, 2, 0, 0, 0, 39, 1, 95, 0, 0, 1, 159, 0, 7, 1, 101, 4, 196, 0, 5, 255, 255, 0, 115, 254, 161, 4, 75, 5, 255, 6, 38, 0, 28, 0, 0, 0, 38, 1, 95, 220, 93, 0, 7, 1, 101, 4, 127, 0, 13, 255, 255, 0, 147, 254, 158, 4, 104, 5, 176, 6, 38, 0, 6, 0, 0, 0, 7, 1, 101, 4, 220, 0, 10, 255, 255, 0, 112, 254, 148, 4, 104, 4, 78, 6, 38, 0, 32, 0, 0, 0, 7, 1, 101, 4, 211, 0, 0, 255, 255, 0, 147, 0, 0, 4, 104, 7, 190, 6, 38, 0, 6, 0, 0, 0, 7, 1, 118, 4, 225, 1, 57, 255, 255, 0, 112, 255, 236, 4, 104, 6, 134, 6, 38, 0, 32, 0, 0, 0, 7, 1, 118, 4, 184, 0, 1, 255, 255, 0, 147, 0, 0, 4, 104, 7, 91, 6, 38, 0, 6, 0, 0, 0, 7, 1, 93, 0, 150, 1, 85, 255, 255, 0, 112, 255, 236, 4, 104, 6, 35, 6, 38, 0, 32, 0, 0, 0, 6, 1, 93, 109, 29, 255, 255, 0, 147, 0, 0, 5, 37, 7, 218, 6, 38, 0, 6, 0, 0, 0, 7, 2, 76, 255, 250, 1, 85, 255, 255, 0, 112, 255, 236, 4, 252, 6, 162, 6, 38, 0, 32, 0, 0, 0, 6, 2, 76, 209, 29, 255, 255, 255, 219, 0, 0, 4, 104, 7, 201, 6, 38, 0, 6, 0, 0, 0, 7, 2, 75, 255, 229, 1, 56, 255, 255, 255, 178, 255, 236, 4, 104, 6, 145, 6, 38, 0, 32, 0, 0, 0, 6, 2, 75, 188, 0, 255, 255, 0, 147, 0, 0, 4, 185, 7, 231, 6, 38, 0, 6, 0, 0, 0, 7, 2, 74, 255, 251, 1, 52, 255, 255, 0, 112, 255, 236, 4, 144, 6, 176, 6, 38, 0, 32, 0, 0, 0, 6, 2, 74, 210, 253, 255, 255, 0, 147, 0, 0, 4, 104, 8, 35, 6, 38, 0, 6, 0, 0, 0, 7, 2, 73, 255, 241, 1, 50, 255, 255, 0, 112, 255, 236, 4, 104, 6, 236, 6, 38, 0, 32, 0, 0, 0, 6, 2, 73, 200, 251, 255, 255, 0, 147, 254, 158, 4, 104, 7, 64, 6, 38, 0, 6, 0, 0, 0, 39, 1, 92, 0, 143, 1, 84, 0, 7, 1, 101, 4, 220, 0, 10, 255, 255, 0, 112, 254, 148, 4, 104, 6, 8, 6, 38, 0, 32, 0, 0, 0, 38, 1, 92, 102, 28, 0, 7, 1, 101, 4, 211, 0, 0, 255, 255, 0, 193, 0, 0, 4, 11, 7, 199, 6, 38, 0, 10, 0, 0, 0, 7, 1, 118, 4, 183, 1, 66, 255, 255, 0, 199, 0, 0, 4, 90, 6, 108, 6, 38, 1, 109, 0, 0, 0, 7, 1, 118, 4, 250, 255, 231, 255, 255, 0, 193, 254, 158, 4, 11, 5, 176, 6, 38, 0, 10, 0, 0, 0, 7, 1, 101, 4, 175, 0, 10, 255, 255, 0, 215, 254, 158, 4, 73, 5, 227, 6, 38, 0, 36, 0, 0, 0, 7, 1, 101, 4, 239, 0, 10, 255, 255, 0, 80, 254, 139, 4, 123, 5, 196, 6, 38, 0, 16, 0, 0, 0, 7, 1, 101, 4, 194, 255, 247, 255, 255, 0, 103, 254, 134, 4, 100, 4, 78, 6, 38, 0, 42, 0, 0, 0, 7, 1, 101, 4, 189, 255, 242, 255, 255, 0, 80, 255, 236, 4, 123, 7, 220, 6, 38, 0, 16, 0, 0, 0, 7, 1, 118, 4, 198, 1, 87, 255, 255, 0, 103, 255, 235, 4, 100, 6, 133, 6, 38, 0, 42, 0, 0, 0, 7, 1, 118, 4, 203, 0, 0, 255, 255, 0, 80, 255, 236, 5, 10, 7, 248, 6, 38, 0, 16, 0, 0, 0, 7, 2, 76, 255, 223, 1, 115, 255, 255, 0, 103, 255, 235, 5, 15, 6, 161, 6, 38, 0, 42, 0, 0, 0, 6, 2, 76, 228, 28, 255, 255, 255, 192, 255, 236, 4, 123, 7, 231, 6, 38, 0, 16, 0, 0, 0, 7, 2, 75, 255, 202, 1, 86, 255, 255, 255, 197, 255, 235, 4, 100, 6, 145, 6, 38, 0, 42, 0, 0, 0, 6, 2, 75, 207, 0, 255, 255, 0, 80, 255, 236, 4, 158, 8, 5, 6, 38, 0, 16, 0, 0, 0, 7, 2, 74, 255, 224, 1, 82, 255, 255, 0, 103, 255, 235, 4, 163, 6, 175, 6, 38, 0, 42, 0, 0, 0, 6, 2, 74, 229, 252, 255, 255, 0, 80, 255, 236, 4, 123, 8, 65, 6, 38, 0, 16, 0, 0, 0, 7, 2, 73, 255, 214, 1, 80, 255, 255, 0, 103, 255, 235, 4, 100, 6, 235, 6, 38, 0, 42, 0, 0, 0, 6, 2, 73, 219, 250, 255, 255, 0, 80, 254, 139, 4, 123, 7, 94, 6, 38, 0, 16, 0, 0, 0, 39, 1, 92, 0, 116, 1, 114, 0, 7, 1, 101, 4, 194, 255, 247, 255, 255, 0, 103, 254, 134, 4, 100, 6, 7, 6, 38, 0, 42, 0, 0, 0, 38, 1, 92, 121, 27, 0, 7, 1, 101, 4, 189, 255, 242, 255, 255, 0, 93, 255, 236, 4, 224, 7, 39, 6, 38, 0, 216, 0, 0, 0, 7, 1, 91, 0, 127, 1, 97, 255, 255, 0, 95, 255, 235, 4, 166, 5, 221, 6, 38, 1, 53, 0, 0, 0, 6, 1, 91, 111, 23, 255, 255, 0, 93, 255, 236, 4, 224, 7, 42, 6, 38, 0, 216, 0, 0, 0, 7, 1, 90, 255, 101, 1, 100, 255, 255, 0, 95, 255, 235, 4, 166, 5, 224, 6, 38, 1, 53, 0, 0, 0, 7, 1, 90, 255, 85, 0, 26, 255, 255, 0, 93, 255, 236, 4, 224, 7, 207, 6, 38, 0, 216, 0, 0, 0, 7, 1, 118, 4, 209, 1, 74, 255, 255, 0, 95, 255, 235, 4, 166, 6, 133, 6, 38, 1, 53, 0, 0, 0, 7, 1, 118, 4, 193, 0, 0, 255, 255, 0, 93, 255, 236, 4, 224, 7, 108, 6, 38, 0, 216, 0, 0, 0, 7, 1, 93, 0, 134, 1, 102, 255, 255, 0, 95, 255, 235, 4, 166, 6, 34, 6, 38, 1, 53, 0, 0, 0, 6, 1, 93, 118, 28, 255, 255, 0, 93, 254, 148, 4, 224, 5, 223, 6, 38, 0, 216, 0, 0, 0, 7, 1, 101, 4, 180, 0, 0, 255, 255, 0, 95, 254, 139, 4, 166, 4, 155, 6, 38, 1, 53, 0, 0, 0, 7, 1, 101, 4, 185, 255, 247, 255, 255, 0, 126, 254, 141, 4, 78, 5, 176, 6, 38, 0, 22, 0, 0, 0, 7, 1, 101, 4, 187, 255, 249, 255, 255, 0, 150, 254, 148, 4, 75, 4, 58, 6, 38, 0, 48, 0, 0, 0, 7, 1, 101, 4, 93, 0, 0, 255, 255, 0, 126, 255, 236, 4, 78, 7, 196, 6, 38, 0, 22, 0, 0, 0, 7, 1, 118, 4, 206, 1, 63, 255, 255, 0, 150, 255, 235, 4, 75, 6, 113, 6, 38, 0, 48, 0, 0, 0, 7, 1, 118, 4, 205, 255, 236, 255, 255, 0, 133, 255, 236, 5, 183, 7, 31, 6, 38, 0, 236, 0, 0, 0, 7, 1, 91, 0, 133, 1, 89, 255, 255, 0, 118, 255, 235, 5, 95, 5, 200, 6, 38, 1, 73, 0, 0, 0, 6, 1, 91, 115, 2, 255, 255, 0, 133, 255, 236, 5, 183, 7, 34, 6, 38, 0, 236, 0, 0, 0, 7, 1, 90, 255, 107, 1, 92, 255, 255, 0, 118, 255, 235, 5, 95, 5, 203, 6, 38, 1, 73, 0, 0, 0, 7, 1, 90, 255, 89, 0, 5, 255, 255, 0, 133, 255, 236, 5, 183, 7, 199, 6, 38, 0, 236, 0, 0, 0, 7, 1, 118, 4, 215, 1, 66, 255, 255, 0, 118, 255, 235, 5, 95, 6, 113, 6, 38, 1, 73, 0, 0, 0, 7, 1, 118, 4, 197, 255, 236, 255, 255, 0, 133, 255, 236, 5, 183, 7, 100, 6, 38, 0, 236, 0, 0, 0, 7, 1, 93, 0, 140, 1, 94, 255, 255, 0, 118, 255, 235, 5, 95, 6, 13, 6, 38, 1, 73, 0, 0, 0, 6, 1, 93, 122, 7, 255, 255, 0, 133, 254, 139, 5, 183, 5, 229, 6, 38, 0, 236, 0, 0, 0, 7, 1, 101, 4, 207, 255, 247, 255, 255, 0, 118, 254, 148, 5, 95, 4, 154, 6, 38, 1, 73, 0, 0, 0, 7, 1, 101, 4, 90, 0, 0, 255, 255, 0, 33, 254, 187, 4, 200, 5, 176, 6, 38, 0, 26, 0, 0, 0, 7, 1, 101, 4, 202, 0, 39, 255, 255, 0, 52, 254, 34, 4, 205, 4, 58, 6, 38, 0, 52, 0, 0, 0, 7, 1, 101, 5, 229, 255, 142, 255, 255, 0, 33, 0, 0, 4, 200, 7, 199, 6, 38, 0, 26, 0, 0, 0, 7, 1, 118, 4, 210, 1, 66, 255, 255, 0, 52, 254, 75, 4, 205, 6, 113, 6, 38, 0, 52, 0, 0, 0, 7, 1, 118, 4, 229, 255, 236, 255, 255, 0, 33, 0, 0, 4, 200, 7, 100, 6, 38, 0, 26, 0, 0, 0, 7, 1, 93, 0, 135, 1, 94, 255, 255, 0, 52, 254, 75, 4, 205, 6, 13, 6, 38, 0, 52, 0, 0, 0, 7, 1, 93, 0, 154, 0, 7, 255, 255, 0, 97, 254, 190, 4, 210, 6, 0, 4, 38, 0, 31, 241, 0, 0, 39, 2, 106, 0, 241, 2, 60, 0, 6, 0, 102, 35, 151, 255, 255, 0, 151, 254, 157, 5, 16, 5, 176, 6, 38, 2, 113, 0, 0, 0, 7, 2, 110, 2, 0, 0, 1, 255, 255, 0, 133, 254, 156, 5, 70, 4, 58, 6, 38, 1, 186, 0, 0, 0, 7, 2, 110, 2, 54, 0, 0, 255, 255, 0, 123, 254, 156, 4, 247, 5, 176, 6, 38, 0, 9, 0, 0, 0, 7, 2, 110, 1, 231, 0, 0, 255, 255, 0, 121, 254, 156, 4, 247, 4, 58, 6, 38, 1, 189, 0, 0, 0, 7, 2, 110, 1, 231, 0, 0, 255, 255, 0, 27, 254, 156, 4, 177, 5, 176, 6, 38, 0, 21, 0, 0, 0, 7, 2, 110, 0, 134, 0, 0, 255, 255, 0, 93, 254, 156, 4, 178, 4, 58, 6, 38, 1, 191, 0, 0, 0, 7, 2, 110, 0, 189, 0, 0, 255, 255, 0, 30, 254, 156, 4, 246, 5, 176, 6, 38, 0, 25, 0, 0, 0, 7, 2, 110, 1, 230, 0, 0, 255, 255, 0, 89, 254, 156, 4, 165, 4, 58, 6, 38, 0, 51, 0, 0, 0, 7, 2, 110, 1, 149, 0, 0, 255, 255, 0, 157, 254, 156, 5, 25, 5, 176, 6, 38, 1, 170, 0, 0, 0, 7, 2, 110, 2, 9, 0, 0, 255, 255, 0, 124, 254, 156, 5, 29, 4, 58, 6, 38, 1, 194, 0, 0, 0, 7, 2, 110, 2, 13, 0, 0, 255, 255, 0, 157, 254, 156, 4, 95, 5, 176, 6, 38, 1, 170, 0, 0, 0, 7, 2, 110, 0, 140, 0, 0, 255, 255, 0, 124, 254, 156, 4, 97, 4, 58, 6, 38, 1, 194, 0, 0, 0, 7, 2, 110, 0, 143, 0, 0, 255, 255, 0, 141, 254, 156, 4, 59, 5, 176, 6, 38, 1, 123, 0, 0, 0, 7, 2, 110, 255, 81, 0, 0, 255, 255, 0, 143, 254, 156, 4, 50, 4, 58, 6, 38, 1, 181, 0, 0, 0, 7, 2, 110, 255, 27, 0, 0, 255, 255, 255, 248, 254, 156, 5, 62, 5, 176, 6, 38, 1, 164, 0, 0, 0, 7, 2, 110, 2, 46, 0, 0, 255, 255, 0, 34, 254, 156, 5, 54, 4, 58, 6, 38, 1, 183, 0, 0, 0, 7, 2, 110, 2, 38, 0, 0, 255, 255, 255, 213, 254, 16, 4, 140, 5, 195, 6, 38, 2, 10, 0, 0, 0, 7, 2, 110, 0, 96, 255, 116, 255, 255, 0, 21, 254, 19, 4, 145, 4, 78, 6, 38, 2, 11, 0, 0, 0, 7, 2, 110, 0, 104, 255, 119, 255, 255, 0, 141, 0, 0, 4, 86, 6, 0, 6, 6, 0, 35, 0, 0, 0, 2, 0, 21, 0, 0, 4, 125, 4, 58, 0, 24, 0, 39, 0, 0, 65, 53, 33, 53, 33, 21, 35, 21, 51, 17, 33, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 33, 53, 17, 33, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 33, 2, 201, 254, 215, 254, 234, 117, 117, 2, 39, 109, 172, 59, 58, 62, 62, 58, 59, 172, 109, 254, 239, 1, 17, 49, 69, 22, 22, 20, 20, 22, 22, 69, 49, 254, 239, 3, 35, 180, 99, 99, 180, 252, 221, 54, 48, 47, 131, 77, 80, 133, 48, 47, 53, 85, 254, 204, 22, 19, 19, 51, 28, 27, 48, 18, 19, 22, 0, 0, 2, 255, 211, 0, 0, 4, 93, 5, 176, 0, 24, 0, 39, 0, 0, 65, 53, 35, 53, 33, 21, 35, 21, 51, 17, 33, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 35, 53, 17, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 35, 2, 135, 234, 254, 230, 176, 176, 1, 190, 126, 201, 70, 69, 74, 74, 69, 70, 201, 126, 164, 164, 66, 97, 33, 32, 31, 31, 32, 33, 97, 66, 164, 4, 66, 180, 186, 186, 180, 251, 190, 68, 61, 61, 171, 104, 102, 168, 59, 59, 65, 172, 254, 114, 35, 30, 31, 82, 47, 49, 88, 33, 33, 38, 0, 0, 2, 255, 211, 0, 0, 4, 93, 5, 176, 0, 24, 0, 39, 0, 0, 65, 53, 35, 53, 33, 21, 35, 21, 51, 17, 33, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 35, 53, 17, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 35, 2, 135, 234, 254, 230, 176, 176, 1, 190, 126, 201, 70, 69, 74, 74, 69, 70, 201, 126, 164, 164, 66, 97, 33, 32, 31, 31, 32, 33, 97, 66, 164, 4, 66, 180, 186, 186, 180, 251, 190, 68, 61, 61, 171, 104, 102, 168, 59, 59, 65, 172, 254, 114, 35, 30, 31, 82, 47, 49, 88, 33, 33, 38, 0, 0, 1, 255, 231, 0, 0, 4, 59, 5, 176, 0, 13, 0, 0, 65, 53, 35, 17, 33, 53, 33, 17, 35, 21, 51, 17, 33, 17, 2, 155, 245, 2, 149, 252, 82, 166, 166, 1, 25, 2, 151, 180, 1, 129, 228, 253, 155, 180, 253, 105, 2, 151, 0, 1, 255, 211, 0, 0, 4, 50, 4, 58, 0, 13, 0, 0, 65, 53, 35, 53, 33, 53, 33, 17, 35, 21, 51, 17, 33, 17, 2, 135, 227, 2, 142, 252, 93, 188, 188, 1, 21, 1, 199, 180, 221, 226, 254, 65, 180, 254, 57, 1, 199, 0, 0, 1, 255, 227, 0, 0, 4, 210, 5, 176, 0, 20, 0, 0, 65, 1, 33, 1, 1, 33, 1, 35, 17, 51, 53, 35, 53, 33, 21, 35, 21, 51, 17, 33, 17, 2, 47, 1, 93, 1, 70, 254, 61, 1, 178, 254, 187, 254, 131, 69, 221, 221, 254, 231, 190, 190, 1, 25, 2, 86, 253, 170, 2, 243, 2, 189, 253, 127, 1, 66, 180, 139, 139, 180, 251, 143, 2, 86, 0, 1, 255, 211, 0, 0, 4, 182, 6, 0, 0, 20, 0, 0, 115, 33, 17, 55, 1, 33, 1, 1, 33, 1, 7, 17, 51, 53, 35, 53, 33, 21, 35, 21, 51, 154, 1, 22, 126, 1, 51, 1, 85, 254, 47, 1, 152, 254, 178, 254, 213, 84, 215, 215, 254, 234, 199, 199, 1, 74, 117, 254, 65, 2, 119, 1, 195, 254, 184, 96, 2, 38, 180, 148, 148, 180, 255, 255, 0, 111, 254, 91, 5, 32, 7, 43, 6, 38, 1, 166, 0, 0, 0, 39, 1, 95, 255, 214, 1, 137, 0, 7, 0, 95, 2, 89, 255, 241, 255, 255, 0, 121, 254, 91, 5, 30, 5, 246, 6, 38, 1, 185, 0, 0, 0, 38, 1, 95, 216, 84, 0, 7, 0, 95, 2, 87, 255, 241, 255, 255, 0, 123, 254, 91, 5, 29, 5, 176, 6, 38, 0, 9, 0, 0, 0, 7, 0, 95, 2, 86, 255, 241, 255, 255, 0, 121, 254, 91, 5, 29, 4, 58, 6, 38, 1, 189, 0, 0, 0, 7, 0, 95, 2, 86, 255, 241, 255, 255, 0, 127, 254, 91, 5, 73, 5, 176, 6, 38, 0, 14, 0, 0, 0, 7, 0, 95, 2, 130, 255, 241, 255, 255, 0, 113, 254, 91, 5, 57, 4, 58, 6, 38, 1, 188, 0, 0, 0, 7, 0, 95, 2, 114, 255, 241, 255, 255, 0, 39, 254, 91, 5, 47, 5, 176, 6, 38, 1, 167, 0, 0, 0, 7, 0, 95, 2, 104, 255, 241, 255, 255, 0, 34, 254, 91, 5, 29, 4, 58, 6, 38, 1, 187, 0, 0, 0, 7, 0, 95, 2, 86, 255, 241, 0, 1, 0, 33, 0, 0, 4, 200, 5, 176, 0, 17, 0, 0, 65, 53, 35, 1, 33, 1, 35, 1, 33, 1, 35, 21, 51, 23, 19, 33, 19, 55, 3, 198, 105, 1, 107, 254, 203, 254, 226, 2, 254, 226, 254, 204, 1, 105, 120, 206, 4, 1, 1, 24, 1, 9, 2, 11, 180, 2, 241, 253, 97, 2, 159, 253, 15, 180, 7, 253, 252, 1, 248, 19, 0, 1, 0, 40, 254, 95, 4, 182, 4, 58, 0, 17, 0, 0, 101, 53, 35, 1, 33, 1, 7, 35, 39, 1, 33, 1, 35, 21, 51, 17, 33, 17, 3, 208, 145, 1, 119, 254, 222, 254, 238, 14, 1, 15, 254, 231, 254, 221, 1, 118, 130, 199, 1, 22, 7, 180, 3, 127, 252, 251, 65, 65, 3, 5, 252, 129, 180, 254, 88, 1, 168, 0, 0, 1, 0, 30, 0, 0, 4, 199, 5, 176, 0, 17, 0, 0, 65, 53, 35, 1, 33, 1, 3, 33, 1, 35, 21, 51, 1, 33, 1, 1, 33, 1, 3, 210, 117, 1, 96, 254, 182, 254, 253, 255, 254, 184, 1, 95, 106, 119, 254, 137, 1, 76, 1, 10, 1, 11, 1, 72, 254, 136, 2, 144, 180, 2, 108, 253, 246, 2, 10, 253, 148, 180, 253, 112, 2, 18, 253, 238, 2, 144, 0, 1, 0, 89, 0, 0, 4, 162, 4, 58, 0, 17, 0, 0, 65, 53, 35, 1, 33, 3, 3, 33, 1, 35, 21, 51, 1, 33, 19, 19, 33, 1, 3, 206, 100, 1, 43, 254, 213, 238, 234, 254, 213, 1, 42, 119, 124, 254, 195, 1, 45, 247, 249, 1, 44, 254, 194, 1, 209, 180, 1, 181, 254, 174, 1, 82, 254, 75, 180, 254, 47, 1, 98, 254, 158, 1, 209, 0, 255, 255, 0, 132, 255, 236, 4, 156, 4, 77, 6, 6, 1, 137, 0, 0, 0, 1, 0, 57, 2, 89, 4, 151, 3, 60, 0, 3, 0, 0, 65, 53, 33, 21, 4, 151, 251, 162, 2, 89, 227, 227, 0, 1, 0, 0, 3, 231, 0, 177, 0, 22, 0, 135, 0, 5, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 29, 0, 119, 0, 216, 1, 28, 1, 53, 1, 75, 1, 178, 1, 203, 1, 227, 2, 19, 2, 51, 2, 67, 2, 100, 2, 125, 2, 240, 3, 36, 3, 157, 3, 217, 4, 72, 4, 91, 4, 143, 4, 166, 4, 203, 4, 236, 5, 6, 5, 29, 5, 137, 5, 242, 6, 65, 6, 134, 6, 210, 7, 6, 7, 125, 7, 178, 7, 225, 8, 35, 8, 67, 8, 88, 8, 176, 8, 227, 9, 49, 9, 136, 9, 223, 10, 7, 10, 117, 10, 174, 10, 221, 10, 244, 11, 24, 11, 56, 11, 107, 11, 130, 11, 222, 11, 240, 12, 52, 12, 164, 12, 197, 13, 16, 13, 115, 13, 134, 14, 21, 14, 120, 14, 138, 14, 205, 15, 60, 15, 167, 15, 245, 16, 77, 16, 128, 17, 15, 17, 51, 17, 240, 18, 61, 18, 235, 19, 88, 19, 142, 19, 230, 20, 5, 20, 124, 20, 212, 21, 74, 21, 161, 21, 239, 22, 29, 22, 100, 22, 112, 22, 200, 23, 35, 23, 127, 23, 158, 23, 189, 24, 27, 24, 122, 24, 144, 24, 166, 24, 178, 24, 190, 24, 206, 24, 229, 25, 16, 25, 29, 25, 42, 25, 55, 25, 68, 25, 83, 25, 107, 25, 133, 25, 159, 25, 184, 25, 197, 25, 210, 25, 255, 26, 7, 26, 15, 26, 81, 26, 147, 26, 166, 26, 184, 26, 249, 27, 75, 27, 95, 27, 114, 27, 139, 27, 152, 27, 183, 27, 216, 28, 6, 28, 26, 28, 61, 28, 142, 28, 165, 28, 188, 28, 217, 28, 247, 29, 8, 29, 24, 29, 40, 29, 56, 29, 215, 30, 191, 30, 205, 30, 225, 30, 250, 31, 29, 31, 173, 32, 26, 32, 65, 32, 139, 32, 175, 32, 230, 33, 126, 34, 48, 34, 255, 35, 29, 35, 51, 35, 129, 35, 141, 35, 153, 35, 165, 35, 177, 35, 189, 35, 201, 36, 12, 36, 24, 36, 36, 36, 48, 36, 60, 36, 72, 36, 84, 36, 95, 36, 107, 36, 119, 36, 178, 36, 190, 36, 202, 36, 214, 36, 226, 36, 238, 36, 250, 37, 6, 37, 18, 37, 70, 37, 134, 37, 193, 37, 205, 37, 217, 37, 229, 38, 14, 38, 26, 38, 38, 38, 50, 38, 62, 38, 74, 38, 86, 38, 98, 38, 110, 38, 173, 38, 185, 38, 197, 38, 209, 38, 221, 38, 233, 38, 245, 39, 1, 39, 29, 39, 41, 39, 53, 39, 65, 39, 77, 39, 89, 39, 101, 39, 113, 39, 125, 39, 137, 39, 239, 39, 251, 40, 7, 40, 119, 40, 131, 40, 143, 40, 155, 40, 167, 40, 179, 40, 191, 40, 203, 40, 214, 40, 226, 40, 255, 41, 11, 41, 23, 41, 35, 41, 47, 41, 59, 41, 71, 41, 142, 41, 154, 41, 166, 42, 3, 42, 15, 42, 27, 42, 39, 42, 51, 42, 63, 42, 75, 42, 87, 42, 99, 42, 111, 42, 123, 42, 135, 42, 147, 42, 159, 42, 170, 42, 181, 42, 192, 42, 203, 42, 215, 42, 226, 43, 116, 43, 128, 43, 139, 43, 150, 43, 162, 43, 174, 43, 185, 43, 196, 43, 208, 43, 220, 44, 59, 44, 70, 44, 81, 44, 92, 44, 103, 44, 114, 44, 125, 44, 137, 44, 148, 44, 225, 45, 85, 45, 96, 45, 107, 45, 119, 45, 181, 45, 193, 45, 205, 45, 216, 45, 228, 45, 239, 45, 250, 46, 5, 46, 82, 46, 94, 46, 106, 46, 118, 46, 130, 46, 142, 46, 154, 46, 166, 46, 200, 46, 211, 46, 222, 46, 234, 46, 245, 47, 0, 47, 11, 47, 22, 47, 33, 47, 45, 47, 141, 47, 153, 47, 164, 48, 10, 48, 21, 48, 33, 48, 44, 48, 55, 48, 67, 48, 78, 48, 89, 48, 100, 48, 111, 48, 175, 48, 187, 48, 198, 48, 209, 48, 220, 48, 231, 48, 243, 49, 50, 49, 62, 49, 73, 49, 158, 49, 170, 49, 182, 49, 193, 49, 204, 49, 215, 49, 227, 49, 239, 49, 251, 50, 6, 50, 18, 50, 30, 50, 41, 50, 52, 50, 68, 50, 83, 50, 104, 50, 164, 50, 177, 50, 220, 50, 243, 51, 26, 51, 100, 51, 123, 51, 143, 51, 165, 51, 211, 52, 2, 52, 23, 52, 23, 52, 36, 52, 88, 52, 101, 52, 122, 52, 170, 53, 8, 53, 45, 53, 95, 53, 151, 53, 166, 53, 181, 53, 190, 53, 236, 54, 4, 54, 19, 54, 66, 54, 74, 54, 91, 54, 118, 54, 204, 54, 226, 54, 252, 55, 15, 55, 43, 55, 134, 55, 194, 56, 27, 56, 142, 57, 4, 57, 34, 57, 158, 58, 22, 58, 112, 58, 165, 58, 250, 59, 39, 59, 114, 59, 248, 60, 40, 60, 123, 60, 221, 61, 48, 61, 96, 61, 156, 62, 2, 62, 68, 62, 194, 63, 52, 63, 130, 64, 8, 64, 70, 64, 155, 64, 247, 65, 52, 65, 101, 65, 127, 65, 181, 65, 242, 66, 29, 66, 149, 66, 174, 66, 227, 67, 22, 67, 48, 67, 92, 67, 117, 67, 148, 67, 201, 68, 6, 68, 58, 68, 142, 68, 232, 69, 35, 69, 154, 69, 242, 70, 3, 70, 54, 70, 97, 70, 217, 70, 242, 71, 17, 71, 64, 71, 92, 71, 117, 71, 136, 71, 155, 71, 251, 72, 21, 72, 69, 72, 94, 72, 125, 72, 179, 72, 240, 73, 38, 73, 120, 73, 208, 74, 8, 74, 95, 74, 178, 75, 8, 75, 72, 75, 134, 75, 160, 75, 247, 76, 77, 76, 139, 77, 7, 77, 118, 77, 156, 77, 193, 77, 239, 78, 28, 78, 102, 78, 179, 79, 5, 79, 88, 79, 237, 80, 139, 81, 2, 81, 85, 81, 130, 81, 178, 82, 45, 82, 165, 83, 39, 83, 132, 84, 89, 85, 26, 85, 133, 85, 230, 86, 41, 86, 111, 86, 155, 86, 175, 86, 232, 86, 249, 87, 10, 87, 234, 88, 62, 88, 124, 88, 221, 88, 241, 89, 5, 89, 59, 89, 114, 89, 152, 89, 189, 89, 222, 89, 255, 90, 28, 90, 57, 90, 134, 90, 191, 91, 88, 91, 248, 92, 22, 92, 52, 92, 113, 92, 168, 92, 212, 93, 77, 93, 171, 93, 235, 94, 39, 94, 89, 94, 139, 94, 252, 95, 68, 95, 140, 95, 155, 95, 171, 95, 223, 96, 48, 96, 222, 97, 90, 97, 211, 98, 57, 98, 165, 99, 30, 99, 147, 99, 238, 100, 69, 100, 163, 100, 246, 101, 71, 101, 138, 101, 249, 101, 249, 101, 249, 101, 249, 101, 249, 101, 249, 101, 249, 101, 249, 101, 249, 101, 249, 101, 249, 101, 249, 101, 249, 102, 5, 102, 31, 102, 44, 102, 74, 102, 126, 102, 205, 103, 107, 103, 204, 104, 48, 104, 117, 105, 25, 106, 26, 106, 242, 107, 150, 108, 4, 108, 24, 108, 52, 108, 78, 109, 31, 109, 94, 109, 130, 109, 130, 110, 84, 110, 180, 110, 252, 111, 54, 111, 81, 111, 108, 111, 158, 111, 180, 111, 211, 112, 43, 112, 121, 112, 171, 112, 195, 112, 217, 113, 45, 113, 70, 113, 94, 113, 142, 113, 174, 113, 190, 113, 218, 113, 243, 114, 66, 114, 154, 114, 214, 115, 73, 115, 92, 115, 142, 115, 168, 115, 205, 115, 237, 116, 8, 116, 31, 116, 114, 116, 164, 116, 177, 116, 241, 117, 24, 117, 102, 117, 116, 117, 154, 117, 206, 117, 237, 118, 76, 118, 84, 118, 92, 118, 104, 118, 115, 118, 127, 118, 138, 118, 150, 118, 162, 118, 174, 118, 186, 118, 198, 118, 209, 118, 220, 118, 231, 118, 243, 118, 255, 119, 10, 119, 22, 119, 33, 119, 44, 119, 55, 119, 66, 119, 78, 119, 89, 119, 100, 119, 112, 119, 123, 119, 134, 119, 145, 119, 157, 119, 169, 119, 181, 119, 192, 119, 204, 119, 216, 119, 227, 119, 238, 119, 249, 120, 4, 120, 16, 120, 28, 120, 40, 120, 51, 120, 62, 120, 73, 120, 84, 120, 153, 120, 164, 120, 175, 120, 186, 120, 198, 120, 209, 120, 220, 120, 231, 121, 38, 121, 49, 121, 60, 121, 71, 121, 83, 121, 95, 121, 107, 121, 118, 121, 129, 121, 192, 121, 203, 121, 215, 121, 227, 121, 239, 121, 251, 122, 7, 122, 19, 122, 30, 122, 42, 122, 53, 122, 64, 122, 75, 122, 86, 122, 97, 122, 109, 122, 120, 122, 132, 122, 144, 122, 155, 122, 166, 122, 177, 122, 189, 122, 200, 122, 211, 122, 223, 122, 235, 123, 66, 123, 78, 123, 89, 123, 100, 123, 111, 123, 122, 123, 133, 123, 145, 123, 157, 123, 169, 123, 181, 123, 193, 123, 205, 123, 217, 123, 228, 123, 236, 123, 244, 123, 252, 124, 4, 124, 12, 124, 20, 124, 28, 124, 36, 124, 44, 124, 52, 124, 60, 124, 68, 124, 76, 124, 84, 124, 96, 124, 108, 124, 119, 124, 130, 124, 141, 124, 152, 124, 163, 124, 171, 124, 179, 124, 187, 124, 195, 124, 203, 124, 214, 124, 225, 124, 236, 124, 247, 125, 2, 125, 14, 125, 26, 125, 146, 125, 154, 125, 166, 125, 174, 125, 182, 125, 194, 125, 206, 125, 214, 125, 222, 125, 230, 125, 238, 125, 250, 126, 2, 126, 10, 126, 18, 126, 26, 126, 34, 126, 42, 126, 50, 126, 58, 126, 66, 126, 74, 126, 82, 126, 93, 126, 101, 126, 109, 126, 188, 126, 196, 126, 204, 126, 215, 126, 226, 126, 234, 126, 242, 126, 253, 127, 5, 127, 16, 127, 27, 127, 40, 127, 51, 127, 59, 127, 71, 127, 83, 127, 94, 127, 105, 127, 117, 127, 129, 127, 141, 127, 153, 127, 165, 127, 173, 127, 181, 127, 193, 127, 205, 127, 217, 127, 229, 127, 241, 127, 253, 128, 5, 128, 13, 128, 21, 128, 33, 128, 44, 128, 52, 128, 64, 128, 75, 128, 87, 128, 98, 128, 106, 128, 114, 128, 126, 128, 137, 128, 149, 128, 157, 128, 168, 128, 180, 128, 191, 128, 203, 128, 214, 128, 226, 128, 237, 128, 249, 129, 4, 129, 16, 129, 27, 129, 35, 129, 43, 129, 55, 129, 66, 129, 78, 129, 89, 129, 101, 129, 112, 129, 124, 129, 135, 129, 147, 129, 159, 129, 171, 129, 182, 129, 194, 129, 205, 129, 217, 129, 229, 129, 237, 129, 249, 130, 5, 130, 17, 130, 29, 130, 41, 130, 53, 130, 65, 130, 76, 130, 88, 130, 99, 130, 111, 130, 122, 130, 134, 130, 145, 130, 161, 130, 176, 130, 188, 130, 199, 130, 211, 130, 222, 130, 234, 130, 245, 131, 1, 131, 12, 131, 28, 131, 43, 131, 55, 131, 67, 131, 79, 131, 91, 131, 103, 131, 114, 131, 126, 131, 137, 131, 149, 131, 160, 131, 172, 131, 183, 131, 195, 131, 206, 131, 222, 131, 237, 131, 249, 132, 5, 132, 17, 132, 29, 132, 41, 132, 53, 132, 65, 132, 77, 132, 89, 132, 100, 132, 112, 132, 123, 132, 135, 132, 146, 132, 158, 132, 169, 132, 185, 132, 200, 132, 212, 132, 223, 132, 235, 132, 247, 133, 3, 133, 15, 133, 27, 133, 38, 133, 50, 133, 62, 133, 74, 133, 86, 133, 98, 133, 110, 133, 122, 133, 133, 133, 145, 133, 157, 133, 169, 133, 181, 133, 193, 133, 204, 133, 216, 133, 228, 133, 240, 133, 252, 134, 8, 134, 20, 134, 32, 134, 44, 134, 59, 134, 71, 134, 83, 134, 95, 134, 107, 134, 119, 134, 131, 134, 143, 134, 155, 134, 167, 134, 179, 134, 191, 134, 203, 134, 215, 134, 227, 134, 239, 134, 251, 135, 7, 135, 19, 135, 27, 135, 89, 135, 149, 135, 209, 135, 235, 136, 5, 136, 44, 136, 82, 136, 98, 136, 113, 136, 125, 136, 137, 136, 149, 136, 161, 136, 173, 136, 185, 136, 222, 137, 2, 137, 42, 137, 81, 137, 89, 137, 102, 0, 1, 0, 0, 0, 3, 0, 0, 86, 234, 239, 68, 95, 15, 60, 245, 0, 11, 8, 0, 0, 0, 0, 0, 196, 240, 17, 46, 0, 0, 0, 0, 218, 216, 63, 171, 252, 5, 253, 213, 6, 71, 8, 98, 0, 1, 0, 9, 0, 2, 0, 0, 0, 0, 0, 0, 4, 205, 0, 0, 0, 0, 0, 28, 0, 129, 0, 79, 0, 125, 0, 147, 0, 149, 0, 87, 0, 123, 0, 193, 0, 111, 0, 129, 0, 150, 0, 127, 0, 123, 0, 80, 0, 149, 0, 85, 0, 131, 0, 89, 0, 27, 0, 126, 0, 31, 0, 26, 0, 30, 0, 33, 0, 89, 0, 115, 0, 147, 0, 117, 0, 112, 0, 112, 0, 126, 0, 113, 0, 141, 0, 215, 0, 223, 0, 144, 0, 199, 0, 75, 0, 141, 0, 103, 0, 145, 0, 113, 1, 31, 0, 122, 0, 126, 0, 150, 0, 72, 0, 27, 0, 89, 0, 52, 0, 118, 0, 141, 0, 173, 0, 70, 0, 96, 0, 59, 0, 117, 0, 105, 0, 69, 0, 109, 0, 97, 1, 138, 1, 42, 1, 37, 1, 17, 1, 10, 0, 24, 0, 65, 0, 33, 0, 48, 0, 46, 0, 71, 0, 38, 0, 38, 0, 136, 0, 145, 0, 159, 0, 162, 0, 156, 0, 127, 0, 142, 0, 115, 0, 21, 0, 148, 0, 0, 0, 111, 0, 123, 0, 83, 1, 196, 1, 226, 0, 160, 0, 202, 1, 104, 1, 166, 1, 180, 1, 180, 0, 101, 1, 238, 1, 148, 0, 148, 1, 26, 0, 61, 0, 57, 1, 201, 1, 25, 1, 235, 1, 210, 1, 208, 1, 70, 1, 44, 1, 65, 1, 201, 1, 25, 1, 89, 1, 60, 1, 144, 1, 144, 1, 53, 1, 76, 1, 136, 1, 129, 0, 99, 0, 149, 0, 147, 0, 157, 0, 108, 0, 158, 0, 152, 0, 142, 0, 156, 0, 161, 0, 170, 0, 171, 0, 185, 0, 220, 0, 240, 1, 24, 0, 35, 0, 75, 2, 21, 1, 232, 0, 106, 0, 128, 0, 89, 0, 88, 0, 115, 1, 101, 0, 154, 0, 41, 0, 75, 0, 37, 0, 86, 0, 216, 0, 213, 0, 26, 0, 28, 0, 28, 0, 28, 0, 28, 0, 28, 0, 28, 0, 28, 0, 28, 0, 28, 0, 28, 0, 48, 0, 79, 0, 79, 0, 79, 0, 79, 0, 125, 255, 214, 0, 147, 0, 147, 0, 147, 0, 147, 0, 147, 0, 147, 0, 147, 0, 147, 0, 148, 0, 147, 255, 214, 0, 87, 0, 87, 0, 87, 0, 23, 0, 123, 0, 193, 0, 193, 0, 193, 0, 193, 0, 193, 0, 193, 0, 193, 0, 193, 0, 193, 0, 111, 0, 129, 0, 150, 0, 150, 0, 150, 0, 150, 0, 51, 0, 123, 0, 123, 0, 123, 0, 123, 0, 80, 0, 80, 0, 80, 0, 80, 0, 80, 0, 93, 0, 80, 0, 80, 0, 48, 0, 48, 0, 80, 0, 131, 0, 131, 0, 131, 0, 89, 0, 89, 0, 89, 0, 89, 0, 27, 0, 27, 0, 126, 0, 126, 0, 126, 0, 126, 0, 126, 0, 133, 0, 126, 0, 126, 0, 126, 0, 126, 0, 126, 0, 26, 0, 26, 0, 26, 0, 26, 0, 33, 0, 33, 0, 33, 0, 33, 0, 89, 0, 89, 0, 89, 0, 115, 0, 115, 0, 115, 0, 115, 0, 115, 0, 115, 0, 115, 0, 115, 0, 115, 0, 115, 0, 46, 0, 117, 0, 117, 0, 117, 0, 117, 0, 40, 0, 97, 0, 112, 0, 112, 0, 112, 0, 112, 0, 112, 0, 112, 0, 112, 0, 112, 0, 149, 0, 112, 0, 113, 0, 113, 0, 113, 255, 252, 255, 163, 0, 199, 0, 199, 0, 199, 0, 199, 0, 199, 0, 199, 0, 215, 0, 199, 0, 226, 0, 144, 0, 199, 0, 129, 0, 199, 0, 129, 0, 213, 0, 141, 0, 141, 0, 141, 0, 141, 0, 103, 0, 103, 0, 103, 0, 103, 0, 103, 0, 95, 0, 103, 0, 103, 0, 103, 0, 103, 0, 103, 1, 31, 0, 197, 1, 11, 0, 122, 0, 122, 0, 122, 0, 122, 0, 126, 0, 103, 0, 150, 0, 150, 0, 150, 0, 150, 0, 150, 0, 118, 0, 150, 0, 150, 0, 150, 0, 150, 0, 150, 0, 27, 0, 27, 0, 27, 0, 27, 0, 52, 0, 52, 0, 52, 0, 52, 0, 118, 0, 118, 0, 118, 1, 155, 1, 126, 0, 129, 0, 128, 1, 17, 1, 37, 1, 216, 1, 9, 1, 147, 0, 210, 0, 249, 253, 13, 1, 182, 1, 125, 1, 20, 0, 0, 0, 187, 0, 172, 0, 227, 0, 199, 0, 126, 0, 75, 1, 156, 0, 226, 1, 185, 252, 152, 253, 112, 252, 111, 253, 38, 251, 247, 2, 69, 1, 3, 2, 45, 0, 141, 0, 35, 0, 91, 0, 23, 0, 121, 0, 121, 0, 111, 0, 65, 0, 69, 0, 86, 0, 106, 0, 158, 0, 40, 0, 93, 0, 132, 0, 80, 0, 129, 0, 176, 0, 179, 0, 32, 0, 176, 0, 100, 0, 133, 0, 86, 0, 79, 0, 65, 0, 126, 0, 77, 0, 69, 0, 46, 0, 148, 0, 66, 255, 255, 0, 31, 0, 95, 0, 38, 0, 91, 0, 39, 0, 109, 0, 131, 0, 45, 255, 248, 0, 78, 0, 111, 0, 39, 0, 2, 0, 109, 0, 157, 0, 81, 0, 81, 0, 51, 0, 74, 0, 131, 0, 32, 0, 84, 255, 217, 0, 115, 0, 138, 0, 143, 0, 33, 0, 34, 0, 114, 0, 121, 0, 133, 0, 34, 0, 113, 0, 121, 0, 121, 0, 93, 0, 55, 0, 121, 0, 124, 0, 83, 0, 79, 0, 56, 0, 99, 0, 138, 0, 111, 0, 54, 0, 77, 255, 206, 0, 107, 0, 21, 0, 91, 255, 249, 0, 121, 0, 71, 0, 69, 0, 35, 0, 56, 0, 77, 0, 13, 0, 77, 0, 82, 0, 82, 0, 46, 0, 65, 0, 54, 0, 60, 0, 145, 0, 181, 0, 78, 0, 97, 0, 12, 0, 54, 0, 69, 0, 52, 0, 80, 0, 104, 0, 47, 0, 74, 0, 77, 0, 69, 0, 125, 0, 177, 0, 107, 253, 39, 252, 251, 253, 246, 253, 212, 254, 158, 254, 209, 0, 149, 0, 145, 0, 152, 0, 149, 0, 141, 0, 149, 0, 134, 0, 132, 0, 15, 0, 27, 0, 63, 0, 86, 0, 50, 0, 84, 0, 88, 0, 67, 0, 1, 0, 33, 0, 133, 0, 116, 0, 119, 255, 213, 0, 21, 0, 164, 0, 152, 0, 141, 0, 143, 0, 78, 0, 124, 0, 114, 0, 40, 0, 73, 0, 77, 0, 92, 0, 91, 0, 63, 0, 75, 0, 168, 0, 192, 0, 15, 0, 40, 0, 72, 0, 68, 0, 99, 0, 133, 0, 68, 0, 66, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 158, 1, 195, 0, 239, 1, 13, 1, 43, 0, 121, 0, 53, 0, 160, 0, 119, 0, 148, 0, 97, 0, 28, 0, 27, 0, 72, 0, 111, 0, 156, 0, 37, 0, 37, 0, 56, 0, 232, 0, 130, 0, 0, 0, 87, 0, 15, 1, 32, 1, 16, 255, 246, 1, 16, 1, 43, 1, 216, 0, 22, 0, 161, 0, 84, 0, 157, 0, 160, 0, 168, 0, 94, 0, 142, 0, 202, 0, 160, 0, 154, 0, 161, 0, 120, 0, 159, 0, 104, 0, 97, 0, 147, 0, 131, 0, 84, 0, 157, 0, 45, 0, 33, 0, 64, 0, 58, 0, 153, 1, 60, 1, 44, 1, 45, 1, 193, 1, 244, 1, 92, 1, 250, 1, 66, 0, 161, 0, 151, 0, 147, 0, 0, 1, 26, 0, 79, 0, 117, 0, 87, 0, 113, 255, 102, 0, 89, 0, 122, 0, 27, 0, 126, 0, 27, 0, 84, 0, 126, 255, 170, 255, 170, 0, 84, 0, 22, 0, 22, 0, 22, 0, 22, 0, 22, 0, 22, 0, 22, 0, 84, 0, 160, 0, 160, 0, 160, 0, 160, 0, 202, 0, 202, 0, 202, 0, 202, 0, 159, 0, 104, 0, 104, 0, 104, 0, 104, 0, 104, 0, 157, 0, 157, 0, 157, 0, 157, 0, 58, 0, 22, 0, 22, 0, 22, 0, 84, 0, 84, 0, 84, 0, 80, 0, 160, 0, 160, 0, 160, 0, 160, 0, 160, 0, 94, 0, 94, 0, 94, 0, 142, 0, 202, 0, 202, 0, 202, 0, 202, 0, 202, 0, 160, 0, 154, 0, 161, 0, 161, 0, 161, 0, 161, 0, 159, 0, 159, 0, 159, 0, 104, 0, 104, 0, 104, 0, 147, 0, 147, 0, 147, 0, 131, 0, 131, 0, 131, 0, 131, 0, 84, 0, 157, 0, 157, 0, 157, 0, 157, 0, 157, 0, 157, 0, 33, 0, 58, 0, 58, 0, 153, 0, 153, 0, 153, 0, 28, 255, 152, 255, 172, 255, 172, 255, 144, 255, 122, 255, 171, 0, 179, 0, 28, 0, 129, 0, 147, 0, 89, 0, 123, 0, 193, 0, 129, 0, 127, 0, 123, 0, 80, 0, 149, 0, 27, 0, 33, 0, 30, 0, 193, 0, 33, 0, 106, 0, 132, 0, 129, 0, 179, 0, 126, 0, 159, 0, 103, 0, 172, 0, 72, 0, 89, 0, 179, 0, 126, 0, 103, 0, 126, 0, 46, 0, 147, 0, 141, 0, 89, 0, 193, 0, 193, 0, 111, 0, 151, 0, 129, 0, 2, 0, 28, 0, 129, 0, 141, 0, 147, 0, 111, 0, 127, 0, 123, 0, 80, 0, 121, 0, 149, 0, 79, 0, 27, 0, 65, 0, 30, 0, 115, 0, 112, 0, 121, 0, 103, 0, 145, 0, 117, 0, 52, 0, 89, 0, 112, 0, 143, 0, 122, 0, 215, 0, 199, 0, 223, 0, 133, 0, 52, 0, 59, 0, 226, 1, 210, 0, 127, 0, 75, 0, 28, 0, 115, 255, 76, 0, 147, 0, 111, 0, 112, 0, 121, 0, 69, 0, 69, 0, 12, 0, 44, 0, 78, 0, 114, 0, 79, 0, 117, 0, 33, 0, 40, 0, 193, 255, 248, 0, 34, 0, 193, 0, 28, 0, 115, 0, 28, 0, 115, 0, 48, 0, 46, 0, 147, 0, 112, 0, 78, 0, 156, 0, 156, 255, 248, 0, 34, 0, 78, 0, 114, 0, 111, 0, 121, 0, 111, 0, 121, 0, 80, 0, 103, 0, 78, 0, 97, 0, 78, 0, 97, 0, 32, 0, 111, 0, 2, 0, 52, 0, 2, 0, 52, 0, 2, 0, 52, 0, 157, 0, 124, 0, 74, 0, 99, 0, 30, 0, 89, 0, 112, 0, 39, 0, 34, 0, 28, 0, 115, 0, 28, 0, 115, 0, 28, 0, 115, 255, 210, 255, 173, 0, 28, 0, 115, 0, 28, 0, 115, 0, 28, 0, 115, 0, 28, 0, 115, 0, 28, 0, 115, 0, 28, 0, 115, 0, 28, 0, 115, 0, 28, 0, 115, 0, 147, 0, 112, 0, 147, 0, 112, 0, 147, 0, 112, 0, 147, 0, 112, 255, 219, 255, 178, 0, 147, 0, 112, 0, 147, 0, 112, 0, 147, 0, 112, 0, 193, 0, 199, 0, 193, 0, 215, 0, 80, 0, 103, 0, 80, 0, 103, 0, 80, 0, 103, 255, 192, 255, 197, 0, 80, 0, 103, 0, 80, 0, 103, 0, 80, 0, 103, 0, 93, 0, 95, 0, 93, 0, 95, 0, 93, 0, 95, 0, 93, 0, 95, 0, 93, 0, 95, 0, 126, 0, 150, 0, 126, 0, 150, 0, 133, 0, 118, 0, 133, 0, 118, 0, 133, 0, 118, 0, 133, 0, 118, 0, 133, 0, 118, 0, 33, 0, 52, 0, 33, 0, 52, 0, 33, 0, 52, 0, 97, 0, 151, 0, 133, 0, 123, 0, 121, 0, 27, 0, 93, 0, 30, 0, 89, 0, 157, 0, 124, 0, 157, 0, 124, 0, 141, 0, 143, 255, 248, 0, 34, 255, 213, 0, 21, 0, 141, 0, 21, 255, 211, 255, 211, 255, 231, 255, 211, 255, 227, 255, 211, 0, 111, 0, 121, 0, 123, 0, 121, 0, 127, 0, 113, 0, 39, 0, 34, 0, 33, 0, 40, 0, 30, 0, 89, 0, 132, 0, 57, 0, 1, 0, 0, 8, 98, 253, 213, 0, 0, 4, 205, 252, 5, 254, 134, 6, 71, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 205, 2, 188, 0, 5, 0, 0, 5, 154, 5, 51, 0, 0, 1, 31, 5, 154, 5, 51, 0, 0, 3, 209, 0, 102, 2, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 224, 0, 2, 255, 16, 0, 32, 91, 0, 0, 0, 32, 0, 0, 0, 0, 71, 79, 79, 71, 0, 32, 0, 13, 255, 253, 8, 98, 253, 213, 0, 0, 8, 98, 2, 43, 32, 0, 1, 159, 79, 1, 0, 0, 4, 58, 5, 176, 0, 0, 0, 32, 0, 1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 20, 0, 3, 0, 1, 0, 0, 0, 20, 0, 4, 7, 76, 0, 0, 0, 194, 0, 128, 0, 6, 0, 66, 0, 13, 0, 47, 0, 57, 0, 64, 0, 90, 0, 96, 0, 122, 0, 126, 1, 127, 1, 146, 1, 161, 1, 176, 1, 240, 1, 255, 2, 27, 2, 55, 2, 89, 2, 188, 2, 199, 2, 201, 2, 221, 2, 243, 3, 1, 3, 3, 3, 9, 3, 15, 3, 35, 3, 138, 3, 140, 3, 146, 3, 161, 3, 176, 3, 185, 3, 201, 3, 206, 3, 210, 3, 214, 4, 37, 4, 47, 4, 69, 4, 79, 4, 98, 4, 111, 4, 119, 4, 134, 4, 206, 4, 215, 4, 225, 4, 245, 5, 1, 5, 16, 5, 19, 30, 1, 30, 63, 30, 133, 30, 241, 30, 243, 30, 249, 31, 77, 32, 11, 32, 21, 32, 30, 32, 34, 32, 38, 32, 48, 32, 51, 32, 58, 32, 60, 32, 68, 32, 116, 32, 127, 32, 164, 32, 167, 32, 172, 33, 5, 33, 19, 33, 22, 33, 34, 33, 38, 33, 46, 33, 94, 34, 2, 34, 6, 34, 15, 34, 18, 34, 21, 34, 26, 34, 30, 34, 43, 34, 72, 34, 96, 34, 101, 37, 202, 246, 195, 254, 255, 255, 253, 255, 255, 0, 0, 0, 13, 0, 32, 0, 48, 0, 58, 0, 65, 0, 91, 0, 97, 0, 123, 0, 160, 1, 146, 1, 160, 1, 175, 1, 240, 1, 250, 2, 24, 2, 55, 2, 89, 2, 188, 2, 198, 2, 201, 2, 216, 2, 243, 3, 0, 3, 3, 3, 9, 3, 15, 3, 35, 3, 132, 3, 140, 3, 142, 3, 147, 3, 163, 3, 177, 3, 186, 3, 202, 3, 209, 3, 214, 4, 0, 4, 38, 4, 48, 4, 70, 4, 80, 4, 99, 4, 112, 4, 120, 4, 136, 4, 207, 4, 216, 4, 226, 4, 246, 5, 2, 5, 17, 30, 0, 30, 62, 30, 128, 30, 160, 30, 242, 30, 244, 31, 77, 32, 0, 32, 19, 32, 23, 32, 32, 32, 37, 32, 48, 32, 50, 32, 57, 32, 60, 32, 68, 32, 116, 32, 127, 32, 163, 32, 167, 32, 171, 33, 5, 33, 19, 33, 22, 33, 34, 33, 38, 33, 46, 33, 91, 34, 2, 34, 6, 34, 15, 34, 17, 34, 21, 34, 26, 34, 30, 34, 43, 34, 72, 34, 96, 34, 100, 37, 202, 246, 195, 254, 255, 255, 252, 255, 255, 1, 92, 0, 0, 0, 6, 0, 0, 255, 193, 0, 0, 255, 187, 0, 0, 0, 0, 254, 196, 0, 0, 0, 0, 1, 51, 0, 0, 0, 98, 255, 58, 253, 248, 0, 104, 0, 0, 254, 149, 0, 0, 254, 127, 254, 115, 254, 114, 254, 109, 254, 104, 254, 66, 0, 0, 255, 76, 255, 75, 0, 0, 0, 0, 253, 212, 0, 0, 255, 44, 253, 200, 253, 197, 0, 0, 253, 131, 0, 0, 253, 123, 0, 0, 253, 112, 0, 0, 253, 108, 0, 0, 254, 108, 0, 0, 254, 105, 0, 0, 253, 20, 0, 0, 229, 39, 228, 231, 0, 0, 228, 198, 0, 0, 228, 196, 227, 220, 226, 37, 0, 0, 0, 0, 0, 0, 0, 0, 224, 93, 224, 64, 224, 65, 226, 230, 224, 71, 225, 192, 225, 182, 223, 180, 223, 178, 0, 0, 225, 50, 225, 37, 225, 35, 223, 114, 224, 94, 225, 12, 224, 224, 224, 61, 223, 118, 224, 49, 0, 0, 222, 116, 224, 40, 224, 37, 224, 25, 222, 59, 222, 34, 222, 34, 220, 123, 10, 165, 3, 71, 2, 75, 0, 1, 0, 0, 0, 192, 0, 0, 0, 220, 0, 0, 0, 230, 0, 0, 0, 238, 0, 244, 0, 0, 2, 176, 2, 178, 0, 0, 2, 178, 0, 0, 0, 0, 0, 0, 0, 0, 2, 180, 0, 0, 2, 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 178, 0, 0, 0, 0, 2, 186, 2, 214, 0, 0, 2, 238, 0, 0, 0, 0, 0, 0, 3, 6, 0, 0, 3, 78, 0, 0, 3, 118, 0, 0, 3, 152, 0, 0, 3, 164, 0, 0, 4, 46, 0, 0, 4, 62, 0, 0, 4, 82, 0, 0, 0, 0, 4, 82, 0, 0, 4, 90, 0, 0, 0, 0, 0, 0, 4, 86, 4, 90, 4, 104, 4, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 91, 0, 107, 0, 151, 0, 82, 0, 140, 0, 152, 0, 106, 0, 116, 0, 117, 0, 150, 0, 124, 0, 95, 0, 103, 0, 96, 0, 137, 0, 97, 0, 98, 0, 132, 0, 129, 0, 133, 0, 93, 0, 153, 0, 118, 0, 138, 0, 119, 0, 156, 0, 102, 1, 90, 0, 120, 0, 142, 0, 121, 0, 157, 2, 115, 0, 92, 0, 83, 0, 84, 0, 90, 0, 85, 0, 143, 0, 154, 1, 97, 0, 146, 0, 67, 1, 106, 0, 136, 2, 116, 0, 147, 1, 94, 0, 149, 0, 126, 0, 65, 0, 66, 1, 91, 1, 107, 0, 155, 0, 100, 1, 102, 0, 64, 0, 68, 1, 108, 0, 70, 0, 69, 0, 71, 0, 94, 0, 162, 0, 158, 0, 160, 0, 167, 0, 161, 0, 165, 0, 72, 0, 171, 0, 181, 0, 175, 0, 178, 0, 179, 0, 196, 0, 191, 0, 193, 0, 194, 0, 185, 0, 210, 0, 215, 0, 211, 0, 213, 0, 221, 0, 214, 0, 127, 0, 219, 0, 235, 0, 231, 0, 233, 0, 234, 0, 246, 0, 77, 0, 80, 1, 1, 0, 253, 0, 255, 1, 6, 1, 0, 1, 4, 0, 73, 1, 10, 1, 20, 1, 14, 1, 17, 1, 18, 1, 33, 1, 29, 1, 31, 1, 32, 0, 76, 1, 47, 1, 52, 1, 48, 1, 50, 1, 58, 1, 51, 0, 128, 1, 56, 1, 72, 1, 68, 1, 70, 1, 71, 1, 83, 0, 78, 1, 85, 0, 163, 1, 2, 0, 159, 0, 254, 0, 164, 1, 3, 0, 169, 1, 8, 0, 172, 1, 11, 2, 117, 2, 118, 0, 170, 1, 9, 0, 173, 1, 12, 0, 174, 1, 13, 0, 182, 1, 21, 0, 176, 1, 15, 0, 180, 1, 19, 0, 184, 1, 23, 0, 177, 1, 16, 0, 187, 1, 25, 0, 186, 1, 24, 2, 119, 2, 120, 0, 188, 1, 26, 0, 190, 1, 28, 0, 189, 1, 27, 0, 199, 1, 36, 0, 197, 1, 34, 0, 192, 1, 30, 0, 198, 1, 35, 0, 195, 1, 109, 1, 110, 1, 111, 0, 200, 1, 37, 0, 201, 1, 38, 0, 79, 0, 202, 1, 39, 0, 204, 1, 41, 0, 203, 1, 40, 0, 205, 1, 42, 0, 206, 1, 43, 0, 207, 1, 44, 0, 209, 1, 46, 0, 208, 1, 45, 2, 121, 0, 183, 1, 22, 0, 218, 1, 55, 0, 212, 1, 49, 0, 217, 1, 54, 0, 74, 0, 75, 0, 222, 1, 59, 0, 224, 1, 61, 0, 223, 1, 60, 0, 225, 1, 62, 0, 228, 1, 65, 0, 227, 1, 64, 0, 226, 1, 63, 2, 126, 2, 128, 0, 230, 1, 67, 0, 229, 1, 66, 0, 241, 1, 78, 0, 238, 1, 75, 0, 232, 1, 69, 0, 240, 1, 77, 0, 237, 1, 74, 0, 239, 1, 76, 0, 243, 1, 80, 0, 247, 1, 84, 0, 248, 0, 250, 1, 87, 0, 252, 1, 89, 0, 251, 1, 88, 1, 112, 0, 216, 1, 53, 0, 236, 1, 73, 0, 166, 1, 5, 0, 168, 1, 7, 0, 220, 1, 57, 1, 92, 1, 100, 1, 95, 1, 96, 1, 98, 1, 103, 1, 93, 1, 99, 1, 120, 1, 121, 2, 212, 1, 122, 2, 213, 2, 214, 2, 215, 1, 123, 1, 124, 2, 222, 2, 223, 2, 224, 1, 125, 2, 225, 2, 226, 1, 126, 2, 227, 2, 228, 1, 127, 2, 229, 1, 128, 2, 230, 1, 129, 2, 231, 2, 232, 1, 130, 2, 233, 1, 131, 1, 132, 2, 234, 2, 235, 2, 236, 2, 237, 2, 238, 2, 239, 2, 240, 2, 241, 1, 142, 2, 243, 2, 244, 1, 143, 2, 242, 1, 144, 1, 145, 1, 146, 1, 147, 1, 148, 1, 149, 1, 150, 2, 245, 1, 151, 1, 152, 3, 42, 2, 251, 1, 156, 2, 252, 1, 157, 2, 253, 2, 254, 2, 255, 3, 0, 1, 158, 1, 159, 1, 160, 3, 2, 3, 43, 3, 3, 1, 161, 3, 4, 1, 162, 3, 5, 3, 6, 1, 163, 3, 7, 1, 164, 1, 165, 1, 166, 3, 8, 3, 1, 1, 167, 3, 9, 3, 10, 3, 11, 3, 12, 3, 13, 3, 14, 3, 15, 1, 168, 3, 16, 3, 17, 3, 18, 1, 179, 1, 180, 1, 181, 1, 182, 3, 19, 1, 183, 1, 184, 1, 185, 3, 20, 1, 186, 1, 187, 1, 188, 1, 189, 3, 21, 1, 190, 3, 22, 3, 23, 1, 191, 3, 24, 1, 192, 3, 25, 3, 44, 3, 26, 1, 203, 3, 27, 1, 204, 3, 28, 3, 29, 3, 30, 3, 31, 1, 205, 1, 206, 1, 207, 3, 32, 3, 45, 3, 33, 1, 208, 1, 209, 1, 210, 3, 212, 3, 46, 3, 47, 1, 224, 1, 225, 1, 226, 1, 227, 3, 48, 3, 49, 1, 243, 1, 244, 3, 217, 3, 218, 3, 211, 3, 210, 1, 245, 1, 246, 1, 247, 1, 248, 3, 213, 3, 214, 1, 249, 1, 250, 3, 205, 3, 206, 3, 50, 3, 51, 3, 191, 3, 192, 1, 251, 1, 252, 3, 215, 3, 216, 1, 253, 1, 254, 3, 193, 3, 194, 1, 255, 2, 0, 2, 1, 2, 2, 2, 3, 2, 4, 3, 52, 3, 53, 3, 195, 3, 196, 3, 54, 3, 55, 3, 225, 3, 226, 3, 197, 3, 198, 2, 5, 2, 6, 3, 199, 3, 200, 2, 7, 2, 8, 2, 9, 3, 209, 2, 10, 2, 11, 3, 207, 3, 208, 3, 56, 3, 57, 3, 58, 2, 12, 2, 13, 3, 223, 3, 224, 2, 14, 2, 15, 3, 219, 3, 220, 3, 201, 3, 202, 3, 221, 3, 222, 2, 16, 3, 69, 3, 68, 3, 70, 3, 71, 3, 72, 3, 73, 3, 74, 2, 17, 2, 18, 3, 203, 3, 204, 3, 95, 3, 96, 2, 19, 2, 20, 3, 97, 3, 98, 3, 227, 3, 228, 2, 21, 3, 99, 3, 229, 3, 100, 3, 101, 0, 245, 1, 82, 0, 242, 1, 79, 0, 244, 1, 81, 0, 249, 1, 86, 0, 104, 0, 105, 3, 230, 2, 49, 0, 108, 0, 109, 0, 110, 2, 50, 0, 111, 0, 112, 0, 113, 0, 144, 0, 145, 0, 101, 2, 51, 0, 99, 3, 190, 2, 54, 2, 65, 0, 125, 184, 1, 255, 133, 176, 4, 141, 0, 0, 0, 0, 17, 0, 210, 0, 3, 0, 1, 4, 9, 0, 0, 0, 180, 0, 0, 0, 3, 0, 1, 4, 9, 0, 1, 0, 22, 0, 180, 0, 3, 0, 1, 4, 9, 0, 2, 0, 8, 0, 202, 0, 3, 0, 1, 4, 9, 0, 3, 0, 52, 0, 210, 0, 3, 0, 1, 4, 9, 0, 4, 0, 32, 1, 6, 0, 3, 0, 1, 4, 9, 0, 5, 0, 26, 1, 38, 0, 3, 0, 1, 4, 9, 0, 6, 0, 30, 1, 64, 0, 3, 0, 1, 4, 9, 0, 7, 0, 74, 1, 94, 0, 3, 0, 1, 4, 9, 0, 9, 0, 12, 1, 168, 0, 3, 0, 1, 4, 9, 0, 11, 0, 20, 1, 180, 0, 3, 0, 1, 4, 9, 0, 12, 0, 38, 1, 200, 0, 3, 0, 1, 4, 9, 0, 13, 0, 92, 1, 238, 0, 3, 0, 1, 4, 9, 0, 14, 0, 84, 2, 74, 0, 3, 0, 1, 4, 9, 1, 0, 0, 12, 2, 158, 0, 3, 0, 1, 4, 9, 1, 11, 0, 12, 2, 170, 0, 3, 0, 1, 4, 9, 1, 16, 0, 8, 0, 202, 0, 3, 0, 1, 4, 9, 1, 17, 0, 12, 2, 182, 0, 67, 0, 111, 0, 112, 0, 121, 0, 114, 0, 105, 0, 103, 0, 104, 0, 116, 0, 32, 0, 50, 0, 48, 0, 49, 0, 53, 0, 32, 0, 84, 0, 104, 0, 101, 0, 32, 0, 82, 0, 111, 0, 98, 0, 111, 0, 116, 0, 111, 0, 32, 0, 77, 0, 111, 0, 110, 0, 111, 0, 32, 0, 80, 0, 114, 0, 111, 0, 106, 0, 101, 0, 99, 0, 116, 0, 32, 0, 65, 0, 117, 0, 116, 0, 104, 0, 111, 0, 114, 0, 115, 0, 32, 0, 40, 0, 104, 0, 116, 0, 116, 0, 112, 0, 115, 0, 58, 0, 47, 0, 47, 0, 103, 0, 105, 0, 116, 0, 104, 0, 117, 0, 98, 0, 46, 0, 99, 0, 111, 0, 109, 0, 47, 0, 103, 0, 111, 0, 111, 0, 103, 0, 108, 0, 101, 0, 102, 0, 111, 0, 110, 0, 116, 0, 115, 0, 47, 0, 114, 0, 111, 0, 98, 0, 111, 0, 116, 0, 111, 0, 109, 0, 111, 0, 110, 0, 111, 0, 41, 0, 82, 0, 111, 0, 98, 0, 111, 0, 116, 0, 111, 0, 32, 0, 77, 0, 111, 0, 110, 0, 111, 0, 66, 0, 111, 0, 108, 0, 100, 0, 51, 0, 46, 0, 48, 0, 48, 0, 48, 0, 59, 0, 71, 0, 79, 0, 79, 0, 71, 0, 59, 0, 82, 0, 111, 0, 98, 0, 111, 0, 116, 0, 111, 0, 77, 0, 111, 0, 110, 0, 111, 0, 45, 0, 66, 0, 111, 0, 108, 0, 100, 0, 82, 0, 111, 0, 98, 0, 111, 0, 116, 0, 111, 0, 32, 0, 77, 0, 111, 0, 110, 0, 111, 0, 32, 0, 66, 0, 111, 0, 108, 0, 100, 0, 86, 0, 101, 0, 114, 0, 115, 0, 105, 0, 111, 0, 110, 0, 32, 0, 51, 0, 46, 0, 48, 0, 48, 0, 48, 0, 82, 0, 111, 0, 98, 0, 111, 0, 116, 0, 111, 0, 77, 0, 111, 0, 110, 0, 111, 0, 45, 0, 66, 0, 111, 0, 108, 0, 100, 0, 82, 0, 111, 0, 98, 0, 111, 0, 116, 0, 111, 0, 32, 0, 77, 0, 111, 0, 110, 0, 111, 0, 32, 0, 105, 0, 115, 0, 32, 0, 97, 0, 32, 0, 116, 0, 114, 0, 97, 0, 100, 0, 101, 0, 109, 0, 97, 0, 114, 0, 107, 0, 32, 0, 111, 0, 102, 0, 32, 0, 71, 0, 111, 0, 111, 0, 103, 0, 108, 0, 101, 0, 46, 0, 71, 0, 111, 0, 111, 0, 103, 0, 108, 0, 101, 0, 71, 0, 111, 0, 111, 0, 103, 0, 108, 0, 101, 0, 46, 0, 99, 0, 111, 0, 109, 0, 67, 0, 104, 0, 114, 0, 105, 0, 115, 0, 116, 0, 105, 0, 97, 0, 110, 0, 32, 0, 82, 0, 111, 0, 98, 0, 101, 0, 114, 0, 116, 0, 115, 0, 111, 0, 110, 0, 76, 0, 105, 0, 99, 0, 101, 0, 110, 0, 115, 0, 101, 0, 100, 0, 32, 0, 117, 0, 110, 0, 100, 0, 101, 0, 114, 0, 32, 0, 116, 0, 104, 0, 101, 0, 32, 0, 65, 0, 112, 0, 97, 0, 99, 0, 104, 0, 101, 0, 32, 0, 76, 0, 105, 0, 99, 0, 101, 0, 110, 0, 115, 0, 101, 0, 44, 0, 32, 0, 86, 0, 101, 0, 114, 0, 115, 0, 105, 0, 111, 0, 110, 0, 32, 0, 50, 0, 46, 0, 48, 0, 104, 0, 116, 0, 116, 0, 112, 0, 58, 0, 47, 0, 47, 0, 119, 0, 119, 0, 119, 0, 46, 0, 97, 0, 112, 0, 97, 0, 99, 0, 104, 0, 101, 0, 46, 0, 111, 0, 114, 0, 103, 0, 47, 0, 108, 0, 105, 0, 99, 0, 101, 0, 110, 0, 115, 0, 101, 0, 115, 0, 47, 0, 76, 0, 73, 0, 67, 0, 69, 0, 78, 0, 83, 0, 69, 0, 45, 0, 50, 0, 46, 0, 48, 0, 87, 0, 101, 0, 105, 0, 103, 0, 104, 0, 116, 0, 73, 0, 116, 0, 97, 0, 108, 0, 105, 0, 99, 0, 78, 0, 111, 0, 114, 0, 109, 0, 97, 0, 108, 0, 2, 0, 0, 0, 0, 0, 0, 255, 106, 0, 100, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 231, 0, 0, 0, 3, 0, 36, 0, 37, 0, 38, 0, 39, 0, 40, 0, 41, 0, 42, 0, 43, 0, 44, 0, 45, 0, 46, 0, 47, 0, 48, 0, 49, 0, 50, 0, 51, 0, 52, 0, 53, 0, 54, 0, 55, 0, 56, 0, 57, 0, 58, 0, 59, 0, 60, 0, 61, 0, 68, 0, 69, 0, 70, 0, 71, 0, 72, 0, 73, 0, 74, 0, 75, 0, 76, 0, 77, 0, 78, 0, 79, 0, 80, 0, 81, 0, 82, 0, 83, 0, 84, 0, 85, 0, 86, 0, 87, 0, 88, 0, 89, 0, 90, 0, 91, 0, 92, 0, 93, 0, 19, 0, 20, 0, 21, 0, 22, 0, 23, 0, 24, 0, 25, 0, 26, 0, 27, 0, 28, 0, 241, 0, 242, 0, 243, 0, 157, 0, 158, 0, 244, 0, 245, 0, 246, 0, 144, 0, 160, 0, 176, 0, 177, 0, 234, 0, 237, 0, 238, 1, 2, 0, 137, 1, 3, 0, 7, 0, 132, 0, 133, 0, 150, 0, 166, 0, 247, 1, 4, 1, 5, 0, 189, 0, 4, 0, 163, 0, 34, 0, 162, 0, 15, 0, 17, 0, 29, 0, 30, 0, 171, 0, 195, 0, 135, 0, 66, 0, 16, 0, 178, 0, 179, 0, 10, 0, 5, 0, 182, 0, 183, 0, 196, 0, 180, 0, 181, 0, 197, 1, 6, 1, 7, 0, 11, 0, 12, 0, 62, 0, 64, 0, 94, 0, 96, 0, 190, 0, 191, 0, 14, 0, 239, 0, 147, 0, 240, 0, 184, 0, 32, 0, 143, 0, 167, 0, 31, 0, 33, 0, 148, 0, 149, 0, 164, 0, 18, 0, 63, 0, 188, 0, 8, 0, 198, 0, 95, 0, 232, 0, 130, 0, 194, 0, 139, 0, 138, 0, 140, 0, 131, 0, 13, 0, 6, 0, 9, 0, 35, 0, 134, 0, 136, 0, 65, 0, 97, 0, 201, 1, 8, 0, 199, 0, 98, 0, 173, 1, 9, 1, 10, 0, 99, 1, 11, 0, 174, 1, 12, 0, 253, 0, 255, 0, 100, 1, 13, 1, 14, 1, 15, 0, 101, 1, 16, 1, 17, 0, 200, 0, 202, 1, 18, 0, 203, 1, 19, 1, 20, 1, 21, 0, 233, 0, 248, 1, 22, 1, 23, 1, 24, 1, 25, 0, 204, 1, 26, 0, 205, 0, 206, 0, 250, 0, 207, 1, 27, 1, 28, 1, 29, 1, 30, 1, 31, 1, 32, 1, 33, 1, 34, 1, 35, 0, 226, 1, 36, 1, 37, 1, 38, 0, 102, 0, 208, 1, 39, 0, 209, 0, 103, 0, 211, 1, 40, 1, 41, 1, 42, 0, 145, 1, 43, 0, 175, 1, 44, 1, 45, 1, 46, 1, 47, 0, 228, 0, 251, 1, 48, 1, 49, 1, 50, 0, 212, 1, 51, 0, 213, 0, 104, 0, 214, 1, 52, 1, 53, 1, 54, 1, 55, 1, 56, 1, 57, 1, 58, 1, 59, 1, 60, 1, 61, 0, 235, 1, 62, 0, 187, 1, 63, 1, 64, 0, 230, 1, 65, 0, 105, 1, 66, 0, 107, 0, 108, 0, 106, 1, 67, 1, 68, 0, 110, 1, 69, 0, 109, 1, 70, 0, 254, 1, 0, 0, 111, 1, 71, 1, 72, 1, 1, 0, 112, 1, 73, 1, 74, 0, 114, 0, 115, 1, 75, 0, 113, 1, 76, 1, 77, 1, 78, 0, 249, 1, 79, 1, 80, 1, 81, 1, 82, 0, 116, 1, 83, 0, 118, 0, 119, 0, 117, 1, 84, 1, 85, 1, 86, 1, 87, 1, 88, 1, 89, 1, 90, 1, 91, 1, 92, 0, 227, 1, 93, 1, 94, 1, 95, 0, 120, 0, 121, 1, 96, 0, 123, 0, 124, 0, 122, 1, 97, 1, 98, 1, 99, 0, 161, 1, 100, 0, 125, 1, 101, 1, 102, 1, 103, 1, 104, 0, 229, 0, 252, 1, 105, 1, 106, 1, 107, 0, 126, 1, 108, 0, 128, 0, 129, 0, 127, 1, 109, 1, 110, 1, 111, 1, 112, 1, 113, 1, 114, 1, 115, 1, 116, 1, 117, 1, 118, 0, 236, 1, 119, 0, 186, 1, 120, 1, 121, 0, 231, 1, 122, 0, 67, 0, 141, 0, 216, 0, 217, 0, 218, 0, 219, 0, 220, 0, 142, 0, 221, 0, 223, 0, 225, 1, 123, 0, 222, 0, 224, 1, 124, 0, 2, 0, 169, 0, 151, 0, 170, 0, 215, 1, 125, 1, 126, 1, 127, 1, 128, 1, 129, 1, 130, 1, 131, 1, 132, 1, 133, 1, 134, 1, 135, 1, 136, 1, 137, 1, 138, 0, 168, 1, 139, 1, 140, 1, 141, 1, 142, 1, 143, 1, 144, 1, 145, 0, 159, 1, 146, 1, 147, 1, 148, 1, 149, 1, 150, 1, 151, 1, 152, 1, 153, 1, 154, 1, 155, 1, 156, 0, 155, 1, 157, 1, 158, 1, 159, 1, 160, 1, 161, 1, 162, 1, 163, 1, 164, 1, 165, 1, 166, 1, 167, 1, 168, 1, 169, 1, 170, 1, 171, 1, 172, 1, 173, 1, 174, 1, 175, 1, 176, 1, 177, 1, 178, 1, 179, 1, 180, 1, 181, 1, 182, 1, 183, 1, 184, 1, 185, 1, 186, 1, 187, 1, 188, 1, 189, 1, 190, 1, 191, 1, 192, 1, 193, 1, 194, 1, 195, 1, 196, 1, 197, 1, 198, 1, 199, 1, 200, 1, 201, 1, 202, 1, 203, 1, 204, 1, 205, 1, 206, 1, 207, 1, 208, 1, 209, 1, 210, 1, 211, 1, 212, 1, 213, 1, 214, 1, 215, 1, 216, 1, 217, 1, 218, 1, 219, 1, 220, 1, 221, 1, 222, 1, 223, 1, 224, 1, 225, 1, 226, 1, 227, 1, 228, 1, 229, 1, 230, 1, 231, 1, 232, 1, 233, 1, 234, 1, 235, 1, 236, 1, 237, 1, 238, 1, 239, 1, 240, 1, 241, 1, 242, 1, 243, 1, 244, 1, 245, 1, 246, 1, 247, 1, 248, 1, 249, 1, 250, 1, 251, 1, 252, 1, 253, 1, 254, 1, 255, 2, 0, 2, 1, 2, 2, 2, 3, 2, 4, 2, 5, 2, 6, 2, 7, 2, 8, 2, 9, 2, 10, 2, 11, 2, 12, 2, 13, 2, 14, 2, 15, 2, 16, 2, 17, 2, 18, 2, 19, 2, 20, 2, 21, 2, 22, 2, 23, 2, 24, 2, 25, 2, 26, 2, 27, 2, 28, 2, 29, 2, 30, 2, 31, 2, 32, 2, 33, 2, 34, 2, 35, 2, 36, 2, 37, 2, 38, 2, 39, 2, 40, 2, 41, 2, 42, 2, 43, 2, 44, 2, 45, 2, 46, 2, 47, 2, 48, 2, 49, 2, 50, 2, 51, 2, 52, 2, 53, 2, 54, 2, 55, 2, 56, 2, 57, 2, 58, 2, 59, 2, 60, 2, 61, 2, 62, 2, 63, 2, 64, 2, 65, 2, 66, 2, 67, 2, 68, 2, 69, 2, 70, 2, 71, 2, 72, 2, 73, 2, 74, 0, 152, 0, 154, 0, 153, 0, 165, 0, 146, 0, 156, 0, 185, 2, 75, 2, 76, 2, 77, 2, 78, 2, 79, 2, 80, 2, 81, 2, 82, 2, 83, 2, 84, 2, 85, 2, 86, 2, 87, 2, 88, 2, 89, 2, 90, 2, 91, 2, 92, 2, 93, 2, 94, 2, 95, 2, 96, 2, 97, 2, 98, 2, 99, 2, 100, 2, 101, 2, 102, 2, 103, 2, 104, 2, 105, 2, 106, 2, 107, 2, 108, 2, 109, 2, 110, 2, 111, 2, 112, 2, 113, 2, 114, 2, 115, 2, 116, 2, 117, 2, 118, 2, 119, 0, 172, 2, 120, 2, 121, 2, 122, 2, 123, 2, 124, 2, 125, 2, 126, 2, 127, 2, 128, 2, 129, 2, 130, 2, 131, 2, 132, 2, 133, 2, 134, 2, 135, 2, 136, 2, 137, 2, 138, 2, 139, 2, 140, 2, 141, 2, 142, 2, 143, 2, 144, 2, 145, 2, 146, 2, 147, 2, 148, 2, 149, 2, 150, 2, 151, 2, 152, 2, 153, 2, 154, 2, 155, 2, 156, 2, 157, 2, 158, 2, 159, 2, 160, 2, 161, 2, 162, 2, 163, 2, 164, 2, 165, 2, 166, 2, 167, 2, 168, 2, 169, 2, 170, 2, 171, 2, 172, 2, 173, 2, 174, 2, 175, 2, 176, 2, 177, 2, 178, 2, 179, 2, 180, 2, 181, 2, 182, 2, 183, 2, 184, 2, 185, 2, 186, 2, 187, 2, 188, 2, 189, 2, 190, 2, 191, 2, 192, 2, 193, 2, 194, 2, 195, 2, 196, 2, 197, 2, 198, 2, 199, 2, 200, 2, 201, 2, 202, 2, 203, 2, 204, 2, 205, 2, 206, 2, 207, 2, 208, 2, 209, 2, 210, 2, 211, 2, 212, 2, 213, 2, 214, 2, 215, 2, 216, 2, 217, 2, 218, 2, 219, 2, 220, 2, 221, 2, 222, 2, 223, 2, 224, 2, 225, 2, 226, 2, 227, 2, 228, 2, 229, 2, 230, 2, 231, 2, 232, 2, 233, 2, 234, 2, 235, 2, 236, 2, 237, 2, 238, 2, 239, 2, 240, 2, 241, 2, 242, 2, 243, 2, 244, 2, 245, 2, 246, 2, 247, 2, 248, 2, 249, 2, 250, 2, 251, 2, 252, 2, 253, 2, 254, 2, 255, 3, 0, 3, 1, 3, 2, 3, 3, 3, 4, 3, 5, 3, 6, 3, 7, 3, 8, 3, 9, 3, 10, 3, 11, 3, 12, 3, 13, 3, 14, 3, 15, 3, 16, 3, 17, 3, 18, 3, 19, 3, 20, 3, 21, 3, 22, 3, 23, 3, 24, 3, 25, 3, 26, 3, 27, 3, 28, 3, 29, 3, 30, 3, 31, 3, 32, 3, 33, 3, 34, 3, 35, 3, 36, 3, 37, 3, 38, 3, 39, 3, 40, 3, 41, 3, 42, 3, 43, 3, 44, 3, 45, 3, 46, 3, 47, 3, 48, 3, 49, 3, 50, 3, 51, 3, 52, 3, 53, 3, 54, 3, 55, 3, 56, 3, 57, 3, 58, 3, 59, 3, 60, 3, 61, 3, 62, 3, 63, 3, 64, 3, 65, 3, 66, 3, 67, 3, 68, 3, 69, 3, 70, 3, 71, 3, 72, 3, 73, 3, 74, 3, 75, 3, 76, 3, 77, 3, 78, 3, 79, 3, 80, 3, 81, 3, 82, 3, 83, 3, 84, 3, 85, 3, 86, 3, 87, 3, 88, 3, 89, 3, 90, 3, 91, 3, 92, 3, 93, 3, 94, 3, 95, 3, 96, 3, 97, 3, 98, 3, 99, 3, 100, 3, 101, 3, 102, 3, 103, 3, 104, 3, 105, 3, 106, 3, 107, 3, 108, 3, 109, 3, 110, 3, 111, 3, 112, 3, 113, 3, 114, 3, 115, 3, 116, 3, 117, 3, 118, 3, 119, 3, 120, 3, 121, 3, 122, 3, 123, 3, 124, 3, 125, 3, 126, 3, 127, 3, 128, 3, 129, 3, 130, 3, 131, 3, 132, 3, 133, 3, 134, 3, 135, 3, 136, 3, 137, 3, 138, 3, 139, 3, 140, 3, 141, 3, 142, 3, 143, 3, 144, 3, 145, 3, 146, 3, 147, 3, 148, 3, 149, 3, 150, 3, 151, 3, 152, 3, 153, 3, 154, 3, 155, 3, 156, 3, 157, 3, 158, 3, 159, 3, 160, 3, 161, 3, 162, 3, 163, 3, 164, 3, 165, 3, 166, 3, 167, 3, 168, 3, 169, 3, 170, 3, 171, 3, 172, 3, 173, 3, 174, 3, 175, 3, 176, 3, 177, 3, 178, 3, 179, 3, 180, 3, 181, 3, 182, 3, 183, 3, 184, 3, 185, 3, 186, 3, 187, 3, 188, 3, 189, 3, 190, 3, 191, 3, 192, 3, 193, 3, 194, 3, 195, 3, 196, 3, 197, 3, 198, 3, 199, 3, 200, 3, 201, 3, 202, 3, 203, 3, 204, 3, 205, 3, 206, 3, 207, 3, 208, 3, 209, 3, 210, 3, 211, 3, 212, 3, 213, 3, 214, 3, 215, 3, 216, 3, 217, 3, 218, 3, 219, 3, 220, 3, 221, 3, 222, 3, 223, 3, 224, 3, 225, 3, 226, 3, 227, 3, 228, 3, 229, 3, 230, 3, 231, 3, 232, 3, 233, 3, 234, 12, 107, 103, 114, 101, 101, 110, 108, 97, 110, 100, 105, 99, 5, 115, 99, 104, 119, 97, 4, 108, 105, 114, 97, 6, 112, 101, 115, 101, 116, 97, 6, 109, 105, 110, 117, 116, 101, 6, 115, 101, 99, 111, 110, 100, 6, 65, 98, 114, 101, 118, 101, 7, 65, 109, 97, 99, 114, 111, 110, 7, 65, 111, 103, 111, 110, 101, 107, 10, 65, 114, 105, 110, 103, 97, 99, 117, 116, 101, 7, 65, 69, 97, 99, 117, 116, 101, 11, 67, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 6, 68, 99, 97, 114, 111, 110, 6, 68, 99, 114, 111, 97, 116, 6, 69, 98, 114, 101, 118, 101, 6, 69, 99, 97, 114, 111, 110, 10, 69, 100, 111, 116, 97, 99, 99, 101, 110, 116, 7, 69, 109, 97, 99, 114, 111, 110, 3, 69, 110, 103, 7, 69, 111, 103, 111, 110, 101, 107, 11, 71, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 12, 71, 99, 111, 109, 109, 97, 97, 99, 99, 101, 110, 116, 4, 72, 98, 97, 114, 11, 72, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 6, 73, 98, 114, 101, 118, 101, 7, 73, 109, 97, 99, 114, 111, 110, 7, 73, 111, 103, 111, 110, 101, 107, 6, 73, 116, 105, 108, 100, 101, 11, 74, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 12, 75, 99, 111, 109, 109, 97, 97, 99, 99, 101, 110, 116, 6, 76, 97, 99, 117, 116, 101, 6, 76, 99, 97, 114, 111, 110, 12, 76, 99, 111, 109, 109, 97, 97, 99, 99, 101, 110, 116, 4, 76, 100, 111, 116, 6, 78, 97, 99, 117, 116, 101, 6, 78, 99, 97, 114, 111, 110, 12, 78, 99, 111, 109, 109, 97, 97, 99, 99, 101, 110, 116, 6, 79, 98, 114, 101, 118, 101, 5, 79, 104, 111, 114, 110, 13, 79, 104, 117, 110, 103, 97, 114, 117, 109, 108, 97, 117, 116, 7, 79, 109, 97, 99, 114, 111, 110, 11, 79, 115, 108, 97, 115, 104, 97, 99, 117, 116, 101, 6, 82, 97, 99, 117, 116, 101, 6, 82, 99, 97, 114, 111, 110, 12, 82, 99, 111, 109, 109, 97, 97, 99, 99, 101, 110, 116, 6, 83, 97, 99, 117, 116, 101, 11, 83, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 4, 84, 98, 97, 114, 6, 84, 99, 97, 114, 111, 110, 6, 85, 98, 114, 101, 118, 101, 5, 85, 104, 111, 114, 110, 13, 85, 104, 117, 110, 103, 97, 114, 117, 109, 108, 97, 117, 116, 7, 85, 109, 97, 99, 114, 111, 110, 7, 85, 111, 103, 111, 110, 101, 107, 5, 85, 114, 105, 110, 103, 6, 85, 116, 105, 108, 100, 101, 6, 87, 97, 99, 117, 116, 101, 11, 87, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 9, 87, 100, 105, 101, 114, 101, 115, 105, 115, 6, 87, 103, 114, 97, 118, 101, 11, 89, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 6, 89, 103, 114, 97, 118, 101, 6, 90, 97, 99, 117, 116, 101, 10, 90, 100, 111, 116, 97, 99, 99, 101, 110, 116, 6, 97, 98, 114, 101, 118, 101, 7, 97, 109, 97, 99, 114, 111, 110, 7, 97, 111, 103, 111, 110, 101, 107, 10, 97, 114, 105, 110, 103, 97, 99, 117, 116, 101, 7, 97, 101, 97, 99, 117, 116, 101, 11, 99, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 6, 100, 99, 97, 114, 111, 110, 6, 101, 98, 114, 101, 118, 101, 6, 101, 99, 97, 114, 111, 110, 10, 101, 100, 111, 116, 97, 99, 99, 101, 110, 116, 7, 101, 109, 97, 99, 114, 111, 110, 3, 101, 110, 103, 7, 101, 111, 103, 111, 110, 101, 107, 11, 103, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 12, 103, 99, 111, 109, 109, 97, 97, 99, 99, 101, 110, 116, 4, 104, 98, 97, 114, 11, 104, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 6, 105, 98, 114, 101, 118, 101, 7, 105, 109, 97, 99, 114, 111, 110, 7, 105, 111, 103, 111, 110, 101, 107, 6, 105, 116, 105, 108, 100, 101, 11, 106, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 12, 107, 99, 111, 109, 109, 97, 97, 99, 99, 101, 110, 116, 6, 108, 97, 99, 117, 116, 101, 6, 108, 99, 97, 114, 111, 110, 12, 108, 99, 111, 109, 109, 97, 97, 99, 99, 101, 110, 116, 4, 108, 100, 111, 116, 6, 110, 97, 99, 117, 116, 101, 6, 110, 99, 97, 114, 111, 110, 12, 110, 99, 111, 109, 109, 97, 97, 99, 99, 101, 110, 116, 6, 111, 98, 114, 101, 118, 101, 5, 111, 104, 111, 114, 110, 13, 111, 104, 117, 110, 103, 97, 114, 117, 109, 108, 97, 117, 116, 7, 111, 109, 97, 99, 114, 111, 110, 11, 111, 115, 108, 97, 115, 104, 97, 99, 117, 116, 101, 6, 114, 97, 99, 117, 116, 101, 6, 114, 99, 97, 114, 111, 110, 12, 114, 99, 111, 109, 109, 97, 97, 99, 99, 101, 110, 116, 6, 115, 97, 99, 117, 116, 101, 11, 115, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 4, 116, 98, 97, 114, 6, 116, 99, 97, 114, 111, 110, 6, 117, 98, 114, 101, 118, 101, 5, 117, 104, 111, 114, 110, 13, 117, 104, 117, 110, 103, 97, 114, 117, 109, 108, 97, 117, 116, 7, 117, 109, 97, 99, 114, 111, 110, 7, 117, 111, 103, 111, 110, 101, 107, 5, 117, 114, 105, 110, 103, 6, 117, 116, 105, 108, 100, 101, 6, 119, 97, 99, 117, 116, 101, 11, 119, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 9, 119, 100, 105, 101, 114, 101, 115, 105, 115, 6, 119, 103, 114, 97, 118, 101, 11, 121, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 6, 121, 103, 114, 97, 118, 101, 6, 122, 97, 99, 117, 116, 101, 10, 122, 100, 111, 116, 97, 99, 99, 101, 110, 116, 8, 100, 111, 116, 98, 101, 108, 111, 119, 11, 99, 111, 109, 109, 97, 97, 99, 99, 101, 110, 116, 2, 73, 74, 2, 105, 106, 5, 108, 111, 110, 103, 115, 7, 117, 110, 105, 48, 50, 51, 55, 7, 117, 110, 105, 48, 50, 70, 51, 9, 103, 114, 97, 118, 101, 99, 111, 109, 98, 9, 97, 99, 117, 116, 101, 99, 111, 109, 98, 9, 116, 105, 108, 100, 101, 99, 111, 109, 98, 4, 104, 111, 111, 107, 7, 117, 110, 105, 48, 51, 48, 70, 5, 116, 111, 110, 111, 115, 13, 100, 105, 101, 114, 101, 115, 105, 115, 116, 111, 110, 111, 115, 9, 97, 110, 111, 116, 101, 108, 101, 105, 97, 5, 71, 97, 109, 109, 97, 5, 84, 104, 101, 116, 97, 6, 76, 97, 109, 98, 100, 97, 2, 88, 105, 2, 80, 105, 5, 83, 105, 103, 109, 97, 3, 80, 104, 105, 3, 80, 115, 105, 5, 97, 108, 112, 104, 97, 4, 98, 101, 116, 97, 5, 103, 97, 109, 109, 97, 5, 100, 101, 108, 116, 97, 7, 101, 112, 115, 105, 108, 111, 110, 4, 122, 101, 116, 97, 3, 101, 116, 97, 5, 116, 104, 101, 116, 97, 4, 105, 111, 116, 97, 6, 108, 97, 109, 98, 100, 97, 2, 120, 105, 3, 114, 104, 111, 6, 115, 105, 103, 109, 97, 49, 5, 115, 105, 103, 109, 97, 3, 116, 97, 117, 7, 117, 112, 115, 105, 108, 111, 110, 3, 112, 104, 105, 3, 112, 115, 105, 5, 111, 109, 101, 103, 97, 7, 117, 110, 105, 48, 51, 68, 49, 7, 117, 110, 105, 48, 51, 68, 50, 7, 117, 110, 105, 48, 51, 68, 54, 7, 117, 110, 105, 48, 52, 48, 50, 7, 117, 110, 105, 48, 52, 48, 52, 7, 117, 110, 105, 48, 52, 48, 57, 7, 117, 110, 105, 48, 52, 48, 65, 7, 117, 110, 105, 48, 52, 48, 66, 7, 117, 110, 105, 48, 52, 48, 70, 7, 117, 110, 105, 48, 52, 49, 49, 7, 117, 110, 105, 48, 52, 49, 52, 7, 117, 110, 105, 48, 52, 49, 54, 7, 117, 110, 105, 48, 52, 49, 55, 7, 117, 110, 105, 48, 52, 49, 56, 7, 117, 110, 105, 48, 52, 49, 66, 7, 117, 110, 105, 48, 52, 50, 51, 7, 117, 110, 105, 48, 52, 50, 54, 7, 117, 110, 105, 48, 52, 50, 55, 7, 117, 110, 105, 48, 52, 50, 56, 7, 117, 110, 105, 48, 52, 50, 57, 7, 117, 110, 105, 48, 52, 50, 65, 7, 117, 110, 105, 48, 52, 50, 66, 7, 117, 110, 105, 48, 52, 50, 67, 7, 117, 110, 105, 48, 52, 50, 68, 7, 117, 110, 105, 48, 52, 50, 69, 7, 117, 110, 105, 48, 52, 50, 70, 7, 117, 110, 105, 48, 52, 51, 49, 7, 117, 110, 105, 48, 52, 51, 50, 7, 117, 110, 105, 48, 52, 51, 51, 7, 117, 110, 105, 48, 52, 51, 52, 7, 117, 110, 105, 48, 52, 51, 54, 7, 117, 110, 105, 48, 52, 51, 55, 7, 117, 110, 105, 48, 52, 51, 56, 7, 117, 110, 105, 48, 52, 51, 65, 7, 117, 110, 105, 48, 52, 51, 66, 7, 117, 110, 105, 48, 52, 51, 67, 7, 117, 110, 105, 48, 52, 51, 68, 7, 117, 110, 105, 48, 52, 51, 70, 7, 117, 110, 105, 48, 52, 52, 50, 7, 117, 110, 105, 48, 52, 52, 52, 7, 117, 110, 105, 48, 52, 52, 54, 7, 117, 110, 105, 48, 52, 52, 55, 7, 117, 110, 105, 48, 52, 52, 56, 7, 117, 110, 105, 48, 52, 52, 57, 7, 117, 110, 105, 48, 52, 52, 65, 7, 117, 110, 105, 48, 52, 52, 66, 7, 117, 110, 105, 48, 52, 52, 67, 7, 117, 110, 105, 48, 52, 52, 68, 7, 117, 110, 105, 48, 52, 52, 69, 7, 117, 110, 105, 48, 52, 52, 70, 7, 117, 110, 105, 48, 52, 53, 50, 7, 117, 110, 105, 48, 52, 53, 52, 7, 117, 110, 105, 48, 52, 53, 57, 7, 117, 110, 105, 48, 52, 53, 65, 7, 117, 110, 105, 48, 52, 53, 66, 7, 117, 110, 105, 48, 52, 53, 70, 7, 117, 110, 105, 48, 52, 54, 48, 7, 117, 110, 105, 48, 52, 54, 49, 7, 117, 110, 105, 48, 52, 54, 51, 7, 117, 110, 105, 48, 52, 54, 52, 7, 117, 110, 105, 48, 52, 54, 53, 7, 117, 110, 105, 48, 52, 54, 54, 7, 117, 110, 105, 48, 52, 54, 55, 7, 117, 110, 105, 48, 52, 54, 56, 7, 117, 110, 105, 48, 52, 54, 57, 7, 117, 110, 105, 48, 52, 54, 65, 7, 117, 110, 105, 48, 52, 54, 66, 7, 117, 110, 105, 48, 52, 54, 67, 7, 117, 110, 105, 48, 52, 54, 68, 7, 117, 110, 105, 48, 52, 54, 69, 7, 117, 110, 105, 48, 52, 54, 70, 7, 117, 110, 105, 48, 52, 55, 50, 7, 117, 110, 105, 48, 52, 55, 51, 7, 117, 110, 105, 48, 52, 55, 52, 7, 117, 110, 105, 48, 52, 55, 53, 7, 117, 110, 105, 48, 52, 55, 56, 7, 117, 110, 105, 48, 52, 55, 57, 7, 117, 110, 105, 48, 52, 55, 65, 7, 117, 110, 105, 48, 52, 55, 66, 7, 117, 110, 105, 48, 52, 55, 67, 7, 117, 110, 105, 48, 52, 55, 68, 7, 117, 110, 105, 48, 52, 55, 69, 7, 117, 110, 105, 48, 52, 55, 70, 7, 117, 110, 105, 48, 52, 56, 48, 7, 117, 110, 105, 48, 52, 56, 49, 7, 117, 110, 105, 48, 52, 56, 50, 7, 117, 110, 105, 48, 52, 56, 51, 7, 117, 110, 105, 48, 52, 56, 52, 7, 117, 110, 105, 48, 52, 56, 53, 7, 117, 110, 105, 48, 52, 56, 54, 7, 117, 110, 105, 48, 52, 56, 56, 7, 117, 110, 105, 48, 52, 56, 57, 7, 117, 110, 105, 48, 52, 56, 69, 7, 117, 110, 105, 48, 52, 56, 70, 7, 117, 110, 105, 48, 52, 57, 48, 7, 117, 110, 105, 48, 52, 57, 49, 7, 117, 110, 105, 48, 52, 57, 52, 7, 117, 110, 105, 48, 52, 57, 53, 7, 117, 110, 105, 48, 52, 57, 67, 7, 117, 110, 105, 48, 52, 57, 68, 7, 117, 110, 105, 48, 52, 65, 48, 7, 117, 110, 105, 48, 52, 65, 49, 7, 117, 110, 105, 48, 52, 65, 52, 7, 117, 110, 105, 48, 52, 65, 53, 7, 117, 110, 105, 48, 52, 65, 54, 7, 117, 110, 105, 48, 52, 65, 55, 7, 117, 110, 105, 48, 52, 65, 56, 7, 117, 110, 105, 48, 52, 65, 57, 7, 117, 110, 105, 48, 52, 66, 52, 7, 117, 110, 105, 48, 52, 66, 53, 7, 117, 110, 105, 48, 52, 66, 56, 7, 117, 110, 105, 48, 52, 66, 57, 7, 117, 110, 105, 48, 52, 66, 65, 7, 117, 110, 105, 48, 52, 66, 67, 7, 117, 110, 105, 48, 52, 66, 68, 7, 117, 110, 105, 48, 52, 67, 51, 7, 117, 110, 105, 48, 52, 67, 52, 7, 117, 110, 105, 48, 52, 67, 55, 7, 117, 110, 105, 48, 52, 67, 56, 7, 117, 110, 105, 48, 52, 68, 56, 7, 117, 110, 105, 48, 52, 69, 48, 7, 117, 110, 105, 48, 52, 69, 49, 7, 117, 110, 105, 48, 52, 70, 65, 7, 117, 110, 105, 48, 52, 70, 66, 7, 117, 110, 105, 48, 53, 48, 48, 7, 117, 110, 105, 48, 53, 48, 50, 7, 117, 110, 105, 48, 53, 48, 51, 7, 117, 110, 105, 48, 53, 48, 52, 7, 117, 110, 105, 48, 53, 48, 53, 7, 117, 110, 105, 48, 53, 48, 54, 7, 117, 110, 105, 48, 53, 48, 55, 7, 117, 110, 105, 48, 53, 48, 56, 7, 117, 110, 105, 48, 53, 48, 57, 7, 117, 110, 105, 48, 53, 48, 65, 7, 117, 110, 105, 48, 53, 48, 66, 7, 117, 110, 105, 48, 53, 48, 67, 7, 117, 110, 105, 48, 53, 48, 68, 7, 117, 110, 105, 48, 53, 48, 69, 7, 117, 110, 105, 48, 53, 48, 70, 7, 117, 110, 105, 48, 53, 49, 48, 7, 117, 110, 105, 50, 48, 48, 48, 7, 117, 110, 105, 50, 48, 48, 49, 7, 117, 110, 105, 50, 48, 48, 50, 7, 117, 110, 105, 50, 48, 48, 51, 7, 117, 110, 105, 50, 48, 48, 52, 7, 117, 110, 105, 50, 48, 48, 53, 7, 117, 110, 105, 50, 48, 48, 54, 7, 117, 110, 105, 50, 48, 48, 55, 7, 117, 110, 105, 50, 48, 48, 56, 7, 117, 110, 105, 50, 48, 48, 57, 7, 117, 110, 105, 50, 48, 48, 65, 7, 117, 110, 105, 50, 48, 48, 66, 13, 117, 110, 100, 101, 114, 115, 99, 111, 114, 101, 100, 98, 108, 13, 113, 117, 111, 116, 101, 114, 101, 118, 101, 114, 115, 101, 100, 7, 117, 110, 105, 50, 48, 50, 53, 7, 117, 110, 105, 50, 48, 55, 52, 9, 110, 115, 117, 112, 101, 114, 105, 111, 114, 4, 69, 117, 114, 111, 7, 117, 110, 105, 50, 49, 48, 53, 7, 117, 110, 105, 50, 49, 49, 51, 7, 117, 110, 105, 50, 49, 49, 54, 9, 101, 115, 116, 105, 109, 97, 116, 101, 100, 9, 111, 110, 101, 101, 105, 103, 104, 116, 104, 12, 116, 104, 114, 101, 101, 101, 105, 103, 104, 116, 104, 115, 11, 102, 105, 118, 101, 101, 105, 103, 104, 116, 104, 115, 12, 115, 101, 118, 101, 110, 101, 105, 103, 104, 116, 104, 115, 7, 117, 110, 105, 70, 69, 70, 70, 7, 117, 110, 105, 70, 70, 70, 67, 7, 117, 110, 105, 70, 70, 70, 68, 19, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 116, 105, 108, 100, 101, 99, 111, 109, 98, 18, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 104, 111, 111, 107, 99, 111, 109, 98, 19, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 103, 114, 97, 118, 101, 99, 111, 109, 98, 19, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 97, 99, 117, 116, 101, 99, 111, 109, 98, 14, 98, 114, 101, 118, 101, 103, 114, 97, 118, 101, 99, 111, 109, 98, 17, 99, 111, 109, 109, 97, 97, 99, 99, 101, 110, 116, 114, 111, 116, 97, 116, 101, 6, 65, 46, 115, 109, 99, 112, 6, 66, 46, 115, 109, 99, 112, 6, 67, 46, 115, 109, 99, 112, 6, 68, 46, 115, 109, 99, 112, 6, 69, 46, 115, 109, 99, 112, 6, 70, 46, 115, 109, 99, 112, 6, 71, 46, 115, 109, 99, 112, 6, 72, 46, 115, 109, 99, 112, 6, 73, 46, 115, 109, 99, 112, 6, 74, 46, 115, 109, 99, 112, 6, 75, 46, 115, 109, 99, 112, 6, 76, 46, 115, 109, 99, 112, 6, 77, 46, 115, 109, 99, 112, 6, 78, 46, 115, 109, 99, 112, 6, 79, 46, 115, 109, 99, 112, 6, 81, 46, 115, 109, 99, 112, 6, 82, 46, 115, 109, 99, 112, 6, 83, 46, 115, 109, 99, 112, 6, 84, 46, 115, 109, 99, 112, 6, 85, 46, 115, 109, 99, 112, 6, 86, 46, 115, 109, 99, 112, 6, 87, 46, 115, 109, 99, 112, 6, 88, 46, 115, 109, 99, 112, 6, 89, 46, 115, 109, 99, 112, 6, 90, 46, 115, 109, 99, 112, 13, 98, 114, 101, 118, 101, 104, 111, 111, 107, 99, 111, 109, 98, 14, 98, 114, 101, 118, 101, 97, 99, 117, 116, 101, 99, 111, 109, 98, 8, 99, 114, 111, 115, 115, 98, 97, 114, 9, 114, 105, 110, 103, 97, 99, 117, 116, 101, 9, 100, 97, 115, 105, 97, 111, 120, 105, 97, 14, 98, 114, 101, 118, 101, 116, 105, 108, 100, 101, 99, 111, 109, 98, 11, 99, 121, 114, 105, 108, 108, 105, 99, 116, 105, 99, 12, 99, 121, 114, 105, 108, 108, 105, 99, 104, 111, 111, 107, 6, 80, 46, 115, 109, 99, 112, 5, 75, 46, 97, 108, 116, 15, 71, 101, 114, 109, 97, 110, 100, 98, 108, 115, 46, 115, 109, 99, 112, 7, 117, 110, 105, 48, 48, 65, 68, 7, 117, 110, 105, 48, 49, 48, 65, 7, 117, 110, 105, 48, 49, 48, 66, 7, 117, 110, 105, 48, 49, 50, 48, 7, 117, 110, 105, 48, 49, 50, 49, 11, 110, 97, 112, 111, 115, 116, 114, 111, 112, 104, 101, 7, 117, 110, 105, 48, 50, 49, 56, 7, 117, 110, 105, 48, 50, 49, 57, 7, 117, 110, 105, 48, 50, 49, 65, 7, 117, 110, 105, 48, 50, 49, 66, 7, 117, 110, 105, 48, 49, 54, 50, 12, 117, 110, 105, 48, 49, 54, 50, 46, 115, 109, 99, 112, 7, 117, 110, 105, 48, 49, 54, 51, 11, 68, 99, 114, 111, 97, 116, 46, 115, 109, 99, 112, 8, 69, 116, 104, 46, 115, 109, 99, 112, 9, 84, 98, 97, 114, 46, 115, 109, 99, 112, 11, 65, 103, 114, 97, 118, 101, 46, 115, 109, 99, 112, 11, 65, 97, 99, 117, 116, 101, 46, 115, 109, 99, 112, 16, 65, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 46, 115, 109, 99, 112, 11, 65, 116, 105, 108, 100, 101, 46, 115, 109, 99, 112, 14, 65, 100, 105, 101, 114, 101, 115, 105, 115, 46, 115, 109, 99, 112, 10, 65, 114, 105, 110, 103, 46, 115, 109, 99, 112, 15, 65, 114, 105, 110, 103, 97, 99, 117, 116, 101, 46, 115, 109, 99, 112, 13, 67, 99, 101, 100, 105, 108, 108, 97, 46, 115, 109, 99, 112, 11, 69, 103, 114, 97, 118, 101, 46, 115, 109, 99, 112, 11, 69, 97, 99, 117, 116, 101, 46, 115, 109, 99, 112, 16, 69, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 46, 115, 109, 99, 112, 14, 69, 100, 105, 101, 114, 101, 115, 105, 115, 46, 115, 109, 99, 112, 11, 73, 103, 114, 97, 118, 101, 46, 115, 109, 99, 112, 11, 73, 97, 99, 117, 116, 101, 46, 115, 109, 99, 112, 16, 73, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 46, 115, 109, 99, 112, 14, 73, 100, 105, 101, 114, 101, 115, 105, 115, 46, 115, 109, 99, 112, 11, 78, 116, 105, 108, 100, 101, 46, 115, 109, 99, 112, 11, 79, 103, 114, 97, 118, 101, 46, 115, 109, 99, 112, 11, 79, 97, 99, 117, 116, 101, 46, 115, 109, 99, 112, 16, 79, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 46, 115, 109, 99, 112, 11, 79, 116, 105, 108, 100, 101, 46, 115, 109, 99, 112, 14, 79, 100, 105, 101, 114, 101, 115, 105, 115, 46, 115, 109, 99, 112, 11, 85, 103, 114, 97, 118, 101, 46, 115, 109, 99, 112, 11, 85, 97, 99, 117, 116, 101, 46, 115, 109, 99, 112, 16, 85, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 46, 115, 109, 99, 112, 14, 85, 100, 105, 101, 114, 101, 115, 105, 115, 46, 115, 109, 99, 112, 11, 89, 97, 99, 117, 116, 101, 46, 115, 109, 99, 112, 12, 65, 109, 97, 99, 114, 111, 110, 46, 115, 109, 99, 112, 11, 65, 98, 114, 101, 118, 101, 46, 115, 109, 99, 112, 12, 65, 111, 103, 111, 110, 101, 107, 46, 115, 109, 99, 112, 11, 67, 97, 99, 117, 116, 101, 46, 115, 109, 99, 112, 16, 67, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 46, 115, 109, 99, 112, 11, 67, 99, 97, 114, 111, 110, 46, 115, 109, 99, 112, 11, 68, 99, 97, 114, 111, 110, 46, 115, 109, 99, 112, 12, 69, 109, 97, 99, 114, 111, 110, 46, 115, 109, 99, 112, 11, 69, 98, 114, 101, 118, 101, 46, 115, 109, 99, 112, 15, 69, 100, 111, 116, 97, 99, 99, 101, 110, 116, 46, 115, 109, 99, 112, 12, 69, 111, 103, 111, 110, 101, 107, 46, 115, 109, 99, 112, 11, 69, 99, 97, 114, 111, 110, 46, 115, 109, 99, 112, 16, 71, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 46, 115, 109, 99, 112, 11, 71, 98, 114, 101, 118, 101, 46, 115, 109, 99, 112, 17, 71, 99, 111, 109, 109, 97, 97, 99, 99, 101, 110, 116, 46, 115, 109, 99, 112, 16, 72, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 46, 115, 109, 99, 112, 11, 73, 116, 105, 108, 100, 101, 46, 115, 109, 99, 112, 12, 73, 109, 97, 99, 114, 111, 110, 46, 115, 109, 99, 112, 11, 73, 98, 114, 101, 118, 101, 46, 115, 109, 99, 112, 12, 73, 111, 103, 111, 110, 101, 107, 46, 115, 109, 99, 112, 15, 73, 100, 111, 116, 97, 99, 99, 101, 110, 116, 46, 115, 109, 99, 112, 16, 74, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 46, 115, 109, 99, 112, 17, 75, 99, 111, 109, 109, 97, 97, 99, 99, 101, 110, 116, 46, 115, 109, 99, 112, 11, 76, 97, 99, 117, 116, 101, 46, 115, 109, 99, 112, 17, 76, 99, 111, 109, 109, 97, 97, 99, 99, 101, 110, 116, 46, 115, 109, 99, 112, 11, 76, 99, 97, 114, 111, 110, 46, 115, 109, 99, 112, 9, 76, 100, 111, 116, 46, 115, 109, 99, 112, 11, 78, 97, 99, 117, 116, 101, 46, 115, 109, 99, 112, 17, 78, 99, 111, 109, 109, 97, 97, 99, 99, 101, 110, 116, 46, 115, 109, 99, 112, 11, 78, 99, 97, 114, 111, 110, 46, 115, 109, 99, 112, 12, 79, 109, 97, 99, 114, 111, 110, 46, 115, 109, 99, 112, 11, 79, 98, 114, 101, 118, 101, 46, 115, 109, 99, 112, 18, 79, 104, 117, 110, 103, 97, 114, 117, 109, 108, 97, 117, 116, 46, 115, 109, 99, 112, 11, 82, 97, 99, 117, 116, 101, 46, 115, 109, 99, 112, 17, 82, 99, 111, 109, 109, 97, 97, 99, 99, 101, 110, 116, 46, 115, 109, 99, 112, 11, 82, 99, 97, 114, 111, 110, 46, 115, 109, 99, 112, 11, 83, 97, 99, 117, 116, 101, 46, 115, 109, 99, 112, 16, 83, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 46, 115, 109, 99, 112, 13, 83, 99, 101, 100, 105, 108, 108, 97, 46, 115, 109, 99, 112, 11, 83, 99, 97, 114, 111, 110, 46, 115, 109, 99, 112, 11, 84, 99, 97, 114, 111, 110, 46, 115, 109, 99, 112, 11, 85, 116, 105, 108, 100, 101, 46, 115, 109, 99, 112, 12, 85, 109, 97, 99, 114, 111, 110, 46, 115, 109, 99, 112, 11, 85, 98, 114, 101, 118, 101, 46, 115, 109, 99, 112, 10, 85, 114, 105, 110, 103, 46, 115, 109, 99, 112, 18, 85, 104, 117, 110, 103, 97, 114, 117, 109, 108, 97, 117, 116, 46, 115, 109, 99, 112, 12, 85, 111, 103, 111, 110, 101, 107, 46, 115, 109, 99, 112, 16, 87, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 46, 115, 109, 99, 112, 16, 89, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 46, 115, 109, 99, 112, 14, 89, 100, 105, 101, 114, 101, 115, 105, 115, 46, 115, 109, 99, 112, 11, 90, 97, 99, 117, 116, 101, 46, 115, 109, 99, 112, 15, 90, 100, 111, 116, 97, 99, 99, 101, 110, 116, 46, 115, 109, 99, 112, 11, 90, 99, 97, 114, 111, 110, 46, 115, 109, 99, 112, 10, 65, 108, 112, 104, 97, 116, 111, 110, 111, 115, 12, 69, 112, 115, 105, 108, 111, 110, 116, 111, 110, 111, 115, 8, 69, 116, 97, 116, 111, 110, 111, 115, 9, 73, 111, 116, 97, 116, 111, 110, 111, 115, 12, 79, 109, 105, 99, 114, 111, 110, 116, 111, 110, 111, 115, 12, 85, 112, 115, 105, 108, 111, 110, 116, 111, 110, 111, 115, 10, 79, 109, 101, 103, 97, 116, 111, 110, 111, 115, 17, 105, 111, 116, 97, 100, 105, 101, 114, 101, 115, 105, 115, 116, 111, 110, 111, 115, 5, 65, 108, 112, 104, 97, 4, 66, 101, 116, 97, 7, 69, 112, 115, 105, 108, 111, 110, 4, 90, 101, 116, 97, 3, 69, 116, 97, 4, 73, 111, 116, 97, 5, 75, 97, 112, 112, 97, 2, 77, 117, 2, 78, 117, 7, 79, 109, 105, 99, 114, 111, 110, 3, 82, 104, 111, 3, 84, 97, 117, 7, 85, 112, 115, 105, 108, 111, 110, 3, 67, 104, 105, 12, 73, 111, 116, 97, 100, 105, 101, 114, 101, 115, 105, 115, 15, 85, 112, 115, 105, 108, 111, 110, 100, 105, 101, 114, 101, 115, 105, 115, 10, 97, 108, 112, 104, 97, 116, 111, 110, 111, 115, 12, 101, 112, 115, 105, 108, 111, 110, 116, 111, 110, 111, 115, 8, 101, 116, 97, 116, 111, 110, 111, 115, 9, 105, 111, 116, 97, 116, 111, 110, 111, 115, 20, 117, 112, 115, 105, 108, 111, 110, 100, 105, 101, 114, 101, 115, 105, 115, 116, 111, 110, 111, 115, 5, 107, 97, 112, 112, 97, 7, 111, 109, 105, 99, 114, 111, 110, 7, 117, 110, 105, 48, 51, 66, 67, 2, 110, 117, 3, 99, 104, 105, 12, 105, 111, 116, 97, 100, 105, 101, 114, 101, 115, 105, 115, 15, 117, 112, 115, 105, 108, 111, 110, 100, 105, 101, 114, 101, 115, 105, 115, 12, 111, 109, 105, 99, 114, 111, 110, 116, 111, 110, 111, 115, 12, 117, 112, 115, 105, 108, 111, 110, 116, 111, 110, 111, 115, 10, 111, 109, 101, 103, 97, 116, 111, 110, 111, 115, 7, 117, 110, 105, 48, 52, 48, 49, 7, 117, 110, 105, 48, 52, 48, 51, 7, 117, 110, 105, 48, 52, 48, 53, 7, 117, 110, 105, 48, 52, 48, 54, 7, 117, 110, 105, 48, 52, 48, 55, 7, 117, 110, 105, 48, 52, 48, 56, 7, 117, 110, 105, 48, 52, 49, 65, 7, 117, 110, 105, 48, 52, 48, 67, 7, 117, 110, 105, 48, 52, 48, 69, 7, 117, 110, 105, 48, 52, 49, 48, 7, 117, 110, 105, 48, 52, 49, 50, 7, 117, 110, 105, 48, 52, 49, 51, 7, 117, 110, 105, 48, 52, 49, 53, 7, 117, 110, 105, 48, 52, 49, 57, 7, 117, 110, 105, 48, 52, 49, 67, 7, 117, 110, 105, 48, 52, 49, 68, 7, 117, 110, 105, 48, 52, 49, 69, 7, 117, 110, 105, 48, 52, 49, 70, 7, 117, 110, 105, 48, 52, 50, 48, 7, 117, 110, 105, 48, 52, 50, 49, 7, 117, 110, 105, 48, 52, 50, 50, 7, 117, 110, 105, 48, 52, 50, 52, 7, 117, 110, 105, 48, 52, 50, 53, 7, 117, 110, 105, 48, 52, 51, 48, 7, 117, 110, 105, 48, 52, 51, 53, 7, 117, 110, 105, 48, 52, 51, 57, 7, 117, 110, 105, 48, 52, 51, 69, 7, 117, 110, 105, 48, 52, 52, 48, 7, 117, 110, 105, 48, 52, 52, 49, 7, 117, 110, 105, 48, 52, 52, 51, 7, 117, 110, 105, 48, 52, 52, 53, 7, 117, 110, 105, 48, 52, 53, 49, 7, 117, 110, 105, 48, 52, 53, 51, 7, 117, 110, 105, 48, 52, 53, 53, 7, 117, 110, 105, 48, 52, 53, 54, 7, 117, 110, 105, 48, 52, 53, 55, 7, 117, 110, 105, 48, 52, 53, 56, 7, 117, 110, 105, 48, 52, 53, 67, 7, 117, 110, 105, 48, 52, 53, 69, 9, 101, 120, 99, 108, 97, 109, 100, 98, 108, 7, 117, 110, 105, 48, 49, 70, 48, 7, 117, 110, 105, 48, 50, 66, 67, 7, 117, 110, 105, 49, 69, 51, 69, 7, 117, 110, 105, 49, 69, 51, 70, 7, 117, 110, 105, 49, 69, 48, 48, 7, 117, 110, 105, 49, 69, 48, 49, 7, 117, 110, 105, 49, 70, 52, 68, 7, 117, 110, 105, 48, 52, 48, 48, 7, 117, 110, 105, 48, 52, 48, 68, 7, 117, 110, 105, 48, 52, 53, 48, 7, 117, 110, 105, 48, 52, 53, 68, 7, 117, 110, 105, 48, 52, 55, 48, 7, 117, 110, 105, 48, 52, 55, 49, 7, 117, 110, 105, 48, 52, 55, 54, 7, 117, 110, 105, 48, 52, 55, 55, 7, 117, 110, 105, 48, 52, 57, 56, 7, 117, 110, 105, 48, 52, 57, 57, 7, 117, 110, 105, 48, 52, 65, 65, 7, 117, 110, 105, 48, 52, 65, 66, 7, 117, 110, 105, 48, 52, 65, 69, 7, 117, 110, 105, 48, 52, 65, 70, 7, 117, 110, 105, 48, 52, 67, 48, 7, 117, 110, 105, 48, 52, 67, 49, 7, 117, 110, 105, 48, 52, 67, 50, 7, 117, 110, 105, 48, 52, 67, 70, 7, 117, 110, 105, 48, 52, 68, 48, 7, 117, 110, 105, 48, 52, 68, 49, 7, 117, 110, 105, 48, 52, 68, 50, 7, 117, 110, 105, 48, 52, 68, 51, 7, 117, 110, 105, 48, 52, 68, 52, 7, 117, 110, 105, 48, 52, 68, 53, 7, 117, 110, 105, 48, 52, 68, 54, 7, 117, 110, 105, 48, 52, 68, 55, 7, 117, 110, 105, 48, 52, 68, 65, 7, 117, 110, 105, 48, 52, 68, 57, 7, 117, 110, 105, 48, 52, 68, 66, 7, 117, 110, 105, 48, 52, 68, 67, 7, 117, 110, 105, 48, 52, 68, 68, 7, 117, 110, 105, 48, 52, 68, 69, 7, 117, 110, 105, 48, 52, 68, 70, 7, 117, 110, 105, 48, 52, 69, 50, 7, 117, 110, 105, 48, 52, 69, 51, 7, 117, 110, 105, 48, 52, 69, 52, 7, 117, 110, 105, 48, 52, 69, 53, 7, 117, 110, 105, 48, 52, 69, 54, 7, 117, 110, 105, 48, 52, 69, 55, 7, 117, 110, 105, 48, 52, 69, 56, 7, 117, 110, 105, 48, 52, 69, 57, 7, 117, 110, 105, 48, 52, 69, 65, 7, 117, 110, 105, 48, 52, 69, 66, 7, 117, 110, 105, 48, 52, 69, 67, 7, 117, 110, 105, 48, 52, 69, 68, 7, 117, 110, 105, 48, 52, 69, 69, 7, 117, 110, 105, 48, 52, 69, 70, 7, 117, 110, 105, 48, 52, 70, 48, 7, 117, 110, 105, 48, 52, 70, 49, 7, 117, 110, 105, 48, 52, 70, 50, 7, 117, 110, 105, 48, 52, 70, 51, 7, 117, 110, 105, 48, 52, 70, 52, 7, 117, 110, 105, 48, 52, 70, 53, 7, 117, 110, 105, 48, 52, 70, 56, 7, 117, 110, 105, 48, 52, 70, 57, 7, 117, 110, 105, 48, 52, 70, 67, 7, 117, 110, 105, 48, 52, 70, 68, 7, 117, 110, 105, 48, 53, 48, 49, 7, 117, 110, 105, 48, 53, 49, 50, 7, 117, 110, 105, 48, 53, 49, 51, 7, 117, 110, 105, 49, 69, 65, 48, 7, 117, 110, 105, 49, 69, 65, 49, 7, 117, 110, 105, 49, 69, 65, 50, 7, 117, 110, 105, 49, 69, 65, 51, 7, 117, 110, 105, 49, 69, 65, 52, 7, 117, 110, 105, 49, 69, 65, 53, 7, 117, 110, 105, 49, 69, 65, 54, 7, 117, 110, 105, 49, 69, 65, 55, 7, 117, 110, 105, 49, 69, 65, 56, 7, 117, 110, 105, 49, 69, 65, 57, 7, 117, 110, 105, 49, 69, 65, 65, 7, 117, 110, 105, 49, 69, 65, 66, 7, 117, 110, 105, 49, 69, 65, 67, 7, 117, 110, 105, 49, 69, 65, 68, 7, 117, 110, 105, 49, 69, 65, 69, 7, 117, 110, 105, 49, 69, 65, 70, 7, 117, 110, 105, 49, 69, 66, 48, 7, 117, 110, 105, 49, 69, 66, 49, 7, 117, 110, 105, 49, 69, 66, 50, 7, 117, 110, 105, 49, 69, 66, 51, 7, 117, 110, 105, 49, 69, 66, 52, 7, 117, 110, 105, 49, 69, 66, 53, 7, 117, 110, 105, 49, 69, 66, 54, 7, 117, 110, 105, 49, 69, 66, 55, 7, 117, 110, 105, 49, 69, 66, 56, 7, 117, 110, 105, 49, 69, 66, 57, 7, 117, 110, 105, 49, 69, 66, 65, 7, 117, 110, 105, 49, 69, 66, 66, 7, 117, 110, 105, 49, 69, 66, 67, 7, 117, 110, 105, 49, 69, 66, 68, 7, 117, 110, 105, 49, 69, 66, 69, 7, 117, 110, 105, 49, 69, 66, 70, 7, 117, 110, 105, 49, 69, 67, 48, 7, 117, 110, 105, 49, 69, 67, 49, 7, 117, 110, 105, 49, 69, 67, 50, 7, 117, 110, 105, 49, 69, 67, 51, 7, 117, 110, 105, 49, 69, 67, 52, 7, 117, 110, 105, 49, 69, 67, 53, 7, 117, 110, 105, 49, 69, 67, 54, 7, 117, 110, 105, 49, 69, 67, 55, 7, 117, 110, 105, 49, 69, 67, 56, 7, 117, 110, 105, 49, 69, 67, 57, 7, 117, 110, 105, 49, 69, 67, 65, 7, 117, 110, 105, 49, 69, 67, 66, 7, 117, 110, 105, 49, 69, 67, 67, 7, 117, 110, 105, 49, 69, 67, 68, 7, 117, 110, 105, 49, 69, 67, 69, 7, 117, 110, 105, 49, 69, 67, 70, 7, 117, 110, 105, 49, 69, 68, 48, 7, 117, 110, 105, 49, 69, 68, 49, 7, 117, 110, 105, 49, 69, 68, 50, 7, 117, 110, 105, 49, 69, 68, 51, 7, 117, 110, 105, 49, 69, 68, 52, 7, 117, 110, 105, 49, 69, 68, 53, 7, 117, 110, 105, 49, 69, 68, 54, 7, 117, 110, 105, 49, 69, 68, 55, 7, 117, 110, 105, 49, 69, 68, 56, 7, 117, 110, 105, 49, 69, 68, 57, 7, 117, 110, 105, 49, 69, 68, 65, 7, 117, 110, 105, 49, 69, 68, 66, 7, 117, 110, 105, 49, 69, 68, 67, 7, 117, 110, 105, 49, 69, 68, 68, 7, 117, 110, 105, 49, 69, 68, 69, 7, 117, 110, 105, 49, 69, 68, 70, 7, 117, 110, 105, 49, 69, 69, 48, 7, 117, 110, 105, 49, 69, 69, 49, 7, 117, 110, 105, 49, 69, 69, 50, 7, 117, 110, 105, 49, 69, 69, 51, 7, 117, 110, 105, 49, 69, 69, 52, 7, 117, 110, 105, 49, 69, 69, 53, 7, 117, 110, 105, 49, 69, 69, 54, 7, 117, 110, 105, 49, 69, 69, 55, 7, 117, 110, 105, 49, 69, 69, 56, 7, 117, 110, 105, 49, 69, 69, 57, 7, 117, 110, 105, 49, 69, 69, 65, 7, 117, 110, 105, 49, 69, 69, 66, 7, 117, 110, 105, 49, 69, 69, 67, 7, 117, 110, 105, 49, 69, 69, 68, 7, 117, 110, 105, 49, 69, 69, 69, 7, 117, 110, 105, 49, 69, 69, 70, 7, 117, 110, 105, 49, 69, 70, 48, 7, 117, 110, 105, 49, 69, 70, 49, 7, 117, 110, 105, 49, 69, 70, 52, 7, 117, 110, 105, 49, 69, 70, 53, 7, 117, 110, 105, 49, 69, 70, 54, 7, 117, 110, 105, 49, 69, 70, 55, 7, 117, 110, 105, 49, 69, 70, 56, 7, 117, 110, 105, 49, 69, 70, 57, 7, 117, 110, 105, 50, 48, 65, 66, 7, 117, 110, 105, 48, 52, 57, 65, 7, 117, 110, 105, 48, 52, 57, 66, 7, 117, 110, 105, 48, 52, 65, 50, 7, 117, 110, 105, 48, 52, 65, 51, 7, 117, 110, 105, 48, 52, 65, 67, 7, 117, 110, 105, 48, 52, 65, 68, 7, 117, 110, 105, 48, 52, 66, 50, 7, 117, 110, 105, 48, 52, 66, 51, 7, 117, 110, 105, 48, 52, 66, 54, 7, 117, 110, 105, 48, 52, 66, 55, 7, 117, 110, 105, 48, 52, 67, 66, 7, 117, 110, 105, 48, 52, 67, 67, 7, 117, 110, 105, 48, 52, 70, 54, 7, 117, 110, 105, 48, 52, 70, 55, 7, 117, 110, 105, 48, 52, 57, 54, 7, 117, 110, 105, 48, 52, 57, 55, 7, 117, 110, 105, 48, 52, 66, 69, 7, 117, 110, 105, 48, 52, 66, 70, 7, 117, 110, 105, 48, 52, 66, 66, 7, 117, 110, 105, 48, 52, 56, 68, 7, 117, 110, 105, 48, 52, 56, 67, 7, 117, 110, 105, 48, 52, 54, 50, 7, 117, 110, 105, 48, 52, 57, 50, 7, 117, 110, 105, 48, 52, 57, 51, 7, 117, 110, 105, 48, 52, 57, 69, 7, 117, 110, 105, 48, 52, 57, 70, 7, 117, 110, 105, 48, 52, 56, 65, 7, 117, 110, 105, 48, 52, 56, 66, 7, 117, 110, 105, 48, 52, 67, 57, 7, 117, 110, 105, 48, 52, 67, 65, 7, 117, 110, 105, 48, 52, 67, 68, 7, 117, 110, 105, 48, 52, 67, 69, 7, 117, 110, 105, 48, 52, 67, 53, 7, 117, 110, 105, 48, 52, 67, 54, 7, 117, 110, 105, 48, 52, 66, 48, 7, 117, 110, 105, 48, 52, 66, 49, 7, 117, 110, 105, 48, 52, 70, 69, 7, 117, 110, 105, 48, 52, 70, 70, 7, 117, 110, 105, 48, 53, 49, 49, 7, 117, 110, 105, 50, 48, 49, 53, 0, 1, 0, 1, 255, 255, 0, 15, 0, 1, 0, 0, 0, 10, 0, 48, 0, 62, 0, 4, 68, 70, 76, 84, 0, 26, 99, 121, 114, 108, 0, 26, 103, 114, 101, 107, 0, 26, 108, 97, 116, 110, 0, 26, 0, 4, 0, 0, 0, 0, 255, 255, 0, 1, 0, 0, 0, 1, 115, 109, 99, 112, 0, 8, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4, 0, 1, 0, 0, 0, 1, 0, 8, 0, 2, 1, 190, 0, 220, 2, 79, 2, 80, 2, 81, 2, 82, 2, 83, 2, 84, 2, 85, 2, 86, 2, 87, 2, 88, 2, 89, 2, 90, 2, 91, 2, 92, 2, 93, 2, 112, 2, 94, 2, 95, 2, 96, 2, 97, 2, 98, 2, 99, 2, 100, 2, 101, 2, 102, 2, 103, 2, 79, 2, 80, 2, 81, 2, 82, 2, 83, 2, 84, 2, 85, 2, 86, 2, 87, 2, 88, 2, 89, 2, 90, 2, 91, 2, 92, 2, 93, 2, 112, 2, 94, 2, 95, 2, 96, 2, 97, 2, 98, 2, 99, 2, 100, 2, 101, 2, 102, 2, 103, 2, 130, 2, 114, 2, 133, 2, 160, 2, 134, 2, 136, 2, 132, 2, 159, 2, 161, 2, 137, 2, 138, 2, 135, 2, 162, 2, 164, 2, 139, 2, 163, 2, 165, 2, 129, 2, 141, 2, 167, 2, 170, 2, 142, 2, 143, 2, 168, 2, 140, 2, 166, 2, 169, 2, 130, 2, 172, 2, 171, 2, 173, 2, 174, 2, 145, 2, 177, 2, 146, 2, 147, 2, 179, 2, 144, 2, 176, 2, 178, 2, 175, 2, 180, 2, 181, 2, 182, 2, 184, 2, 183, 2, 185, 2, 186, 2, 188, 2, 187, 2, 148, 2, 150, 2, 190, 2, 151, 2, 153, 2, 149, 2, 191, 2, 189, 2, 152, 2, 192, 2, 194, 2, 193, 2, 195, 2, 198, 2, 197, 2, 196, 2, 131, 2, 199, 2, 155, 2, 202, 2, 156, 2, 157, 2, 154, 2, 204, 2, 201, 2, 205, 2, 203, 2, 200, 2, 206, 2, 158, 2, 207, 2, 208, 2, 209, 2, 211, 2, 210, 2, 133, 2, 160, 2, 134, 2, 136, 2, 132, 2, 159, 2, 161, 2, 137, 2, 138, 2, 135, 2, 162, 2, 164, 2, 139, 2, 163, 2, 165, 2, 129, 2, 141, 2, 167, 2, 170, 2, 142, 2, 143, 2, 168, 2, 140, 2, 166, 2, 169, 2, 172, 2, 171, 2, 173, 2, 174, 2, 145, 2, 177, 2, 146, 2, 147, 2, 144, 2, 176, 2, 178, 2, 175, 2, 180, 2, 181, 2, 182, 2, 184, 2, 183, 2, 185, 2, 186, 2, 188, 2, 187, 2, 148, 2, 150, 2, 190, 2, 151, 2, 153, 2, 149, 2, 191, 2, 189, 2, 152, 2, 192, 2, 194, 2, 193, 2, 195, 2, 198, 2, 197, 2, 196, 2, 131, 2, 199, 2, 155, 2, 202, 2, 156, 2, 157, 2, 154, 2, 204, 2, 201, 2, 205, 2, 203, 2, 200, 2, 206, 2, 158, 2, 207, 2, 208, 2, 209, 2, 211, 2, 210, 2, 127, 2, 127, 0, 2, 0, 26, 0, 2, 0, 53, 0, 0, 0, 76, 0, 76, 0, 52, 0, 80, 0, 80, 0, 53, 0, 158, 0, 167, 0, 54, 0, 169, 0, 182, 0, 64, 0, 184, 0, 188, 0, 78, 0, 190, 0, 205, 0, 83, 0, 207, 0, 215, 0, 99, 0, 217, 0, 218, 0, 108, 0, 221, 0, 235, 0, 110, 0, 237, 0, 241, 0, 125, 0, 243, 0, 243, 0, 130, 0, 246, 0, 248, 0, 131, 0, 250, 1, 6, 0, 134, 1, 8, 1, 21, 0, 147, 1, 23, 1, 26, 0, 161, 1, 28, 1, 42, 0, 165, 1, 44, 1, 52, 0, 180, 1, 54, 1, 55, 0, 189, 1, 58, 1, 72, 0, 191, 1, 74, 1, 78, 0, 206, 1, 80, 1, 80, 0, 211, 1, 83, 1, 85, 0, 212, 1, 87, 1, 89, 0, 215, 2, 126, 2, 126, 0, 218, 2, 128, 2, 128, 0, 219, 0, 1, 0, 1, 0, 8, 0, 2, 0, 0, 0, 20, 0, 2, 0, 0, 0, 36, 0, 2, 119, 103, 104, 116, 1, 0, 0, 0, 105, 116, 97, 108, 1, 11, 0, 1, 0, 4, 0, 16, 0, 1, 0, 0, 0, 0, 1, 16, 2, 188, 0, 0, 0, 3, 0, 1, 0, 2, 1, 17, 0, 0, 0, 0, 0, 1, 0, 0) +font_name = "Roboto Mono" +style_name = "Bold" +font_style = 5 +font_weight = 700 +msdf_pixel_range = 8 +fixed_size = 14 +cache/0/16/0/ascent = 15.0 +cache/0/16/0/descent = 4.0 +cache/0/16/0/underline_position = 1.375 +cache/0/16/0/underline_thickness = 0.6875 +cache/0/16/0/scale = 1.0 +cache/0/16/0/kerning_overrides/16/0 = Vector2(0, 0) +cache/0/16/0/kerning_overrides/14/0 = Vector2(0, 0) +cache/0/14/0/ascent = 15.0 +cache/0/14/0/descent = 4.0 +cache/0/14/0/underline_position = 1.375 +cache/0/14/0/underline_thickness = 0.6875 +cache/0/14/0/scale = 1.0 +cache/0/14/0/kerning_overrides/16/0 = Vector2(0, 0) +cache/0/14/0/kerning_overrides/14/0 = Vector2(0, 0) + +[sub_resource type="FontFile" id="FontFile_uy7mm"] +data = PackedByteArray(0, 1, 0, 0, 0, 14, 0, 128, 0, 3, 0, 96, 71, 83, 85, 66, 54, 189, 53, 203, 0, 1, 107, 228, 0, 0, 2, 168, 79, 83, 47, 50, 152, 226, 171, 67, 0, 1, 62, 204, 0, 0, 0, 96, 83, 84, 65, 84, 231, 108, 204, 46, 0, 1, 110, 140, 0, 0, 0, 68, 99, 109, 97, 112, 136, 53, 174, 103, 0, 1, 63, 44, 0, 0, 7, 80, 103, 97, 115, 112, 0, 0, 0, 16, 0, 1, 107, 220, 0, 0, 0, 8, 103, 108, 121, 102, 12, 74, 140, 60, 0, 0, 0, 236, 0, 1, 45, 194, 104, 101, 97, 100, 2, 59, 156, 14, 0, 1, 54, 160, 0, 0, 0, 54, 104, 104, 101, 97, 11, 181, 0, 151, 0, 1, 62, 168, 0, 0, 0, 36, 104, 109, 116, 120, 181, 159, 193, 58, 0, 1, 54, 216, 0, 0, 7, 208, 108, 111, 99, 97, 59, 113, 133, 84, 0, 1, 46, 208, 0, 0, 7, 208, 109, 97, 120, 112, 4, 6, 1, 98, 0, 1, 46, 176, 0, 0, 0, 32, 110, 97, 109, 101, 93, 18, 136, 85, 0, 1, 70, 132, 0, 0, 3, 154, 112, 111, 115, 116, 151, 175, 175, 6, 0, 1, 74, 32, 0, 0, 33, 188, 112, 114, 101, 112, 104, 6, 140, 133, 0, 1, 70, 124, 0, 0, 0, 7, 0, 2, 255, 226, 0, 0, 4, 2, 5, 176, 0, 7, 0, 10, 0, 0, 65, 19, 51, 3, 35, 1, 51, 19, 55, 1, 19, 3, 39, 46, 173, 195, 152, 253, 59, 188, 180, 75, 1, 43, 76, 1, 121, 254, 135, 5, 176, 250, 80, 1, 121, 161, 2, 118, 253, 138, 0, 3, 0, 62, 0, 0, 4, 114, 5, 176, 0, 26, 0, 41, 0, 56, 0, 0, 115, 33, 50, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 37, 19, 5, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 37, 19, 19, 5, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 62, 1, 209, 96, 184, 73, 72, 94, 7, 4, 21, 25, 25, 76, 52, 52, 95, 37, 36, 47, 5, 8, 62, 57, 58, 153, 84, 254, 103, 47, 1, 41, 54, 85, 28, 28, 25, 7, 8, 61, 46, 46, 113, 61, 254, 246, 118, 80, 1, 0, 49, 87, 31, 31, 31, 7, 7, 60, 44, 44, 108, 55, 56, 55, 55, 160, 103, 54, 102, 44, 43, 69, 20, 22, 59, 38, 38, 97, 61, 93, 139, 48, 47, 49, 3, 1, 252, 249, 1, 3, 39, 33, 34, 91, 54, 63, 100, 34, 35, 38, 1, 2, 2, 166, 1, 207, 1, 2, 29, 27, 27, 81, 54, 59, 90, 31, 31, 32, 1, 0, 1, 0, 100, 255, 233, 4, 133, 5, 198, 0, 63, 0, 0, 65, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 39, 38, 54, 55, 55, 54, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 23, 51, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 4, 22, 174, 18, 59, 43, 43, 113, 72, 63, 88, 28, 28, 29, 5, 5, 6, 7, 34, 9, 31, 24, 23, 63, 43, 42, 107, 66, 68, 91, 29, 28, 26, 3, 179, 4, 53, 51, 51, 152, 103, 91, 152, 62, 63, 98, 36, 37, 49, 13, 32, 10, 4, 17, 16, 62, 49, 48, 133, 86, 105, 177, 69, 68, 92, 1, 184, 3, 64, 114, 42, 42, 48, 3, 2, 49, 40, 39, 101, 54, 54, 109, 47, 206, 54, 117, 56, 55, 100, 37, 36, 42, 2, 2, 55, 44, 44, 112, 60, 96, 168, 63, 63, 75, 2, 2, 51, 45, 46, 125, 72, 73, 158, 79, 203, 73, 151, 71, 71, 126, 47, 48, 57, 2, 3, 69, 62, 62, 171, 0, 0, 2, 0, 46, 0, 0, 4, 119, 5, 176, 0, 21, 0, 43, 0, 0, 115, 33, 50, 54, 55, 54, 54, 55, 54, 54, 55, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 37, 23, 23, 22, 22, 23, 22, 22, 23, 22, 22, 7, 7, 6, 6, 7, 6, 6, 7, 6, 6, 7, 39, 46, 1, 83, 104, 185, 78, 70, 123, 46, 47, 64, 15, 15, 11, 12, 21, 23, 84, 59, 63, 165, 102, 254, 196, 158, 155, 75, 114, 41, 37, 51, 12, 16, 4, 9, 16, 12, 46, 33, 34, 91, 56, 57, 138, 80, 133, 50, 46, 41, 120, 72, 74, 175, 96, 107, 85, 159, 71, 75, 129, 45, 50, 58, 2, 1, 152, 1, 3, 45, 37, 35, 91, 51, 59, 131, 67, 110, 71, 133, 57, 57, 97, 33, 36, 39, 1, 1, 0, 0, 1, 0, 72, 0, 0, 4, 161, 5, 176, 0, 11, 0, 0, 65, 55, 33, 19, 33, 55, 33, 3, 33, 55, 33, 19, 3, 191, 28, 253, 178, 81, 2, 167, 28, 252, 164, 253, 3, 100, 28, 253, 80, 90, 2, 161, 157, 1, 212, 158, 250, 80, 157, 2, 4, 0, 0, 1, 0, 81, 0, 0, 4, 178, 5, 176, 0, 9, 0, 0, 65, 55, 33, 19, 33, 55, 33, 3, 51, 19, 3, 195, 27, 253, 180, 87, 2, 173, 28, 252, 155, 252, 182, 112, 2, 131, 157, 1, 242, 158, 250, 80, 2, 131, 0, 1, 0, 96, 255, 232, 4, 133, 5, 198, 0, 61, 0, 0, 101, 19, 33, 7, 33, 3, 6, 6, 39, 38, 38, 39, 38, 38, 39, 38, 54, 55, 55, 54, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 23, 51, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 3, 252, 82, 254, 53, 27, 1, 31, 57, 61, 159, 85, 63, 89, 30, 31, 35, 7, 8, 2, 7, 28, 9, 33, 24, 24, 67, 43, 43, 108, 67, 64, 91, 29, 29, 30, 4, 177, 2, 56, 52, 53, 153, 98, 92, 154, 63, 64, 100, 37, 38, 50, 13, 26, 10, 7, 19, 18, 68, 51, 50, 136, 86, 143, 251, 191, 2, 22, 156, 254, 185, 63, 45, 5, 3, 51, 40, 39, 101, 55, 54, 111, 49, 172, 55, 118, 57, 56, 102, 38, 37, 43, 2, 2, 47, 40, 40, 104, 57, 94, 162, 60, 60, 70, 2, 2, 53, 47, 48, 129, 74, 75, 161, 79, 169, 74, 155, 72, 73, 129, 48, 49, 59, 3, 5, 111, 0, 1, 0, 32, 0, 0, 4, 180, 5, 176, 0, 11, 0, 0, 97, 19, 35, 3, 33, 19, 35, 3, 51, 19, 33, 3, 3, 183, 253, 171, 109, 253, 190, 109, 170, 253, 170, 117, 2, 66, 117, 5, 176, 253, 142, 2, 114, 250, 80, 2, 161, 253, 95, 0, 0, 1, 0, 64, 0, 0, 4, 148, 5, 176, 0, 11, 0, 0, 65, 7, 33, 3, 33, 7, 33, 55, 33, 19, 33, 55, 1, 61, 29, 1, 76, 197, 254, 181, 28, 3, 87, 28, 254, 173, 197, 1, 82, 29, 5, 176, 161, 251, 145, 160, 160, 4, 111, 161, 0, 1, 0, 63, 255, 234, 4, 140, 5, 176, 0, 27, 0, 0, 65, 3, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 39, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 19, 3, 211, 173, 11, 57, 43, 43, 111, 66, 62, 88, 28, 28, 26, 2, 182, 1, 53, 51, 50, 148, 97, 102, 180, 70, 69, 92, 15, 173, 5, 176, 252, 11, 62, 112, 42, 43, 49, 2, 1, 48, 39, 39, 101, 56, 1, 92, 160, 59, 60, 69, 2, 2, 70, 63, 63, 170, 99, 3, 245, 0, 1, 0, 62, 0, 0, 4, 252, 5, 176, 0, 12, 0, 0, 65, 1, 51, 1, 1, 35, 1, 7, 19, 35, 3, 51, 19, 2, 16, 1, 52, 207, 254, 131, 2, 102, 234, 254, 5, 158, 123, 185, 253, 185, 84, 2, 162, 253, 94, 3, 42, 2, 134, 253, 233, 165, 2, 188, 250, 80, 1, 227, 0, 1, 0, 88, 0, 0, 3, 219, 5, 176, 0, 5, 0, 0, 101, 19, 35, 3, 33, 55, 1, 40, 225, 181, 252, 3, 103, 28, 157, 5, 19, 250, 80, 157, 0, 1, 0, 39, 0, 0, 4, 192, 5, 176, 0, 14, 0, 0, 65, 35, 3, 51, 27, 2, 51, 1, 3, 3, 51, 19, 35, 1, 1, 255, 219, 253, 176, 99, 91, 107, 105, 1, 133, 116, 102, 176, 252, 228, 254, 138, 5, 176, 250, 80, 2, 60, 2, 93, 252, 252, 2, 255, 253, 186, 253, 178, 5, 176, 253, 42, 0, 1, 0, 34, 0, 0, 4, 179, 5, 176, 0, 9, 0, 0, 97, 19, 35, 3, 1, 35, 3, 51, 19, 1, 3, 182, 253, 183, 193, 254, 150, 178, 253, 183, 193, 1, 106, 5, 176, 251, 186, 4, 70, 250, 80, 4, 72, 251, 184, 0, 0, 2, 0, 102, 255, 234, 4, 109, 5, 198, 0, 37, 0, 75, 0, 0, 65, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 39, 7, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 39, 38, 54, 55, 55, 54, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 23, 22, 6, 4, 73, 26, 10, 3, 14, 15, 59, 47, 47, 131, 87, 90, 151, 61, 62, 97, 35, 36, 47, 13, 26, 10, 3, 15, 15, 60, 47, 47, 131, 86, 90, 151, 62, 61, 96, 36, 35, 47, 140, 27, 9, 30, 22, 23, 62, 41, 41, 106, 65, 62, 85, 28, 28, 28, 5, 5, 6, 6, 28, 9, 30, 23, 23, 63, 42, 41, 105, 65, 62, 85, 28, 27, 28, 5, 4, 7, 2, 133, 165, 71, 153, 74, 73, 132, 50, 50, 61, 2, 2, 54, 48, 49, 132, 74, 75, 159, 77, 166, 71, 152, 73, 73, 132, 50, 50, 61, 2, 2, 54, 48, 48, 132, 75, 74, 159, 246, 170, 53, 116, 56, 57, 102, 38, 39, 43, 2, 2, 51, 41, 40, 104, 55, 55, 108, 45, 169, 52, 116, 57, 56, 101, 39, 38, 43, 2, 2, 50, 40, 40, 103, 54, 55, 108, 0, 2, 0, 81, 0, 0, 4, 167, 5, 176, 0, 16, 0, 31, 0, 0, 65, 5, 50, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 37, 3, 51, 19, 19, 5, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 35, 1, 107, 1, 33, 100, 185, 73, 72, 92, 9, 8, 55, 54, 55, 155, 92, 254, 65, 252, 180, 128, 99, 1, 32, 59, 91, 30, 29, 25, 7, 8, 61, 46, 47, 118, 66, 2, 72, 1, 60, 57, 57, 165, 105, 95, 155, 56, 56, 63, 3, 1, 250, 80, 2, 224, 2, 56, 1, 3, 45, 37, 37, 99, 57, 67, 108, 37, 38, 41, 0, 0, 2, 0, 93, 255, 10, 4, 119, 5, 198, 0, 40, 0, 78, 0, 0, 65, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 23, 55, 39, 54, 54, 55, 54, 54, 39, 7, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 39, 38, 54, 55, 55, 54, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 23, 22, 6, 4, 89, 20, 10, 2, 14, 15, 60, 48, 48, 135, 89, 93, 155, 63, 64, 99, 36, 37, 49, 13, 20, 10, 2, 15, 15, 60, 48, 47, 134, 89, 33, 65, 32, 235, 135, 207, 70, 106, 39, 38, 50, 146, 21, 9, 31, 23, 23, 64, 43, 43, 110, 69, 65, 89, 28, 29, 28, 4, 5, 7, 7, 21, 9, 31, 24, 23, 65, 44, 43, 109, 68, 65, 90, 28, 28, 28, 4, 4, 7, 2, 152, 127, 73, 157, 76, 75, 136, 52, 51, 63, 2, 2, 56, 49, 50, 136, 76, 77, 164, 79, 128, 72, 156, 75, 75, 136, 51, 52, 62, 2, 1, 8, 8, 243, 113, 214, 52, 132, 75, 75, 165, 214, 131, 56, 121, 58, 59, 106, 39, 40, 44, 2, 2, 53, 42, 42, 107, 57, 57, 113, 47, 131, 55, 120, 59, 58, 105, 40, 39, 45, 2, 2, 52, 41, 42, 107, 57, 57, 112, 0, 0, 2, 0, 71, 0, 0, 4, 127, 5, 176, 0, 20, 0, 35, 0, 0, 65, 19, 51, 55, 3, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 37, 3, 51, 19, 55, 19, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 35, 2, 128, 173, 191, 2, 195, 66, 115, 45, 44, 56, 6, 8, 57, 56, 56, 160, 95, 254, 109, 253, 180, 103, 26, 97, 246, 60, 95, 32, 31, 27, 7, 8, 64, 47, 48, 120, 64, 2, 82, 253, 174, 13, 2, 106, 27, 74, 49, 49, 122, 75, 99, 157, 55, 54, 60, 3, 1, 250, 80, 2, 82, 152, 2, 46, 1, 3, 40, 35, 36, 99, 61, 67, 106, 36, 37, 39, 0, 0, 1, 0, 83, 255, 234, 4, 141, 5, 198, 0, 73, 0, 0, 65, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 39, 35, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 23, 51, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 22, 3, 103, 7, 60, 45, 45, 110, 56, 64, 101, 35, 36, 41, 3, 183, 2, 70, 63, 62, 167, 96, 90, 180, 73, 73, 96, 7, 6, 63, 55, 55, 143, 74, 45, 95, 38, 39, 45, 6, 6, 57, 43, 43, 106, 54, 63, 91, 31, 30, 31, 3, 184, 3, 62, 56, 57, 158, 94, 89, 176, 71, 72, 92, 6, 5, 64, 55, 54, 140, 71, 47, 99, 39, 38, 44, 1, 120, 60, 91, 30, 30, 29, 1, 1, 43, 37, 37, 103, 63, 98, 162, 57, 58, 65, 1, 2, 50, 51, 50, 151, 98, 90, 139, 53, 53, 77, 27, 16, 42, 30, 29, 82, 58, 58, 91, 32, 31, 33, 1, 2, 45, 38, 38, 101, 58, 94, 159, 59, 58, 68, 2, 2, 54, 53, 53, 152, 95, 87, 133, 50, 51, 74, 27, 18, 44, 31, 32, 87, 0, 1, 0, 194, 0, 0, 4, 247, 5, 176, 0, 7, 0, 0, 65, 55, 33, 7, 33, 3, 51, 19, 4, 219, 28, 251, 231, 28, 1, 181, 225, 176, 225, 5, 18, 158, 158, 250, 238, 5, 18, 0, 0, 1, 0, 104, 255, 234, 4, 181, 5, 176, 0, 29, 0, 0, 65, 35, 3, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 19, 35, 3, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 4, 181, 175, 172, 12, 56, 43, 44, 117, 71, 67, 91, 27, 27, 18, 7, 165, 172, 170, 11, 44, 51, 50, 154, 100, 106, 182, 70, 70, 92, 15, 5, 176, 252, 38, 64, 122, 47, 47, 55, 2, 2, 61, 47, 47, 116, 59, 3, 219, 252, 37, 94, 175, 67, 68, 83, 2, 2, 78, 68, 67, 180, 100, 0, 0, 1, 0, 205, 0, 0, 4, 230, 5, 176, 0, 8, 0, 0, 97, 51, 1, 35, 1, 7, 39, 3, 35, 1, 168, 157, 2, 161, 198, 254, 28, 30, 10, 139, 188, 5, 176, 251, 191, 67, 76, 4, 56, 0, 0, 1, 0, 149, 0, 0, 5, 3, 5, 176, 0, 18, 0, 0, 115, 51, 1, 55, 23, 19, 51, 1, 35, 3, 7, 39, 3, 35, 1, 7, 55, 19, 35, 149, 187, 1, 62, 36, 1, 8, 184, 1, 144, 174, 254, 20, 1, 14, 158, 254, 200, 33, 6, 52, 170, 3, 213, 112, 121, 252, 52, 5, 176, 252, 43, 79, 77, 3, 215, 252, 71, 102, 102, 3, 185, 0, 0, 1, 255, 241, 0, 0, 4, 238, 5, 176, 0, 11, 0, 0, 65, 3, 35, 1, 1, 51, 1, 19, 51, 1, 1, 35, 2, 134, 211, 201, 1, 38, 253, 225, 224, 1, 148, 220, 201, 254, 210, 2, 18, 223, 3, 118, 2, 58, 253, 55, 253, 25, 2, 69, 253, 187, 2, 213, 2, 219, 0, 1, 0, 212, 0, 0, 4, 241, 5, 176, 0, 8, 0, 0, 65, 3, 35, 1, 3, 51, 19, 1, 35, 2, 90, 194, 196, 1, 23, 94, 168, 95, 2, 93, 215, 2, 214, 2, 218, 252, 122, 253, 214, 2, 20, 3, 156, 0, 0, 1, 0, 19, 0, 0, 4, 129, 5, 176, 0, 9, 0, 0, 119, 1, 55, 33, 7, 33, 1, 7, 33, 55, 252, 3, 112, 21, 252, 128, 26, 2, 174, 252, 147, 21, 3, 167, 25, 157, 4, 125, 150, 158, 251, 135, 153, 157, 0, 2, 0, 97, 255, 236, 4, 15, 4, 80, 0, 56, 0, 79, 0, 0, 97, 51, 55, 38, 54, 55, 19, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 7, 39, 34, 6, 7, 6, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 6, 20, 37, 38, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 55, 54, 54, 51, 23, 7, 6, 6, 7, 6, 6, 2, 252, 183, 2, 13, 1, 9, 84, 9, 52, 50, 51, 142, 82, 74, 154, 64, 65, 88, 9, 181, 10, 50, 35, 34, 83, 43, 49, 81, 28, 28, 27, 6, 13, 206, 60, 123, 57, 58, 102, 39, 39, 49, 4, 4, 49, 45, 44, 121, 68, 64, 117, 52, 27, 51, 24, 3, 254, 215, 41, 68, 24, 24, 22, 5, 4, 29, 21, 18, 44, 25, 55, 125, 55, 155, 39, 27, 69, 39, 41, 93, 17, 54, 110, 55, 1, 247, 87, 134, 47, 46, 48, 2, 1, 39, 40, 40, 121, 82, 1, 45, 65, 21, 21, 20, 1, 1, 28, 27, 27, 78, 51, 86, 1, 15, 17, 18, 56, 40, 41, 108, 70, 72, 114, 40, 40, 44, 1, 1, 33, 30, 16, 38, 21, 30, 58, 110, 1, 24, 23, 22, 66, 43, 37, 57, 22, 18, 27, 10, 22, 14, 1, 220, 37, 61, 22, 22, 24, 0, 2, 0, 65, 255, 233, 4, 32, 6, 0, 0, 35, 0, 67, 0, 0, 65, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 19, 35, 1, 51, 55, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 39, 7, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 39, 19, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 23, 22, 22, 4, 23, 2, 7, 4, 12, 13, 49, 39, 40, 111, 73, 59, 106, 46, 27, 49, 23, 108, 181, 254, 245, 168, 36, 18, 42, 24, 42, 103, 56, 77, 128, 52, 52, 80, 29, 29, 37, 169, 3, 8, 34, 27, 21, 55, 33, 35, 84, 50, 44, 72, 28, 25, 38, 13, 82, 25, 59, 35, 34, 80, 47, 46, 70, 23, 23, 32, 7, 12, 1, 2, 23, 21, 61, 127, 61, 60, 106, 41, 40, 48, 2, 1, 27, 28, 16, 42, 25, 2, 59, 250, 0, 124, 27, 42, 17, 29, 29, 1, 2, 44, 40, 40, 108, 62, 62, 135, 89, 21, 57, 115, 51, 39, 66, 23, 24, 26, 1, 1, 27, 24, 21, 58, 36, 1, 220, 36, 62, 23, 22, 24, 1, 1, 28, 25, 26, 61, 36, 51, 110, 0, 1, 0, 122, 255, 233, 4, 44, 4, 81, 0, 60, 0, 0, 101, 38, 38, 39, 38, 38, 39, 38, 52, 55, 55, 54, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 23, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 7, 6, 6, 7, 6, 6, 2, 21, 53, 77, 27, 27, 32, 7, 8, 5, 5, 7, 29, 22, 21, 58, 37, 39, 95, 57, 52, 82, 29, 28, 28, 2, 170, 4, 54, 50, 51, 142, 84, 116, 193, 70, 71, 91, 14, 5, 5, 5, 11, 16, 65, 45, 48, 130, 83, 79, 160, 66, 66, 90, 9, 171, 11, 56, 39, 40, 96, 129, 1, 36, 29, 28, 77, 43, 42, 90, 43, 42, 49, 97, 43, 43, 74, 27, 29, 31, 2, 2, 38, 32, 33, 86, 50, 1, 85, 143, 52, 51, 60, 2, 3, 85, 73, 77, 200, 110, 43, 56, 109, 50, 67, 117, 43, 43, 51, 2, 2, 51, 48, 47, 135, 83, 1, 49, 79, 27, 28, 29, 0, 0, 2, 0, 118, 255, 235, 4, 160, 6, 0, 0, 35, 0, 64, 0, 0, 83, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 7, 51, 1, 35, 3, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 23, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 23, 3, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 39, 38, 52, 126, 2, 6, 6, 14, 14, 51, 40, 39, 109, 70, 56, 101, 45, 29, 55, 25, 19, 164, 1, 11, 181, 104, 20, 46, 25, 40, 91, 50, 77, 130, 52, 53, 83, 30, 30, 38, 170, 3, 9, 51, 43, 43, 124, 84, 38, 65, 27, 27, 41, 15, 87, 22, 50, 28, 36, 86, 50, 51, 74, 25, 25, 28, 6, 7, 2, 31, 21, 59, 124, 59, 60, 107, 41, 41, 49, 2, 1, 24, 25, 16, 43, 27, 114, 6, 0, 253, 206, 26, 40, 15, 23, 23, 1, 2, 44, 40, 40, 108, 63, 63, 136, 88, 21, 72, 145, 59, 58, 72, 3, 1, 21, 19, 19, 55, 35, 254, 7, 30, 53, 20, 25, 28, 2, 1, 36, 30, 29, 76, 43, 42, 88, 0, 0, 2, 0, 108, 255, 234, 4, 43, 4, 80, 0, 36, 0, 50, 0, 0, 69, 22, 54, 55, 39, 6, 6, 39, 38, 38, 39, 38, 38, 55, 33, 55, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 19, 22, 22, 23, 22, 22, 7, 7, 37, 54, 54, 55, 54, 54, 2, 28, 126, 237, 74, 104, 64, 159, 94, 73, 106, 32, 32, 25, 8, 2, 233, 13, 13, 30, 45, 45, 154, 112, 77, 139, 59, 60, 97, 36, 37, 46, 8, 5, 9, 47, 54, 54, 167, 242, 59, 88, 28, 28, 20, 9, 4, 253, 204, 21, 64, 44, 43, 112, 20, 2, 105, 104, 88, 66, 80, 3, 2, 62, 50, 50, 126, 66, 83, 100, 189, 74, 74, 91, 3, 2, 42, 38, 39, 106, 63, 63, 139, 71, 43, 104, 186, 71, 71, 86, 3, 200, 2, 51, 41, 41, 104, 55, 18, 2, 58, 114, 44, 44, 53, 0, 1, 0, 205, 0, 0, 4, 233, 6, 45, 0, 29, 0, 0, 97, 51, 19, 33, 55, 33, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 55, 38, 38, 39, 38, 6, 7, 6, 6, 7, 7, 33, 7, 33, 1, 76, 182, 163, 1, 148, 25, 254, 107, 11, 10, 49, 39, 39, 104, 65, 52, 101, 49, 37, 63, 125, 65, 100, 163, 60, 61, 77, 13, 11, 254, 224, 26, 1, 34, 3, 171, 143, 77, 63, 99, 35, 34, 36, 1, 1, 20, 17, 152, 16, 24, 1, 1, 59, 55, 56, 157, 96, 76, 143, 0, 2, 0, 45, 254, 82, 4, 82, 4, 81, 0, 53, 0, 82, 0, 0, 83, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 7, 22, 22, 23, 22, 54, 55, 54, 54, 55, 19, 35, 7, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 23, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 23, 3, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 39, 38, 52, 127, 2, 7, 6, 14, 13, 51, 40, 39, 109, 71, 56, 101, 44, 28, 51, 24, 20, 13, 57, 42, 43, 113, 69, 84, 129, 47, 103, 62, 199, 108, 105, 175, 67, 66, 85, 14, 180, 166, 35, 18, 45, 25, 40, 97, 53, 78, 129, 53, 53, 81, 30, 30, 37, 169, 3, 10, 50, 43, 42, 124, 84, 44, 72, 28, 22, 35, 12, 85, 26, 61, 35, 32, 76, 43, 52, 73, 25, 25, 29, 6, 6, 2, 31, 21, 59, 125, 59, 60, 107, 40, 41, 49, 2, 1, 24, 25, 15, 40, 24, 95, 65, 108, 38, 38, 41, 2, 2, 80, 67, 111, 90, 97, 2, 3, 65, 60, 59, 168, 101, 4, 35, 119, 27, 43, 16, 27, 26, 1, 2, 44, 40, 40, 108, 63, 63, 137, 88, 21, 72, 145, 59, 58, 72, 3, 1, 27, 23, 19, 52, 31, 254, 13, 37, 61, 21, 19, 21, 1, 2, 36, 30, 29, 77, 42, 42, 88, 0, 1, 0, 64, 0, 0, 4, 32, 6, 0, 0, 31, 0, 0, 65, 19, 35, 1, 51, 19, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 3, 51, 19, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 1, 140, 116, 181, 254, 245, 181, 137, 28, 67, 38, 37, 83, 46, 59, 77, 22, 22, 12, 6, 115, 181, 114, 9, 24, 36, 36, 124, 92, 54, 97, 43, 44, 77, 3, 152, 2, 104, 250, 0, 3, 19, 34, 58, 22, 21, 23, 1, 2, 41, 35, 36, 93, 53, 253, 84, 2, 169, 82, 151, 58, 58, 70, 2, 1, 27, 24, 24, 68, 0, 0, 2, 0, 92, 0, 0, 3, 233, 5, 198, 0, 9, 0, 21, 0, 0, 65, 7, 33, 3, 33, 7, 33, 55, 33, 19, 3, 20, 22, 55, 54, 54, 53, 52, 38, 7, 6, 6, 1, 24, 28, 1, 101, 132, 254, 156, 29, 3, 112, 29, 254, 169, 160, 155, 61, 47, 48, 60, 60, 47, 48, 60, 4, 58, 161, 253, 7, 160, 160, 3, 154, 1, 25, 48, 57, 2, 2, 59, 48, 49, 60, 2, 2, 63, 0, 2, 0, 35, 254, 73, 3, 196, 5, 198, 0, 23, 0, 35, 0, 0, 65, 7, 33, 3, 6, 6, 7, 6, 6, 39, 38, 38, 39, 7, 22, 22, 51, 50, 54, 55, 54, 54, 55, 19, 3, 6, 22, 55, 54, 54, 55, 52, 38, 7, 6, 6, 1, 117, 28, 1, 95, 158, 9, 47, 37, 37, 103, 65, 45, 89, 45, 26, 53, 103, 54, 101, 163, 60, 60, 76, 14, 185, 156, 1, 60, 48, 48, 60, 1, 61, 48, 48, 59, 4, 58, 161, 252, 95, 62, 102, 36, 37, 40, 1, 1, 7, 8, 154, 8, 9, 61, 57, 56, 160, 98, 4, 65, 1, 26, 48, 58, 2, 2, 60, 48, 48, 60, 2, 2, 62, 0, 1, 0, 66, 0, 0, 4, 100, 6, 0, 0, 12, 0, 0, 65, 1, 51, 1, 1, 35, 1, 7, 19, 35, 1, 51, 19, 1, 218, 1, 41, 215, 254, 136, 2, 2, 236, 254, 110, 133, 162, 182, 254, 245, 182, 63, 1, 247, 254, 9, 2, 110, 1, 204, 254, 159, 123, 3, 162, 250, 0, 1, 110, 0, 0, 1, 0, 92, 0, 0, 3, 233, 6, 0, 0, 9, 0, 0, 65, 7, 33, 3, 33, 7, 33, 55, 33, 19, 1, 103, 29, 1, 102, 211, 254, 156, 29, 3, 112, 29, 254, 169, 239, 6, 0, 161, 251, 65, 160, 160, 5, 96, 0, 1, 255, 242, 0, 0, 4, 117, 4, 79, 0, 52, 0, 0, 65, 7, 3, 51, 19, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 3, 51, 19, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 7, 3, 51, 19, 54, 38, 39, 38, 38, 39, 34, 6, 7, 38, 38, 39, 38, 38, 35, 38, 6, 7, 1, 78, 161, 187, 172, 149, 12, 29, 16, 18, 45, 26, 30, 38, 11, 10, 5, 3, 137, 172, 142, 6, 24, 16, 20, 52, 30, 31, 41, 11, 10, 6, 3, 136, 172, 135, 5, 15, 23, 24, 84, 63, 70, 106, 42, 9, 35, 23, 24, 56, 31, 72, 108, 42, 4, 59, 1, 251, 198, 3, 94, 19, 31, 10, 12, 12, 1, 1, 22, 18, 18, 47, 27, 252, 212, 3, 66, 23, 38, 14, 18, 19, 21, 18, 19, 49, 28, 252, 213, 3, 40, 55, 105, 42, 41, 50, 1, 63, 52, 30, 44, 14, 14, 13, 1, 66, 57, 0, 1, 0, 64, 0, 0, 4, 31, 4, 79, 0, 31, 0, 0, 115, 51, 19, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 3, 51, 19, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 55, 7, 64, 181, 135, 27, 65, 37, 37, 85, 47, 60, 78, 22, 21, 11, 6, 115, 181, 113, 12, 26, 36, 37, 124, 91, 54, 98, 44, 44, 78, 33, 23, 161, 3, 9, 36, 63, 23, 22, 25, 1, 1, 41, 35, 35, 94, 55, 253, 84, 2, 164, 82, 161, 57, 56, 68, 2, 1, 25, 24, 24, 68, 40, 161, 1, 0, 2, 0, 99, 255, 233, 4, 48, 4, 81, 0, 31, 0, 57, 0, 0, 83, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 23, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 110, 3, 8, 15, 24, 16, 49, 31, 49, 136, 87, 118, 193, 71, 71, 89, 14, 2, 8, 14, 22, 18, 59, 37, 45, 131, 81, 116, 187, 70, 76, 92, 164, 3, 10, 54, 45, 45, 128, 84, 78, 96, 25, 25, 9, 7, 2, 5, 60, 45, 46, 128, 83, 70, 96, 24, 30, 14, 2, 32, 22, 74, 142, 63, 43, 78, 34, 48, 58, 2, 3, 90, 77, 76, 202, 109, 23, 72, 142, 63, 52, 90, 34, 42, 51, 2, 3, 87, 71, 78, 211, 136, 22, 72, 147, 59, 59, 73, 3, 3, 77, 58, 59, 138, 63, 22, 57, 160, 58, 58, 72, 3, 3, 64, 49, 61, 148, 0, 0, 2, 255, 247, 254, 96, 4, 28, 4, 79, 0, 35, 0, 67, 0, 0, 65, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 55, 7, 1, 51, 19, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 39, 7, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 39, 19, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 23, 22, 22, 4, 19, 2, 7, 4, 12, 13, 49, 39, 40, 110, 74, 58, 104, 46, 29, 54, 24, 19, 164, 254, 252, 181, 97, 20, 46, 25, 42, 97, 51, 68, 117, 49, 64, 98, 31, 26, 33, 172, 2, 6, 25, 19, 22, 63, 43, 36, 90, 53, 38, 66, 26, 26, 42, 15, 91, 22, 49, 28, 35, 83, 48, 51, 73, 26, 19, 27, 10, 13, 3, 2, 24, 21, 61, 127, 60, 60, 106, 41, 40, 48, 2, 1, 26, 26, 16, 44, 27, 119, 1, 250, 38, 2, 9, 24, 39, 14, 24, 24, 1, 1, 35, 32, 41, 130, 74, 58, 126, 83, 21, 45, 93, 44, 49, 90, 30, 27, 29, 1, 2, 19, 18, 18, 53, 35, 2, 11, 29, 50, 18, 25, 26, 1, 1, 34, 28, 23, 54, 35, 50, 112, 0, 0, 2, 0, 118, 254, 96, 4, 81, 4, 80, 0, 35, 0, 67, 0, 0, 83, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 3, 51, 1, 35, 7, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 23, 55, 54, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 23, 3, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 39, 38, 52, 127, 2, 7, 6, 14, 13, 52, 40, 40, 110, 72, 49, 90, 41, 31, 59, 27, 98, 181, 1, 4, 168, 32, 21, 50, 28, 38, 89, 47, 79, 131, 53, 53, 82, 30, 30, 38, 169, 3, 5, 23, 17, 21, 63, 41, 38, 94, 57, 37, 65, 26, 26, 41, 16, 94, 26, 58, 33, 33, 74, 42, 52, 74, 25, 25, 29, 6, 7, 2, 31, 21, 60, 126, 59, 60, 106, 40, 41, 48, 2, 1, 19, 19, 15, 40, 26, 253, 254, 5, 218, 108, 28, 42, 15, 21, 21, 1, 2, 43, 39, 39, 108, 63, 63, 137, 90, 21, 43, 88, 42, 49, 93, 32, 30, 33, 2, 1, 20, 19, 18, 51, 32, 253, 232, 32, 53, 19, 19, 21, 1, 1, 37, 30, 30, 78, 43, 43, 89, 0, 1, 0, 215, 0, 0, 4, 97, 4, 80, 0, 24, 0, 0, 65, 34, 6, 7, 6, 6, 7, 55, 55, 35, 3, 51, 19, 54, 54, 55, 54, 54, 51, 22, 22, 23, 55, 38, 38, 3, 163, 60, 107, 48, 48, 86, 38, 6, 24, 172, 187, 181, 120, 33, 85, 52, 41, 99, 56, 49, 96, 48, 46, 46, 96, 4, 80, 27, 25, 26, 72, 44, 32, 140, 251, 198, 2, 183, 60, 92, 28, 23, 23, 1, 14, 11, 180, 17, 11, 0, 0, 1, 0, 124, 255, 234, 4, 40, 4, 79, 0, 79, 0, 0, 65, 6, 6, 7, 6, 6, 39, 34, 38, 39, 38, 38, 39, 39, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 38, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 21, 23, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 22, 23, 22, 22, 3, 50, 7, 57, 40, 40, 90, 40, 49, 86, 32, 32, 38, 1, 180, 2, 69, 58, 58, 149, 80, 76, 160, 66, 66, 88, 4, 2, 30, 27, 27, 75, 42, 42, 88, 41, 33, 79, 33, 33, 41, 6, 6, 52, 37, 37, 85, 40, 42, 77, 30, 29, 34, 179, 1, 62, 53, 53, 141, 76, 65, 132, 63, 72, 108, 3, 3, 67, 54, 47, 112, 54, 33, 73, 37, 23, 41, 16, 16, 16, 1, 38, 47, 64, 18, 19, 16, 1, 25, 25, 24, 76, 52, 1, 87, 131, 44, 45, 46, 1, 2, 37, 40, 39, 126, 87, 51, 82, 32, 31, 47, 18, 18, 26, 10, 7, 20, 17, 17, 57, 45, 45, 63, 20, 19, 18, 1, 1, 24, 23, 24, 68, 45, 1, 83, 125, 43, 42, 44, 2, 1, 30, 31, 35, 138, 91, 75, 105, 35, 31, 41, 14, 8, 18, 15, 9, 24, 16, 17, 46, 0, 1, 0, 196, 255, 235, 4, 54, 5, 64, 0, 29, 0, 0, 65, 35, 3, 33, 7, 33, 3, 6, 22, 23, 22, 22, 23, 22, 54, 55, 39, 6, 6, 39, 38, 38, 39, 38, 38, 55, 19, 33, 55, 33, 2, 212, 182, 46, 254, 237, 25, 1, 20, 98, 7, 25, 34, 34, 112, 81, 71, 154, 63, 17, 54, 109, 55, 48, 63, 17, 17, 11, 5, 98, 1, 144, 25, 254, 112, 5, 64, 254, 250, 143, 253, 180, 74, 133, 50, 51, 61, 1, 2, 22, 35, 133, 12, 20, 2, 1, 34, 28, 28, 76, 44, 2, 77, 143, 0, 1, 0, 141, 255, 234, 4, 84, 4, 58, 0, 28, 0, 0, 69, 22, 54, 55, 7, 51, 19, 35, 3, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 54, 55, 19, 35, 3, 6, 22, 23, 22, 22, 1, 189, 105, 166, 64, 23, 163, 188, 182, 135, 26, 62, 36, 40, 91, 52, 63, 68, 14, 15, 2, 6, 107, 181, 108, 9, 17, 34, 33, 123, 20, 2, 92, 79, 149, 4, 58, 252, 247, 40, 62, 22, 23, 23, 2, 2, 56, 43, 43, 105, 50, 2, 134, 253, 125, 83, 163, 65, 65, 81, 0, 0, 1, 0, 174, 0, 0, 4, 148, 4, 59, 0, 8, 0, 0, 97, 51, 1, 35, 1, 7, 39, 3, 7, 1, 180, 138, 2, 86, 192, 254, 90, 29, 5, 176, 174, 4, 58, 252, 209, 69, 68, 3, 49, 1, 0, 1, 0, 132, 0, 0, 4, 218, 4, 58, 0, 18, 0, 0, 115, 51, 1, 55, 7, 19, 51, 1, 35, 3, 7, 55, 3, 35, 1, 7, 55, 3, 35, 168, 143, 1, 17, 58, 3, 50, 142, 1, 155, 164, 239, 53, 2, 47, 117, 254, 228, 55, 6, 3, 156, 2, 141, 174, 154, 253, 95, 4, 58, 253, 70, 158, 154, 2, 190, 253, 88, 159, 138, 2, 189, 0, 0, 1, 0, 6, 0, 0, 4, 152, 4, 58, 0, 11, 0, 0, 65, 3, 35, 1, 1, 51, 1, 19, 51, 1, 1, 35, 2, 97, 214, 197, 1, 47, 254, 17, 223, 1, 98, 226, 196, 254, 200, 1, 227, 224, 2, 170, 1, 144, 253, 241, 253, 213, 1, 155, 254, 101, 2, 27, 2, 31, 0, 1, 255, 228, 254, 72, 4, 188, 4, 58, 0, 26, 0, 0, 65, 3, 35, 1, 7, 6, 6, 7, 6, 6, 7, 34, 38, 39, 7, 22, 22, 51, 50, 54, 55, 54, 54, 55, 1, 35, 1, 2, 4, 169, 193, 1, 15, 103, 19, 44, 27, 27, 66, 39, 21, 44, 22, 41, 29, 59, 29, 65, 111, 47, 46, 76, 30, 2, 236, 211, 254, 48, 1, 119, 2, 195, 252, 4, 156, 29, 65, 27, 27, 36, 1, 6, 2, 153, 5, 11, 45, 39, 38, 98, 52, 4, 226, 252, 197, 0, 0, 1, 0, 61, 0, 0, 4, 70, 4, 58, 0, 9, 0, 0, 101, 1, 55, 33, 7, 33, 1, 7, 33, 55, 1, 65, 2, 239, 22, 252, 169, 24, 2, 100, 253, 25, 23, 3, 130, 25, 151, 3, 24, 139, 153, 252, 239, 144, 151, 0, 0, 3, 0, 127, 255, 234, 4, 89, 5, 199, 0, 37, 0, 57, 0, 77, 0, 0, 65, 19, 54, 54, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 3, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 1, 22, 22, 23, 22, 22, 7, 1, 54, 54, 55, 19, 54, 54, 55, 54, 54, 55, 54, 54, 3, 38, 38, 39, 38, 38, 55, 1, 6, 6, 7, 7, 6, 6, 7, 6, 6, 7, 6, 6, 4, 27, 54, 5, 3, 1, 2, 38, 36, 43, 150, 109, 85, 140, 56, 57, 88, 32, 33, 42, 11, 54, 9, 4, 15, 14, 56, 45, 44, 123, 80, 67, 115, 49, 75, 113, 39, 32, 42, 254, 197, 64, 85, 26, 25, 20, 1, 253, 146, 4, 3, 5, 44, 7, 24, 18, 20, 55, 35, 36, 94, 150, 63, 85, 25, 26, 21, 1, 2, 107, 6, 8, 5, 35, 7, 23, 17, 21, 67, 46, 33, 83, 2, 47, 1, 83, 37, 80, 32, 71, 144, 57, 70, 85, 3, 2, 43, 39, 40, 110, 65, 65, 145, 74, 254, 171, 69, 138, 63, 64, 110, 41, 41, 49, 2, 2, 26, 25, 39, 130, 78, 64, 145, 3, 72, 2, 48, 40, 40, 104, 57, 254, 80, 16, 26, 29, 1, 10, 47, 92, 42, 45, 76, 28, 28, 30, 251, 83, 2, 48, 39, 39, 102, 56, 1, 172, 38, 43, 32, 213, 45, 90, 41, 52, 90, 29, 21, 22, 0, 1, 1, 26, 0, 0, 3, 127, 5, 176, 0, 6, 0, 0, 97, 19, 35, 5, 7, 37, 3, 2, 136, 247, 19, 253, 206, 32, 1, 140, 211, 5, 176, 208, 177, 144, 251, 65, 0, 1, 0, 15, 0, 0, 4, 26, 5, 198, 0, 42, 0, 0, 97, 55, 33, 1, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 1, 7, 3, 174, 24, 253, 65, 1, 190, 53, 113, 48, 47, 67, 6, 7, 52, 51, 52, 146, 86, 101, 177, 68, 68, 86, 10, 180, 9, 50, 41, 40, 110, 71, 53, 82, 27, 27, 22, 6, 8, 59, 41, 41, 94, 41, 253, 230, 22, 151, 1, 168, 50, 112, 63, 63, 140, 77, 88, 145, 52, 52, 57, 2, 2, 65, 59, 60, 167, 100, 1, 66, 111, 40, 39, 43, 2, 2, 41, 34, 34, 91, 51, 62, 112, 51, 51, 91, 41, 253, 245, 141, 0, 0, 1, 0, 47, 255, 234, 4, 31, 5, 198, 0, 76, 0, 0, 65, 7, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 39, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 35, 1, 160, 27, 140, 60, 96, 32, 32, 30, 7, 7, 52, 41, 41, 109, 65, 57, 88, 28, 29, 27, 4, 180, 5, 56, 53, 52, 150, 90, 99, 176, 68, 67, 85, 9, 4, 16, 21, 22, 73, 51, 52, 94, 38, 37, 48, 5, 8, 47, 49, 50, 145, 90, 91, 167, 65, 66, 85, 10, 179, 10, 50, 39, 38, 100, 59, 57, 81, 26, 25, 18, 6, 8, 59, 45, 45, 113, 61, 3, 49, 150, 1, 2, 34, 32, 32, 94, 62, 64, 105, 36, 37, 39, 2, 1, 38, 33, 33, 92, 56, 1, 92, 148, 52, 53, 58, 2, 2, 59, 57, 57, 162, 101, 54, 99, 43, 43, 67, 22, 23, 64, 41, 41, 101, 60, 91, 148, 53, 52, 59, 2, 1, 56, 52, 53, 150, 93, 1, 57, 93, 33, 33, 36, 1, 2, 37, 33, 33, 91, 54, 65, 97, 32, 33, 34, 0, 2, 0, 27, 0, 0, 4, 51, 5, 176, 0, 10, 0, 14, 0, 0, 65, 19, 35, 1, 7, 33, 3, 51, 19, 51, 55, 33, 1, 55, 3, 3, 110, 168, 199, 252, 225, 21, 2, 132, 59, 181, 59, 197, 26, 252, 208, 2, 19, 39, 132, 1, 233, 3, 199, 252, 25, 119, 254, 174, 1, 82, 151, 2, 153, 58, 253, 45, 0, 1, 0, 143, 255, 233, 4, 154, 5, 176, 0, 48, 0, 0, 83, 23, 54, 54, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 39, 35, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 38, 6, 7, 19, 33, 55, 33, 254, 149, 56, 114, 73, 65, 90, 26, 26, 18, 6, 8, 47, 39, 40, 114, 73, 57, 85, 28, 29, 30, 3, 169, 3, 55, 51, 50, 143, 90, 110, 180, 66, 66, 80, 10, 9, 32, 42, 43, 141, 101, 64, 119, 55, 116, 2, 59, 32, 253, 41, 2, 221, 39, 43, 49, 2, 2, 56, 43, 44, 111, 58, 66, 124, 48, 48, 56, 2, 2, 39, 34, 34, 91, 54, 88, 147, 53, 54, 60, 2, 3, 74, 66, 66, 182, 105, 90, 171, 68, 67, 82, 2, 1, 31, 33, 1, 133, 180, 0, 2, 0, 117, 255, 233, 3, 249, 5, 178, 0, 45, 0, 73, 0, 0, 65, 35, 34, 6, 7, 6, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 54, 54, 55, 54, 54, 55, 54, 54, 23, 51, 1, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 39, 38, 52, 55, 55, 54, 54, 55, 54, 54, 3, 192, 20, 125, 207, 83, 84, 129, 47, 47, 62, 16, 12, 11, 33, 47, 47, 155, 111, 109, 176, 64, 64, 77, 9, 8, 32, 42, 42, 138, 98, 49, 92, 42, 37, 69, 30, 20, 52, 32, 39, 101, 60, 59, 140, 82, 12, 254, 198, 65, 83, 24, 23, 13, 6, 7, 46, 39, 39, 110, 71, 49, 72, 24, 24, 29, 7, 7, 4, 8, 23, 64, 40, 39, 93, 5, 178, 61, 55, 55, 152, 92, 93, 212, 113, 87, 97, 196, 80, 80, 102, 3, 3, 80, 70, 69, 184, 102, 87, 168, 67, 66, 83, 2, 1, 23, 21, 19, 53, 31, 63, 116, 49, 60, 96, 35, 31, 34, 1, 254, 21, 2, 62, 47, 48, 115, 54, 63, 124, 49, 49, 58, 2, 2, 40, 32, 32, 82, 44, 43, 88, 37, 64, 43, 76, 28, 28, 32, 0, 1, 0, 191, 0, 0, 4, 174, 5, 176, 0, 6, 0, 0, 65, 55, 33, 7, 33, 1, 51, 4, 156, 18, 252, 68, 26, 2, 249, 252, 238, 198, 5, 62, 114, 162, 250, 242, 0, 3, 0, 128, 255, 234, 4, 104, 5, 198, 0, 47, 0, 71, 0, 95, 0, 0, 65, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 6, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 1, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 19, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 4, 97, 7, 49, 49, 50, 141, 85, 93, 163, 62, 63, 77, 7, 4, 21, 25, 18, 53, 33, 60, 104, 40, 40, 49, 6, 8, 55, 54, 54, 151, 89, 96, 175, 68, 68, 87, 8, 4, 19, 22, 23, 71, 46, 52, 92, 36, 35, 45, 254, 250, 6, 54, 42, 42, 109, 62, 57, 88, 28, 29, 24, 6, 7, 52, 42, 41, 110, 63, 57, 87, 29, 28, 25, 78, 6, 45, 36, 37, 97, 56, 51, 77, 24, 25, 20, 5, 6, 44, 36, 36, 96, 57, 51, 77, 25, 25, 21, 4, 61, 87, 142, 51, 51, 58, 2, 2, 56, 54, 54, 153, 94, 54, 101, 44, 33, 57, 23, 26, 71, 46, 46, 113, 68, 93, 148, 52, 53, 57, 2, 2, 57, 55, 54, 159, 99, 53, 100, 44, 44, 74, 27, 25, 68, 42, 42, 103, 253, 150, 62, 103, 36, 37, 40, 2, 1, 39, 34, 34, 94, 56, 61, 106, 39, 39, 42, 1, 2, 43, 36, 36, 97, 2, 110, 54, 95, 35, 36, 39, 1, 1, 39, 33, 32, 87, 48, 54, 97, 36, 35, 40, 1, 1, 40, 33, 34, 87, 0, 0, 2, 0, 195, 255, 254, 4, 61, 5, 197, 0, 48, 0, 76, 0, 0, 101, 35, 7, 51, 50, 54, 55, 54, 18, 55, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 6, 6, 7, 6, 6, 7, 6, 6, 19, 38, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 23, 22, 20, 7, 7, 6, 6, 7, 6, 6, 1, 30, 16, 16, 23, 166, 254, 92, 117, 135, 27, 9, 8, 4, 15, 15, 57, 44, 45, 121, 80, 70, 123, 52, 61, 94, 33, 27, 35, 6, 8, 31, 42, 42, 137, 98, 51, 93, 42, 37, 67, 30, 20, 52, 33, 42, 113, 73, 52, 123, 225, 65, 83, 22, 23, 13, 6, 7, 46, 39, 39, 111, 72, 50, 71, 24, 24, 29, 7, 6, 3, 7, 23, 65, 40, 40, 95, 163, 165, 99, 88, 110, 1, 76, 193, 67, 67, 139, 65, 64, 115, 43, 43, 52, 1, 1, 33, 31, 37, 106, 65, 54, 122, 64, 86, 169, 68, 68, 85, 2, 1, 21, 21, 19, 53, 33, 69, 120, 50, 63, 97, 29, 21, 22, 1, 222, 2, 65, 49, 49, 117, 53, 63, 126, 50, 50, 61, 2, 2, 41, 33, 33, 85, 45, 45, 88, 37, 59, 44, 79, 30, 30, 34, 0, 1, 1, 223, 2, 153, 3, 111, 5, 174, 0, 6, 0, 0, 65, 19, 35, 5, 7, 55, 3, 2, 235, 132, 22, 254, 157, 23, 219, 104, 2, 153, 3, 21, 113, 135, 56, 253, 171, 0, 0, 1, 1, 79, 2, 155, 3, 216, 5, 190, 0, 39, 0, 0, 65, 55, 33, 55, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 55, 54, 54, 55, 54, 54, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 1, 7, 3, 150, 23, 254, 133, 195, 35, 77, 33, 32, 44, 3, 3, 40, 35, 35, 95, 52, 62, 108, 42, 42, 53, 7, 155, 7, 25, 18, 20, 55, 34, 47, 54, 7, 4, 32, 22, 22, 48, 21, 254, 196, 21, 2, 155, 128, 145, 27, 64, 37, 37, 85, 49, 57, 86, 29, 28, 29, 1, 1, 36, 34, 35, 98, 62, 1, 29, 50, 17, 19, 22, 1, 1, 54, 48, 29, 54, 24, 24, 42, 18, 254, 247, 116, 0, 1, 1, 107, 2, 142, 3, 229, 5, 188, 0, 73, 0, 0, 65, 38, 38, 39, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 35, 38, 6, 7, 6, 6, 7, 51, 54, 54, 51, 50, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 39, 7, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 35, 38, 38, 39, 38, 38, 53, 35, 20, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 38, 3, 144, 14, 39, 24, 30, 55, 22, 22, 28, 2, 3, 44, 37, 38, 97, 49, 54, 100, 40, 41, 54, 6, 156, 16, 76, 50, 23, 41, 15, 15, 15, 3, 4, 32, 23, 23, 56, 27, 80, 11, 87, 27, 49, 19, 18, 19, 4, 4, 31, 22, 23, 54, 28, 27, 47, 16, 16, 17, 152, 43, 37, 36, 98, 54, 55, 112, 46, 45, 59, 2, 1, 19, 3, 246, 17, 25, 9, 13, 35, 22, 22, 56, 36, 57, 82, 27, 26, 26, 1, 27, 27, 28, 83, 57, 48, 45, 12, 12, 12, 37, 25, 31, 43, 14, 14, 14, 1, 1, 116, 1, 1, 10, 12, 12, 41, 31, 30, 44, 14, 15, 14, 1, 13, 13, 13, 38, 27, 58, 87, 29, 29, 30, 1, 1, 27, 30, 29, 91, 63, 36, 61, 0, 2, 1, 71, 2, 179, 3, 232, 5, 197, 0, 51, 0, 71, 0, 0, 65, 55, 38, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 23, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 7, 39, 34, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 51, 50, 54, 55, 6, 22, 39, 34, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 55, 51, 7, 6, 6, 7, 6, 6, 3, 13, 158, 7, 3, 8, 16, 19, 14, 8, 31, 31, 32, 96, 62, 57, 110, 44, 45, 61, 9, 156, 8, 29, 20, 20, 50, 29, 30, 41, 11, 11, 7, 3, 8, 138, 59, 123, 51, 51, 68, 3, 3, 30, 29, 29, 82, 50, 70, 116, 45, 1, 1, 181, 21, 40, 15, 15, 16, 3, 4, 38, 27, 27, 62, 29, 129, 19, 13, 32, 18, 29, 67, 2, 192, 1, 46, 89, 46, 105, 104, 105, 61, 101, 36, 36, 41, 1, 1, 26, 29, 29, 89, 61, 11, 28, 40, 13, 13, 11, 1, 1, 21, 18, 18, 49, 27, 53, 1, 22, 27, 28, 92, 70, 51, 81, 28, 29, 31, 58, 52, 24, 48, 97, 10, 11, 10, 34, 24, 34, 46, 14, 14, 13, 1, 110, 18, 30, 12, 19, 22, 0, 0, 2, 1, 77, 2, 176, 4, 2, 5, 198, 0, 25, 0, 51, 0, 0, 65, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 55, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 23, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 1, 96, 13, 6, 35, 38, 37, 113, 72, 76, 130, 50, 49, 64, 9, 13, 7, 34, 37, 38, 112, 72, 76, 131, 50, 50, 65, 141, 12, 6, 31, 25, 25, 69, 44, 42, 58, 18, 17, 13, 3, 13, 6, 31, 25, 25, 69, 43, 42, 59, 17, 17, 13, 4, 116, 116, 70, 121, 44, 45, 52, 2, 2, 48, 45, 45, 124, 74, 117, 70, 121, 45, 45, 52, 2, 2, 49, 45, 45, 125, 192, 120, 40, 72, 27, 27, 30, 1, 1, 33, 27, 27, 70, 37, 119, 40, 72, 27, 27, 31, 1, 1, 33, 27, 27, 69, 0, 3, 0, 154, 0, 0, 4, 81, 5, 177, 0, 6, 0, 49, 0, 53, 0, 0, 65, 19, 35, 5, 7, 55, 3, 1, 55, 33, 55, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 5, 7, 39, 1, 39, 1, 1, 140, 118, 19, 254, 192, 21, 198, 94, 3, 20, 21, 254, 171, 175, 32, 69, 29, 29, 40, 3, 2, 36, 31, 32, 85, 47, 56, 97, 38, 38, 47, 7, 140, 6, 25, 18, 18, 47, 29, 21, 34, 11, 12, 10, 3, 4, 29, 20, 19, 44, 18, 254, 227, 19, 247, 2, 146, 107, 253, 110, 2, 235, 2, 198, 102, 121, 50, 253, 231, 253, 21, 115, 131, 24, 58, 33, 33, 77, 44, 51, 78, 25, 26, 26, 1, 1, 33, 31, 31, 88, 56, 1, 28, 46, 16, 16, 17, 13, 12, 12, 34, 22, 26, 49, 21, 22, 38, 16, 239, 104, 223, 3, 177, 71, 252, 79, 0, 0, 4, 0, 167, 0, 0, 4, 59, 5, 181, 0, 6, 0, 17, 0, 21, 0, 25, 0, 0, 65, 19, 35, 5, 7, 55, 3, 1, 19, 35, 1, 7, 33, 7, 51, 55, 51, 55, 33, 55, 55, 3, 5, 1, 39, 1, 1, 153, 118, 19, 254, 192, 21, 198, 94, 2, 207, 76, 147, 254, 109, 11, 1, 70, 27, 139, 27, 93, 20, 254, 93, 219, 19, 51, 253, 249, 2, 146, 107, 253, 110, 2, 239, 2, 198, 102, 121, 50, 253, 231, 254, 30, 1, 185, 254, 54, 100, 152, 152, 117, 235, 27, 254, 250, 46, 3, 177, 71, 252, 79, 0, 4, 0, 106, 0, 0, 4, 91, 5, 186, 0, 10, 0, 14, 0, 88, 0, 92, 0, 0, 65, 19, 35, 1, 7, 33, 7, 51, 55, 51, 55, 33, 55, 55, 3, 1, 7, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 35, 38, 38, 39, 38, 38, 53, 35, 20, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 35, 38, 6, 7, 6, 6, 7, 51, 54, 54, 51, 50, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 19, 1, 39, 1, 3, 254, 76, 147, 254, 109, 11, 1, 70, 27, 139, 27, 93, 20, 254, 93, 219, 19, 51, 253, 201, 10, 78, 25, 44, 16, 17, 17, 3, 4, 28, 20, 20, 49, 25, 26, 44, 15, 12, 14, 137, 39, 33, 33, 88, 49, 49, 101, 41, 41, 53, 2, 1, 21, 21, 13, 31, 19, 27, 50, 19, 20, 25, 2, 3, 40, 33, 34, 87, 45, 48, 90, 37, 36, 49, 5, 140, 15, 68, 45, 21, 37, 13, 14, 13, 2, 4, 29, 21, 20, 51, 24, 8, 2, 146, 107, 253, 110, 1, 13, 1, 185, 254, 54, 100, 152, 152, 117, 235, 27, 254, 250, 3, 120, 104, 1, 1, 9, 11, 11, 37, 27, 27, 40, 13, 13, 13, 1, 13, 13, 12, 33, 23, 52, 79, 26, 26, 27, 1, 1, 25, 26, 27, 82, 56, 36, 58, 21, 12, 20, 7, 12, 31, 20, 20, 50, 33, 51, 74, 24, 24, 23, 1, 24, 25, 25, 75, 51, 43, 41, 11, 11, 11, 33, 22, 28, 39, 13, 12, 13, 1, 252, 90, 3, 177, 71, 252, 79, 0, 0, 2, 255, 178, 0, 0, 5, 6, 5, 176, 0, 15, 0, 18, 0, 0, 97, 55, 33, 19, 33, 55, 33, 19, 33, 55, 33, 1, 51, 19, 33, 3, 3, 1, 3, 4, 32, 27, 254, 165, 91, 1, 37, 26, 254, 220, 78, 1, 71, 27, 253, 200, 252, 228, 201, 182, 1, 39, 60, 147, 1, 100, 119, 151, 2, 19, 151, 1, 215, 152, 250, 80, 1, 97, 254, 159, 2, 15, 2, 179, 253, 77, 0, 3, 255, 241, 255, 235, 4, 163, 4, 80, 0, 78, 0, 93, 0, 113, 0, 0, 69, 50, 54, 55, 54, 54, 55, 39, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 55, 55, 33, 55, 54, 38, 39, 38, 38, 39, 38, 6, 7, 38, 38, 35, 38, 6, 7, 6, 6, 7, 23, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 7, 39, 34, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 22, 22, 23, 22, 22, 19, 22, 22, 23, 22, 22, 7, 7, 33, 55, 54, 54, 55, 54, 54, 1, 34, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 55, 51, 3, 6, 6, 7, 6, 6, 3, 8, 35, 74, 36, 36, 67, 28, 35, 24, 49, 26, 23, 49, 27, 62, 77, 19, 20, 8, 6, 12, 1, 233, 34, 13, 26, 33, 33, 110, 79, 72, 119, 51, 43, 117, 66, 71, 119, 44, 45, 55, 7, 175, 6, 23, 19, 18, 53, 36, 35, 41, 10, 9, 5, 5, 26, 66, 86, 155, 60, 60, 75, 6, 3, 28, 32, 31, 96, 65, 43, 77, 34, 33, 60, 27, 19, 57, 35, 34, 79, 155, 37, 49, 14, 14, 10, 3, 18, 254, 188, 12, 7, 31, 25, 24, 72, 253, 207, 31, 45, 14, 15, 11, 3, 6, 46, 36, 35, 89, 49, 54, 52, 16, 34, 19, 19, 40, 19, 7, 10, 9, 32, 23, 138, 15, 27, 9, 8, 9, 48, 39, 38, 100, 53, 87, 213, 82, 142, 52, 51, 63, 2, 1, 58, 49, 63, 44, 1, 42, 39, 40, 113, 70, 8, 31, 58, 23, 22, 26, 1, 1, 31, 24, 24, 59, 28, 149, 1, 42, 44, 45, 135, 93, 61, 108, 40, 40, 47, 1, 1, 21, 20, 19, 54, 32, 38, 54, 17, 18, 17, 3, 203, 2, 33, 26, 27, 64, 31, 129, 70, 41, 87, 36, 35, 44, 252, 200, 23, 20, 20, 52, 29, 50, 82, 29, 29, 33, 1, 254, 217, 13, 27, 10, 11, 12, 0, 2, 0, 56, 255, 236, 5, 14, 5, 198, 0, 35, 0, 58, 0, 0, 97, 55, 33, 19, 33, 55, 33, 19, 33, 55, 33, 38, 38, 39, 34, 6, 7, 6, 6, 7, 6, 6, 7, 3, 6, 6, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 39, 38, 38, 39, 38, 38, 39, 38, 54, 55, 19, 54, 54, 55, 54, 54, 23, 50, 22, 23, 3, 34, 6, 4, 27, 27, 254, 116, 92, 1, 77, 27, 254, 178, 83, 1, 128, 27, 254, 94, 64, 126, 65, 90, 145, 55, 35, 57, 22, 31, 41, 10, 72, 5, 2, 4, 4, 23, 20, 37, 138, 108, 65, 127, 65, 250, 48, 62, 18, 19, 15, 1, 1, 7, 4, 71, 9, 36, 33, 33, 106, 80, 24, 48, 23, 213, 24, 49, 151, 2, 13, 152, 1, 220, 152, 4, 17, 1, 56, 48, 33, 77, 43, 60, 137, 71, 254, 61, 43, 89, 42, 47, 89, 39, 74, 94, 3, 2, 16, 4, 133, 2, 37, 29, 29, 75, 40, 40, 81, 35, 1, 199, 67, 134, 53, 53, 65, 1, 4, 2, 251, 92, 1, 0, 0, 3, 0, 14, 255, 234, 4, 156, 4, 80, 0, 76, 0, 114, 0, 135, 0, 0, 65, 38, 6, 7, 6, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 39, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 53, 52, 54, 55, 55, 5, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 38, 38, 39, 38, 38, 1, 55, 54, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 21, 20, 6, 7, 7, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 53, 52, 54, 37, 55, 54, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 23, 22, 20, 7, 7, 1, 191, 71, 113, 43, 28, 48, 18, 31, 38, 9, 28, 6, 1, 10, 9, 39, 32, 31, 91, 61, 64, 106, 45, 13, 24, 11, 14, 35, 20, 35, 86, 47, 37, 73, 33, 28, 52, 22, 44, 20, 43, 23, 24, 53, 28, 34, 42, 12, 13, 9, 6, 3, 10, 1, 184, 28, 5, 1, 9, 9, 37, 30, 30, 86, 57, 45, 78, 34, 24, 43, 20, 13, 35, 20, 34, 83, 254, 223, 26, 3, 12, 10, 9, 29, 21, 21, 57, 37, 34, 44, 13, 12, 10, 5, 3, 27, 4, 11, 9, 10, 29, 21, 21, 57, 37, 35, 43, 12, 13, 9, 6, 2, 8, 2, 5, 12, 10, 9, 27, 19, 18, 50, 32, 24, 34, 11, 8, 11, 4, 9, 3, 12, 4, 79, 1, 44, 39, 25, 66, 34, 60, 133, 65, 197, 50, 106, 50, 51, 92, 34, 35, 42, 1, 2, 43, 38, 11, 23, 13, 24, 37, 14, 25, 24, 1, 1, 12, 13, 11, 34, 22, 127, 14, 25, 9, 10, 10, 1, 1, 33, 26, 26, 64, 33, 33, 60, 22, 67, 1, 181, 46, 99, 47, 47, 84, 32, 31, 38, 1, 1, 27, 23, 16, 41, 22, 24, 39, 15, 24, 26, 253, 105, 200, 27, 68, 36, 35, 67, 26, 25, 30, 1, 1, 35, 27, 28, 67, 34, 35, 63, 22, 200, 27, 68, 35, 35, 67, 25, 26, 31, 2, 1, 35, 27, 27, 68, 34, 34, 63, 225, 12, 22, 62, 34, 33, 65, 26, 26, 30, 1, 1, 18, 15, 10, 25, 13, 33, 75, 28, 85, 0, 0, 2, 0, 40, 255, 234, 4, 138, 5, 240, 0, 49, 0, 78, 0, 0, 65, 38, 38, 39, 55, 39, 7, 38, 38, 39, 7, 22, 22, 23, 7, 23, 37, 22, 22, 7, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 55, 55, 54, 54, 1, 6, 6, 39, 38, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 23, 50, 22, 23, 22, 22, 23, 7, 7, 6, 6, 7, 6, 6, 4, 22, 8, 53, 47, 224, 58, 250, 54, 126, 72, 71, 42, 76, 35, 253, 58, 1, 31, 50, 46, 2, 27, 63, 35, 34, 76, 40, 112, 191, 72, 72, 89, 10, 9, 50, 54, 54, 159, 99, 87, 148, 62, 54, 88, 36, 39, 50, 11, 8, 9, 4, 254, 198, 47, 133, 89, 66, 97, 30, 30, 23, 8, 8, 56, 46, 46, 124, 76, 40, 84, 38, 38, 62, 19, 7, 10, 7, 22, 17, 13, 34, 3, 144, 95, 187, 90, 115, 109, 133, 51, 71, 23, 157, 16, 38, 28, 133, 107, 152, 77, 172, 91, 29, 45, 16, 16, 17, 1, 3, 80, 71, 71, 191, 108, 97, 172, 65, 65, 77, 3, 2, 47, 42, 38, 104, 58, 69, 156, 80, 63, 71, 139, 253, 196, 65, 81, 3, 2, 59, 46, 46, 116, 60, 69, 133, 52, 52, 63, 1, 15, 16, 17, 53, 39, 52, 64, 42, 87, 43, 33, 64, 0, 0, 2, 0, 58, 0, 0, 4, 92, 5, 176, 0, 18, 0, 33, 0, 0, 65, 35, 3, 51, 19, 5, 50, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 37, 7, 5, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 35, 37, 1, 236, 181, 253, 181, 55, 1, 23, 101, 186, 73, 72, 94, 9, 8, 57, 56, 56, 157, 93, 255, 0, 26, 1, 23, 58, 94, 31, 31, 27, 7, 9, 63, 47, 47, 120, 65, 254, 255, 5, 176, 250, 80, 1, 57, 1, 55, 55, 54, 162, 107, 98, 153, 53, 53, 57, 3, 1, 152, 1, 2, 40, 34, 35, 96, 59, 68, 104, 36, 36, 37, 2, 0, 2, 255, 247, 254, 96, 4, 28, 6, 22, 0, 38, 0, 70, 0, 0, 101, 54, 54, 55, 54, 54, 55, 54, 54, 55, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 19, 35, 1, 51, 19, 22, 22, 23, 22, 22, 23, 22, 54, 39, 38, 38, 39, 38, 38, 39, 19, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 23, 22, 6, 7, 7, 6, 6, 7, 6, 6, 7, 6, 6, 2, 211, 46, 84, 32, 25, 43, 17, 29, 36, 8, 3, 6, 2, 12, 12, 49, 38, 39, 110, 73, 50, 91, 40, 36, 66, 30, 110, 180, 254, 169, 181, 97, 24, 57, 31, 39, 89, 47, 46, 84, 175, 39, 67, 27, 27, 43, 16, 91, 29, 69, 40, 30, 67, 36, 51, 74, 25, 25, 29, 6, 6, 1, 5, 2, 10, 49, 42, 20, 48, 28, 32, 77, 9, 22, 64, 40, 31, 69, 37, 62, 135, 66, 21, 60, 127, 60, 60, 107, 41, 40, 49, 2, 1, 19, 19, 16, 49, 31, 2, 77, 248, 74, 2, 12, 29, 45, 15, 20, 19, 1, 1, 16, 136, 1, 20, 18, 19, 54, 35, 2, 8, 38, 62, 20, 14, 15, 1, 2, 36, 29, 30, 78, 42, 43, 88, 40, 21, 71, 146, 59, 28, 46, 17, 19, 21, 0, 0, 1, 0, 76, 0, 0, 4, 137, 4, 58, 0, 12, 0, 0, 65, 1, 51, 1, 1, 35, 1, 7, 19, 35, 3, 51, 19, 1, 236, 1, 32, 214, 254, 144, 2, 23, 233, 254, 58, 121, 92, 181, 188, 181, 58, 1, 219, 254, 37, 2, 82, 1, 232, 254, 103, 112, 2, 9, 251, 198, 1, 80, 0, 1, 0, 59, 255, 232, 3, 253, 6, 25, 0, 75, 0, 0, 115, 19, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 7, 22, 22, 51, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 3, 239, 185, 8, 36, 32, 32, 93, 65, 39, 54, 16, 15, 11, 4, 5, 29, 33, 35, 82, 6, 5, 31, 26, 25, 60, 25, 24, 29, 7, 6, 35, 27, 28, 72, 43, 59, 114, 48, 54, 60, 156, 72, 79, 135, 50, 49, 59, 5, 3, 32, 25, 26, 59, 24, 24, 26, 8, 9, 56, 31, 30, 52, 5, 6, 39, 40, 40, 117, 73, 102, 155, 55, 56, 67, 13, 186, 4, 64, 52, 116, 48, 47, 60, 3, 2, 35, 27, 28, 68, 34, 38, 68, 47, 50, 128, 67, 52, 89, 39, 40, 75, 38, 38, 82, 48, 42, 69, 24, 25, 26, 44, 33, 156, 40, 33, 1, 48, 46, 46, 129, 80, 50, 86, 39, 39, 74, 38, 37, 80, 45, 58, 98, 48, 48, 102, 62, 73, 120, 43, 43, 48, 2, 3, 79, 66, 67, 172, 90, 251, 193, 0, 2, 0, 138, 255, 235, 4, 63, 4, 79, 0, 42, 0, 56, 0, 0, 65, 38, 6, 7, 6, 6, 7, 23, 54, 54, 23, 22, 22, 23, 22, 22, 21, 20, 6, 7, 33, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 55, 55, 54, 38, 39, 38, 38, 3, 38, 38, 39, 38, 38, 55, 55, 5, 6, 6, 7, 6, 6, 2, 152, 53, 109, 52, 52, 95, 40, 62, 73, 169, 91, 76, 100, 28, 20, 19, 2, 2, 253, 40, 19, 12, 36, 48, 47, 153, 105, 74, 134, 58, 58, 96, 36, 35, 46, 8, 5, 10, 41, 51, 52, 165, 241, 59, 89, 27, 28, 20, 9, 5, 2, 36, 21, 62, 41, 42, 107, 4, 78, 1, 13, 15, 16, 51, 36, 127, 54, 54, 3, 2, 67, 51, 39, 92, 48, 17, 33, 17, 121, 99, 174, 65, 65, 76, 3, 2, 40, 37, 37, 103, 61, 60, 134, 69, 45, 105, 192, 74, 74, 90, 252, 55, 1, 44, 37, 37, 99, 57, 28, 1, 55, 109, 43, 44, 53, 0, 0, 1, 0, 119, 255, 48, 4, 100, 6, 156, 0, 55, 0, 0, 65, 6, 6, 39, 38, 38, 55, 35, 6, 22, 23, 7, 51, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 38, 38, 55, 54, 54, 23, 22, 22, 7, 51, 54, 2, 39, 55, 35, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 22, 3, 76, 14, 181, 115, 130, 102, 8, 181, 10, 156, 175, 35, 146, 35, 170, 247, 12, 6, 47, 45, 46, 127, 73, 47, 86, 32, 33, 34, 6, 12, 148, 114, 125, 74, 6, 180, 10, 117, 172, 40, 146, 39, 169, 222, 12, 6, 48, 47, 46, 128, 74, 45, 84, 32, 32, 33, 1, 126, 121, 125, 4, 2, 169, 118, 171, 247, 26, 193, 192, 18, 196, 186, 87, 132, 51, 50, 75, 30, 18, 46, 31, 31, 83, 57, 108, 134, 2, 4, 201, 102, 158, 1, 14, 34, 222, 220, 20, 207, 173, 87, 133, 51, 52, 76, 29, 17, 46, 31, 32, 82, 0, 0, 1, 0, 126, 255, 11, 4, 47, 5, 38, 0, 66, 0, 0, 101, 38, 38, 39, 38, 38, 39, 38, 52, 55, 55, 54, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 23, 54, 38, 39, 38, 38, 39, 55, 35, 7, 6, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 7, 51, 55, 54, 54, 55, 54, 54, 55, 7, 6, 6, 7, 6, 6, 2, 25, 53, 77, 27, 27, 32, 7, 8, 5, 5, 6, 28, 21, 23, 62, 39, 38, 93, 55, 52, 82, 29, 28, 28, 2, 170, 3, 39, 38, 38, 108, 66, 40, 181, 39, 99, 161, 59, 60, 75, 12, 5, 5, 4, 10, 14, 58, 41, 32, 79, 48, 42, 181, 39, 72, 140, 57, 56, 75, 9, 171, 11, 56, 39, 40, 96, 129, 1, 36, 29, 28, 77, 43, 42, 90, 43, 42, 47, 95, 42, 47, 77, 29, 27, 29, 2, 2, 38, 32, 33, 86, 50, 1, 73, 126, 50, 49, 68, 15, 228, 221, 14, 98, 72, 73, 181, 99, 43, 53, 103, 48, 65, 115, 43, 32, 47, 14, 242, 227, 8, 57, 47, 46, 126, 75, 1, 49, 79, 27, 28, 29, 0, 0, 1, 0, 9, 0, 0, 4, 151, 5, 198, 0, 48, 0, 0, 65, 33, 55, 33, 19, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 23, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 3, 35, 7, 51, 7, 6, 6, 7, 6, 6, 7, 39, 7, 33, 55, 5, 54, 54, 55, 1, 198, 1, 50, 27, 254, 201, 34, 8, 45, 36, 36, 99, 61, 53, 77, 24, 24, 19, 3, 182, 4, 42, 45, 45, 133, 87, 99, 170, 65, 65, 83, 12, 33, 156, 26, 160, 30, 5, 19, 16, 17, 50, 36, 65, 27, 3, 233, 27, 253, 48, 46, 51, 10, 2, 114, 152, 1, 6, 55, 105, 41, 40, 47, 2, 2, 36, 31, 32, 86, 50, 1, 85, 140, 51, 51, 59, 2, 2, 64, 58, 59, 162, 97, 254, 252, 152, 226, 35, 77, 35, 35, 55, 14, 1, 150, 151, 2, 55, 126, 71, 0, 1, 0, 86, 0, 0, 5, 34, 5, 176, 0, 26, 0, 0, 65, 1, 7, 49, 39, 3, 35, 1, 33, 7, 33, 7, 33, 7, 33, 3, 51, 19, 33, 55, 33, 55, 55, 5, 55, 33, 1, 4, 72, 254, 88, 51, 27, 213, 195, 1, 28, 254, 199, 21, 1, 113, 30, 254, 144, 21, 1, 113, 57, 181, 57, 1, 120, 22, 254, 133, 34, 6, 1, 111, 22, 254, 209, 2, 21, 5, 176, 253, 165, 73, 75, 2, 89, 253, 48, 121, 169, 120, 254, 186, 1, 70, 120, 165, 7, 3, 121, 2, 208, 0, 0, 1, 0, 2, 254, 72, 4, 182, 6, 46, 0, 47, 0, 0, 65, 55, 35, 55, 54, 54, 55, 54, 54, 23, 50, 22, 23, 55, 38, 38, 39, 38, 6, 7, 6, 6, 7, 7, 35, 7, 51, 3, 6, 6, 7, 6, 6, 39, 38, 38, 39, 7, 22, 22, 23, 22, 54, 55, 54, 54, 55, 19, 3, 154, 22, 206, 14, 9, 48, 38, 37, 100, 59, 35, 65, 30, 33, 44, 88, 47, 95, 157, 59, 60, 74, 12, 12, 172, 22, 172, 152, 6, 31, 26, 26, 74, 50, 36, 73, 32, 28, 38, 79, 42, 90, 140, 51, 51, 61, 11, 151, 3, 171, 143, 99, 59, 91, 32, 31, 31, 1, 15, 16, 148, 15, 23, 1, 2, 55, 52, 52, 149, 93, 99, 143, 252, 33, 44, 85, 34, 34, 41, 1, 1, 18, 17, 147, 18, 19, 1, 2, 57, 52, 52, 143, 84, 3, 223, 255, 255, 255, 215, 0, 0, 4, 178, 5, 176, 6, 38, 0, 7, 0, 0, 0, 7, 2, 106, 254, 163, 254, 127, 0, 1, 0, 3, 0, 0, 4, 145, 5, 198, 0, 56, 0, 0, 65, 55, 33, 55, 33, 55, 33, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 23, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 7, 35, 7, 51, 7, 35, 7, 55, 7, 6, 6, 7, 6, 6, 7, 39, 7, 33, 55, 5, 54, 54, 55, 55, 2, 244, 22, 254, 176, 21, 1, 82, 22, 254, 169, 23, 7, 46, 36, 36, 99, 61, 54, 77, 24, 24, 20, 3, 180, 5, 42, 45, 45, 133, 87, 99, 170, 65, 65, 83, 12, 22, 155, 22, 159, 20, 163, 22, 174, 12, 6, 20, 16, 17, 50, 36, 65, 27, 3, 233, 27, 253, 48, 45, 52, 12, 11, 1, 215, 122, 138, 123, 184, 55, 105, 41, 40, 48, 1, 2, 36, 31, 32, 86, 50, 1, 84, 141, 51, 51, 59, 2, 2, 64, 58, 59, 162, 97, 184, 123, 138, 122, 1, 73, 35, 76, 35, 35, 55, 14, 1, 150, 151, 2, 55, 126, 70, 72, 0, 0, 2, 0, 19, 255, 237, 4, 207, 5, 176, 0, 45, 0, 63, 0, 0, 65, 55, 35, 19, 35, 3, 7, 54, 38, 39, 38, 38, 39, 39, 3, 51, 19, 23, 50, 54, 55, 54, 54, 55, 51, 3, 6, 22, 23, 22, 22, 23, 22, 54, 55, 39, 6, 6, 39, 38, 38, 39, 38, 54, 55, 19, 5, 19, 23, 22, 22, 23, 22, 22, 23, 22, 6, 7, 6, 6, 7, 6, 6, 7, 4, 182, 25, 171, 46, 181, 46, 93, 4, 29, 34, 35, 110, 76, 235, 252, 180, 104, 71, 86, 132, 49, 48, 67, 22, 77, 106, 5, 9, 21, 20, 78, 64, 35, 72, 30, 13, 18, 37, 18, 28, 27, 4, 5, 3, 2, 107, 253, 51, 112, 71, 31, 41, 13, 12, 10, 1, 1, 4, 3, 5, 28, 25, 26, 79, 57, 3, 171, 143, 1, 6, 254, 250, 1, 69, 132, 52, 52, 65, 3, 2, 250, 80, 2, 53, 1, 61, 52, 51, 136, 75, 253, 125, 52, 110, 46, 46, 59, 1, 1, 17, 20, 134, 5, 8, 1, 1, 34, 24, 23, 52, 19, 2, 134, 225, 2, 79, 3, 3, 32, 25, 25, 60, 31, 31, 58, 22, 47, 105, 44, 45, 60, 1, 0, 0, 2, 0, 16, 255, 229, 4, 170, 4, 57, 0, 35, 0, 71, 0, 0, 101, 23, 55, 39, 54, 54, 55, 54, 38, 39, 55, 39, 7, 38, 38, 39, 38, 6, 7, 39, 7, 23, 6, 6, 7, 6, 22, 23, 7, 23, 55, 22, 22, 23, 22, 54, 1, 54, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 39, 38, 38, 3, 57, 82, 143, 92, 49, 63, 11, 10, 16, 23, 142, 112, 141, 56, 133, 72, 79, 143, 66, 90, 142, 96, 56, 69, 12, 9, 13, 21, 128, 111, 120, 59, 139, 76, 85, 150, 254, 43, 5, 28, 22, 25, 77, 46, 38, 90, 48, 43, 72, 28, 37, 48, 11, 7, 4, 4, 5, 25, 18, 26, 70, 44, 41, 95, 53, 44, 73, 29, 35, 46, 13, 8, 5, 82, 109, 127, 124, 67, 148, 83, 75, 146, 71, 121, 146, 126, 45, 48, 1, 1, 49, 42, 121, 128, 129, 69, 158, 88, 72, 141, 69, 108, 144, 109, 50, 52, 1, 2, 56, 1, 216, 43, 84, 39, 48, 84, 27, 24, 25, 1, 1, 28, 23, 31, 87, 50, 33, 69, 33, 39, 79, 36, 49, 83, 31, 27, 31, 1, 1, 29, 24, 30, 82, 46, 34, 74, 0, 0, 2, 1, 128, 255, 243, 3, 51, 5, 176, 0, 3, 0, 27, 0, 0, 65, 19, 35, 3, 3, 20, 22, 23, 22, 22, 55, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 7, 6, 6, 7, 6, 6, 2, 136, 171, 182, 171, 82, 17, 15, 14, 41, 24, 25, 42, 15, 14, 17, 16, 15, 15, 42, 24, 24, 40, 14, 16, 17, 1, 215, 3, 217, 252, 39, 254, 135, 24, 40, 14, 14, 15, 1, 1, 18, 15, 15, 39, 24, 24, 41, 15, 15, 16, 1, 1, 17, 14, 15, 44, 0, 0, 2, 1, 81, 254, 140, 3, 7, 4, 82, 0, 3, 0, 15, 0, 0, 65, 3, 51, 19, 19, 52, 38, 7, 6, 6, 7, 20, 22, 55, 54, 54, 1, 252, 171, 181, 171, 86, 62, 50, 50, 61, 1, 64, 47, 48, 63, 2, 99, 252, 41, 3, 215, 1, 126, 48, 65, 2, 2, 65, 50, 49, 60, 2, 2, 62, 0, 2, 1, 23, 255, 242, 4, 88, 5, 198, 0, 43, 0, 55, 0, 0, 65, 55, 54, 54, 55, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 6, 6, 3, 20, 22, 55, 54, 54, 55, 52, 38, 7, 6, 6, 1, 214, 177, 11, 53, 59, 56, 113, 48, 47, 64, 7, 7, 49, 49, 49, 141, 84, 86, 158, 62, 63, 82, 10, 179, 10, 50, 36, 36, 90, 50, 49, 77, 25, 25, 21, 7, 8, 52, 36, 37, 84, 39, 97, 85, 94, 63, 48, 48, 64, 1, 64, 48, 50, 61, 1, 153, 1, 74, 112, 49, 45, 97, 56, 55, 130, 78, 88, 136, 47, 47, 50, 2, 2, 46, 45, 46, 136, 89, 1, 50, 76, 25, 25, 25, 1, 1, 31, 27, 28, 79, 50, 54, 95, 42, 42, 74, 33, 83, 145, 254, 73, 48, 60, 2, 2, 61, 49, 48, 64, 2, 2, 65, 0, 0, 2, 0, 86, 254, 117, 3, 113, 4, 79, 0, 49, 0, 61, 0, 0, 65, 7, 6, 6, 7, 6, 6, 7, 6, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 55, 54, 54, 55, 54, 54, 3, 20, 22, 55, 54, 54, 55, 54, 38, 7, 6, 6, 2, 196, 177, 5, 17, 13, 14, 41, 29, 54, 108, 44, 45, 60, 7, 8, 44, 47, 46, 135, 83, 85, 151, 59, 58, 77, 10, 180, 9, 38, 28, 33, 88, 53, 49, 71, 22, 22, 16, 6, 7, 49, 34, 34, 80, 38, 46, 66, 22, 22, 26, 141, 64, 47, 49, 63, 1, 1, 63, 49, 50, 62, 2, 162, 1, 37, 63, 27, 28, 51, 25, 46, 100, 56, 56, 130, 76, 85, 136, 48, 48, 52, 2, 2, 48, 47, 46, 136, 86, 1, 43, 71, 25, 30, 32, 1, 1, 33, 29, 28, 78, 47, 53, 95, 43, 43, 76, 33, 41, 72, 40, 39, 93, 1, 118, 49, 60, 2, 2, 62, 49, 49, 63, 1, 2, 66, 0, 1, 0, 194, 254, 176, 2, 47, 0, 219, 0, 12, 0, 0, 101, 55, 35, 7, 6, 6, 7, 23, 54, 54, 55, 54, 54, 2, 18, 29, 196, 32, 15, 69, 53, 110, 41, 71, 28, 32, 44, 44, 175, 179, 87, 154, 70, 65, 33, 79, 44, 50, 114, 0, 0, 1, 1, 142, 255, 236, 2, 170, 1, 10, 0, 11, 0, 0, 101, 20, 22, 51, 50, 54, 53, 52, 38, 7, 34, 6, 1, 142, 78, 61, 61, 84, 80, 61, 65, 78, 115, 59, 76, 80, 65, 63, 78, 2, 88, 0, 255, 255, 1, 191, 255, 236, 3, 114, 4, 118, 4, 38, 0, 96, 49, 0, 0, 7, 0, 96, 0, 200, 3, 108, 255, 255, 1, 66, 254, 176, 3, 105, 4, 118, 4, 39, 0, 96, 0, 191, 3, 108, 0, 7, 0, 95, 0, 128, 0, 0, 255, 255, 0, 174, 255, 236, 4, 172, 1, 10, 4, 39, 0, 96, 255, 32, 0, 0, 0, 39, 0, 96, 0, 151, 0, 0, 0, 7, 0, 96, 2, 2, 0, 0, 0, 1, 1, 255, 2, 106, 2, 223, 3, 76, 0, 11, 0, 0, 65, 20, 22, 51, 50, 54, 53, 52, 38, 7, 6, 6, 1, 255, 61, 51, 44, 68, 63, 48, 50, 62, 2, 214, 48, 60, 65, 49, 48, 64, 2, 2, 65, 0, 0, 1, 1, 169, 2, 20, 3, 56, 3, 220, 0, 25, 0, 0, 65, 7, 20, 22, 23, 22, 22, 51, 22, 54, 55, 54, 54, 55, 55, 54, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 1, 171, 2, 26, 24, 24, 68, 42, 45, 75, 28, 27, 33, 3, 3, 1, 25, 24, 24, 70, 43, 45, 76, 27, 28, 32, 3, 16, 59, 42, 70, 25, 26, 29, 1, 29, 27, 26, 73, 44, 58, 43, 72, 27, 26, 31, 30, 27, 28, 75, 0, 1, 0, 20, 255, 105, 3, 169, 0, 0, 0, 3, 0, 0, 69, 55, 33, 7, 3, 142, 27, 252, 133, 26, 151, 151, 151, 0, 0, 1, 0, 204, 2, 49, 3, 206, 2, 201, 0, 3, 0, 0, 65, 55, 33, 7, 3, 179, 27, 253, 25, 27, 2, 49, 152, 152, 0, 1, 0, 82, 2, 139, 4, 147, 3, 34, 0, 3, 0, 0, 65, 55, 33, 7, 4, 112, 35, 251, 226, 35, 2, 139, 151, 151, 0, 1, 0, 87, 2, 139, 4, 152, 3, 34, 0, 3, 0, 0, 65, 55, 33, 7, 4, 117, 35, 251, 226, 35, 2, 139, 151, 151, 0, 1, 2, 38, 4, 32, 3, 13, 6, 0, 0, 5, 0, 0, 65, 55, 35, 7, 3, 55, 2, 250, 19, 154, 16, 61, 136, 5, 136, 120, 97, 254, 129, 1, 0, 2, 1, 158, 4, 33, 3, 217, 6, 0, 0, 5, 0, 11, 0, 0, 65, 55, 35, 7, 3, 51, 1, 55, 35, 7, 3, 51, 2, 107, 18, 147, 15, 61, 128, 1, 167, 20, 147, 17, 60, 127, 5, 139, 117, 95, 254, 128, 1, 106, 117, 102, 254, 135, 0, 1, 2, 41, 4, 15, 3, 130, 6, 29, 0, 12, 0, 0, 65, 7, 51, 55, 54, 54, 55, 39, 6, 6, 7, 6, 6, 2, 64, 23, 176, 27, 15, 75, 52, 95, 47, 78, 29, 27, 37, 4, 160, 145, 149, 86, 148, 69, 74, 37, 90, 50, 47, 102, 0, 1, 2, 24, 4, 7, 3, 113, 6, 22, 0, 12, 0, 0, 65, 55, 35, 7, 6, 6, 7, 23, 54, 54, 55, 54, 54, 3, 89, 24, 177, 26, 16, 74, 52, 95, 46, 77, 29, 27, 38, 5, 132, 146, 150, 86, 148, 69, 74, 36, 88, 50, 47, 105, 0, 1, 1, 32, 254, 209, 2, 125, 0, 225, 0, 9, 0, 0, 101, 55, 35, 7, 6, 6, 7, 23, 54, 54, 2, 102, 23, 180, 27, 15, 74, 53, 99, 88, 120, 77, 148, 151, 86, 147, 69, 75, 72, 195, 255, 255, 1, 139, 4, 15, 4, 31, 6, 29, 4, 39, 0, 108, 255, 98, 0, 0, 0, 7, 0, 108, 0, 157, 0, 0, 255, 255, 1, 125, 4, 7, 4, 24, 6, 22, 4, 39, 0, 109, 255, 101, 0, 0, 0, 7, 0, 109, 0, 167, 0, 0, 0, 2, 0, 151, 254, 207, 3, 14, 0, 223, 0, 9, 0, 22, 0, 0, 101, 55, 35, 7, 6, 6, 7, 23, 54, 54, 37, 55, 35, 7, 6, 6, 7, 23, 54, 54, 55, 54, 54, 1, 221, 23, 180, 27, 15, 75, 52, 99, 88, 120, 1, 44, 24, 181, 26, 16, 74, 53, 99, 47, 79, 30, 26, 37, 76, 147, 151, 86, 147, 69, 75, 72, 195, 114, 147, 151, 86, 147, 69, 75, 38, 91, 51, 46, 101, 0, 255, 255, 2, 38, 4, 32, 3, 13, 6, 0, 6, 6, 0, 106, 0, 0, 255, 255, 1, 158, 4, 33, 3, 217, 6, 0, 6, 6, 0, 107, 0, 0, 0, 1, 1, 70, 254, 42, 3, 236, 6, 108, 0, 36, 0, 0, 65, 7, 6, 6, 23, 22, 22, 23, 22, 22, 23, 55, 38, 38, 39, 38, 38, 39, 38, 54, 55, 55, 54, 18, 55, 54, 54, 55, 39, 6, 6, 7, 6, 6, 7, 6, 6, 1, 89, 2, 12, 5, 10, 9, 46, 40, 39, 115, 78, 47, 60, 80, 24, 24, 20, 1, 1, 14, 11, 2, 20, 72, 57, 57, 161, 110, 27, 95, 159, 65, 65, 104, 38, 39, 53, 2, 75, 11, 87, 192, 97, 98, 192, 87, 88, 150, 55, 112, 54, 141, 80, 80, 172, 86, 86, 164, 72, 15, 131, 1, 6, 121, 120, 213, 81, 124, 48, 138, 85, 85, 192, 102, 102, 207, 0, 1, 0, 160, 254, 41, 3, 72, 6, 107, 0, 33, 0, 0, 65, 55, 54, 54, 39, 38, 38, 39, 38, 38, 39, 7, 22, 22, 23, 22, 22, 23, 22, 6, 7, 7, 6, 2, 7, 6, 6, 7, 23, 54, 54, 55, 54, 18, 3, 53, 2, 12, 5, 9, 10, 46, 39, 40, 116, 79, 46, 59, 79, 24, 24, 21, 1, 1, 14, 10, 2, 20, 72, 57, 57, 161, 111, 28, 143, 218, 78, 75, 98, 2, 73, 11, 87, 192, 98, 98, 192, 88, 87, 150, 55, 112, 54, 140, 80, 81, 174, 86, 86, 164, 71, 15, 131, 254, 248, 122, 123, 215, 81, 115, 71, 240, 143, 142, 1, 57, 0, 1, 1, 14, 254, 200, 3, 197, 6, 128, 0, 7, 0, 0, 65, 55, 33, 1, 33, 55, 35, 1, 3, 172, 25, 254, 126, 254, 203, 1, 130, 24, 215, 1, 5, 5, 232, 152, 248, 72, 152, 6, 136, 0, 0, 1, 0, 250, 254, 200, 3, 177, 6, 128, 0, 7, 0, 0, 65, 7, 51, 1, 35, 7, 33, 1, 2, 47, 24, 215, 254, 251, 215, 24, 1, 130, 1, 53, 6, 128, 152, 249, 120, 152, 7, 184, 0, 1, 1, 52, 254, 147, 4, 86, 6, 64, 0, 48, 0, 0, 65, 55, 38, 38, 39, 38, 54, 55, 55, 54, 38, 39, 38, 38, 39, 54, 54, 55, 55, 54, 54, 55, 54, 54, 55, 39, 6, 6, 7, 6, 6, 7, 7, 6, 6, 7, 7, 22, 22, 23, 22, 22, 7, 7, 6, 22, 23, 22, 22, 3, 44, 25, 63, 67, 13, 14, 2, 6, 21, 5, 13, 20, 20, 68, 48, 120, 142, 17, 22, 8, 30, 30, 29, 94, 73, 10, 99, 152, 54, 54, 65, 12, 22, 20, 161, 138, 15, 66, 90, 27, 26, 18, 7, 22, 8, 27, 37, 37, 124, 254, 147, 115, 8, 73, 51, 50, 116, 50, 170, 53, 101, 44, 44, 73, 26, 51, 171, 131, 170, 61, 122, 50, 49, 64, 5, 117, 6, 79, 63, 63, 165, 92, 170, 139, 135, 2, 144, 3, 38, 34, 35, 99, 64, 170, 79, 160, 66, 66, 87, 0, 0, 1, 0, 178, 254, 143, 3, 212, 6, 59, 0, 45, 0, 0, 87, 23, 54, 54, 55, 54, 54, 55, 55, 54, 54, 55, 55, 38, 38, 55, 55, 54, 38, 39, 38, 38, 39, 7, 22, 22, 23, 22, 6, 7, 7, 6, 22, 23, 22, 22, 23, 6, 6, 7, 7, 6, 6, 7, 6, 6, 178, 10, 97, 151, 55, 54, 67, 12, 22, 19, 162, 138, 15, 131, 103, 14, 21, 9, 23, 36, 36, 123, 90, 29, 67, 68, 12, 14, 7, 6, 22, 5, 13, 20, 20, 67, 48, 120, 140, 17, 22, 9, 34, 31, 31, 93, 252, 117, 6, 80, 64, 63, 164, 91, 169, 139, 134, 4, 144, 6, 137, 129, 171, 80, 160, 66, 65, 86, 6, 114, 7, 70, 46, 51, 119, 55, 171, 53, 101, 44, 45, 74, 26, 50, 171, 130, 169, 57, 121, 50, 51, 68, 0, 1, 1, 118, 0, 153, 3, 107, 3, 181, 0, 6, 0, 0, 65, 1, 35, 1, 7, 19, 51, 2, 35, 1, 72, 151, 254, 164, 2, 226, 124, 2, 28, 1, 153, 254, 123, 20, 254, 125, 0, 1, 1, 44, 0, 152, 3, 32, 3, 181, 0, 6, 0, 0, 65, 35, 19, 1, 51, 1, 55, 2, 64, 126, 178, 254, 184, 152, 1, 91, 1, 3, 181, 254, 123, 254, 104, 1, 134, 20, 0, 1, 0, 114, 0, 146, 4, 92, 4, 182, 0, 11, 0, 0, 65, 19, 35, 3, 33, 7, 33, 3, 51, 19, 33, 55, 2, 209, 74, 181, 74, 254, 119, 33, 1, 139, 79, 181, 78, 1, 139, 32, 3, 13, 1, 169, 254, 87, 184, 254, 61, 1, 195, 184, 0, 1, 0, 172, 2, 139, 3, 242, 3, 34, 0, 3, 0, 0, 65, 55, 33, 7, 3, 215, 27, 252, 213, 27, 2, 139, 151, 151, 0, 2, 0, 96, 0, 1, 4, 57, 4, 243, 0, 11, 0, 15, 0, 0, 65, 19, 35, 3, 33, 7, 33, 3, 51, 19, 33, 55, 3, 55, 33, 7, 2, 216, 65, 164, 65, 254, 139, 24, 1, 118, 66, 165, 65, 1, 96, 24, 174, 27, 252, 213, 27, 3, 87, 1, 156, 254, 100, 152, 254, 98, 1, 158, 152, 252, 170, 151, 151, 0, 0, 1, 0, 129, 0, 206, 4, 92, 4, 99, 0, 11, 0, 0, 83, 23, 1, 1, 55, 1, 1, 39, 1, 1, 7, 1, 129, 102, 1, 123, 1, 8, 128, 254, 249, 1, 121, 102, 254, 135, 254, 252, 129, 1, 5, 1, 82, 132, 1, 80, 254, 176, 114, 1, 82, 1, 77, 132, 254, 178, 1, 78, 115, 254, 178, 0, 0, 3, 0, 111, 0, 174, 4, 89, 4, 183, 0, 3, 0, 15, 0, 27, 0, 0, 65, 55, 33, 7, 1, 6, 22, 55, 54, 54, 55, 52, 38, 7, 6, 6, 3, 20, 22, 55, 54, 54, 55, 52, 38, 7, 6, 6, 4, 56, 33, 252, 54, 32, 1, 211, 1, 60, 47, 46, 60, 1, 60, 47, 47, 58, 144, 59, 47, 46, 60, 1, 60, 47, 47, 59, 2, 88, 184, 184, 1, 238, 47, 58, 2, 2, 60, 47, 45, 62, 2, 2, 62, 252, 162, 45, 60, 2, 2, 60, 47, 45, 62, 2, 2, 62, 0, 2, 0, 126, 1, 109, 4, 70, 3, 173, 0, 3, 0, 7, 0, 0, 65, 55, 33, 7, 1, 55, 33, 7, 4, 42, 28, 252, 157, 29, 3, 28, 28, 252, 157, 29, 3, 12, 161, 161, 254, 97, 160, 160, 0, 1, 0, 122, 0, 182, 4, 66, 4, 63, 0, 19, 0, 0, 65, 55, 33, 55, 33, 55, 35, 55, 39, 7, 33, 7, 33, 7, 33, 7, 33, 7, 23, 55, 3, 222, 28, 254, 93, 166, 1, 41, 28, 221, 63, 70, 97, 253, 226, 29, 1, 208, 170, 254, 175, 29, 1, 4, 83, 78, 118, 1, 109, 160, 255, 161, 96, 50, 146, 161, 255, 160, 125, 58, 183, 0, 0, 2, 0, 94, 1, 22, 4, 89, 3, 254, 0, 43, 0, 90, 0, 0, 83, 7, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 55, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 38, 38, 7, 34, 6, 7, 6, 6, 3, 7, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 55, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 184, 6, 26, 57, 32, 32, 72, 40, 31, 56, 26, 26, 50, 27, 50, 96, 59, 39, 70, 31, 30, 53, 23, 9, 26, 57, 32, 32, 71, 40, 32, 56, 27, 21, 43, 22, 54, 103, 64, 39, 71, 31, 31, 54, 107, 6, 26, 58, 32, 32, 71, 40, 31, 56, 26, 26, 51, 26, 49, 98, 59, 39, 69, 31, 30, 54, 23, 9, 26, 57, 32, 32, 72, 40, 30, 54, 26, 23, 45, 23, 27, 51, 27, 27, 57, 31, 39, 71, 31, 31, 55, 3, 105, 169, 28, 52, 21, 20, 25, 12, 10, 11, 27, 15, 29, 42, 23, 21, 20, 53, 29, 171, 28, 52, 20, 21, 24, 14, 11, 9, 23, 13, 31, 45, 1, 24, 20, 21, 53, 254, 56, 169, 28, 52, 20, 20, 25, 11, 10, 10, 28, 15, 29, 42, 23, 21, 20, 53, 29, 171, 28, 53, 20, 21, 24, 13, 10, 10, 25, 13, 15, 27, 11, 10, 12, 25, 20, 20, 53, 0, 1, 0, 161, 0, 201, 4, 52, 4, 80, 0, 8, 0, 0, 83, 1, 55, 37, 39, 55, 37, 55, 1, 161, 2, 246, 33, 253, 205, 38, 65, 2, 118, 30, 252, 135, 2, 68, 254, 133, 187, 240, 15, 20, 240, 201, 254, 134, 0, 1, 0, 101, 0, 192, 4, 27, 4, 72, 0, 8, 0, 0, 119, 1, 55, 1, 7, 5, 23, 7, 5, 101, 3, 156, 26, 252, 231, 32, 2, 84, 45, 71, 253, 109, 192, 1, 124, 145, 1, 123, 183, 244, 16, 20, 240, 0, 0, 2, 0, 79, 0, 9, 4, 103, 4, 158, 0, 8, 0, 12, 0, 0, 65, 55, 37, 55, 1, 7, 1, 55, 37, 1, 55, 33, 7, 1, 146, 65, 2, 118, 30, 252, 135, 26, 2, 246, 33, 253, 205, 1, 194, 27, 252, 213, 27, 2, 255, 18, 216, 181, 254, 171, 131, 254, 171, 168, 216, 253, 24, 151, 151, 0, 0, 2, 0, 87, 0, 7, 4, 78, 4, 169, 0, 8, 0, 12, 0, 0, 65, 7, 5, 7, 1, 55, 1, 7, 5, 19, 55, 33, 7, 3, 150, 71, 253, 109, 36, 3, 156, 26, 252, 231, 32, 2, 84, 25, 27, 252, 213, 27, 3, 27, 18, 216, 181, 1, 86, 130, 1, 85, 164, 220, 252, 222, 151, 151, 0, 1, 0, 189, 1, 119, 4, 0, 3, 32, 0, 5, 0, 0, 65, 19, 33, 7, 33, 3, 3, 182, 74, 252, 218, 29, 2, 115, 47, 1, 119, 1, 169, 161, 254, 248, 0, 1, 0, 114, 255, 131, 4, 124, 5, 176, 0, 3, 0, 0, 69, 1, 35, 1, 1, 29, 3, 95, 170, 252, 160, 125, 6, 45, 249, 211, 0, 1, 1, 120, 255, 131, 3, 79, 5, 176, 0, 3, 0, 0, 65, 1, 51, 1, 1, 120, 1, 60, 155, 254, 196, 5, 176, 249, 211, 6, 45, 0, 0, 1, 0, 233, 0, 215, 3, 230, 4, 207, 0, 3, 0, 0, 101, 1, 39, 1, 1, 84, 2, 146, 107, 253, 110, 215, 3, 177, 71, 252, 79, 0, 0, 5, 0, 130, 255, 233, 4, 80, 5, 199, 0, 25, 0, 51, 0, 77, 0, 103, 0, 107, 0, 0, 83, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 55, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 23, 55, 54, 54, 55, 54, 54, 51, 22, 22, 23, 22, 22, 7, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 1, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 55, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 23, 55, 54, 54, 55, 54, 54, 51, 22, 22, 23, 22, 22, 7, 7, 6, 6, 7, 6, 6, 35, 38, 38, 39, 38, 38, 5, 1, 39, 1, 141, 7, 4, 26, 29, 29, 89, 60, 62, 103, 38, 37, 47, 7, 7, 4, 25, 29, 29, 89, 60, 63, 102, 38, 38, 47, 124, 7, 3, 20, 18, 17, 50, 35, 34, 42, 12, 12, 7, 2, 7, 4, 20, 17, 17, 51, 34, 34, 42, 12, 12, 7, 1, 49, 7, 4, 26, 29, 29, 90, 60, 62, 103, 38, 37, 47, 7, 8, 4, 26, 29, 29, 89, 60, 63, 103, 38, 38, 47, 124, 7, 4, 20, 18, 17, 51, 35, 34, 42, 12, 11, 7, 2, 7, 4, 20, 17, 17, 51, 34, 34, 42, 12, 12, 8, 254, 127, 2, 216, 104, 253, 41, 4, 169, 76, 56, 100, 39, 39, 47, 1, 2, 44, 39, 39, 103, 59, 77, 56, 102, 39, 39, 46, 2, 1, 44, 39, 39, 105, 137, 80, 30, 58, 24, 23, 28, 1, 30, 23, 24, 57, 28, 79, 30, 58, 22, 23, 28, 30, 23, 23, 56, 253, 18, 77, 56, 101, 38, 39, 47, 1, 1, 44, 38, 38, 104, 59, 78, 56, 101, 39, 39, 46, 2, 1, 43, 39, 39, 105, 138, 81, 30, 58, 23, 23, 28, 1, 30, 23, 23, 57, 28, 80, 30, 58, 23, 23, 28, 1, 29, 24, 23, 56, 41, 4, 8, 65, 251, 248, 0, 0, 6, 0, 92, 255, 231, 4, 73, 5, 199, 0, 49, 0, 75, 0, 101, 0, 127, 0, 153, 0, 157, 0, 0, 65, 7, 6, 22, 23, 22, 22, 51, 22, 54, 55, 54, 54, 55, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 55, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 38, 38, 39, 38, 38, 39, 34, 6, 7, 6, 6, 5, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 7, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 55, 37, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 7, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 55, 3, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 7, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 55, 39, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 55, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 3, 1, 39, 1, 1, 22, 3, 3, 20, 25, 24, 80, 57, 36, 62, 28, 13, 25, 12, 10, 24, 12, 26, 61, 33, 61, 96, 35, 34, 40, 5, 3, 3, 19, 24, 24, 80, 57, 37, 63, 28, 13, 24, 12, 8, 18, 9, 27, 66, 37, 62, 97, 34, 35, 40, 1, 218, 2, 13, 14, 13, 44, 32, 30, 36, 9, 8, 4, 1, 3, 2, 13, 13, 14, 43, 32, 30, 36, 9, 9, 4, 1, 254, 173, 2, 13, 14, 13, 43, 33, 30, 35, 9, 9, 4, 1, 3, 2, 13, 13, 14, 43, 32, 30, 36, 9, 9, 4, 1, 121, 2, 13, 14, 13, 43, 32, 30, 36, 9, 8, 4, 1, 3, 2, 14, 13, 14, 43, 31, 30, 35, 9, 9, 4, 1, 134, 4, 2, 22, 26, 25, 81, 57, 60, 94, 34, 33, 39, 5, 3, 3, 21, 24, 25, 81, 58, 62, 95, 33, 34, 39, 11, 3, 100, 55, 252, 156, 1, 40, 45, 50, 97, 38, 39, 47, 1, 19, 17, 8, 19, 11, 13, 21, 9, 17, 16, 1, 1, 47, 40, 39, 104, 56, 45, 50, 98, 39, 39, 49, 1, 1, 19, 18, 8, 19, 11, 10, 18, 8, 20, 21, 1, 48, 40, 41, 105, 55, 25, 59, 25, 25, 32, 33, 24, 24, 55, 23, 44, 26, 57, 24, 25, 32, 31, 24, 23, 55, 23, 45, 25, 59, 25, 24, 33, 33, 24, 24, 55, 23, 44, 26, 57, 24, 25, 32, 32, 24, 23, 54, 23, 3, 170, 25, 59, 25, 24, 33, 33, 24, 24, 55, 23, 44, 25, 57, 24, 25, 32, 31, 24, 23, 54, 23, 44, 45, 51, 97, 38, 38, 47, 1, 1, 47, 40, 39, 102, 55, 45, 51, 100, 39, 39, 49, 1, 1, 48, 40, 41, 106, 252, 226, 2, 125, 90, 253, 131, 0, 1, 1, 111, 254, 114, 3, 35, 5, 176, 0, 3, 0, 0, 65, 1, 35, 1, 2, 1, 1, 34, 146, 254, 222, 254, 114, 7, 62, 248, 194, 0, 0, 2, 1, 88, 254, 242, 3, 57, 5, 176, 0, 3, 0, 7, 0, 0, 65, 51, 19, 35, 55, 19, 35, 3, 1, 88, 181, 138, 181, 211, 132, 181, 132, 254, 242, 3, 23, 177, 2, 246, 253, 10, 0, 1, 0, 166, 0, 0, 4, 128, 5, 176, 0, 11, 0, 0, 65, 55, 33, 19, 35, 3, 33, 7, 33, 3, 51, 19, 4, 104, 24, 254, 119, 59, 181, 59, 254, 125, 25, 1, 133, 146, 181, 145, 3, 161, 153, 1, 118, 254, 138, 153, 252, 95, 3, 161, 0, 1, 0, 23, 254, 96, 4, 129, 5, 176, 0, 19, 0, 0, 97, 55, 33, 19, 33, 55, 33, 19, 35, 3, 33, 7, 33, 3, 33, 7, 33, 3, 51, 19, 3, 216, 24, 254, 117, 121, 1, 139, 24, 254, 117, 59, 181, 59, 254, 127, 24, 1, 130, 122, 254, 127, 24, 1, 130, 66, 181, 65, 151, 3, 10, 153, 1, 118, 254, 138, 153, 252, 246, 151, 254, 96, 1, 160, 0, 3, 0, 67, 255, 233, 4, 95, 4, 80, 0, 51, 0, 75, 0, 108, 0, 0, 65, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 7, 23, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 37, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 39, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 3, 45, 107, 7, 23, 18, 18, 50, 35, 39, 48, 13, 13, 7, 2, 8, 4, 24, 21, 20, 60, 41, 36, 47, 14, 13, 9, 2, 109, 2, 23, 25, 28, 88, 58, 63, 101, 36, 36, 43, 6, 8, 3, 23, 27, 27, 87, 61, 65, 100, 33, 26, 33, 253, 126, 11, 88, 70, 66, 172, 97, 93, 141, 46, 46, 40, 10, 11, 85, 67, 67, 175, 100, 93, 142, 45, 46, 39, 77, 11, 51, 57, 57, 173, 112, 79, 145, 64, 63, 106, 40, 40, 50, 8, 7, 18, 24, 24, 77, 51, 51, 127, 74, 79, 144, 63, 64, 107, 40, 40, 50, 1, 187, 1, 31, 51, 18, 18, 20, 1, 1, 36, 28, 28, 67, 32, 90, 36, 69, 27, 27, 34, 21, 19, 18, 50, 31, 1, 52, 84, 30, 33, 37, 1, 1, 47, 40, 41, 107, 58, 87, 55, 104, 40, 40, 50, 1, 2, 40, 38, 30, 80, 140, 96, 178, 67, 66, 73, 3, 2, 80, 64, 65, 164, 86, 95, 176, 67, 68, 79, 3, 2, 82, 65, 65, 166, 87, 105, 198, 77, 78, 96, 2, 2, 42, 38, 38, 107, 64, 64, 144, 76, 69, 135, 61, 61, 104, 38, 38, 45, 1, 2, 41, 38, 38, 106, 63, 64, 144, 0, 4, 0, 67, 255, 233, 4, 95, 4, 79, 0, 32, 0, 56, 0, 76, 0, 91, 0, 0, 83, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 23, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 37, 51, 23, 51, 3, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 39, 3, 51, 19, 55, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 75, 8, 23, 28, 22, 66, 42, 52, 135, 79, 79, 145, 64, 63, 106, 40, 40, 50, 8, 10, 50, 57, 57, 173, 112, 79, 145, 63, 64, 107, 39, 40, 51, 80, 10, 86, 67, 67, 174, 100, 93, 142, 46, 46, 39, 10, 10, 87, 66, 66, 176, 99, 93, 141, 46, 46, 40, 1, 69, 121, 77, 103, 95, 28, 54, 22, 21, 27, 3, 3, 32, 29, 30, 78, 43, 199, 100, 106, 55, 30, 106, 24, 43, 15, 15, 15, 5, 4, 26, 18, 18, 44, 22, 2, 21, 75, 145, 63, 52, 89, 34, 43, 51, 2, 2, 41, 38, 38, 107, 64, 63, 144, 75, 105, 197, 77, 77, 95, 3, 2, 41, 38, 38, 106, 64, 64, 144, 76, 95, 175, 67, 66, 78, 3, 2, 81, 64, 65, 164, 86, 94, 177, 66, 66, 79, 3, 2, 81, 65, 64, 165, 39, 253, 1, 30, 11, 28, 20, 19, 52, 33, 49, 69, 22, 22, 22, 1, 1, 253, 133, 1, 94, 188, 1, 1, 8, 10, 10, 36, 28, 24, 35, 11, 11, 12, 1, 0, 2, 0, 233, 3, 151, 4, 173, 5, 176, 0, 12, 0, 20, 0, 0, 65, 3, 51, 19, 35, 3, 3, 35, 3, 51, 19, 19, 55, 1, 55, 33, 7, 51, 3, 51, 19, 4, 56, 67, 90, 94, 113, 208, 69, 108, 94, 90, 69, 67, 52, 254, 239, 14, 254, 135, 14, 143, 80, 91, 80, 5, 19, 254, 132, 2, 25, 254, 117, 1, 139, 253, 231, 1, 136, 254, 120, 1, 1, 199, 81, 81, 254, 56, 1, 200, 0, 2, 1, 198, 3, 190, 3, 182, 5, 198, 0, 23, 0, 47, 0, 0, 65, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 23, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 1, 201, 3, 31, 30, 29, 84, 50, 54, 96, 36, 36, 44, 3, 3, 30, 28, 29, 81, 50, 55, 98, 37, 37, 45, 119, 2, 24, 20, 19, 50, 28, 26, 41, 14, 13, 12, 2, 2, 23, 18, 19, 49, 27, 26, 42, 14, 15, 14, 4, 183, 49, 89, 34, 34, 41, 1, 1, 44, 37, 36, 97, 53, 48, 90, 35, 35, 43, 1, 1, 44, 37, 38, 99, 50, 27, 50, 20, 19, 24, 22, 18, 18, 46, 24, 27, 48, 18, 19, 23, 20, 17, 17, 44, 0, 1, 0, 217, 1, 215, 4, 123, 5, 176, 0, 14, 0, 0, 65, 1, 23, 1, 19, 55, 3, 37, 39, 5, 19, 35, 3, 37, 7, 2, 55, 254, 210, 133, 1, 3, 151, 152, 200, 1, 131, 25, 254, 141, 94, 174, 42, 254, 177, 77, 3, 150, 254, 189, 111, 1, 95, 254, 148, 105, 1, 72, 94, 184, 148, 1, 166, 254, 87, 153, 170, 0, 0, 2, 0, 26, 0, 0, 4, 195, 5, 176, 0, 27, 0, 31, 0, 0, 65, 3, 51, 19, 51, 55, 35, 19, 51, 55, 35, 19, 35, 3, 35, 19, 35, 3, 33, 7, 51, 3, 35, 7, 51, 3, 51, 19, 55, 19, 51, 3, 2, 139, 150, 145, 149, 242, 24, 217, 128, 223, 24, 197, 152, 144, 153, 250, 153, 145, 152, 254, 238, 25, 249, 129, 254, 24, 230, 150, 145, 149, 49, 128, 251, 129, 1, 154, 254, 102, 1, 154, 137, 1, 98, 139, 1, 160, 254, 96, 1, 160, 254, 96, 139, 254, 158, 137, 254, 102, 1, 154, 137, 1, 98, 254, 158, 0, 0, 3, 0, 57, 255, 235, 4, 102, 5, 201, 0, 39, 0, 53, 0, 69, 0, 0, 83, 6, 22, 23, 22, 54, 55, 23, 51, 39, 54, 54, 55, 35, 6, 6, 7, 3, 55, 54, 54, 55, 54, 38, 39, 38, 6, 7, 6, 22, 23, 22, 22, 23, 7, 6, 6, 7, 6, 6, 1, 38, 38, 55, 54, 54, 55, 54, 54, 55, 55, 19, 6, 6, 3, 54, 54, 23, 50, 22, 7, 6, 6, 7, 7, 38, 38, 39, 38, 38, 69, 12, 216, 167, 100, 177, 78, 61, 202, 133, 89, 99, 13, 160, 14, 60, 50, 230, 114, 85, 149, 6, 8, 155, 124, 166, 209, 12, 3, 13, 13, 12, 36, 19, 38, 49, 93, 38, 46, 59, 1, 115, 103, 104, 12, 6, 38, 28, 27, 65, 32, 31, 240, 61, 135, 37, 8, 103, 87, 61, 55, 6, 6, 72, 50, 128, 12, 23, 7, 8, 6, 1, 110, 173, 210, 2, 2, 70, 59, 108, 235, 91, 219, 127, 85, 150, 70, 1, 140, 87, 62, 149, 115, 124, 173, 4, 4, 204, 158, 45, 85, 41, 41, 80, 39, 25, 32, 73, 43, 52, 122, 254, 202, 2, 133, 99, 42, 77, 34, 34, 59, 25, 25, 254, 82, 42, 60, 3, 224, 77, 130, 2, 94, 55, 65, 92, 37, 92, 27, 56, 29, 28, 60, 0, 0, 2, 0, 67, 255, 248, 4, 158, 5, 180, 0, 109, 0, 137, 0, 0, 65, 54, 2, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 6, 6, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 39, 6, 6, 35, 38, 38, 39, 38, 38, 39, 38, 54, 55, 54, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 54, 55, 19, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 6, 6, 23, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 5, 54, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 3, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 54, 54, 4, 136, 22, 47, 93, 47, 134, 89, 100, 171, 72, 73, 116, 43, 44, 57, 14, 13, 2, 14, 14, 62, 52, 51, 147, 98, 68, 134, 57, 22, 54, 118, 63, 80, 113, 37, 38, 40, 7, 7, 8, 11, 12, 46, 35, 34, 93, 59, 58, 143, 84, 73, 103, 34, 68, 22, 14, 4, 11, 10, 10, 30, 21, 22, 57, 38, 26, 23, 3, 3, 5, 3, 118, 32, 87, 55, 63, 103, 41, 42, 64, 23, 23, 30, 8, 4, 7, 2, 1, 14, 16, 16, 54, 41, 33, 57, 25, 25, 44, 20, 11, 71, 60, 56, 89, 35, 34, 51, 18, 18, 22, 253, 91, 6, 20, 15, 15, 43, 29, 29, 74, 47, 14, 24, 13, 114, 14, 35, 20, 21, 49, 29, 20, 24, 6, 6, 2, 2, 1, 6, 3, 27, 146, 1, 52, 99, 49, 59, 2, 2, 65, 57, 58, 155, 86, 87, 182, 85, 82, 165, 76, 77, 134, 49, 50, 58, 1, 1, 35, 38, 119, 29, 35, 1, 49, 42, 42, 110, 63, 62, 132, 63, 70, 153, 73, 72, 131, 49, 48, 54, 2, 2, 50, 40, 81, 250, 114, 25, 75, 41, 41, 82, 32, 32, 39, 2, 1, 28, 20, 20, 44, 18, 1, 249, 44, 46, 1, 2, 43, 37, 38, 100, 55, 55, 114, 51, 27, 72, 38, 39, 75, 29, 30, 37, 20, 17, 16, 44, 24, 57, 63, 2, 1, 46, 39, 38, 100, 54, 53, 105, 86, 36, 84, 42, 42, 77, 29, 29, 34, 3, 1, 7, 5, 254, 62, 22, 43, 17, 18, 20, 2, 1, 26, 20, 19, 47, 24, 23, 39, 0, 0, 2, 255, 215, 254, 14, 4, 146, 5, 197, 0, 112, 0, 148, 0, 0, 65, 54, 38, 39, 38, 38, 39, 38, 38, 39, 38, 38, 39, 38, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 51, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 6, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 22, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 1, 22, 22, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 38, 38, 39, 38, 38, 39, 38, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 55, 22, 22, 4, 53, 5, 24, 24, 31, 97, 56, 39, 84, 42, 32, 70, 33, 34, 58, 20, 21, 20, 6, 9, 65, 47, 47, 111, 54, 63, 96, 32, 32, 29, 4, 180, 6, 55, 55, 55, 161, 100, 59, 121, 56, 57, 99, 38, 39, 49, 5, 4, 11, 18, 10, 31, 20, 46, 78, 29, 30, 38, 4, 8, 62, 56, 24, 55, 30, 39, 88, 44, 30, 68, 34, 33, 60, 22, 21, 21, 5, 8, 66, 47, 48, 111, 53, 65, 106, 36, 36, 36, 5, 185, 5, 64, 61, 61, 170, 100, 90, 181, 74, 73, 98, 8, 4, 19, 27, 10, 24, 15, 46, 80, 31, 30, 37, 254, 47, 30, 69, 34, 34, 62, 22, 22, 21, 6, 6, 35, 26, 27, 66, 37, 9, 17, 9, 28, 57, 29, 49, 109, 43, 44, 49, 9, 7, 39, 29, 24, 59, 34, 37, 76, 1, 183, 61, 98, 40, 49, 75, 27, 19, 32, 14, 10, 22, 14, 14, 36, 25, 24, 64, 42, 60, 85, 27, 26, 23, 1, 2, 42, 37, 37, 101, 61, 102, 159, 55, 54, 59, 2, 1, 17, 19, 20, 61, 42, 42, 108, 66, 48, 91, 40, 25, 47, 21, 22, 56, 35, 35, 87, 52, 95, 135, 47, 21, 35, 15, 21, 33, 15, 10, 22, 14, 15, 37, 24, 25, 62, 40, 59, 85, 26, 27, 24, 1, 1, 38, 36, 36, 104, 66, 2, 106, 160, 54, 54, 56, 2, 2, 42, 46, 45, 144, 101, 58, 105, 46, 16, 31, 15, 22, 55, 35, 35, 87, 1, 50, 10, 23, 15, 15, 38, 25, 25, 64, 40, 40, 64, 24, 25, 35, 11, 3, 7, 3, 10, 20, 9, 16, 36, 28, 28, 84, 64, 45, 70, 25, 20, 29, 9, 14, 26, 0, 1, 1, 7, 0, 0, 4, 72, 5, 177, 0, 16, 0, 0, 97, 51, 19, 37, 34, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 23, 2, 150, 181, 253, 254, 235, 108, 190, 73, 73, 93, 10, 9, 49, 54, 53, 160, 101, 72, 5, 176, 1, 67, 61, 62, 175, 110, 101, 167, 60, 61, 69, 3, 1, 0, 0, 1, 0, 232, 2, 165, 3, 209, 5, 176, 0, 8, 0, 0, 83, 51, 1, 55, 23, 19, 51, 3, 35, 232, 177, 1, 17, 28, 1, 108, 158, 174, 125, 2, 165, 1, 229, 70, 69, 254, 26, 3, 11, 0, 0, 1, 0, 28, 1, 144, 4, 134, 3, 36, 0, 49, 0, 0, 65, 39, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 23, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 22, 22, 23, 22, 22, 51, 22, 54, 55, 54, 54, 4, 134, 121, 8, 31, 24, 24, 65, 40, 29, 53, 24, 24, 43, 21, 25, 54, 28, 43, 95, 53, 71, 113, 41, 42, 51, 7, 131, 7, 31, 23, 23, 64, 40, 28, 53, 24, 24, 44, 20, 32, 67, 37, 36, 80, 45, 71, 114, 41, 41, 48, 2, 230, 15, 36, 69, 27, 28, 34, 17, 14, 14, 36, 19, 23, 42, 17, 26, 31, 1, 1, 54, 46, 46, 120, 65, 17, 36, 66, 26, 25, 32, 17, 14, 15, 35, 18, 29, 51, 19, 19, 23, 1, 58, 48, 48, 123, 0, 255, 255, 255, 226, 0, 0, 4, 115, 7, 32, 6, 38, 0, 2, 0, 0, 0, 7, 1, 91, 0, 200, 1, 87, 255, 255, 255, 226, 0, 0, 4, 87, 7, 75, 6, 38, 0, 2, 0, 0, 0, 7, 1, 95, 0, 95, 1, 152, 255, 255, 255, 226, 0, 0, 4, 60, 7, 72, 6, 38, 0, 2, 0, 0, 0, 7, 1, 92, 0, 191, 1, 91, 255, 255, 255, 226, 0, 0, 4, 91, 7, 34, 6, 38, 0, 2, 0, 0, 0, 7, 1, 97, 0, 86, 1, 91, 255, 255, 255, 226, 0, 0, 4, 2, 7, 35, 6, 38, 0, 2, 0, 0, 0, 7, 1, 90, 255, 227, 1, 90, 255, 255, 255, 226, 0, 0, 4, 140, 6, 250, 6, 38, 0, 2, 0, 0, 0, 7, 1, 94, 0, 87, 1, 74, 0, 2, 255, 226, 254, 79, 4, 2, 5, 176, 0, 36, 0, 39, 0, 0, 69, 54, 54, 55, 54, 54, 55, 55, 51, 3, 35, 1, 51, 19, 33, 19, 6, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 51, 22, 54, 55, 39, 6, 6, 39, 38, 38, 1, 1, 19, 3, 18, 4, 39, 28, 28, 66, 32, 5, 38, 195, 152, 253, 59, 188, 180, 1, 213, 42, 41, 79, 31, 32, 40, 1, 1, 24, 23, 22, 63, 40, 44, 85, 38, 21, 23, 50, 26, 31, 29, 254, 142, 1, 43, 76, 226, 39, 67, 28, 27, 45, 17, 3, 5, 176, 250, 80, 1, 121, 254, 167, 23, 57, 35, 35, 84, 48, 41, 69, 23, 23, 26, 1, 20, 22, 123, 11, 16, 2, 1, 33, 3, 29, 2, 118, 253, 138, 0, 255, 255, 255, 226, 0, 0, 4, 2, 7, 140, 6, 38, 0, 2, 0, 0, 0, 7, 1, 98, 0, 86, 1, 164, 255, 255, 255, 226, 0, 0, 4, 144, 8, 23, 6, 38, 0, 2, 0, 0, 0, 7, 2, 107, 0, 68, 1, 166, 255, 255, 255, 226, 0, 0, 4, 130, 7, 81, 6, 38, 0, 2, 0, 0, 0, 7, 1, 93, 0, 215, 1, 97, 255, 255, 255, 178, 0, 0, 5, 6, 7, 32, 6, 38, 0, 72, 0, 0, 0, 7, 1, 91, 1, 24, 1, 87, 255, 255, 0, 100, 255, 233, 4, 155, 7, 53, 6, 38, 0, 4, 0, 0, 0, 7, 1, 91, 0, 240, 1, 108, 255, 255, 0, 100, 255, 233, 4, 145, 7, 95, 6, 38, 0, 4, 0, 0, 0, 7, 1, 100, 0, 116, 1, 113, 255, 255, 0, 100, 254, 75, 4, 133, 5, 198, 6, 38, 0, 4, 0, 0, 0, 6, 1, 102, 52, 0, 255, 255, 0, 100, 255, 233, 4, 133, 7, 93, 6, 38, 0, 4, 0, 0, 0, 7, 1, 92, 0, 231, 1, 112, 255, 255, 0, 46, 0, 0, 4, 119, 7, 74, 6, 38, 0, 5, 0, 0, 0, 7, 1, 100, 0, 23, 1, 92, 0, 2, 255, 211, 0, 0, 4, 134, 5, 176, 0, 22, 0, 45, 0, 0, 115, 33, 50, 54, 55, 54, 54, 55, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 37, 3, 35, 7, 51, 33, 55, 35, 19, 23, 22, 22, 23, 22, 22, 23, 22, 22, 7, 7, 6, 6, 7, 6, 6, 7, 39, 19, 61, 1, 83, 151, 250, 94, 94, 121, 22, 15, 11, 13, 24, 25, 85, 59, 62, 162, 99, 254, 196, 111, 220, 27, 221, 1, 142, 27, 215, 85, 155, 70, 109, 40, 40, 56, 15, 16, 4, 9, 16, 18, 88, 69, 69, 186, 117, 133, 89, 103, 91, 90, 246, 144, 107, 89, 166, 73, 72, 125, 44, 48, 55, 2, 1, 253, 129, 151, 151, 1, 231, 1, 3, 39, 34, 35, 95, 55, 59, 132, 67, 110, 109, 191, 70, 71, 82, 1, 1, 2, 3, 0, 255, 255, 0, 72, 0, 0, 4, 161, 7, 32, 6, 38, 0, 6, 0, 0, 0, 7, 1, 91, 0, 190, 1, 87, 255, 255, 0, 72, 0, 0, 4, 161, 7, 75, 6, 38, 0, 6, 0, 0, 0, 7, 1, 95, 0, 85, 1, 152, 255, 255, 0, 72, 0, 0, 4, 161, 7, 74, 6, 38, 0, 6, 0, 0, 0, 7, 1, 100, 0, 66, 1, 92, 255, 255, 0, 72, 0, 0, 4, 161, 7, 72, 6, 38, 0, 6, 0, 0, 0, 7, 1, 92, 0, 181, 1, 91, 255, 255, 0, 72, 0, 0, 4, 161, 7, 34, 6, 38, 0, 6, 0, 0, 0, 7, 1, 97, 0, 76, 1, 91, 255, 255, 0, 72, 0, 0, 4, 161, 7, 27, 6, 38, 0, 6, 0, 0, 0, 7, 1, 96, 0, 65, 1, 91, 255, 255, 0, 72, 0, 0, 4, 161, 7, 35, 6, 38, 0, 6, 0, 0, 0, 7, 1, 90, 255, 217, 1, 90, 255, 255, 0, 72, 0, 0, 4, 161, 6, 250, 6, 38, 0, 6, 0, 0, 0, 7, 1, 94, 0, 77, 1, 74, 0, 1, 0, 65, 254, 73, 4, 146, 5, 176, 0, 28, 0, 0, 65, 35, 3, 1, 35, 3, 51, 19, 1, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 7, 22, 22, 51, 50, 54, 55, 54, 54, 55, 4, 146, 181, 187, 254, 203, 175, 253, 181, 187, 1, 51, 16, 5, 23, 19, 20, 58, 40, 24, 49, 23, 26, 28, 56, 29, 80, 124, 45, 44, 54, 10, 5, 176, 251, 205, 4, 51, 250, 80, 4, 53, 251, 217, 103, 34, 71, 29, 29, 37, 9, 7, 148, 8, 10, 54, 47, 47, 129, 75, 0, 0, 1, 0, 72, 254, 79, 4, 161, 5, 176, 0, 41, 0, 0, 65, 55, 33, 19, 33, 55, 33, 3, 33, 6, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 39, 6, 6, 39, 38, 38, 55, 54, 54, 55, 54, 54, 55, 55, 51, 55, 33, 19, 3, 191, 28, 253, 178, 81, 2, 167, 28, 252, 164, 253, 2, 88, 33, 61, 23, 24, 29, 1, 1, 17, 17, 22, 70, 46, 44, 85, 38, 21, 23, 50, 26, 31, 29, 3, 4, 39, 28, 28, 66, 32, 7, 74, 28, 253, 80, 90, 2, 161, 157, 1, 212, 158, 250, 80, 22, 53, 31, 32, 72, 40, 35, 60, 23, 30, 33, 1, 1, 20, 22, 123, 11, 16, 2, 1, 33, 33, 39, 67, 28, 27, 45, 17, 3, 157, 2, 4, 0, 2, 255, 211, 0, 0, 4, 134, 5, 176, 0, 22, 0, 45, 0, 0, 115, 33, 50, 54, 55, 54, 54, 55, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 37, 3, 35, 7, 51, 33, 55, 35, 19, 23, 22, 22, 23, 22, 22, 23, 22, 22, 7, 7, 6, 6, 7, 6, 6, 7, 39, 19, 61, 1, 83, 151, 250, 94, 94, 121, 22, 15, 11, 13, 24, 25, 85, 59, 62, 162, 99, 254, 196, 111, 220, 27, 221, 1, 142, 27, 215, 85, 155, 70, 109, 40, 40, 56, 15, 16, 4, 9, 16, 18, 88, 69, 69, 186, 117, 133, 89, 103, 91, 90, 246, 144, 107, 89, 166, 73, 72, 125, 44, 48, 55, 2, 1, 253, 129, 151, 151, 1, 231, 1, 3, 39, 34, 35, 95, 55, 59, 132, 67, 110, 109, 191, 70, 71, 82, 1, 1, 2, 3, 0, 255, 255, 0, 96, 255, 232, 4, 133, 7, 96, 6, 38, 0, 8, 0, 0, 0, 7, 1, 95, 0, 108, 1, 173, 255, 255, 0, 96, 255, 232, 4, 133, 7, 93, 6, 38, 0, 8, 0, 0, 0, 7, 1, 92, 0, 204, 1, 112, 255, 255, 0, 96, 254, 37, 4, 133, 5, 198, 6, 38, 0, 8, 0, 0, 0, 7, 1, 104, 0, 119, 254, 207, 0, 2, 0, 29, 0, 0, 4, 251, 5, 176, 0, 19, 0, 23, 0, 0, 65, 19, 35, 3, 33, 19, 35, 3, 35, 7, 51, 3, 51, 19, 33, 3, 51, 19, 51, 55, 1, 33, 55, 33, 4, 127, 50, 171, 50, 253, 190, 50, 170, 50, 111, 25, 111, 178, 170, 117, 2, 66, 117, 171, 178, 124, 25, 254, 158, 253, 190, 34, 2, 66, 4, 143, 1, 33, 254, 223, 1, 33, 254, 223, 143, 252, 0, 2, 161, 253, 95, 4, 0, 143, 254, 175, 194, 0, 255, 255, 0, 32, 0, 0, 4, 180, 7, 72, 6, 38, 0, 9, 0, 0, 0, 7, 1, 92, 0, 170, 1, 91, 255, 255, 0, 64, 0, 0, 4, 148, 7, 32, 6, 38, 0, 10, 0, 0, 0, 7, 1, 91, 0, 140, 1, 87, 255, 255, 0, 64, 0, 0, 4, 148, 7, 75, 6, 38, 0, 10, 0, 0, 0, 7, 1, 95, 0, 35, 1, 152, 255, 255, 0, 64, 0, 0, 4, 148, 7, 72, 6, 38, 0, 10, 0, 0, 0, 7, 1, 92, 0, 131, 1, 91, 255, 255, 0, 64, 0, 0, 4, 148, 7, 34, 6, 38, 0, 10, 0, 0, 0, 7, 1, 97, 0, 26, 1, 91, 255, 255, 0, 64, 0, 0, 4, 148, 7, 27, 6, 38, 0, 10, 0, 0, 0, 7, 1, 96, 0, 15, 1, 91, 255, 255, 0, 64, 0, 0, 4, 148, 7, 35, 6, 38, 0, 10, 0, 0, 0, 7, 1, 90, 255, 167, 1, 90, 255, 255, 0, 64, 0, 0, 4, 148, 6, 250, 6, 38, 0, 10, 0, 0, 0, 7, 1, 94, 0, 27, 1, 74, 0, 1, 0, 64, 254, 79, 4, 148, 5, 176, 0, 41, 0, 0, 65, 7, 33, 3, 33, 7, 33, 6, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 39, 6, 6, 39, 38, 38, 55, 54, 54, 55, 54, 54, 55, 39, 51, 55, 33, 19, 33, 55, 1, 61, 29, 1, 76, 197, 254, 181, 28, 2, 18, 33, 61, 23, 24, 29, 1, 1, 19, 19, 22, 68, 44, 44, 85, 38, 21, 23, 50, 26, 31, 29, 3, 4, 39, 28, 28, 66, 32, 5, 143, 28, 254, 173, 197, 1, 82, 29, 5, 176, 161, 251, 145, 160, 22, 53, 31, 32, 72, 40, 37, 63, 23, 27, 31, 1, 1, 20, 22, 123, 11, 16, 2, 1, 33, 33, 39, 67, 28, 27, 45, 17, 3, 160, 4, 111, 161, 0, 255, 255, 0, 64, 0, 0, 4, 148, 7, 81, 6, 38, 0, 10, 0, 0, 0, 7, 1, 93, 0, 155, 1, 97, 255, 255, 0, 63, 255, 234, 5, 106, 7, 59, 6, 38, 0, 11, 0, 0, 0, 7, 1, 92, 1, 237, 1, 78, 255, 255, 0, 62, 254, 62, 4, 252, 5, 176, 6, 38, 0, 12, 0, 0, 0, 7, 1, 104, 0, 128, 254, 232, 255, 255, 0, 88, 0, 0, 3, 219, 7, 0, 6, 38, 0, 13, 0, 0, 0, 7, 1, 91, 255, 126, 1, 55, 255, 255, 0, 88, 0, 0, 4, 74, 5, 176, 6, 38, 0, 13, 0, 0, 0, 7, 0, 109, 0, 217, 255, 154, 255, 255, 0, 88, 254, 56, 3, 219, 5, 176, 6, 38, 0, 13, 0, 0, 0, 7, 1, 104, 0, 128, 254, 226, 255, 255, 0, 88, 0, 0, 3, 219, 5, 176, 6, 38, 0, 13, 0, 0, 0, 7, 1, 96, 0, 14, 253, 197, 0, 1, 0, 51, 0, 0, 3, 223, 5, 176, 0, 13, 0, 0, 65, 19, 35, 3, 7, 7, 55, 3, 33, 55, 33, 19, 37, 55, 1, 164, 105, 181, 116, 147, 30, 148, 107, 3, 103, 28, 253, 77, 90, 1, 12, 30, 3, 81, 2, 95, 253, 101, 45, 169, 46, 253, 147, 157, 2, 11, 83, 169, 255, 255, 0, 34, 0, 0, 4, 179, 7, 32, 6, 38, 0, 15, 0, 0, 0, 7, 1, 91, 0, 162, 1, 87, 255, 255, 0, 34, 0, 0, 4, 179, 7, 74, 6, 38, 0, 15, 0, 0, 0, 7, 1, 100, 0, 38, 1, 92, 255, 255, 0, 34, 254, 56, 4, 179, 5, 176, 6, 38, 0, 15, 0, 0, 0, 7, 1, 104, 0, 78, 254, 226, 255, 255, 0, 34, 0, 0, 4, 179, 7, 81, 6, 38, 0, 15, 0, 0, 0, 7, 1, 93, 0, 177, 1, 97, 255, 255, 0, 102, 255, 234, 4, 122, 7, 53, 6, 38, 0, 16, 0, 0, 0, 7, 1, 91, 0, 207, 1, 108, 255, 255, 0, 102, 255, 234, 4, 109, 7, 96, 6, 38, 0, 16, 0, 0, 0, 7, 1, 95, 0, 102, 1, 173, 255, 255, 0, 102, 255, 234, 4, 109, 7, 93, 6, 38, 0, 16, 0, 0, 0, 7, 1, 92, 0, 198, 1, 112, 255, 255, 0, 102, 255, 234, 4, 109, 7, 55, 6, 38, 0, 16, 0, 0, 0, 7, 1, 97, 0, 93, 1, 112, 255, 255, 0, 102, 255, 234, 4, 109, 7, 56, 6, 38, 0, 16, 0, 0, 0, 7, 1, 90, 255, 234, 1, 111, 0, 2, 0, 95, 255, 234, 5, 60, 5, 251, 0, 50, 0, 88, 0, 0, 65, 55, 54, 38, 39, 54, 54, 55, 54, 54, 55, 7, 6, 6, 7, 6, 6, 7, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 39, 7, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 39, 38, 54, 55, 55, 54, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 23, 22, 6, 4, 66, 26, 13, 13, 30, 54, 87, 31, 34, 41, 7, 159, 7, 23, 18, 18, 53, 37, 21, 51, 30, 40, 100, 60, 90, 151, 61, 62, 97, 35, 36, 47, 13, 26, 10, 3, 15, 15, 60, 47, 47, 131, 86, 90, 151, 62, 61, 96, 36, 35, 47, 140, 27, 9, 30, 22, 23, 62, 41, 41, 106, 65, 62, 85, 28, 28, 28, 5, 5, 5, 7, 28, 9, 30, 23, 23, 63, 42, 41, 105, 65, 62, 85, 28, 27, 28, 5, 4, 7, 2, 133, 165, 93, 199, 91, 15, 55, 39, 44, 115, 70, 1, 38, 70, 28, 29, 40, 8, 30, 51, 20, 26, 31, 1, 2, 54, 48, 49, 132, 74, 75, 159, 77, 166, 71, 152, 73, 73, 132, 50, 50, 61, 2, 2, 54, 48, 48, 132, 75, 74, 159, 246, 170, 53, 116, 56, 57, 102, 38, 39, 43, 2, 2, 51, 41, 40, 104, 55, 55, 108, 45, 169, 52, 116, 57, 56, 101, 39, 38, 43, 2, 2, 50, 40, 40, 103, 54, 55, 108, 0, 255, 255, 0, 102, 255, 234, 5, 52, 7, 95, 6, 38, 0, 16, 0, 0, 0, 7, 1, 99, 0, 211, 1, 112, 255, 255, 0, 102, 255, 234, 4, 147, 7, 15, 6, 38, 0, 16, 0, 0, 0, 7, 1, 94, 0, 94, 1, 95, 0, 3, 255, 198, 255, 163, 5, 15, 5, 236, 0, 46, 0, 69, 0, 86, 0, 0, 65, 55, 54, 54, 39, 38, 38, 39, 19, 35, 7, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 7, 6, 6, 23, 22, 22, 23, 3, 51, 55, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 37, 55, 54, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 23, 1, 38, 38, 53, 52, 54, 37, 7, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 1, 22, 6, 4, 65, 26, 7, 3, 5, 5, 22, 19, 221, 151, 134, 19, 45, 26, 39, 99, 60, 90, 151, 61, 62, 97, 35, 36, 48, 12, 26, 8, 2, 7, 7, 29, 24, 219, 151, 140, 48, 129, 88, 90, 151, 62, 61, 96, 36, 35, 47, 252, 229, 28, 9, 30, 23, 23, 63, 42, 41, 105, 65, 38, 62, 25, 21, 33, 12, 253, 151, 7, 7, 6, 2, 148, 27, 9, 30, 22, 23, 62, 41, 41, 106, 65, 62, 84, 28, 2, 94, 7, 6, 2, 133, 165, 50, 105, 53, 53, 103, 47, 1, 39, 180, 24, 43, 17, 25, 30, 1, 2, 54, 48, 49, 132, 74, 75, 159, 77, 166, 54, 116, 57, 58, 110, 49, 254, 219, 187, 51, 61, 2, 2, 54, 48, 48, 132, 75, 74, 159, 75, 169, 52, 116, 57, 56, 101, 39, 38, 43, 2, 1, 21, 18, 15, 42, 24, 252, 197, 34, 72, 35, 36, 71, 202, 170, 53, 116, 56, 57, 102, 38, 39, 43, 2, 2, 49, 40, 3, 42, 60, 119, 0, 255, 255, 255, 198, 255, 163, 5, 15, 7, 94, 6, 38, 0, 219, 0, 0, 0, 7, 1, 91, 0, 201, 1, 149, 255, 255, 0, 102, 255, 234, 4, 137, 7, 102, 6, 38, 0, 16, 0, 0, 0, 7, 1, 93, 0, 222, 1, 118, 255, 255, 0, 71, 0, 0, 4, 127, 7, 20, 6, 38, 0, 19, 0, 0, 0, 7, 1, 91, 0, 185, 1, 75, 255, 255, 0, 71, 0, 0, 4, 127, 7, 62, 6, 38, 0, 19, 0, 0, 0, 7, 1, 100, 0, 61, 1, 80, 255, 255, 0, 71, 254, 56, 4, 127, 5, 176, 6, 38, 0, 19, 0, 0, 0, 7, 1, 104, 0, 102, 254, 226, 255, 255, 0, 83, 255, 234, 4, 141, 7, 53, 6, 38, 0, 20, 0, 0, 0, 7, 1, 91, 0, 183, 1, 108, 255, 255, 0, 83, 255, 234, 4, 141, 7, 95, 6, 38, 0, 20, 0, 0, 0, 7, 1, 100, 0, 59, 1, 113, 255, 255, 0, 83, 254, 66, 4, 141, 5, 198, 6, 38, 0, 20, 0, 0, 0, 6, 1, 102, 87, 247, 255, 255, 0, 83, 255, 234, 4, 141, 7, 93, 6, 38, 0, 20, 0, 0, 0, 7, 1, 92, 0, 174, 1, 112, 0, 1, 0, 194, 0, 0, 4, 247, 5, 176, 0, 15, 0, 0, 65, 55, 35, 19, 33, 55, 33, 7, 33, 3, 35, 7, 51, 3, 51, 19, 3, 184, 27, 229, 57, 1, 180, 28, 251, 231, 28, 1, 181, 57, 214, 27, 215, 142, 176, 142, 3, 55, 151, 1, 68, 158, 158, 254, 188, 151, 252, 201, 3, 55, 255, 255, 0, 194, 0, 0, 4, 247, 7, 62, 6, 38, 0, 21, 0, 0, 0, 7, 1, 100, 0, 71, 1, 80, 255, 255, 0, 104, 255, 234, 4, 181, 7, 20, 6, 38, 0, 22, 0, 0, 0, 7, 1, 91, 0, 227, 1, 75, 255, 255, 0, 104, 255, 234, 4, 181, 7, 63, 6, 38, 0, 22, 0, 0, 0, 7, 1, 95, 0, 122, 1, 140, 255, 255, 0, 104, 255, 234, 4, 181, 7, 60, 6, 38, 0, 22, 0, 0, 0, 7, 1, 92, 0, 218, 1, 79, 255, 255, 0, 104, 255, 234, 4, 181, 7, 22, 6, 38, 0, 22, 0, 0, 0, 7, 1, 97, 0, 113, 1, 79, 255, 255, 0, 104, 255, 234, 4, 181, 7, 23, 6, 38, 0, 22, 0, 0, 0, 7, 1, 90, 255, 254, 1, 78, 0, 1, 0, 104, 255, 234, 5, 241, 5, 233, 0, 43, 0, 0, 65, 35, 3, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 19, 35, 3, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 19, 54, 54, 55, 54, 54, 55, 7, 6, 6, 7, 6, 6, 7, 4, 181, 175, 172, 12, 56, 43, 44, 117, 71, 67, 91, 27, 27, 18, 7, 165, 172, 170, 11, 44, 51, 50, 154, 100, 106, 182, 70, 70, 92, 15, 112, 82, 127, 45, 49, 59, 9, 159, 8, 26, 22, 22, 64, 46, 5, 176, 252, 38, 64, 122, 47, 47, 55, 2, 2, 61, 47, 47, 116, 59, 3, 219, 252, 37, 94, 175, 67, 68, 83, 2, 2, 78, 68, 67, 180, 100, 2, 151, 7, 48, 43, 46, 141, 94, 1, 50, 81, 31, 31, 39, 8, 255, 255, 0, 104, 255, 234, 5, 72, 7, 62, 6, 38, 0, 22, 0, 0, 0, 7, 1, 99, 0, 231, 1, 79, 255, 255, 0, 104, 255, 234, 4, 181, 6, 238, 6, 38, 0, 22, 0, 0, 0, 7, 1, 94, 0, 114, 1, 62, 0, 1, 0, 105, 254, 126, 4, 181, 5, 176, 0, 60, 0, 0, 65, 35, 3, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 19, 35, 3, 6, 22, 23, 22, 22, 23, 48, 48, 49, 6, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 51, 22, 54, 55, 39, 6, 6, 39, 34, 38, 55, 54, 54, 55, 54, 54, 55, 54, 54, 55, 54, 54, 55, 4, 181, 175, 172, 12, 56, 44, 43, 117, 71, 67, 91, 27, 27, 18, 7, 165, 172, 170, 10, 39, 46, 46, 140, 92, 19, 33, 11, 12, 14, 1, 1, 32, 31, 21, 55, 33, 44, 85, 38, 21, 23, 50, 26, 32, 28, 3, 3, 24, 18, 19, 46, 25, 73, 123, 47, 47, 62, 12, 5, 176, 252, 38, 64, 122, 47, 47, 55, 2, 2, 61, 47, 47, 116, 59, 3, 219, 252, 37, 90, 168, 67, 67, 86, 9, 19, 42, 23, 23, 51, 27, 48, 76, 23, 17, 18, 1, 20, 22, 123, 11, 16, 2, 34, 33, 30, 53, 23, 23, 40, 17, 25, 92, 61, 61, 146, 79, 255, 255, 0, 104, 255, 234, 4, 181, 7, 128, 6, 38, 0, 22, 0, 0, 0, 7, 1, 98, 0, 113, 1, 152, 255, 255, 0, 104, 255, 234, 4, 181, 7, 69, 6, 38, 0, 22, 0, 0, 0, 7, 1, 93, 0, 242, 1, 85, 255, 255, 0, 149, 0, 0, 5, 3, 7, 32, 6, 38, 0, 24, 0, 0, 0, 7, 1, 91, 0, 175, 1, 87, 255, 255, 0, 149, 0, 0, 5, 3, 7, 72, 6, 38, 0, 24, 0, 0, 0, 7, 1, 92, 0, 166, 1, 91, 255, 255, 0, 149, 0, 0, 5, 3, 7, 34, 6, 38, 0, 24, 0, 0, 0, 7, 1, 97, 0, 61, 1, 91, 255, 255, 0, 149, 0, 0, 5, 3, 7, 35, 6, 38, 0, 24, 0, 0, 0, 7, 1, 90, 255, 202, 1, 90, 255, 255, 0, 212, 0, 0, 4, 241, 7, 31, 6, 38, 0, 26, 0, 0, 0, 7, 1, 91, 0, 180, 1, 86, 255, 255, 0, 212, 0, 0, 4, 241, 7, 71, 6, 38, 0, 26, 0, 0, 0, 7, 1, 92, 0, 171, 1, 90, 255, 255, 0, 212, 0, 0, 4, 241, 7, 33, 6, 38, 0, 26, 0, 0, 0, 7, 1, 97, 0, 66, 1, 90, 255, 255, 0, 212, 0, 0, 4, 241, 7, 34, 6, 38, 0, 26, 0, 0, 0, 7, 1, 90, 255, 207, 1, 89, 255, 255, 0, 19, 0, 0, 4, 129, 7, 20, 6, 38, 0, 27, 0, 0, 0, 7, 1, 91, 0, 204, 1, 75, 255, 255, 0, 19, 0, 0, 4, 129, 7, 62, 6, 38, 0, 27, 0, 0, 0, 7, 1, 100, 0, 80, 1, 80, 255, 255, 0, 19, 0, 0, 4, 129, 7, 15, 6, 38, 0, 27, 0, 0, 0, 7, 1, 96, 0, 79, 1, 79, 255, 255, 0, 97, 255, 236, 4, 55, 5, 222, 6, 38, 0, 28, 0, 0, 0, 7, 1, 91, 0, 140, 0, 21, 255, 255, 0, 97, 255, 236, 4, 27, 6, 9, 6, 38, 0, 28, 0, 0, 0, 6, 1, 95, 35, 86, 255, 255, 0, 97, 255, 236, 4, 15, 6, 6, 6, 38, 0, 28, 0, 0, 0, 7, 1, 92, 0, 131, 0, 25, 255, 255, 0, 97, 255, 236, 4, 31, 5, 224, 6, 38, 0, 28, 0, 0, 0, 6, 1, 97, 26, 25, 255, 255, 0, 97, 255, 236, 4, 15, 5, 225, 6, 38, 0, 28, 0, 0, 0, 6, 1, 90, 167, 24, 255, 255, 0, 97, 255, 236, 4, 80, 5, 184, 6, 38, 0, 28, 0, 0, 0, 6, 1, 94, 27, 8, 0, 2, 0, 97, 254, 79, 4, 15, 4, 80, 0, 85, 0, 108, 0, 0, 101, 6, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 39, 6, 6, 39, 38, 38, 55, 54, 54, 55, 54, 54, 55, 55, 51, 55, 38, 54, 55, 19, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 7, 39, 34, 6, 7, 6, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 6, 6, 37, 38, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 55, 54, 54, 51, 23, 7, 6, 6, 7, 6, 6, 2, 247, 39, 75, 30, 30, 37, 1, 1, 22, 20, 22, 66, 42, 44, 85, 38, 21, 23, 50, 26, 31, 29, 3, 4, 39, 28, 28, 66, 32, 6, 36, 2, 13, 1, 9, 84, 9, 52, 50, 51, 142, 82, 74, 154, 64, 65, 88, 9, 181, 10, 50, 35, 34, 83, 43, 49, 81, 28, 28, 27, 6, 13, 206, 60, 123, 57, 58, 102, 39, 39, 49, 4, 4, 49, 45, 44, 121, 68, 54, 100, 45, 36, 68, 32, 2, 2, 254, 216, 41, 68, 24, 24, 22, 5, 4, 20, 15, 19, 52, 31, 55, 125, 55, 155, 39, 27, 69, 39, 41, 93, 25, 23, 56, 34, 35, 81, 46, 39, 66, 24, 24, 28, 1, 1, 20, 22, 123, 11, 16, 2, 1, 33, 33, 39, 67, 28, 27, 45, 17, 3, 17, 54, 110, 55, 1, 247, 87, 134, 47, 46, 48, 2, 1, 39, 40, 40, 121, 82, 1, 45, 65, 21, 21, 20, 1, 1, 28, 27, 27, 78, 51, 86, 1, 15, 17, 18, 56, 40, 41, 108, 70, 72, 114, 40, 40, 44, 1, 1, 23, 22, 18, 47, 28, 24, 46, 92, 1, 24, 23, 22, 66, 43, 30, 49, 19, 25, 36, 12, 22, 14, 1, 220, 37, 61, 21, 23, 24, 0, 255, 255, 0, 97, 255, 236, 4, 15, 6, 74, 6, 38, 0, 28, 0, 0, 0, 6, 1, 98, 26, 98, 255, 255, 0, 97, 255, 236, 4, 84, 6, 213, 6, 38, 0, 28, 0, 0, 0, 6, 2, 107, 8, 100, 255, 255, 0, 97, 255, 236, 4, 70, 6, 15, 6, 38, 0, 28, 0, 0, 0, 7, 1, 93, 0, 155, 0, 31, 255, 255, 255, 241, 255, 235, 4, 163, 5, 223, 6, 38, 0, 73, 0, 0, 0, 7, 1, 91, 0, 163, 0, 22, 255, 255, 0, 122, 255, 233, 4, 73, 5, 222, 6, 38, 0, 30, 0, 0, 0, 7, 1, 91, 0, 158, 0, 21, 255, 255, 0, 122, 255, 233, 4, 63, 6, 8, 6, 38, 0, 30, 0, 0, 0, 6, 1, 100, 34, 26, 255, 255, 0, 122, 254, 75, 4, 44, 4, 81, 6, 38, 0, 30, 0, 0, 0, 6, 1, 102, 72, 0, 255, 255, 0, 122, 255, 233, 4, 44, 6, 6, 6, 38, 0, 30, 0, 0, 0, 7, 1, 92, 0, 149, 0, 25, 255, 255, 0, 48, 255, 235, 6, 25, 6, 21, 4, 38, 0, 31, 186, 0, 0, 7, 0, 109, 2, 168, 255, 255, 0, 2, 0, 103, 255, 235, 5, 54, 6, 0, 0, 43, 0, 72, 0, 0, 65, 55, 35, 55, 35, 7, 35, 7, 51, 3, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 7, 51, 19, 1, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 23, 3, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 39, 38, 52, 5, 27, 27, 191, 26, 181, 28, 245, 27, 244, 48, 23, 53, 30, 37, 84, 45, 77, 130, 52, 53, 83, 30, 30, 38, 8, 2, 6, 6, 14, 14, 51, 40, 39, 109, 70, 55, 99, 44, 31, 56, 26, 19, 164, 214, 252, 197, 3, 9, 51, 43, 43, 124, 84, 34, 58, 24, 32, 49, 16, 87, 25, 58, 33, 33, 78, 45, 51, 74, 25, 25, 28, 6, 7, 4, 210, 151, 151, 151, 151, 254, 252, 29, 44, 16, 19, 19, 1, 2, 44, 40, 40, 108, 63, 63, 136, 67, 21, 59, 124, 59, 60, 107, 41, 41, 49, 2, 1, 23, 24, 16, 45, 27, 114, 4, 210, 253, 56, 21, 72, 145, 59, 58, 72, 3, 1, 16, 15, 19, 60, 39, 254, 7, 34, 58, 21, 20, 23, 2, 1, 36, 30, 29, 76, 43, 42, 88, 255, 255, 0, 108, 255, 234, 4, 51, 5, 223, 6, 38, 0, 32, 0, 0, 0, 7, 1, 91, 0, 136, 0, 22, 255, 255, 0, 108, 255, 234, 4, 43, 6, 10, 6, 38, 0, 32, 0, 0, 0, 6, 1, 95, 31, 87, 255, 255, 0, 108, 255, 234, 4, 43, 6, 9, 6, 38, 0, 32, 0, 0, 0, 6, 1, 100, 12, 27, 255, 255, 0, 108, 255, 234, 4, 43, 6, 7, 6, 38, 0, 32, 0, 0, 0, 6, 1, 92, 127, 26, 255, 255, 0, 108, 255, 234, 4, 43, 5, 225, 6, 38, 0, 32, 0, 0, 0, 6, 1, 97, 22, 26, 255, 255, 0, 108, 255, 234, 4, 43, 5, 218, 6, 38, 0, 32, 0, 0, 0, 6, 1, 96, 11, 26, 255, 255, 0, 108, 255, 234, 4, 43, 5, 226, 6, 38, 0, 32, 0, 0, 0, 6, 1, 90, 163, 25, 255, 255, 0, 108, 255, 234, 4, 76, 5, 185, 6, 38, 0, 32, 0, 0, 0, 6, 1, 94, 23, 9, 0, 1, 0, 74, 254, 72, 4, 12, 4, 79, 0, 49, 0, 0, 115, 51, 19, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 3, 6, 6, 7, 6, 6, 35, 34, 38, 39, 7, 22, 22, 51, 22, 54, 55, 54, 54, 55, 19, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 55, 7, 74, 181, 141, 24, 54, 30, 36, 83, 47, 61, 75, 20, 19, 7, 6, 126, 6, 24, 20, 21, 60, 41, 25, 50, 24, 30, 29, 59, 31, 81, 126, 46, 45, 55, 10, 126, 9, 21, 35, 35, 122, 91, 67, 113, 48, 29, 52, 23, 23, 161, 3, 43, 29, 48, 17, 20, 21, 1, 2, 43, 36, 36, 96, 53, 253, 0, 36, 69, 26, 27, 32, 8, 8, 156, 9, 11, 1, 52, 47, 47, 129, 76, 3, 3, 82, 150, 58, 58, 70, 2, 1, 38, 35, 21, 51, 30, 155, 1, 0, 2, 0, 108, 254, 97, 4, 43, 4, 80, 0, 68, 0, 82, 0, 0, 101, 39, 6, 6, 39, 38, 38, 39, 38, 38, 55, 52, 54, 53, 55, 33, 55, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 48, 48, 49, 6, 6, 7, 6, 22, 23, 22, 22, 51, 22, 54, 55, 39, 6, 6, 39, 38, 38, 55, 54, 54, 55, 54, 54, 55, 54, 54, 1, 22, 22, 23, 22, 22, 7, 7, 37, 54, 54, 55, 54, 54, 3, 209, 104, 64, 159, 94, 73, 106, 32, 29, 26, 4, 1, 1, 2, 233, 13, 13, 30, 45, 45, 154, 112, 77, 139, 59, 60, 97, 36, 37, 46, 8, 5, 9, 42, 50, 49, 153, 101, 51, 70, 2, 1, 25, 25, 22, 62, 38, 44, 85, 38, 21, 23, 50, 26, 31, 29, 3, 3, 35, 26, 26, 62, 30, 75, 131, 254, 255, 59, 88, 28, 28, 20, 9, 4, 253, 204, 21, 64, 44, 43, 112, 187, 88, 66, 80, 3, 2, 62, 50, 45, 113, 60, 5, 8, 5, 6, 83, 100, 189, 74, 74, 91, 3, 2, 42, 38, 39, 106, 63, 63, 139, 71, 43, 99, 180, 70, 70, 90, 9, 42, 106, 66, 43, 69, 24, 22, 24, 1, 20, 22, 123, 11, 16, 2, 1, 33, 33, 37, 64, 27, 26, 43, 17, 24, 91, 3, 61, 2, 51, 41, 41, 104, 55, 18, 2, 58, 114, 44, 44, 53, 255, 255, 0, 45, 254, 82, 4, 82, 6, 9, 6, 38, 0, 34, 0, 0, 0, 6, 1, 95, 14, 86, 255, 255, 0, 45, 254, 82, 4, 82, 6, 6, 6, 38, 0, 34, 0, 0, 0, 6, 1, 92, 110, 25, 255, 255, 0, 45, 254, 82, 4, 82, 6, 149, 6, 38, 0, 34, 0, 0, 0, 6, 2, 78, 22, 88, 0, 1, 0, 79, 0, 0, 4, 47, 6, 0, 0, 39, 0, 0, 65, 55, 33, 55, 35, 7, 35, 7, 51, 3, 51, 19, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 3, 51, 19, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 19, 2, 228, 27, 254, 243, 29, 181, 27, 171, 27, 172, 214, 181, 137, 28, 67, 38, 37, 83, 46, 59, 77, 22, 22, 12, 6, 115, 181, 114, 9, 24, 36, 36, 124, 92, 54, 97, 43, 44, 77, 33, 59, 4, 210, 151, 151, 151, 151, 251, 46, 3, 19, 34, 58, 22, 21, 23, 1, 2, 41, 35, 36, 93, 53, 253, 84, 2, 169, 82, 151, 58, 58, 70, 2, 1, 27, 24, 24, 68, 40, 1, 58, 255, 255, 0, 64, 0, 0, 4, 32, 7, 111, 6, 38, 0, 35, 0, 0, 0, 7, 1, 92, 0, 102, 1, 130, 255, 255, 0, 92, 0, 0, 4, 92, 5, 201, 6, 38, 1, 109, 0, 0, 0, 7, 1, 91, 0, 177, 0, 0, 255, 255, 0, 92, 0, 0, 4, 64, 5, 244, 6, 38, 1, 109, 0, 0, 0, 6, 1, 95, 72, 65, 255, 255, 0, 92, 0, 0, 4, 37, 5, 241, 6, 38, 1, 109, 0, 0, 0, 7, 1, 92, 0, 168, 0, 4, 255, 255, 0, 92, 0, 0, 4, 68, 5, 203, 6, 38, 1, 109, 0, 0, 0, 6, 1, 97, 63, 4, 255, 255, 0, 92, 0, 0, 3, 233, 5, 204, 6, 38, 1, 109, 0, 0, 0, 6, 1, 90, 204, 3, 255, 255, 0, 92, 0, 0, 4, 117, 5, 164, 6, 38, 1, 109, 0, 0, 0, 6, 1, 94, 64, 244, 0, 2, 0, 92, 254, 79, 3, 233, 5, 197, 0, 39, 0, 63, 0, 0, 65, 7, 33, 3, 33, 7, 33, 6, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 39, 6, 6, 39, 38, 38, 55, 54, 54, 55, 54, 54, 55, 39, 33, 55, 33, 19, 3, 20, 22, 23, 22, 22, 55, 54, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 7, 6, 6, 7, 6, 6, 1, 24, 28, 1, 101, 132, 254, 156, 29, 1, 95, 33, 61, 23, 24, 29, 1, 1, 22, 21, 22, 66, 41, 44, 85, 38, 21, 23, 50, 26, 31, 29, 3, 4, 39, 28, 28, 66, 32, 5, 1, 91, 29, 254, 169, 160, 155, 13, 11, 14, 44, 26, 26, 42, 14, 12, 14, 15, 14, 15, 39, 24, 24, 39, 14, 15, 16, 4, 58, 161, 253, 7, 160, 22, 53, 31, 32, 72, 40, 40, 66, 23, 25, 27, 1, 1, 20, 22, 123, 11, 16, 2, 1, 33, 33, 39, 67, 28, 27, 45, 17, 3, 160, 3, 154, 1, 25, 21, 36, 13, 17, 17, 1, 1, 18, 16, 14, 38, 22, 24, 40, 14, 14, 16, 1, 1, 17, 14, 15, 42, 255, 255, 0, 92, 0, 0, 4, 107, 5, 250, 6, 38, 1, 109, 0, 0, 0, 7, 1, 93, 0, 192, 0, 10, 255, 255, 0, 1, 254, 73, 4, 77, 5, 232, 6, 38, 1, 113, 0, 0, 0, 7, 1, 92, 0, 208, 255, 251, 255, 255, 0, 66, 254, 64, 4, 100, 6, 0, 6, 38, 0, 38, 0, 0, 0, 7, 1, 104, 0, 47, 254, 234, 255, 255, 0, 92, 0, 0, 4, 155, 7, 102, 6, 38, 0, 39, 0, 0, 0, 7, 1, 91, 0, 240, 1, 157, 255, 255, 0, 22, 0, 0, 5, 25, 6, 4, 4, 38, 0, 39, 186, 0, 0, 7, 0, 109, 1, 168, 255, 238, 255, 255, 0, 92, 254, 57, 3, 233, 6, 0, 6, 38, 0, 39, 0, 0, 0, 7, 1, 104, 0, 154, 254, 227, 255, 255, 0, 21, 0, 0, 4, 24, 6, 0, 4, 38, 0, 39, 185, 0, 0, 7, 1, 96, 0, 209, 253, 231, 0, 1, 0, 92, 0, 0, 4, 79, 6, 0, 0, 17, 0, 0, 65, 7, 33, 3, 5, 7, 37, 3, 33, 7, 33, 55, 33, 19, 37, 55, 5, 19, 1, 103, 29, 1, 102, 84, 254, 157, 30, 1, 99, 97, 254, 156, 29, 3, 112, 29, 254, 169, 112, 1, 50, 27, 254, 209, 97, 6, 0, 161, 254, 30, 154, 171, 154, 253, 206, 160, 160, 2, 134, 133, 170, 131, 2, 46, 255, 255, 0, 64, 0, 0, 4, 36, 5, 222, 6, 38, 0, 41, 0, 0, 0, 6, 1, 91, 121, 21, 255, 255, 0, 64, 0, 0, 4, 31, 6, 8, 6, 38, 0, 41, 0, 0, 0, 6, 1, 100, 254, 26, 255, 255, 0, 64, 254, 56, 4, 31, 4, 79, 6, 38, 0, 41, 0, 0, 0, 7, 1, 104, 0, 93, 254, 226, 255, 255, 0, 64, 0, 0, 4, 51, 6, 15, 6, 38, 0, 41, 0, 0, 0, 7, 1, 93, 0, 136, 0, 31, 255, 255, 0, 99, 255, 233, 4, 48, 5, 222, 6, 38, 0, 42, 0, 0, 0, 7, 1, 91, 0, 130, 0, 21, 255, 255, 0, 99, 255, 233, 4, 48, 6, 9, 6, 38, 0, 42, 0, 0, 0, 6, 1, 95, 25, 86, 255, 255, 0, 99, 255, 233, 4, 48, 6, 6, 6, 38, 0, 42, 0, 0, 0, 6, 1, 92, 121, 25, 255, 255, 0, 99, 255, 233, 4, 48, 5, 224, 6, 38, 0, 42, 0, 0, 0, 6, 1, 97, 16, 25, 255, 255, 0, 99, 255, 233, 4, 48, 5, 225, 6, 38, 0, 42, 0, 0, 0, 6, 1, 90, 157, 24, 0, 2, 0, 93, 255, 233, 4, 233, 4, 172, 0, 44, 0, 73, 0, 0, 65, 6, 6, 7, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 55, 54, 38, 39, 54, 54, 55, 54, 54, 55, 7, 6, 6, 3, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 23, 22, 22, 4, 28, 19, 54, 38, 49, 139, 91, 80, 139, 58, 59, 95, 35, 35, 45, 9, 3, 11, 38, 49, 25, 67, 42, 39, 95, 55, 118, 193, 71, 71, 89, 14, 2, 8, 20, 30, 53, 83, 29, 30, 36, 7, 158, 7, 22, 190, 2, 11, 54, 45, 46, 128, 83, 52, 77, 27, 52, 28, 10, 3, 10, 54, 45, 45, 128, 84, 40, 65, 24, 23, 35, 12, 25, 10, 4, 35, 28, 39, 7, 53, 62, 2, 2, 41, 37, 38, 105, 62, 63, 141, 73, 22, 102, 192, 76, 39, 64, 22, 21, 25, 1, 3, 90, 77, 76, 202, 109, 23, 83, 159, 69, 16, 58, 41, 41, 109, 66, 2, 38, 70, 253, 235, 15, 80, 144, 58, 58, 72, 3, 2, 36, 30, 58, 183, 84, 22, 72, 147, 59, 59, 73, 3, 2, 23, 19, 18, 48, 28, 59, 138, 0, 255, 255, 0, 99, 255, 233, 4, 231, 6, 8, 6, 38, 0, 42, 0, 0, 0, 7, 1, 99, 0, 134, 0, 25, 255, 255, 0, 99, 255, 233, 4, 70, 5, 184, 6, 38, 0, 42, 0, 0, 0, 6, 1, 94, 17, 8, 0, 3, 0, 86, 255, 121, 4, 70, 4, 185, 0, 37, 0, 54, 0, 71, 0, 0, 83, 7, 6, 22, 23, 22, 22, 23, 7, 51, 55, 22, 22, 23, 22, 54, 55, 54, 54, 55, 55, 54, 38, 39, 38, 38, 39, 55, 35, 7, 38, 38, 39, 38, 6, 7, 6, 6, 23, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 1, 38, 38, 39, 38, 54, 37, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 1, 22, 22, 23, 22, 6, 110, 3, 6, 8, 16, 16, 53, 39, 147, 131, 104, 39, 92, 54, 118, 193, 71, 71, 89, 14, 2, 6, 7, 14, 15, 51, 37, 148, 131, 103, 41, 97, 57, 121, 192, 70, 70, 89, 165, 3, 10, 54, 45, 45, 128, 84, 34, 57, 24, 254, 69, 17, 21, 4, 5, 1, 2, 88, 2, 11, 54, 45, 46, 128, 83, 31, 53, 23, 1, 184, 15, 18, 4, 4, 1, 2, 32, 22, 62, 122, 55, 56, 98, 39, 225, 160, 20, 23, 2, 3, 90, 77, 76, 202, 109, 23, 61, 119, 56, 55, 99, 39, 226, 158, 23, 26, 2, 3, 88, 81, 80, 203, 131, 22, 72, 147, 59, 59, 73, 3, 1, 17, 16, 253, 88, 30, 70, 37, 37, 75, 67, 22, 72, 145, 58, 58, 72, 3, 1, 14, 13, 2, 161, 30, 69, 36, 36, 72, 255, 255, 0, 86, 255, 121, 4, 70, 5, 221, 6, 38, 1, 56, 0, 0, 0, 6, 1, 91, 93, 20, 255, 255, 0, 99, 255, 233, 4, 60, 6, 15, 6, 38, 0, 42, 0, 0, 0, 7, 1, 93, 0, 145, 0, 31, 255, 255, 0, 215, 0, 0, 4, 97, 5, 222, 6, 38, 0, 45, 0, 0, 0, 6, 1, 91, 101, 21, 255, 255, 0, 215, 0, 0, 4, 97, 6, 8, 6, 38, 0, 45, 0, 0, 0, 6, 1, 100, 234, 26, 255, 255, 0, 94, 254, 56, 4, 97, 4, 80, 6, 38, 0, 45, 0, 0, 0, 7, 1, 104, 255, 177, 254, 226, 255, 255, 0, 124, 255, 234, 4, 47, 5, 222, 6, 38, 0, 46, 0, 0, 0, 7, 1, 91, 0, 132, 0, 21, 255, 255, 0, 124, 255, 234, 4, 40, 6, 8, 6, 38, 0, 46, 0, 0, 0, 6, 1, 100, 8, 26, 255, 255, 0, 124, 254, 67, 4, 40, 4, 79, 6, 38, 0, 46, 0, 0, 0, 6, 1, 102, 74, 248, 255, 255, 0, 124, 255, 234, 4, 40, 6, 6, 6, 38, 0, 46, 0, 0, 0, 6, 1, 92, 123, 25, 0, 1, 0, 196, 255, 236, 4, 54, 5, 64, 0, 40, 0, 0, 65, 55, 35, 55, 33, 55, 33, 19, 35, 3, 33, 7, 33, 7, 35, 7, 51, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 39, 6, 6, 39, 38, 38, 39, 38, 38, 55, 55, 3, 54, 27, 227, 31, 1, 144, 25, 254, 112, 46, 182, 46, 254, 237, 25, 1, 20, 31, 211, 27, 213, 39, 13, 28, 34, 34, 112, 81, 37, 77, 38, 36, 69, 31, 17, 54, 109, 55, 48, 63, 17, 17, 13, 7, 42, 2, 90, 151, 186, 143, 1, 6, 254, 250, 143, 186, 151, 234, 79, 145, 50, 51, 61, 1, 1, 4, 7, 6, 22, 17, 133, 12, 20, 2, 1, 34, 28, 28, 76, 44, 252, 0, 255, 255, 0, 176, 255, 235, 5, 8, 6, 179, 4, 38, 0, 47, 236, 0, 0, 7, 0, 109, 1, 151, 0, 157, 255, 255, 0, 141, 255, 234, 4, 84, 5, 202, 6, 38, 0, 48, 0, 0, 0, 6, 1, 91, 125, 1, 255, 255, 0, 141, 255, 234, 4, 84, 5, 245, 6, 38, 0, 48, 0, 0, 0, 6, 1, 95, 20, 66, 255, 255, 0, 141, 255, 234, 4, 84, 5, 242, 6, 38, 0, 48, 0, 0, 0, 6, 1, 92, 116, 5, 255, 255, 0, 141, 255, 234, 4, 84, 5, 204, 6, 38, 0, 48, 0, 0, 0, 6, 1, 97, 11, 5, 255, 255, 0, 141, 255, 234, 4, 84, 5, 205, 6, 38, 0, 48, 0, 0, 0, 6, 1, 90, 152, 4, 0, 1, 0, 144, 255, 235, 5, 116, 4, 148, 0, 45, 0, 0, 97, 51, 19, 54, 54, 55, 7, 6, 6, 7, 6, 6, 7, 55, 35, 3, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 54, 55, 19, 35, 3, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 2, 245, 163, 139, 152, 168, 17, 160, 7, 25, 20, 18, 49, 33, 24, 182, 135, 28, 68, 40, 37, 86, 48, 63, 68, 14, 15, 2, 6, 107, 181, 108, 6, 4, 14, 12, 49, 40, 33, 91, 58, 61, 106, 46, 34, 61, 27, 3, 32, 20, 182, 170, 1, 47, 79, 29, 26, 37, 10, 139, 252, 247, 43, 66, 21, 20, 19, 1, 2, 56, 43, 43, 105, 50, 2, 134, 253, 125, 59, 118, 53, 52, 87, 31, 27, 31, 1, 1, 30, 29, 21, 57, 33, 0, 255, 255, 0, 141, 255, 234, 4, 226, 5, 244, 6, 38, 0, 48, 0, 0, 0, 7, 1, 99, 0, 129, 0, 5, 255, 255, 0, 141, 255, 234, 4, 84, 5, 165, 6, 38, 0, 48, 0, 0, 0, 6, 1, 94, 12, 245, 0, 1, 0, 141, 254, 79, 4, 84, 4, 58, 0, 60, 0, 0, 97, 51, 19, 35, 3, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 54, 55, 19, 35, 3, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 7, 6, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 51, 22, 54, 55, 39, 6, 6, 39, 38, 38, 55, 54, 54, 55, 54, 54, 55, 3, 146, 6, 188, 182, 135, 28, 71, 42, 36, 83, 47, 63, 68, 14, 15, 2, 6, 107, 181, 108, 9, 17, 34, 33, 123, 97, 58, 104, 44, 36, 65, 28, 21, 37, 70, 28, 28, 34, 1, 1, 25, 23, 22, 63, 39, 44, 85, 38, 21, 23, 50, 26, 31, 29, 3, 4, 39, 28, 28, 66, 32, 4, 58, 252, 247, 44, 67, 21, 19, 18, 1, 2, 56, 43, 43, 105, 50, 2, 134, 253, 125, 83, 163, 65, 65, 81, 2, 1, 28, 27, 22, 58, 35, 132, 23, 55, 33, 34, 77, 45, 42, 69, 24, 22, 25, 1, 20, 22, 123, 11, 16, 2, 1, 33, 33, 39, 67, 28, 27, 45, 17, 0, 255, 255, 0, 141, 255, 234, 4, 84, 6, 54, 6, 38, 0, 48, 0, 0, 0, 6, 1, 98, 11, 78, 255, 255, 0, 141, 255, 234, 4, 84, 5, 251, 6, 38, 0, 48, 0, 0, 0, 7, 1, 93, 0, 140, 0, 11, 255, 255, 0, 132, 0, 0, 4, 218, 5, 202, 6, 38, 0, 50, 0, 0, 0, 7, 1, 91, 0, 132, 0, 1, 255, 255, 0, 132, 0, 0, 4, 218, 5, 242, 6, 38, 0, 50, 0, 0, 0, 6, 1, 92, 123, 5, 255, 255, 0, 132, 0, 0, 4, 218, 5, 204, 6, 38, 0, 50, 0, 0, 0, 6, 1, 97, 18, 5, 255, 255, 0, 132, 0, 0, 4, 218, 5, 205, 6, 38, 0, 50, 0, 0, 0, 6, 1, 90, 159, 4, 255, 255, 255, 228, 254, 72, 4, 188, 5, 202, 6, 38, 0, 52, 0, 0, 0, 7, 1, 91, 0, 145, 0, 1, 255, 255, 255, 228, 254, 72, 4, 188, 5, 242, 6, 38, 0, 52, 0, 0, 0, 7, 1, 92, 0, 136, 0, 5, 255, 255, 255, 228, 254, 72, 4, 188, 5, 204, 6, 38, 0, 52, 0, 0, 0, 6, 1, 97, 31, 5, 255, 255, 255, 228, 254, 72, 4, 188, 5, 205, 6, 38, 0, 52, 0, 0, 0, 6, 1, 90, 172, 4, 255, 255, 0, 61, 0, 0, 4, 70, 5, 202, 6, 38, 0, 53, 0, 0, 0, 7, 1, 91, 0, 150, 0, 1, 255, 255, 0, 61, 0, 0, 4, 70, 5, 244, 6, 38, 0, 53, 0, 0, 0, 6, 1, 100, 26, 6, 255, 255, 0, 61, 0, 0, 4, 70, 5, 197, 6, 38, 0, 53, 0, 0, 0, 6, 1, 96, 25, 5, 0, 1, 2, 35, 4, 191, 3, 112, 5, 201, 0, 3, 0, 0, 65, 3, 35, 19, 3, 112, 129, 204, 199, 4, 191, 1, 10, 254, 246, 0, 0, 1, 1, 231, 4, 191, 3, 171, 5, 201, 0, 3, 0, 0, 65, 3, 51, 1, 2, 196, 221, 150, 1, 46, 5, 201, 254, 246, 1, 10, 0, 1, 1, 46, 4, 227, 3, 125, 5, 237, 0, 8, 0, 0, 65, 39, 35, 5, 7, 55, 55, 23, 23, 3, 125, 211, 106, 254, 240, 2, 153, 172, 118, 146, 4, 254, 239, 238, 27, 1, 149, 150, 1, 0, 0, 1, 0, 240, 4, 228, 3, 171, 5, 240, 0, 37, 0, 0, 65, 39, 6, 6, 7, 6, 6, 7, 6, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 23, 54, 54, 55, 54, 54, 55, 54, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 3, 171, 97, 6, 19, 20, 15, 37, 23, 37, 63, 31, 31, 64, 37, 48, 77, 27, 28, 34, 5, 100, 6, 20, 15, 14, 39, 24, 37, 63, 31, 30, 64, 38, 48, 77, 28, 27, 33, 5, 211, 29, 20, 39, 22, 16, 15, 1, 1, 31, 19, 18, 32, 39, 32, 33, 84, 43, 23, 21, 40, 16, 15, 19, 1, 1, 31, 19, 19, 31, 38, 32, 31, 81, 0, 1, 1, 104, 5, 33, 4, 53, 5, 176, 0, 3, 0, 0, 65, 55, 33, 7, 4, 30, 23, 253, 74, 23, 5, 33, 143, 143, 0, 1, 1, 182, 4, 166, 3, 248, 5, 179, 0, 25, 0, 0, 65, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 55, 39, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 3, 248, 145, 6, 26, 20, 21, 55, 35, 35, 47, 15, 15, 12, 1, 146, 1, 38, 36, 35, 99, 61, 63, 107, 41, 41, 51, 5, 178, 1, 32, 54, 20, 20, 22, 23, 20, 20, 54, 32, 1, 61, 98, 34, 35, 39, 1, 1, 36, 35, 34, 100, 0, 1, 2, 102, 4, 222, 3, 71, 5, 192, 0, 11, 0, 0, 65, 20, 22, 55, 54, 54, 55, 54, 38, 7, 6, 6, 2, 102, 65, 47, 48, 63, 1, 1, 63, 49, 50, 62, 5, 75, 49, 60, 2, 2, 62, 49, 49, 62, 1, 2, 64, 0, 0, 2, 1, 142, 4, 238, 4, 5, 5, 199, 0, 11, 0, 23, 0, 0, 65, 6, 22, 55, 54, 54, 55, 54, 38, 7, 6, 6, 5, 20, 22, 55, 54, 54, 55, 52, 38, 7, 6, 6, 1, 143, 1, 60, 47, 46, 60, 1, 1, 62, 46, 47, 59, 1, 160, 60, 46, 47, 60, 1, 60, 47, 47, 59, 5, 89, 47, 58, 1, 2, 60, 46, 47, 59, 1, 2, 61, 48, 47, 58, 1, 2, 60, 46, 48, 59, 1, 2, 62, 0, 0, 2, 2, 8, 4, 93, 3, 150, 5, 232, 0, 23, 0, 47, 0, 0, 65, 6, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 23, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 2, 9, 1, 27, 25, 25, 68, 40, 43, 76, 29, 28, 34, 2, 1, 26, 24, 24, 68, 40, 43, 77, 29, 29, 36, 97, 2, 20, 16, 15, 41, 23, 21, 33, 11, 11, 10, 2, 3, 19, 15, 16, 39, 22, 21, 33, 12, 11, 12, 5, 24, 40, 68, 25, 25, 29, 31, 28, 27, 74, 43, 39, 70, 26, 26, 31, 32, 28, 29, 76, 40, 22, 41, 16, 16, 19, 18, 14, 15, 37, 20, 21, 40, 15, 16, 18, 16, 13, 14, 37, 0, 2, 1, 88, 4, 226, 4, 97, 5, 239, 0, 3, 0, 7, 0, 0, 65, 1, 51, 1, 33, 3, 51, 1, 3, 118, 254, 223, 181, 1, 87, 253, 221, 230, 161, 1, 29, 5, 239, 254, 243, 1, 13, 254, 243, 1, 13, 0, 0, 1, 1, 193, 4, 227, 4, 29, 5, 238, 0, 8, 0, 0, 65, 39, 39, 7, 23, 51, 37, 55, 7, 2, 206, 118, 149, 2, 210, 112, 1, 25, 1, 161, 5, 86, 151, 1, 23, 244, 247, 20, 2, 0, 0, 1, 252, 172, 254, 165, 253, 140, 255, 136, 0, 11, 0, 0, 69, 20, 22, 55, 54, 54, 55, 52, 38, 7, 6, 6, 252, 172, 65, 47, 48, 63, 1, 63, 48, 50, 62, 238, 49, 60, 2, 2, 62, 49, 48, 64, 2, 2, 65, 0, 0, 1, 1, 23, 254, 75, 2, 95, 0, 0, 0, 30, 0, 0, 97, 35, 7, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 7, 54, 54, 55, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 1, 247, 131, 45, 21, 52, 22, 21, 26, 5, 5, 38, 26, 26, 59, 27, 4, 34, 75, 35, 37, 69, 25, 23, 28, 1, 1, 21, 21, 15, 42, 26, 133, 3, 6, 8, 9, 33, 30, 32, 41, 11, 12, 10, 1, 108, 1, 9, 10, 10, 35, 25, 23, 64, 42, 37, 60, 22, 15, 23, 6, 0, 1, 1, 1, 254, 79, 2, 104, 0, 57, 0, 28, 0, 0, 69, 39, 6, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 39, 6, 6, 39, 38, 38, 55, 54, 54, 55, 54, 54, 2, 104, 86, 45, 95, 39, 40, 52, 1, 1, 22, 21, 22, 66, 41, 44, 85, 38, 21, 23, 50, 26, 31, 29, 3, 4, 39, 28, 28, 66, 3, 60, 22, 60, 38, 38, 94, 55, 40, 66, 23, 25, 27, 1, 1, 20, 22, 123, 11, 16, 2, 1, 33, 33, 39, 67, 28, 27, 45, 0, 1, 0, 173, 255, 86, 1, 214, 0, 239, 0, 9, 0, 0, 101, 55, 35, 7, 6, 6, 7, 23, 54, 54, 1, 206, 8, 173, 10, 12, 60, 42, 100, 78, 98, 170, 69, 73, 73, 128, 61, 74, 64, 175, 255, 255, 0, 189, 0, 118, 3, 247, 3, 146, 4, 39, 0, 122, 255, 71, 255, 221, 0, 7, 0, 122, 0, 140, 255, 221, 0, 1, 0, 6, 254, 96, 4, 70, 4, 58, 0, 33, 0, 0, 65, 35, 1, 51, 19, 22, 22, 23, 50, 54, 55, 54, 54, 55, 7, 51, 19, 35, 3, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 39, 38, 54, 55, 1, 190, 180, 254, 252, 180, 89, 45, 110, 60, 41, 73, 33, 35, 63, 28, 19, 162, 188, 182, 139, 22, 54, 31, 37, 87, 50, 44, 58, 17, 18, 16, 2, 2, 5, 4, 4, 58, 250, 38, 1, 214, 41, 33, 1, 16, 15, 18, 53, 35, 116, 4, 58, 252, 224, 36, 55, 19, 23, 20, 2, 1, 32, 26, 25, 65, 36, 36, 73, 32, 255, 255, 0, 150, 0, 152, 3, 216, 3, 181, 4, 39, 0, 123, 255, 106, 0, 0, 0, 7, 0, 123, 0, 184, 0, 0, 0, 1, 0, 92, 0, 0, 3, 233, 4, 58, 0, 9, 0, 0, 65, 7, 33, 3, 33, 7, 33, 55, 33, 19, 1, 24, 28, 1, 101, 132, 254, 156, 29, 3, 112, 29, 254, 169, 160, 4, 58, 161, 253, 7, 160, 160, 3, 154, 0, 2, 0, 20, 255, 235, 4, 193, 5, 176, 0, 3, 0, 31, 0, 0, 115, 19, 35, 3, 1, 3, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 39, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 19, 200, 253, 181, 252, 3, 248, 192, 6, 24, 22, 22, 64, 45, 41, 48, 12, 12, 5, 2, 183, 4, 31, 36, 35, 111, 76, 82, 131, 47, 47, 59, 11, 193, 5, 176, 250, 80, 5, 176, 251, 146, 40, 70, 26, 27, 29, 1, 1, 35, 27, 27, 67, 33, 1, 72, 123, 46, 46, 53, 1, 2, 47, 45, 45, 128, 79, 4, 109, 0, 4, 255, 229, 254, 77, 4, 179, 5, 194, 0, 23, 0, 33, 0, 45, 0, 57, 0, 0, 65, 7, 51, 3, 6, 6, 7, 6, 6, 39, 38, 38, 39, 7, 22, 22, 51, 50, 54, 55, 54, 54, 55, 19, 33, 7, 51, 3, 35, 7, 33, 55, 35, 19, 1, 6, 22, 55, 54, 54, 55, 52, 38, 7, 6, 6, 5, 6, 22, 55, 54, 54, 55, 52, 38, 7, 6, 6, 2, 237, 29, 216, 157, 10, 47, 37, 38, 102, 64, 45, 89, 44, 30, 53, 104, 54, 102, 163, 60, 60, 76, 14, 186, 252, 45, 29, 228, 132, 232, 28, 2, 118, 28, 217, 160, 1, 157, 1, 60, 48, 48, 60, 1, 61, 48, 48, 59, 253, 207, 1, 61, 48, 48, 59, 1, 59, 49, 48, 59, 4, 58, 161, 252, 97, 62, 100, 35, 35, 37, 1, 1, 6, 8, 158, 8, 10, 60, 57, 56, 159, 98, 4, 63, 161, 253, 7, 160, 160, 3, 154, 1, 22, 48, 58, 2, 2, 60, 48, 48, 60, 2, 2, 62, 49, 48, 58, 2, 2, 60, 48, 47, 61, 2, 2, 62, 0, 0, 1, 1, 82, 0, 0, 4, 140, 6, 46, 0, 21, 0, 0, 97, 51, 19, 54, 54, 55, 54, 54, 23, 22, 22, 23, 55, 38, 38, 39, 38, 6, 7, 6, 6, 7, 1, 82, 181, 193, 10, 54, 42, 41, 112, 70, 23, 45, 21, 34, 36, 72, 38, 105, 168, 61, 62, 78, 14, 4, 102, 65, 113, 41, 41, 45, 1, 1, 6, 6, 143, 8, 12, 1, 1, 67, 61, 61, 169, 99, 0, 1, 0, 1, 254, 73, 3, 102, 4, 58, 0, 23, 0, 0, 65, 7, 33, 3, 6, 6, 7, 6, 6, 39, 38, 38, 39, 7, 22, 22, 51, 50, 54, 55, 54, 54, 55, 19, 1, 80, 29, 1, 98, 158, 9, 46, 37, 37, 103, 65, 45, 89, 45, 26, 53, 103, 54, 102, 163, 60, 60, 75, 14, 185, 4, 58, 161, 252, 95, 62, 102, 36, 37, 40, 1, 1, 7, 8, 154, 8, 9, 61, 57, 56, 160, 98, 4, 65, 0, 2, 1, 15, 254, 133, 2, 57, 255, 172, 0, 23, 0, 44, 0, 0, 69, 6, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 23, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 35, 34, 38, 1, 16, 1, 21, 20, 19, 53, 30, 31, 56, 21, 20, 25, 1, 1, 21, 19, 19, 51, 30, 32, 56, 21, 22, 25, 83, 5, 14, 9, 9, 25, 16, 10, 17, 6, 9, 9, 2, 2, 14, 10, 10, 25, 13, 29, 26, 239, 30, 52, 19, 19, 20, 24, 21, 20, 55, 32, 30, 52, 20, 19, 22, 25, 21, 21, 56, 29, 12, 26, 10, 10, 12, 8, 6, 9, 27, 14, 13, 24, 9, 10, 11, 38, 0, 1, 253, 141, 4, 188, 254, 114, 6, 22, 0, 3, 0, 0, 65, 3, 35, 19, 254, 114, 64, 165, 115, 4, 188, 1, 90, 254, 166, 0, 0, 1, 253, 225, 4, 188, 255, 78, 6, 23, 0, 3, 0, 0, 65, 3, 51, 19, 254, 156, 187, 123, 242, 6, 23, 254, 165, 1, 91, 0, 255, 255, 253, 13, 4, 228, 255, 200, 5, 240, 4, 7, 1, 93, 252, 29, 0, 0, 0, 1, 253, 240, 4, 216, 255, 48, 6, 115, 0, 27, 0, 0, 65, 23, 55, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 7, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 253, 240, 138, 11, 33, 60, 23, 23, 28, 2, 2, 52, 40, 41, 96, 41, 14, 16, 52, 24, 24, 32, 4, 4, 35, 23, 24, 51, 21, 4, 217, 1, 72, 6, 23, 19, 19, 54, 37, 54, 68, 21, 20, 16, 2, 105, 1, 2, 7, 7, 28, 27, 27, 30, 8, 8, 5, 2, 0, 2, 252, 187, 4, 228, 255, 101, 5, 238, 0, 3, 0, 7, 0, 0, 65, 3, 35, 19, 33, 3, 35, 19, 254, 105, 197, 233, 251, 1, 175, 137, 215, 193, 4, 228, 1, 10, 254, 246, 1, 10, 254, 246, 0, 1, 2, 138, 4, 247, 3, 210, 6, 122, 0, 3, 0, 0, 65, 3, 51, 19, 3, 13, 131, 95, 233, 6, 122, 254, 125, 1, 131, 0, 0, 3, 1, 142, 4, 223, 4, 89, 6, 191, 0, 3, 0, 15, 0, 27, 0, 0, 65, 3, 51, 19, 1, 20, 22, 55, 54, 54, 55, 54, 38, 7, 6, 6, 5, 20, 22, 55, 54, 54, 55, 52, 38, 7, 6, 6, 3, 34, 93, 139, 161, 253, 157, 64, 47, 49, 62, 1, 1, 63, 49, 50, 61, 1, 235, 63, 47, 49, 63, 1, 63, 48, 50, 61, 6, 191, 254, 248, 1, 8, 254, 142, 49, 61, 2, 2, 63, 49, 49, 62, 1, 2, 65, 49, 49, 61, 2, 2, 63, 49, 48, 64, 2, 2, 65, 0, 255, 255, 2, 53, 2, 106, 3, 21, 3, 76, 4, 6, 0, 100, 54, 0, 0, 1, 0, 71, 0, 0, 4, 165, 5, 176, 0, 5, 0, 0, 65, 55, 33, 3, 51, 19, 4, 138, 27, 252, 159, 253, 182, 226, 5, 24, 152, 250, 80, 5, 24, 0, 0, 2, 255, 192, 0, 0, 4, 37, 5, 176, 0, 3, 0, 8, 0, 0, 65, 1, 33, 3, 1, 1, 55, 23, 19, 2, 179, 253, 13, 4, 101, 213, 253, 124, 1, 202, 68, 17, 116, 5, 176, 250, 80, 5, 176, 250, 231, 3, 144, 137, 137, 252, 112, 0, 0, 3, 0, 102, 255, 234, 4, 109, 5, 198, 0, 3, 0, 41, 0, 79, 0, 0, 65, 55, 33, 7, 5, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 39, 7, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 39, 38, 54, 55, 55, 54, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 23, 22, 6, 3, 63, 26, 254, 61, 27, 2, 206, 26, 10, 3, 14, 15, 59, 47, 47, 131, 87, 90, 151, 61, 62, 97, 35, 36, 47, 13, 26, 10, 3, 15, 15, 60, 47, 47, 131, 86, 90, 151, 62, 61, 96, 36, 35, 47, 140, 27, 9, 30, 22, 23, 62, 41, 41, 106, 65, 62, 85, 28, 28, 28, 5, 5, 6, 6, 28, 9, 30, 23, 23, 63, 42, 41, 105, 65, 62, 85, 28, 27, 28, 5, 4, 7, 2, 148, 151, 151, 15, 165, 71, 153, 74, 73, 132, 50, 50, 61, 2, 2, 54, 48, 49, 132, 74, 75, 159, 77, 166, 71, 152, 73, 73, 132, 50, 50, 61, 2, 2, 54, 48, 48, 132, 75, 74, 159, 246, 170, 53, 116, 56, 57, 102, 38, 39, 43, 2, 2, 51, 41, 40, 104, 55, 55, 108, 45, 169, 52, 116, 57, 56, 101, 39, 38, 43, 2, 2, 50, 40, 40, 103, 54, 55, 108, 0, 0, 1, 255, 200, 0, 0, 4, 18, 5, 176, 0, 6, 0, 0, 65, 19, 51, 3, 35, 1, 51, 2, 192, 160, 178, 218, 158, 253, 46, 192, 4, 154, 251, 102, 5, 176, 250, 80, 0, 3, 0, 36, 0, 0, 4, 159, 5, 176, 0, 3, 0, 7, 0, 11, 0, 0, 119, 7, 33, 55, 1, 7, 33, 55, 1, 7, 33, 55, 63, 27, 3, 139, 27, 253, 61, 27, 2, 221, 27, 253, 63, 27, 3, 124, 27, 151, 151, 151, 2, 167, 152, 152, 2, 114, 152, 152, 0, 1, 0, 53, 0, 0, 4, 159, 5, 176, 0, 7, 0, 0, 97, 19, 33, 3, 51, 19, 33, 3, 3, 163, 252, 252, 146, 252, 180, 227, 2, 4, 226, 5, 176, 250, 80, 5, 24, 250, 232, 0, 0, 1, 0, 4, 0, 0, 4, 178, 5, 176, 0, 12, 0, 0, 65, 55, 1, 33, 55, 33, 7, 1, 1, 7, 33, 55, 33, 3, 23, 3, 254, 165, 2, 216, 27, 252, 79, 24, 1, 114, 253, 196, 27, 3, 226, 27, 253, 4, 2, 205, 26, 2, 49, 152, 135, 253, 185, 253, 183, 153, 152, 0, 0, 3, 0, 80, 0, 0, 4, 131, 5, 176, 0, 29, 0, 42, 0, 55, 0, 0, 65, 55, 35, 7, 6, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 7, 51, 55, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 1, 54, 54, 55, 54, 54, 55, 3, 38, 38, 39, 38, 38, 37, 6, 6, 7, 6, 6, 7, 19, 22, 22, 23, 22, 22, 3, 26, 41, 180, 42, 109, 183, 68, 69, 84, 11, 9, 34, 44, 44, 141, 98, 39, 180, 40, 109, 183, 68, 68, 85, 11, 9, 35, 44, 44, 141, 253, 144, 9, 48, 41, 40, 115, 75, 137, 68, 81, 21, 21, 7, 2, 194, 9, 47, 40, 40, 114, 75, 137, 66, 81, 21, 20, 7, 4, 224, 208, 206, 8, 89, 71, 71, 188, 108, 92, 175, 71, 71, 96, 12, 198, 196, 9, 89, 72, 71, 188, 108, 91, 174, 71, 70, 96, 253, 248, 71, 131, 52, 52, 70, 10, 253, 15, 12, 74, 51, 51, 120, 77, 71, 131, 52, 53, 71, 10, 2, 241, 13, 74, 50, 51, 119, 0, 0, 1, 0, 132, 0, 0, 4, 229, 5, 176, 0, 35, 0, 0, 65, 19, 35, 3, 38, 38, 39, 38, 38, 55, 19, 35, 3, 6, 22, 23, 22, 22, 23, 3, 51, 19, 54, 54, 55, 54, 54, 55, 19, 35, 3, 6, 6, 7, 6, 6, 2, 152, 175, 181, 174, 60, 70, 17, 17, 4, 7, 104, 181, 103, 11, 25, 39, 39, 134, 98, 62, 181, 62, 109, 172, 63, 63, 79, 15, 104, 180, 105, 11, 46, 37, 37, 104, 1, 220, 3, 212, 252, 48, 19, 76, 49, 49, 112, 56, 2, 103, 253, 154, 92, 171, 70, 70, 97, 16, 254, 186, 1, 68, 13, 86, 68, 67, 178, 106, 2, 102, 253, 154, 67, 119, 48, 48, 68, 0, 1, 255, 249, 0, 0, 4, 120, 5, 198, 0, 74, 0, 0, 101, 7, 33, 55, 5, 54, 54, 55, 54, 54, 55, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 7, 7, 33, 55, 38, 38, 39, 38, 38, 53, 52, 54, 55, 55, 54, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 23, 22, 6, 7, 7, 6, 6, 7, 6, 6, 2, 73, 30, 1, 184, 27, 254, 251, 78, 123, 45, 45, 58, 14, 11, 9, 6, 16, 17, 63, 48, 48, 131, 85, 88, 151, 63, 62, 99, 37, 36, 49, 11, 12, 15, 22, 41, 19, 52, 33, 253, 28, 1, 184, 30, 70, 72, 19, 9, 7, 11, 6, 12, 8, 30, 23, 24, 64, 43, 43, 107, 66, 63, 86, 28, 28, 28, 5, 5, 5, 6, 11, 10, 34, 27, 39, 140, 192, 192, 151, 3, 51, 135, 80, 79, 176, 91, 78, 72, 149, 70, 70, 124, 47, 47, 57, 2, 2, 49, 45, 46, 123, 71, 72, 156, 78, 79, 109, 221, 98, 48, 89, 40, 3, 151, 193, 20, 102, 71, 38, 81, 40, 58, 111, 44, 82, 55, 116, 55, 54, 97, 35, 36, 40, 2, 3, 47, 38, 39, 98, 53, 53, 107, 47, 82, 67, 147, 71, 100, 156, 0, 0, 2, 0, 103, 255, 234, 4, 37, 4, 81, 0, 55, 0, 87, 0, 0, 65, 35, 7, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 22, 22, 23, 22, 22, 23, 22, 54, 55, 39, 6, 6, 39, 38, 38, 39, 38, 38, 53, 52, 54, 55, 37, 55, 54, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 23, 3, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 39, 38, 54, 4, 37, 113, 75, 16, 39, 22, 43, 107, 58, 78, 126, 50, 50, 76, 28, 27, 34, 8, 2, 6, 3, 12, 12, 47, 37, 37, 104, 69, 58, 104, 46, 30, 57, 26, 6, 20, 15, 23, 67, 42, 32, 55, 27, 10, 12, 26, 13, 23, 21, 3, 1, 2, 3, 1, 253, 134, 3, 6, 22, 18, 18, 50, 35, 35, 89, 57, 39, 67, 28, 23, 39, 14, 94, 25, 57, 32, 33, 75, 43, 48, 67, 22, 21, 24, 5, 4, 3, 4, 58, 128, 25, 42, 16, 32, 33, 1, 2, 49, 44, 43, 116, 65, 66, 138, 65, 22, 57, 120, 57, 57, 101, 39, 39, 46, 2, 1, 26, 26, 17, 46, 27, 27, 44, 17, 25, 25, 1, 1, 16, 16, 140, 2, 4, 2, 1, 28, 19, 7, 16, 8, 13, 24, 10, 219, 22, 45, 101, 49, 49, 89, 34, 33, 38, 2, 1, 23, 20, 18, 49, 31, 253, 235, 32, 55, 19, 20, 22, 2, 1, 35, 28, 28, 74, 40, 39, 82, 0, 0, 2, 255, 254, 254, 128, 4, 83, 5, 198, 0, 38, 0, 78, 0, 0, 65, 38, 6, 7, 6, 6, 7, 3, 51, 19, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 3, 39, 7, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 39, 19, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 2, 224, 89, 165, 66, 66, 90, 13, 249, 181, 87, 22, 49, 25, 43, 95, 48, 102, 177, 67, 66, 82, 8, 4, 17, 22, 23, 73, 51, 45, 81, 31, 30, 40, 5, 7, 50, 49, 49, 140, 187, 72, 27, 150, 54, 77, 23, 23, 16, 6, 8, 56, 43, 44, 115, 67, 39, 77, 35, 29, 50, 20, 143, 9, 53, 39, 39, 100, 56, 49, 76, 26, 25, 22, 5, 6, 49, 38, 38, 99, 5, 196, 2, 59, 54, 54, 150, 88, 250, 79, 1, 204, 19, 29, 11, 19, 19, 1, 2, 65, 61, 60, 169, 102, 55, 106, 47, 46, 76, 25, 24, 60, 38, 37, 91, 54, 85, 140, 51, 50, 56, 253, 150, 1, 151, 1, 3, 51, 39, 39, 96, 49, 65, 111, 40, 40, 45, 1, 1, 16, 16, 14, 42, 28, 3, 61, 54, 93, 34, 34, 38, 1, 1, 37, 31, 32, 83, 47, 59, 88, 30, 30, 31, 0, 1, 0, 157, 254, 96, 4, 204, 4, 58, 0, 10, 0, 0, 65, 1, 7, 39, 3, 35, 1, 3, 51, 19, 1, 4, 10, 254, 58, 46, 5, 196, 176, 1, 8, 84, 182, 79, 2, 118, 4, 58, 252, 249, 103, 85, 3, 25, 252, 7, 254, 31, 1, 196, 4, 22, 0, 2, 0, 91, 255, 233, 4, 66, 6, 31, 0, 63, 0, 92, 0, 0, 65, 6, 22, 23, 22, 22, 23, 7, 6, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 38, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 51, 54, 22, 23, 55, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 3, 55, 54, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 1, 115, 2, 20, 21, 20, 60, 37, 12, 85, 143, 53, 53, 68, 10, 2, 10, 42, 52, 52, 165, 113, 117, 194, 73, 73, 91, 14, 3, 10, 36, 44, 45, 138, 91, 27, 68, 29, 16, 25, 8, 7, 6, 3, 6, 42, 30, 30, 71, 35, 67, 130, 62, 52, 37, 75, 38, 36, 77, 40, 72, 141, 57, 57, 73, 92, 3, 6, 31, 24, 23, 64, 40, 39, 95, 55, 66, 95, 29, 29, 23, 7, 2, 11, 57, 46, 47, 129, 82, 78, 100, 28, 28, 15, 4, 237, 42, 77, 33, 33, 53, 18, 18, 18, 83, 60, 61, 152, 85, 22, 104, 189, 72, 72, 86, 3, 3, 83, 73, 72, 195, 111, 22, 100, 169, 69, 69, 107, 38, 11, 32, 22, 12, 27, 16, 13, 31, 17, 38, 55, 18, 18, 18, 1, 39, 26, 128, 18, 32, 12, 12, 14, 1, 1, 35, 37, 38, 116, 252, 185, 21, 46, 97, 45, 45, 79, 28, 28, 26, 7, 8, 77, 54, 55, 127, 57, 20, 74, 140, 54, 54, 63, 2, 2, 68, 53, 52, 132, 0, 0, 1, 0, 80, 255, 234, 4, 79, 4, 78, 0, 88, 0, 0, 83, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 7, 6, 6, 7, 6, 6, 39, 34, 38, 39, 38, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 55, 54, 54, 51, 23, 55, 39, 38, 38, 39, 38, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 23, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 6, 6, 7, 6, 6, 84, 4, 35, 33, 32, 88, 50, 49, 104, 48, 84, 174, 74, 73, 100, 11, 181, 11, 70, 47, 47, 106, 48, 25, 61, 30, 30, 55, 20, 21, 21, 4, 4, 25, 19, 15, 36, 21, 46, 108, 49, 226, 26, 248, 38, 85, 34, 18, 29, 9, 9, 7, 3, 7, 67, 45, 45, 102, 44, 40, 87, 37, 37, 47, 1, 178, 1, 76, 60, 60, 150, 74, 75, 159, 72, 79, 107, 3, 2, 23, 21, 21, 56, 33, 49, 90, 35, 35, 44, 1, 40, 60, 93, 34, 35, 49, 15, 15, 14, 1, 2, 35, 41, 40, 131, 95, 1, 53, 74, 22, 23, 20, 1, 6, 8, 7, 25, 19, 18, 52, 34, 34, 51, 19, 15, 23, 9, 19, 12, 1, 148, 1, 1, 10, 16, 8, 23, 15, 15, 39, 25, 53, 67, 20, 19, 14, 1, 1, 18, 20, 20, 64, 48, 1, 85, 120, 39, 39, 37, 2, 1, 26, 31, 35, 131, 100, 39, 66, 27, 27, 43, 16, 16, 44, 32, 32, 85, 0, 1, 0, 130, 254, 128, 4, 164, 5, 176, 0, 56, 0, 0, 69, 54, 38, 39, 38, 38, 39, 39, 38, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 55, 1, 55, 33, 7, 33, 1, 6, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 23, 54, 54, 55, 54, 54, 3, 107, 4, 35, 31, 32, 83, 45, 205, 33, 48, 15, 22, 12, 6, 11, 76, 53, 53, 125, 62, 1, 206, 22, 252, 98, 27, 2, 183, 254, 160, 60, 136, 60, 74, 101, 9, 8, 30, 36, 35, 109, 72, 169, 18, 43, 18, 18, 21, 3, 4, 26, 17, 18, 40, 18, 92, 35, 72, 30, 30, 40, 79, 55, 71, 24, 23, 27, 11, 52, 9, 29, 20, 27, 74, 47, 87, 143, 63, 62, 110, 54, 1, 163, 128, 152, 254, 196, 52, 122, 69, 82, 180, 96, 76, 119, 44, 45, 60, 16, 36, 4, 14, 11, 11, 33, 24, 28, 52, 23, 24, 43, 19, 89, 26, 67, 39, 39, 87, 0, 1, 0, 54, 254, 97, 4, 31, 4, 79, 0, 31, 0, 0, 65, 35, 3, 51, 19, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 3, 51, 19, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 1, 149, 163, 188, 182, 142, 30, 69, 38, 35, 78, 43, 63, 81, 22, 22, 12, 7, 186, 182, 186, 9, 25, 37, 37, 129, 94, 61, 109, 47, 38, 67, 29, 4, 58, 251, 198, 3, 41, 36, 56, 17, 16, 16, 1, 2, 41, 35, 35, 97, 57, 251, 183, 4, 76, 87, 151, 56, 56, 65, 2, 1, 30, 29, 23, 62, 38, 0, 0, 3, 0, 166, 255, 234, 4, 51, 5, 199, 0, 37, 0, 58, 0, 79, 0, 0, 65, 19, 54, 54, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 3, 6, 6, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 39, 7, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 39, 38, 54, 63, 3, 54, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 23, 22, 6, 7, 7, 3, 244, 54, 8, 1, 11, 11, 47, 40, 40, 115, 78, 82, 132, 53, 53, 79, 29, 29, 38, 10, 53, 8, 1, 12, 11, 48, 40, 39, 115, 78, 82, 132, 53, 52, 79, 29, 28, 37, 154, 22, 6, 21, 16, 16, 46, 32, 32, 83, 53, 50, 66, 20, 21, 20, 2, 3, 6, 5, 21, 26, 20, 6, 18, 15, 13, 40, 29, 33, 91, 61, 50, 66, 21, 20, 19, 3, 2, 6, 5, 19, 2, 46, 1, 84, 63, 135, 64, 63, 114, 43, 43, 52, 2, 2, 45, 41, 42, 113, 65, 65, 141, 69, 254, 171, 64, 133, 63, 64, 113, 43, 43, 52, 2, 2, 45, 41, 41, 113, 65, 65, 140, 171, 141, 43, 92, 44, 44, 78, 29, 29, 32, 2, 2, 39, 31, 31, 80, 43, 42, 84, 36, 142, 151, 129, 39, 85, 41, 40, 75, 32, 36, 41, 2, 2, 39, 30, 31, 79, 42, 42, 85, 36, 130, 0, 1, 0, 233, 255, 235, 3, 191, 4, 58, 0, 23, 0, 0, 65, 7, 33, 3, 6, 22, 23, 22, 22, 23, 22, 54, 55, 39, 6, 6, 35, 34, 38, 39, 38, 38, 55, 19, 1, 6, 29, 1, 86, 95, 14, 21, 29, 28, 102, 80, 65, 114, 54, 28, 37, 74, 42, 44, 51, 12, 13, 6, 8, 124, 4, 58, 161, 253, 191, 83, 127, 47, 48, 56, 2, 2, 33, 35, 133, 18, 25, 28, 25, 24, 67, 51, 2, 238, 0, 1, 255, 203, 255, 237, 3, 231, 5, 236, 0, 44, 0, 0, 65, 34, 6, 7, 7, 54, 54, 23, 22, 22, 23, 22, 22, 23, 23, 1, 51, 1, 55, 19, 22, 22, 23, 22, 22, 55, 54, 54, 55, 55, 6, 6, 39, 38, 38, 39, 38, 38, 39, 3, 38, 38, 39, 38, 38, 1, 132, 24, 48, 23, 12, 17, 34, 17, 34, 46, 16, 16, 19, 6, 29, 253, 200, 209, 1, 97, 53, 112, 12, 39, 31, 31, 85, 59, 14, 25, 14, 15, 11, 24, 11, 27, 36, 11, 12, 13, 5, 190, 12, 45, 33, 33, 90, 5, 236, 8, 5, 143, 1, 3, 1, 2, 39, 28, 28, 64, 27, 132, 251, 237, 2, 165, 128, 253, 214, 48, 98, 38, 39, 47, 3, 1, 8, 5, 153, 2, 3, 1, 2, 32, 22, 22, 51, 22, 3, 181, 51, 97, 38, 37, 45, 0, 0, 1, 0, 134, 254, 119, 4, 125, 5, 198, 0, 93, 0, 0, 65, 55, 38, 38, 35, 38, 6, 7, 6, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 6, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 23, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 39, 38, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 51, 23, 55, 39, 34, 38, 39, 38, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 55, 54, 54, 51, 50, 22, 4, 87, 38, 62, 126, 64, 58, 127, 62, 62, 114, 44, 44, 55, 4, 3, 34, 30, 30, 80, 44, 77, 138, 54, 54, 69, 7, 9, 61, 59, 58, 161, 92, 53, 19, 44, 18, 18, 21, 3, 3, 25, 17, 17, 41, 19, 91, 34, 72, 30, 29, 40, 3, 4, 36, 31, 32, 83, 44, 103, 56, 102, 37, 37, 38, 8, 11, 95, 70, 69, 168, 86, 127, 27, 150, 34, 78, 38, 38, 68, 24, 25, 23, 7, 6, 44, 32, 32, 78, 41, 41, 80, 34, 56, 107, 5, 8, 151, 18, 20, 1, 13, 15, 16, 52, 39, 40, 108, 71, 51, 86, 34, 35, 53, 18, 23, 68, 49, 49, 132, 86, 107, 150, 51, 52, 66, 22, 13, 5, 12, 10, 11, 32, 25, 30, 51, 23, 23, 42, 20, 88, 26, 66, 39, 38, 86, 46, 54, 71, 23, 22, 27, 11, 26, 13, 47, 36, 35, 98, 65, 97, 128, 38, 37, 30, 1, 152, 1, 6, 9, 8, 28, 24, 23, 67, 47, 42, 63, 22, 21, 28, 8, 7, 4, 21, 0, 0, 1, 0, 110, 255, 236, 4, 128, 4, 58, 0, 29, 0, 0, 65, 55, 33, 7, 51, 3, 51, 19, 33, 3, 6, 22, 23, 22, 22, 23, 22, 54, 55, 39, 6, 6, 35, 34, 38, 39, 38, 52, 55, 19, 4, 101, 27, 252, 42, 27, 128, 161, 181, 161, 1, 98, 108, 5, 10, 22, 21, 81, 65, 48, 83, 41, 29, 22, 45, 24, 28, 30, 6, 7, 2, 111, 3, 161, 153, 153, 252, 95, 3, 161, 253, 117, 57, 105, 41, 41, 51, 1, 2, 24, 26, 132, 8, 14, 22, 18, 18, 45, 23, 2, 151, 0, 0, 2, 255, 239, 254, 96, 4, 31, 4, 81, 0, 33, 0, 62, 0, 0, 65, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 3, 51, 19, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 39, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 39, 19, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 23, 22, 6, 4, 21, 3, 7, 4, 14, 14, 55, 43, 43, 121, 79, 100, 185, 68, 78, 79, 18, 171, 181, 98, 21, 48, 26, 46, 107, 56, 76, 126, 50, 49, 75, 27, 30, 38, 169, 3, 9, 50, 42, 42, 121, 80, 39, 68, 29, 32, 51, 17, 50, 11, 52, 42, 41, 115, 75, 54, 74, 23, 23, 24, 4, 4, 5, 1, 250, 22, 67, 136, 63, 63, 110, 42, 41, 50, 2, 3, 77, 68, 73, 201, 107, 252, 29, 2, 17, 25, 40, 15, 27, 26, 1, 1, 41, 37, 35, 97, 57, 60, 134, 88, 21, 70, 137, 53, 54, 65, 2, 1, 18, 17, 19, 59, 40, 1, 38, 64, 134, 55, 55, 68, 2, 2, 42, 33, 34, 88, 46, 47, 93, 0, 0, 1, 0, 95, 254, 87, 4, 41, 4, 81, 0, 66, 0, 0, 65, 38, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 23, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 38, 38, 39, 38, 38, 55, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 23, 54, 38, 39, 38, 38, 2, 155, 116, 193, 72, 72, 90, 13, 5, 11, 53, 57, 56, 168, 104, 22, 64, 29, 29, 37, 4, 5, 35, 25, 25, 60, 30, 64, 52, 101, 41, 40, 53, 3, 3, 26, 24, 25, 66, 37, 38, 78, 36, 72, 110, 35, 35, 29, 8, 6, 10, 57, 46, 46, 127, 81, 56, 90, 31, 30, 30, 3, 170, 4, 55, 52, 53, 149, 4, 79, 2, 87, 75, 76, 198, 109, 43, 109, 175, 65, 65, 84, 18, 4, 9, 11, 11, 38, 33, 36, 59, 23, 24, 37, 14, 127, 22, 62, 41, 40, 101, 62, 47, 70, 25, 25, 34, 12, 11, 16, 7, 14, 63, 48, 47, 123, 73, 42, 71, 142, 56, 56, 68, 2, 1, 34, 30, 31, 89, 57, 1, 92, 145, 51, 50, 55, 0, 0, 2, 0, 83, 255, 233, 4, 184, 4, 59, 0, 28, 0, 54, 0, 0, 65, 55, 37, 34, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 55, 54, 38, 39, 38, 38, 39, 1, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 4, 157, 27, 253, 205, 116, 190, 70, 71, 88, 13, 3, 11, 35, 47, 47, 158, 114, 108, 186, 71, 69, 94, 12, 3, 7, 19, 28, 15, 40, 26, 253, 136, 3, 10, 52, 44, 44, 123, 81, 76, 94, 25, 24, 10, 7, 3, 10, 51, 43, 44, 125, 83, 78, 93, 23, 24, 9, 3, 161, 153, 1, 84, 72, 73, 195, 110, 23, 101, 194, 76, 77, 95, 3, 3, 79, 71, 69, 191, 106, 24, 76, 141, 64, 34, 64, 30, 254, 108, 22, 70, 141, 56, 55, 67, 3, 3, 71, 54, 55, 132, 62, 22, 71, 145, 58, 59, 72, 3, 3, 76, 58, 57, 137, 0, 0, 1, 0, 223, 255, 235, 4, 103, 4, 58, 0, 25, 0, 0, 65, 55, 33, 7, 33, 3, 6, 22, 23, 22, 22, 23, 22, 54, 55, 39, 6, 6, 35, 34, 38, 39, 38, 38, 55, 19, 4, 75, 28, 252, 148, 28, 1, 94, 97, 8, 15, 27, 27, 101, 80, 63, 114, 52, 29, 35, 73, 39, 43, 50, 12, 12, 3, 4, 99, 3, 156, 158, 158, 253, 178, 71, 127, 48, 48, 58, 2, 1, 33, 35, 133, 17, 25, 30, 25, 25, 67, 38, 2, 89, 0, 1, 0, 121, 255, 233, 4, 42, 4, 60, 0, 36, 0, 0, 65, 35, 3, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 55, 54, 2, 39, 39, 22, 18, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 1, 161, 180, 104, 12, 33, 46, 46, 154, 110, 84, 139, 57, 57, 87, 32, 32, 41, 10, 17, 11, 38, 182, 35, 18, 19, 11, 54, 43, 44, 122, 84, 71, 84, 21, 21, 7, 7, 4, 58, 253, 151, 103, 176, 65, 65, 75, 2, 2, 45, 41, 41, 112, 66, 66, 145, 74, 129, 1, 5, 125, 2, 125, 254, 250, 129, 72, 160, 64, 66, 79, 1, 2, 61, 48, 47, 117, 58, 0, 0, 2, 0, 87, 254, 34, 4, 81, 4, 60, 0, 55, 0, 77, 0, 0, 69, 3, 51, 19, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 3, 38, 38, 39, 38, 38, 39, 38, 52, 55, 54, 54, 55, 54, 54, 55, 39, 6, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 22, 22, 55, 19, 54, 54, 55, 54, 54, 55, 54, 22, 23, 22, 22, 23, 22, 6, 7, 6, 6, 7, 6, 6, 1, 152, 86, 181, 85, 113, 180, 65, 64, 78, 12, 5, 2, 10, 11, 42, 33, 34, 95, 64, 57, 93, 34, 35, 43, 7, 120, 32, 50, 17, 14, 20, 6, 16, 9, 10, 42, 30, 29, 75, 44, 86, 66, 107, 40, 45, 57, 10, 11, 19, 36, 16, 44, 28, 34, 89, 252, 123, 3, 11, 9, 9, 26, 18, 36, 46, 14, 13, 11, 1, 1, 5, 2, 8, 49, 39, 40, 109, 12, 254, 46, 1, 207, 15, 98, 75, 74, 193, 111, 48, 116, 59, 59, 110, 43, 43, 53, 1, 1, 36, 33, 34, 92, 54, 253, 76, 13, 41, 25, 19, 45, 24, 54, 120, 54, 61, 116, 52, 50, 91, 39, 136, 44, 109, 62, 72, 166, 90, 91, 181, 75, 34, 62, 25, 30, 43, 139, 2, 192, 16, 31, 13, 12, 15, 1, 1, 43, 35, 36, 87, 43, 43, 72, 21, 70, 131, 54, 55, 82, 0, 0, 1, 0, 85, 254, 40, 4, 113, 4, 59, 0, 45, 0, 0, 65, 35, 3, 38, 38, 39, 38, 38, 53, 38, 54, 55, 19, 35, 3, 6, 6, 23, 22, 22, 23, 22, 22, 23, 3, 51, 19, 54, 54, 55, 54, 54, 55, 54, 18, 39, 39, 22, 16, 7, 6, 6, 7, 6, 6, 7, 2, 252, 181, 168, 44, 57, 17, 17, 15, 1, 7, 5, 82, 181, 81, 7, 4, 4, 6, 30, 33, 35, 118, 87, 85, 181, 84, 121, 186, 67, 66, 80, 16, 17, 6, 23, 183, 23, 20, 12, 52, 41, 42, 116, 76, 4, 58, 252, 84, 17, 59, 38, 37, 86, 45, 44, 87, 38, 1, 233, 254, 26, 52, 108, 52, 62, 115, 55, 59, 87, 17, 254, 51, 1, 201, 13, 101, 78, 77, 202, 115, 127, 1, 2, 126, 1, 126, 254, 254, 127, 74, 139, 57, 58, 85, 21, 0, 1, 0, 54, 255, 233, 4, 113, 4, 60, 0, 88, 0, 0, 65, 35, 6, 2, 7, 6, 6, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 55, 54, 54, 53, 38, 38, 39, 39, 22, 18, 7, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 54, 54, 55, 19, 35, 3, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 54, 55, 54, 54, 55, 54, 54, 55, 54, 54, 1, 183, 194, 69, 89, 18, 6, 9, 2, 1, 21, 26, 25, 86, 65, 51, 79, 32, 32, 49, 21, 6, 32, 26, 26, 72, 46, 68, 104, 39, 38, 53, 18, 18, 22, 7, 8, 10, 1, 14, 16, 181, 28, 2, 17, 3, 8, 8, 8, 25, 19, 19, 54, 37, 33, 38, 10, 10, 4, 2, 1, 8, 2, 47, 182, 47, 3, 10, 9, 9, 27, 20, 20, 56, 37, 30, 31, 6, 7, 1, 4, 4, 11, 2, 10, 41, 26, 25, 58, 4, 57, 123, 254, 250, 140, 43, 118, 63, 64, 125, 50, 50, 63, 2, 1, 35, 30, 30, 78, 41, 43, 76, 28, 29, 34, 1, 2, 57, 49, 48, 125, 66, 66, 126, 50, 64, 130, 65, 65, 130, 63, 2, 129, 254, 252, 130, 23, 83, 49, 49, 101, 41, 41, 51, 1, 1, 41, 32, 32, 79, 38, 37, 64, 18, 1, 44, 254, 212, 24, 71, 39, 39, 77, 30, 30, 35, 3, 2, 57, 42, 42, 101, 47, 46, 75, 16, 69, 134, 66, 65, 128, 0, 2, 0, 111, 255, 233, 4, 136, 5, 200, 0, 58, 0, 81, 0, 0, 65, 55, 6, 6, 7, 19, 54, 38, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 19, 7, 3, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 55, 54, 54, 1, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 23, 22, 22, 7, 3, 38, 38, 39, 38, 38, 4, 135, 1, 33, 66, 34, 53, 11, 5, 13, 7, 19, 12, 34, 113, 80, 78, 128, 47, 48, 58, 8, 2, 7, 48, 51, 50, 151, 95, 30, 9, 43, 35, 36, 101, 68, 63, 84, 23, 24, 14, 6, 56, 183, 54, 11, 41, 48, 48, 148, 97, 104, 167, 61, 61, 77, 15, 26, 40, 77, 254, 10, 1, 4, 24, 21, 21, 61, 42, 23, 34, 13, 12, 16, 6, 10, 1, 3, 60, 56, 84, 28, 35, 29, 2, 115, 149, 8, 12, 5, 1, 63, 68, 105, 41, 22, 39, 18, 51, 62, 2, 2, 52, 47, 48, 129, 74, 17, 97, 169, 66, 67, 92, 19, 169, 60, 110, 41, 41, 48, 3, 2, 52, 41, 41, 105, 56, 1, 81, 2, 254, 178, 93, 164, 61, 62, 72, 3, 3, 69, 62, 61, 168, 98, 160, 5, 14, 1, 242, 17, 36, 70, 28, 27, 32, 1, 1, 12, 10, 10, 26, 15, 32, 75, 34, 254, 169, 16, 56, 38, 47, 121, 0, 1, 0, 193, 0, 0, 5, 16, 5, 191, 0, 46, 0, 0, 65, 3, 7, 39, 3, 38, 38, 39, 38, 38, 39, 38, 6, 7, 23, 54, 54, 51, 50, 22, 23, 22, 22, 23, 19, 3, 51, 19, 1, 54, 54, 55, 54, 54, 51, 50, 22, 23, 55, 38, 38, 39, 38, 6, 7, 6, 6, 3, 134, 236, 42, 6, 110, 12, 35, 25, 25, 70, 48, 27, 48, 25, 10, 11, 21, 11, 17, 28, 11, 12, 17, 6, 175, 102, 179, 99, 1, 121, 9, 9, 9, 21, 62, 42, 11, 21, 10, 37, 28, 53, 32, 54, 84, 33, 34, 53, 4, 217, 254, 111, 94, 76, 1, 160, 40, 80, 32, 32, 41, 2, 1, 10, 12, 152, 3, 5, 11, 10, 9, 28, 16, 253, 129, 253, 181, 2, 57, 2, 101, 14, 15, 14, 33, 48, 5, 6, 148, 14, 12, 1, 1, 39, 32, 33, 83, 0, 0, 2, 0, 39, 255, 233, 4, 200, 4, 58, 0, 40, 0, 86, 0, 0, 65, 55, 33, 7, 55, 6, 2, 7, 6, 6, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 55, 54, 54, 39, 3, 6, 6, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 55, 54, 54, 55, 55, 35, 7, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 55, 5, 22, 22, 4, 171, 29, 251, 184, 28, 107, 64, 80, 16, 5, 3, 5, 5, 27, 26, 25, 78, 56, 51, 79, 32, 31, 49, 20, 6, 32, 27, 26, 72, 47, 59, 91, 35, 34, 49, 17, 17, 20, 6, 16, 3, 3, 195, 2, 7, 6, 7, 19, 15, 16, 42, 29, 33, 39, 10, 10, 4, 2, 1, 8, 2, 38, 181, 39, 3, 10, 8, 9, 27, 20, 20, 54, 37, 25, 28, 7, 7, 1, 2, 2, 7, 2, 17, 93, 61, 1, 229, 8, 1, 3, 161, 153, 153, 2, 116, 255, 0, 132, 41, 98, 49, 50, 92, 36, 36, 45, 1, 2, 36, 30, 30, 78, 41, 43, 76, 29, 29, 34, 1, 2, 41, 36, 35, 93, 52, 51, 105, 46, 124, 244, 125, 254, 17, 19, 60, 34, 35, 69, 28, 28, 34, 41, 32, 32, 79, 38, 38, 64, 18, 252, 252, 24, 70, 39, 39, 78, 30, 30, 35, 3, 2, 38, 29, 28, 68, 33, 32, 54, 14, 132, 255, 117, 1, 125, 244, 0, 0, 1, 0, 162, 255, 243, 4, 178, 5, 176, 0, 48, 0, 0, 65, 55, 33, 7, 33, 3, 51, 19, 54, 54, 51, 54, 50, 23, 22, 22, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 7, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 19, 4, 151, 27, 252, 11, 27, 1, 81, 226, 180, 124, 14, 27, 14, 16, 32, 16, 38, 60, 22, 16, 25, 9, 23, 14, 6, 6, 35, 30, 31, 90, 61, 13, 97, 158, 58, 57, 69, 9, 8, 39, 47, 19, 48, 29, 40, 99, 59, 29, 55, 29, 85, 5, 24, 152, 152, 250, 232, 2, 175, 1, 2, 1, 1, 1, 18, 15, 11, 27, 16, 39, 102, 57, 57, 98, 36, 36, 43, 2, 145, 2, 56, 53, 52, 153, 99, 95, 164, 61, 25, 42, 16, 22, 25, 1, 1, 4, 2, 1, 200, 0, 0, 1, 0, 114, 255, 233, 4, 147, 5, 199, 0, 67, 0, 0, 65, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 39, 38, 54, 55, 55, 33, 55, 33, 55, 54, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 23, 51, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 3, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 4, 36, 174, 18, 58, 43, 43, 116, 76, 57, 82, 27, 27, 32, 6, 6, 2, 6, 14, 2, 40, 27, 253, 214, 12, 7, 27, 21, 24, 74, 48, 38, 94, 56, 71, 94, 29, 28, 24, 2, 180, 2, 51, 51, 52, 157, 106, 85, 146, 60, 61, 96, 36, 36, 48, 12, 49, 9, 7, 18, 17, 64, 48, 47, 127, 81, 108, 181, 69, 69, 91, 1, 185, 3, 68, 115, 41, 42, 44, 3, 2, 42, 35, 34, 88, 48, 48, 99, 44, 89, 152, 75, 48, 99, 46, 56, 101, 34, 27, 30, 1, 2, 52, 43, 43, 113, 64, 100, 170, 62, 62, 71, 2, 2, 44, 40, 41, 112, 66, 67, 148, 76, 254, 199, 71, 141, 65, 66, 113, 42, 42, 50, 2, 3, 66, 62, 61, 172, 0, 2, 255, 186, 255, 254, 4, 102, 5, 176, 0, 49, 0, 64, 0, 0, 65, 33, 3, 6, 6, 7, 6, 6, 7, 6, 6, 7, 6, 6, 39, 39, 7, 51, 22, 54, 55, 54, 54, 55, 54, 54, 55, 54, 54, 55, 19, 51, 3, 33, 22, 54, 55, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 39, 7, 23, 22, 22, 23, 22, 6, 7, 6, 6, 7, 6, 6, 7, 39, 3, 106, 253, 219, 119, 4, 8, 6, 6, 17, 12, 13, 34, 22, 23, 58, 37, 19, 17, 37, 83, 122, 43, 31, 46, 17, 18, 26, 8, 7, 11, 5, 94, 189, 226, 1, 24, 63, 105, 43, 42, 65, 24, 23, 28, 5, 7, 18, 30, 31, 111, 86, 75, 26, 98, 40, 46, 7, 8, 6, 3, 5, 26, 24, 25, 76, 57, 78, 5, 176, 253, 84, 22, 77, 48, 48, 109, 52, 53, 97, 37, 37, 45, 2, 1, 150, 2, 81, 67, 48, 115, 61, 61, 131, 59, 43, 77, 31, 2, 20, 250, 232, 1, 35, 31, 31, 86, 51, 50, 111, 56, 72, 152, 63, 62, 82, 4, 2, 152, 2, 1, 63, 41, 45, 100, 31, 46, 105, 45, 45, 61, 1, 1, 0, 2, 0, 22, 255, 254, 4, 80, 5, 176, 0, 24, 0, 39, 0, 0, 65, 19, 35, 3, 51, 19, 51, 3, 51, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 35, 19, 35, 3, 23, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 39, 1, 89, 110, 180, 253, 180, 117, 242, 117, 238, 94, 147, 53, 52, 61, 8, 7, 25, 35, 35, 118, 86, 42, 113, 180, 110, 161, 48, 48, 54, 13, 12, 1, 4, 6, 30, 27, 27, 81, 57, 42, 3, 57, 2, 119, 250, 80, 2, 161, 253, 95, 2, 69, 59, 59, 158, 88, 77, 144, 57, 56, 70, 2, 2, 107, 253, 137, 138, 1, 3, 52, 37, 37, 86, 38, 50, 97, 38, 39, 50, 1, 1, 0, 1, 0, 186, 0, 0, 4, 181, 5, 176, 0, 35, 0, 0, 65, 55, 33, 7, 33, 3, 51, 19, 54, 54, 55, 50, 50, 51, 22, 22, 23, 22, 22, 7, 3, 51, 19, 54, 38, 39, 38, 38, 39, 34, 34, 7, 6, 6, 7, 19, 4, 154, 27, 252, 32, 27, 1, 80, 226, 181, 126, 14, 30, 14, 12, 24, 12, 59, 74, 20, 20, 9, 6, 75, 181, 75, 10, 36, 44, 45, 140, 93, 11, 23, 11, 13, 27, 14, 84, 5, 24, 152, 152, 250, 232, 2, 190, 1, 2, 1, 2, 38, 32, 32, 90, 54, 254, 54, 1, 201, 92, 148, 52, 51, 57, 1, 1, 1, 3, 2, 1, 197, 0, 1, 0, 53, 254, 153, 4, 160, 5, 176, 0, 11, 0, 0, 65, 3, 33, 3, 51, 19, 33, 19, 35, 3, 33, 19, 1, 49, 252, 1, 97, 63, 181, 63, 1, 88, 253, 181, 227, 253, 252, 226, 5, 176, 250, 80, 254, 153, 1, 103, 5, 176, 250, 231, 5, 25, 0, 2, 0, 53, 255, 255, 4, 147, 5, 176, 0, 18, 0, 33, 0, 0, 65, 55, 33, 3, 33, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 39, 19, 3, 5, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 35, 39, 4, 120, 27, 252, 159, 253, 1, 194, 103, 186, 72, 72, 93, 9, 8, 55, 55, 56, 158, 94, 245, 78, 104, 1, 12, 59, 93, 31, 30, 25, 7, 9, 60, 46, 46, 120, 68, 246, 5, 24, 152, 250, 80, 1, 56, 56, 56, 165, 108, 99, 153, 53, 52, 56, 3, 1, 1, 191, 253, 170, 1, 2, 38, 33, 34, 95, 60, 69, 109, 38, 38, 40, 2, 0, 0, 2, 255, 184, 254, 153, 4, 112, 5, 176, 0, 20, 0, 30, 0, 0, 65, 19, 35, 19, 33, 3, 6, 6, 7, 6, 6, 7, 6, 6, 7, 39, 3, 51, 19, 33, 3, 3, 19, 33, 3, 5, 54, 54, 55, 54, 54, 3, 160, 105, 123, 226, 253, 137, 132, 12, 26, 16, 17, 46, 32, 32, 88, 58, 62, 56, 153, 63, 2, 170, 62, 208, 96, 1, 21, 200, 254, 75, 61, 84, 30, 29, 41, 254, 155, 1, 252, 5, 25, 253, 183, 61, 134, 68, 68, 134, 59, 60, 101, 36, 1, 254, 2, 1, 103, 254, 155, 4, 204, 1, 177, 251, 127, 3, 75, 175, 94, 94, 193, 0, 0, 1, 255, 176, 0, 0, 4, 254, 5, 176, 0, 21, 0, 0, 65, 19, 51, 3, 1, 35, 1, 35, 19, 35, 3, 39, 3, 35, 19, 1, 51, 1, 51, 3, 51, 19, 2, 242, 89, 212, 134, 1, 101, 217, 254, 228, 58, 118, 179, 117, 67, 53, 204, 96, 254, 119, 231, 1, 59, 57, 117, 178, 117, 2, 139, 253, 117, 2, 206, 2, 226, 253, 114, 2, 142, 253, 114, 1, 2, 141, 253, 50, 253, 30, 2, 140, 253, 116, 2, 140, 0, 1, 0, 46, 255, 233, 4, 147, 5, 197, 0, 79, 0, 0, 65, 22, 22, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 39, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 35, 39, 7, 23, 22, 22, 23, 22, 22, 3, 55, 37, 35, 9, 9, 73, 54, 54, 132, 66, 61, 101, 36, 36, 37, 4, 180, 5, 64, 60, 59, 165, 96, 102, 200, 81, 80, 106, 8, 6, 51, 56, 19, 46, 26, 53, 99, 40, 39, 51, 5, 9, 66, 62, 62, 168, 93, 93, 181, 72, 73, 98, 10, 180, 12, 64, 46, 46, 112, 59, 58, 104, 38, 37, 38, 7, 8, 66, 49, 49, 120, 63, 168, 27, 190, 37, 68, 29, 19, 35, 2, 92, 31, 95, 68, 72, 106, 35, 36, 33, 2, 1, 40, 36, 36, 99, 62, 1, 101, 157, 54, 54, 58, 2, 2, 51, 55, 54, 165, 112, 84, 138, 49, 17, 29, 11, 23, 62, 41, 40, 100, 62, 103, 151, 50, 50, 50, 2, 1, 50, 51, 51, 151, 99, 1, 60, 94, 32, 32, 33, 1, 1, 31, 31, 32, 94, 63, 69, 98, 30, 31, 29, 1, 152, 1, 1, 11, 11, 7, 19, 0, 0, 1, 0, 53, 0, 0, 4, 160, 5, 176, 0, 9, 0, 0, 65, 1, 19, 35, 3, 51, 1, 3, 51, 19, 3, 230, 253, 71, 185, 181, 252, 185, 2, 186, 186, 181, 253, 5, 176, 251, 221, 4, 35, 250, 80, 4, 35, 251, 221, 5, 176, 0, 0, 1, 255, 202, 255, 255, 4, 160, 5, 176, 0, 30, 0, 0, 65, 33, 3, 6, 6, 7, 6, 6, 7, 6, 6, 7, 6, 6, 35, 39, 7, 51, 22, 54, 55, 54, 54, 55, 54, 54, 55, 19, 33, 3, 51, 4, 160, 253, 2, 138, 6, 14, 12, 13, 37, 29, 15, 36, 22, 20, 49, 28, 36, 17, 55, 87, 130, 48, 47, 65, 22, 22, 28, 11, 110, 1, 150, 226, 181, 5, 176, 252, 249, 39, 109, 59, 60, 116, 46, 23, 39, 13, 13, 15, 1, 150, 1, 63, 54, 53, 140, 76, 76, 153, 67, 2, 111, 250, 232, 0, 0, 1, 0, 1, 255, 233, 5, 43, 5, 176, 0, 26, 0, 0, 65, 39, 3, 35, 1, 7, 6, 6, 7, 6, 6, 35, 38, 38, 39, 7, 22, 22, 23, 22, 54, 55, 54, 54, 55, 1, 35, 2, 89, 33, 180, 193, 1, 36, 62, 21, 48, 29, 29, 70, 42, 37, 75, 35, 38, 48, 99, 51, 71, 117, 48, 48, 79, 33, 2, 216, 219, 2, 58, 181, 2, 193, 251, 204, 96, 33, 58, 21, 21, 24, 1, 16, 10, 139, 17, 19, 1, 1, 37, 35, 34, 97, 59, 4, 193, 0, 0, 1, 0, 57, 254, 161, 4, 151, 5, 176, 0, 11, 0, 0, 65, 3, 33, 3, 51, 19, 35, 19, 35, 3, 33, 19, 1, 53, 252, 3, 60, 61, 163, 105, 143, 226, 181, 227, 254, 8, 227, 5, 176, 250, 80, 254, 161, 1, 251, 5, 20, 250, 231, 5, 25, 0, 0, 1, 0, 228, 0, 0, 4, 157, 5, 176, 0, 25, 0, 0, 65, 35, 3, 6, 6, 39, 38, 38, 39, 38, 54, 55, 19, 35, 3, 6, 22, 23, 22, 22, 23, 22, 54, 55, 3, 51, 4, 157, 181, 126, 73, 148, 77, 64, 69, 15, 15, 1, 6, 75, 181, 75, 11, 24, 39, 39, 135, 101, 76, 145, 71, 111, 181, 5, 176, 253, 68, 21, 32, 3, 2, 53, 42, 41, 103, 52, 1, 201, 254, 56, 93, 162, 60, 61, 71, 1, 1, 27, 26, 253, 164, 0, 0, 1, 0, 17, 0, 0, 4, 196, 5, 176, 0, 11, 0, 0, 65, 35, 3, 33, 19, 35, 3, 35, 19, 35, 3, 35, 1, 194, 181, 252, 3, 183, 252, 179, 227, 205, 226, 179, 227, 205, 5, 176, 250, 80, 5, 176, 250, 231, 5, 25, 250, 231, 0, 1, 0, 17, 254, 161, 4, 196, 5, 176, 0, 15, 0, 0, 65, 35, 3, 33, 3, 51, 19, 35, 19, 35, 3, 7, 19, 35, 3, 35, 1, 194, 181, 252, 3, 91, 61, 162, 105, 88, 226, 179, 227, 205, 226, 179, 227, 205, 5, 176, 250, 80, 254, 161, 1, 247, 5, 24, 250, 232, 1, 5, 25, 250, 231, 0, 0, 2, 0, 170, 255, 255, 4, 66, 5, 176, 0, 18, 0, 33, 0, 0, 83, 7, 33, 3, 33, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 39, 19, 3, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 35, 39, 197, 27, 1, 40, 226, 1, 76, 101, 178, 68, 68, 86, 9, 8, 48, 51, 51, 151, 93, 127, 104, 130, 150, 58, 84, 26, 26, 20, 7, 8, 53, 42, 42, 112, 67, 129, 5, 176, 152, 250, 232, 1, 59, 57, 57, 164, 104, 95, 152, 54, 53, 59, 3, 1, 2, 87, 253, 18, 1, 2, 41, 34, 35, 95, 55, 66, 108, 38, 39, 43, 2, 0, 0, 3, 0, 35, 255, 254, 4, 192, 5, 176, 0, 16, 0, 31, 0, 35, 0, 0, 65, 19, 35, 3, 33, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 7, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 39, 5, 19, 35, 3, 1, 103, 104, 175, 253, 1, 25, 98, 156, 56, 56, 66, 9, 7, 29, 39, 39, 127, 89, 103, 100, 51, 60, 14, 14, 3, 5, 6, 35, 31, 31, 90, 61, 79, 2, 209, 253, 181, 253, 3, 88, 2, 88, 250, 80, 2, 68, 60, 60, 161, 93, 82, 149, 57, 56, 68, 3, 149, 2, 3, 51, 38, 38, 90, 42, 54, 105, 41, 41, 51, 1, 1, 150, 5, 176, 250, 80, 0, 0, 2, 0, 58, 255, 255, 4, 27, 5, 176, 0, 16, 0, 31, 0, 0, 65, 19, 35, 3, 33, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 5, 5, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 35, 39, 1, 132, 104, 181, 253, 1, 194, 103, 186, 72, 72, 93, 9, 8, 55, 55, 56, 158, 94, 254, 241, 1, 12, 59, 93, 31, 30, 25, 7, 9, 60, 46, 46, 120, 68, 247, 3, 89, 2, 87, 250, 80, 1, 56, 56, 56, 165, 108, 99, 153, 53, 52, 56, 3, 150, 1, 2, 38, 33, 34, 95, 60, 69, 109, 38, 38, 40, 2, 0, 1, 0, 78, 255, 233, 4, 105, 5, 200, 0, 67, 0, 0, 65, 35, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 55, 19, 54, 52, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 23, 22, 6, 7, 7, 33, 7, 33, 7, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 1, 10, 181, 7, 44, 50, 49, 156, 106, 127, 202, 74, 37, 61, 23, 22, 32, 9, 53, 6, 6, 7, 36, 28, 50, 169, 121, 107, 183, 69, 70, 87, 12, 178, 11, 52, 42, 42, 117, 77, 85, 103, 26, 12, 15, 2, 3, 2, 5, 14, 254, 44, 27, 1, 214, 14, 6, 23, 17, 14, 38, 22, 49, 137, 90, 72, 92, 26, 26, 16, 1, 209, 99, 175, 65, 66, 78, 2, 3, 95, 81, 41, 95, 52, 52, 112, 57, 1, 76, 48, 94, 45, 57, 107, 46, 81, 102, 3, 3, 75, 66, 67, 180, 103, 2, 68, 124, 47, 46, 54, 3, 3, 84, 63, 31, 69, 35, 37, 74, 35, 94, 151, 90, 41, 84, 40, 35, 66, 29, 62, 76, 3, 2, 59, 47, 46, 118, 0, 0, 2, 0, 11, 255, 234, 4, 139, 5, 198, 0, 45, 0, 83, 0, 0, 65, 19, 54, 54, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 7, 35, 19, 35, 3, 51, 19, 51, 7, 6, 6, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 3, 3, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 54, 54, 55, 19, 54, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 6, 6, 4, 60, 69, 7, 3, 7, 8, 36, 33, 34, 100, 70, 72, 113, 43, 43, 62, 22, 22, 28, 8, 25, 109, 116, 180, 253, 181, 111, 109, 19, 7, 4, 6, 6, 33, 31, 31, 95, 69, 74, 117, 45, 44, 66, 24, 23, 29, 103, 67, 5, 12, 10, 11, 33, 24, 25, 69, 47, 40, 46, 11, 11, 4, 3, 2, 10, 3, 66, 4, 11, 10, 9, 30, 23, 23, 64, 45, 42, 52, 14, 13, 7, 1, 2, 10, 2, 4, 1, 168, 55, 121, 59, 58, 108, 41, 41, 51, 2, 2, 45, 40, 41, 109, 60, 60, 125, 58, 152, 2, 156, 250, 80, 2, 125, 122, 52, 118, 58, 59, 109, 42, 42, 53, 2, 2, 44, 40, 39, 107, 61, 60, 127, 1, 231, 254, 84, 34, 83, 43, 43, 81, 31, 31, 35, 2, 2, 44, 35, 34, 84, 41, 41, 73, 24, 1, 172, 31, 81, 43, 42, 82, 32, 31, 37, 2, 2, 42, 33, 33, 82, 41, 41, 75, 0, 0, 2, 255, 209, 0, 0, 4, 156, 5, 177, 0, 19, 0, 34, 0, 0, 97, 51, 19, 37, 34, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 1, 51, 1, 33, 1, 54, 54, 55, 54, 54, 51, 23, 3, 37, 38, 38, 39, 38, 38, 2, 234, 181, 253, 254, 78, 102, 192, 76, 77, 99, 9, 6, 43, 46, 26, 67, 40, 254, 58, 203, 1, 145, 1, 39, 254, 31, 9, 67, 51, 51, 126, 67, 230, 94, 254, 254, 60, 98, 34, 34, 31, 5, 176, 1, 51, 52, 53, 162, 111, 81, 136, 53, 29, 48, 19, 253, 106, 2, 95, 1, 167, 73, 104, 34, 33, 32, 2, 253, 224, 1, 2, 38, 35, 34, 98, 0, 0, 2, 0, 101, 255, 233, 4, 111, 6, 17, 0, 52, 0, 78, 0, 0, 65, 38, 6, 7, 54, 54, 55, 54, 54, 55, 54, 54, 55, 54, 54, 55, 7, 6, 6, 7, 6, 6, 7, 6, 6, 7, 6, 6, 7, 6, 6, 15, 3, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 55, 54, 38, 39, 38, 38, 7, 22, 22, 23, 22, 22, 7, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 55, 54, 54, 55, 54, 54, 2, 166, 109, 183, 75, 31, 80, 53, 52, 134, 84, 78, 134, 52, 51, 66, 9, 150, 11, 58, 38, 38, 87, 41, 96, 156, 61, 61, 93, 33, 33, 43, 11, 9, 1, 3, 11, 40, 51, 50, 161, 110, 114, 187, 69, 69, 84, 12, 3, 8, 38, 46, 47, 148, 145, 71, 96, 28, 28, 18, 6, 2, 9, 51, 43, 43, 122, 79, 77, 95, 25, 26, 13, 6, 3, 9, 53, 43, 43, 119, 3, 252, 2, 96, 76, 78, 127, 48, 48, 65, 16, 15, 37, 34, 34, 112, 89, 1, 47, 57, 16, 17, 17, 7, 18, 81, 57, 58, 145, 81, 82, 175, 88, 69, 7, 23, 101, 189, 72, 73, 90, 2, 3, 85, 73, 73, 194, 107, 24, 93, 174, 68, 67, 83, 149, 2, 59, 47, 47, 120, 62, 23, 70, 138, 54, 54, 66, 3, 2, 71, 54, 54, 131, 63, 23, 68, 125, 48, 47, 55, 0, 0, 3, 0, 55, 255, 255, 4, 14, 4, 58, 0, 32, 0, 47, 0, 65, 0, 0, 115, 33, 22, 54, 55, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 37, 19, 5, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 35, 37, 19, 19, 23, 22, 22, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 35, 55, 1, 235, 52, 104, 48, 48, 84, 32, 32, 39, 3, 2, 21, 21, 22, 62, 40, 40, 74, 29, 28, 36, 3, 4, 30, 28, 28, 78, 45, 45, 95, 46, 254, 111, 77, 1, 53, 37, 70, 26, 26, 28, 6, 6, 51, 36, 36, 87, 43, 254, 224, 82, 54, 242, 36, 81, 33, 16, 27, 8, 8, 7, 3, 7, 59, 41, 42, 94, 42, 1, 13, 15, 15, 49, 36, 35, 93, 60, 42, 75, 31, 30, 47, 13, 16, 44, 29, 29, 75, 47, 56, 86, 32, 31, 43, 14, 13, 12, 1, 1, 253, 161, 1, 1, 16, 17, 18, 59, 43, 49, 66, 20, 20, 17, 1, 1, 218, 1, 53, 1, 1, 11, 16, 8, 23, 15, 15, 38, 23, 51, 62, 17, 17, 12, 0, 0, 1, 0, 73, 0, 0, 4, 95, 4, 58, 0, 5, 0, 0, 65, 55, 33, 3, 51, 19, 4, 68, 27, 252, 166, 188, 182, 161, 3, 161, 153, 251, 198, 3, 161, 0, 0, 2, 255, 167, 254, 194, 4, 68, 4, 58, 0, 20, 0, 30, 0, 0, 119, 39, 3, 51, 19, 33, 3, 51, 19, 35, 19, 33, 3, 6, 6, 7, 6, 6, 7, 6, 6, 1, 55, 33, 3, 5, 54, 54, 55, 54, 54, 66, 91, 64, 161, 56, 2, 219, 56, 164, 99, 135, 161, 253, 91, 85, 7, 17, 13, 13, 38, 27, 28, 73, 1, 141, 49, 1, 66, 132, 254, 81, 44, 60, 22, 22, 30, 149, 2, 254, 43, 1, 62, 254, 194, 1, 213, 3, 163, 254, 106, 34, 102, 58, 58, 116, 47, 47, 62, 2, 12, 235, 253, 8, 3, 56, 128, 68, 68, 140, 0, 1, 255, 163, 0, 0, 4, 193, 4, 58, 0, 21, 0, 0, 65, 19, 51, 3, 1, 35, 1, 35, 19, 35, 3, 39, 3, 35, 19, 1, 51, 1, 51, 3, 51, 19, 2, 206, 129, 204, 188, 1, 98, 218, 254, 247, 54, 83, 181, 82, 58, 104, 199, 161, 254, 119, 227, 1, 37, 54, 87, 181, 85, 1, 214, 254, 42, 2, 41, 2, 17, 254, 63, 1, 193, 254, 63, 1, 1, 192, 254, 3, 253, 195, 1, 215, 254, 41, 1, 215, 0, 1, 0, 79, 255, 236, 4, 58, 4, 78, 0, 88, 0, 0, 65, 22, 22, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 39, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 55, 54, 54, 55, 54, 54, 23, 50, 22, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 35, 39, 7, 2, 95, 20, 43, 20, 20, 39, 17, 34, 39, 7, 7, 67, 45, 46, 103, 44, 44, 93, 38, 39, 49, 2, 178, 2, 76, 62, 62, 157, 79, 52, 113, 55, 54, 98, 38, 38, 47, 3, 3, 53, 48, 15, 35, 19, 40, 81, 33, 32, 43, 3, 4, 30, 29, 29, 80, 45, 46, 98, 47, 78, 167, 71, 71, 99, 10, 181, 12, 66, 44, 44, 99, 44, 35, 84, 35, 14, 25, 9, 13, 12, 3, 7, 58, 41, 41, 95, 42, 224, 27, 1, 217, 1, 3, 3, 3, 12, 8, 17, 63, 52, 52, 71, 21, 22, 18, 1, 1, 22, 23, 22, 72, 52, 1, 90, 128, 41, 41, 39, 1, 1, 14, 16, 16, 52, 37, 37, 98, 62, 66, 103, 34, 11, 18, 7, 17, 44, 30, 29, 76, 48, 57, 89, 34, 33, 48, 15, 15, 14, 1, 1, 33, 38, 38, 124, 89, 1, 48, 66, 21, 20, 17, 1, 16, 18, 8, 19, 12, 16, 43, 27, 51, 64, 18, 18, 13, 1, 156, 0, 0, 1, 0, 55, 0, 0, 4, 92, 4, 58, 0, 9, 0, 0, 65, 1, 19, 35, 3, 51, 1, 3, 51, 19, 3, 161, 253, 125, 137, 180, 188, 187, 2, 130, 137, 181, 188, 4, 58, 252, 237, 3, 19, 251, 198, 3, 18, 252, 238, 4, 58, 0, 0, 1, 0, 54, 0, 0, 4, 171, 4, 58, 0, 12, 0, 0, 65, 1, 51, 1, 1, 35, 1, 35, 19, 35, 3, 51, 19, 1, 237, 1, 65, 213, 254, 130, 2, 38, 235, 254, 42, 147, 80, 181, 188, 181, 81, 1, 205, 254, 51, 2, 40, 2, 18, 254, 54, 1, 202, 251, 198, 1, 205, 0, 0, 1, 255, 210, 255, 255, 4, 91, 4, 58, 0, 27, 0, 0, 65, 33, 3, 6, 6, 7, 6, 6, 7, 6, 6, 35, 35, 7, 51, 22, 54, 55, 54, 54, 55, 54, 54, 55, 19, 33, 3, 51, 4, 91, 253, 20, 79, 6, 14, 12, 12, 36, 28, 29, 81, 56, 38, 22, 58, 85, 128, 47, 47, 65, 23, 22, 28, 11, 54, 1, 129, 162, 182, 4, 58, 254, 49, 42, 100, 50, 51, 94, 36, 37, 45, 164, 1, 54, 46, 46, 122, 69, 69, 146, 68, 1, 54, 252, 95, 0, 0, 1, 0, 28, 0, 0, 4, 94, 4, 58, 0, 12, 0, 0, 101, 3, 35, 3, 51, 19, 19, 51, 1, 3, 51, 19, 35, 2, 9, 75, 230, 188, 181, 122, 92, 125, 1, 59, 114, 181, 188, 229, 248, 3, 66, 251, 198, 2, 186, 253, 70, 2, 139, 253, 117, 4, 58, 0, 0, 1, 0, 55, 0, 0, 4, 92, 4, 58, 0, 11, 0, 0, 97, 19, 35, 3, 33, 19, 35, 3, 51, 19, 33, 3, 3, 160, 188, 181, 82, 254, 1, 82, 181, 188, 181, 81, 1, 255, 81, 4, 58, 254, 43, 1, 213, 251, 198, 1, 206, 254, 50, 0, 0, 1, 0, 55, 0, 0, 4, 92, 4, 58, 0, 7, 0, 0, 97, 19, 33, 3, 51, 19, 33, 3, 3, 160, 188, 252, 151, 188, 181, 162, 1, 254, 161, 4, 58, 251, 198, 3, 161, 252, 95, 0, 0, 1, 0, 158, 0, 0, 4, 173, 4, 58, 0, 7, 0, 0, 65, 55, 33, 7, 33, 3, 51, 19, 4, 147, 26, 252, 11, 26, 1, 156, 161, 181, 162, 3, 164, 150, 150, 252, 92, 3, 164, 0, 0, 3, 0, 98, 254, 96, 4, 49, 6, 0, 0, 31, 0, 45, 0, 59, 0, 0, 83, 7, 6, 22, 23, 22, 22, 23, 3, 51, 19, 54, 54, 55, 54, 54, 55, 55, 54, 38, 39, 38, 38, 39, 19, 35, 3, 6, 6, 7, 6, 6, 1, 19, 22, 22, 23, 22, 22, 7, 7, 6, 6, 7, 6, 6, 3, 3, 38, 38, 39, 38, 52, 55, 55, 54, 54, 55, 54, 54, 110, 3, 9, 22, 36, 35, 122, 91, 76, 180, 76, 105, 165, 61, 60, 74, 13, 2, 9, 21, 35, 36, 123, 93, 82, 180, 82, 105, 165, 59, 60, 73, 1, 221, 148, 54, 60, 14, 13, 1, 7, 3, 9, 42, 34, 35, 96, 96, 148, 53, 59, 13, 13, 6, 3, 9, 41, 34, 33, 96, 2, 33, 23, 85, 170, 72, 73, 108, 23, 254, 105, 1, 148, 17, 98, 72, 72, 182, 102, 23, 86, 173, 74, 73, 109, 23, 1, 188, 254, 70, 18, 100, 73, 73, 183, 254, 5, 3, 27, 24, 87, 52, 53, 114, 52, 21, 64, 122, 51, 52, 80, 3, 7, 252, 231, 25, 85, 52, 52, 112, 51, 22, 64, 122, 52, 51, 81, 0, 0, 1, 0, 60, 254, 191, 4, 69, 4, 58, 0, 11, 0, 0, 83, 3, 33, 3, 51, 19, 35, 19, 35, 3, 33, 19, 248, 188, 3, 22, 56, 163, 100, 126, 162, 182, 162, 254, 30, 162, 4, 58, 251, 198, 254, 191, 1, 216, 3, 163, 252, 93, 3, 163, 0, 1, 0, 159, 0, 0, 4, 92, 4, 58, 0, 25, 0, 0, 97, 19, 35, 3, 6, 6, 39, 38, 38, 39, 38, 38, 55, 19, 35, 3, 6, 22, 23, 22, 22, 23, 22, 54, 55, 3, 3, 160, 188, 181, 97, 74, 148, 75, 58, 79, 23, 24, 14, 6, 52, 181, 51, 10, 43, 48, 47, 145, 92, 73, 144, 71, 75, 4, 58, 253, 232, 15, 19, 2, 2, 38, 33, 33, 91, 55, 1, 60, 254, 197, 93, 149, 52, 53, 58, 1, 1, 17, 19, 254, 116, 0, 0, 1, 0, 21, 0, 0, 4, 128, 4, 58, 0, 11, 0, 0, 65, 35, 3, 33, 19, 35, 3, 35, 19, 35, 3, 35, 1, 133, 180, 188, 3, 175, 188, 181, 162, 200, 162, 181, 162, 201, 4, 58, 251, 198, 4, 58, 252, 93, 3, 163, 252, 93, 0, 1, 0, 10, 254, 191, 4, 117, 4, 58, 0, 15, 0, 0, 65, 35, 3, 33, 3, 51, 19, 35, 19, 35, 3, 35, 19, 35, 3, 35, 1, 122, 180, 188, 3, 81, 56, 162, 100, 86, 162, 181, 162, 200, 162, 181, 162, 201, 4, 58, 251, 198, 254, 191, 1, 217, 3, 162, 252, 93, 3, 163, 252, 93, 0, 2, 0, 112, 255, 255, 4, 45, 4, 58, 0, 18, 0, 33, 0, 0, 83, 7, 33, 3, 33, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 39, 19, 3, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 35, 39, 139, 27, 1, 35, 161, 1, 130, 80, 152, 61, 60, 77, 6, 5, 52, 47, 48, 129, 73, 181, 71, 97, 204, 40, 65, 23, 22, 20, 5, 6, 46, 34, 34, 85, 45, 183, 4, 58, 152, 252, 94, 1, 43, 44, 43, 131, 87, 79, 119, 41, 40, 43, 2, 1, 1, 154, 253, 207, 1, 2, 26, 23, 23, 65, 41, 48, 72, 23, 23, 24, 1, 0, 0, 3, 0, 35, 255, 255, 4, 115, 4, 58, 0, 16, 0, 20, 0, 35, 0, 0, 65, 19, 35, 3, 33, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 1, 19, 35, 3, 1, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 39, 1, 71, 71, 174, 189, 1, 32, 79, 140, 53, 53, 66, 5, 5, 40, 40, 41, 116, 71, 2, 23, 188, 181, 188, 254, 49, 106, 37, 52, 15, 14, 9, 4, 5, 29, 22, 28, 77, 48, 85, 2, 159, 1, 155, 251, 198, 1, 47, 45, 45, 130, 81, 73, 117, 42, 42, 47, 2, 253, 98, 4, 58, 251, 198, 2, 9, 1, 2, 31, 25, 25, 63, 34, 38, 65, 24, 29, 33, 1, 1, 0, 2, 0, 56, 255, 255, 3, 247, 4, 58, 0, 16, 0, 31, 0, 0, 65, 19, 35, 3, 33, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 5, 5, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 35, 37, 1, 97, 71, 181, 187, 2, 1, 81, 153, 62, 61, 78, 6, 5, 53, 48, 49, 131, 73, 254, 178, 1, 75, 40, 67, 24, 23, 22, 6, 6, 48, 35, 35, 86, 45, 254, 201, 2, 160, 1, 154, 251, 198, 1, 43, 43, 43, 131, 88, 80, 119, 41, 40, 41, 2, 149, 1, 2, 25, 22, 23, 66, 42, 49, 71, 23, 24, 23, 1, 0, 0, 1, 0, 80, 255, 233, 4, 25, 4, 80, 0, 56, 0, 0, 65, 22, 22, 23, 22, 22, 7, 33, 7, 37, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 39, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 55, 54, 54, 55, 54, 54, 2, 107, 69, 99, 30, 30, 24, 4, 254, 102, 27, 1, 166, 20, 64, 46, 46, 124, 79, 52, 83, 29, 29, 29, 3, 170, 4, 54, 51, 51, 143, 85, 119, 198, 75, 74, 92, 14, 5, 8, 21, 30, 18, 53, 34, 50, 133, 84, 80, 160, 66, 67, 91, 9, 171, 11, 57, 41, 40, 96, 3, 183, 2, 54, 44, 45, 116, 63, 152, 1, 69, 128, 48, 48, 56, 3, 1, 38, 33, 32, 87, 50, 1, 86, 142, 51, 52, 59, 2, 3, 84, 74, 74, 200, 113, 43, 83, 154, 66, 41, 72, 29, 42, 49, 1, 2, 51, 47, 48, 136, 84, 1, 50, 79, 28, 28, 28, 0, 2, 0, 5, 255, 234, 4, 94, 4, 81, 0, 43, 0, 81, 0, 0, 65, 19, 35, 3, 51, 19, 55, 6, 6, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 55, 55, 54, 54, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 23, 55, 54, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 7, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 54, 54, 1, 38, 80, 181, 188, 181, 82, 131, 3, 3, 2, 2, 20, 19, 30, 118, 95, 72, 115, 45, 45, 67, 24, 23, 29, 8, 3, 6, 2, 7, 8, 37, 32, 33, 99, 70, 66, 106, 42, 43, 65, 24, 25, 37, 13, 173, 2, 4, 12, 11, 11, 33, 24, 24, 68, 45, 41, 50, 13, 13, 8, 1, 2, 8, 3, 3, 4, 13, 10, 11, 34, 24, 25, 68, 45, 41, 49, 13, 13, 7, 2, 1, 9, 2, 111, 1, 203, 251, 198, 1, 215, 1, 29, 61, 31, 51, 102, 45, 73, 97, 3, 2, 47, 42, 42, 112, 62, 62, 128, 58, 22, 53, 121, 61, 60, 112, 44, 43, 54, 2, 2, 41, 35, 36, 96, 54, 54, 113, 53, 99, 22, 31, 86, 46, 46, 88, 35, 34, 42, 2, 2, 46, 36, 37, 89, 43, 44, 78, 25, 21, 32, 85, 45, 46, 88, 34, 34, 41, 2, 2, 46, 36, 36, 87, 44, 43, 77, 0, 0, 2, 255, 222, 0, 0, 4, 86, 4, 59, 0, 19, 0, 34, 0, 0, 65, 37, 34, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 1, 51, 1, 33, 3, 51, 1, 54, 54, 55, 54, 54, 55, 5, 3, 37, 38, 38, 39, 38, 38, 4, 86, 254, 7, 79, 155, 62, 63, 82, 6, 4, 33, 37, 19, 47, 28, 254, 160, 207, 1, 67, 1, 63, 74, 181, 253, 185, 7, 50, 36, 36, 88, 44, 1, 47, 62, 254, 166, 37, 62, 21, 22, 19, 4, 58, 1, 40, 41, 42, 128, 88, 62, 113, 44, 22, 36, 14, 254, 59, 1, 165, 254, 91, 2, 230, 49, 71, 24, 23, 23, 1, 1, 254, 153, 1, 2, 24, 21, 21, 61, 0, 0, 1, 0, 56, 254, 71, 4, 24, 6, 0, 0, 61, 0, 0, 65, 55, 33, 55, 35, 7, 35, 7, 51, 3, 51, 19, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 3, 51, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 7, 22, 22, 23, 22, 54, 55, 54, 54, 55, 19, 35, 55, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 19, 2, 189, 27, 254, 255, 33, 181, 31, 183, 27, 184, 210, 181, 137, 28, 67, 38, 37, 83, 46, 59, 77, 22, 22, 12, 6, 115, 4, 15, 6, 24, 20, 21, 60, 41, 26, 51, 24, 30, 30, 59, 32, 81, 127, 46, 45, 55, 10, 90, 4, 38, 9, 24, 36, 36, 124, 92, 54, 97, 43, 44, 77, 33, 54, 4, 185, 151, 176, 176, 151, 251, 71, 3, 19, 34, 58, 22, 21, 23, 1, 2, 41, 35, 36, 93, 53, 253, 84, 89, 36, 71, 28, 29, 36, 8, 8, 147, 9, 10, 1, 1, 53, 47, 47, 129, 76, 2, 31, 227, 82, 151, 58, 58, 70, 2, 1, 27, 24, 24, 68, 40, 1, 33, 0, 0, 1, 0, 121, 255, 233, 4, 44, 4, 81, 0, 59, 0, 0, 101, 38, 38, 39, 38, 38, 39, 38, 38, 55, 33, 55, 33, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 23, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 7, 6, 6, 7, 6, 6, 2, 21, 71, 92, 26, 12, 16, 5, 7, 4, 2, 1, 138, 27, 254, 111, 15, 58, 45, 44, 118, 75, 52, 82, 29, 28, 28, 2, 170, 4, 54, 50, 51, 142, 84, 109, 183, 70, 80, 99, 14, 5, 6, 7, 13, 10, 30, 21, 49, 160, 114, 79, 160, 66, 66, 90, 9, 171, 11, 56, 39, 40, 96, 129, 2, 60, 48, 20, 46, 24, 32, 69, 34, 152, 66, 122, 47, 47, 55, 2, 2, 38, 32, 33, 86, 50, 1, 85, 143, 52, 51, 60, 2, 3, 76, 66, 75, 211, 117, 43, 59, 114, 53, 38, 72, 32, 75, 92, 3, 2, 51, 48, 47, 135, 83, 1, 49, 79, 27, 28, 29, 0, 0, 2, 255, 196, 255, 253, 4, 99, 4, 58, 0, 40, 0, 55, 0, 0, 65, 33, 3, 6, 6, 7, 6, 6, 7, 6, 6, 35, 35, 7, 51, 22, 54, 55, 54, 54, 55, 54, 54, 55, 19, 51, 3, 33, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 39, 7, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 35, 3, 69, 253, 220, 78, 5, 10, 9, 10, 29, 23, 24, 68, 47, 27, 19, 49, 78, 115, 42, 41, 56, 19, 18, 23, 9, 53, 187, 161, 1, 0, 78, 139, 53, 53, 66, 5, 4, 39, 40, 40, 115, 71, 55, 18, 68, 40, 53, 15, 12, 8, 4, 5, 33, 26, 27, 72, 43, 57, 4, 58, 254, 49, 32, 94, 51, 52, 102, 41, 41, 52, 154, 3, 58, 50, 49, 130, 70, 69, 138, 58, 1, 54, 252, 95, 1, 47, 45, 44, 129, 81, 72, 117, 42, 42, 48, 2, 1, 150, 2, 3, 31, 25, 21, 57, 33, 42, 71, 27, 27, 32, 1, 0, 2, 0, 21, 255, 255, 4, 70, 4, 58, 0, 24, 0, 39, 0, 0, 65, 19, 35, 3, 51, 19, 51, 3, 33, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 39, 19, 35, 3, 23, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 39, 1, 63, 71, 181, 188, 181, 91, 240, 90, 1, 16, 78, 132, 50, 49, 61, 5, 4, 35, 36, 37, 109, 70, 68, 72, 180, 72, 154, 91, 35, 44, 12, 12, 6, 4, 5, 30, 24, 24, 65, 42, 70, 2, 161, 1, 153, 251, 198, 2, 10, 253, 246, 1, 49, 46, 45, 128, 78, 69, 116, 43, 42, 49, 3, 2, 1, 157, 254, 103, 155, 1, 2, 31, 24, 24, 59, 30, 39, 71, 27, 27, 34, 2, 2, 0, 1, 0, 63, 0, 0, 4, 31, 6, 0, 0, 39, 0, 0, 65, 55, 33, 55, 35, 7, 35, 7, 51, 3, 51, 19, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 3, 51, 19, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 19, 2, 240, 27, 254, 212, 32, 181, 30, 140, 27, 141, 211, 181, 137, 28, 67, 38, 37, 83, 46, 59, 77, 22, 22, 12, 6, 115, 181, 114, 9, 24, 36, 36, 124, 92, 54, 97, 43, 44, 77, 33, 55, 4, 190, 151, 171, 171, 151, 251, 66, 3, 19, 34, 58, 22, 21, 23, 1, 2, 41, 35, 36, 93, 53, 253, 84, 2, 169, 82, 151, 58, 58, 70, 2, 1, 27, 24, 24, 68, 40, 1, 38, 0, 1, 0, 56, 254, 156, 4, 92, 4, 58, 0, 11, 0, 0, 65, 35, 3, 33, 3, 51, 19, 33, 19, 35, 3, 33, 1, 168, 181, 187, 1, 92, 62, 181, 62, 1, 87, 188, 181, 162, 254, 1, 4, 58, 251, 198, 254, 156, 1, 100, 4, 58, 252, 93, 0, 1, 0, 56, 255, 234, 4, 241, 5, 176, 0, 74, 0, 0, 65, 35, 3, 6, 6, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 38, 54, 55, 19, 35, 3, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 39, 52, 54, 55, 19, 35, 3, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 55, 4, 241, 180, 192, 2, 6, 5, 4, 11, 7, 16, 48, 36, 37, 42, 9, 5, 5, 1, 2, 1, 2, 193, 187, 193, 2, 8, 5, 5, 14, 9, 18, 54, 38, 33, 35, 6, 4, 2, 1, 1, 2, 190, 179, 189, 8, 3, 6, 6, 20, 14, 29, 99, 71, 40, 69, 29, 29, 49, 21, 7, 22, 15, 28, 79, 49, 76, 116, 41, 26, 39, 13, 7, 11, 3, 5, 176, 251, 143, 15, 32, 17, 15, 30, 14, 29, 38, 39, 29, 13, 30, 15, 16, 32, 14, 4, 115, 251, 143, 16, 33, 17, 16, 30, 14, 29, 36, 2, 1, 42, 29, 14, 30, 15, 15, 29, 12, 4, 115, 251, 168, 46, 79, 31, 28, 51, 22, 48, 58, 1, 1, 21, 20, 19, 55, 32, 24, 41, 16, 31, 33, 1, 2, 54, 48, 30, 73, 40, 23, 49, 25, 0, 1, 0, 43, 255, 234, 4, 173, 4, 59, 0, 74, 0, 0, 65, 35, 3, 6, 6, 7, 6, 6, 7, 6, 6, 39, 34, 38, 39, 38, 38, 39, 38, 38, 55, 19, 35, 3, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 39, 38, 54, 55, 19, 35, 3, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 55, 4, 173, 181, 128, 4, 18, 15, 8, 20, 12, 12, 31, 18, 17, 28, 10, 12, 15, 5, 10, 3, 3, 126, 186, 129, 5, 21, 18, 8, 21, 12, 15, 34, 20, 20, 28, 9, 7, 9, 3, 7, 1, 2, 127, 180, 130, 4, 6, 11, 8, 31, 35, 27, 82, 51, 40, 69, 30, 29, 49, 21, 11, 37, 25, 26, 66, 37, 43, 74, 32, 24, 43, 18, 41, 50, 9, 4, 59, 253, 0, 28, 65, 28, 14, 25, 8, 9, 10, 1, 9, 9, 8, 25, 15, 28, 65, 27, 3, 0, 253, 0, 31, 67, 27, 13, 22, 8, 9, 10, 1, 1, 15, 12, 9, 22, 12, 28, 63, 24, 3, 0, 252, 255, 41, 79, 36, 26, 61, 34, 27, 30, 1, 1, 21, 20, 19, 54, 33, 34, 53, 19, 19, 20, 1, 1, 16, 16, 13, 34, 20, 46, 125, 69, 0, 2, 0, 109, 255, 255, 3, 243, 6, 24, 0, 24, 0, 39, 0, 0, 65, 55, 33, 19, 35, 3, 35, 7, 51, 3, 33, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 39, 19, 3, 5, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 37, 3, 20, 27, 254, 199, 58, 180, 58, 186, 27, 187, 187, 1, 203, 80, 153, 61, 60, 78, 6, 5, 52, 48, 48, 130, 73, 254, 70, 96, 1, 21, 40, 66, 23, 23, 21, 6, 6, 47, 34, 35, 85, 45, 255, 0, 4, 52, 152, 1, 76, 254, 180, 152, 251, 204, 1, 43, 44, 43, 131, 87, 79, 119, 41, 40, 43, 2, 1, 1, 148, 253, 213, 1, 2, 25, 23, 23, 65, 42, 48, 72, 23, 24, 23, 1, 2, 0, 1, 0, 17, 255, 233, 4, 193, 5, 199, 0, 84, 0, 0, 65, 19, 35, 3, 51, 19, 51, 7, 6, 6, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 7, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 54, 54, 55, 55, 33, 55, 33, 55, 54, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 23, 22, 22, 7, 23, 52, 38, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 7, 1, 84, 109, 180, 252, 179, 119, 144, 24, 7, 3, 8, 8, 37, 34, 33, 100, 70, 88, 131, 47, 46, 57, 14, 161, 5, 12, 7, 7, 18, 11, 24, 72, 54, 41, 50, 13, 13, 8, 1, 1, 9, 3, 24, 1, 17, 27, 254, 237, 15, 5, 14, 12, 12, 34, 26, 25, 69, 46, 28, 40, 15, 11, 17, 5, 12, 4, 1, 163, 9, 12, 12, 40, 31, 32, 87, 57, 74, 117, 45, 46, 67, 24, 25, 30, 9, 15, 3, 64, 2, 112, 250, 80, 2, 169, 155, 54, 121, 60, 60, 110, 43, 43, 53, 2, 3, 72, 60, 59, 150, 75, 1, 21, 47, 23, 22, 43, 19, 40, 50, 3, 2, 46, 36, 35, 88, 43, 43, 77, 25, 156, 151, 101, 32, 85, 45, 44, 85, 33, 33, 38, 2, 1, 19, 16, 13, 33, 18, 41, 91, 37, 1, 48, 99, 47, 46, 81, 31, 30, 37, 2, 2, 46, 41, 41, 110, 61, 61, 129, 59, 99, 0, 1, 0, 46, 255, 233, 4, 132, 4, 80, 0, 75, 0, 0, 65, 55, 33, 55, 54, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 23, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 7, 35, 19, 35, 3, 51, 19, 55, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 38, 54, 55, 55, 3, 147, 27, 254, 214, 5, 5, 15, 11, 12, 34, 24, 24, 61, 40, 38, 44, 11, 11, 4, 1, 171, 3, 27, 32, 33, 103, 72, 68, 108, 43, 44, 66, 24, 22, 32, 12, 6, 131, 82, 181, 188, 181, 80, 145, 4, 4, 3, 9, 10, 42, 34, 34, 95, 63, 68, 117, 45, 45, 56, 6, 169, 6, 25, 19, 19, 53, 36, 37, 47, 13, 14, 12, 1, 2, 2, 4, 1, 208, 151, 23, 25, 61, 31, 38, 72, 28, 28, 32, 2, 2, 43, 30, 31, 70, 28, 1, 64, 126, 50, 50, 63, 3, 2, 40, 35, 36, 98, 54, 49, 103, 49, 25, 1, 211, 251, 198, 1, 208, 1, 31, 45, 94, 45, 54, 97, 37, 37, 45, 1, 2, 54, 45, 45, 119, 64, 1, 30, 62, 25, 26, 32, 38, 30, 30, 74, 37, 25, 46, 20, 36, 0, 0, 2, 255, 185, 0, 0, 4, 35, 5, 176, 0, 11, 0, 16, 0, 0, 65, 19, 51, 3, 35, 1, 51, 19, 51, 3, 51, 19, 39, 19, 55, 23, 19, 3, 51, 63, 177, 230, 156, 253, 24, 192, 220, 139, 77, 180, 77, 240, 222, 69, 20, 64, 1, 184, 254, 72, 5, 176, 250, 80, 1, 184, 254, 72, 1, 184, 161, 1, 191, 138, 138, 254, 65, 0, 0, 2, 255, 231, 0, 0, 3, 243, 4, 58, 0, 11, 0, 16, 0, 0, 65, 19, 51, 3, 35, 1, 51, 19, 51, 3, 51, 19, 39, 19, 55, 23, 19, 3, 0, 66, 177, 254, 155, 253, 141, 193, 167, 126, 53, 181, 52, 221, 188, 42, 7, 77, 1, 41, 254, 215, 4, 58, 251, 198, 1, 41, 254, 215, 1, 41, 152, 1, 79, 87, 69, 254, 159, 0, 0, 2, 0, 5, 0, 0, 4, 45, 5, 176, 0, 19, 0, 24, 0, 0, 65, 19, 51, 3, 35, 1, 35, 19, 35, 3, 51, 19, 51, 3, 51, 19, 51, 3, 51, 19, 39, 19, 55, 23, 19, 3, 115, 13, 173, 74, 156, 254, 166, 198, 144, 181, 253, 181, 81, 159, 195, 190, 184, 66, 86, 145, 85, 150, 147, 53, 3, 8, 1, 213, 254, 43, 5, 176, 252, 197, 3, 59, 250, 80, 1, 212, 254, 44, 1, 213, 254, 43, 1, 213, 160, 1, 120, 136, 136, 254, 136, 0, 0, 2, 0, 4, 0, 0, 4, 45, 4, 58, 0, 19, 0, 24, 0, 0, 65, 19, 51, 3, 35, 1, 35, 19, 35, 3, 51, 19, 51, 3, 51, 19, 51, 3, 51, 19, 39, 55, 55, 23, 23, 3, 95, 34, 172, 140, 156, 254, 196, 194, 110, 181, 188, 181, 51, 142, 148, 192, 142, 72, 52, 153, 56, 153, 122, 45, 10, 27, 1, 37, 254, 219, 4, 58, 253, 140, 2, 116, 251, 198, 1, 37, 254, 219, 1, 37, 254, 219, 1, 38, 160, 253, 92, 92, 253, 0, 0, 2, 255, 235, 0, 0, 4, 202, 5, 176, 0, 39, 0, 44, 0, 0, 65, 1, 33, 19, 35, 34, 6, 7, 6, 6, 7, 3, 51, 19, 54, 54, 55, 54, 54, 23, 23, 3, 51, 19, 23, 22, 22, 23, 22, 22, 7, 3, 51, 19, 54, 38, 39, 38, 38, 35, 19, 3, 7, 39, 3, 3, 35, 1, 167, 252, 62, 205, 10, 87, 138, 50, 56, 68, 12, 69, 181, 71, 7, 31, 26, 26, 77, 53, 78, 119, 181, 115, 81, 47, 54, 12, 12, 2, 5, 71, 181, 70, 8, 25, 35, 34, 120, 75, 112, 250, 30, 14, 122, 3, 23, 2, 153, 253, 107, 44, 41, 47, 143, 94, 254, 86, 1, 171, 49, 81, 29, 28, 32, 1, 1, 253, 124, 2, 131, 2, 1, 38, 29, 29, 75, 41, 254, 84, 1, 171, 79, 131, 48, 46, 60, 2, 1, 254, 89, 50, 50, 1, 167, 0, 0, 2, 255, 254, 0, 0, 4, 121, 4, 58, 0, 39, 0, 43, 0, 0, 99, 51, 55, 54, 54, 55, 54, 54, 23, 23, 3, 51, 19, 23, 22, 22, 23, 22, 6, 7, 7, 51, 55, 54, 38, 39, 38, 38, 39, 39, 1, 33, 19, 7, 6, 6, 7, 6, 6, 7, 1, 3, 39, 3, 2, 180, 35, 7, 26, 24, 24, 74, 54, 62, 85, 181, 82, 59, 48, 48, 10, 9, 4, 4, 32, 181, 33, 7, 13, 26, 26, 93, 72, 9, 1, 111, 252, 107, 183, 9, 87, 127, 45, 46, 54, 12, 3, 24, 230, 7, 106, 219, 48, 86, 33, 32, 39, 2, 2, 254, 59, 1, 197, 2, 2, 46, 33, 33, 79, 38, 220, 219, 68, 129, 52, 50, 71, 8, 1, 1, 228, 254, 35, 1, 7, 56, 48, 50, 139, 86, 2, 200, 254, 185, 1, 1, 70, 0, 0, 2, 255, 229, 0, 0, 4, 241, 5, 176, 0, 48, 0, 51, 0, 0, 65, 39, 1, 33, 19, 33, 19, 35, 3, 51, 19, 55, 6, 6, 7, 6, 6, 7, 3, 51, 19, 54, 54, 55, 54, 54, 51, 23, 3, 51, 19, 23, 22, 22, 23, 22, 22, 21, 22, 6, 7, 3, 51, 19, 54, 38, 39, 38, 38, 19, 3, 3, 3, 173, 27, 1, 95, 253, 44, 113, 254, 135, 116, 167, 253, 167, 111, 154, 3, 7, 3, 12, 17, 6, 86, 150, 84, 5, 19, 17, 16, 48, 33, 45, 116, 150, 114, 41, 19, 28, 9, 10, 13, 2, 2, 2, 83, 150, 82, 6, 13, 22, 19, 66, 5, 196, 53, 3, 17, 4, 2, 155, 253, 104, 2, 152, 250, 80, 2, 128, 2, 7, 14, 6, 28, 57, 31, 254, 13, 1, 244, 29, 52, 20, 19, 22, 2, 253, 128, 2, 128, 1, 1, 10, 9, 10, 30, 16, 15, 31, 16, 254, 11, 1, 244, 54, 100, 39, 34, 49, 2, 16, 254, 103, 1, 153, 0, 2, 255, 230, 0, 0, 4, 177, 4, 58, 0, 41, 0, 44, 0, 0, 83, 19, 35, 3, 51, 19, 55, 6, 6, 7, 3, 51, 19, 54, 54, 55, 54, 54, 23, 51, 3, 51, 19, 23, 22, 22, 23, 22, 22, 7, 3, 51, 19, 54, 38, 39, 38, 38, 39, 1, 33, 19, 1, 3, 3, 244, 85, 167, 188, 167, 77, 155, 19, 23, 8, 51, 150, 50, 5, 20, 17, 17, 48, 33, 43, 83, 151, 81, 38, 30, 34, 8, 7, 1, 3, 48, 149, 48, 5, 9, 18, 19, 69, 55, 1, 42, 253, 54, 120, 1, 67, 175, 64, 2, 83, 1, 231, 251, 198, 1, 187, 2, 35, 70, 38, 254, 210, 1, 47, 29, 52, 20, 20, 22, 1, 254, 67, 1, 187, 2, 2, 23, 18, 19, 47, 27, 254, 207, 1, 47, 49, 95, 39, 39, 54, 9, 1, 238, 254, 25, 1, 88, 254, 195, 1, 61, 0, 2, 0, 68, 254, 71, 4, 71, 7, 117, 0, 86, 0, 95, 0, 0, 65, 39, 7, 23, 22, 22, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 35, 39, 34, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 55, 38, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 55, 23, 50, 54, 55, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 37, 7, 5, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 19, 39, 39, 7, 23, 51, 37, 55, 7, 2, 42, 128, 27, 149, 45, 80, 32, 27, 44, 13, 17, 12, 6, 8, 61, 46, 46, 116, 64, 45, 65, 126, 49, 50, 63, 3, 2, 32, 30, 29, 79, 45, 80, 27, 49, 18, 18, 17, 5, 4, 34, 25, 24, 59, 30, 53, 67, 127, 56, 28, 53, 24, 71, 91, 8, 4, 26, 31, 25, 74, 48, 54, 102, 41, 40, 53, 5, 7, 62, 57, 58, 154, 84, 254, 227, 27, 1, 53, 52, 89, 32, 32, 31, 7, 8, 65, 48, 49, 119, 130, 118, 149, 2, 210, 112, 1, 25, 1, 161, 3, 53, 2, 151, 1, 1, 17, 16, 13, 39, 25, 28, 75, 47, 66, 103, 36, 36, 38, 1, 26, 31, 31, 101, 74, 53, 93, 39, 39, 63, 23, 123, 13, 34, 22, 21, 54, 33, 33, 46, 15, 14, 13, 1, 1, 25, 25, 12, 31, 19, 55, 162, 105, 63, 110, 44, 37, 58, 19, 22, 60, 40, 39, 102, 63, 93, 141, 49, 48, 51, 2, 1, 152, 1, 2, 29, 28, 29, 84, 56, 69, 96, 30, 31, 28, 3, 168, 151, 1, 23, 244, 247, 20, 2, 0, 2, 0, 88, 254, 72, 4, 6, 6, 31, 0, 92, 0, 101, 0, 0, 65, 39, 7, 23, 22, 22, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 35, 39, 34, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 55, 38, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 55, 23, 50, 54, 55, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 37, 7, 5, 22, 22, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 19, 39, 39, 7, 23, 51, 37, 55, 7, 2, 20, 127, 26, 149, 25, 58, 29, 28, 51, 19, 18, 19, 5, 8, 58, 40, 41, 94, 43, 40, 65, 125, 50, 50, 63, 3, 2, 32, 30, 29, 79, 44, 83, 27, 50, 18, 18, 18, 5, 4, 34, 25, 24, 59, 30, 48, 52, 108, 51, 50, 91, 35, 34, 42, 3, 2, 23, 22, 23, 63, 38, 40, 80, 32, 32, 43, 3, 2, 14, 14, 16, 48, 29, 56, 140, 66, 254, 232, 27, 1, 47, 33, 76, 31, 14, 25, 8, 10, 9, 3, 7, 62, 43, 44, 99, 120, 118, 149, 2, 210, 112, 1, 25, 1, 161, 2, 104, 1, 151, 1, 1, 4, 6, 7, 21, 17, 18, 50, 34, 50, 66, 20, 21, 18, 1, 27, 31, 31, 101, 74, 53, 93, 39, 39, 63, 22, 120, 14, 34, 22, 21, 54, 34, 34, 46, 14, 14, 13, 1, 1, 16, 17, 16, 53, 37, 37, 97, 60, 42, 71, 29, 28, 42, 15, 16, 44, 29, 29, 75, 48, 38, 66, 27, 30, 48, 19, 36, 34, 2, 1, 153, 1, 1, 13, 16, 7, 20, 12, 15, 37, 23, 53, 65, 18, 19, 13, 3, 31, 151, 1, 23, 244, 247, 20, 2, 0, 3, 0, 95, 255, 234, 4, 102, 5, 198, 0, 37, 0, 58, 0, 79, 0, 0, 65, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 39, 7, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 39, 38, 54, 55, 55, 1, 22, 22, 23, 22, 6, 7, 7, 33, 55, 54, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 4, 66, 26, 10, 3, 14, 15, 59, 47, 47, 131, 87, 90, 151, 61, 62, 97, 35, 36, 47, 13, 26, 10, 3, 15, 15, 60, 47, 47, 131, 86, 90, 151, 62, 61, 96, 36, 35, 47, 166, 1, 9, 30, 22, 23, 62, 41, 41, 106, 65, 62, 85, 28, 28, 28, 5, 5, 5, 7, 1, 2, 91, 27, 28, 5, 4, 7, 6, 2, 253, 141, 2, 9, 30, 23, 23, 63, 42, 41, 105, 65, 62, 85, 2, 133, 165, 71, 153, 74, 73, 132, 50, 50, 61, 2, 2, 54, 48, 49, 132, 74, 75, 159, 77, 166, 71, 152, 73, 73, 132, 50, 50, 61, 2, 2, 54, 48, 48, 132, 75, 74, 159, 81, 5, 53, 116, 56, 57, 102, 38, 39, 43, 2, 2, 51, 41, 40, 104, 55, 55, 108, 45, 6, 2, 59, 40, 103, 54, 55, 108, 46, 13, 11, 52, 116, 57, 56, 101, 39, 38, 43, 2, 2, 50, 0, 3, 0, 68, 255, 233, 4, 23, 4, 80, 0, 28, 0, 41, 0, 54, 0, 0, 83, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 55, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 1, 22, 22, 23, 22, 22, 7, 33, 54, 54, 55, 54, 54, 3, 38, 38, 39, 38, 38, 55, 33, 6, 6, 7, 6, 6, 82, 3, 11, 38, 49, 49, 161, 113, 118, 193, 71, 71, 89, 14, 2, 11, 37, 49, 49, 161, 114, 80, 139, 58, 59, 95, 35, 35, 45, 2, 26, 68, 90, 27, 26, 20, 1, 253, 186, 16, 59, 44, 44, 116, 70, 70, 91, 26, 27, 18, 2, 2, 73, 16, 59, 44, 44, 118, 2, 32, 22, 102, 192, 76, 76, 93, 3, 3, 90, 77, 76, 202, 109, 23, 102, 195, 77, 76, 95, 3, 2, 41, 37, 38, 105, 62, 63, 141, 1, 78, 2, 61, 47, 47, 117, 58, 64, 121, 47, 47, 55, 252, 200, 2, 63, 48, 48, 119, 59, 65, 124, 48, 48, 56, 0, 0, 1, 0, 177, 0, 0, 5, 79, 5, 197, 0, 22, 0, 0, 65, 3, 35, 19, 51, 1, 54, 54, 55, 54, 54, 51, 23, 55, 39, 34, 6, 7, 6, 6, 7, 1, 7, 2, 13, 151, 197, 238, 166, 2, 61, 13, 32, 21, 21, 52, 35, 10, 21, 51, 69, 103, 39, 39, 58, 25, 254, 129, 58, 1, 110, 4, 66, 250, 80, 4, 136, 28, 53, 21, 20, 24, 1, 171, 1, 50, 40, 41, 106, 57, 252, 222, 134, 0, 0, 1, 0, 166, 0, 0, 4, 143, 4, 80, 0, 26, 0, 0, 65, 3, 35, 19, 51, 1, 54, 54, 55, 54, 54, 51, 54, 22, 23, 55, 38, 38, 35, 34, 6, 7, 6, 6, 7, 1, 7, 1, 216, 128, 178, 210, 138, 1, 196, 9, 25, 16, 15, 37, 21, 11, 20, 11, 36, 28, 52, 31, 55, 86, 34, 34, 51, 19, 254, 255, 43, 1, 50, 3, 8, 251, 198, 3, 76, 17, 34, 14, 13, 18, 1, 6, 4, 146, 14, 13, 42, 34, 35, 87, 45, 253, 229, 104, 0, 3, 0, 38, 254, 77, 4, 237, 5, 198, 0, 37, 0, 64, 0, 102, 0, 0, 65, 19, 54, 54, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 3, 6, 6, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 37, 19, 35, 3, 7, 6, 6, 7, 6, 6, 7, 6, 38, 39, 7, 22, 22, 51, 50, 54, 55, 54, 54, 55, 1, 35, 3, 1, 3, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 54, 54, 55, 19, 54, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 6, 6, 2, 102, 78, 5, 6, 4, 5, 26, 26, 27, 84, 61, 62, 95, 36, 36, 50, 17, 18, 21, 7, 78, 5, 7, 3, 2, 22, 24, 24, 80, 59, 64, 100, 38, 37, 55, 19, 18, 24, 1, 39, 19, 157, 33, 43, 10, 24, 17, 18, 46, 33, 17, 35, 17, 16, 24, 49, 25, 55, 84, 32, 31, 44, 15, 1, 191, 165, 207, 254, 140, 88, 3, 7, 6, 7, 22, 16, 17, 48, 33, 28, 31, 7, 8, 2, 3, 2, 7, 2, 88, 3, 7, 7, 6, 21, 17, 16, 47, 32, 28, 33, 8, 7, 3, 2, 3, 7, 1, 232, 1, 224, 43, 108, 56, 56, 106, 42, 42, 53, 2, 2, 48, 41, 41, 107, 57, 57, 113, 46, 254, 31, 41, 105, 56, 56, 107, 43, 43, 54, 2, 3, 47, 40, 40, 106, 57, 57, 115, 175, 1, 212, 251, 209, 106, 25, 63, 28, 29, 40, 1, 1, 7, 2, 146, 5, 11, 49, 39, 39, 94, 45, 4, 227, 253, 159, 2, 24, 253, 208, 21, 64, 35, 35, 71, 28, 28, 34, 2, 1, 40, 30, 29, 72, 35, 34, 58, 15, 2, 47, 21, 63, 35, 35, 70, 28, 28, 33, 2, 1, 38, 29, 30, 71, 34, 34, 57, 0, 0, 3, 0, 30, 254, 76, 4, 238, 4, 81, 0, 37, 0, 75, 0, 102, 0, 0, 83, 7, 6, 6, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 55, 55, 54, 54, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 23, 55, 54, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 20, 7, 6, 6, 7, 7, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 54, 55, 54, 54, 5, 55, 19, 35, 3, 7, 6, 6, 7, 6, 6, 7, 6, 38, 39, 7, 22, 22, 51, 22, 54, 55, 54, 54, 55, 1, 35, 45, 3, 6, 6, 4, 3, 27, 28, 27, 90, 66, 69, 108, 41, 40, 58, 20, 19, 24, 7, 3, 5, 7, 3, 4, 27, 28, 28, 91, 67, 70, 107, 40, 40, 57, 19, 20, 23, 171, 2, 3, 8, 7, 7, 24, 20, 20, 57, 40, 35, 39, 9, 8, 4, 4, 11, 2, 2, 3, 7, 7, 8, 24, 20, 20, 57, 41, 35, 39, 8, 9, 1, 4, 4, 11, 2, 152, 17, 20, 157, 33, 43, 10, 24, 17, 18, 46, 33, 17, 35, 17, 16, 24, 49, 25, 55, 84, 32, 31, 44, 15, 1, 191, 165, 2, 35, 23, 47, 116, 60, 60, 114, 45, 45, 56, 2, 2, 50, 44, 43, 115, 62, 62, 124, 53, 24, 47, 118, 60, 60, 115, 45, 45, 57, 2, 2, 51, 44, 44, 116, 62, 63, 125, 75, 23, 26, 81, 46, 45, 91, 37, 36, 44, 2, 2, 49, 37, 38, 92, 44, 44, 73, 20, 23, 26, 81, 45, 45, 91, 36, 36, 44, 2, 1, 50, 38, 37, 91, 44, 43, 73, 46, 157, 1, 210, 251, 209, 106, 25, 63, 28, 29, 40, 1, 1, 7, 2, 146, 5, 11, 1, 49, 39, 39, 95, 45, 4, 227, 0, 0, 4, 0, 102, 255, 115, 4, 109, 6, 53, 0, 3, 0, 7, 0, 45, 0, 83, 0, 0, 65, 19, 35, 3, 3, 19, 35, 3, 1, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 39, 7, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 39, 38, 54, 55, 55, 54, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 23, 22, 6, 3, 22, 67, 180, 68, 52, 69, 181, 69, 2, 209, 26, 10, 3, 14, 15, 59, 47, 47, 131, 87, 90, 151, 61, 62, 97, 35, 36, 47, 13, 26, 10, 3, 15, 15, 60, 47, 47, 131, 86, 90, 151, 62, 61, 96, 36, 35, 47, 140, 27, 9, 30, 22, 23, 62, 41, 41, 106, 65, 62, 85, 28, 28, 28, 5, 5, 6, 6, 28, 9, 30, 23, 23, 63, 42, 41, 105, 65, 62, 85, 28, 27, 28, 5, 4, 7, 4, 179, 1, 130, 254, 126, 250, 192, 1, 139, 254, 117, 3, 18, 165, 71, 153, 74, 73, 132, 50, 50, 61, 2, 2, 54, 48, 49, 132, 74, 75, 159, 77, 166, 71, 152, 73, 73, 132, 50, 50, 61, 2, 2, 54, 48, 48, 132, 75, 74, 159, 246, 170, 53, 116, 56, 57, 102, 38, 39, 43, 2, 2, 51, 41, 40, 104, 55, 55, 108, 45, 169, 52, 116, 57, 56, 101, 39, 38, 43, 2, 2, 50, 40, 40, 103, 54, 55, 108, 0, 0, 4, 0, 96, 255, 97, 4, 51, 4, 203, 0, 3, 0, 7, 0, 33, 0, 62, 0, 0, 65, 19, 35, 3, 19, 19, 35, 3, 1, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 55, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 23, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 23, 22, 22, 7, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 2, 217, 68, 182, 68, 9, 71, 182, 71, 254, 248, 3, 11, 38, 49, 49, 161, 113, 118, 193, 71, 71, 89, 14, 2, 11, 37, 49, 49, 161, 114, 113, 182, 69, 78, 99, 164, 3, 10, 54, 45, 45, 128, 84, 53, 79, 27, 23, 31, 8, 9, 1, 5, 2, 11, 54, 45, 46, 128, 83, 80, 97, 24, 19, 13, 3, 70, 1, 133, 254, 123, 252, 27, 1, 151, 254, 105, 2, 191, 22, 102, 192, 76, 76, 93, 3, 3, 90, 77, 76, 202, 109, 23, 102, 195, 77, 76, 95, 3, 3, 79, 70, 80, 216, 138, 22, 72, 147, 59, 59, 73, 3, 2, 39, 31, 27, 72, 39, 46, 97, 45, 22, 72, 145, 58, 58, 72, 3, 3, 80, 59, 47, 143, 0, 3, 0, 30, 255, 233, 4, 177, 7, 84, 0, 106, 0, 142, 0, 155, 0, 0, 65, 35, 3, 7, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 39, 38, 54, 55, 19, 54, 54, 55, 54, 54, 55, 55, 6, 6, 7, 6, 6, 7, 3, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 55, 19, 54, 38, 39, 38, 38, 39, 38, 38, 39, 7, 22, 22, 23, 22, 22, 23, 22, 6, 7, 3, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 39, 38, 54, 55, 55, 1, 22, 22, 23, 22, 22, 51, 23, 55, 35, 34, 38, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 7, 23, 55, 54, 54, 55, 54, 54, 51, 50, 22, 3, 23, 54, 54, 55, 54, 54, 55, 55, 39, 7, 6, 6, 2, 216, 182, 79, 4, 2, 7, 4, 5, 15, 10, 19, 54, 38, 38, 40, 9, 4, 4, 1, 1, 2, 2, 117, 7, 30, 25, 25, 73, 51, 17, 91, 142, 51, 51, 63, 12, 118, 3, 1, 5, 5, 22, 17, 31, 106, 75, 61, 96, 38, 11, 20, 9, 5, 14, 8, 28, 88, 54, 80, 124, 44, 23, 37, 14, 12, 16, 5, 118, 4, 1, 5, 6, 24, 19, 35, 116, 82, 10, 46, 50, 12, 5, 5, 1, 1, 3, 2, 118, 3, 8, 6, 5, 14, 8, 19, 56, 40, 36, 41, 9, 5, 5, 1, 2, 1, 2, 4, 1, 9, 25, 50, 26, 21, 45, 24, 39, 11, 44, 25, 46, 22, 26, 50, 25, 46, 93, 52, 67, 102, 31, 19, 23, 4, 3, 124, 3, 4, 14, 10, 15, 49, 33, 49, 91, 240, 74, 26, 48, 20, 23, 32, 6, 14, 136, 17, 10, 50, 3, 58, 254, 29, 26, 14, 30, 15, 17, 35, 15, 28, 36, 2, 1, 45, 32, 13, 29, 14, 19, 37, 16, 2, 214, 45, 86, 34, 34, 43, 3, 151, 2, 59, 52, 52, 144, 87, 253, 43, 32, 63, 30, 33, 61, 26, 50, 62, 1, 1, 50, 41, 12, 26, 14, 16, 28, 13, 40, 42, 2, 2, 56, 50, 26, 62, 34, 30, 67, 34, 2, 213, 34, 67, 31, 38, 68, 30, 54, 67, 5, 153, 5, 48, 34, 15, 32, 17, 21, 45, 22, 253, 40, 17, 38, 19, 16, 32, 14, 31, 41, 1, 1, 39, 29, 14, 30, 15, 16, 31, 14, 26, 5, 63, 13, 26, 9, 8, 10, 1, 129, 10, 8, 9, 24, 13, 23, 39, 1, 1, 45, 43, 26, 66, 40, 36, 1, 18, 20, 34, 13, 21, 24, 40, 254, 185, 60, 15, 38, 22, 26, 63, 36, 101, 1, 96, 44, 70, 0, 3, 0, 55, 255, 233, 4, 112, 5, 225, 0, 92, 0, 128, 0, 141, 0, 0, 65, 7, 22, 22, 23, 22, 6, 7, 3, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 39, 38, 52, 55, 19, 35, 3, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 53, 52, 54, 55, 19, 54, 54, 55, 54, 54, 55, 55, 6, 6, 7, 6, 6, 7, 3, 6, 20, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 19, 54, 38, 39, 38, 38, 19, 35, 34, 38, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 7, 23, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 22, 22, 51, 23, 5, 23, 54, 54, 55, 54, 54, 55, 55, 39, 7, 6, 6, 3, 98, 14, 43, 45, 9, 9, 4, 4, 58, 4, 16, 16, 16, 51, 38, 36, 41, 10, 3, 5, 1, 3, 2, 41, 181, 43, 3, 9, 6, 5, 12, 8, 19, 54, 38, 35, 34, 6, 3, 3, 3, 1, 57, 7, 26, 23, 22, 67, 48, 17, 89, 137, 48, 48, 59, 11, 57, 3, 3, 4, 20, 17, 29, 100, 74, 39, 68, 29, 29, 49, 21, 9, 29, 19, 27, 72, 42, 78, 119, 41, 41, 49, 9, 57, 7, 20, 31, 32, 108, 163, 44, 22, 41, 19, 29, 56, 28, 47, 94, 53, 64, 99, 32, 22, 26, 4, 3, 124, 3, 4, 16, 12, 16, 48, 31, 49, 91, 46, 26, 55, 28, 20, 42, 22, 39, 253, 249, 77, 27, 49, 20, 21, 29, 6, 14, 136, 18, 10, 50, 4, 77, 153, 5, 50, 34, 35, 78, 34, 254, 131, 29, 71, 31, 31, 42, 1, 1, 37, 28, 9, 20, 10, 21, 41, 18, 1, 14, 254, 242, 17, 38, 18, 13, 26, 12, 28, 35, 2, 2, 46, 32, 14, 30, 14, 18, 34, 13, 1, 123, 42, 84, 34, 34, 45, 3, 151, 3, 59, 52, 52, 142, 85, 254, 134, 28, 56, 26, 35, 66, 29, 50, 63, 1, 1, 20, 19, 18, 52, 32, 28, 45, 17, 23, 25, 1, 2, 57, 49, 49, 130, 70, 1, 122, 72, 136, 54, 54, 69, 1, 26, 8, 6, 9, 27, 14, 23, 39, 1, 1, 40, 40, 26, 70, 43, 37, 1, 18, 21, 37, 14, 19, 21, 40, 23, 14, 27, 10, 6, 9, 1, 238, 61, 16, 41, 24, 25, 61, 34, 101, 1, 96, 44, 70, 0, 2, 0, 62, 255, 234, 4, 247, 7, 4, 0, 7, 0, 82, 0, 0, 65, 7, 33, 7, 51, 55, 33, 55, 1, 22, 54, 55, 54, 54, 55, 54, 54, 55, 19, 35, 3, 6, 6, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 38, 54, 55, 19, 35, 3, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 39, 38, 54, 55, 19, 35, 3, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 22, 22, 23, 22, 22, 1, 226, 20, 1, 5, 23, 165, 22, 1, 20, 18, 254, 78, 76, 116, 41, 22, 34, 13, 11, 15, 4, 192, 180, 192, 2, 6, 5, 4, 11, 7, 16, 48, 36, 37, 42, 9, 5, 5, 1, 2, 1, 2, 193, 187, 193, 2, 7, 5, 5, 15, 9, 18, 54, 38, 33, 35, 6, 2, 3, 1, 1, 2, 1, 190, 179, 194, 3, 2, 5, 5, 21, 16, 29, 99, 71, 40, 69, 29, 29, 49, 21, 8, 25, 17, 28, 76, 7, 4, 108, 125, 125, 108, 248, 232, 2, 54, 48, 25, 59, 33, 28, 63, 32, 4, 112, 251, 143, 15, 32, 17, 15, 30, 14, 29, 38, 39, 29, 14, 30, 15, 16, 31, 14, 4, 115, 251, 143, 15, 32, 16, 16, 33, 14, 29, 36, 2, 1, 42, 29, 10, 21, 11, 20, 38, 15, 4, 115, 251, 142, 30, 60, 28, 31, 57, 25, 48, 58, 1, 1, 21, 20, 19, 55, 32, 27, 44, 17, 28, 29, 0, 0, 2, 0, 44, 255, 233, 4, 173, 5, 176, 0, 7, 0, 82, 0, 0, 65, 7, 33, 7, 51, 55, 33, 55, 1, 38, 38, 39, 38, 38, 39, 38, 52, 55, 19, 35, 3, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 39, 38, 54, 55, 19, 35, 3, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 55, 19, 35, 3, 6, 6, 7, 6, 6, 39, 34, 38, 1, 144, 19, 1, 8, 23, 164, 23, 1, 23, 18, 254, 93, 8, 12, 4, 3, 5, 2, 2, 2, 126, 186, 129, 5, 21, 18, 8, 19, 11, 14, 37, 21, 34, 35, 7, 3, 2, 1, 1, 2, 1, 127, 180, 130, 3, 2, 5, 6, 21, 15, 30, 100, 71, 40, 69, 30, 29, 49, 21, 10, 32, 21, 27, 71, 41, 76, 116, 42, 20, 32, 12, 13, 18, 5, 129, 181, 128, 4, 18, 15, 16, 49, 36, 21, 31, 5, 176, 108, 127, 127, 108, 250, 233, 9, 21, 12, 10, 20, 11, 20, 41, 18, 3, 0, 253, 0, 31, 67, 27, 12, 21, 7, 11, 11, 1, 1, 41, 29, 10, 22, 11, 19, 38, 15, 3, 0, 252, 255, 31, 60, 29, 30, 55, 24, 47, 58, 1, 1, 21, 20, 19, 54, 33, 31, 49, 17, 23, 25, 1, 2, 53, 47, 22, 52, 29, 31, 70, 36, 2, 254, 253, 0, 28, 65, 28, 29, 37, 1, 13, 0, 0, 1, 0, 142, 254, 130, 4, 145, 5, 199, 0, 54, 0, 0, 65, 19, 39, 38, 38, 39, 38, 38, 39, 38, 54, 55, 55, 54, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 51, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 7, 6, 6, 23, 22, 22, 23, 22, 22, 23, 3, 2, 104, 90, 118, 90, 111, 30, 11, 15, 4, 4, 1, 6, 39, 8, 30, 23, 23, 62, 41, 40, 100, 60, 72, 91, 26, 25, 16, 5, 181, 7, 43, 49, 50, 155, 106, 86, 145, 60, 61, 96, 35, 36, 48, 11, 39, 6, 1, 7, 6, 28, 22, 42, 149, 109, 70, 254, 130, 2, 0, 1, 4, 96, 72, 27, 65, 34, 44, 91, 40, 250, 49, 109, 54, 53, 95, 37, 36, 41, 2, 2, 60, 47, 47, 118, 61, 99, 174, 66, 66, 79, 2, 2, 50, 45, 45, 121, 70, 70, 152, 74, 247, 50, 102, 49, 49, 95, 43, 86, 123, 21, 254, 143, 0, 1, 0, 165, 254, 130, 4, 52, 4, 81, 0, 42, 0, 0, 65, 19, 39, 38, 38, 39, 38, 38, 55, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 23, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 3, 2, 61, 89, 111, 74, 85, 20, 21, 6, 7, 6, 9, 52, 43, 42, 121, 78, 51, 77, 25, 25, 23, 2, 170, 4, 48, 47, 48, 135, 84, 114, 187, 68, 69, 84, 13, 5, 9, 20, 33, 33, 119, 91, 69, 254, 130, 2, 0, 2, 4, 78, 57, 57, 133, 57, 42, 67, 141, 57, 57, 72, 3, 2, 41, 33, 33, 86, 47, 1, 82, 143, 53, 52, 62, 2, 3, 90, 76, 77, 197, 105, 43, 83, 169, 73, 73, 109, 22, 254, 142, 0, 0, 1, 0, 66, 0, 0, 4, 186, 5, 62, 0, 19, 0, 0, 65, 1, 23, 55, 39, 1, 35, 3, 39, 7, 23, 1, 39, 7, 23, 1, 51, 19, 23, 55, 2, 46, 1, 16, 250, 85, 255, 1, 44, 172, 242, 252, 84, 253, 254, 243, 254, 82, 251, 254, 219, 176, 234, 252, 82, 1, 183, 1, 117, 169, 113, 171, 1, 159, 254, 180, 170, 116, 171, 254, 139, 170, 114, 171, 254, 107, 1, 66, 169, 114, 0, 1, 1, 48, 4, 166, 4, 24, 5, 252, 0, 7, 0, 0, 65, 33, 55, 39, 7, 33, 7, 23, 1, 233, 2, 9, 38, 161, 18, 253, 245, 42, 162, 5, 35, 216, 1, 108, 233, 1, 0, 1, 1, 115, 5, 22, 4, 80, 6, 20, 0, 35, 0, 0, 65, 35, 7, 55, 50, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 7, 23, 55, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 1, 164, 37, 12, 48, 22, 43, 21, 39, 76, 38, 58, 116, 59, 27, 36, 10, 9, 7, 1, 2, 122, 3, 2, 18, 19, 26, 88, 58, 62, 116, 58, 37, 74, 38, 22, 45, 5, 150, 127, 1, 6, 5, 9, 29, 15, 23, 38, 2, 1, 16, 15, 13, 36, 23, 20, 1, 39, 43, 70, 26, 36, 38, 1, 1, 38, 23, 15, 29, 9, 5, 7, 0, 1, 2, 82, 5, 21, 3, 33, 6, 87, 0, 5, 0, 0, 65, 23, 55, 39, 55, 35, 2, 82, 129, 78, 38, 28, 176, 5, 229, 208, 57, 114, 151, 0, 0, 1, 2, 175, 5, 23, 3, 196, 6, 87, 0, 5, 0, 0, 65, 55, 55, 35, 7, 7, 2, 246, 183, 23, 176, 22, 79, 5, 23, 188, 132, 130, 117, 0, 0, 8, 254, 121, 254, 195, 5, 216, 5, 176, 0, 25, 0, 51, 0, 77, 0, 103, 0, 129, 0, 155, 0, 181, 0, 207, 0, 0, 65, 51, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 7, 51, 54, 38, 39, 38, 38, 35, 38, 6, 7, 6, 6, 1, 51, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 7, 51, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 19, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 7, 51, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 1, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 7, 51, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 1, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 7, 51, 54, 38, 39, 38, 38, 35, 38, 6, 7, 6, 6, 1, 51, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 7, 51, 54, 38, 39, 38, 38, 35, 38, 6, 7, 6, 6, 1, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 7, 51, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 19, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 7, 51, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 1, 213, 111, 5, 14, 10, 14, 38, 27, 24, 32, 9, 9, 6, 1, 109, 1, 26, 24, 25, 70, 43, 45, 75, 28, 29, 37, 2, 7, 112, 6, 18, 13, 13, 35, 23, 24, 31, 9, 9, 6, 1, 110, 1, 24, 23, 25, 72, 45, 47, 79, 29, 26, 33, 91, 108, 5, 17, 12, 13, 37, 25, 24, 31, 9, 9, 6, 1, 109, 1, 22, 20, 24, 74, 47, 45, 75, 28, 28, 36, 254, 225, 108, 5, 18, 12, 13, 37, 24, 24, 31, 9, 9, 6, 1, 109, 1, 25, 24, 24, 70, 44, 45, 75, 28, 28, 36, 253, 154, 108, 5, 17, 12, 14, 37, 24, 24, 31, 9, 9, 6, 1, 110, 1, 26, 24, 25, 70, 43, 45, 75, 28, 29, 35, 254, 169, 112, 6, 17, 13, 13, 36, 24, 24, 31, 9, 9, 6, 1, 109, 1, 28, 27, 25, 67, 41, 45, 75, 28, 29, 37, 254, 249, 109, 6, 18, 13, 13, 35, 24, 24, 31, 9, 9, 6, 1, 109, 1, 17, 17, 24, 78, 51, 45, 74, 28, 29, 37, 66, 109, 6, 18, 13, 12, 35, 24, 24, 31, 9, 9, 6, 1, 110, 1, 22, 22, 24, 74, 46, 45, 74, 28, 29, 36, 4, 244, 18, 32, 13, 17, 20, 16, 14, 14, 37, 21, 43, 69, 25, 25, 27, 1, 26, 24, 25, 70, 254, 192, 21, 37, 14, 13, 15, 16, 14, 14, 37, 21, 42, 69, 24, 26, 27, 1, 1, 29, 28, 24, 66, 253, 223, 1, 20, 35, 13, 15, 17, 16, 14, 14, 37, 21, 40, 66, 24, 27, 31, 1, 1, 26, 24, 25, 71, 253, 206, 1, 20, 36, 13, 14, 17, 16, 14, 14, 37, 21, 43, 69, 25, 24, 27, 1, 1, 26, 24, 25, 71, 254, 185, 1, 20, 35, 14, 14, 17, 16, 14, 14, 37, 21, 43, 69, 25, 25, 27, 1, 26, 24, 25, 71, 4, 240, 21, 37, 13, 13, 16, 16, 14, 14, 37, 21, 45, 73, 25, 21, 25, 1, 26, 24, 25, 70, 253, 221, 1, 20, 37, 14, 13, 16, 16, 14, 14, 37, 21, 36, 60, 24, 32, 36, 1, 1, 26, 25, 25, 70, 253, 206, 1, 20, 37, 14, 13, 16, 16, 14, 14, 37, 21, 40, 67, 24, 27, 30, 1, 1, 26, 25, 25, 70, 0, 8, 254, 189, 254, 99, 5, 194, 5, 198, 0, 4, 0, 9, 0, 14, 0, 19, 0, 24, 0, 29, 0, 34, 0, 39, 0, 0, 69, 7, 3, 51, 19, 19, 55, 19, 35, 3, 1, 7, 5, 55, 37, 5, 55, 37, 7, 5, 1, 23, 37, 39, 5, 1, 39, 5, 23, 37, 19, 55, 3, 7, 19, 1, 7, 19, 55, 3, 2, 51, 133, 127, 101, 172, 15, 132, 126, 100, 171, 2, 62, 15, 1, 64, 17, 254, 201, 251, 115, 16, 254, 192, 17, 1, 55, 3, 231, 89, 1, 52, 61, 254, 179, 252, 190, 88, 254, 204, 62, 1, 75, 20, 105, 148, 67, 93, 3, 44, 104, 147, 69, 93, 58, 3, 254, 160, 1, 81, 4, 177, 2, 1, 95, 254, 175, 254, 3, 140, 69, 92, 127, 210, 140, 68, 91, 127, 2, 68, 98, 191, 77, 153, 252, 26, 98, 191, 78, 153, 3, 89, 95, 1, 47, 61, 254, 177, 253, 67, 96, 254, 209, 62, 1, 79, 0, 3, 0, 81, 0, 0, 4, 167, 5, 176, 0, 3, 0, 20, 0, 35, 0, 0, 65, 1, 7, 1, 37, 5, 50, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 37, 3, 51, 19, 19, 5, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 35, 3, 248, 254, 239, 129, 1, 15, 253, 246, 1, 33, 100, 185, 73, 72, 92, 9, 8, 55, 54, 55, 155, 92, 254, 65, 252, 180, 128, 99, 1, 32, 59, 91, 30, 29, 25, 7, 8, 61, 46, 47, 118, 66, 1, 204, 1, 245, 65, 254, 12, 188, 1, 60, 57, 57, 165, 105, 95, 155, 56, 56, 63, 3, 1, 250, 80, 2, 224, 2, 56, 1, 3, 45, 37, 37, 99, 57, 67, 108, 37, 38, 41, 0, 3, 255, 247, 254, 96, 4, 28, 4, 79, 0, 3, 0, 39, 0, 71, 0, 0, 69, 1, 7, 1, 19, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 55, 7, 1, 51, 19, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 39, 7, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 39, 19, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 23, 22, 22, 3, 173, 254, 219, 117, 1, 39, 217, 2, 7, 4, 12, 13, 49, 39, 40, 110, 74, 52, 94, 42, 35, 63, 29, 19, 164, 254, 252, 181, 97, 19, 43, 23, 43, 100, 53, 115, 174, 61, 34, 53, 18, 14, 19, 174, 2, 4, 13, 10, 13, 39, 25, 44, 125, 84, 38, 66, 26, 27, 41, 15, 91, 25, 59, 33, 32, 74, 42, 52, 74, 26, 13, 20, 8, 23, 7, 6, 1, 126, 86, 254, 130, 2, 116, 21, 61, 127, 60, 60, 106, 41, 40, 48, 2, 1, 20, 21, 17, 50, 31, 119, 1, 250, 38, 2, 9, 23, 37, 14, 26, 25, 1, 2, 98, 80, 45, 106, 56, 42, 89, 64, 21, 30, 60, 30, 42, 80, 35, 59, 72, 2, 1, 20, 18, 18, 53, 35, 2, 11, 33, 56, 20, 19, 20, 1, 1, 36, 29, 14, 36, 19, 57, 135, 0, 0, 1, 0, 72, 0, 0, 4, 246, 6, 255, 0, 7, 0, 0, 65, 19, 35, 3, 33, 3, 51, 19, 4, 161, 85, 181, 59, 253, 63, 253, 182, 226, 5, 24, 1, 231, 254, 177, 250, 80, 5, 24, 0, 1, 0, 72, 0, 0, 4, 156, 5, 119, 0, 7, 0, 0, 65, 19, 35, 3, 33, 3, 51, 19, 4, 74, 82, 181, 56, 253, 85, 188, 182, 161, 3, 161, 1, 214, 254, 195, 251, 198, 3, 161, 0, 1, 0, 75, 254, 222, 4, 169, 5, 176, 0, 33, 0, 0, 65, 55, 33, 3, 51, 19, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 7, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 39, 19, 4, 142, 27, 252, 159, 253, 182, 116, 189, 93, 129, 38, 38, 25, 10, 9, 46, 42, 42, 125, 88, 15, 126, 193, 68, 68, 80, 13, 13, 54, 63, 63, 194, 128, 166, 82, 5, 24, 152, 250, 80, 2, 160, 1, 2, 62, 54, 54, 148, 87, 79, 145, 56, 57, 68, 2, 147, 3, 83, 74, 73, 201, 120, 126, 207, 75, 74, 84, 3, 1, 1, 214, 0, 1, 0, 74, 254, 224, 4, 96, 4, 58, 0, 39, 0, 0, 65, 55, 33, 3, 51, 19, 23, 22, 22, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 23, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 39, 19, 4, 69, 27, 252, 166, 188, 182, 84, 222, 37, 64, 27, 22, 37, 15, 33, 28, 8, 8, 50, 39, 39, 102, 60, 36, 84, 153, 60, 60, 79, 9, 10, 57, 58, 24, 56, 32, 47, 109, 60, 199, 49, 3, 161, 153, 251, 198, 1, 228, 1, 1, 16, 14, 11, 29, 18, 40, 109, 66, 64, 103, 39, 40, 55, 16, 150, 18, 83, 61, 60, 154, 90, 104, 170, 61, 25, 41, 15, 23, 26, 2, 1, 1, 27, 0, 1, 0, 64, 0, 0, 5, 15, 5, 176, 0, 20, 0, 0, 65, 35, 1, 35, 19, 35, 3, 35, 19, 35, 3, 51, 19, 51, 7, 51, 55, 23, 19, 51, 3, 5, 15, 220, 254, 109, 49, 50, 146, 45, 97, 113, 181, 253, 181, 115, 97, 44, 146, 47, 54, 200, 215, 231, 5, 176, 253, 122, 1, 2, 254, 255, 2, 133, 250, 80, 2, 148, 245, 246, 1, 253, 108, 2, 246, 0, 0, 1, 0, 54, 0, 0, 4, 147, 4, 58, 0, 20, 0, 0, 65, 35, 1, 7, 55, 35, 7, 35, 19, 35, 3, 51, 19, 51, 7, 51, 55, 23, 19, 51, 1, 4, 147, 230, 254, 181, 41, 43, 145, 38, 86, 80, 181, 188, 181, 81, 86, 35, 145, 39, 51, 188, 216, 254, 251, 4, 58, 254, 53, 1, 215, 213, 1, 202, 251, 198, 1, 205, 194, 195, 1, 254, 51, 2, 46, 0, 0, 1, 0, 165, 0, 0, 4, 246, 5, 176, 0, 14, 0, 0, 65, 19, 51, 3, 1, 35, 1, 35, 19, 33, 7, 33, 3, 51, 19, 2, 144, 180, 210, 221, 1, 189, 216, 254, 122, 89, 113, 254, 16, 27, 1, 61, 227, 180, 115, 2, 147, 253, 109, 2, 228, 2, 204, 253, 122, 2, 134, 152, 250, 232, 2, 147, 0, 1, 0, 111, 0, 0, 4, 198, 4, 58, 0, 14, 0, 0, 65, 19, 51, 3, 1, 35, 1, 35, 19, 33, 7, 33, 3, 51, 19, 2, 148, 180, 216, 251, 1, 161, 230, 254, 190, 116, 80, 254, 16, 27, 1, 59, 161, 181, 80, 1, 205, 254, 51, 2, 46, 2, 12, 254, 54, 1, 202, 153, 252, 95, 1, 205, 0, 1, 0, 6, 0, 0, 5, 12, 5, 176, 0, 13, 0, 0, 65, 19, 35, 3, 51, 19, 33, 3, 51, 19, 33, 55, 33, 3, 1, 69, 115, 181, 253, 181, 112, 1, 103, 113, 180, 226, 1, 58, 27, 254, 18, 114, 3, 31, 2, 145, 250, 80, 2, 135, 253, 121, 5, 24, 152, 253, 111, 0, 0, 1, 0, 2, 0, 0, 4, 205, 4, 58, 0, 13, 0, 0, 65, 19, 35, 3, 51, 19, 33, 3, 51, 19, 33, 55, 33, 3, 1, 33, 82, 181, 188, 181, 80, 1, 112, 81, 181, 161, 1, 54, 27, 254, 21, 82, 2, 101, 1, 213, 251, 198, 1, 206, 254, 50, 3, 161, 153, 254, 43, 0, 0, 1, 0, 1, 254, 221, 4, 66, 5, 176, 0, 47, 0, 0, 65, 19, 33, 3, 51, 19, 51, 3, 51, 19, 23, 22, 22, 23, 22, 22, 23, 22, 6, 7, 6, 6, 7, 6, 6, 7, 6, 6, 7, 7, 54, 54, 55, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 2, 239, 113, 253, 158, 253, 180, 226, 250, 226, 181, 120, 7, 46, 64, 19, 20, 19, 3, 2, 6, 4, 4, 15, 12, 13, 39, 28, 28, 77, 51, 15, 117, 165, 55, 27, 41, 15, 16, 21, 6, 7, 2, 11, 12, 48, 39, 38, 105, 70, 3, 63, 2, 113, 250, 80, 5, 24, 250, 232, 2, 158, 1, 7, 42, 32, 33, 81, 43, 44, 87, 38, 41, 91, 44, 45, 82, 31, 32, 39, 1, 147, 3, 95, 77, 38, 86, 47, 48, 106, 53, 63, 130, 62, 62, 110, 43, 40, 52, 6, 0, 1, 0, 8, 254, 225, 4, 26, 4, 58, 0, 35, 0, 0, 65, 19, 33, 3, 51, 19, 51, 3, 51, 19, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 23, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 2, 187, 75, 253, 190, 188, 181, 161, 223, 162, 181, 89, 9, 59, 72, 18, 18, 8, 6, 6, 33, 27, 31, 92, 60, 35, 81, 137, 52, 52, 65, 9, 9, 32, 42, 43, 137, 95, 2, 131, 1, 183, 251, 198, 3, 161, 252, 95, 1, 227, 1, 5, 59, 43, 44, 104, 49, 53, 92, 39, 45, 66, 20, 150, 20, 88, 61, 61, 151, 83, 87, 165, 65, 64, 82, 3, 0, 2, 0, 97, 255, 225, 4, 108, 5, 201, 0, 83, 0, 115, 0, 0, 69, 55, 38, 38, 39, 54, 54, 55, 54, 54, 55, 19, 54, 54, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 3, 6, 22, 23, 22, 22, 23, 6, 6, 39, 38, 38, 39, 38, 38, 39, 38, 54, 55, 19, 54, 54, 55, 54, 54, 55, 54, 54, 55, 55, 6, 6, 7, 6, 6, 7, 6, 6, 7, 3, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 22, 22, 3, 19, 54, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 3, 6, 6, 7, 6, 6, 7, 38, 38, 39, 38, 54, 3, 207, 11, 38, 71, 36, 47, 73, 27, 28, 39, 11, 58, 5, 3, 6, 7, 31, 27, 28, 84, 59, 61, 98, 38, 39, 57, 20, 21, 27, 7, 54, 9, 1, 12, 11, 45, 35, 18, 36, 18, 57, 78, 24, 25, 24, 3, 4, 5, 6, 44, 5, 13, 11, 11, 33, 24, 23, 63, 42, 14, 71, 112, 43, 44, 65, 22, 23, 30, 9, 45, 9, 3, 15, 15, 57, 45, 45, 126, 82, 58, 108, 52, 64, 136, 254, 53, 3, 10, 8, 8, 25, 18, 18, 49, 32, 28, 34, 8, 8, 4, 2, 2, 7, 2, 57, 8, 25, 18, 19, 51, 34, 33, 39, 8, 9, 1, 31, 158, 1, 9, 11, 48, 107, 57, 60, 132, 69, 1, 104, 43, 106, 54, 54, 103, 41, 40, 51, 2, 2, 45, 39, 39, 103, 55, 56, 111, 48, 254, 173, 65, 129, 62, 62, 121, 56, 3, 6, 1, 1, 50, 41, 40, 102, 53, 53, 102, 39, 1, 26, 31, 84, 46, 46, 90, 37, 36, 46, 3, 160, 4, 57, 45, 45, 116, 63, 63, 129, 59, 254, 233, 67, 145, 71, 71, 129, 49, 49, 59, 1, 1, 29, 26, 32, 31, 2, 156, 1, 89, 21, 67, 38, 37, 76, 30, 30, 36, 1, 1, 42, 32, 32, 77, 36, 37, 61, 15, 254, 148, 51, 103, 48, 49, 91, 40, 43, 97, 51, 51, 106, 0, 2, 0, 78, 255, 234, 4, 70, 4, 81, 0, 74, 0, 103, 0, 0, 69, 55, 38, 38, 39, 54, 54, 55, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 6, 6, 39, 38, 38, 39, 38, 38, 39, 38, 54, 55, 55, 54, 54, 55, 54, 54, 55, 55, 6, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 22, 22, 1, 55, 54, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 21, 20, 6, 7, 7, 6, 6, 7, 38, 38, 39, 38, 38, 4, 8, 14, 42, 81, 41, 80, 97, 16, 14, 5, 2, 9, 9, 36, 29, 30, 84, 56, 58, 95, 38, 38, 59, 21, 21, 27, 6, 14, 7, 11, 19, 15, 46, 31, 24, 48, 26, 54, 76, 25, 25, 28, 5, 6, 2, 5, 8, 6, 30, 30, 24, 76, 54, 18, 98, 147, 51, 52, 61, 12, 7, 7, 8, 17, 17, 61, 46, 45, 123, 78, 70, 131, 63, 71, 147, 254, 201, 13, 2, 10, 8, 8, 24, 18, 17, 47, 31, 28, 36, 10, 10, 8, 5, 2, 13, 13, 67, 63, 35, 46, 13, 13, 5, 13, 158, 1, 7, 9, 81, 194, 113, 105, 44, 101, 49, 49, 90, 35, 35, 43, 2, 2, 35, 31, 31, 85, 48, 48, 103, 48, 104, 65, 127, 59, 45, 85, 40, 5, 8, 1, 1, 42, 35, 34, 89, 47, 47, 94, 40, 61, 49, 114, 49, 41, 61, 3, 158, 3, 84, 66, 67, 169, 88, 58, 67, 138, 65, 65, 114, 43, 44, 52, 1, 2, 35, 32, 29, 27, 2, 68, 110, 22, 57, 31, 30, 59, 23, 22, 26, 1, 1, 34, 26, 27, 64, 32, 32, 56, 17, 109, 88, 159, 64, 33, 76, 42, 42, 90, 0, 0, 1, 0, 177, 254, 161, 4, 155, 5, 176, 0, 15, 0, 0, 65, 3, 33, 3, 51, 19, 35, 19, 35, 3, 33, 19, 51, 55, 33, 7, 1, 182, 226, 2, 164, 61, 162, 105, 141, 226, 181, 227, 254, 160, 200, 230, 27, 253, 95, 26, 5, 24, 250, 232, 254, 161, 1, 251, 5, 20, 250, 231, 4, 129, 151, 151, 0, 1, 0, 107, 254, 191, 4, 65, 4, 58, 0, 15, 0, 0, 65, 3, 33, 3, 51, 19, 35, 19, 35, 3, 33, 19, 51, 55, 33, 7, 1, 77, 162, 2, 163, 57, 163, 100, 125, 162, 181, 162, 254, 144, 135, 221, 27, 253, 141, 27, 3, 163, 252, 93, 254, 191, 1, 216, 3, 163, 252, 93, 3, 12, 151, 151, 0, 2, 0, 228, 0, 0, 4, 157, 5, 176, 0, 3, 0, 29, 0, 0, 65, 19, 35, 3, 1, 35, 3, 6, 6, 39, 38, 38, 39, 38, 54, 55, 19, 35, 3, 6, 22, 23, 22, 22, 23, 22, 54, 55, 3, 51, 2, 96, 122, 146, 122, 2, 207, 181, 126, 73, 148, 77, 64, 69, 15, 15, 1, 6, 75, 181, 75, 11, 24, 39, 39, 135, 101, 76, 145, 71, 111, 181, 1, 53, 2, 188, 253, 68, 4, 123, 253, 68, 21, 32, 3, 2, 53, 42, 41, 103, 52, 1, 201, 254, 56, 93, 162, 60, 61, 71, 1, 1, 27, 26, 253, 164, 0, 2, 0, 164, 0, 0, 4, 97, 4, 58, 0, 3, 0, 29, 0, 0, 101, 19, 35, 3, 5, 19, 35, 3, 6, 6, 39, 38, 38, 39, 38, 38, 55, 19, 35, 3, 6, 22, 23, 22, 22, 23, 22, 54, 55, 3, 2, 88, 98, 147, 98, 1, 224, 188, 181, 97, 74, 148, 75, 58, 79, 23, 24, 14, 6, 52, 181, 51, 10, 43, 48, 47, 145, 92, 73, 144, 71, 75, 211, 2, 54, 253, 202, 211, 4, 58, 253, 232, 15, 19, 2, 2, 38, 33, 33, 91, 55, 1, 60, 254, 197, 93, 149, 52, 53, 58, 1, 1, 17, 19, 254, 116, 0, 1, 0, 116, 0, 0, 4, 43, 5, 176, 0, 25, 0, 0, 115, 51, 19, 54, 54, 23, 22, 22, 23, 22, 6, 7, 3, 51, 19, 54, 38, 39, 38, 38, 39, 38, 6, 7, 19, 35, 116, 180, 126, 73, 147, 77, 64, 70, 15, 14, 1, 6, 75, 181, 76, 10, 24, 39, 39, 136, 101, 75, 146, 70, 112, 181, 2, 187, 22, 30, 2, 2, 53, 41, 42, 103, 52, 254, 56, 1, 199, 93, 161, 61, 60, 70, 2, 2, 26, 28, 2, 94, 0, 2, 0, 115, 255, 234, 4, 164, 5, 197, 0, 66, 0, 87, 0, 0, 69, 50, 54, 55, 54, 54, 55, 39, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 39, 38, 54, 55, 55, 33, 55, 54, 54, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 7, 38, 38, 39, 38, 54, 55, 39, 6, 22, 23, 22, 22, 23, 7, 6, 22, 23, 22, 22, 23, 22, 22, 3, 55, 54, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 23, 22, 6, 7, 7, 2, 181, 40, 84, 40, 40, 75, 31, 37, 34, 71, 36, 30, 64, 33, 58, 83, 28, 28, 31, 6, 7, 3, 6, 21, 2, 146, 30, 8, 5, 8, 8, 41, 37, 38, 113, 80, 83, 137, 55, 56, 86, 32, 25, 40, 11, 12, 29, 29, 5, 6, 4, 3, 145, 4, 12, 22, 21, 80, 63, 27, 10, 7, 18, 18, 66, 49, 48, 129, 107, 4, 9, 25, 19, 18, 50, 35, 35, 92, 60, 47, 62, 18, 18, 16, 2, 1, 8, 4, 17, 22, 10, 12, 12, 38, 27, 137, 20, 34, 11, 10, 10, 1, 1, 40, 34, 33, 87, 48, 47, 99, 46, 137, 188, 63, 135, 64, 64, 116, 44, 43, 54, 2, 2, 52, 46, 47, 125, 70, 55, 116, 55, 59, 18, 53, 31, 31, 65, 31, 1, 59, 117, 50, 50, 76, 17, 147, 72, 142, 65, 65, 112, 41, 42, 48, 3, 85, 19, 44, 107, 53, 53, 99, 38, 38, 43, 3, 2, 39, 30, 31, 78, 41, 41, 81, 33, 113, 0, 0, 2, 0, 79, 255, 236, 4, 111, 4, 81, 0, 65, 0, 79, 0, 0, 101, 54, 54, 55, 39, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 39, 38, 38, 53, 52, 54, 55, 55, 5, 55, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 38, 38, 39, 38, 54, 55, 39, 6, 22, 23, 22, 22, 23, 7, 6, 6, 21, 20, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 3, 22, 22, 23, 22, 22, 7, 7, 37, 54, 54, 55, 54, 54, 3, 78, 47, 85, 35, 62, 31, 67, 35, 37, 81, 43, 40, 62, 23, 18, 28, 10, 16, 13, 2, 2, 1, 2, 141, 18, 12, 26, 41, 41, 140, 103, 96, 157, 61, 61, 89, 27, 29, 30, 6, 7, 2, 3, 144, 3, 14, 22, 22, 80, 62, 2, 5, 6, 36, 35, 19, 48, 29, 43, 110, 65, 49, 99, 26, 57, 75, 21, 21, 11, 8, 4, 254, 39, 18, 51, 37, 36, 96, 10, 16, 51, 36, 125, 25, 40, 14, 14, 15, 2, 1, 24, 21, 16, 43, 24, 36, 83, 41, 18, 35, 17, 7, 1, 120, 92, 172, 68, 67, 83, 3, 3, 76, 63, 63, 160, 81, 15, 46, 27, 27, 60, 29, 1, 56, 111, 46, 47, 67, 13, 7, 27, 55, 26, 70, 132, 55, 31, 53, 21, 31, 37, 1, 1, 14, 3, 189, 2, 50, 39, 39, 98, 49, 26, 1, 49, 108, 45, 45, 57, 0, 1, 0, 89, 254, 215, 4, 250, 5, 176, 0, 35, 0, 0, 65, 35, 3, 51, 19, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 7, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 39, 1, 35, 1, 35, 2, 11, 181, 253, 181, 116, 228, 89, 115, 31, 31, 17, 9, 9, 45, 41, 42, 124, 88, 10, 124, 190, 67, 66, 79, 13, 10, 24, 40, 35, 117, 83, 50, 2, 33, 222, 254, 4, 130, 5, 176, 250, 80, 2, 154, 1, 3, 69, 55, 56, 145, 79, 78, 146, 56, 57, 70, 1, 147, 4, 85, 73, 73, 200, 119, 96, 185, 76, 66, 101, 24, 12, 2, 127, 253, 140, 0, 1, 0, 70, 254, 251, 4, 119, 4, 58, 0, 34, 0, 0, 65, 1, 35, 1, 7, 19, 35, 3, 51, 19, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 23, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 2, 155, 1, 220, 233, 254, 68, 107, 80, 181, 188, 181, 80, 204, 64, 101, 34, 34, 29, 8, 7, 45, 36, 36, 95, 55, 32, 81, 146, 57, 57, 73, 9, 8, 33, 39, 39, 121, 2, 96, 1, 218, 254, 55, 1, 1, 202, 251, 198, 1, 205, 1, 2, 37, 35, 35, 102, 66, 59, 96, 36, 37, 52, 15, 149, 17, 79, 58, 57, 147, 85, 80, 141, 56, 55, 77, 0, 0, 1, 0, 72, 254, 73, 4, 143, 5, 176, 0, 29, 0, 0, 65, 35, 3, 51, 19, 33, 3, 6, 6, 7, 6, 6, 35, 34, 38, 39, 7, 22, 22, 51, 50, 54, 55, 54, 54, 55, 1, 35, 3, 33, 1, 250, 181, 253, 181, 112, 1, 225, 125, 5, 23, 19, 20, 58, 40, 24, 49, 23, 26, 29, 55, 29, 80, 123, 45, 44, 54, 10, 1, 8, 181, 115, 254, 32, 5, 176, 250, 80, 2, 133, 253, 34, 34, 71, 29, 29, 37, 9, 7, 148, 8, 10, 53, 48, 47, 128, 74, 6, 9, 253, 108, 0, 0, 1, 0, 69, 254, 71, 4, 75, 4, 58, 0, 29, 0, 0, 65, 35, 3, 51, 19, 33, 3, 6, 6, 7, 6, 6, 35, 34, 38, 39, 7, 22, 22, 51, 22, 54, 55, 54, 54, 55, 19, 35, 3, 33, 1, 182, 181, 188, 181, 80, 1, 225, 92, 6, 24, 20, 21, 60, 41, 25, 48, 23, 26, 29, 56, 30, 81, 125, 45, 45, 54, 10, 199, 180, 82, 254, 31, 4, 58, 251, 198, 1, 206, 253, 217, 35, 72, 28, 29, 36, 9, 7, 149, 8, 10, 1, 53, 48, 47, 129, 75, 4, 147, 254, 43, 0, 0, 2, 0, 77, 255, 234, 4, 105, 5, 196, 0, 52, 0, 72, 0, 0, 65, 38, 6, 7, 6, 6, 7, 23, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 23, 22, 6, 7, 7, 33, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 55, 55, 54, 38, 39, 38, 38, 39, 38, 38, 1, 38, 38, 39, 38, 38, 39, 38, 54, 55, 55, 33, 6, 6, 7, 6, 6, 7, 6, 6, 2, 183, 44, 93, 45, 45, 84, 36, 34, 40, 80, 40, 35, 73, 39, 63, 91, 30, 30, 33, 7, 6, 4, 7, 14, 252, 213, 26, 10, 4, 16, 15, 60, 48, 47, 131, 85, 88, 151, 63, 63, 100, 38, 38, 49, 12, 34, 10, 7, 18, 18, 67, 50, 51, 136, 254, 222, 55, 81, 28, 28, 34, 8, 8, 2, 6, 14, 2, 124, 12, 34, 24, 25, 66, 42, 43, 105, 5, 195, 1, 10, 11, 12, 38, 28, 138, 20, 34, 11, 10, 10, 1, 2, 44, 36, 37, 95, 52, 53, 108, 49, 94, 166, 74, 146, 66, 67, 116, 42, 43, 51, 2, 2, 52, 47, 46, 127, 73, 72, 157, 76, 218, 75, 152, 70, 69, 121, 45, 44, 52, 250, 191, 2, 34, 28, 28, 77, 44, 45, 96, 47, 91, 52, 114, 55, 55, 100, 37, 38, 43, 0, 0, 1, 0, 103, 255, 233, 4, 153, 5, 176, 0, 45, 0, 0, 65, 1, 7, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 39, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 39, 1, 55, 33, 7, 3, 163, 254, 64, 28, 151, 76, 111, 31, 24, 18, 7, 8, 61, 46, 47, 118, 64, 59, 88, 29, 29, 26, 3, 179, 5, 53, 52, 52, 152, 94, 100, 186, 73, 72, 94, 9, 8, 45, 48, 46, 131, 83, 25, 1, 229, 22, 252, 180, 27, 5, 24, 254, 68, 160, 1, 3, 48, 46, 35, 97, 61, 66, 105, 36, 37, 37, 2, 2, 45, 37, 37, 97, 56, 1, 94, 155, 56, 56, 63, 2, 2, 56, 56, 55, 164, 105, 93, 151, 56, 51, 66, 10, 2, 1, 231, 127, 152, 0, 1, 0, 28, 254, 114, 4, 78, 4, 58, 0, 45, 0, 0, 65, 1, 7, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 39, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 39, 1, 55, 33, 7, 3, 69, 254, 81, 27, 148, 77, 112, 32, 25, 19, 8, 8, 61, 46, 47, 118, 64, 58, 88, 29, 29, 27, 4, 180, 5, 52, 53, 52, 152, 93, 100, 186, 73, 73, 94, 9, 7, 42, 46, 43, 125, 79, 29, 1, 217, 21, 252, 180, 27, 3, 161, 254, 68, 160, 1, 3, 47, 44, 35, 99, 62, 65, 105, 36, 36, 37, 2, 2, 44, 37, 36, 98, 55, 1, 94, 154, 56, 56, 63, 2, 3, 56, 56, 55, 164, 105, 90, 149, 56, 50, 66, 12, 4, 1, 234, 127, 153, 255, 255, 0, 1, 254, 71, 4, 238, 5, 176, 4, 38, 1, 123, 73, 0, 0, 39, 2, 106, 255, 31, 0, 63, 0, 7, 2, 111, 255, 84, 0, 0, 255, 255, 255, 247, 254, 71, 4, 175, 4, 58, 4, 38, 1, 181, 80, 0, 0, 39, 2, 106, 255, 42, 255, 100, 0, 7, 2, 111, 255, 74, 0, 0, 0, 2, 0, 58, 0, 0, 4, 165, 5, 176, 0, 16, 0, 31, 0, 0, 65, 37, 34, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 5, 19, 35, 3, 37, 38, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 51, 5, 3, 140, 254, 207, 103, 186, 72, 72, 93, 10, 9, 53, 55, 55, 158, 96, 1, 206, 252, 180, 227, 254, 208, 62, 92, 29, 30, 24, 8, 8, 61, 47, 46, 120, 68, 1, 27, 3, 109, 1, 57, 56, 56, 165, 108, 100, 158, 55, 56, 62, 4, 1, 5, 176, 250, 231, 1, 3, 45, 38, 37, 102, 60, 69, 108, 38, 37, 39, 2, 0, 0, 2, 0, 40, 255, 254, 4, 96, 5, 176, 0, 39, 0, 57, 0, 0, 97, 22, 54, 55, 54, 54, 55, 54, 54, 55, 54, 38, 39, 39, 22, 6, 7, 6, 6, 7, 6, 6, 7, 35, 19, 35, 3, 39, 34, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 3, 54, 54, 55, 54, 54, 55, 54, 54, 55, 23, 3, 39, 38, 38, 39, 38, 38, 2, 183, 66, 108, 43, 43, 66, 24, 24, 30, 8, 13, 7, 14, 167, 16, 5, 14, 8, 27, 25, 26, 81, 60, 43, 230, 181, 101, 121, 98, 155, 55, 56, 66, 8, 8, 28, 38, 37, 126, 90, 130, 6, 35, 31, 14, 35, 20, 23, 56, 32, 100, 99, 121, 53, 58, 12, 13, 1, 2, 39, 35, 35, 95, 54, 54, 116, 56, 94, 186, 93, 1, 94, 187, 94, 48, 114, 50, 50, 69, 2, 5, 28, 253, 189, 1, 69, 59, 60, 161, 93, 84, 152, 59, 59, 74, 6, 1, 180, 54, 103, 41, 19, 32, 12, 13, 15, 1, 2, 253, 193, 2, 3, 60, 43, 42, 97, 0, 0, 2, 0, 67, 255, 234, 4, 111, 6, 24, 0, 73, 0, 108, 0, 0, 83, 7, 6, 6, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 55, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 55, 54, 38, 39, 7, 22, 6, 7, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 54, 55, 19, 35, 3, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 37, 3, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 53, 52, 54, 55, 55, 54, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 92, 18, 5, 2, 6, 6, 30, 27, 27, 81, 57, 37, 63, 27, 13, 23, 11, 13, 24, 11, 11, 35, 21, 29, 74, 41, 68, 106, 41, 40, 59, 20, 20, 26, 7, 14, 2, 14, 167, 14, 9, 15, 3, 10, 9, 9, 27, 20, 20, 55, 37, 29, 29, 4, 5, 3, 2, 212, 181, 99, 16, 35, 19, 20, 46, 25, 65, 101, 38, 39, 56, 19, 19, 25, 1, 242, 93, 3, 2, 1, 14, 30, 17, 17, 40, 24, 34, 42, 12, 12, 9, 5, 3, 17, 4, 13, 11, 10, 31, 23, 23, 63, 41, 17, 29, 12, 15, 23, 2, 63, 130, 42, 101, 51, 52, 96, 38, 38, 47, 1, 1, 19, 18, 8, 20, 11, 12, 28, 15, 30, 45, 15, 21, 18, 1, 1, 53, 44, 44, 116, 62, 62, 123, 52, 100, 199, 100, 1, 100, 199, 100, 23, 79, 45, 46, 94, 37, 38, 45, 2, 2, 42, 29, 28, 59, 19, 4, 229, 253, 236, 17, 27, 9, 10, 11, 1, 2, 49, 42, 43, 110, 59, 59, 118, 251, 253, 200, 22, 42, 22, 17, 32, 12, 12, 14, 1, 1, 34, 28, 27, 67, 34, 34, 62, 21, 132, 29, 78, 42, 42, 81, 32, 31, 38, 2, 1, 9, 8, 9, 27, 0, 0, 1, 0, 175, 255, 234, 4, 102, 5, 176, 0, 80, 0, 0, 65, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 55, 54, 38, 39, 35, 22, 6, 7, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 55, 54, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 39, 7, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 39, 7, 23, 22, 22, 23, 22, 22, 1, 190, 12, 4, 29, 32, 32, 98, 66, 71, 114, 45, 44, 66, 24, 23, 30, 8, 14, 4, 12, 169, 15, 7, 15, 5, 14, 11, 12, 35, 24, 25, 66, 43, 28, 35, 9, 10, 5, 2, 13, 4, 2, 12, 12, 51, 43, 49, 82, 31, 34, 42, 6, 8, 39, 45, 45, 136, 90, 206, 27, 230, 54, 70, 20, 20, 11, 5, 6, 31, 24, 37, 119, 78, 70, 27, 140, 47, 53, 12, 12, 2, 1, 117, 106, 65, 105, 37, 38, 42, 1, 1, 49, 43, 43, 113, 62, 62, 128, 57, 100, 198, 100, 100, 199, 100, 29, 84, 46, 46, 90, 35, 36, 42, 2, 1, 27, 20, 19, 48, 23, 106, 46, 97, 45, 45, 77, 26, 25, 65, 39, 44, 108, 64, 88, 146, 53, 52, 60, 3, 1, 152, 1, 3, 42, 33, 34, 88, 48, 50, 84, 32, 50, 53, 1, 1, 151, 2, 3, 56, 39, 39, 87, 0, 1, 0, 133, 255, 228, 4, 68, 4, 58, 0, 77, 0, 0, 101, 38, 38, 55, 55, 54, 38, 39, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 39, 7, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 35, 39, 7, 23, 22, 22, 23, 22, 22, 7, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 55, 54, 38, 39, 39, 22, 22, 7, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 2, 146, 8, 5, 1, 8, 6, 65, 79, 42, 78, 31, 30, 39, 3, 6, 59, 52, 53, 137, 72, 211, 20, 228, 40, 73, 27, 27, 27, 6, 6, 52, 37, 38, 89, 43, 134, 25, 180, 36, 62, 23, 22, 23, 3, 9, 3, 31, 32, 32, 92, 59, 60, 99, 39, 39, 59, 22, 21, 26, 7, 10, 16, 14, 169, 19, 5, 12, 4, 11, 9, 9, 27, 19, 19, 52, 34, 23, 31, 148, 11, 32, 20, 79, 81, 124, 29, 18, 43, 29, 29, 75, 50, 83, 117, 38, 37, 36, 2, 1, 150, 1, 1, 19, 20, 20, 64, 46, 50, 65, 19, 20, 16, 1, 150, 1, 2, 17, 18, 18, 55, 40, 77, 61, 90, 29, 30, 30, 1, 1, 39, 33, 33, 90, 51, 50, 106, 51, 80, 156, 78, 1, 78, 158, 80, 24, 64, 33, 34, 66, 25, 26, 30, 1, 1, 13, 0, 2, 1, 13, 254, 165, 3, 238, 5, 176, 0, 57, 0, 70, 0, 0, 65, 23, 22, 22, 23, 22, 22, 7, 7, 6, 6, 23, 22, 22, 23, 51, 55, 38, 38, 39, 38, 54, 55, 55, 54, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 37, 7, 5, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 35, 39, 1, 55, 35, 7, 6, 6, 7, 23, 54, 54, 55, 54, 54, 1, 13, 224, 56, 80, 24, 24, 18, 6, 19, 4, 5, 2, 2, 18, 18, 179, 3, 18, 18, 2, 3, 4, 4, 20, 6, 10, 18, 18, 67, 52, 57, 98, 38, 37, 48, 5, 9, 57, 56, 57, 161, 94, 255, 0, 27, 1, 24, 60, 94, 32, 31, 27, 7, 9, 65, 49, 50, 126, 69, 148, 2, 169, 29, 196, 32, 15, 69, 53, 110, 47, 79, 29, 26, 36, 2, 121, 1, 3, 43, 35, 35, 94, 52, 133, 30, 62, 31, 31, 58, 25, 26, 23, 50, 27, 26, 55, 27, 137, 52, 102, 45, 45, 71, 23, 24, 64, 42, 41, 104, 65, 101, 151, 50, 50, 52, 2, 1, 152, 1, 2, 32, 31, 32, 93, 62, 75, 102, 31, 32, 27, 1, 253, 16, 175, 179, 87, 154, 70, 65, 38, 92, 52, 45, 100, 0, 2, 0, 244, 254, 146, 3, 202, 4, 58, 0, 54, 0, 67, 0, 0, 83, 23, 22, 22, 23, 22, 22, 7, 7, 6, 6, 23, 22, 22, 23, 55, 55, 38, 38, 55, 55, 54, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 37, 7, 5, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 35, 39, 1, 55, 35, 7, 6, 6, 7, 23, 54, 54, 55, 54, 54, 244, 246, 40, 63, 22, 21, 19, 4, 13, 3, 3, 3, 3, 16, 16, 180, 2, 31, 9, 5, 13, 4, 11, 16, 17, 56, 41, 43, 79, 32, 31, 40, 3, 6, 61, 52, 53, 139, 72, 254, 248, 27, 1, 32, 40, 74, 28, 27, 28, 6, 7, 53, 38, 38, 91, 45, 195, 2, 158, 29, 196, 32, 15, 69, 53, 110, 47, 78, 29, 27, 36, 1, 185, 2, 2, 22, 21, 21, 61, 42, 97, 23, 46, 22, 23, 42, 18, 1, 20, 32, 76, 43, 98, 42, 78, 33, 33, 51, 16, 17, 44, 29, 29, 77, 51, 83, 117, 38, 37, 35, 2, 1, 150, 1, 1, 18, 20, 20, 64, 46, 51, 66, 19, 20, 16, 1, 253, 191, 175, 179, 87, 154, 70, 65, 38, 91, 51, 46, 101, 0, 0, 1, 255, 176, 255, 234, 4, 136, 5, 176, 0, 69, 0, 0, 65, 3, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 55, 54, 54, 39, 7, 22, 6, 7, 6, 6, 7, 6, 6, 7, 6, 6, 7, 38, 38, 39, 38, 38, 53, 52, 54, 55, 19, 33, 3, 6, 6, 7, 6, 6, 7, 6, 6, 35, 39, 7, 51, 22, 54, 55, 54, 54, 55, 54, 54, 55, 19, 2, 202, 174, 2, 2, 3, 5, 18, 15, 25, 87, 63, 67, 104, 40, 40, 58, 21, 20, 25, 7, 14, 8, 6, 169, 5, 17, 15, 4, 9, 8, 8, 26, 19, 20, 55, 38, 23, 22, 4, 2, 1, 2, 1, 199, 253, 214, 118, 6, 14, 12, 12, 39, 30, 31, 88, 60, 20, 17, 39, 92, 135, 49, 49, 65, 22, 21, 26, 11, 90, 5, 24, 251, 244, 25, 49, 23, 29, 52, 22, 40, 48, 1, 1, 53, 45, 44, 117, 62, 62, 122, 51, 98, 200, 101, 1, 101, 199, 100, 27, 79, 44, 44, 87, 36, 36, 48, 3, 6, 32, 20, 8, 19, 9, 12, 25, 11, 4, 162, 253, 80, 40, 122, 69, 69, 139, 55, 56, 69, 1, 150, 2, 75, 63, 63, 163, 86, 86, 167, 67, 2, 24, 0, 1, 255, 202, 255, 234, 4, 89, 4, 58, 0, 69, 0, 0, 65, 33, 3, 6, 6, 7, 6, 6, 7, 6, 6, 7, 35, 7, 51, 22, 54, 55, 54, 54, 55, 54, 54, 55, 19, 51, 3, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 55, 54, 38, 39, 35, 22, 6, 7, 6, 6, 7, 6, 6, 7, 6, 6, 7, 38, 38, 39, 38, 38, 53, 52, 54, 55, 3, 55, 253, 217, 76, 4, 9, 8, 9, 26, 22, 22, 63, 44, 20, 23, 44, 76, 111, 40, 40, 53, 18, 17, 21, 9, 52, 190, 107, 2, 1, 4, 4, 17, 13, 24, 87, 66, 65, 102, 40, 39, 57, 21, 20, 25, 7, 13, 5, 14, 168, 15, 5, 13, 4, 10, 8, 8, 26, 19, 19, 52, 36, 23, 21, 3, 2, 1, 2, 1, 4, 58, 254, 52, 30, 90, 50, 51, 102, 41, 42, 52, 1, 163, 2, 60, 51, 50, 131, 70, 70, 136, 56, 1, 51, 253, 128, 28, 57, 26, 28, 51, 22, 43, 54, 1, 1, 46, 40, 40, 105, 57, 57, 116, 51, 94, 187, 95, 94, 189, 95, 26, 72, 39, 39, 77, 31, 31, 42, 3, 7, 37, 23, 10, 20, 10, 14, 26, 11, 0, 0, 1, 0, 3, 255, 233, 4, 112, 5, 176, 0, 53, 0, 0, 65, 35, 3, 33, 19, 35, 3, 51, 19, 33, 3, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 55, 54, 38, 39, 35, 22, 6, 7, 6, 6, 7, 6, 6, 7, 6, 6, 7, 38, 38, 39, 38, 52, 53, 52, 54, 55, 3, 138, 181, 114, 254, 223, 115, 181, 253, 181, 112, 1, 33, 54, 3, 2, 5, 4, 14, 10, 23, 86, 69, 67, 104, 40, 40, 58, 20, 20, 25, 7, 14, 4, 12, 167, 14, 10, 14, 4, 10, 8, 8, 25, 19, 19, 55, 37, 24, 22, 2, 1, 4, 1, 5, 176, 253, 108, 2, 148, 250, 80, 2, 133, 254, 175, 34, 68, 33, 23, 43, 20, 47, 60, 1, 2, 53, 45, 45, 117, 62, 62, 123, 50, 100, 198, 100, 100, 199, 100, 27, 79, 43, 44, 88, 36, 37, 48, 3, 7, 43, 27, 7, 14, 7, 21, 38, 14, 0, 1, 0, 9, 255, 234, 4, 87, 4, 58, 0, 53, 0, 0, 65, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 55, 54, 54, 39, 35, 22, 6, 7, 6, 6, 7, 6, 6, 7, 6, 6, 7, 38, 38, 39, 38, 38, 53, 52, 54, 55, 19, 35, 3, 33, 19, 35, 3, 51, 19, 2, 17, 24, 3, 3, 6, 5, 18, 14, 27, 92, 68, 63, 98, 38, 37, 54, 19, 19, 23, 7, 13, 5, 7, 168, 7, 14, 13, 4, 8, 7, 7, 23, 17, 17, 49, 33, 27, 28, 6, 3, 3, 1, 1, 132, 181, 82, 254, 253, 82, 181, 188, 181, 80, 1, 205, 172, 32, 61, 28, 26, 48, 20, 43, 51, 1, 1, 48, 41, 40, 106, 57, 57, 114, 48, 94, 188, 95, 95, 189, 94, 25, 70, 39, 39, 77, 32, 32, 42, 4, 6, 34, 23, 13, 28, 14, 11, 21, 10, 3, 26, 254, 42, 1, 214, 251, 198, 1, 205, 0, 0, 1, 0, 130, 255, 232, 4, 92, 5, 199, 0, 63, 0, 0, 69, 22, 54, 55, 54, 54, 55, 54, 38, 39, 35, 22, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 39, 38, 54, 55, 19, 54, 54, 55, 54, 54, 55, 54, 54, 51, 22, 22, 23, 55, 38, 38, 39, 34, 6, 7, 6, 6, 7, 6, 6, 7, 3, 6, 22, 23, 22, 22, 23, 22, 22, 2, 36, 105, 181, 70, 70, 92, 14, 12, 7, 7, 172, 11, 1, 15, 11, 58, 44, 45, 116, 69, 59, 84, 28, 29, 32, 7, 7, 2, 6, 42, 8, 33, 25, 25, 67, 43, 43, 104, 62, 72, 140, 63, 69, 78, 169, 91, 86, 149, 62, 63, 100, 38, 38, 50, 12, 41, 9, 8, 18, 18, 65, 49, 48, 130, 21, 3, 63, 60, 60, 169, 103, 89, 178, 89, 89, 180, 88, 66, 112, 40, 41, 43, 2, 2, 45, 37, 37, 95, 52, 51, 102, 45, 1, 9, 53, 111, 52, 52, 92, 34, 34, 39, 1, 35, 35, 132, 48, 41, 1, 48, 43, 44, 118, 69, 69, 152, 77, 254, 250, 71, 146, 67, 68, 120, 45, 45, 54, 0, 1, 0, 133, 255, 233, 4, 11, 4, 81, 0, 51, 0, 0, 101, 38, 38, 39, 38, 38, 55, 55, 54, 54, 55, 54, 54, 51, 22, 22, 23, 55, 38, 38, 39, 38, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 38, 39, 35, 22, 6, 7, 6, 6, 7, 6, 6, 2, 79, 81, 111, 32, 32, 20, 8, 5, 11, 62, 50, 50, 134, 83, 67, 132, 60, 57, 71, 158, 81, 117, 199, 75, 75, 96, 13, 5, 11, 48, 56, 56, 173, 114, 83, 153, 61, 61, 81, 10, 6, 4, 5, 168, 6, 5, 8, 8, 47, 34, 35, 87, 130, 1, 69, 55, 54, 138, 71, 42, 76, 142, 55, 54, 66, 1, 28, 32, 142, 40, 29, 1, 1, 86, 74, 74, 199, 112, 43, 108, 193, 73, 74, 87, 3, 2, 41, 44, 43, 131, 88, 54, 106, 54, 54, 108, 54, 51, 74, 23, 24, 21, 0, 0, 1, 0, 195, 255, 233, 4, 113, 5, 176, 0, 43, 0, 0, 65, 3, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 55, 54, 38, 39, 35, 22, 6, 7, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 19, 33, 55, 33, 7, 2, 34, 162, 6, 25, 33, 33, 110, 80, 74, 122, 49, 48, 74, 27, 26, 34, 9, 15, 5, 13, 168, 15, 6, 17, 6, 17, 14, 14, 40, 28, 29, 74, 48, 41, 47, 11, 11, 2, 3, 162, 1, 122, 27, 252, 115, 27, 5, 24, 252, 65, 74, 131, 50, 50, 59, 2, 2, 47, 41, 41, 110, 63, 62, 131, 62, 100, 198, 100, 100, 199, 100, 35, 88, 45, 46, 87, 33, 33, 39, 2, 2, 45, 32, 32, 73, 31, 3, 192, 152, 152, 0, 0, 1, 0, 128, 255, 233, 4, 53, 4, 58, 0, 43, 0, 0, 65, 3, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 55, 54, 38, 39, 39, 22, 22, 7, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 19, 33, 55, 33, 7, 1, 199, 97, 6, 25, 34, 33, 112, 80, 97, 150, 54, 29, 47, 16, 13, 19, 5, 11, 15, 15, 167, 18, 4, 13, 4, 12, 9, 8, 21, 13, 29, 84, 59, 41, 48, 11, 11, 3, 3, 98, 1, 110, 27, 252, 148, 26, 3, 164, 253, 181, 74, 132, 49, 50, 60, 1, 2, 76, 64, 35, 82, 45, 37, 77, 39, 81, 159, 80, 1, 80, 161, 81, 25, 56, 27, 24, 47, 21, 46, 58, 2, 2, 44, 32, 32, 73, 32, 2, 76, 150, 150, 0, 1, 0, 64, 255, 234, 4, 146, 5, 200, 0, 76, 0, 0, 83, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 51, 23, 55, 39, 38, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 23, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 6, 6, 7, 6, 6, 72, 8, 71, 65, 64, 173, 94, 100, 183, 72, 72, 94, 12, 180, 12, 63, 45, 46, 115, 64, 60, 110, 40, 41, 43, 8, 9, 69, 52, 51, 129, 69, 167, 27, 189, 56, 97, 34, 35, 34, 8, 8, 68, 50, 50, 123, 64, 55, 89, 31, 31, 32, 3, 179, 4, 59, 55, 55, 152, 88, 101, 193, 76, 77, 98, 7, 3, 22, 23, 22, 67, 42, 63, 109, 41, 41, 51, 1, 142, 104, 156, 51, 52, 53, 2, 2, 54, 54, 54, 160, 104, 1, 63, 102, 36, 36, 39, 1, 1, 34, 33, 33, 99, 66, 76, 104, 33, 32, 28, 1, 152, 1, 2, 29, 29, 28, 89, 62, 68, 102, 34, 33, 32, 2, 2, 38, 33, 33, 90, 54, 1, 91, 147, 52, 52, 58, 3, 3, 50, 52, 53, 162, 110, 49, 88, 38, 39, 63, 24, 22, 63, 43, 44, 112, 0, 255, 255, 255, 243, 254, 106, 3, 180, 0, 0, 4, 39, 0, 102, 255, 223, 255, 1, 0, 6, 0, 102, 11, 0, 0, 1, 1, 26, 4, 7, 2, 115, 6, 22, 0, 12, 0, 0, 65, 39, 51, 23, 22, 22, 23, 7, 38, 38, 39, 38, 38, 1, 50, 24, 177, 26, 16, 74, 52, 95, 45, 76, 28, 29, 39, 5, 132, 146, 150, 86, 148, 69, 74, 36, 86, 48, 48, 106, 255, 255, 0, 254, 255, 236, 3, 199, 1, 10, 4, 39, 0, 96, 255, 112, 0, 0, 0, 7, 0, 96, 1, 29, 0, 0, 0, 2, 1, 36, 2, 56, 4, 42, 5, 195, 0, 10, 0, 14, 0, 0, 65, 19, 35, 1, 7, 33, 7, 51, 55, 51, 55, 33, 1, 55, 3, 3, 151, 104, 172, 253, 224, 15, 1, 190, 32, 159, 33, 146, 22, 253, 196, 1, 56, 29, 75, 3, 111, 2, 84, 253, 149, 103, 185, 185, 126, 1, 92, 46, 254, 118, 0, 1, 1, 73, 2, 139, 4, 14, 5, 186, 0, 28, 0, 0, 65, 7, 3, 51, 19, 54, 54, 55, 54, 54, 51, 22, 22, 23, 22, 22, 7, 3, 51, 19, 54, 38, 39, 38, 38, 39, 34, 6, 7, 2, 78, 122, 139, 166, 97, 16, 39, 24, 19, 43, 25, 40, 45, 10, 10, 1, 3, 78, 166, 84, 5, 15, 25, 25, 87, 66, 78, 110, 41, 5, 172, 1, 252, 224, 2, 51, 26, 44, 15, 11, 12, 1, 37, 28, 29, 68, 31, 254, 35, 1, 252, 57, 110, 43, 43, 53, 1, 81, 57, 0, 0, 1, 0, 113, 255, 236, 4, 168, 5, 198, 0, 63, 0, 0, 65, 55, 33, 55, 33, 55, 33, 54, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 55, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 35, 7, 51, 7, 35, 7, 55, 6, 6, 21, 20, 22, 23, 22, 22, 23, 50, 54, 55, 39, 6, 6, 39, 38, 38, 39, 38, 38, 53, 52, 54, 55, 3, 74, 22, 254, 137, 25, 1, 117, 22, 254, 131, 3, 6, 3, 20, 62, 43, 51, 140, 92, 54, 105, 51, 34, 59, 118, 61, 129, 202, 75, 67, 94, 28, 4, 6, 3, 166, 22, 174, 25, 173, 21, 180, 3, 4, 43, 43, 54, 176, 121, 58, 115, 58, 4, 55, 110, 57, 87, 109, 29, 20, 18, 3, 3, 2, 31, 122, 138, 123, 12, 24, 12, 68, 121, 47, 55, 63, 1, 1, 19, 17, 155, 13, 18, 1, 1, 83, 74, 67, 175, 102, 13, 25, 13, 123, 138, 122, 1, 25, 49, 24, 84, 151, 60, 77, 92, 2, 14, 15, 155, 14, 19, 1, 2, 74, 58, 40, 96, 51, 22, 45, 23, 0, 4, 0, 157, 255, 232, 4, 72, 5, 199, 0, 51, 0, 77, 0, 103, 0, 107, 0, 0, 65, 7, 6, 6, 7, 6, 6, 35, 38, 38, 39, 38, 38, 55, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 7, 51, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 3, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 55, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 23, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 5, 1, 39, 1, 2, 134, 133, 5, 21, 16, 16, 44, 28, 33, 37, 8, 9, 2, 2, 8, 4, 19, 18, 17, 50, 35, 30, 39, 11, 10, 7, 1, 135, 1, 29, 29, 29, 87, 55, 64, 100, 35, 36, 42, 6, 7, 3, 22, 27, 27, 87, 61, 57, 93, 34, 34, 42, 53, 6, 4, 23, 27, 27, 88, 61, 63, 100, 36, 35, 41, 6, 7, 4, 23, 27, 27, 87, 61, 63, 100, 36, 36, 42, 125, 7, 3, 19, 17, 16, 50, 35, 33, 38, 9, 9, 3, 2, 7, 3, 19, 16, 17, 50, 34, 34, 38, 9, 9, 3, 254, 159, 2, 146, 107, 253, 110, 4, 30, 1, 24, 49, 19, 19, 23, 1, 38, 28, 27, 61, 24, 79, 28, 65, 27, 27, 35, 25, 20, 20, 50, 25, 52, 94, 35, 35, 42, 1, 1, 51, 42, 43, 110, 57, 77, 54, 106, 42, 42, 54, 1, 2, 39, 35, 34, 94, 253, 124, 77, 54, 106, 43, 43, 54, 1, 2, 51, 43, 43, 109, 57, 78, 54, 106, 43, 43, 53, 2, 1, 50, 43, 43, 110, 136, 81, 28, 64, 27, 27, 36, 1, 1, 38, 28, 28, 62, 24, 80, 28, 64, 27, 27, 36, 1, 1, 38, 28, 27, 62, 38, 3, 177, 71, 252, 79, 0, 2, 0, 188, 255, 235, 4, 54, 5, 203, 0, 44, 0, 67, 0, 0, 69, 55, 38, 38, 39, 38, 38, 55, 55, 54, 54, 55, 54, 54, 55, 55, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 3, 6, 6, 7, 7, 54, 54, 55, 7, 6, 22, 23, 22, 22, 3, 19, 54, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 6, 7, 7, 6, 6, 7, 6, 6, 2, 221, 10, 65, 76, 17, 18, 3, 9, 15, 87, 163, 66, 66, 88, 11, 5, 4, 21, 27, 27, 90, 64, 45, 76, 33, 27, 47, 19, 43, 49, 10, 83, 52, 103, 54, 20, 54, 103, 52, 3, 15, 30, 44, 43, 142, 27, 69, 4, 17, 17, 9, 26, 16, 14, 32, 19, 27, 27, 5, 4, 2, 2, 5, 8, 49, 37, 37, 93, 21, 158, 4, 50, 40, 39, 102, 57, 88, 43, 126, 78, 78, 183, 101, 42, 57, 111, 44, 44, 55, 2, 2, 18, 18, 15, 41, 25, 54, 138, 72, 254, 32, 12, 13, 1, 176, 1, 12, 13, 17, 92, 160, 60, 61, 73, 2, 214, 1, 138, 31, 80, 35, 19, 32, 10, 8, 8, 1, 2, 35, 24, 25, 53, 19, 42, 66, 119, 52, 53, 89, 0, 4, 0, 12, 0, 0, 4, 197, 5, 192, 0, 9, 0, 47, 0, 79, 0, 83, 0, 0, 97, 19, 35, 3, 3, 35, 3, 51, 19, 19, 1, 7, 6, 22, 23, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 54, 54, 55, 55, 54, 38, 39, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 6, 6, 23, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 6, 7, 7, 6, 6, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 52, 53, 52, 54, 19, 55, 33, 7, 2, 102, 253, 173, 158, 101, 170, 253, 173, 158, 100, 1, 208, 24, 1, 2, 4, 3, 12, 8, 16, 55, 40, 41, 62, 21, 13, 19, 6, 5, 5, 2, 24, 1, 1, 3, 3, 12, 8, 17, 56, 40, 41, 62, 21, 9, 15, 6, 8, 10, 77, 21, 2, 7, 8, 7, 26, 20, 20, 19, 3, 3, 2, 1, 22, 1, 3, 2, 2, 5, 3, 8, 25, 21, 20, 19, 2, 2, 1, 141, 17, 254, 212, 17, 5, 176, 252, 115, 3, 141, 250, 80, 3, 144, 252, 112, 4, 251, 206, 18, 37, 17, 16, 30, 13, 28, 36, 33, 28, 17, 40, 21, 13, 29, 14, 206, 17, 34, 17, 17, 34, 15, 28, 35, 34, 28, 12, 28, 14, 19, 41, 219, 190, 15, 38, 17, 16, 22, 24, 17, 17, 37, 13, 190, 8, 18, 9, 9, 17, 8, 17, 23, 25, 17, 8, 17, 8, 10, 17, 254, 153, 95, 95, 0, 0, 2, 0, 134, 255, 235, 4, 114, 4, 80, 0, 42, 0, 54, 0, 0, 101, 55, 6, 6, 7, 6, 6, 39, 38, 38, 39, 19, 33, 55, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 3, 22, 22, 23, 3, 33, 19, 54, 54, 55, 54, 54, 3, 170, 3, 44, 92, 48, 48, 100, 52, 69, 121, 48, 59, 2, 235, 5, 8, 41, 51, 51, 158, 108, 76, 142, 63, 63, 107, 40, 41, 51, 8, 4, 1, 5, 4, 16, 11, 23, 74, 50, 50, 123, 73, 100, 190, 119, 69, 119, 45, 51, 253, 245, 51, 31, 68, 36, 36, 78, 93, 104, 26, 45, 16, 17, 18, 2, 2, 54, 51, 1, 74, 49, 98, 191, 77, 76, 94, 3, 2, 43, 39, 40, 109, 64, 64, 141, 71, 34, 69, 33, 32, 64, 29, 61, 105, 39, 39, 45, 2, 2, 61, 3, 200, 1, 59, 51, 254, 224, 1, 22, 25, 45, 17, 16, 19, 0, 5, 0, 197, 255, 244, 4, 128, 5, 174, 0, 6, 0, 54, 0, 78, 0, 102, 0, 106, 0, 0, 65, 19, 35, 5, 7, 55, 3, 5, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 6, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 3, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 19, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 1, 1, 39, 1, 1, 183, 118, 19, 254, 192, 21, 198, 94, 3, 80, 3, 36, 32, 32, 82, 43, 48, 91, 36, 36, 46, 1, 1, 12, 13, 10, 27, 17, 30, 52, 20, 19, 26, 1, 2, 40, 34, 35, 87, 45, 49, 98, 39, 39, 49, 2, 1, 16, 16, 12, 31, 19, 25, 45, 17, 18, 22, 170, 3, 26, 20, 19, 47, 24, 22, 39, 15, 15, 15, 2, 4, 26, 19, 20, 47, 24, 21, 40, 15, 15, 15, 32, 2, 23, 16, 16, 41, 21, 20, 34, 12, 13, 11, 2, 3, 22, 16, 17, 41, 21, 21, 35, 12, 11, 11, 253, 84, 2, 146, 107, 253, 110, 2, 232, 2, 198, 102, 121, 50, 253, 231, 216, 49, 72, 24, 24, 23, 1, 1, 25, 26, 26, 79, 52, 26, 48, 20, 15, 25, 10, 14, 35, 22, 22, 56, 34, 52, 74, 24, 24, 23, 1, 1, 26, 26, 26, 80, 56, 31, 54, 22, 16, 26, 10, 13, 33, 20, 20, 51, 254, 225, 26, 39, 14, 13, 14, 12, 11, 12, 36, 24, 25, 40, 13, 14, 12, 11, 12, 11, 35, 1, 27, 22, 36, 13, 12, 14, 12, 11, 11, 32, 21, 22, 36, 13, 12, 13, 12, 12, 10, 32, 254, 189, 3, 177, 71, 252, 79, 0, 5, 0, 119, 255, 244, 4, 136, 5, 188, 0, 73, 0, 121, 0, 145, 0, 169, 0, 173, 0, 0, 65, 7, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 35, 38, 38, 39, 38, 38, 53, 35, 20, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 35, 38, 6, 7, 6, 6, 7, 51, 54, 54, 51, 50, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 1, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 6, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 3, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 19, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 1, 1, 39, 1, 1, 73, 10, 78, 25, 44, 16, 17, 17, 3, 4, 28, 20, 20, 49, 25, 26, 44, 15, 12, 14, 137, 39, 33, 33, 88, 49, 49, 101, 41, 41, 53, 2, 1, 16, 15, 13, 37, 24, 27, 50, 19, 20, 25, 2, 3, 40, 33, 34, 87, 45, 48, 90, 37, 36, 49, 5, 140, 15, 68, 45, 21, 37, 13, 14, 13, 2, 4, 29, 21, 20, 51, 24, 2, 244, 3, 36, 32, 32, 82, 43, 48, 91, 36, 36, 46, 1, 1, 10, 11, 10, 29, 19, 30, 52, 20, 19, 26, 1, 2, 40, 34, 35, 87, 45, 49, 98, 39, 39, 49, 2, 1, 14, 14, 12, 33, 21, 25, 45, 17, 18, 22, 170, 3, 26, 20, 19, 47, 24, 22, 39, 15, 15, 15, 2, 4, 26, 19, 20, 47, 24, 21, 40, 15, 15, 15, 32, 2, 23, 16, 16, 41, 21, 20, 34, 12, 13, 11, 2, 3, 22, 16, 17, 41, 21, 21, 35, 12, 11, 11, 253, 112, 2, 146, 107, 253, 110, 4, 135, 104, 1, 1, 9, 11, 11, 37, 27, 27, 40, 13, 13, 13, 1, 13, 14, 11, 33, 23, 52, 79, 26, 26, 27, 1, 1, 25, 26, 27, 82, 56, 30, 52, 20, 17, 26, 9, 12, 31, 20, 20, 50, 33, 51, 74, 24, 24, 23, 1, 24, 25, 25, 75, 51, 43, 41, 11, 11, 11, 33, 22, 28, 39, 13, 12, 13, 1, 253, 138, 49, 72, 24, 24, 23, 1, 1, 25, 26, 26, 79, 52, 24, 44, 19, 17, 29, 11, 14, 35, 22, 22, 56, 34, 52, 74, 24, 24, 23, 1, 1, 26, 26, 26, 80, 56, 28, 52, 21, 18, 29, 11, 13, 33, 20, 20, 51, 254, 225, 26, 39, 14, 13, 14, 12, 11, 12, 36, 24, 25, 40, 13, 14, 12, 11, 12, 11, 35, 1, 27, 22, 36, 13, 12, 14, 12, 11, 11, 32, 21, 22, 36, 13, 12, 13, 12, 12, 11, 31, 254, 180, 3, 177, 71, 252, 79, 0, 5, 0, 105, 255, 248, 4, 117, 5, 177, 0, 45, 0, 93, 0, 117, 0, 141, 0, 145, 0, 0, 83, 23, 54, 54, 23, 50, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 34, 38, 39, 39, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 35, 34, 6, 7, 55, 33, 55, 33, 1, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 6, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 3, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 19, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 1, 1, 39, 1, 148, 116, 28, 57, 33, 29, 46, 13, 12, 9, 2, 3, 22, 17, 18, 51, 31, 49, 56, 4, 133, 2, 41, 32, 33, 84, 48, 57, 99, 37, 38, 45, 3, 3, 28, 27, 27, 80, 51, 30, 59, 28, 53, 1, 47, 21, 254, 92, 3, 116, 3, 36, 32, 32, 82, 43, 48, 91, 36, 36, 46, 1, 1, 10, 10, 10, 30, 19, 30, 52, 20, 19, 26, 1, 2, 40, 34, 35, 87, 45, 49, 98, 39, 39, 49, 2, 1, 16, 16, 12, 31, 19, 25, 45, 17, 18, 22, 170, 3, 26, 20, 19, 47, 24, 22, 39, 15, 15, 15, 2, 4, 26, 19, 20, 47, 24, 21, 40, 15, 15, 15, 32, 2, 23, 16, 16, 41, 21, 20, 34, 12, 13, 11, 2, 3, 22, 16, 17, 41, 21, 20, 35, 12, 11, 12, 253, 111, 2, 146, 107, 253, 110, 4, 74, 30, 17, 21, 1, 20, 18, 15, 40, 25, 28, 47, 18, 19, 22, 1, 43, 47, 1, 49, 76, 26, 27, 28, 1, 1, 35, 32, 33, 93, 58, 50, 82, 29, 29, 33, 13, 12, 154, 119, 252, 99, 49, 72, 24, 24, 23, 1, 1, 25, 26, 26, 79, 52, 24, 44, 18, 18, 29, 11, 14, 35, 22, 22, 56, 34, 52, 74, 24, 24, 23, 1, 1, 26, 26, 26, 80, 56, 30, 54, 23, 15, 27, 10, 13, 33, 20, 20, 51, 254, 225, 26, 39, 14, 13, 14, 12, 11, 12, 36, 24, 25, 40, 13, 14, 12, 11, 12, 11, 35, 1, 27, 22, 36, 13, 12, 14, 12, 11, 11, 32, 21, 22, 36, 13, 12, 13, 12, 11, 11, 31, 254, 184, 3, 177, 71, 252, 79, 0, 0, 5, 0, 183, 255, 244, 4, 111, 5, 177, 0, 6, 0, 54, 0, 78, 0, 102, 0, 106, 0, 0, 65, 55, 33, 7, 33, 1, 51, 5, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 6, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 3, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 19, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 1, 1, 39, 1, 2, 235, 15, 253, 227, 21, 1, 135, 254, 104, 155, 3, 26, 3, 36, 32, 32, 82, 43, 48, 91, 36, 36, 46, 1, 1, 9, 10, 10, 30, 20, 30, 52, 20, 19, 26, 1, 2, 40, 34, 35, 87, 45, 49, 98, 39, 39, 49, 2, 1, 15, 15, 12, 32, 20, 25, 45, 17, 18, 22, 170, 3, 26, 20, 19, 47, 24, 22, 39, 15, 15, 15, 2, 4, 26, 19, 20, 47, 24, 21, 40, 15, 15, 15, 32, 2, 23, 16, 16, 41, 21, 20, 34, 12, 13, 11, 2, 3, 22, 16, 17, 41, 21, 21, 35, 12, 11, 11, 253, 65, 2, 146, 107, 253, 110, 5, 87, 90, 117, 253, 175, 219, 49, 72, 24, 24, 23, 1, 1, 25, 26, 26, 79, 52, 23, 42, 18, 19, 30, 12, 14, 35, 22, 22, 56, 34, 52, 74, 24, 24, 23, 1, 1, 26, 26, 26, 80, 56, 29, 53, 22, 16, 28, 11, 13, 33, 20, 20, 51, 254, 225, 26, 39, 14, 13, 14, 12, 11, 12, 36, 24, 25, 40, 13, 14, 12, 11, 12, 11, 35, 1, 27, 22, 36, 13, 12, 14, 12, 11, 11, 32, 21, 22, 36, 13, 12, 13, 12, 12, 11, 31, 254, 189, 3, 177, 71, 252, 79, 0, 0, 2, 0, 97, 255, 233, 4, 72, 5, 237, 0, 53, 0, 82, 0, 0, 65, 38, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 55, 55, 54, 54, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 23, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 23, 22, 22, 7, 38, 38, 7, 22, 22, 23, 22, 22, 7, 7, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 55, 54, 54, 55, 54, 54, 2, 120, 109, 181, 67, 68, 85, 13, 2, 10, 37, 49, 48, 158, 110, 87, 147, 60, 59, 93, 34, 34, 44, 11, 9, 11, 8, 9, 9, 50, 48, 49, 150, 108, 82, 155, 75, 2, 37, 76, 38, 33, 69, 35, 58, 89, 32, 31, 40, 11, 10, 4, 4, 53, 150, 78, 42, 89, 37, 36, 46, 1, 9, 8, 27, 21, 21, 58, 39, 39, 99, 61, 76, 94, 24, 24, 10, 7, 3, 10, 56, 45, 44, 121, 3, 254, 3, 76, 67, 68, 183, 103, 24, 100, 187, 73, 73, 89, 3, 2, 53, 48, 47, 129, 73, 73, 156, 74, 59, 80, 184, 91, 91, 169, 65, 65, 79, 2, 2, 33, 36, 152, 13, 23, 8, 7, 7, 1, 2, 47, 37, 38, 97, 52, 52, 106, 46, 69, 75, 149, 2, 29, 26, 27, 77, 49, 65, 50, 109, 52, 53, 94, 35, 36, 40, 2, 3, 71, 55, 54, 131, 62, 23, 69, 125, 48, 48, 55, 0, 0, 1, 0, 34, 255, 43, 4, 140, 5, 176, 0, 7, 0, 0, 69, 1, 33, 1, 51, 19, 33, 3, 3, 135, 1, 5, 252, 155, 254, 251, 181, 237, 1, 251, 237, 213, 6, 133, 249, 123, 5, 237, 250, 19, 0, 1, 255, 154, 254, 243, 4, 193, 5, 176, 0, 12, 0, 0, 65, 55, 1, 33, 55, 33, 7, 1, 1, 7, 33, 55, 33, 3, 61, 2, 254, 63, 3, 40, 27, 252, 5, 25, 1, 210, 253, 53, 26, 4, 69, 27, 252, 157, 2, 66, 26, 2, 188, 152, 135, 253, 46, 253, 51, 151, 152, 0, 0, 1, 0, 59, 0, 0, 5, 8, 5, 176, 0, 10, 0, 0, 65, 3, 33, 7, 51, 19, 51, 1, 35, 1, 7, 1, 217, 84, 254, 210, 28, 184, 129, 138, 3, 10, 192, 253, 193, 46, 1, 71, 1, 199, 154, 253, 140, 5, 176, 251, 170, 110, 0, 3, 0, 50, 0, 222, 4, 124, 3, 224, 0, 73, 0, 111, 0, 149, 0, 0, 65, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 38, 38, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 55, 22, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 39, 7, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 39, 38, 38, 55, 55, 54, 54, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 22, 6, 5, 55, 54, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 23, 22, 22, 7, 7, 6, 6, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 38, 54, 4, 118, 4, 2, 2, 3, 5, 19, 15, 27, 93, 70, 55, 89, 37, 14, 25, 12, 20, 35, 16, 7, 20, 14, 9, 20, 11, 30, 79, 49, 75, 113, 39, 17, 28, 11, 13, 17, 3, 4, 2, 1, 3, 4, 19, 16, 26, 93, 72, 54, 89, 37, 20, 35, 16, 13, 25, 11, 5, 15, 9, 11, 27, 16, 29, 78, 50, 75, 114, 39, 22, 34, 12, 8, 11, 115, 4, 2, 6, 5, 6, 18, 12, 22, 69, 51, 38, 63, 22, 4, 7, 4, 16, 16, 1, 4, 8, 35, 25, 5, 11, 6, 32, 80, 43, 45, 50, 11, 4, 5, 1, 2, 1, 252, 171, 4, 2, 10, 7, 6, 15, 9, 22, 69, 50, 38, 63, 23, 4, 7, 3, 15, 17, 1, 4, 7, 33, 23, 6, 13, 6, 33, 80, 42, 46, 50, 11, 5, 6, 1, 1, 2, 81, 43, 26, 55, 27, 33, 65, 29, 51, 68, 1, 1, 45, 36, 13, 29, 15, 26, 55, 26, 26, 53, 25, 15, 30, 14, 34, 43, 2, 3, 65, 52, 23, 54, 27, 36, 73, 36, 43, 25, 52, 26, 36, 69, 30, 53, 68, 1, 1, 45, 36, 19, 45, 23, 19, 38, 19, 20, 40, 19, 22, 43, 18, 35, 44, 1, 2, 66, 54, 30, 71, 37, 28, 57, 71, 43, 18, 39, 19, 24, 46, 21, 38, 47, 2, 1, 53, 38, 6, 14, 6, 33, 68, 28, 28, 31, 72, 34, 7, 14, 7, 38, 52, 50, 36, 15, 34, 17, 22, 44, 77, 43, 23, 50, 25, 18, 35, 16, 37, 47, 2, 2, 52, 37, 7, 13, 7, 33, 68, 28, 28, 29, 70, 33, 8, 16, 8, 39, 52, 50, 36, 17, 38, 19, 21, 40, 0, 1, 0, 84, 254, 72, 4, 69, 6, 47, 0, 40, 0, 0, 69, 49, 19, 54, 54, 55, 54, 54, 51, 50, 22, 23, 55, 38, 38, 39, 38, 6, 7, 6, 6, 7, 3, 6, 6, 7, 6, 6, 35, 34, 38, 39, 7, 22, 22, 51, 22, 54, 55, 54, 54, 2, 47, 198, 6, 33, 27, 26, 74, 48, 23, 44, 22, 33, 35, 73, 37, 83, 131, 46, 47, 57, 9, 198, 5, 23, 20, 20, 60, 41, 24, 49, 23, 28, 29, 57, 31, 81, 125, 45, 44, 54, 89, 5, 27, 44, 78, 29, 28, 33, 7, 6, 143, 8, 13, 1, 1, 55, 49, 49, 134, 78, 250, 229, 35, 71, 29, 29, 36, 10, 6, 146, 9, 11, 1, 52, 48, 47, 129, 0, 0, 2, 0, 161, 0, 0, 4, 52, 5, 176, 0, 5, 0, 13, 0, 0, 65, 1, 1, 51, 1, 1, 7, 23, 19, 1, 7, 39, 3, 1, 2, 156, 254, 5, 1, 13, 138, 1, 252, 254, 242, 85, 6, 166, 254, 161, 28, 5, 166, 1, 95, 5, 176, 253, 49, 253, 31, 2, 205, 2, 227, 155, 51, 253, 255, 253, 238, 53, 51, 2, 0, 2, 19, 0, 0, 22, 255, 240, 0, 8, 4, 174, 4, 7, 0, 16, 0, 37, 0, 51, 0, 67, 0, 73, 0, 79, 0, 85, 0, 91, 0, 100, 0, 104, 0, 108, 0, 112, 0, 116, 0, 120, 0, 124, 0, 139, 0, 143, 0, 147, 0, 151, 0, 155, 0, 159, 0, 163, 0, 0, 65, 7, 6, 6, 7, 6, 38, 39, 38, 38, 53, 55, 54, 54, 55, 50, 22, 23, 35, 19, 51, 22, 22, 23, 22, 22, 7, 6, 6, 7, 22, 22, 23, 20, 6, 7, 6, 6, 39, 55, 54, 38, 39, 34, 6, 7, 7, 6, 22, 23, 50, 54, 37, 55, 51, 7, 6, 6, 7, 6, 38, 39, 23, 22, 22, 51, 50, 54, 1, 23, 55, 7, 55, 35, 5, 55, 55, 35, 7, 39, 1, 51, 55, 23, 55, 7, 5, 55, 7, 51, 55, 39, 1, 39, 7, 55, 54, 54, 55, 54, 38, 3, 51, 55, 35, 23, 51, 55, 35, 5, 51, 55, 35, 19, 51, 55, 35, 23, 51, 55, 35, 5, 51, 55, 35, 1, 7, 55, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 5, 55, 35, 7, 23, 55, 7, 7, 19, 55, 7, 7, 5, 55, 35, 7, 23, 55, 7, 7, 19, 55, 7, 7, 1, 214, 2, 5, 68, 54, 29, 46, 17, 15, 17, 3, 5, 69, 54, 56, 65, 136, 130, 56, 88, 19, 39, 16, 15, 19, 1, 2, 31, 20, 20, 23, 1, 20, 16, 16, 40, 213, 8, 2, 25, 35, 37, 42, 8, 8, 2, 25, 36, 37, 42, 2, 1, 34, 49, 26, 7, 55, 45, 50, 53, 2, 47, 2, 14, 28, 25, 32, 252, 97, 165, 17, 110, 25, 60, 3, 66, 168, 32, 57, 25, 101, 253, 30, 59, 20, 101, 18, 168, 3, 89, 104, 17, 59, 31, 160, 254, 101, 72, 23, 64, 23, 42, 5, 3, 25, 50, 148, 16, 148, 198, 147, 16, 147, 254, 70, 146, 16, 146, 31, 147, 16, 148, 198, 148, 15, 147, 254, 70, 147, 15, 146, 1, 89, 18, 46, 12, 25, 11, 10, 16, 2, 2, 8, 7, 8, 20, 9, 254, 3, 30, 60, 29, 23, 30, 60, 29, 131, 29, 59, 29, 3, 230, 29, 58, 30, 23, 29, 58, 29, 130, 29, 58, 30, 2, 35, 61, 53, 66, 1, 1, 20, 17, 17, 44, 26, 62, 52, 66, 1, 69, 233, 1, 47, 1, 7, 9, 9, 30, 23, 28, 29, 14, 10, 30, 23, 24, 33, 10, 11, 11, 118, 64, 31, 48, 1, 49, 33, 63, 32, 48, 1, 49, 10, 208, 209, 43, 50, 2, 2, 49, 48, 2, 23, 29, 32, 254, 80, 1, 66, 1, 112, 176, 1, 175, 112, 1, 3, 30, 94, 1, 66, 1, 65, 1, 94, 158, 1, 253, 240, 1, 96, 1, 4, 21, 26, 21, 19, 1, 209, 66, 66, 66, 66, 66, 252, 2, 65, 65, 65, 65, 65, 2, 39, 86, 1, 1, 5, 6, 5, 17, 14, 12, 14, 4, 3, 2, 1, 166, 140, 140, 207, 140, 1, 140, 1, 160, 140, 1, 140, 207, 140, 140, 207, 140, 1, 140, 1, 160, 140, 1, 140, 0, 5, 0, 1, 253, 213, 4, 161, 8, 98, 0, 3, 0, 47, 0, 51, 0, 55, 0, 59, 0, 0, 65, 9, 2, 5, 35, 52, 54, 55, 54, 54, 55, 54, 54, 55, 54, 54, 53, 52, 38, 35, 34, 6, 7, 35, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 7, 6, 6, 7, 6, 6, 21, 21, 35, 53, 19, 21, 51, 53, 3, 21, 51, 53, 2, 84, 253, 173, 2, 83, 2, 77, 254, 26, 202, 8, 11, 10, 35, 29, 10, 27, 12, 12, 17, 32, 37, 24, 41, 2, 203, 1, 43, 37, 36, 97, 56, 64, 102, 35, 34, 37, 23, 18, 18, 45, 22, 11, 17, 6, 6, 6, 202, 94, 4, 6, 4, 6, 82, 252, 49, 252, 49, 3, 207, 251, 48, 50, 19, 19, 40, 36, 13, 39, 24, 23, 51, 26, 52, 64, 48, 55, 70, 101, 33, 32, 30, 39, 36, 37, 103, 64, 41, 64, 28, 29, 55, 31, 16, 29, 15, 16, 39, 116, 170, 170, 252, 172, 4, 4, 10, 137, 4, 4, 0, 0, 2, 1, 116, 4, 228, 4, 62, 6, 248, 0, 6, 0, 44, 0, 0, 65, 3, 35, 1, 51, 55, 23, 19, 39, 6, 6, 7, 6, 6, 7, 6, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 23, 54, 54, 55, 54, 54, 55, 54, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 4, 62, 239, 146, 254, 183, 177, 219, 161, 144, 70, 7, 19, 13, 12, 29, 18, 27, 47, 23, 23, 48, 27, 38, 59, 22, 23, 28, 6, 77, 5, 17, 12, 11, 31, 19, 27, 47, 23, 22, 47, 28, 37, 60, 22, 21, 28, 4, 228, 1, 6, 254, 250, 175, 175, 1, 255, 21, 18, 34, 13, 11, 15, 1, 2, 22, 15, 14, 23, 32, 25, 26, 64, 33, 19, 16, 33, 14, 13, 18, 1, 1, 23, 14, 14, 25, 32, 25, 25, 63, 0, 0, 2, 1, 96, 4, 228, 5, 66, 6, 206, 0, 6, 0, 34, 0, 0, 65, 3, 35, 1, 55, 55, 23, 55, 51, 55, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 7, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 4, 45, 222, 184, 254, 201, 176, 223, 160, 155, 118, 10, 28, 52, 21, 20, 26, 2, 3, 45, 35, 36, 83, 35, 15, 14, 44, 21, 20, 27, 2, 3, 30, 20, 21, 44, 17, 4, 228, 1, 6, 254, 250, 1, 183, 184, 138, 60, 5, 20, 17, 16, 48, 32, 46, 59, 17, 17, 13, 2, 92, 1, 2, 6, 6, 24, 22, 23, 25, 7, 7, 4, 2, 0, 2, 0, 207, 4, 228, 4, 72, 6, 149, 0, 6, 0, 10, 0, 0, 65, 3, 35, 1, 51, 55, 23, 37, 3, 35, 19, 4, 72, 237, 149, 254, 185, 201, 192, 137, 254, 87, 92, 189, 150, 4, 228, 1, 6, 254, 250, 157, 157, 174, 1, 3, 254, 253, 0, 2, 1, 110, 4, 228, 5, 144, 6, 149, 0, 6, 0, 10, 0, 0, 65, 1, 51, 55, 23, 51, 3, 37, 3, 51, 19, 2, 183, 254, 183, 204, 191, 136, 183, 237, 1, 122, 183, 146, 240, 5, 234, 254, 250, 157, 157, 1, 6, 171, 254, 253, 1, 3, 0, 2, 1, 205, 4, 223, 4, 20, 6, 138, 0, 25, 0, 29, 0, 0, 65, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 39, 22, 22, 23, 22, 22, 23, 50, 54, 55, 54, 54, 39, 39, 35, 23, 4, 20, 148, 7, 23, 16, 22, 59, 36, 33, 51, 16, 14, 13, 1, 146, 1, 49, 39, 39, 98, 51, 52, 105, 43, 42, 58, 230, 145, 163, 195, 5, 177, 2, 25, 38, 14, 20, 19, 1, 1, 16, 17, 14, 41, 27, 2, 57, 80, 25, 25, 23, 1, 22, 25, 24, 81, 78, 197, 198, 0, 1, 2, 76, 4, 142, 3, 119, 6, 61, 0, 12, 0, 0, 65, 7, 51, 55, 54, 54, 55, 39, 6, 6, 7, 6, 6, 2, 94, 18, 180, 21, 12, 50, 36, 104, 34, 59, 23, 23, 31, 5, 13, 127, 120, 63, 108, 53, 87, 29, 69, 39, 38, 84, 0, 2, 255, 199, 0, 0, 4, 0, 4, 141, 0, 7, 0, 12, 0, 0, 65, 19, 51, 3, 35, 1, 51, 19, 55, 19, 55, 23, 19, 3, 24, 57, 175, 254, 161, 253, 102, 192, 156, 84, 247, 35, 13, 91, 1, 23, 254, 233, 4, 141, 251, 115, 1, 23, 151, 1, 187, 62, 61, 254, 68, 0, 0, 3, 0, 97, 255, 255, 4, 54, 4, 141, 0, 26, 0, 41, 0, 56, 0, 0, 115, 33, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 37, 19, 5, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 35, 39, 19, 19, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 97, 1, 198, 81, 162, 66, 65, 84, 5, 2, 22, 22, 23, 67, 43, 45, 81, 32, 31, 41, 3, 6, 66, 55, 56, 142, 70, 254, 122, 73, 1, 23, 42, 72, 26, 25, 25, 6, 7, 55, 39, 39, 94, 46, 249, 90, 60, 230, 39, 78, 30, 30, 33, 6, 7, 51, 37, 37, 87, 43, 1, 37, 41, 41, 131, 92, 45, 83, 34, 33, 51, 14, 17, 45, 31, 30, 79, 52, 84, 116, 37, 36, 34, 2, 1, 253, 133, 1, 2, 25, 23, 23, 69, 45, 52, 73, 23, 23, 21, 1, 2, 8, 1, 85, 1, 1, 17, 18, 19, 63, 47, 48, 67, 21, 21, 19, 1, 0, 1, 0, 89, 255, 237, 4, 55, 4, 160, 0, 54, 0, 0, 65, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 23, 51, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 3, 231, 176, 20, 58, 40, 40, 102, 63, 79, 93, 25, 26, 9, 9, 15, 12, 57, 47, 46, 131, 84, 57, 84, 28, 28, 30, 5, 178, 5, 59, 51, 52, 143, 90, 119, 195, 73, 73, 93, 16, 13, 8, 12, 21, 19, 64, 44, 46, 122, 75, 95, 168, 67, 66, 92, 1, 122, 2, 57, 92, 31, 32, 32, 3, 3, 75, 55, 54, 142, 66, 103, 74, 145, 56, 56, 68, 3, 2, 37, 32, 33, 89, 54, 87, 145, 53, 52, 60, 2, 3, 89, 76, 77, 201, 110, 100, 70, 137, 61, 58, 98, 37, 38, 46, 2, 3, 53, 52, 51, 148, 0, 2, 0, 73, 0, 0, 4, 61, 4, 141, 0, 15, 0, 31, 0, 0, 115, 33, 50, 54, 55, 54, 54, 55, 55, 54, 38, 39, 38, 38, 39, 37, 23, 23, 22, 22, 23, 22, 22, 7, 7, 6, 6, 7, 6, 6, 35, 39, 73, 1, 97, 123, 219, 86, 85, 112, 16, 7, 11, 54, 59, 60, 181, 115, 254, 171, 155, 182, 85, 116, 34, 34, 23, 9, 8, 13, 78, 59, 60, 156, 91, 149, 80, 73, 72, 204, 123, 65, 112, 196, 74, 74, 88, 3, 1, 153, 1, 4, 66, 54, 54, 139, 77, 64, 90, 148, 53, 53, 59, 1, 0, 1, 0, 89, 0, 0, 4, 97, 4, 141, 0, 11, 0, 0, 65, 55, 33, 19, 33, 55, 33, 3, 33, 55, 33, 19, 3, 156, 27, 253, 209, 58, 2, 131, 28, 252, 195, 203, 3, 67, 27, 253, 117, 66, 2, 14, 152, 1, 78, 153, 251, 115, 151, 1, 119, 0, 0, 1, 0, 119, 0, 0, 4, 128, 4, 141, 0, 9, 0, 0, 65, 55, 33, 19, 33, 55, 33, 3, 51, 19, 3, 181, 27, 253, 212, 63, 2, 129, 28, 252, 194, 203, 188, 87, 1, 243, 153, 1, 104, 153, 251, 115, 1, 243, 0, 1, 0, 100, 255, 239, 4, 71, 4, 160, 0, 55, 0, 0, 101, 19, 33, 7, 33, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 23, 23, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 3, 221, 65, 254, 67, 26, 1, 13, 45, 21, 45, 22, 42, 88, 47, 81, 105, 28, 28, 15, 9, 12, 12, 57, 47, 46, 131, 87, 53, 83, 29, 27, 34, 7, 176, 8, 64, 52, 52, 141, 85, 122, 196, 72, 73, 91, 16, 11, 12, 42, 54, 53, 169, 115, 63, 126, 59, 59, 106, 150, 1, 185, 144, 239, 15, 23, 8, 16, 11, 2, 3, 75, 58, 57, 140, 69, 87, 76, 147, 58, 57, 69, 3, 2, 33, 30, 28, 78, 48, 1, 85, 135, 48, 48, 53, 2, 3, 90, 77, 77, 204, 112, 84, 107, 197, 76, 77, 95, 3, 2, 15, 20, 19, 65, 0, 1, 0, 46, 0, 0, 4, 62, 4, 141, 0, 11, 0, 0, 97, 19, 35, 3, 33, 19, 35, 3, 51, 19, 33, 3, 3, 115, 203, 174, 90, 254, 22, 90, 174, 202, 174, 86, 1, 234, 87, 4, 141, 253, 253, 2, 3, 251, 115, 1, 242, 254, 14, 0, 0, 1, 0, 106, 0, 0, 4, 84, 4, 140, 0, 11, 0, 0, 65, 7, 33, 3, 33, 7, 33, 55, 33, 19, 33, 55, 1, 52, 28, 1, 50, 147, 254, 207, 28, 3, 31, 29, 254, 198, 146, 1, 57, 29, 4, 140, 161, 252, 181, 160, 160, 3, 75, 161, 0, 1, 0, 104, 255, 238, 4, 43, 4, 141, 0, 27, 0, 0, 65, 3, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 39, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 19, 3, 113, 132, 8, 44, 33, 34, 89, 53, 54, 77, 25, 25, 21, 3, 185, 2, 51, 47, 47, 137, 89, 89, 155, 60, 60, 78, 13, 135, 4, 141, 252, 235, 50, 89, 33, 33, 38, 1, 1, 35, 31, 31, 84, 51, 1, 87, 140, 50, 50, 56, 1, 2, 57, 52, 52, 145, 87, 3, 22, 0, 1, 0, 70, 0, 0, 4, 167, 4, 141, 0, 12, 0, 0, 65, 1, 51, 1, 1, 35, 1, 7, 19, 35, 3, 51, 19, 1, 234, 1, 56, 205, 254, 132, 2, 52, 237, 254, 61, 145, 95, 181, 202, 181, 64, 2, 6, 253, 250, 2, 125, 2, 16, 254, 104, 135, 2, 31, 251, 115, 1, 113, 0, 1, 0, 98, 0, 0, 3, 228, 4, 141, 0, 5, 0, 0, 101, 19, 35, 3, 33, 55, 1, 60, 176, 191, 203, 3, 103, 27, 151, 3, 246, 251, 115, 151, 0, 1, 0, 46, 0, 0, 4, 125, 4, 141, 0, 12, 0, 0, 65, 3, 35, 3, 51, 19, 19, 51, 1, 3, 51, 19, 35, 2, 86, 112, 238, 202, 172, 166, 111, 128, 1, 60, 165, 172, 203, 240, 2, 90, 2, 51, 251, 115, 3, 184, 253, 134, 2, 114, 252, 80, 4, 141, 0, 1, 0, 84, 0, 0, 4, 83, 4, 141, 0, 9, 0, 0, 97, 19, 35, 3, 1, 35, 3, 51, 19, 1, 3, 137, 202, 172, 148, 254, 175, 164, 202, 173, 149, 1, 80, 4, 141, 252, 139, 3, 117, 251, 115, 3, 116, 252, 140, 0, 0, 2, 0, 113, 255, 237, 4, 50, 4, 160, 0, 31, 0, 63, 0, 0, 65, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 39, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 39, 38, 52, 55, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 23, 22, 6, 4, 35, 8, 7, 8, 17, 18, 62, 45, 46, 121, 77, 119, 191, 70, 70, 87, 15, 8, 7, 10, 18, 17, 62, 46, 45, 120, 76, 119, 191, 70, 70, 87, 156, 9, 11, 51, 44, 44, 127, 85, 53, 77, 26, 26, 30, 7, 7, 5, 9, 11, 54, 45, 44, 127, 83, 53, 77, 26, 26, 29, 7, 7, 1, 2, 37, 66, 67, 135, 63, 62, 108, 41, 40, 48, 2, 3, 96, 80, 81, 207, 107, 69, 66, 134, 61, 62, 107, 40, 41, 47, 2, 3, 95, 80, 80, 205, 182, 69, 72, 150, 61, 61, 76, 3, 2, 39, 32, 31, 82, 45, 45, 91, 42, 68, 71, 149, 60, 60, 75, 3, 2, 37, 31, 31, 80, 44, 45, 91, 0, 0, 2, 0, 72, 255, 54, 4, 79, 4, 160, 0, 31, 0, 57, 0, 0, 65, 55, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 23, 55, 39, 54, 54, 55, 54, 54, 39, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 4, 60, 8, 11, 40, 52, 52, 167, 116, 121, 201, 75, 76, 95, 16, 8, 12, 41, 52, 51, 167, 116, 31, 60, 31, 221, 132, 188, 45, 77, 32, 59, 72, 158, 10, 12, 60, 48, 49, 136, 87, 83, 104, 28, 28, 13, 8, 10, 12, 62, 49, 49, 136, 86, 83, 104, 27, 27, 13, 2, 42, 68, 105, 199, 78, 78, 96, 3, 3, 92, 79, 79, 207, 112, 67, 105, 200, 78, 79, 98, 2, 1, 7, 5, 199, 103, 167, 29, 69, 39, 73, 177, 164, 71, 77, 150, 58, 59, 70, 3, 3, 77, 60, 59, 143, 68, 70, 76, 149, 59, 58, 70, 3, 3, 76, 58, 59, 142, 0, 2, 0, 35, 0, 0, 4, 3, 4, 141, 0, 20, 0, 35, 0, 0, 65, 19, 51, 53, 3, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 37, 3, 51, 19, 55, 19, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 2, 58, 173, 194, 199, 56, 99, 38, 38, 48, 4, 6, 59, 54, 54, 143, 78, 254, 110, 202, 181, 78, 26, 72, 244, 45, 79, 29, 28, 28, 6, 7, 56, 40, 41, 98, 49, 1, 193, 254, 63, 12, 1, 226, 22, 59, 39, 38, 100, 65, 87, 128, 43, 42, 44, 3, 1, 251, 115, 1, 193, 151, 1, 156, 1, 2, 26, 25, 25, 74, 49, 54, 79, 26, 26, 26, 1, 0, 0, 1, 0, 94, 255, 239, 4, 59, 4, 158, 0, 88, 0, 0, 65, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 39, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 38, 38, 39, 38, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 23, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 22, 23, 22, 22, 23, 22, 22, 3, 54, 7, 59, 41, 42, 96, 43, 53, 95, 35, 35, 41, 1, 182, 2, 73, 60, 60, 155, 84, 51, 108, 52, 52, 92, 36, 36, 44, 3, 4, 61, 51, 25, 59, 30, 32, 67, 33, 23, 58, 29, 29, 55, 20, 21, 21, 3, 6, 56, 40, 40, 94, 42, 49, 85, 31, 30, 35, 1, 181, 2, 65, 54, 55, 145, 81, 76, 161, 67, 68, 89, 4, 4, 68, 56, 27, 62, 32, 33, 69, 32, 20, 43, 22, 19, 38, 17, 36, 42, 1, 49, 51, 66, 19, 20, 16, 1, 1, 24, 26, 25, 81, 58, 1, 91, 136, 45, 46, 47, 1, 1, 14, 16, 16, 52, 36, 36, 95, 60, 78, 116, 43, 21, 34, 14, 15, 24, 10, 7, 16, 10, 10, 28, 19, 18, 50, 33, 49, 68, 21, 21, 17, 1, 1, 25, 25, 25, 76, 52, 1, 85, 132, 45, 45, 48, 2, 1, 36, 40, 41, 126, 87, 80, 115, 40, 20, 33, 14, 14, 22, 10, 6, 12, 8, 7, 17, 10, 22, 67, 0, 0, 1, 0, 161, 0, 0, 4, 170, 4, 141, 0, 7, 0, 0, 65, 55, 33, 7, 33, 3, 51, 19, 4, 143, 27, 252, 18, 27, 1, 155, 176, 184, 175, 3, 244, 153, 153, 252, 12, 3, 244, 0, 0, 1, 0, 134, 255, 238, 4, 109, 4, 141, 0, 29, 0, 0, 65, 35, 3, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 19, 35, 3, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 4, 109, 179, 134, 10, 51, 38, 39, 100, 58, 55, 82, 26, 26, 21, 6, 131, 177, 132, 8, 49, 50, 50, 143, 86, 93, 166, 66, 66, 87, 13, 4, 141, 252, 243, 57, 93, 33, 33, 35, 2, 1, 39, 33, 33, 90, 53, 3, 13, 252, 244, 88, 146, 52, 53, 60, 2, 2, 56, 53, 53, 150, 93, 0, 0, 1, 0, 185, 0, 0, 4, 200, 4, 141, 0, 8, 0, 0, 65, 3, 35, 19, 51, 1, 35, 1, 7, 2, 11, 151, 187, 232, 170, 2, 125, 205, 254, 73, 50, 1, 44, 3, 97, 251, 115, 4, 141, 252, 177, 112, 0, 1, 0, 145, 0, 0, 4, 252, 4, 141, 0, 18, 0, 0, 65, 3, 35, 19, 51, 1, 55, 23, 19, 51, 1, 35, 3, 7, 39, 3, 35, 1, 7, 1, 56, 4, 163, 23, 156, 1, 35, 40, 5, 33, 155, 1, 172, 172, 254, 36, 4, 27, 150, 254, 230, 39, 1, 185, 2, 212, 251, 115, 2, 215, 100, 101, 253, 42, 4, 141, 253, 46, 101, 99, 2, 212, 253, 45, 99, 0, 0, 1, 255, 238, 0, 0, 4, 159, 4, 141, 0, 11, 0, 0, 65, 3, 35, 1, 1, 51, 1, 19, 51, 1, 1, 39, 2, 93, 198, 201, 1, 23, 254, 9, 228, 1, 105, 210, 202, 254, 223, 1, 233, 226, 2, 219, 1, 178, 253, 200, 253, 171, 1, 186, 254, 70, 2, 65, 2, 75, 1, 0, 0, 1, 0, 178, 0, 0, 4, 199, 4, 141, 0, 10, 0, 0, 65, 3, 35, 1, 3, 51, 19, 1, 35, 1, 7, 2, 51, 190, 195, 1, 39, 75, 183, 68, 2, 62, 218, 254, 139, 45, 2, 133, 2, 8, 253, 30, 254, 85, 1, 139, 3, 2, 253, 246, 62, 0, 0, 1, 0, 85, 0, 0, 4, 98, 4, 141, 0, 9, 0, 0, 101, 1, 55, 33, 7, 33, 1, 7, 33, 55, 1, 83, 2, 252, 19, 252, 178, 24, 2, 105, 253, 5, 21, 3, 111, 24, 151, 3, 117, 129, 153, 252, 144, 132, 151, 0, 0, 2, 1, 220, 4, 223, 4, 15, 7, 2, 0, 25, 0, 59, 0, 0, 65, 7, 6, 6, 7, 6, 6, 39, 34, 38, 39, 38, 38, 55, 39, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 37, 23, 55, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 7, 50, 22, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 4, 15, 141, 8, 27, 18, 21, 53, 32, 31, 48, 16, 14, 15, 1, 140, 1, 46, 38, 37, 95, 50, 52, 101, 41, 41, 55, 254, 177, 133, 6, 26, 55, 23, 22, 30, 1, 1, 26, 22, 23, 58, 30, 30, 56, 21, 12, 12, 50, 25, 13, 22, 8, 8, 8, 1, 3, 36, 23, 24, 48, 16, 5, 177, 2, 27, 42, 14, 16, 16, 1, 15, 15, 14, 43, 28, 2, 56, 78, 25, 26, 24, 1, 1, 23, 25, 25, 80, 73, 1, 63, 4, 16, 14, 13, 42, 32, 31, 44, 15, 15, 19, 5, 5, 3, 1, 81, 1, 4, 3, 7, 6, 6, 16, 11, 23, 24, 5, 6, 3, 1, 0, 0, 2, 1, 205, 4, 223, 4, 20, 6, 138, 0, 25, 0, 29, 0, 0, 65, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 39, 22, 22, 23, 22, 22, 23, 50, 54, 55, 54, 54, 3, 7, 55, 55, 4, 20, 148, 7, 23, 16, 22, 59, 36, 33, 51, 16, 14, 13, 1, 146, 1, 49, 39, 39, 98, 51, 52, 105, 43, 42, 58, 198, 145, 113, 195, 5, 177, 2, 25, 38, 14, 20, 19, 1, 1, 16, 17, 14, 41, 27, 2, 57, 80, 25, 25, 23, 1, 22, 25, 24, 81, 1, 19, 198, 1, 196, 0, 1, 1, 52, 2, 139, 3, 186, 3, 34, 0, 3, 0, 0, 65, 55, 33, 7, 3, 159, 27, 253, 149, 27, 2, 139, 151, 151, 0, 3, 2, 52, 4, 63, 4, 76, 6, 113, 0, 3, 0, 27, 0, 51, 0, 0, 65, 7, 51, 55, 1, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 23, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 3, 122, 173, 137, 246, 253, 232, 26, 22, 22, 59, 33, 35, 61, 23, 22, 27, 23, 21, 21, 58, 34, 36, 62, 23, 24, 28, 83, 13, 13, 11, 31, 19, 16, 30, 11, 10, 12, 14, 11, 12, 29, 18, 17, 30, 11, 11, 13, 6, 113, 182, 182, 254, 107, 34, 58, 21, 21, 23, 27, 24, 23, 61, 35, 33, 60, 22, 22, 25, 28, 24, 24, 63, 34, 18, 31, 12, 12, 15, 13, 11, 11, 30, 15, 19, 31, 11, 13, 13, 12, 10, 12, 28, 0, 0, 2, 2, 69, 4, 130, 4, 48, 5, 196, 0, 5, 0, 15, 0, 0, 65, 7, 51, 19, 55, 35, 5, 7, 51, 55, 54, 54, 55, 39, 6, 6, 3, 1, 3, 79, 225, 2, 163, 254, 204, 20, 121, 23, 11, 42, 29, 77, 48, 68, 4, 158, 26, 1, 42, 22, 183, 139, 134, 51, 90, 43, 3, 32, 92, 0, 0, 2, 1, 253, 4, 216, 4, 92, 6, 207, 0, 25, 0, 63, 0, 0, 65, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 39, 20, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 19, 39, 6, 6, 7, 6, 6, 7, 6, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 23, 54, 54, 55, 54, 54, 55, 54, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 4, 53, 143, 7, 25, 17, 21, 57, 34, 30, 47, 15, 15, 14, 1, 144, 46, 38, 37, 96, 51, 53, 103, 42, 41, 55, 45, 76, 7, 18, 13, 11, 31, 20, 30, 51, 24, 25, 51, 30, 39, 62, 22, 22, 27, 5, 83, 6, 18, 12, 12, 31, 20, 29, 50, 25, 24, 52, 30, 39, 60, 22, 21, 25, 5, 175, 2, 26, 40, 15, 18, 19, 1, 1, 15, 15, 14, 44, 29, 2, 56, 81, 26, 26, 25, 1, 1, 24, 26, 25, 82, 1, 68, 22, 18, 32, 12, 11, 15, 1, 2, 24, 15, 15, 26, 31, 25, 26, 66, 35, 20, 17, 31, 12, 12, 15, 1, 1, 24, 15, 15, 25, 31, 26, 25, 65, 0, 1, 1, 80, 254, 153, 2, 94, 0, 154, 0, 3, 0, 0, 65, 19, 35, 3, 2, 4, 90, 181, 89, 254, 153, 2, 1, 253, 255, 0, 0, 1, 0, 173, 254, 71, 2, 173, 0, 151, 0, 21, 0, 0, 101, 35, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 7, 22, 22, 23, 50, 54, 55, 54, 54, 55, 2, 173, 180, 39, 6, 24, 20, 21, 59, 41, 24, 48, 23, 27, 29, 56, 30, 81, 126, 45, 45, 54, 10, 151, 240, 35, 68, 27, 27, 33, 9, 7, 159, 8, 10, 1, 53, 48, 47, 129, 76, 0, 0, 2, 0, 93, 0, 0, 4, 82, 4, 141, 0, 16, 0, 31, 0, 0, 65, 5, 50, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 37, 3, 51, 19, 19, 5, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 35, 1, 93, 1, 21, 86, 165, 66, 66, 85, 6, 6, 57, 51, 52, 140, 78, 254, 80, 203, 180, 102, 74, 1, 20, 45, 76, 27, 27, 26, 6, 6, 53, 40, 40, 98, 51, 1, 182, 1, 44, 46, 45, 139, 95, 84, 131, 46, 45, 49, 3, 1, 251, 115, 2, 78, 1, 166, 1, 2, 30, 26, 27, 75, 47, 56, 81, 26, 27, 26, 0, 0, 1, 0, 59, 0, 0, 5, 6, 5, 176, 0, 12, 0, 0, 65, 1, 51, 1, 1, 35, 1, 35, 19, 35, 3, 51, 19, 2, 14, 1, 70, 208, 254, 127, 2, 99, 220, 253, 226, 144, 113, 181, 253, 181, 115, 2, 147, 253, 109, 2, 229, 2, 203, 253, 122, 2, 134, 250, 80, 2, 147, 0, 0, 1, 0, 99, 255, 232, 4, 26, 4, 160, 0, 59, 0, 0, 101, 7, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 35, 1, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 3, 51, 19, 54, 54, 55, 54, 54, 23, 22, 22, 23, 1, 7, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 35, 34, 38, 1, 171, 65, 53, 108, 58, 87, 153, 58, 57, 70, 5, 4, 41, 38, 38, 107, 62, 3, 1, 68, 39, 84, 45, 46, 102, 57, 103, 157, 55, 55, 67, 13, 128, 180, 128, 8, 37, 32, 31, 91, 63, 44, 80, 32, 254, 233, 25, 93, 45, 83, 32, 31, 33, 6, 6, 40, 31, 32, 85, 51, 45, 79, 181, 153, 23, 27, 1, 1, 54, 51, 50, 144, 89, 68, 105, 38, 36, 44, 9, 1, 78, 39, 66, 25, 24, 28, 2, 2, 61, 57, 57, 160, 96, 253, 15, 2, 241, 55, 101, 39, 39, 46, 1, 1, 29, 31, 254, 221, 145, 1, 1, 15, 19, 19, 67, 53, 49, 85, 31, 32, 35, 28, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 1, 0, 0, 255, 255, 0, 204, 2, 49, 3, 206, 2, 201, 6, 6, 0, 103, 0, 0, 255, 255, 0, 100, 255, 233, 4, 133, 7, 48, 6, 38, 0, 4, 0, 0, 0, 7, 1, 96, 0, 115, 1, 112, 255, 255, 0, 122, 255, 233, 4, 44, 5, 217, 6, 38, 0, 30, 0, 0, 0, 6, 1, 96, 33, 25, 255, 255, 0, 96, 255, 232, 4, 133, 7, 48, 6, 38, 0, 8, 0, 0, 0, 7, 1, 96, 0, 88, 1, 112, 255, 255, 0, 45, 254, 82, 4, 82, 5, 217, 6, 38, 0, 34, 0, 0, 0, 6, 1, 96, 251, 25, 255, 255, 0, 21, 0, 0, 4, 31, 6, 22, 6, 38, 0, 41, 0, 0, 0, 7, 0, 109, 253, 253, 0, 0, 255, 255, 0, 83, 254, 36, 4, 141, 5, 198, 6, 38, 0, 20, 0, 0, 0, 7, 1, 104, 0, 133, 254, 206, 255, 255, 0, 124, 254, 37, 4, 40, 4, 79, 6, 38, 0, 46, 0, 0, 0, 7, 1, 104, 0, 120, 254, 207, 255, 255, 0, 194, 254, 46, 4, 247, 5, 176, 6, 38, 0, 21, 0, 0, 0, 7, 1, 104, 0, 107, 254, 216, 255, 255, 0, 196, 254, 46, 4, 54, 5, 64, 6, 38, 0, 47, 0, 0, 0, 7, 1, 104, 0, 202, 254, 216, 255, 255, 0, 194, 254, 75, 4, 247, 5, 176, 6, 38, 0, 21, 0, 0, 0, 6, 1, 102, 61, 0, 255, 255, 0, 161, 254, 77, 4, 170, 4, 141, 6, 38, 2, 97, 0, 0, 0, 6, 1, 102, 46, 2, 255, 255, 0, 196, 254, 75, 4, 54, 5, 64, 6, 38, 0, 47, 0, 0, 0, 7, 1, 102, 0, 156, 0, 0, 255, 255, 255, 217, 0, 0, 4, 61, 4, 141, 6, 38, 2, 82, 0, 0, 0, 7, 2, 106, 254, 165, 255, 120, 255, 255, 255, 217, 0, 0, 4, 61, 4, 141, 6, 38, 2, 82, 0, 0, 0, 7, 2, 106, 254, 165, 255, 120, 255, 255, 0, 161, 0, 0, 4, 170, 4, 141, 6, 38, 2, 97, 0, 0, 0, 6, 2, 106, 238, 224, 255, 255, 255, 199, 0, 0, 4, 0, 5, 255, 6, 38, 2, 79, 0, 0, 0, 6, 1, 90, 163, 54, 255, 255, 255, 199, 0, 0, 4, 51, 5, 252, 6, 38, 2, 79, 0, 0, 0, 7, 1, 91, 0, 136, 0, 51, 255, 255, 255, 199, 0, 0, 4, 0, 6, 36, 6, 38, 2, 79, 0, 0, 0, 6, 1, 92, 127, 55, 255, 255, 255, 199, 0, 0, 4, 52, 6, 45, 6, 38, 2, 79, 0, 0, 0, 7, 1, 93, 0, 137, 0, 61, 255, 255, 255, 199, 0, 0, 4, 27, 5, 254, 6, 38, 2, 79, 0, 0, 0, 6, 1, 97, 22, 55, 255, 255, 255, 199, 0, 0, 4, 0, 6, 104, 6, 38, 2, 79, 0, 0, 0, 7, 1, 98, 0, 22, 0, 128, 255, 255, 255, 199, 0, 0, 4, 80, 6, 243, 6, 38, 2, 79, 0, 0, 0, 7, 2, 107, 0, 4, 0, 130, 255, 255, 0, 89, 254, 72, 4, 55, 4, 160, 6, 38, 2, 81, 0, 0, 0, 6, 1, 102, 40, 253, 255, 255, 0, 89, 0, 0, 4, 97, 5, 255, 6, 38, 2, 83, 0, 0, 0, 6, 1, 90, 199, 54, 255, 255, 0, 89, 0, 0, 4, 97, 5, 252, 6, 38, 2, 83, 0, 0, 0, 6, 1, 91, 107, 51, 255, 255, 0, 89, 0, 0, 4, 97, 6, 36, 6, 38, 2, 83, 0, 0, 0, 6, 1, 92, 98, 55, 255, 255, 0, 89, 0, 0, 4, 97, 5, 254, 6, 38, 2, 83, 0, 0, 0, 6, 1, 97, 250, 55, 255, 255, 0, 106, 0, 0, 4, 84, 5, 227, 6, 38, 2, 87, 0, 0, 0, 6, 1, 90, 184, 26, 255, 255, 0, 106, 0, 0, 4, 84, 5, 224, 6, 38, 2, 87, 0, 0, 0, 7, 1, 91, 0, 157, 0, 23, 255, 255, 0, 106, 0, 0, 4, 84, 6, 8, 6, 38, 2, 87, 0, 0, 0, 7, 1, 92, 0, 148, 0, 27, 255, 255, 0, 106, 0, 0, 4, 84, 5, 226, 6, 38, 2, 87, 0, 0, 0, 6, 1, 97, 43, 27, 255, 255, 0, 84, 0, 0, 4, 87, 6, 45, 6, 38, 2, 92, 0, 0, 0, 7, 1, 93, 0, 172, 0, 61, 255, 255, 0, 113, 255, 237, 4, 50, 5, 255, 6, 38, 2, 93, 0, 0, 0, 6, 1, 90, 196, 54, 255, 255, 0, 113, 255, 237, 4, 52, 5, 252, 6, 38, 2, 93, 0, 0, 0, 7, 1, 91, 0, 137, 0, 51, 255, 255, 0, 113, 255, 237, 4, 50, 6, 36, 6, 38, 2, 93, 0, 0, 0, 6, 1, 92, 109, 55, 255, 255, 0, 113, 255, 237, 4, 50, 6, 45, 6, 38, 2, 93, 0, 0, 0, 7, 1, 93, 0, 133, 0, 61, 255, 255, 0, 113, 255, 237, 4, 60, 5, 254, 6, 38, 2, 93, 0, 0, 0, 6, 1, 97, 55, 55, 255, 255, 0, 134, 255, 238, 4, 109, 5, 255, 6, 38, 2, 98, 0, 0, 0, 6, 1, 90, 192, 54, 255, 255, 0, 134, 255, 238, 4, 109, 5, 252, 6, 38, 2, 98, 0, 0, 0, 7, 1, 91, 0, 165, 0, 51, 255, 255, 0, 134, 255, 238, 4, 109, 6, 36, 6, 38, 2, 98, 0, 0, 0, 7, 1, 92, 0, 156, 0, 55, 255, 255, 0, 134, 255, 238, 4, 109, 5, 254, 6, 38, 2, 98, 0, 0, 0, 6, 1, 97, 51, 55, 255, 255, 0, 178, 0, 0, 4, 199, 5, 252, 6, 38, 2, 102, 0, 0, 0, 6, 1, 91, 116, 51, 255, 255, 255, 199, 0, 0, 4, 76, 5, 214, 6, 38, 2, 79, 0, 0, 0, 6, 1, 94, 23, 38, 255, 255, 255, 199, 0, 0, 4, 0, 6, 39, 6, 38, 2, 79, 0, 0, 0, 6, 1, 95, 2, 116, 0, 2, 255, 199, 254, 79, 4, 0, 4, 141, 0, 36, 0, 41, 0, 0, 97, 51, 3, 35, 1, 51, 19, 33, 19, 6, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 39, 6, 6, 39, 38, 38, 55, 54, 54, 55, 54, 54, 55, 1, 19, 55, 23, 19, 3, 220, 36, 254, 161, 253, 102, 192, 156, 1, 245, 52, 39, 74, 29, 29, 37, 1, 1, 21, 21, 22, 66, 42, 44, 85, 38, 21, 23, 50, 26, 31, 29, 3, 4, 39, 28, 28, 66, 32, 253, 150, 225, 57, 21, 83, 4, 141, 251, 115, 1, 23, 255, 0, 23, 56, 34, 34, 80, 46, 39, 66, 23, 25, 28, 1, 1, 20, 22, 123, 11, 16, 2, 1, 33, 33, 39, 67, 28, 27, 45, 17, 1, 177, 1, 147, 102, 102, 254, 109, 255, 255, 0, 89, 255, 237, 4, 55, 5, 252, 6, 38, 2, 81, 0, 0, 0, 6, 1, 91, 121, 51, 255, 255, 0, 89, 255, 237, 4, 55, 6, 36, 6, 38, 2, 81, 0, 0, 0, 6, 1, 92, 112, 55, 255, 255, 0, 89, 255, 237, 4, 55, 6, 38, 6, 38, 2, 81, 0, 0, 0, 6, 1, 100, 254, 56, 255, 255, 0, 73, 0, 0, 4, 61, 6, 38, 6, 38, 2, 82, 0, 0, 0, 6, 1, 100, 199, 56, 255, 255, 0, 89, 0, 0, 4, 97, 5, 214, 6, 38, 2, 83, 0, 0, 0, 6, 1, 94, 251, 38, 255, 255, 0, 89, 0, 0, 4, 97, 6, 39, 6, 38, 2, 83, 0, 0, 0, 6, 1, 95, 2, 116, 255, 255, 0, 89, 0, 0, 4, 97, 5, 247, 6, 38, 2, 83, 0, 0, 0, 6, 1, 96, 239, 55, 0, 1, 0, 89, 254, 79, 4, 97, 4, 141, 0, 41, 0, 0, 65, 55, 33, 19, 33, 55, 33, 3, 33, 6, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 39, 6, 6, 39, 38, 38, 55, 54, 54, 55, 54, 54, 55, 39, 51, 55, 33, 19, 3, 156, 27, 253, 209, 58, 2, 131, 28, 252, 195, 203, 2, 5, 33, 61, 23, 24, 29, 1, 1, 22, 22, 22, 65, 41, 44, 85, 38, 21, 23, 50, 26, 31, 29, 3, 4, 39, 28, 28, 66, 32, 5, 136, 27, 253, 117, 66, 2, 14, 152, 1, 78, 153, 251, 115, 22, 53, 31, 32, 72, 40, 40, 67, 23, 24, 27, 1, 1, 20, 22, 123, 11, 16, 2, 1, 33, 33, 39, 67, 28, 27, 45, 17, 3, 151, 1, 119, 255, 255, 0, 89, 0, 0, 4, 97, 6, 38, 6, 38, 2, 83, 0, 0, 0, 6, 1, 100, 240, 56, 255, 255, 0, 100, 255, 239, 4, 71, 6, 36, 6, 38, 2, 85, 0, 0, 0, 6, 1, 92, 122, 55, 255, 255, 0, 100, 255, 239, 4, 71, 6, 39, 6, 38, 2, 85, 0, 0, 0, 6, 1, 95, 26, 116, 255, 255, 0, 100, 254, 43, 4, 71, 4, 160, 6, 38, 2, 85, 0, 0, 0, 7, 1, 104, 0, 100, 254, 213, 255, 255, 0, 46, 0, 0, 4, 62, 6, 36, 6, 38, 2, 86, 0, 0, 0, 6, 1, 92, 82, 55, 255, 255, 0, 106, 0, 0, 4, 84, 6, 17, 6, 38, 2, 87, 0, 0, 0, 7, 1, 93, 0, 151, 0, 33, 255, 255, 0, 106, 0, 0, 4, 97, 5, 186, 6, 38, 2, 87, 0, 0, 0, 6, 1, 94, 44, 10, 255, 255, 0, 106, 0, 0, 4, 84, 6, 11, 6, 38, 2, 87, 0, 0, 0, 6, 1, 95, 27, 88, 0, 1, 0, 106, 254, 79, 4, 84, 4, 140, 0, 41, 0, 0, 65, 7, 33, 3, 33, 7, 33, 6, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 39, 6, 6, 39, 38, 38, 55, 54, 54, 55, 54, 54, 55, 39, 51, 55, 33, 19, 33, 55, 1, 52, 28, 1, 50, 147, 254, 207, 28, 1, 232, 33, 61, 23, 24, 29, 1, 1, 22, 21, 22, 65, 42, 44, 85, 38, 21, 23, 50, 26, 31, 29, 3, 4, 39, 28, 28, 66, 32, 5, 129, 29, 254, 198, 146, 1, 57, 29, 4, 140, 161, 252, 181, 160, 22, 53, 31, 32, 72, 40, 39, 66, 24, 25, 27, 1, 1, 20, 22, 123, 11, 16, 2, 1, 33, 33, 39, 67, 28, 27, 45, 17, 3, 160, 3, 75, 161, 0, 255, 255, 0, 106, 0, 0, 4, 84, 5, 219, 6, 38, 2, 87, 0, 0, 0, 6, 1, 96, 16, 27, 255, 255, 0, 104, 255, 238, 4, 213, 6, 36, 6, 38, 2, 88, 0, 0, 0, 7, 1, 92, 1, 88, 0, 55, 255, 255, 0, 70, 254, 52, 4, 167, 4, 141, 6, 38, 2, 89, 0, 0, 0, 7, 1, 104, 0, 53, 254, 222, 255, 255, 0, 98, 0, 0, 3, 228, 5, 252, 6, 38, 2, 90, 0, 0, 0, 7, 1, 91, 255, 55, 0, 51, 255, 255, 0, 98, 254, 54, 3, 228, 4, 141, 6, 38, 2, 90, 0, 0, 0, 7, 1, 104, 0, 51, 254, 224, 255, 255, 0, 98, 0, 0, 3, 228, 4, 141, 6, 38, 2, 90, 0, 0, 0, 7, 0, 109, 0, 75, 254, 119, 255, 255, 0, 98, 0, 0, 3, 228, 4, 141, 6, 38, 2, 90, 0, 0, 0, 7, 1, 96, 255, 158, 253, 55, 255, 255, 0, 84, 0, 0, 4, 83, 5, 252, 6, 38, 2, 92, 0, 0, 0, 7, 1, 91, 0, 157, 0, 51, 255, 255, 0, 84, 254, 50, 4, 83, 4, 141, 6, 38, 2, 92, 0, 0, 0, 7, 1, 104, 0, 181, 254, 220, 255, 255, 0, 84, 0, 0, 4, 83, 6, 38, 6, 38, 2, 92, 0, 0, 0, 6, 1, 100, 20, 56, 255, 255, 0, 113, 255, 237, 4, 78, 5, 214, 6, 38, 2, 93, 0, 0, 0, 6, 1, 94, 25, 38, 255, 255, 0, 113, 255, 237, 4, 50, 6, 39, 6, 38, 2, 93, 0, 0, 0, 6, 1, 95, 38, 116, 255, 255, 0, 113, 255, 237, 5, 14, 6, 38, 6, 38, 2, 93, 0, 0, 0, 7, 1, 99, 0, 173, 0, 55, 255, 255, 0, 35, 0, 0, 4, 3, 5, 252, 6, 38, 2, 95, 0, 0, 0, 6, 1, 91, 50, 51, 255, 255, 0, 35, 254, 54, 4, 3, 4, 141, 6, 38, 2, 95, 0, 0, 0, 7, 1, 104, 0, 17, 254, 224, 255, 255, 0, 35, 0, 0, 4, 3, 6, 38, 6, 38, 2, 95, 0, 0, 0, 6, 1, 100, 183, 56, 255, 255, 0, 94, 255, 239, 4, 59, 5, 252, 6, 38, 2, 96, 0, 0, 0, 6, 1, 91, 118, 51, 255, 255, 0, 94, 255, 239, 4, 59, 6, 36, 6, 38, 2, 96, 0, 0, 0, 6, 1, 92, 109, 55, 255, 255, 0, 94, 254, 75, 4, 59, 4, 158, 6, 38, 2, 96, 0, 0, 0, 6, 1, 102, 69, 0, 255, 255, 0, 94, 255, 239, 4, 59, 6, 38, 6, 38, 2, 96, 0, 0, 0, 6, 1, 100, 251, 56, 255, 255, 0, 161, 0, 0, 4, 170, 6, 38, 6, 38, 2, 97, 0, 0, 0, 6, 1, 100, 2, 56, 255, 255, 0, 134, 255, 238, 4, 109, 6, 45, 6, 38, 2, 98, 0, 0, 0, 7, 1, 93, 0, 180, 0, 61, 255, 255, 0, 134, 255, 238, 4, 109, 5, 214, 6, 38, 2, 98, 0, 0, 0, 6, 1, 94, 52, 38, 255, 255, 0, 134, 255, 238, 4, 109, 6, 39, 6, 38, 2, 98, 0, 0, 0, 6, 1, 95, 34, 116, 255, 255, 0, 134, 255, 238, 4, 109, 6, 104, 6, 38, 2, 98, 0, 0, 0, 7, 1, 98, 0, 51, 0, 128, 255, 255, 0, 134, 255, 238, 5, 10, 6, 38, 6, 38, 2, 98, 0, 0, 0, 7, 1, 99, 0, 169, 0, 55, 0, 1, 0, 134, 254, 140, 4, 109, 4, 141, 0, 60, 0, 0, 65, 35, 3, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 19, 35, 3, 6, 22, 23, 22, 22, 23, 48, 48, 49, 6, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 51, 22, 54, 55, 39, 6, 6, 35, 34, 38, 55, 54, 54, 55, 54, 54, 55, 54, 54, 55, 54, 54, 55, 4, 109, 179, 134, 10, 51, 39, 38, 100, 58, 55, 82, 26, 26, 21, 6, 131, 177, 132, 8, 46, 47, 47, 136, 82, 17, 29, 11, 9, 12, 1, 1, 25, 24, 22, 62, 39, 44, 85, 38, 21, 23, 50, 26, 31, 29, 3, 3, 22, 17, 16, 43, 23, 60, 103, 39, 40, 53, 10, 4, 141, 252, 243, 57, 93, 33, 33, 35, 2, 1, 39, 33, 33, 90, 53, 3, 13, 252, 244, 86, 142, 53, 52, 62, 5, 19, 41, 22, 21, 46, 25, 42, 70, 24, 21, 25, 1, 20, 22, 123, 11, 14, 34, 33, 28, 51, 22, 23, 38, 16, 21, 71, 48, 48, 118, 68, 0, 255, 255, 0, 145, 0, 0, 4, 252, 6, 36, 6, 38, 2, 100, 0, 0, 0, 6, 1, 92, 125, 55, 255, 255, 0, 178, 0, 0, 4, 199, 6, 36, 6, 38, 2, 102, 0, 0, 0, 6, 1, 92, 107, 55, 255, 255, 0, 178, 0, 0, 4, 199, 5, 254, 6, 38, 2, 102, 0, 0, 0, 6, 1, 97, 2, 55, 255, 255, 0, 85, 0, 0, 4, 98, 5, 252, 6, 38, 2, 103, 0, 0, 0, 6, 1, 91, 111, 51, 255, 255, 0, 85, 0, 0, 4, 98, 5, 247, 6, 38, 2, 103, 0, 0, 0, 6, 1, 96, 38, 55, 255, 255, 0, 85, 0, 0, 4, 98, 6, 38, 6, 38, 2, 103, 0, 0, 0, 6, 1, 100, 39, 56, 255, 255, 255, 226, 0, 0, 4, 2, 6, 122, 6, 38, 0, 2, 0, 0, 0, 7, 1, 120, 254, 202, 0, 0, 255, 255, 0, 81, 0, 0, 4, 211, 6, 122, 4, 38, 0, 6, 50, 0, 0, 7, 1, 120, 253, 199, 0, 0, 255, 255, 0, 64, 0, 0, 4, 230, 6, 124, 4, 38, 0, 9, 50, 0, 0, 7, 1, 120, 253, 182, 0, 2, 255, 255, 0, 48, 0, 0, 4, 198, 6, 124, 4, 38, 0, 10, 50, 0, 0, 7, 1, 120, 253, 166, 0, 2, 255, 255, 0, 112, 255, 234, 4, 119, 6, 122, 4, 38, 0, 16, 10, 0, 0, 7, 1, 120, 253, 231, 0, 0, 255, 255, 255, 247, 0, 0, 5, 35, 6, 122, 4, 38, 0, 26, 50, 0, 0, 7, 1, 120, 253, 109, 0, 0, 255, 255, 0, 3, 0, 0, 4, 130, 6, 122, 4, 38, 1, 132, 10, 0, 0, 7, 1, 120, 253, 227, 0, 0, 255, 255, 0, 233, 255, 235, 4, 50, 6, 122, 6, 38, 1, 141, 0, 0, 0, 6, 1, 121, 217, 187, 255, 255, 255, 226, 0, 0, 4, 2, 5, 176, 6, 6, 0, 2, 0, 0, 255, 255, 0, 62, 0, 0, 4, 114, 5, 176, 6, 6, 0, 3, 0, 0, 255, 255, 0, 72, 0, 0, 4, 161, 5, 176, 6, 6, 0, 6, 0, 0, 255, 255, 0, 19, 0, 0, 4, 129, 5, 176, 6, 6, 0, 27, 0, 0, 255, 255, 0, 32, 0, 0, 4, 180, 5, 176, 6, 6, 0, 9, 0, 0, 255, 255, 0, 64, 0, 0, 4, 148, 5, 176, 6, 6, 0, 10, 0, 0, 255, 255, 0, 62, 0, 0, 4, 252, 5, 176, 6, 6, 0, 12, 0, 0, 255, 255, 0, 39, 0, 0, 4, 192, 5, 176, 6, 6, 0, 14, 0, 0, 255, 255, 0, 34, 0, 0, 4, 179, 5, 176, 6, 6, 0, 15, 0, 0, 255, 255, 0, 102, 255, 234, 4, 109, 5, 198, 6, 6, 0, 16, 0, 0, 255, 255, 0, 81, 0, 0, 4, 167, 5, 176, 6, 6, 0, 17, 0, 0, 255, 255, 0, 194, 0, 0, 4, 247, 5, 176, 6, 6, 0, 21, 0, 0, 255, 255, 0, 212, 0, 0, 4, 241, 5, 176, 6, 6, 0, 26, 0, 0, 255, 255, 255, 241, 0, 0, 4, 238, 5, 176, 6, 6, 0, 25, 0, 0, 255, 255, 0, 64, 0, 0, 4, 148, 7, 34, 6, 38, 0, 10, 0, 0, 0, 7, 1, 97, 0, 26, 1, 91, 255, 255, 0, 212, 0, 0, 4, 241, 7, 33, 6, 38, 0, 26, 0, 0, 0, 7, 1, 97, 0, 66, 1, 90, 255, 255, 0, 103, 255, 234, 4, 37, 6, 126, 6, 38, 1, 133, 0, 0, 0, 6, 1, 120, 16, 4, 255, 255, 0, 80, 255, 234, 4, 79, 6, 125, 6, 38, 1, 137, 0, 0, 0, 6, 1, 120, 20, 3, 255, 255, 0, 54, 254, 97, 4, 31, 6, 126, 6, 38, 1, 139, 0, 0, 0, 6, 1, 120, 28, 4, 255, 255, 0, 233, 255, 235, 3, 221, 6, 106, 6, 38, 1, 141, 0, 0, 0, 6, 1, 120, 11, 240, 255, 255, 0, 121, 255, 233, 4, 42, 6, 122, 6, 38, 1, 149, 0, 0, 0, 6, 1, 121, 182, 187, 255, 255, 0, 76, 0, 0, 4, 137, 4, 58, 6, 6, 0, 79, 0, 0, 255, 255, 0, 99, 255, 233, 4, 48, 4, 81, 6, 6, 0, 42, 0, 0, 255, 255, 0, 6, 254, 96, 4, 70, 4, 58, 6, 6, 1, 107, 0, 0, 255, 255, 0, 174, 0, 0, 4, 148, 4, 59, 6, 6, 0, 49, 0, 0, 255, 255, 0, 6, 0, 0, 4, 152, 4, 58, 6, 6, 0, 51, 0, 0, 255, 255, 0, 233, 255, 235, 4, 22, 5, 203, 6, 38, 1, 141, 0, 0, 0, 6, 1, 97, 17, 4, 255, 255, 0, 121, 255, 233, 4, 42, 5, 203, 6, 38, 1, 149, 0, 0, 0, 6, 1, 97, 239, 4, 255, 255, 0, 99, 255, 233, 4, 48, 6, 126, 6, 38, 0, 42, 0, 0, 0, 6, 1, 120, 10, 4, 255, 255, 0, 121, 255, 233, 4, 42, 6, 106, 6, 38, 1, 149, 0, 0, 0, 6, 1, 120, 233, 240, 255, 255, 0, 54, 255, 233, 4, 113, 6, 106, 6, 38, 1, 152, 0, 0, 0, 6, 1, 120, 18, 240, 255, 255, 0, 72, 0, 0, 4, 161, 7, 34, 6, 38, 0, 6, 0, 0, 0, 7, 1, 97, 0, 76, 1, 91, 255, 255, 0, 71, 0, 0, 4, 165, 7, 32, 6, 38, 1, 123, 0, 0, 0, 7, 1, 91, 0, 195, 1, 87, 0, 1, 0, 83, 255, 234, 4, 141, 5, 198, 0, 79, 0, 0, 65, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 39, 35, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 38, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 23, 51, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 22, 23, 22, 22, 3, 103, 7, 60, 45, 45, 110, 56, 64, 101, 35, 36, 41, 3, 183, 2, 70, 63, 62, 167, 96, 90, 180, 73, 73, 96, 7, 6, 63, 55, 55, 143, 74, 45, 95, 38, 19, 30, 10, 12, 10, 3, 6, 57, 43, 43, 106, 54, 63, 91, 31, 30, 31, 3, 184, 3, 62, 56, 57, 158, 94, 89, 176, 71, 72, 92, 6, 5, 64, 55, 54, 140, 71, 47, 99, 39, 18, 30, 10, 11, 10, 1, 120, 60, 91, 30, 30, 29, 1, 1, 43, 37, 37, 103, 63, 98, 162, 57, 58, 65, 1, 2, 50, 51, 50, 151, 98, 90, 139, 53, 53, 77, 27, 16, 42, 30, 13, 33, 20, 21, 51, 31, 58, 91, 32, 31, 33, 1, 2, 45, 38, 38, 101, 58, 94, 159, 59, 58, 68, 2, 2, 54, 53, 53, 152, 95, 87, 133, 50, 51, 74, 27, 18, 44, 31, 15, 35, 21, 23, 54, 255, 255, 0, 64, 0, 0, 4, 148, 5, 176, 6, 6, 0, 10, 0, 0, 255, 255, 0, 64, 0, 0, 4, 148, 7, 34, 6, 38, 0, 10, 0, 0, 0, 7, 1, 97, 0, 26, 1, 91, 255, 255, 0, 63, 255, 234, 4, 140, 5, 176, 6, 6, 0, 11, 0, 0, 255, 255, 0, 59, 0, 0, 5, 6, 5, 176, 6, 6, 2, 113, 0, 0, 255, 255, 0, 62, 0, 0, 4, 252, 7, 14, 6, 38, 0, 12, 0, 0, 0, 7, 1, 91, 0, 190, 1, 69, 255, 255, 0, 1, 255, 233, 5, 43, 7, 75, 6, 38, 1, 168, 0, 0, 0, 7, 1, 95, 0, 112, 1, 152, 255, 255, 255, 226, 0, 0, 4, 2, 5, 176, 6, 6, 0, 2, 0, 0, 255, 255, 0, 62, 0, 0, 4, 114, 5, 176, 6, 6, 0, 3, 0, 0, 255, 255, 0, 71, 0, 0, 4, 165, 5, 176, 6, 6, 1, 123, 0, 0, 255, 255, 0, 72, 0, 0, 4, 161, 5, 176, 6, 6, 0, 6, 0, 0, 255, 255, 0, 53, 0, 0, 4, 160, 7, 63, 6, 38, 1, 166, 0, 0, 0, 7, 1, 95, 0, 71, 1, 140, 255, 255, 0, 39, 0, 0, 4, 192, 5, 176, 6, 6, 0, 14, 0, 0, 255, 255, 0, 32, 0, 0, 4, 180, 5, 176, 6, 6, 0, 9, 0, 0, 255, 255, 0, 102, 255, 234, 4, 109, 5, 198, 6, 6, 0, 16, 0, 0, 255, 255, 0, 53, 0, 0, 4, 159, 5, 176, 6, 6, 1, 128, 0, 0, 255, 255, 0, 81, 0, 0, 4, 167, 5, 176, 6, 6, 0, 17, 0, 0, 255, 255, 0, 100, 255, 233, 4, 133, 5, 198, 6, 6, 0, 4, 0, 0, 255, 255, 0, 194, 0, 0, 4, 247, 5, 176, 6, 6, 0, 21, 0, 0, 255, 255, 0, 80, 0, 0, 4, 131, 5, 176, 6, 6, 1, 130, 0, 0, 255, 255, 255, 241, 0, 0, 4, 238, 5, 176, 6, 6, 0, 25, 0, 0, 255, 255, 0, 97, 255, 236, 4, 15, 4, 80, 6, 6, 0, 28, 0, 0, 255, 255, 0, 108, 255, 234, 4, 43, 4, 80, 6, 6, 0, 32, 0, 0, 255, 255, 0, 55, 0, 0, 4, 92, 5, 244, 6, 38, 1, 185, 0, 0, 0, 6, 1, 95, 9, 65, 255, 255, 0, 99, 255, 233, 4, 48, 4, 81, 6, 6, 0, 42, 0, 0, 255, 255, 255, 247, 254, 96, 4, 28, 4, 79, 6, 6, 0, 43, 0, 0, 0, 1, 0, 121, 255, 233, 4, 44, 4, 81, 0, 57, 0, 0, 101, 38, 38, 39, 38, 38, 39, 38, 52, 55, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 23, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 7, 6, 6, 7, 6, 6, 2, 21, 53, 77, 27, 27, 32, 7, 8, 5, 5, 10, 55, 45, 45, 127, 83, 52, 82, 29, 28, 28, 2, 170, 4, 54, 50, 51, 142, 84, 115, 192, 68, 74, 92, 14, 5, 6, 7, 13, 18, 68, 51, 46, 124, 77, 79, 160, 66, 66, 90, 9, 171, 11, 56, 39, 40, 96, 129, 1, 36, 29, 28, 77, 43, 42, 90, 43, 42, 73, 142, 56, 56, 67, 3, 2, 38, 32, 33, 86, 50, 1, 85, 143, 52, 51, 60, 2, 3, 83, 72, 74, 204, 112, 43, 59, 116, 52, 69, 116, 41, 38, 45, 2, 2, 51, 48, 47, 135, 83, 1, 49, 79, 27, 28, 29, 255, 255, 255, 228, 254, 72, 4, 188, 4, 58, 6, 6, 0, 52, 0, 0, 255, 255, 0, 6, 0, 0, 4, 152, 4, 58, 6, 6, 0, 51, 0, 0, 255, 255, 0, 108, 255, 234, 4, 43, 5, 225, 6, 38, 0, 32, 0, 0, 0, 6, 1, 97, 22, 26, 255, 255, 0, 73, 0, 0, 4, 95, 5, 201, 6, 38, 1, 181, 0, 0, 0, 6, 1, 91, 123, 0, 255, 255, 0, 124, 255, 234, 4, 40, 4, 79, 6, 6, 0, 46, 0, 0, 255, 255, 0, 92, 0, 0, 3, 233, 5, 198, 6, 6, 0, 36, 0, 0, 255, 255, 0, 92, 0, 0, 4, 68, 5, 203, 6, 38, 1, 109, 0, 0, 0, 6, 1, 97, 63, 4, 255, 255, 0, 35, 254, 73, 3, 196, 5, 198, 6, 6, 0, 37, 0, 0, 255, 255, 0, 54, 0, 0, 4, 171, 5, 201, 6, 38, 1, 186, 0, 0, 0, 6, 1, 91, 49, 0, 255, 255, 255, 228, 254, 72, 4, 188, 5, 245, 6, 38, 0, 52, 0, 0, 0, 6, 1, 95, 40, 66, 255, 255, 1, 128, 255, 243, 6, 164, 5, 176, 6, 38, 0, 91, 0, 0, 0, 7, 0, 91, 3, 113, 0, 0, 255, 255, 0, 1, 254, 73, 4, 122, 5, 234, 6, 38, 1, 113, 0, 0, 0, 6, 1, 100, 93, 252, 255, 255, 2, 24, 4, 7, 3, 113, 6, 22, 6, 6, 0, 109, 0, 0, 255, 255, 0, 39, 0, 0, 4, 192, 7, 32, 6, 38, 0, 14, 0, 0, 0, 7, 1, 91, 0, 184, 1, 87, 255, 255, 255, 242, 0, 0, 4, 117, 5, 222, 6, 38, 0, 40, 0, 0, 0, 7, 1, 91, 0, 167, 0, 21, 255, 255, 255, 226, 254, 133, 4, 2, 5, 176, 6, 38, 0, 2, 0, 0, 0, 6, 1, 114, 36, 0, 255, 255, 0, 97, 254, 133, 4, 15, 4, 80, 6, 38, 0, 28, 0, 0, 0, 6, 1, 114, 235, 0, 255, 255, 0, 5, 255, 234, 4, 109, 6, 86, 6, 38, 0, 16, 0, 0, 0, 7, 2, 108, 253, 192, 0, 146, 255, 255, 0, 72, 0, 0, 4, 161, 7, 35, 6, 38, 0, 6, 0, 0, 0, 7, 1, 90, 255, 217, 1, 90, 255, 255, 0, 53, 0, 0, 4, 160, 7, 23, 6, 38, 1, 166, 0, 0, 0, 7, 1, 90, 255, 203, 1, 78, 255, 255, 0, 108, 255, 234, 4, 43, 5, 226, 6, 38, 0, 32, 0, 0, 0, 6, 1, 90, 163, 25, 255, 255, 0, 55, 0, 0, 4, 92, 5, 204, 6, 38, 1, 185, 0, 0, 0, 6, 1, 90, 141, 3, 255, 255, 0, 132, 0, 0, 4, 229, 5, 176, 6, 6, 1, 131, 0, 0, 255, 255, 0, 85, 254, 40, 4, 113, 4, 59, 6, 6, 1, 151, 0, 0, 255, 255, 0, 177, 0, 0, 5, 79, 7, 66, 6, 38, 1, 226, 0, 0, 0, 7, 1, 119, 4, 115, 1, 84, 255, 255, 0, 166, 0, 0, 4, 143, 6, 26, 6, 38, 1, 227, 0, 0, 0, 7, 1, 119, 4, 24, 0, 44, 255, 255, 0, 46, 254, 47, 4, 147, 5, 197, 6, 38, 1, 165, 0, 0, 0, 6, 2, 110, 223, 150, 255, 255, 0, 79, 254, 57, 4, 58, 4, 78, 6, 38, 1, 184, 0, 0, 0, 6, 2, 110, 248, 160, 255, 255, 0, 100, 254, 57, 4, 133, 5, 198, 6, 38, 0, 4, 0, 0, 0, 6, 2, 110, 238, 160, 255, 255, 0, 122, 254, 57, 4, 44, 4, 81, 6, 38, 0, 30, 0, 0, 0, 6, 2, 110, 1, 160, 255, 255, 0, 212, 0, 0, 4, 241, 5, 176, 6, 6, 0, 26, 0, 0, 255, 255, 0, 157, 254, 96, 4, 204, 4, 58, 6, 6, 1, 135, 0, 0, 255, 255, 0, 64, 0, 0, 4, 148, 5, 176, 6, 6, 0, 10, 0, 0, 255, 255, 255, 176, 0, 0, 4, 254, 7, 75, 6, 38, 1, 164, 0, 0, 0, 7, 1, 95, 0, 93, 1, 152, 255, 255, 255, 163, 0, 0, 4, 193, 5, 244, 6, 38, 1, 183, 0, 0, 0, 6, 1, 95, 9, 65, 255, 255, 0, 64, 0, 0, 4, 148, 5, 176, 6, 6, 0, 10, 0, 0, 255, 255, 255, 226, 0, 0, 4, 87, 7, 75, 6, 38, 0, 2, 0, 0, 0, 7, 1, 95, 0, 95, 1, 152, 255, 255, 0, 97, 255, 236, 4, 27, 6, 9, 6, 38, 0, 28, 0, 0, 0, 6, 1, 95, 35, 86, 255, 255, 255, 226, 0, 0, 4, 91, 7, 34, 6, 38, 0, 2, 0, 0, 0, 7, 1, 97, 0, 86, 1, 91, 255, 255, 0, 97, 255, 236, 4, 31, 5, 224, 6, 38, 0, 28, 0, 0, 0, 6, 1, 97, 26, 25, 255, 255, 255, 178, 0, 0, 5, 6, 5, 176, 6, 6, 0, 72, 0, 0, 255, 255, 255, 241, 255, 235, 4, 163, 4, 80, 6, 6, 0, 73, 0, 0, 255, 255, 0, 72, 0, 0, 4, 161, 7, 75, 6, 38, 0, 6, 0, 0, 0, 7, 1, 95, 0, 85, 1, 152, 255, 255, 0, 108, 255, 234, 4, 43, 6, 10, 6, 38, 0, 32, 0, 0, 0, 6, 1, 95, 31, 87, 255, 255, 0, 77, 255, 234, 4, 105, 6, 244, 6, 38, 2, 16, 0, 0, 0, 7, 1, 97, 0, 58, 1, 45, 255, 255, 0, 138, 255, 235, 4, 63, 4, 79, 6, 6, 0, 81, 0, 0, 255, 255, 0, 138, 255, 235, 4, 63, 5, 225, 6, 38, 0, 81, 0, 0, 0, 6, 1, 97, 55, 26, 255, 255, 255, 176, 0, 0, 4, 254, 7, 34, 6, 38, 1, 164, 0, 0, 0, 7, 1, 97, 0, 84, 1, 91, 255, 255, 255, 163, 0, 0, 4, 193, 5, 203, 6, 38, 1, 183, 0, 0, 0, 6, 1, 97, 0, 4, 255, 255, 0, 46, 255, 233, 4, 147, 7, 55, 6, 38, 1, 165, 0, 0, 0, 7, 1, 97, 0, 70, 1, 112, 255, 255, 0, 79, 255, 236, 4, 58, 5, 223, 6, 38, 1, 184, 0, 0, 0, 6, 1, 97, 25, 24, 255, 255, 0, 53, 0, 0, 4, 160, 6, 238, 6, 38, 1, 166, 0, 0, 0, 7, 1, 94, 0, 63, 1, 62, 255, 255, 0, 55, 0, 0, 4, 92, 5, 164, 6, 38, 1, 185, 0, 0, 0, 6, 1, 94, 1, 244, 255, 255, 0, 53, 0, 0, 4, 160, 7, 22, 6, 38, 1, 166, 0, 0, 0, 7, 1, 97, 0, 62, 1, 79, 255, 255, 0, 55, 0, 0, 4, 92, 5, 203, 6, 38, 1, 185, 0, 0, 0, 6, 1, 97, 0, 4, 255, 255, 0, 102, 255, 234, 4, 109, 7, 55, 6, 38, 0, 16, 0, 0, 0, 7, 1, 97, 0, 93, 1, 112, 255, 255, 0, 99, 255, 233, 4, 48, 5, 224, 6, 38, 0, 42, 0, 0, 0, 6, 1, 97, 16, 25, 255, 255, 0, 95, 255, 234, 4, 102, 5, 198, 6, 6, 1, 224, 0, 0, 255, 255, 0, 68, 255, 233, 4, 23, 4, 80, 6, 6, 1, 225, 0, 0, 255, 255, 0, 95, 255, 234, 4, 102, 7, 29, 6, 38, 1, 224, 0, 0, 0, 7, 1, 97, 0, 90, 1, 86, 255, 255, 0, 68, 255, 233, 4, 23, 5, 252, 6, 38, 1, 225, 0, 0, 0, 6, 1, 97, 230, 53, 255, 255, 0, 78, 255, 233, 4, 105, 7, 56, 6, 38, 1, 176, 0, 0, 0, 7, 1, 97, 0, 60, 1, 113, 255, 255, 0, 80, 255, 233, 4, 25, 5, 224, 6, 38, 1, 200, 0, 0, 0, 6, 1, 97, 253, 25, 255, 255, 0, 1, 255, 233, 5, 43, 6, 250, 6, 38, 1, 168, 0, 0, 0, 7, 1, 94, 0, 104, 1, 74, 255, 255, 255, 228, 254, 72, 4, 188, 5, 165, 6, 38, 0, 52, 0, 0, 0, 6, 1, 94, 32, 245, 255, 255, 0, 1, 255, 233, 5, 43, 7, 34, 6, 38, 1, 168, 0, 0, 0, 7, 1, 97, 0, 103, 1, 91, 255, 255, 255, 228, 254, 72, 4, 188, 5, 204, 6, 38, 0, 52, 0, 0, 0, 6, 1, 97, 31, 5, 255, 255, 0, 1, 255, 233, 5, 62, 7, 74, 6, 38, 1, 168, 0, 0, 0, 7, 1, 99, 0, 221, 1, 91, 255, 255, 255, 228, 254, 72, 4, 246, 5, 244, 6, 38, 0, 52, 0, 0, 0, 7, 1, 99, 0, 149, 0, 5, 255, 255, 0, 228, 0, 0, 4, 157, 7, 34, 6, 38, 1, 170, 0, 0, 0, 7, 1, 97, 255, 253, 1, 91, 255, 255, 0, 159, 0, 0, 4, 92, 5, 203, 6, 38, 1, 194, 0, 0, 0, 6, 1, 97, 38, 4, 255, 255, 0, 35, 255, 254, 4, 192, 7, 34, 6, 38, 1, 174, 0, 0, 0, 7, 1, 97, 0, 40, 1, 91, 255, 255, 0, 35, 255, 255, 4, 115, 5, 203, 6, 38, 1, 198, 0, 0, 0, 6, 1, 97, 77, 4, 255, 255, 255, 241, 254, 71, 4, 238, 5, 176, 6, 38, 0, 25, 0, 0, 0, 7, 2, 111, 1, 255, 0, 0, 255, 255, 0, 6, 254, 71, 4, 152, 4, 58, 6, 38, 0, 51, 0, 0, 0, 7, 2, 111, 1, 145, 0, 0, 255, 255, 0, 118, 255, 235, 4, 160, 6, 0, 6, 6, 0, 31, 0, 0, 255, 255, 255, 202, 254, 71, 4, 160, 5, 176, 6, 38, 1, 167, 0, 0, 0, 7, 2, 111, 1, 195, 0, 0, 255, 255, 255, 210, 254, 71, 4, 107, 4, 58, 6, 38, 1, 187, 0, 0, 0, 7, 2, 111, 1, 190, 0, 0, 255, 255, 255, 226, 254, 165, 4, 2, 5, 176, 6, 38, 0, 2, 0, 0, 0, 7, 1, 101, 4, 185, 0, 0, 255, 255, 0, 97, 254, 165, 4, 15, 4, 80, 6, 38, 0, 28, 0, 0, 0, 7, 1, 101, 4, 127, 0, 0, 255, 255, 255, 226, 0, 0, 4, 14, 7, 197, 6, 38, 0, 2, 0, 0, 0, 7, 1, 118, 4, 222, 1, 82, 255, 255, 0, 97, 255, 236, 4, 15, 6, 131, 6, 38, 0, 28, 0, 0, 0, 7, 1, 118, 4, 162, 0, 16, 255, 255, 255, 226, 0, 0, 5, 192, 7, 238, 6, 38, 0, 2, 0, 0, 0, 7, 2, 76, 0, 48, 1, 89, 255, 255, 0, 97, 255, 236, 5, 133, 6, 172, 6, 38, 0, 28, 0, 0, 0, 6, 2, 76, 245, 23, 255, 255, 255, 226, 0, 0, 4, 108, 7, 221, 6, 38, 0, 2, 0, 0, 0, 7, 2, 75, 0, 36, 1, 72, 255, 255, 0, 97, 255, 236, 4, 49, 6, 155, 6, 38, 0, 28, 0, 0, 0, 6, 2, 75, 233, 6, 255, 255, 255, 226, 0, 0, 5, 120, 8, 3, 6, 38, 0, 2, 0, 0, 0, 7, 2, 74, 0, 54, 1, 53, 255, 255, 0, 97, 255, 236, 5, 61, 6, 194, 6, 38, 0, 28, 0, 0, 0, 6, 2, 74, 251, 244, 255, 255, 255, 226, 0, 0, 4, 102, 8, 46, 6, 38, 0, 2, 0, 0, 0, 7, 2, 73, 0, 40, 1, 54, 255, 255, 0, 97, 255, 236, 4, 43, 6, 237, 6, 38, 0, 28, 0, 0, 0, 6, 2, 73, 237, 245, 255, 255, 255, 226, 254, 165, 4, 60, 7, 72, 6, 38, 0, 2, 0, 0, 0, 39, 1, 92, 0, 191, 1, 91, 0, 7, 1, 101, 4, 185, 0, 0, 255, 255, 0, 97, 254, 165, 4, 15, 6, 6, 6, 38, 0, 28, 0, 0, 0, 39, 1, 92, 0, 131, 0, 25, 0, 7, 1, 101, 4, 127, 0, 0, 255, 255, 255, 226, 0, 0, 4, 78, 7, 222, 6, 38, 0, 2, 0, 0, 0, 7, 2, 105, 0, 58, 1, 84, 255, 255, 0, 97, 255, 236, 4, 19, 6, 156, 6, 38, 0, 28, 0, 0, 0, 6, 2, 105, 255, 18, 255, 255, 255, 226, 0, 0, 4, 88, 8, 4, 6, 38, 0, 2, 0, 0, 0, 7, 2, 77, 0, 68, 1, 122, 255, 255, 0, 97, 255, 236, 4, 28, 6, 194, 6, 38, 0, 28, 0, 0, 0, 6, 2, 77, 8, 56, 255, 255, 255, 226, 0, 0, 4, 59, 8, 75, 6, 38, 0, 2, 0, 0, 0, 7, 2, 104, 0, 44, 1, 73, 255, 255, 0, 97, 255, 236, 4, 15, 7, 9, 6, 38, 0, 28, 0, 0, 0, 6, 2, 104, 241, 7, 255, 255, 255, 226, 0, 0, 4, 107, 8, 32, 6, 38, 0, 2, 0, 0, 0, 7, 2, 109, 0, 15, 1, 81, 255, 255, 0, 97, 255, 236, 4, 48, 6, 222, 6, 38, 0, 28, 0, 0, 0, 6, 2, 109, 212, 15, 255, 255, 255, 226, 254, 165, 4, 87, 7, 75, 6, 38, 0, 2, 0, 0, 0, 39, 1, 95, 0, 95, 1, 152, 0, 7, 1, 101, 4, 185, 0, 0, 255, 255, 0, 97, 254, 165, 4, 27, 6, 9, 6, 38, 0, 28, 0, 0, 0, 38, 1, 95, 35, 86, 0, 7, 1, 101, 4, 127, 0, 0, 255, 255, 0, 72, 254, 175, 4, 161, 5, 176, 6, 38, 0, 6, 0, 0, 0, 7, 1, 101, 4, 174, 0, 10, 255, 255, 0, 108, 254, 165, 4, 43, 4, 80, 6, 38, 0, 32, 0, 0, 0, 7, 1, 101, 4, 189, 0, 0, 255, 255, 0, 72, 0, 0, 4, 161, 7, 197, 6, 38, 0, 6, 0, 0, 0, 7, 1, 118, 4, 212, 1, 82, 255, 255, 0, 108, 255, 234, 4, 43, 6, 132, 6, 38, 0, 32, 0, 0, 0, 7, 1, 118, 4, 158, 0, 17, 255, 255, 0, 72, 0, 0, 4, 161, 7, 81, 6, 38, 0, 6, 0, 0, 0, 7, 1, 93, 0, 205, 1, 97, 255, 255, 0, 108, 255, 234, 4, 66, 6, 16, 6, 38, 0, 32, 0, 0, 0, 7, 1, 93, 0, 151, 0, 32, 255, 255, 0, 72, 0, 0, 5, 182, 7, 238, 6, 38, 0, 6, 0, 0, 0, 7, 2, 76, 0, 38, 1, 89, 255, 255, 0, 108, 255, 234, 5, 129, 6, 173, 6, 38, 0, 32, 0, 0, 0, 6, 2, 76, 241, 24, 255, 255, 0, 72, 0, 0, 4, 161, 7, 221, 6, 38, 0, 6, 0, 0, 0, 7, 2, 75, 0, 26, 1, 72, 255, 255, 0, 108, 255, 234, 4, 45, 6, 156, 6, 38, 0, 32, 0, 0, 0, 6, 2, 75, 229, 7, 255, 255, 0, 72, 0, 0, 5, 110, 8, 3, 6, 38, 0, 6, 0, 0, 0, 7, 2, 74, 0, 44, 1, 53, 255, 255, 0, 108, 255, 234, 5, 57, 6, 195, 6, 38, 0, 32, 0, 0, 0, 6, 2, 74, 247, 245, 255, 255, 0, 72, 0, 0, 4, 161, 8, 46, 6, 38, 0, 6, 0, 0, 0, 7, 2, 73, 0, 30, 1, 54, 255, 255, 0, 108, 255, 234, 4, 43, 6, 238, 6, 38, 0, 32, 0, 0, 0, 6, 2, 73, 233, 246, 255, 255, 0, 72, 254, 175, 4, 161, 7, 72, 6, 38, 0, 6, 0, 0, 0, 39, 1, 92, 0, 181, 1, 91, 0, 7, 1, 101, 4, 174, 0, 10, 255, 255, 0, 108, 254, 165, 4, 43, 6, 7, 6, 38, 0, 32, 0, 0, 0, 38, 1, 92, 127, 26, 0, 7, 1, 101, 4, 189, 0, 0, 255, 255, 0, 64, 0, 0, 4, 148, 7, 197, 6, 38, 0, 10, 0, 0, 0, 7, 1, 118, 4, 162, 1, 82, 255, 255, 0, 92, 0, 0, 3, 247, 6, 111, 6, 38, 1, 109, 0, 0, 0, 7, 1, 118, 4, 199, 255, 252, 255, 255, 0, 64, 254, 175, 4, 148, 5, 176, 6, 38, 0, 10, 0, 0, 0, 7, 1, 101, 4, 124, 0, 10, 255, 255, 0, 92, 254, 175, 3, 233, 5, 198, 6, 38, 0, 36, 0, 0, 0, 7, 1, 101, 4, 225, 0, 10, 255, 255, 0, 102, 254, 157, 4, 109, 5, 198, 6, 38, 0, 16, 0, 0, 0, 7, 1, 101, 4, 184, 255, 248, 255, 255, 0, 99, 254, 156, 4, 48, 4, 81, 6, 38, 0, 42, 0, 0, 0, 7, 1, 101, 4, 166, 255, 247, 255, 255, 0, 102, 255, 234, 4, 109, 7, 218, 6, 38, 0, 16, 0, 0, 0, 7, 1, 118, 4, 229, 1, 103, 255, 255, 0, 99, 255, 233, 4, 48, 6, 131, 6, 38, 0, 42, 0, 0, 0, 7, 1, 118, 4, 152, 0, 16, 255, 255, 0, 102, 255, 234, 5, 199, 8, 3, 6, 38, 0, 16, 0, 0, 0, 7, 2, 76, 0, 55, 1, 110, 255, 255, 0, 99, 255, 233, 5, 123, 6, 172, 6, 38, 0, 42, 0, 0, 0, 6, 2, 76, 235, 23, 255, 255, 0, 102, 255, 234, 4, 115, 7, 242, 6, 38, 0, 16, 0, 0, 0, 7, 2, 75, 0, 43, 1, 93, 255, 255, 0, 99, 255, 233, 4, 48, 6, 155, 6, 38, 0, 42, 0, 0, 0, 6, 2, 75, 223, 6, 255, 255, 0, 102, 255, 234, 5, 127, 8, 24, 6, 38, 0, 16, 0, 0, 0, 7, 2, 74, 0, 61, 1, 74, 255, 255, 0, 99, 255, 233, 5, 51, 6, 194, 6, 38, 0, 42, 0, 0, 0, 6, 2, 74, 241, 244, 255, 255, 0, 102, 255, 234, 4, 109, 8, 67, 6, 38, 0, 16, 0, 0, 0, 7, 2, 73, 0, 47, 1, 75, 255, 255, 0, 99, 255, 233, 4, 48, 6, 237, 6, 38, 0, 42, 0, 0, 0, 6, 2, 73, 227, 245, 255, 255, 0, 102, 254, 157, 4, 109, 7, 93, 6, 38, 0, 16, 0, 0, 0, 39, 1, 92, 0, 198, 1, 112, 0, 7, 1, 101, 4, 184, 255, 248, 255, 255, 0, 99, 254, 156, 4, 48, 6, 6, 6, 38, 0, 42, 0, 0, 0, 38, 1, 92, 121, 25, 0, 7, 1, 101, 4, 166, 255, 247, 255, 255, 0, 95, 255, 234, 5, 60, 7, 32, 6, 38, 0, 216, 0, 0, 0, 7, 1, 91, 0, 199, 1, 87, 255, 255, 0, 93, 255, 233, 4, 233, 5, 222, 6, 38, 1, 53, 0, 0, 0, 7, 1, 91, 0, 136, 0, 21, 255, 255, 0, 95, 255, 234, 5, 60, 7, 35, 6, 38, 0, 216, 0, 0, 0, 7, 1, 90, 255, 226, 1, 90, 255, 255, 0, 93, 255, 233, 4, 233, 5, 225, 6, 38, 1, 53, 0, 0, 0, 6, 1, 90, 163, 24, 255, 255, 0, 95, 255, 234, 5, 60, 7, 197, 6, 38, 0, 216, 0, 0, 0, 7, 1, 118, 4, 221, 1, 82, 255, 255, 0, 93, 255, 233, 4, 233, 6, 131, 6, 38, 1, 53, 0, 0, 0, 7, 1, 118, 4, 158, 0, 16, 255, 255, 0, 95, 255, 234, 5, 60, 7, 81, 6, 38, 0, 216, 0, 0, 0, 7, 1, 93, 0, 214, 1, 97, 255, 255, 0, 93, 255, 233, 4, 233, 6, 15, 6, 38, 1, 53, 0, 0, 0, 7, 1, 93, 0, 151, 0, 31, 255, 255, 0, 95, 254, 165, 5, 60, 5, 251, 6, 38, 0, 216, 0, 0, 0, 7, 1, 101, 4, 174, 0, 0, 255, 255, 0, 93, 254, 156, 4, 233, 4, 172, 6, 38, 1, 53, 0, 0, 0, 7, 1, 101, 4, 164, 255, 247, 255, 255, 0, 104, 254, 165, 4, 181, 5, 176, 6, 38, 0, 22, 0, 0, 0, 7, 1, 101, 4, 163, 0, 0, 255, 255, 0, 141, 254, 165, 4, 84, 4, 58, 6, 38, 0, 48, 0, 0, 0, 7, 1, 101, 4, 110, 0, 0, 255, 255, 0, 104, 255, 234, 4, 181, 7, 185, 6, 38, 0, 22, 0, 0, 0, 7, 1, 118, 4, 249, 1, 70, 255, 255, 0, 141, 255, 234, 4, 84, 6, 112, 6, 38, 0, 48, 0, 0, 0, 7, 1, 118, 4, 147, 255, 253, 255, 255, 0, 104, 255, 234, 5, 241, 7, 32, 6, 38, 0, 236, 0, 0, 0, 7, 1, 91, 0, 183, 1, 87, 255, 255, 0, 144, 255, 235, 5, 116, 5, 201, 6, 38, 1, 73, 0, 0, 0, 6, 1, 91, 126, 0, 255, 255, 0, 104, 255, 234, 5, 241, 7, 35, 6, 38, 0, 236, 0, 0, 0, 7, 1, 90, 255, 210, 1, 90, 255, 255, 0, 144, 255, 235, 5, 116, 5, 204, 6, 38, 1, 73, 0, 0, 0, 6, 1, 90, 153, 3, 255, 255, 0, 104, 255, 234, 5, 241, 7, 197, 6, 38, 0, 236, 0, 0, 0, 7, 1, 118, 4, 205, 1, 82, 255, 255, 0, 144, 255, 235, 5, 116, 6, 111, 6, 38, 1, 73, 0, 0, 0, 7, 1, 118, 4, 148, 255, 252, 255, 255, 0, 104, 255, 234, 5, 241, 7, 81, 6, 38, 0, 236, 0, 0, 0, 7, 1, 93, 0, 198, 1, 97, 255, 255, 0, 144, 255, 235, 5, 116, 5, 250, 6, 38, 1, 73, 0, 0, 0, 7, 1, 93, 0, 141, 0, 10, 255, 255, 0, 104, 254, 157, 5, 241, 5, 233, 6, 38, 0, 236, 0, 0, 0, 7, 1, 101, 4, 166, 255, 248, 255, 255, 0, 144, 254, 165, 5, 116, 4, 148, 6, 38, 1, 73, 0, 0, 0, 7, 1, 101, 4, 109, 0, 0, 255, 255, 0, 212, 254, 175, 4, 241, 5, 176, 6, 38, 0, 26, 0, 0, 0, 7, 1, 101, 4, 160, 0, 10, 255, 255, 255, 228, 254, 8, 4, 188, 4, 58, 6, 38, 0, 52, 0, 0, 0, 7, 1, 101, 5, 96, 255, 99, 255, 255, 0, 212, 0, 0, 4, 241, 7, 196, 6, 38, 0, 26, 0, 0, 0, 7, 1, 118, 4, 202, 1, 81, 255, 255, 255, 228, 254, 72, 4, 188, 6, 112, 6, 38, 0, 52, 0, 0, 0, 7, 1, 118, 4, 167, 255, 253, 255, 255, 0, 212, 0, 0, 4, 241, 7, 80, 6, 38, 0, 26, 0, 0, 0, 7, 1, 93, 0, 195, 1, 96, 255, 255, 255, 228, 254, 72, 4, 188, 5, 251, 6, 38, 0, 52, 0, 0, 0, 7, 1, 93, 0, 160, 0, 11, 255, 255, 0, 29, 254, 237, 5, 54, 6, 0, 4, 38, 0, 31, 241, 0, 0, 39, 2, 106, 1, 124, 2, 71, 0, 6, 0, 102, 9, 132, 255, 255, 0, 59, 254, 160, 5, 6, 5, 176, 6, 38, 2, 113, 0, 0, 0, 7, 2, 110, 2, 17, 0, 7, 255, 255, 0, 54, 254, 153, 4, 171, 4, 58, 6, 38, 1, 186, 0, 0, 0, 7, 2, 110, 1, 236, 0, 0, 255, 255, 0, 32, 254, 153, 4, 180, 5, 176, 6, 38, 0, 9, 0, 0, 0, 7, 2, 110, 1, 219, 0, 0, 255, 255, 0, 55, 254, 153, 4, 92, 4, 58, 6, 38, 1, 189, 0, 0, 0, 7, 2, 110, 1, 226, 0, 0, 255, 255, 0, 194, 254, 153, 4, 247, 5, 176, 6, 38, 0, 21, 0, 0, 0, 7, 2, 110, 0, 136, 0, 0, 255, 255, 0, 158, 254, 153, 4, 173, 4, 58, 6, 38, 1, 191, 0, 0, 0, 7, 2, 110, 0, 145, 0, 0, 255, 255, 255, 241, 254, 153, 4, 238, 5, 176, 6, 38, 0, 25, 0, 0, 0, 7, 2, 110, 2, 34, 0, 0, 255, 255, 0, 6, 254, 153, 4, 152, 4, 58, 6, 38, 0, 51, 0, 0, 0, 7, 2, 110, 1, 180, 0, 0, 255, 255, 0, 228, 254, 153, 4, 157, 5, 176, 6, 38, 1, 170, 0, 0, 0, 7, 2, 110, 1, 226, 0, 0, 255, 255, 0, 159, 254, 153, 4, 92, 4, 58, 6, 38, 1, 194, 0, 0, 0, 7, 2, 110, 1, 226, 0, 0, 255, 255, 0, 228, 254, 153, 4, 157, 5, 176, 6, 38, 1, 170, 0, 0, 0, 7, 2, 110, 0, 215, 0, 0, 255, 255, 0, 159, 254, 153, 4, 92, 4, 58, 6, 38, 1, 194, 0, 0, 0, 7, 2, 110, 0, 214, 0, 0, 255, 255, 0, 71, 254, 153, 4, 165, 5, 176, 6, 38, 1, 123, 0, 0, 0, 7, 2, 110, 255, 64, 0, 0, 255, 255, 0, 73, 254, 153, 4, 95, 4, 58, 6, 38, 1, 181, 0, 0, 0, 7, 2, 110, 255, 19, 0, 0, 255, 255, 255, 176, 254, 153, 4, 254, 5, 176, 6, 38, 1, 164, 0, 0, 0, 7, 2, 110, 2, 43, 0, 0, 255, 255, 255, 163, 254, 153, 4, 193, 4, 58, 6, 38, 1, 183, 0, 0, 0, 7, 2, 110, 2, 32, 0, 0, 255, 255, 0, 115, 254, 59, 4, 164, 5, 197, 6, 38, 2, 10, 0, 0, 0, 7, 2, 110, 0, 169, 255, 162, 255, 255, 0, 79, 254, 59, 4, 111, 4, 81, 6, 38, 2, 11, 0, 0, 0, 7, 2, 110, 0, 134, 255, 162, 255, 255, 0, 64, 0, 0, 4, 32, 6, 0, 6, 6, 0, 35, 0, 0, 0, 2, 0, 52, 255, 255, 3, 247, 4, 58, 0, 24, 0, 39, 0, 0, 65, 55, 33, 55, 35, 7, 35, 7, 51, 3, 33, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 37, 55, 3, 5, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 35, 37, 2, 159, 27, 254, 215, 23, 181, 22, 142, 27, 143, 139, 2, 1, 81, 153, 62, 61, 78, 6, 5, 53, 48, 49, 131, 73, 254, 204, 22, 48, 1, 75, 40, 67, 24, 23, 22, 6, 6, 48, 35, 35, 86, 45, 254, 201, 3, 35, 151, 128, 128, 151, 252, 221, 1, 43, 43, 43, 131, 88, 80, 119, 41, 40, 41, 2, 2, 131, 254, 230, 1, 2, 25, 22, 23, 66, 42, 49, 71, 23, 24, 23, 1, 0, 0, 2, 0, 44, 255, 255, 4, 27, 5, 176, 0, 24, 0, 39, 0, 0, 65, 55, 35, 55, 35, 7, 35, 7, 51, 3, 33, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 39, 55, 3, 5, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 35, 39, 2, 151, 27, 233, 35, 181, 35, 205, 27, 206, 192, 1, 194, 103, 186, 72, 72, 93, 9, 8, 55, 55, 56, 158, 94, 245, 43, 69, 1, 12, 59, 93, 31, 30, 25, 7, 9, 60, 46, 46, 120, 68, 247, 4, 80, 151, 201, 201, 151, 251, 176, 1, 56, 56, 56, 165, 108, 99, 153, 53, 52, 56, 3, 1, 247, 254, 114, 1, 2, 38, 33, 34, 95, 60, 69, 109, 38, 38, 40, 2, 0, 2, 0, 44, 255, 255, 4, 27, 5, 176, 0, 24, 0, 39, 0, 0, 65, 55, 35, 55, 35, 7, 35, 7, 51, 3, 33, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 39, 55, 3, 5, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 35, 39, 2, 151, 27, 233, 35, 181, 35, 205, 27, 206, 192, 1, 194, 103, 186, 72, 72, 93, 9, 8, 55, 55, 56, 158, 94, 245, 43, 69, 1, 12, 59, 93, 31, 30, 25, 7, 9, 60, 46, 46, 120, 68, 247, 4, 80, 151, 201, 201, 151, 251, 176, 1, 56, 56, 56, 165, 108, 99, 153, 53, 52, 56, 3, 1, 247, 254, 114, 1, 2, 38, 33, 34, 95, 60, 69, 109, 38, 38, 40, 2, 0, 1, 0, 12, 0, 0, 4, 165, 5, 176, 0, 13, 0, 0, 65, 55, 33, 19, 33, 55, 33, 3, 35, 7, 51, 3, 51, 19, 2, 119, 27, 254, 251, 82, 2, 171, 27, 252, 159, 108, 177, 27, 178, 119, 182, 118, 2, 172, 151, 1, 213, 152, 253, 147, 151, 253, 84, 2, 172, 0, 0, 1, 255, 230, 0, 0, 4, 95, 4, 58, 0, 13, 0, 0, 65, 55, 33, 19, 33, 55, 33, 3, 35, 7, 51, 3, 51, 19, 2, 81, 27, 255, 0, 52, 2, 164, 27, 252, 166, 79, 181, 27, 182, 83, 182, 83, 1, 223, 151, 1, 43, 153, 254, 60, 151, 254, 33, 1, 223, 0, 0, 1, 0, 69, 0, 0, 5, 16, 5, 176, 0, 20, 0, 0, 65, 55, 33, 55, 35, 7, 35, 7, 51, 3, 51, 19, 51, 1, 51, 1, 1, 35, 1, 35, 19, 2, 198, 27, 254, 247, 31, 181, 31, 173, 27, 174, 196, 181, 115, 171, 1, 70, 208, 254, 127, 2, 99, 220, 253, 226, 144, 56, 4, 105, 151, 176, 176, 151, 251, 151, 2, 147, 253, 109, 2, 229, 2, 203, 253, 122, 1, 63, 0, 1, 0, 76, 0, 0, 4, 110, 6, 0, 0, 20, 0, 0, 65, 55, 35, 55, 35, 7, 35, 7, 51, 3, 51, 19, 55, 1, 51, 1, 1, 35, 1, 7, 19, 2, 192, 27, 235, 29, 182, 29, 202, 27, 202, 211, 182, 63, 163, 1, 41, 215, 254, 136, 2, 2, 236, 254, 110, 133, 106, 4, 193, 151, 168, 168, 151, 251, 63, 1, 110, 137, 254, 9, 2, 110, 1, 204, 254, 159, 123, 2, 99, 0, 255, 255, 0, 53, 254, 138, 4, 160, 7, 63, 6, 38, 1, 166, 0, 0, 0, 39, 1, 95, 0, 71, 1, 140, 0, 7, 0, 95, 2, 71, 255, 218, 255, 255, 0, 55, 254, 138, 4, 115, 5, 244, 6, 38, 1, 185, 0, 0, 0, 38, 1, 95, 9, 65, 0, 7, 0, 95, 2, 68, 255, 218, 255, 255, 0, 32, 254, 138, 4, 180, 5, 176, 6, 38, 0, 9, 0, 0, 0, 7, 0, 95, 2, 61, 255, 218, 255, 255, 0, 55, 254, 138, 4, 115, 4, 58, 6, 38, 1, 189, 0, 0, 0, 7, 0, 95, 2, 68, 255, 218, 255, 255, 0, 39, 254, 138, 4, 192, 5, 176, 6, 38, 0, 14, 0, 0, 0, 7, 0, 95, 2, 101, 255, 218, 255, 255, 0, 28, 254, 138, 4, 119, 4, 58, 6, 38, 1, 188, 0, 0, 0, 7, 0, 95, 2, 72, 255, 218, 255, 255, 255, 202, 254, 138, 4, 160, 5, 176, 6, 38, 1, 167, 0, 0, 0, 7, 0, 95, 2, 72, 255, 218, 255, 255, 255, 210, 254, 138, 4, 114, 4, 58, 6, 38, 1, 187, 0, 0, 0, 7, 0, 95, 2, 67, 255, 218, 0, 1, 0, 212, 0, 0, 4, 241, 5, 176, 0, 15, 0, 0, 65, 55, 35, 1, 35, 1, 49, 3, 35, 19, 35, 7, 51, 3, 51, 19, 3, 116, 27, 154, 1, 252, 215, 254, 64, 194, 196, 239, 159, 27, 222, 90, 168, 94, 2, 18, 151, 3, 7, 253, 38, 2, 218, 252, 249, 151, 253, 238, 2, 18, 0, 1, 0, 157, 254, 96, 4, 204, 4, 58, 0, 17, 0, 0, 69, 55, 35, 1, 35, 1, 7, 49, 39, 3, 35, 19, 35, 7, 51, 3, 51, 19, 3, 44, 27, 179, 2, 56, 194, 254, 58, 46, 5, 196, 176, 244, 181, 27, 214, 70, 182, 71, 11, 151, 3, 174, 252, 249, 103, 85, 3, 25, 252, 82, 151, 254, 107, 1, 149, 0, 0, 1, 255, 241, 0, 0, 4, 238, 5, 176, 0, 17, 0, 0, 65, 55, 35, 1, 35, 1, 3, 35, 1, 35, 7, 51, 1, 51, 1, 19, 51, 1, 3, 156, 27, 150, 1, 205, 223, 254, 119, 211, 201, 1, 6, 164, 27, 169, 254, 23, 224, 1, 148, 220, 201, 254, 233, 2, 158, 151, 2, 123, 253, 198, 2, 58, 253, 133, 151, 253, 98, 2, 69, 253, 187, 2, 158, 0, 0, 1, 0, 6, 0, 0, 4, 152, 4, 58, 0, 17, 0, 0, 65, 55, 35, 1, 35, 1, 3, 35, 1, 35, 7, 51, 1, 51, 1, 19, 51, 1, 3, 115, 27, 135, 1, 145, 224, 254, 169, 214, 197, 1, 2, 165, 27, 171, 254, 83, 223, 1, 98, 226, 196, 254, 233, 1, 225, 151, 1, 194, 254, 112, 1, 144, 254, 62, 151, 254, 31, 1, 155, 254, 101, 1, 225, 0, 255, 255, 0, 80, 255, 234, 4, 79, 4, 78, 6, 6, 1, 137, 0, 0, 0, 1, 0, 87, 2, 139, 4, 152, 3, 34, 0, 3, 0, 0, 65, 55, 33, 7, 4, 117, 35, 251, 226, 35, 2, 139, 151, 151, 0, 0, 0, 1, 0, 0, 3, 231, 0, 208, 0, 22, 0, 144, 0, 5, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 28, 0, 125, 0, 229, 1, 47, 1, 75, 1, 99, 1, 200, 1, 227, 1, 254, 2, 49, 2, 80, 2, 97, 2, 130, 2, 155, 3, 22, 3, 81, 3, 209, 4, 18, 4, 136, 4, 157, 4, 211, 4, 233, 5, 15, 5, 45, 5, 69, 5, 93, 5, 220, 6, 76, 6, 175, 7, 26, 7, 112, 7, 164, 8, 41, 8, 99, 8, 141, 8, 204, 8, 236, 9, 4, 9, 91, 9, 146, 9, 242, 10, 99, 10, 210, 10, 255, 11, 126, 11, 180, 11, 232, 11, 254, 12, 36, 12, 66, 12, 116, 12, 141, 13, 17, 13, 36, 13, 110, 13, 233, 14, 11, 14, 92, 14, 211, 14, 230, 15, 130, 15, 253, 16, 17, 16, 86, 16, 201, 17, 60, 17, 147, 17, 242, 18, 41, 18, 192, 18, 233, 19, 156, 19, 254, 20, 211, 21, 84, 21, 145, 22, 6, 22, 37, 22, 157, 22, 252, 23, 87, 23, 194, 24, 20, 24, 72, 24, 151, 24, 163, 25, 0, 25, 107, 25, 225, 26, 20, 26, 53, 26, 146, 26, 248, 27, 19, 27, 42, 27, 54, 27, 67, 27, 84, 27, 108, 27, 153, 27, 167, 27, 181, 27, 195, 27, 209, 27, 226, 27, 253, 28, 24, 28, 51, 28, 73, 28, 86, 28, 99, 28, 142, 28, 150, 28, 158, 28, 222, 29, 26, 29, 48, 29, 69, 29, 151, 29, 227, 29, 247, 30, 11, 30, 38, 30, 52, 30, 87, 30, 120, 30, 172, 30, 194, 30, 232, 31, 114, 31, 138, 31, 162, 31, 195, 31, 227, 31, 245, 32, 4, 32, 20, 32, 36, 32, 211, 33, 202, 33, 218, 33, 239, 34, 10, 34, 49, 34, 222, 35, 115, 35, 158, 35, 237, 36, 17, 36, 74, 36, 190, 37, 151, 38, 128, 38, 161, 38, 183, 39, 8, 39, 20, 39, 32, 39, 44, 39, 56, 39, 68, 39, 80, 39, 152, 39, 164, 39, 176, 39, 188, 39, 200, 39, 212, 39, 224, 39, 235, 39, 247, 40, 3, 40, 80, 40, 92, 40, 104, 40, 116, 40, 128, 40, 140, 40, 152, 40, 164, 40, 176, 40, 228, 41, 44, 41, 121, 41, 133, 41, 145, 41, 157, 41, 204, 41, 216, 41, 228, 41, 240, 41, 252, 42, 8, 42, 20, 42, 32, 42, 44, 42, 116, 42, 128, 42, 140, 42, 152, 42, 164, 42, 176, 42, 188, 42, 200, 42, 231, 42, 243, 42, 255, 43, 11, 43, 23, 43, 35, 43, 47, 43, 59, 43, 71, 43, 83, 43, 226, 43, 238, 43, 250, 44, 137, 44, 149, 44, 161, 44, 173, 44, 185, 44, 197, 44, 209, 44, 221, 44, 232, 44, 244, 45, 20, 45, 32, 45, 44, 45, 56, 45, 68, 45, 80, 45, 92, 45, 167, 45, 179, 45, 191, 46, 31, 46, 43, 46, 55, 46, 67, 46, 79, 46, 91, 46, 103, 46, 115, 46, 127, 46, 139, 46, 151, 46, 163, 46, 175, 46, 187, 46, 199, 46, 210, 46, 222, 46, 233, 46, 244, 46, 255, 47, 171, 47, 182, 47, 193, 47, 205, 47, 217, 47, 229, 47, 240, 47, 251, 48, 7, 48, 19, 48, 137, 48, 149, 48, 160, 48, 171, 48, 182, 48, 193, 48, 204, 48, 215, 48, 226, 49, 51, 49, 181, 49, 192, 49, 203, 49, 214, 50, 26, 50, 38, 50, 50, 50, 61, 50, 73, 50, 84, 50, 95, 50, 106, 50, 211, 50, 223, 50, 235, 50, 247, 51, 3, 51, 15, 51, 27, 51, 39, 51, 78, 51, 89, 51, 100, 51, 112, 51, 124, 51, 136, 51, 147, 51, 158, 51, 169, 51, 180, 52, 45, 52, 57, 52, 68, 52, 187, 52, 198, 52, 210, 52, 221, 52, 232, 52, 244, 53, 0, 53, 11, 53, 22, 53, 33, 53, 102, 53, 114, 53, 125, 53, 136, 53, 147, 53, 158, 53, 169, 53, 246, 54, 2, 54, 13, 54, 112, 54, 123, 54, 135, 54, 147, 54, 158, 54, 169, 54, 180, 54, 192, 54, 204, 54, 215, 54, 226, 54, 238, 54, 249, 55, 4, 55, 19, 55, 34, 55, 56, 55, 119, 55, 133, 55, 179, 55, 205, 55, 250, 56, 71, 56, 95, 56, 117, 56, 142, 56, 195, 56, 246, 57, 12, 57, 12, 57, 25, 57, 84, 57, 97, 57, 121, 57, 179, 58, 21, 58, 61, 58, 105, 58, 177, 58, 192, 58, 207, 58, 216, 59, 10, 59, 32, 59, 47, 59, 100, 59, 108, 59, 126, 59, 153, 60, 28, 60, 47, 60, 76, 60, 97, 60, 128, 60, 224, 61, 32, 61, 152, 62, 37, 62, 166, 62, 194, 63, 87, 63, 227, 64, 66, 64, 123, 64, 253, 65, 41, 65, 119, 66, 10, 66, 63, 66, 168, 67, 21, 67, 114, 67, 161, 67, 226, 68, 97, 68, 175, 69, 61, 69, 196, 70, 20, 70, 160, 70, 242, 71, 96, 71, 203, 72, 16, 72, 77, 72, 105, 72, 167, 72, 227, 73, 16, 73, 144, 73, 170, 73, 225, 74, 19, 74, 47, 74, 95, 74, 121, 74, 154, 74, 215, 75, 25, 75, 83, 75, 193, 76, 74, 76, 138, 77, 9, 77, 119, 77, 137, 77, 195, 77, 240, 78, 125, 78, 151, 78, 182, 78, 232, 79, 5, 79, 32, 79, 53, 79, 74, 79, 177, 79, 204, 79, 252, 80, 22, 80, 54, 80, 115, 80, 182, 80, 241, 81, 79, 81, 212, 82, 22, 82, 122, 82, 220, 83, 56, 83, 126, 83, 194, 83, 221, 84, 85, 84, 206, 85, 21, 85, 156, 86, 21, 86, 58, 86, 95, 86, 144, 86, 192, 87, 16, 87, 93, 87, 184, 88, 9, 88, 162, 89, 68, 89, 199, 90, 37, 90, 81, 90, 130, 91, 43, 91, 208, 92, 92, 92, 200, 93, 189, 94, 155, 95, 34, 95, 169, 96, 4, 96, 78, 96, 120, 96, 140, 96, 201, 96, 218, 96, 235, 98, 41, 98, 128, 98, 196, 99, 62, 99, 83, 99, 104, 99, 164, 99, 233, 100, 17, 100, 57, 100, 90, 100, 123, 100, 154, 100, 185, 101, 10, 101, 73, 102, 3, 102, 168, 102, 201, 102, 234, 103, 34, 103, 90, 103, 136, 104, 21, 104, 149, 104, 212, 105, 19, 105, 72, 105, 125, 105, 245, 106, 68, 106, 147, 106, 163, 106, 179, 106, 238, 107, 78, 107, 251, 108, 124, 108, 248, 109, 108, 109, 220, 110, 77, 110, 189, 111, 21, 111, 110, 111, 213, 112, 42, 112, 117, 112, 192, 113, 59, 113, 59, 113, 59, 113, 59, 113, 59, 113, 59, 113, 59, 113, 59, 113, 59, 113, 59, 113, 59, 113, 59, 113, 59, 113, 71, 113, 98, 113, 111, 113, 144, 113, 196, 114, 40, 114, 214, 115, 70, 115, 204, 116, 41, 116, 215, 117, 229, 118, 203, 119, 121, 119, 255, 120, 21, 120, 52, 120, 78, 121, 55, 121, 122, 121, 159, 121, 159, 122, 174, 123, 14, 123, 90, 123, 152, 123, 179, 123, 206, 124, 3, 124, 30, 124, 61, 124, 157, 124, 247, 125, 46, 125, 74, 125, 98, 125, 190, 125, 217, 125, 244, 126, 39, 126, 70, 126, 87, 126, 116, 126, 141, 126, 246, 127, 86, 127, 151, 128, 37, 128, 58, 128, 112, 128, 135, 128, 175, 128, 206, 128, 234, 129, 3, 129, 102, 129, 156, 129, 170, 129, 252, 130, 29, 130, 132, 130, 147, 130, 186, 130, 245, 131, 20, 131, 119, 131, 127, 131, 135, 131, 147, 131, 158, 131, 170, 131, 181, 131, 193, 131, 205, 131, 217, 131, 229, 131, 241, 131, 252, 132, 7, 132, 19, 132, 31, 132, 43, 132, 54, 132, 65, 132, 77, 132, 88, 132, 100, 132, 111, 132, 123, 132, 135, 132, 146, 132, 157, 132, 168, 132, 179, 132, 190, 132, 201, 132, 213, 132, 225, 132, 236, 132, 248, 133, 3, 133, 15, 133, 26, 133, 38, 133, 49, 133, 60, 133, 72, 133, 84, 133, 95, 133, 106, 133, 117, 133, 128, 133, 202, 133, 213, 133, 224, 133, 235, 133, 246, 134, 1, 134, 12, 134, 23, 134, 95, 134, 106, 134, 117, 134, 128, 134, 140, 134, 151, 134, 163, 134, 174, 134, 185, 135, 1, 135, 12, 135, 24, 135, 36, 135, 48, 135, 60, 135, 72, 135, 84, 135, 96, 135, 108, 135, 119, 135, 130, 135, 141, 135, 153, 135, 164, 135, 176, 135, 187, 135, 198, 135, 209, 135, 220, 135, 231, 135, 242, 135, 254, 136, 9, 136, 20, 136, 32, 136, 44, 136, 140, 136, 151, 136, 162, 136, 173, 136, 184, 136, 195, 136, 206, 136, 218, 136, 230, 136, 242, 136, 254, 137, 10, 137, 22, 137, 34, 137, 45, 137, 53, 137, 61, 137, 69, 137, 77, 137, 85, 137, 93, 137, 101, 137, 109, 137, 117, 137, 125, 137, 133, 137, 141, 137, 149, 137, 157, 137, 169, 137, 181, 137, 192, 137, 203, 137, 214, 137, 225, 137, 236, 137, 244, 137, 252, 138, 4, 138, 12, 138, 20, 138, 31, 138, 42, 138, 53, 138, 64, 138, 75, 138, 87, 138, 99, 138, 226, 138, 234, 138, 246, 138, 254, 139, 6, 139, 18, 139, 30, 139, 38, 139, 46, 139, 54, 139, 62, 139, 74, 139, 82, 139, 90, 139, 98, 139, 106, 139, 114, 139, 122, 139, 130, 139, 138, 139, 146, 139, 154, 139, 162, 139, 173, 139, 181, 139, 189, 140, 27, 140, 35, 140, 43, 140, 54, 140, 65, 140, 73, 140, 81, 140, 92, 140, 100, 140, 111, 140, 122, 140, 134, 140, 145, 140, 153, 140, 165, 140, 177, 140, 188, 140, 199, 140, 211, 140, 223, 140, 235, 140, 246, 141, 1, 141, 9, 141, 17, 141, 29, 141, 41, 141, 52, 141, 63, 141, 74, 141, 85, 141, 93, 141, 101, 141, 109, 141, 121, 141, 132, 141, 140, 141, 152, 141, 163, 141, 175, 141, 186, 141, 194, 141, 202, 141, 214, 141, 225, 141, 237, 141, 245, 142, 0, 142, 12, 142, 23, 142, 35, 142, 46, 142, 58, 142, 69, 142, 81, 142, 92, 142, 104, 142, 115, 142, 123, 142, 131, 142, 143, 142, 154, 142, 166, 142, 177, 142, 189, 142, 200, 142, 212, 142, 223, 142, 235, 142, 247, 143, 3, 143, 14, 143, 26, 143, 37, 143, 49, 143, 61, 143, 69, 143, 81, 143, 93, 143, 105, 143, 117, 143, 129, 143, 141, 143, 153, 143, 164, 143, 176, 143, 187, 143, 199, 143, 210, 143, 222, 143, 233, 143, 249, 144, 9, 144, 21, 144, 32, 144, 44, 144, 55, 144, 67, 144, 78, 144, 90, 144, 101, 144, 117, 144, 132, 144, 144, 144, 156, 144, 168, 144, 180, 144, 192, 144, 204, 144, 216, 144, 227, 144, 239, 144, 250, 145, 6, 145, 17, 145, 29, 145, 40, 145, 56, 145, 71, 145, 83, 145, 95, 145, 107, 145, 119, 145, 131, 145, 143, 145, 155, 145, 167, 145, 179, 145, 190, 145, 202, 145, 213, 145, 225, 145, 236, 145, 248, 146, 3, 146, 19, 146, 34, 146, 46, 146, 58, 146, 70, 146, 81, 146, 93, 146, 105, 146, 117, 146, 129, 146, 141, 146, 153, 146, 165, 146, 177, 146, 189, 146, 201, 146, 213, 146, 224, 146, 236, 146, 247, 147, 3, 147, 15, 147, 27, 147, 39, 147, 51, 147, 63, 147, 75, 147, 87, 147, 99, 147, 111, 147, 123, 147, 135, 147, 150, 147, 162, 147, 174, 147, 186, 147, 198, 147, 210, 147, 222, 147, 234, 147, 246, 148, 2, 148, 14, 148, 26, 148, 38, 148, 50, 148, 62, 148, 74, 148, 86, 148, 98, 148, 110, 148, 118, 148, 188, 149, 0, 149, 68, 149, 98, 149, 128, 149, 169, 149, 211, 149, 227, 149, 242, 149, 254, 150, 10, 150, 22, 150, 34, 150, 46, 150, 58, 150, 90, 150, 125, 150, 164, 150, 203, 150, 211, 150, 225, 0, 1, 0, 0, 0, 3, 0, 0, 220, 76, 8, 224, 95, 15, 60, 245, 0, 11, 8, 0, 0, 0, 0, 0, 196, 240, 17, 46, 0, 0, 0, 0, 218, 216, 63, 171, 252, 172, 253, 213, 6, 164, 8, 98, 0, 2, 0, 9, 0, 2, 0, 0, 0, 0, 0, 0, 4, 178, 0, 0, 0, 0, 255, 226, 0, 62, 0, 100, 0, 46, 0, 72, 0, 81, 0, 96, 0, 32, 0, 64, 0, 63, 0, 62, 0, 88, 0, 39, 0, 34, 0, 102, 0, 81, 0, 93, 0, 71, 0, 83, 0, 194, 0, 104, 0, 205, 0, 149, 255, 241, 0, 212, 0, 19, 0, 97, 0, 65, 0, 122, 0, 118, 0, 108, 0, 205, 0, 45, 0, 64, 0, 92, 0, 35, 0, 66, 0, 92, 255, 242, 0, 64, 0, 99, 255, 247, 0, 118, 0, 215, 0, 124, 0, 196, 0, 141, 0, 174, 0, 132, 0, 6, 255, 228, 0, 61, 0, 127, 1, 26, 0, 15, 0, 47, 0, 27, 0, 143, 0, 117, 0, 191, 0, 128, 0, 195, 1, 223, 1, 79, 1, 107, 1, 71, 1, 77, 0, 154, 0, 167, 0, 106, 255, 178, 255, 241, 0, 56, 0, 14, 0, 40, 0, 58, 255, 247, 0, 76, 0, 59, 0, 138, 0, 119, 0, 126, 0, 9, 0, 86, 0, 2, 255, 215, 0, 3, 0, 19, 0, 16, 1, 128, 1, 81, 1, 23, 0, 86, 0, 194, 1, 142, 1, 191, 1, 66, 0, 174, 1, 255, 1, 169, 0, 20, 0, 204, 0, 82, 0, 87, 2, 38, 1, 158, 2, 41, 2, 24, 1, 32, 1, 139, 1, 125, 0, 151, 2, 38, 1, 158, 1, 70, 0, 160, 1, 14, 0, 250, 1, 52, 0, 178, 1, 118, 1, 44, 0, 114, 0, 172, 0, 96, 0, 129, 0, 111, 0, 126, 0, 122, 0, 94, 0, 161, 0, 101, 0, 79, 0, 87, 0, 189, 0, 114, 1, 120, 0, 233, 0, 130, 0, 92, 1, 111, 1, 88, 0, 166, 0, 23, 0, 67, 0, 67, 0, 233, 1, 198, 0, 217, 0, 26, 0, 57, 0, 67, 255, 215, 1, 7, 0, 232, 0, 28, 255, 226, 255, 226, 255, 226, 255, 226, 255, 226, 255, 226, 255, 226, 255, 226, 255, 226, 255, 226, 255, 178, 0, 100, 0, 100, 0, 100, 0, 100, 0, 46, 255, 211, 0, 72, 0, 72, 0, 72, 0, 72, 0, 72, 0, 72, 0, 72, 0, 72, 0, 65, 0, 72, 255, 211, 0, 96, 0, 96, 0, 96, 0, 29, 0, 32, 0, 64, 0, 64, 0, 64, 0, 64, 0, 64, 0, 64, 0, 64, 0, 64, 0, 64, 0, 63, 0, 62, 0, 88, 0, 88, 0, 88, 0, 88, 0, 51, 0, 34, 0, 34, 0, 34, 0, 34, 0, 102, 0, 102, 0, 102, 0, 102, 0, 102, 0, 95, 0, 102, 0, 102, 255, 198, 255, 198, 0, 102, 0, 71, 0, 71, 0, 71, 0, 83, 0, 83, 0, 83, 0, 83, 0, 194, 0, 194, 0, 104, 0, 104, 0, 104, 0, 104, 0, 104, 0, 104, 0, 104, 0, 104, 0, 105, 0, 104, 0, 104, 0, 149, 0, 149, 0, 149, 0, 149, 0, 212, 0, 212, 0, 212, 0, 212, 0, 19, 0, 19, 0, 19, 0, 97, 0, 97, 0, 97, 0, 97, 0, 97, 0, 97, 0, 97, 0, 97, 0, 97, 0, 97, 255, 241, 0, 122, 0, 122, 0, 122, 0, 122, 0, 48, 0, 103, 0, 108, 0, 108, 0, 108, 0, 108, 0, 108, 0, 108, 0, 108, 0, 108, 0, 74, 0, 108, 0, 45, 0, 45, 0, 45, 0, 79, 0, 64, 0, 92, 0, 92, 0, 92, 0, 92, 0, 92, 0, 92, 0, 92, 0, 92, 0, 1, 0, 66, 0, 92, 0, 22, 0, 92, 0, 21, 0, 92, 0, 64, 0, 64, 0, 64, 0, 64, 0, 99, 0, 99, 0, 99, 0, 99, 0, 99, 0, 93, 0, 99, 0, 99, 0, 86, 0, 86, 0, 99, 0, 215, 0, 215, 0, 94, 0, 124, 0, 124, 0, 124, 0, 124, 0, 196, 0, 176, 0, 141, 0, 141, 0, 141, 0, 141, 0, 141, 0, 144, 0, 141, 0, 141, 0, 141, 0, 141, 0, 141, 0, 132, 0, 132, 0, 132, 0, 132, 255, 228, 255, 228, 255, 228, 255, 228, 0, 61, 0, 61, 0, 61, 2, 35, 1, 231, 1, 46, 0, 240, 1, 104, 1, 182, 2, 102, 1, 142, 2, 8, 1, 88, 1, 193, 252, 172, 1, 23, 1, 1, 0, 173, 0, 0, 0, 189, 0, 6, 0, 150, 0, 92, 0, 20, 255, 229, 1, 82, 0, 1, 1, 15, 253, 141, 253, 225, 253, 13, 253, 240, 252, 187, 2, 138, 1, 142, 2, 53, 0, 71, 255, 192, 0, 102, 255, 200, 0, 36, 0, 53, 0, 4, 0, 80, 0, 132, 255, 249, 0, 103, 255, 254, 0, 157, 0, 91, 0, 80, 0, 130, 0, 54, 0, 166, 0, 233, 255, 203, 0, 134, 0, 110, 255, 239, 0, 95, 0, 83, 0, 223, 0, 121, 0, 87, 0, 85, 0, 54, 0, 111, 0, 193, 0, 39, 0, 162, 0, 114, 255, 186, 0, 22, 0, 186, 0, 53, 0, 53, 255, 184, 255, 176, 0, 46, 0, 53, 255, 202, 0, 1, 0, 57, 0, 228, 0, 17, 0, 17, 0, 170, 0, 35, 0, 58, 0, 78, 0, 11, 255, 209, 0, 101, 0, 55, 0, 73, 255, 167, 255, 163, 0, 79, 0, 55, 0, 54, 255, 210, 0, 28, 0, 55, 0, 55, 0, 158, 0, 98, 0, 60, 0, 159, 0, 21, 0, 10, 0, 112, 0, 35, 0, 56, 0, 80, 0, 5, 255, 222, 0, 56, 0, 121, 255, 196, 0, 21, 0, 63, 0, 56, 0, 56, 0, 43, 0, 109, 0, 17, 0, 46, 255, 185, 255, 231, 0, 5, 0, 4, 255, 235, 255, 254, 255, 229, 255, 230, 0, 68, 0, 88, 0, 95, 0, 68, 0, 177, 0, 166, 0, 38, 0, 30, 0, 102, 0, 96, 0, 30, 0, 55, 0, 62, 0, 44, 0, 142, 0, 165, 0, 66, 1, 48, 1, 115, 2, 82, 2, 175, 254, 121, 254, 189, 0, 81, 255, 247, 0, 72, 0, 72, 0, 75, 0, 74, 0, 64, 0, 54, 0, 165, 0, 111, 0, 6, 0, 2, 0, 1, 0, 8, 0, 97, 0, 78, 0, 177, 0, 107, 0, 228, 0, 164, 0, 116, 0, 115, 0, 79, 0, 89, 0, 70, 0, 72, 0, 69, 0, 77, 0, 103, 0, 28, 0, 1, 255, 247, 0, 58, 0, 40, 0, 67, 0, 175, 0, 133, 1, 13, 0, 244, 255, 176, 255, 202, 0, 3, 0, 9, 0, 130, 0, 133, 0, 195, 0, 128, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 243, 1, 26, 0, 254, 1, 36, 1, 73, 0, 113, 0, 157, 0, 188, 0, 12, 0, 134, 0, 197, 0, 119, 0, 105, 0, 183, 0, 97, 0, 34, 255, 154, 0, 59, 0, 50, 0, 84, 0, 161, 0, 0, 255, 240, 0, 1, 1, 116, 1, 96, 0, 207, 1, 110, 1, 205, 2, 76, 255, 199, 0, 97, 0, 89, 0, 73, 0, 89, 0, 119, 0, 100, 0, 46, 0, 106, 0, 104, 0, 70, 0, 98, 0, 46, 0, 84, 0, 113, 0, 72, 0, 35, 0, 94, 0, 161, 0, 134, 0, 185, 0, 145, 255, 238, 0, 178, 0, 85, 1, 220, 1, 205, 1, 52, 2, 52, 2, 69, 1, 253, 1, 80, 0, 173, 0, 93, 0, 59, 0, 99, 0, 0, 0, 204, 0, 100, 0, 122, 0, 96, 0, 45, 0, 21, 0, 83, 0, 124, 0, 194, 0, 196, 0, 194, 0, 161, 0, 196, 255, 217, 255, 217, 0, 161, 255, 199, 255, 199, 255, 199, 255, 199, 255, 199, 255, 199, 255, 199, 0, 89, 0, 89, 0, 89, 0, 89, 0, 89, 0, 106, 0, 106, 0, 106, 0, 106, 0, 84, 0, 113, 0, 113, 0, 113, 0, 113, 0, 113, 0, 134, 0, 134, 0, 134, 0, 134, 0, 178, 255, 199, 255, 199, 255, 199, 0, 89, 0, 89, 0, 89, 0, 73, 0, 89, 0, 89, 0, 89, 0, 89, 0, 89, 0, 100, 0, 100, 0, 100, 0, 46, 0, 106, 0, 106, 0, 106, 0, 106, 0, 106, 0, 104, 0, 70, 0, 98, 0, 98, 0, 98, 0, 98, 0, 84, 0, 84, 0, 84, 0, 113, 0, 113, 0, 113, 0, 35, 0, 35, 0, 35, 0, 94, 0, 94, 0, 94, 0, 94, 0, 161, 0, 134, 0, 134, 0, 134, 0, 134, 0, 134, 0, 134, 0, 145, 0, 178, 0, 178, 0, 85, 0, 85, 0, 85, 255, 226, 0, 81, 0, 64, 0, 48, 0, 112, 255, 247, 0, 3, 0, 233, 255, 226, 0, 62, 0, 72, 0, 19, 0, 32, 0, 64, 0, 62, 0, 39, 0, 34, 0, 102, 0, 81, 0, 194, 0, 212, 255, 241, 0, 64, 0, 212, 0, 103, 0, 80, 0, 54, 0, 233, 0, 121, 0, 76, 0, 99, 0, 6, 0, 174, 0, 6, 0, 233, 0, 121, 0, 99, 0, 121, 0, 54, 0, 72, 0, 71, 0, 83, 0, 64, 0, 64, 0, 63, 0, 59, 0, 62, 0, 1, 255, 226, 0, 62, 0, 71, 0, 72, 0, 53, 0, 39, 0, 32, 0, 102, 0, 53, 0, 81, 0, 100, 0, 194, 0, 80, 255, 241, 0, 97, 0, 108, 0, 55, 0, 99, 255, 247, 0, 121, 255, 228, 0, 6, 0, 108, 0, 73, 0, 124, 0, 92, 0, 92, 0, 35, 0, 54, 255, 228, 1, 128, 0, 1, 2, 24, 0, 39, 255, 242, 255, 226, 0, 97, 0, 5, 0, 72, 0, 53, 0, 108, 0, 55, 0, 132, 0, 85, 0, 177, 0, 166, 0, 46, 0, 79, 0, 100, 0, 122, 0, 212, 0, 157, 0, 64, 255, 176, 255, 163, 0, 64, 255, 226, 0, 97, 255, 226, 0, 97, 255, 178, 255, 241, 0, 72, 0, 108, 0, 77, 0, 138, 0, 138, 255, 176, 255, 163, 0, 46, 0, 79, 0, 53, 0, 55, 0, 53, 0, 55, 0, 102, 0, 99, 0, 95, 0, 68, 0, 95, 0, 68, 0, 78, 0, 80, 0, 1, 255, 228, 0, 1, 255, 228, 0, 1, 255, 228, 0, 228, 0, 159, 0, 35, 0, 35, 255, 241, 0, 6, 0, 118, 255, 202, 255, 210, 255, 226, 0, 97, 255, 226, 0, 97, 255, 226, 0, 97, 255, 226, 0, 97, 255, 226, 0, 97, 255, 226, 0, 97, 255, 226, 0, 97, 255, 226, 0, 97, 255, 226, 0, 97, 255, 226, 0, 97, 255, 226, 0, 97, 255, 226, 0, 97, 0, 72, 0, 108, 0, 72, 0, 108, 0, 72, 0, 108, 0, 72, 0, 108, 0, 72, 0, 108, 0, 72, 0, 108, 0, 72, 0, 108, 0, 72, 0, 108, 0, 64, 0, 92, 0, 64, 0, 92, 0, 102, 0, 99, 0, 102, 0, 99, 0, 102, 0, 99, 0, 102, 0, 99, 0, 102, 0, 99, 0, 102, 0, 99, 0, 102, 0, 99, 0, 95, 0, 93, 0, 95, 0, 93, 0, 95, 0, 93, 0, 95, 0, 93, 0, 95, 0, 93, 0, 104, 0, 141, 0, 104, 0, 141, 0, 104, 0, 144, 0, 104, 0, 144, 0, 104, 0, 144, 0, 104, 0, 144, 0, 104, 0, 144, 0, 212, 255, 228, 0, 212, 255, 228, 0, 212, 255, 228, 0, 29, 0, 59, 0, 54, 0, 32, 0, 55, 0, 194, 0, 158, 255, 241, 0, 6, 0, 228, 0, 159, 0, 228, 0, 159, 0, 71, 0, 73, 255, 176, 255, 163, 0, 115, 0, 79, 0, 64, 0, 52, 0, 44, 0, 44, 0, 12, 255, 230, 0, 69, 0, 76, 0, 53, 0, 55, 0, 32, 0, 55, 0, 39, 0, 28, 255, 202, 255, 210, 0, 212, 0, 157, 255, 241, 0, 6, 0, 80, 0, 87, 0, 1, 0, 0, 8, 98, 253, 213, 0, 0, 4, 178, 252, 172, 254, 14, 6, 164, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 178, 1, 144, 0, 5, 0, 0, 5, 154, 5, 51, 0, 0, 1, 31, 5, 154, 5, 51, 0, 0, 3, 209, 0, 102, 2, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 91, 0, 0, 0, 32, 0, 0, 0, 0, 112, 121, 114, 115, 0, 1, 0, 13, 255, 253, 8, 98, 253, 213, 0, 0, 8, 98, 2, 43, 32, 0, 1, 159, 0, 0, 0, 0, 4, 58, 5, 176, 0, 0, 0, 32, 0, 1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 20, 0, 3, 0, 1, 0, 0, 0, 20, 0, 4, 7, 60, 0, 0, 0, 190, 0, 128, 0, 6, 0, 62, 0, 13, 0, 47, 0, 57, 0, 64, 0, 90, 0, 96, 0, 122, 0, 126, 1, 127, 1, 146, 1, 161, 1, 176, 1, 240, 1, 255, 2, 27, 2, 55, 2, 89, 2, 188, 2, 199, 2, 201, 2, 221, 2, 243, 3, 1, 3, 3, 3, 9, 3, 15, 3, 35, 3, 138, 3, 140, 3, 146, 3, 161, 3, 176, 3, 185, 3, 201, 3, 206, 3, 210, 3, 214, 4, 37, 4, 47, 4, 69, 4, 79, 4, 98, 4, 111, 4, 119, 4, 134, 4, 206, 4, 215, 4, 225, 4, 245, 5, 1, 5, 16, 5, 19, 30, 1, 30, 63, 30, 133, 30, 241, 30, 243, 30, 249, 31, 77, 32, 11, 32, 21, 32, 30, 32, 34, 32, 38, 32, 48, 32, 51, 32, 58, 32, 60, 32, 68, 32, 116, 32, 127, 32, 164, 32, 167, 32, 172, 33, 5, 33, 19, 33, 22, 33, 34, 33, 46, 33, 94, 34, 2, 34, 15, 34, 18, 34, 21, 34, 26, 34, 30, 34, 43, 34, 72, 34, 96, 34, 101, 37, 202, 246, 195, 254, 255, 255, 253, 255, 255, 0, 0, 0, 13, 0, 32, 0, 48, 0, 58, 0, 65, 0, 91, 0, 97, 0, 123, 0, 160, 1, 146, 1, 160, 1, 175, 1, 240, 1, 250, 2, 24, 2, 55, 2, 89, 2, 188, 2, 198, 2, 201, 2, 216, 2, 243, 3, 0, 3, 3, 3, 9, 3, 15, 3, 35, 3, 132, 3, 140, 3, 142, 3, 147, 3, 163, 3, 177, 3, 186, 3, 202, 3, 209, 3, 214, 4, 0, 4, 38, 4, 48, 4, 70, 4, 80, 4, 99, 4, 112, 4, 120, 4, 136, 4, 207, 4, 216, 4, 226, 4, 246, 5, 2, 5, 17, 30, 0, 30, 62, 30, 128, 30, 160, 30, 242, 30, 244, 31, 77, 32, 0, 32, 19, 32, 23, 32, 32, 32, 37, 32, 48, 32, 50, 32, 57, 32, 60, 32, 68, 32, 116, 32, 127, 32, 163, 32, 167, 32, 171, 33, 5, 33, 19, 33, 22, 33, 34, 33, 46, 33, 91, 34, 2, 34, 15, 34, 17, 34, 21, 34, 26, 34, 30, 34, 43, 34, 72, 34, 96, 34, 100, 37, 202, 246, 195, 254, 255, 255, 252, 255, 255, 1, 92, 0, 0, 0, 6, 0, 0, 255, 193, 0, 0, 255, 187, 0, 0, 0, 0, 254, 196, 0, 0, 0, 0, 1, 51, 0, 0, 0, 98, 255, 58, 253, 248, 0, 104, 0, 0, 254, 149, 0, 0, 254, 127, 254, 115, 254, 114, 254, 109, 254, 104, 254, 66, 0, 0, 255, 76, 255, 75, 0, 0, 0, 0, 253, 212, 0, 0, 255, 44, 253, 200, 253, 197, 0, 0, 253, 131, 0, 0, 253, 123, 0, 0, 253, 112, 0, 0, 253, 108, 0, 0, 254, 108, 0, 0, 254, 105, 0, 0, 253, 20, 0, 0, 229, 39, 228, 231, 0, 0, 228, 198, 0, 0, 228, 196, 227, 220, 226, 37, 0, 0, 0, 0, 0, 0, 0, 0, 224, 93, 224, 64, 224, 65, 226, 230, 224, 71, 225, 192, 225, 182, 223, 180, 223, 178, 0, 0, 225, 50, 225, 37, 225, 35, 223, 114, 225, 12, 224, 224, 224, 61, 224, 49, 0, 0, 222, 116, 224, 40, 224, 37, 224, 25, 222, 59, 222, 34, 222, 34, 220, 123, 10, 165, 3, 71, 2, 75, 0, 1, 0, 0, 0, 188, 0, 0, 0, 216, 0, 0, 0, 226, 0, 0, 0, 234, 0, 240, 0, 0, 2, 172, 2, 174, 0, 0, 2, 174, 0, 0, 0, 0, 0, 0, 0, 0, 2, 176, 0, 0, 2, 176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 174, 0, 0, 0, 0, 2, 182, 2, 210, 0, 0, 2, 234, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 3, 74, 0, 0, 3, 114, 0, 0, 3, 148, 0, 0, 3, 160, 0, 0, 4, 42, 0, 0, 4, 58, 0, 0, 4, 78, 0, 0, 0, 0, 4, 78, 0, 0, 4, 86, 0, 0, 0, 0, 0, 0, 4, 82, 4, 86, 4, 100, 4, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 91, 0, 107, 0, 151, 0, 82, 0, 140, 0, 152, 0, 106, 0, 116, 0, 117, 0, 150, 0, 124, 0, 95, 0, 103, 0, 96, 0, 137, 0, 97, 0, 98, 0, 132, 0, 129, 0, 133, 0, 93, 0, 153, 0, 118, 0, 138, 0, 119, 0, 156, 0, 102, 1, 90, 0, 120, 0, 142, 0, 121, 0, 157, 2, 115, 0, 92, 0, 83, 0, 84, 0, 90, 0, 85, 0, 143, 0, 154, 1, 97, 0, 146, 0, 67, 1, 106, 0, 136, 2, 116, 0, 147, 1, 94, 0, 149, 0, 126, 0, 65, 0, 66, 1, 91, 1, 107, 0, 155, 0, 100, 1, 102, 0, 64, 0, 68, 1, 108, 0, 70, 0, 69, 0, 71, 0, 94, 0, 162, 0, 158, 0, 160, 0, 167, 0, 161, 0, 165, 0, 72, 0, 171, 0, 181, 0, 175, 0, 178, 0, 179, 0, 196, 0, 191, 0, 193, 0, 194, 0, 185, 0, 210, 0, 215, 0, 211, 0, 213, 0, 221, 0, 214, 0, 127, 0, 219, 0, 235, 0, 231, 0, 233, 0, 234, 0, 246, 0, 77, 0, 80, 1, 1, 0, 253, 0, 255, 1, 6, 1, 0, 1, 4, 0, 73, 1, 10, 1, 20, 1, 14, 1, 17, 1, 18, 1, 33, 1, 29, 1, 31, 1, 32, 0, 76, 1, 47, 1, 52, 1, 48, 1, 50, 1, 58, 1, 51, 0, 128, 1, 56, 1, 72, 1, 68, 1, 70, 1, 71, 1, 83, 0, 78, 1, 85, 0, 163, 1, 2, 0, 159, 0, 254, 0, 164, 1, 3, 0, 169, 1, 8, 0, 172, 1, 11, 2, 117, 2, 118, 0, 170, 1, 9, 0, 173, 1, 12, 0, 174, 1, 13, 0, 182, 1, 21, 0, 176, 1, 15, 0, 180, 1, 19, 0, 184, 1, 23, 0, 177, 1, 16, 0, 187, 1, 25, 0, 186, 1, 24, 2, 119, 2, 120, 0, 188, 1, 26, 0, 190, 1, 28, 0, 189, 1, 27, 0, 199, 1, 36, 0, 197, 1, 34, 0, 192, 1, 30, 0, 198, 1, 35, 0, 195, 1, 109, 1, 110, 1, 111, 0, 200, 1, 37, 0, 201, 1, 38, 0, 79, 0, 202, 1, 39, 0, 204, 1, 41, 0, 203, 1, 40, 0, 205, 1, 42, 0, 206, 1, 43, 0, 207, 1, 44, 0, 209, 1, 46, 0, 208, 1, 45, 2, 121, 0, 183, 1, 22, 0, 218, 1, 55, 0, 212, 1, 49, 0, 217, 1, 54, 0, 74, 0, 75, 0, 222, 1, 59, 0, 224, 1, 61, 0, 223, 1, 60, 0, 225, 1, 62, 0, 228, 1, 65, 0, 227, 1, 64, 0, 226, 1, 63, 2, 126, 2, 128, 0, 230, 1, 67, 0, 229, 1, 66, 0, 241, 1, 78, 0, 238, 1, 75, 0, 232, 1, 69, 0, 240, 1, 77, 0, 237, 1, 74, 0, 239, 1, 76, 0, 243, 1, 80, 0, 247, 1, 84, 0, 248, 0, 250, 1, 87, 0, 252, 1, 89, 0, 251, 1, 88, 1, 112, 0, 216, 1, 53, 0, 236, 1, 73, 0, 166, 1, 5, 0, 168, 1, 7, 0, 220, 1, 57, 1, 92, 1, 100, 1, 95, 1, 96, 1, 98, 1, 103, 1, 93, 1, 99, 1, 120, 1, 121, 2, 212, 1, 122, 2, 213, 2, 214, 2, 215, 1, 123, 1, 124, 2, 222, 2, 223, 2, 224, 1, 125, 2, 225, 2, 226, 1, 126, 2, 227, 2, 228, 1, 127, 2, 229, 1, 128, 2, 230, 1, 129, 2, 231, 2, 232, 1, 130, 2, 233, 1, 131, 1, 132, 2, 234, 2, 235, 2, 236, 2, 237, 2, 238, 2, 239, 2, 240, 2, 241, 1, 142, 2, 243, 2, 244, 1, 143, 2, 242, 1, 144, 1, 145, 1, 146, 1, 147, 1, 148, 1, 149, 1, 150, 2, 245, 1, 151, 1, 152, 3, 42, 2, 251, 1, 156, 2, 252, 1, 157, 2, 253, 2, 254, 2, 255, 3, 0, 1, 158, 1, 159, 1, 160, 3, 2, 3, 43, 3, 3, 1, 161, 3, 4, 1, 162, 3, 5, 3, 6, 1, 163, 3, 7, 1, 164, 1, 165, 1, 166, 3, 8, 3, 1, 1, 167, 3, 9, 3, 10, 3, 11, 3, 12, 3, 13, 3, 14, 3, 15, 1, 168, 3, 16, 3, 17, 3, 18, 1, 179, 1, 180, 1, 181, 1, 182, 3, 19, 1, 183, 1, 184, 1, 185, 3, 20, 1, 186, 1, 187, 1, 188, 1, 189, 3, 21, 1, 190, 3, 22, 3, 23, 1, 191, 3, 24, 1, 192, 3, 25, 3, 44, 3, 26, 1, 203, 3, 27, 1, 204, 3, 28, 3, 29, 3, 30, 3, 31, 1, 205, 1, 206, 1, 207, 3, 32, 3, 45, 3, 33, 1, 208, 1, 209, 1, 210, 3, 212, 3, 46, 3, 47, 1, 224, 1, 225, 1, 226, 1, 227, 3, 48, 3, 49, 1, 243, 1, 244, 3, 217, 3, 218, 3, 211, 3, 210, 1, 245, 1, 246, 1, 247, 1, 248, 3, 213, 3, 214, 1, 249, 1, 250, 3, 205, 3, 206, 3, 50, 3, 51, 3, 191, 3, 192, 1, 251, 1, 252, 3, 215, 3, 216, 1, 253, 1, 254, 3, 193, 3, 194, 1, 255, 2, 0, 2, 1, 2, 2, 2, 3, 2, 4, 3, 52, 3, 53, 3, 195, 3, 196, 3, 54, 3, 55, 3, 225, 3, 226, 3, 197, 3, 198, 2, 5, 2, 6, 3, 199, 3, 200, 2, 7, 2, 8, 2, 9, 3, 209, 2, 10, 2, 11, 3, 207, 3, 208, 3, 56, 3, 57, 3, 58, 2, 12, 2, 13, 3, 223, 3, 224, 2, 14, 2, 15, 3, 219, 3, 220, 3, 201, 3, 202, 3, 221, 3, 222, 2, 16, 3, 69, 3, 68, 3, 70, 3, 71, 3, 72, 3, 73, 3, 74, 2, 17, 2, 18, 3, 203, 3, 204, 3, 95, 3, 96, 2, 19, 2, 20, 3, 97, 3, 98, 3, 227, 3, 228, 2, 21, 3, 99, 3, 229, 3, 100, 3, 101, 0, 245, 1, 82, 0, 242, 1, 79, 0, 244, 1, 81, 0, 249, 1, 86, 0, 104, 0, 105, 3, 230, 2, 49, 0, 108, 0, 109, 0, 110, 2, 50, 0, 111, 0, 112, 0, 113, 0, 144, 0, 145, 0, 101, 2, 51, 0, 99, 3, 190, 2, 54, 2, 65, 0, 125, 184, 1, 255, 133, 176, 4, 141, 0, 0, 0, 0, 17, 0, 210, 0, 3, 0, 1, 4, 9, 0, 0, 0, 180, 0, 0, 0, 3, 0, 1, 4, 9, 0, 1, 0, 22, 0, 180, 0, 3, 0, 1, 4, 9, 0, 2, 0, 12, 0, 202, 0, 3, 0, 1, 4, 9, 0, 3, 0, 56, 0, 214, 0, 3, 0, 1, 4, 9, 0, 4, 0, 36, 1, 14, 0, 3, 0, 1, 4, 9, 0, 5, 0, 26, 1, 50, 0, 3, 0, 1, 4, 9, 0, 6, 0, 34, 1, 76, 0, 3, 0, 1, 4, 9, 0, 7, 0, 74, 1, 110, 0, 3, 0, 1, 4, 9, 0, 9, 0, 12, 1, 184, 0, 3, 0, 1, 4, 9, 0, 11, 0, 20, 1, 196, 0, 3, 0, 1, 4, 9, 0, 12, 0, 38, 1, 216, 0, 3, 0, 1, 4, 9, 0, 13, 0, 92, 1, 254, 0, 3, 0, 1, 4, 9, 0, 14, 0, 84, 2, 90, 0, 3, 0, 1, 4, 9, 1, 0, 0, 12, 2, 174, 0, 3, 0, 1, 4, 9, 1, 11, 0, 12, 0, 202, 0, 3, 0, 1, 4, 9, 1, 14, 0, 14, 2, 186, 0, 3, 0, 1, 4, 9, 1, 17, 0, 12, 0, 202, 0, 67, 0, 111, 0, 112, 0, 121, 0, 114, 0, 105, 0, 103, 0, 104, 0, 116, 0, 32, 0, 50, 0, 48, 0, 49, 0, 53, 0, 32, 0, 84, 0, 104, 0, 101, 0, 32, 0, 82, 0, 111, 0, 98, 0, 111, 0, 116, 0, 111, 0, 32, 0, 77, 0, 111, 0, 110, 0, 111, 0, 32, 0, 80, 0, 114, 0, 111, 0, 106, 0, 101, 0, 99, 0, 116, 0, 32, 0, 65, 0, 117, 0, 116, 0, 104, 0, 111, 0, 114, 0, 115, 0, 32, 0, 40, 0, 104, 0, 116, 0, 116, 0, 112, 0, 115, 0, 58, 0, 47, 0, 47, 0, 103, 0, 105, 0, 116, 0, 104, 0, 117, 0, 98, 0, 46, 0, 99, 0, 111, 0, 109, 0, 47, 0, 103, 0, 111, 0, 111, 0, 103, 0, 108, 0, 101, 0, 102, 0, 111, 0, 110, 0, 116, 0, 115, 0, 47, 0, 114, 0, 111, 0, 98, 0, 111, 0, 116, 0, 111, 0, 109, 0, 111, 0, 110, 0, 111, 0, 41, 0, 82, 0, 111, 0, 98, 0, 111, 0, 116, 0, 111, 0, 32, 0, 77, 0, 111, 0, 110, 0, 111, 0, 73, 0, 116, 0, 97, 0, 108, 0, 105, 0, 99, 0, 51, 0, 46, 0, 48, 0, 48, 0, 48, 0, 59, 0, 112, 0, 121, 0, 114, 0, 115, 0, 59, 0, 82, 0, 111, 0, 98, 0, 111, 0, 116, 0, 111, 0, 77, 0, 111, 0, 110, 0, 111, 0, 45, 0, 73, 0, 116, 0, 97, 0, 108, 0, 105, 0, 99, 0, 82, 0, 111, 0, 98, 0, 111, 0, 116, 0, 111, 0, 32, 0, 77, 0, 111, 0, 110, 0, 111, 0, 32, 0, 73, 0, 116, 0, 97, 0, 108, 0, 105, 0, 99, 0, 86, 0, 101, 0, 114, 0, 115, 0, 105, 0, 111, 0, 110, 0, 32, 0, 51, 0, 46, 0, 48, 0, 48, 0, 48, 0, 82, 0, 111, 0, 98, 0, 111, 0, 116, 0, 111, 0, 77, 0, 111, 0, 110, 0, 111, 0, 45, 0, 73, 0, 116, 0, 97, 0, 108, 0, 105, 0, 99, 0, 82, 0, 111, 0, 98, 0, 111, 0, 116, 0, 111, 0, 32, 0, 77, 0, 111, 0, 110, 0, 111, 0, 32, 0, 105, 0, 115, 0, 32, 0, 97, 0, 32, 0, 116, 0, 114, 0, 97, 0, 100, 0, 101, 0, 109, 0, 97, 0, 114, 0, 107, 0, 32, 0, 111, 0, 102, 0, 32, 0, 71, 0, 111, 0, 111, 0, 103, 0, 108, 0, 101, 0, 46, 0, 71, 0, 111, 0, 111, 0, 103, 0, 108, 0, 101, 0, 71, 0, 111, 0, 111, 0, 103, 0, 108, 0, 101, 0, 46, 0, 99, 0, 111, 0, 109, 0, 67, 0, 104, 0, 114, 0, 105, 0, 115, 0, 116, 0, 105, 0, 97, 0, 110, 0, 32, 0, 82, 0, 111, 0, 98, 0, 101, 0, 114, 0, 116, 0, 115, 0, 111, 0, 110, 0, 76, 0, 105, 0, 99, 0, 101, 0, 110, 0, 115, 0, 101, 0, 100, 0, 32, 0, 117, 0, 110, 0, 100, 0, 101, 0, 114, 0, 32, 0, 116, 0, 104, 0, 101, 0, 32, 0, 65, 0, 112, 0, 97, 0, 99, 0, 104, 0, 101, 0, 32, 0, 76, 0, 105, 0, 99, 0, 101, 0, 110, 0, 115, 0, 101, 0, 44, 0, 32, 0, 86, 0, 101, 0, 114, 0, 115, 0, 105, 0, 111, 0, 110, 0, 32, 0, 50, 0, 46, 0, 48, 0, 104, 0, 116, 0, 116, 0, 112, 0, 58, 0, 47, 0, 47, 0, 119, 0, 119, 0, 119, 0, 46, 0, 97, 0, 112, 0, 97, 0, 99, 0, 104, 0, 101, 0, 46, 0, 111, 0, 114, 0, 103, 0, 47, 0, 108, 0, 105, 0, 99, 0, 101, 0, 110, 0, 115, 0, 101, 0, 115, 0, 47, 0, 76, 0, 73, 0, 67, 0, 69, 0, 78, 0, 83, 0, 69, 0, 45, 0, 50, 0, 46, 0, 48, 0, 87, 0, 101, 0, 105, 0, 103, 0, 104, 0, 116, 0, 82, 0, 101, 0, 103, 0, 117, 0, 108, 0, 97, 0, 114, 0, 0, 0, 2, 0, 0, 255, 246, 0, 0, 255, 106, 0, 100, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 231, 0, 0, 0, 3, 0, 36, 0, 37, 0, 38, 0, 39, 0, 40, 0, 41, 0, 42, 0, 43, 0, 44, 0, 45, 0, 46, 0, 47, 0, 48, 0, 49, 0, 50, 0, 51, 0, 52, 0, 53, 0, 54, 0, 55, 0, 56, 0, 57, 0, 58, 0, 59, 0, 60, 0, 61, 0, 68, 0, 69, 0, 70, 0, 71, 0, 72, 0, 73, 0, 74, 0, 75, 0, 76, 0, 77, 0, 78, 0, 79, 0, 80, 0, 81, 0, 82, 0, 83, 0, 84, 0, 85, 0, 86, 0, 87, 0, 88, 0, 89, 0, 90, 0, 91, 0, 92, 0, 93, 0, 19, 0, 20, 0, 21, 0, 22, 0, 23, 0, 24, 0, 25, 0, 26, 0, 27, 0, 28, 0, 241, 0, 242, 0, 243, 0, 157, 0, 158, 0, 244, 0, 245, 0, 246, 0, 144, 0, 160, 0, 176, 0, 177, 0, 234, 0, 237, 0, 238, 1, 2, 0, 137, 1, 3, 0, 7, 0, 132, 0, 133, 0, 150, 0, 166, 0, 247, 1, 4, 1, 5, 0, 189, 0, 4, 0, 163, 0, 34, 0, 162, 0, 15, 0, 17, 0, 29, 0, 30, 0, 171, 0, 195, 0, 135, 0, 66, 0, 16, 0, 178, 0, 179, 0, 10, 0, 5, 0, 182, 0, 183, 0, 196, 0, 180, 0, 181, 0, 197, 1, 6, 1, 7, 0, 11, 0, 12, 0, 62, 0, 64, 0, 94, 0, 96, 0, 190, 0, 191, 0, 14, 0, 239, 0, 147, 0, 240, 0, 184, 0, 32, 0, 143, 0, 167, 0, 31, 0, 33, 0, 148, 0, 149, 0, 164, 0, 18, 0, 63, 0, 188, 0, 8, 0, 198, 0, 95, 0, 232, 0, 130, 0, 194, 0, 139, 0, 138, 0, 140, 0, 131, 0, 13, 0, 6, 0, 9, 0, 35, 0, 134, 0, 136, 0, 65, 0, 97, 0, 201, 1, 8, 0, 199, 0, 98, 0, 173, 1, 9, 1, 10, 0, 99, 1, 11, 0, 174, 1, 12, 0, 253, 0, 255, 0, 100, 1, 13, 1, 14, 1, 15, 0, 101, 1, 16, 1, 17, 0, 200, 0, 202, 1, 18, 0, 203, 1, 19, 1, 20, 1, 21, 0, 233, 0, 248, 1, 22, 1, 23, 1, 24, 1, 25, 0, 204, 1, 26, 0, 205, 0, 206, 0, 250, 0, 207, 1, 27, 1, 28, 1, 29, 1, 30, 1, 31, 1, 32, 1, 33, 1, 34, 1, 35, 0, 226, 1, 36, 1, 37, 1, 38, 0, 102, 0, 208, 1, 39, 0, 209, 0, 103, 0, 211, 1, 40, 1, 41, 1, 42, 0, 145, 1, 43, 0, 175, 1, 44, 1, 45, 1, 46, 1, 47, 0, 228, 0, 251, 1, 48, 1, 49, 1, 50, 0, 212, 1, 51, 0, 213, 0, 104, 0, 214, 1, 52, 1, 53, 1, 54, 1, 55, 1, 56, 1, 57, 1, 58, 1, 59, 1, 60, 1, 61, 0, 235, 1, 62, 0, 187, 1, 63, 1, 64, 0, 230, 1, 65, 0, 105, 1, 66, 0, 107, 0, 108, 0, 106, 1, 67, 1, 68, 0, 110, 1, 69, 0, 109, 1, 70, 0, 254, 1, 0, 0, 111, 1, 71, 1, 72, 1, 1, 0, 112, 1, 73, 1, 74, 0, 114, 0, 115, 1, 75, 0, 113, 1, 76, 1, 77, 1, 78, 0, 249, 1, 79, 1, 80, 1, 81, 1, 82, 0, 116, 1, 83, 0, 118, 0, 119, 0, 117, 1, 84, 1, 85, 1, 86, 1, 87, 1, 88, 1, 89, 1, 90, 1, 91, 1, 92, 0, 227, 1, 93, 1, 94, 1, 95, 0, 120, 0, 121, 1, 96, 0, 123, 0, 124, 0, 122, 1, 97, 1, 98, 1, 99, 0, 161, 1, 100, 0, 125, 1, 101, 1, 102, 1, 103, 1, 104, 0, 229, 0, 252, 1, 105, 1, 106, 1, 107, 0, 126, 1, 108, 0, 128, 0, 129, 0, 127, 1, 109, 1, 110, 1, 111, 1, 112, 1, 113, 1, 114, 1, 115, 1, 116, 1, 117, 1, 118, 0, 236, 1, 119, 0, 186, 1, 120, 1, 121, 0, 231, 1, 122, 0, 67, 0, 141, 0, 216, 0, 217, 0, 218, 0, 219, 0, 220, 0, 142, 0, 221, 0, 223, 0, 225, 1, 123, 0, 222, 0, 224, 1, 124, 0, 2, 0, 169, 0, 151, 0, 170, 0, 215, 1, 125, 1, 126, 1, 127, 1, 128, 1, 129, 1, 130, 1, 131, 1, 132, 1, 133, 1, 134, 1, 135, 1, 136, 1, 137, 1, 138, 0, 168, 1, 139, 1, 140, 1, 141, 1, 142, 1, 143, 1, 144, 1, 145, 0, 159, 1, 146, 1, 147, 1, 148, 1, 149, 1, 150, 1, 151, 1, 152, 1, 153, 1, 154, 1, 155, 1, 156, 0, 155, 1, 157, 1, 158, 1, 159, 1, 160, 1, 161, 1, 162, 1, 163, 1, 164, 1, 165, 1, 166, 1, 167, 1, 168, 1, 169, 1, 170, 1, 171, 1, 172, 1, 173, 1, 174, 1, 175, 1, 176, 1, 177, 1, 178, 1, 179, 1, 180, 1, 181, 1, 182, 1, 183, 1, 184, 1, 185, 1, 186, 1, 187, 1, 188, 1, 189, 1, 190, 1, 191, 1, 192, 1, 193, 1, 194, 1, 195, 1, 196, 1, 197, 1, 198, 1, 199, 1, 200, 1, 201, 1, 202, 1, 203, 1, 204, 1, 205, 1, 206, 1, 207, 1, 208, 1, 209, 1, 210, 1, 211, 1, 212, 1, 213, 1, 214, 1, 215, 1, 216, 1, 217, 1, 218, 1, 219, 1, 220, 1, 221, 1, 222, 1, 223, 1, 224, 1, 225, 1, 226, 1, 227, 1, 228, 1, 229, 1, 230, 1, 231, 1, 232, 1, 233, 1, 234, 1, 235, 1, 236, 1, 237, 1, 238, 1, 239, 1, 240, 1, 241, 1, 242, 1, 243, 1, 244, 1, 245, 1, 246, 1, 247, 1, 248, 1, 249, 1, 250, 1, 251, 1, 252, 1, 253, 1, 254, 1, 255, 2, 0, 2, 1, 2, 2, 2, 3, 2, 4, 2, 5, 2, 6, 2, 7, 2, 8, 2, 9, 2, 10, 2, 11, 2, 12, 2, 13, 2, 14, 2, 15, 2, 16, 2, 17, 2, 18, 2, 19, 2, 20, 2, 21, 2, 22, 2, 23, 2, 24, 2, 25, 2, 26, 2, 27, 2, 28, 2, 29, 2, 30, 2, 31, 2, 32, 2, 33, 2, 34, 2, 35, 2, 36, 2, 37, 2, 38, 2, 39, 2, 40, 2, 41, 2, 42, 2, 43, 2, 44, 2, 45, 2, 46, 2, 47, 2, 48, 2, 49, 2, 50, 2, 51, 2, 52, 2, 53, 2, 54, 2, 55, 2, 56, 2, 57, 2, 58, 2, 59, 2, 60, 2, 61, 2, 62, 2, 63, 2, 64, 2, 65, 2, 66, 2, 67, 2, 68, 2, 69, 2, 70, 2, 71, 2, 72, 2, 73, 2, 74, 0, 152, 0, 154, 0, 153, 0, 165, 0, 146, 0, 156, 0, 185, 2, 75, 2, 76, 2, 77, 2, 78, 2, 79, 2, 80, 2, 81, 2, 82, 2, 83, 2, 84, 2, 85, 2, 86, 2, 87, 2, 88, 2, 89, 2, 90, 2, 91, 2, 92, 2, 93, 2, 94, 2, 95, 2, 96, 2, 97, 2, 98, 2, 99, 2, 100, 2, 101, 2, 102, 2, 103, 2, 104, 2, 105, 2, 106, 2, 107, 2, 108, 2, 109, 2, 110, 2, 111, 2, 112, 2, 113, 2, 114, 2, 115, 2, 116, 2, 117, 2, 118, 2, 119, 0, 172, 2, 120, 2, 121, 2, 122, 2, 123, 2, 124, 2, 125, 2, 126, 2, 127, 2, 128, 2, 129, 2, 130, 2, 131, 2, 132, 2, 133, 2, 134, 2, 135, 2, 136, 2, 137, 2, 138, 2, 139, 2, 140, 2, 141, 2, 142, 2, 143, 2, 144, 2, 145, 2, 146, 2, 147, 2, 148, 2, 149, 2, 150, 2, 151, 2, 152, 2, 153, 2, 154, 2, 155, 2, 156, 2, 157, 2, 158, 2, 159, 2, 160, 2, 161, 2, 162, 2, 163, 2, 164, 2, 165, 2, 166, 2, 167, 2, 168, 2, 169, 2, 170, 2, 171, 2, 172, 2, 173, 2, 174, 2, 175, 2, 176, 2, 177, 2, 178, 2, 179, 2, 180, 2, 181, 2, 182, 2, 183, 2, 184, 2, 185, 2, 186, 2, 187, 2, 188, 2, 189, 2, 190, 2, 191, 2, 192, 2, 193, 2, 194, 2, 195, 2, 196, 2, 197, 2, 198, 2, 199, 2, 200, 2, 201, 2, 202, 2, 203, 2, 204, 2, 205, 2, 206, 2, 207, 2, 208, 2, 209, 2, 210, 2, 211, 2, 212, 2, 213, 2, 214, 2, 215, 2, 216, 2, 217, 2, 218, 2, 219, 2, 220, 2, 221, 2, 222, 2, 223, 2, 224, 2, 225, 2, 226, 2, 227, 2, 228, 2, 229, 2, 230, 2, 231, 2, 232, 2, 233, 2, 234, 2, 235, 2, 236, 2, 237, 2, 238, 2, 239, 2, 240, 2, 241, 2, 242, 2, 243, 2, 244, 2, 245, 2, 246, 2, 247, 2, 248, 2, 249, 2, 250, 2, 251, 2, 252, 2, 253, 2, 254, 2, 255, 3, 0, 3, 1, 3, 2, 3, 3, 3, 4, 3, 5, 3, 6, 3, 7, 3, 8, 3, 9, 3, 10, 3, 11, 3, 12, 3, 13, 3, 14, 3, 15, 3, 16, 3, 17, 3, 18, 3, 19, 3, 20, 3, 21, 3, 22, 3, 23, 3, 24, 3, 25, 3, 26, 3, 27, 3, 28, 3, 29, 3, 30, 3, 31, 3, 32, 3, 33, 3, 34, 3, 35, 3, 36, 3, 37, 3, 38, 3, 39, 3, 40, 3, 41, 3, 42, 3, 43, 3, 44, 3, 45, 3, 46, 3, 47, 3, 48, 3, 49, 3, 50, 3, 51, 3, 52, 3, 53, 3, 54, 3, 55, 3, 56, 3, 57, 3, 58, 3, 59, 3, 60, 3, 61, 3, 62, 3, 63, 3, 64, 3, 65, 3, 66, 3, 67, 3, 68, 3, 69, 3, 70, 3, 71, 3, 72, 3, 73, 3, 74, 3, 75, 3, 76, 3, 77, 3, 78, 3, 79, 3, 80, 3, 81, 3, 82, 3, 83, 3, 84, 3, 85, 3, 86, 3, 87, 3, 88, 3, 89, 3, 90, 3, 91, 3, 92, 3, 93, 3, 94, 3, 95, 3, 96, 3, 97, 3, 98, 3, 99, 3, 100, 3, 101, 3, 102, 3, 103, 3, 104, 3, 105, 3, 106, 3, 107, 3, 108, 3, 109, 3, 110, 3, 111, 3, 112, 3, 113, 3, 114, 3, 115, 3, 116, 3, 117, 3, 118, 3, 119, 3, 120, 3, 121, 3, 122, 3, 123, 3, 124, 3, 125, 3, 126, 3, 127, 3, 128, 3, 129, 3, 130, 3, 131, 3, 132, 3, 133, 3, 134, 3, 135, 3, 136, 3, 137, 3, 138, 3, 139, 3, 140, 3, 141, 3, 142, 3, 143, 3, 144, 3, 145, 3, 146, 3, 147, 3, 148, 3, 149, 3, 150, 3, 151, 3, 152, 3, 153, 3, 154, 3, 155, 3, 156, 3, 157, 3, 158, 3, 159, 3, 160, 3, 161, 3, 162, 3, 163, 3, 164, 3, 165, 3, 166, 3, 167, 3, 168, 3, 169, 3, 170, 3, 171, 3, 172, 3, 173, 3, 174, 3, 175, 3, 176, 3, 177, 3, 178, 3, 179, 3, 180, 3, 181, 3, 182, 3, 183, 3, 184, 3, 185, 3, 186, 3, 187, 3, 188, 3, 189, 3, 190, 3, 191, 3, 192, 3, 193, 3, 194, 3, 195, 3, 196, 3, 197, 3, 198, 3, 199, 3, 200, 3, 201, 3, 202, 3, 203, 3, 204, 3, 205, 3, 206, 3, 207, 3, 208, 3, 209, 3, 210, 3, 211, 3, 212, 3, 213, 3, 214, 3, 215, 3, 216, 3, 217, 3, 218, 3, 219, 3, 220, 3, 221, 3, 222, 3, 223, 3, 224, 3, 225, 3, 226, 3, 227, 3, 228, 3, 229, 3, 230, 3, 231, 3, 232, 3, 233, 3, 234, 12, 107, 103, 114, 101, 101, 110, 108, 97, 110, 100, 105, 99, 5, 115, 99, 104, 119, 97, 4, 108, 105, 114, 97, 6, 112, 101, 115, 101, 116, 97, 6, 109, 105, 110, 117, 116, 101, 6, 115, 101, 99, 111, 110, 100, 6, 65, 98, 114, 101, 118, 101, 7, 65, 109, 97, 99, 114, 111, 110, 7, 65, 111, 103, 111, 110, 101, 107, 10, 65, 114, 105, 110, 103, 97, 99, 117, 116, 101, 7, 65, 69, 97, 99, 117, 116, 101, 11, 67, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 6, 68, 99, 97, 114, 111, 110, 6, 68, 99, 114, 111, 97, 116, 6, 69, 98, 114, 101, 118, 101, 6, 69, 99, 97, 114, 111, 110, 10, 69, 100, 111, 116, 97, 99, 99, 101, 110, 116, 7, 69, 109, 97, 99, 114, 111, 110, 3, 69, 110, 103, 7, 69, 111, 103, 111, 110, 101, 107, 11, 71, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 12, 71, 99, 111, 109, 109, 97, 97, 99, 99, 101, 110, 116, 4, 72, 98, 97, 114, 11, 72, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 6, 73, 98, 114, 101, 118, 101, 7, 73, 109, 97, 99, 114, 111, 110, 7, 73, 111, 103, 111, 110, 101, 107, 6, 73, 116, 105, 108, 100, 101, 11, 74, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 12, 75, 99, 111, 109, 109, 97, 97, 99, 99, 101, 110, 116, 6, 76, 97, 99, 117, 116, 101, 6, 76, 99, 97, 114, 111, 110, 12, 76, 99, 111, 109, 109, 97, 97, 99, 99, 101, 110, 116, 4, 76, 100, 111, 116, 6, 78, 97, 99, 117, 116, 101, 6, 78, 99, 97, 114, 111, 110, 12, 78, 99, 111, 109, 109, 97, 97, 99, 99, 101, 110, 116, 6, 79, 98, 114, 101, 118, 101, 5, 79, 104, 111, 114, 110, 13, 79, 104, 117, 110, 103, 97, 114, 117, 109, 108, 97, 117, 116, 7, 79, 109, 97, 99, 114, 111, 110, 11, 79, 115, 108, 97, 115, 104, 97, 99, 117, 116, 101, 6, 82, 97, 99, 117, 116, 101, 6, 82, 99, 97, 114, 111, 110, 12, 82, 99, 111, 109, 109, 97, 97, 99, 99, 101, 110, 116, 6, 83, 97, 99, 117, 116, 101, 11, 83, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 4, 84, 98, 97, 114, 6, 84, 99, 97, 114, 111, 110, 6, 85, 98, 114, 101, 118, 101, 5, 85, 104, 111, 114, 110, 13, 85, 104, 117, 110, 103, 97, 114, 117, 109, 108, 97, 117, 116, 7, 85, 109, 97, 99, 114, 111, 110, 7, 85, 111, 103, 111, 110, 101, 107, 5, 85, 114, 105, 110, 103, 6, 85, 116, 105, 108, 100, 101, 6, 87, 97, 99, 117, 116, 101, 11, 87, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 9, 87, 100, 105, 101, 114, 101, 115, 105, 115, 6, 87, 103, 114, 97, 118, 101, 11, 89, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 6, 89, 103, 114, 97, 118, 101, 6, 90, 97, 99, 117, 116, 101, 10, 90, 100, 111, 116, 97, 99, 99, 101, 110, 116, 6, 97, 98, 114, 101, 118, 101, 7, 97, 109, 97, 99, 114, 111, 110, 7, 97, 111, 103, 111, 110, 101, 107, 10, 97, 114, 105, 110, 103, 97, 99, 117, 116, 101, 7, 97, 101, 97, 99, 117, 116, 101, 11, 99, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 6, 100, 99, 97, 114, 111, 110, 6, 101, 98, 114, 101, 118, 101, 6, 101, 99, 97, 114, 111, 110, 10, 101, 100, 111, 116, 97, 99, 99, 101, 110, 116, 7, 101, 109, 97, 99, 114, 111, 110, 3, 101, 110, 103, 7, 101, 111, 103, 111, 110, 101, 107, 11, 103, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 12, 103, 99, 111, 109, 109, 97, 97, 99, 99, 101, 110, 116, 4, 104, 98, 97, 114, 11, 104, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 6, 105, 98, 114, 101, 118, 101, 7, 105, 109, 97, 99, 114, 111, 110, 7, 105, 111, 103, 111, 110, 101, 107, 6, 105, 116, 105, 108, 100, 101, 11, 106, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 12, 107, 99, 111, 109, 109, 97, 97, 99, 99, 101, 110, 116, 6, 108, 97, 99, 117, 116, 101, 6, 108, 99, 97, 114, 111, 110, 12, 108, 99, 111, 109, 109, 97, 97, 99, 99, 101, 110, 116, 4, 108, 100, 111, 116, 6, 110, 97, 99, 117, 116, 101, 6, 110, 99, 97, 114, 111, 110, 12, 110, 99, 111, 109, 109, 97, 97, 99, 99, 101, 110, 116, 6, 111, 98, 114, 101, 118, 101, 5, 111, 104, 111, 114, 110, 13, 111, 104, 117, 110, 103, 97, 114, 117, 109, 108, 97, 117, 116, 7, 111, 109, 97, 99, 114, 111, 110, 11, 111, 115, 108, 97, 115, 104, 97, 99, 117, 116, 101, 6, 114, 97, 99, 117, 116, 101, 6, 114, 99, 97, 114, 111, 110, 12, 114, 99, 111, 109, 109, 97, 97, 99, 99, 101, 110, 116, 6, 115, 97, 99, 117, 116, 101, 11, 115, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 4, 116, 98, 97, 114, 6, 116, 99, 97, 114, 111, 110, 6, 117, 98, 114, 101, 118, 101, 5, 117, 104, 111, 114, 110, 13, 117, 104, 117, 110, 103, 97, 114, 117, 109, 108, 97, 117, 116, 7, 117, 109, 97, 99, 114, 111, 110, 7, 117, 111, 103, 111, 110, 101, 107, 5, 117, 114, 105, 110, 103, 6, 117, 116, 105, 108, 100, 101, 6, 119, 97, 99, 117, 116, 101, 11, 119, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 9, 119, 100, 105, 101, 114, 101, 115, 105, 115, 6, 119, 103, 114, 97, 118, 101, 11, 121, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 6, 121, 103, 114, 97, 118, 101, 6, 122, 97, 99, 117, 116, 101, 10, 122, 100, 111, 116, 97, 99, 99, 101, 110, 116, 8, 100, 111, 116, 98, 101, 108, 111, 119, 11, 99, 111, 109, 109, 97, 97, 99, 99, 101, 110, 116, 2, 73, 74, 2, 105, 106, 5, 108, 111, 110, 103, 115, 7, 117, 110, 105, 48, 50, 51, 55, 7, 117, 110, 105, 48, 50, 70, 51, 9, 103, 114, 97, 118, 101, 99, 111, 109, 98, 9, 97, 99, 117, 116, 101, 99, 111, 109, 98, 9, 116, 105, 108, 100, 101, 99, 111, 109, 98, 4, 104, 111, 111, 107, 7, 117, 110, 105, 48, 51, 48, 70, 5, 116, 111, 110, 111, 115, 13, 100, 105, 101, 114, 101, 115, 105, 115, 116, 111, 110, 111, 115, 9, 97, 110, 111, 116, 101, 108, 101, 105, 97, 5, 71, 97, 109, 109, 97, 5, 84, 104, 101, 116, 97, 6, 76, 97, 109, 98, 100, 97, 2, 88, 105, 2, 80, 105, 5, 83, 105, 103, 109, 97, 3, 80, 104, 105, 3, 80, 115, 105, 5, 97, 108, 112, 104, 97, 4, 98, 101, 116, 97, 5, 103, 97, 109, 109, 97, 5, 100, 101, 108, 116, 97, 7, 101, 112, 115, 105, 108, 111, 110, 4, 122, 101, 116, 97, 3, 101, 116, 97, 5, 116, 104, 101, 116, 97, 4, 105, 111, 116, 97, 6, 108, 97, 109, 98, 100, 97, 2, 120, 105, 3, 114, 104, 111, 6, 115, 105, 103, 109, 97, 49, 5, 115, 105, 103, 109, 97, 3, 116, 97, 117, 7, 117, 112, 115, 105, 108, 111, 110, 3, 112, 104, 105, 3, 112, 115, 105, 5, 111, 109, 101, 103, 97, 7, 117, 110, 105, 48, 51, 68, 49, 7, 117, 110, 105, 48, 51, 68, 50, 7, 117, 110, 105, 48, 51, 68, 54, 7, 117, 110, 105, 48, 52, 48, 50, 7, 117, 110, 105, 48, 52, 48, 52, 7, 117, 110, 105, 48, 52, 48, 57, 7, 117, 110, 105, 48, 52, 48, 65, 7, 117, 110, 105, 48, 52, 48, 66, 7, 117, 110, 105, 48, 52, 48, 70, 7, 117, 110, 105, 48, 52, 49, 49, 7, 117, 110, 105, 48, 52, 49, 52, 7, 117, 110, 105, 48, 52, 49, 54, 7, 117, 110, 105, 48, 52, 49, 55, 7, 117, 110, 105, 48, 52, 49, 56, 7, 117, 110, 105, 48, 52, 49, 66, 7, 117, 110, 105, 48, 52, 50, 51, 7, 117, 110, 105, 48, 52, 50, 54, 7, 117, 110, 105, 48, 52, 50, 55, 7, 117, 110, 105, 48, 52, 50, 56, 7, 117, 110, 105, 48, 52, 50, 57, 7, 117, 110, 105, 48, 52, 50, 65, 7, 117, 110, 105, 48, 52, 50, 66, 7, 117, 110, 105, 48, 52, 50, 67, 7, 117, 110, 105, 48, 52, 50, 68, 7, 117, 110, 105, 48, 52, 50, 69, 7, 117, 110, 105, 48, 52, 50, 70, 7, 117, 110, 105, 48, 52, 51, 49, 7, 117, 110, 105, 48, 52, 51, 50, 7, 117, 110, 105, 48, 52, 51, 51, 7, 117, 110, 105, 48, 52, 51, 52, 7, 117, 110, 105, 48, 52, 51, 54, 7, 117, 110, 105, 48, 52, 51, 55, 7, 117, 110, 105, 48, 52, 51, 56, 7, 117, 110, 105, 48, 52, 51, 65, 7, 117, 110, 105, 48, 52, 51, 66, 7, 117, 110, 105, 48, 52, 51, 67, 7, 117, 110, 105, 48, 52, 51, 68, 7, 117, 110, 105, 48, 52, 51, 70, 7, 117, 110, 105, 48, 52, 52, 50, 7, 117, 110, 105, 48, 52, 52, 52, 7, 117, 110, 105, 48, 52, 52, 54, 7, 117, 110, 105, 48, 52, 52, 55, 7, 117, 110, 105, 48, 52, 52, 56, 7, 117, 110, 105, 48, 52, 52, 57, 7, 117, 110, 105, 48, 52, 52, 65, 7, 117, 110, 105, 48, 52, 52, 66, 7, 117, 110, 105, 48, 52, 52, 67, 7, 117, 110, 105, 48, 52, 52, 68, 7, 117, 110, 105, 48, 52, 52, 69, 7, 117, 110, 105, 48, 52, 52, 70, 7, 117, 110, 105, 48, 52, 53, 50, 7, 117, 110, 105, 48, 52, 53, 52, 7, 117, 110, 105, 48, 52, 53, 57, 7, 117, 110, 105, 48, 52, 53, 65, 7, 117, 110, 105, 48, 52, 53, 66, 7, 117, 110, 105, 48, 52, 53, 70, 7, 117, 110, 105, 48, 52, 54, 48, 7, 117, 110, 105, 48, 52, 54, 49, 7, 117, 110, 105, 48, 52, 54, 51, 7, 117, 110, 105, 48, 52, 54, 52, 7, 117, 110, 105, 48, 52, 54, 53, 7, 117, 110, 105, 48, 52, 54, 54, 7, 117, 110, 105, 48, 52, 54, 55, 7, 117, 110, 105, 48, 52, 54, 56, 7, 117, 110, 105, 48, 52, 54, 57, 7, 117, 110, 105, 48, 52, 54, 65, 7, 117, 110, 105, 48, 52, 54, 66, 7, 117, 110, 105, 48, 52, 54, 67, 7, 117, 110, 105, 48, 52, 54, 68, 7, 117, 110, 105, 48, 52, 54, 69, 7, 117, 110, 105, 48, 52, 54, 70, 7, 117, 110, 105, 48, 52, 55, 50, 7, 117, 110, 105, 48, 52, 55, 51, 7, 117, 110, 105, 48, 52, 55, 52, 7, 117, 110, 105, 48, 52, 55, 53, 7, 117, 110, 105, 48, 52, 55, 56, 7, 117, 110, 105, 48, 52, 55, 57, 7, 117, 110, 105, 48, 52, 55, 65, 7, 117, 110, 105, 48, 52, 55, 66, 7, 117, 110, 105, 48, 52, 55, 67, 7, 117, 110, 105, 48, 52, 55, 68, 7, 117, 110, 105, 48, 52, 55, 69, 7, 117, 110, 105, 48, 52, 55, 70, 7, 117, 110, 105, 48, 52, 56, 48, 7, 117, 110, 105, 48, 52, 56, 49, 7, 117, 110, 105, 48, 52, 56, 50, 7, 117, 110, 105, 48, 52, 56, 51, 7, 117, 110, 105, 48, 52, 56, 52, 7, 117, 110, 105, 48, 52, 56, 53, 7, 117, 110, 105, 48, 52, 56, 54, 7, 117, 110, 105, 48, 52, 56, 56, 7, 117, 110, 105, 48, 52, 56, 57, 7, 117, 110, 105, 48, 52, 56, 69, 7, 117, 110, 105, 48, 52, 56, 70, 7, 117, 110, 105, 48, 52, 57, 48, 7, 117, 110, 105, 48, 52, 57, 49, 7, 117, 110, 105, 48, 52, 57, 52, 7, 117, 110, 105, 48, 52, 57, 53, 7, 117, 110, 105, 48, 52, 57, 67, 7, 117, 110, 105, 48, 52, 57, 68, 7, 117, 110, 105, 48, 52, 65, 48, 7, 117, 110, 105, 48, 52, 65, 49, 7, 117, 110, 105, 48, 52, 65, 52, 7, 117, 110, 105, 48, 52, 65, 53, 7, 117, 110, 105, 48, 52, 65, 54, 7, 117, 110, 105, 48, 52, 65, 55, 7, 117, 110, 105, 48, 52, 65, 56, 7, 117, 110, 105, 48, 52, 65, 57, 7, 117, 110, 105, 48, 52, 66, 52, 7, 117, 110, 105, 48, 52, 66, 53, 7, 117, 110, 105, 48, 52, 66, 56, 7, 117, 110, 105, 48, 52, 66, 57, 7, 117, 110, 105, 48, 52, 66, 65, 7, 117, 110, 105, 48, 52, 66, 67, 7, 117, 110, 105, 48, 52, 66, 68, 7, 117, 110, 105, 48, 52, 67, 51, 7, 117, 110, 105, 48, 52, 67, 52, 7, 117, 110, 105, 48, 52, 67, 55, 7, 117, 110, 105, 48, 52, 67, 56, 7, 117, 110, 105, 48, 52, 68, 56, 7, 117, 110, 105, 48, 52, 69, 48, 7, 117, 110, 105, 48, 52, 69, 49, 7, 117, 110, 105, 48, 52, 70, 65, 7, 117, 110, 105, 48, 52, 70, 66, 7, 117, 110, 105, 48, 53, 48, 48, 7, 117, 110, 105, 48, 53, 48, 50, 7, 117, 110, 105, 48, 53, 48, 51, 7, 117, 110, 105, 48, 53, 48, 52, 7, 117, 110, 105, 48, 53, 48, 53, 7, 117, 110, 105, 48, 53, 48, 54, 7, 117, 110, 105, 48, 53, 48, 55, 7, 117, 110, 105, 48, 53, 48, 56, 7, 117, 110, 105, 48, 53, 48, 57, 7, 117, 110, 105, 48, 53, 48, 65, 7, 117, 110, 105, 48, 53, 48, 66, 7, 117, 110, 105, 48, 53, 48, 67, 7, 117, 110, 105, 48, 53, 48, 68, 7, 117, 110, 105, 48, 53, 48, 69, 7, 117, 110, 105, 48, 53, 48, 70, 7, 117, 110, 105, 48, 53, 49, 48, 7, 117, 110, 105, 50, 48, 48, 48, 7, 117, 110, 105, 50, 48, 48, 49, 7, 117, 110, 105, 50, 48, 48, 50, 7, 117, 110, 105, 50, 48, 48, 51, 7, 117, 110, 105, 50, 48, 48, 52, 7, 117, 110, 105, 50, 48, 48, 53, 7, 117, 110, 105, 50, 48, 48, 54, 7, 117, 110, 105, 50, 48, 48, 55, 7, 117, 110, 105, 50, 48, 48, 56, 7, 117, 110, 105, 50, 48, 48, 57, 7, 117, 110, 105, 50, 48, 48, 65, 7, 117, 110, 105, 50, 48, 48, 66, 13, 117, 110, 100, 101, 114, 115, 99, 111, 114, 101, 100, 98, 108, 13, 113, 117, 111, 116, 101, 114, 101, 118, 101, 114, 115, 101, 100, 7, 117, 110, 105, 50, 48, 50, 53, 7, 117, 110, 105, 50, 48, 55, 52, 9, 110, 115, 117, 112, 101, 114, 105, 111, 114, 4, 69, 117, 114, 111, 7, 117, 110, 105, 50, 49, 48, 53, 7, 117, 110, 105, 50, 49, 49, 51, 7, 117, 110, 105, 50, 49, 49, 54, 9, 101, 115, 116, 105, 109, 97, 116, 101, 100, 9, 111, 110, 101, 101, 105, 103, 104, 116, 104, 12, 116, 104, 114, 101, 101, 101, 105, 103, 104, 116, 104, 115, 11, 102, 105, 118, 101, 101, 105, 103, 104, 116, 104, 115, 12, 115, 101, 118, 101, 110, 101, 105, 103, 104, 116, 104, 115, 7, 117, 110, 105, 70, 69, 70, 70, 7, 117, 110, 105, 70, 70, 70, 67, 7, 117, 110, 105, 70, 70, 70, 68, 19, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 116, 105, 108, 100, 101, 99, 111, 109, 98, 18, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 104, 111, 111, 107, 99, 111, 109, 98, 19, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 103, 114, 97, 118, 101, 99, 111, 109, 98, 19, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 97, 99, 117, 116, 101, 99, 111, 109, 98, 14, 98, 114, 101, 118, 101, 103, 114, 97, 118, 101, 99, 111, 109, 98, 17, 99, 111, 109, 109, 97, 97, 99, 99, 101, 110, 116, 114, 111, 116, 97, 116, 101, 6, 65, 46, 115, 109, 99, 112, 6, 66, 46, 115, 109, 99, 112, 6, 67, 46, 115, 109, 99, 112, 6, 68, 46, 115, 109, 99, 112, 6, 69, 46, 115, 109, 99, 112, 6, 70, 46, 115, 109, 99, 112, 6, 71, 46, 115, 109, 99, 112, 6, 72, 46, 115, 109, 99, 112, 6, 73, 46, 115, 109, 99, 112, 6, 74, 46, 115, 109, 99, 112, 6, 75, 46, 115, 109, 99, 112, 6, 76, 46, 115, 109, 99, 112, 6, 77, 46, 115, 109, 99, 112, 6, 78, 46, 115, 109, 99, 112, 6, 79, 46, 115, 109, 99, 112, 6, 81, 46, 115, 109, 99, 112, 6, 82, 46, 115, 109, 99, 112, 6, 83, 46, 115, 109, 99, 112, 6, 84, 46, 115, 109, 99, 112, 6, 85, 46, 115, 109, 99, 112, 6, 86, 46, 115, 109, 99, 112, 6, 87, 46, 115, 109, 99, 112, 6, 88, 46, 115, 109, 99, 112, 6, 89, 46, 115, 109, 99, 112, 6, 90, 46, 115, 109, 99, 112, 13, 98, 114, 101, 118, 101, 104, 111, 111, 107, 99, 111, 109, 98, 14, 98, 114, 101, 118, 101, 97, 99, 117, 116, 101, 99, 111, 109, 98, 8, 99, 114, 111, 115, 115, 98, 97, 114, 9, 114, 105, 110, 103, 97, 99, 117, 116, 101, 9, 100, 97, 115, 105, 97, 111, 120, 105, 97, 14, 98, 114, 101, 118, 101, 116, 105, 108, 100, 101, 99, 111, 109, 98, 11, 99, 121, 114, 105, 108, 108, 105, 99, 116, 105, 99, 12, 99, 121, 114, 105, 108, 108, 105, 99, 104, 111, 111, 107, 6, 80, 46, 115, 109, 99, 112, 5, 75, 46, 97, 108, 116, 15, 71, 101, 114, 109, 97, 110, 100, 98, 108, 115, 46, 115, 109, 99, 112, 7, 117, 110, 105, 48, 48, 65, 68, 7, 117, 110, 105, 48, 49, 48, 65, 7, 117, 110, 105, 48, 49, 48, 66, 7, 117, 110, 105, 48, 49, 50, 48, 7, 117, 110, 105, 48, 49, 50, 49, 11, 110, 97, 112, 111, 115, 116, 114, 111, 112, 104, 101, 7, 117, 110, 105, 48, 50, 49, 56, 7, 117, 110, 105, 48, 50, 49, 57, 7, 117, 110, 105, 48, 50, 49, 65, 7, 117, 110, 105, 48, 50, 49, 66, 7, 117, 110, 105, 48, 49, 54, 50, 12, 117, 110, 105, 48, 49, 54, 50, 46, 115, 109, 99, 112, 7, 117, 110, 105, 48, 49, 54, 51, 11, 68, 99, 114, 111, 97, 116, 46, 115, 109, 99, 112, 8, 69, 116, 104, 46, 115, 109, 99, 112, 9, 84, 98, 97, 114, 46, 115, 109, 99, 112, 11, 65, 103, 114, 97, 118, 101, 46, 115, 109, 99, 112, 11, 65, 97, 99, 117, 116, 101, 46, 115, 109, 99, 112, 16, 65, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 46, 115, 109, 99, 112, 11, 65, 116, 105, 108, 100, 101, 46, 115, 109, 99, 112, 14, 65, 100, 105, 101, 114, 101, 115, 105, 115, 46, 115, 109, 99, 112, 10, 65, 114, 105, 110, 103, 46, 115, 109, 99, 112, 15, 65, 114, 105, 110, 103, 97, 99, 117, 116, 101, 46, 115, 109, 99, 112, 13, 67, 99, 101, 100, 105, 108, 108, 97, 46, 115, 109, 99, 112, 11, 69, 103, 114, 97, 118, 101, 46, 115, 109, 99, 112, 11, 69, 97, 99, 117, 116, 101, 46, 115, 109, 99, 112, 16, 69, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 46, 115, 109, 99, 112, 14, 69, 100, 105, 101, 114, 101, 115, 105, 115, 46, 115, 109, 99, 112, 11, 73, 103, 114, 97, 118, 101, 46, 115, 109, 99, 112, 11, 73, 97, 99, 117, 116, 101, 46, 115, 109, 99, 112, 16, 73, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 46, 115, 109, 99, 112, 14, 73, 100, 105, 101, 114, 101, 115, 105, 115, 46, 115, 109, 99, 112, 11, 78, 116, 105, 108, 100, 101, 46, 115, 109, 99, 112, 11, 79, 103, 114, 97, 118, 101, 46, 115, 109, 99, 112, 11, 79, 97, 99, 117, 116, 101, 46, 115, 109, 99, 112, 16, 79, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 46, 115, 109, 99, 112, 11, 79, 116, 105, 108, 100, 101, 46, 115, 109, 99, 112, 14, 79, 100, 105, 101, 114, 101, 115, 105, 115, 46, 115, 109, 99, 112, 11, 85, 103, 114, 97, 118, 101, 46, 115, 109, 99, 112, 11, 85, 97, 99, 117, 116, 101, 46, 115, 109, 99, 112, 16, 85, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 46, 115, 109, 99, 112, 14, 85, 100, 105, 101, 114, 101, 115, 105, 115, 46, 115, 109, 99, 112, 11, 89, 97, 99, 117, 116, 101, 46, 115, 109, 99, 112, 12, 65, 109, 97, 99, 114, 111, 110, 46, 115, 109, 99, 112, 11, 65, 98, 114, 101, 118, 101, 46, 115, 109, 99, 112, 12, 65, 111, 103, 111, 110, 101, 107, 46, 115, 109, 99, 112, 11, 67, 97, 99, 117, 116, 101, 46, 115, 109, 99, 112, 16, 67, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 46, 115, 109, 99, 112, 11, 67, 99, 97, 114, 111, 110, 46, 115, 109, 99, 112, 11, 68, 99, 97, 114, 111, 110, 46, 115, 109, 99, 112, 12, 69, 109, 97, 99, 114, 111, 110, 46, 115, 109, 99, 112, 11, 69, 98, 114, 101, 118, 101, 46, 115, 109, 99, 112, 15, 69, 100, 111, 116, 97, 99, 99, 101, 110, 116, 46, 115, 109, 99, 112, 12, 69, 111, 103, 111, 110, 101, 107, 46, 115, 109, 99, 112, 11, 69, 99, 97, 114, 111, 110, 46, 115, 109, 99, 112, 16, 71, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 46, 115, 109, 99, 112, 11, 71, 98, 114, 101, 118, 101, 46, 115, 109, 99, 112, 17, 71, 99, 111, 109, 109, 97, 97, 99, 99, 101, 110, 116, 46, 115, 109, 99, 112, 16, 72, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 46, 115, 109, 99, 112, 11, 73, 116, 105, 108, 100, 101, 46, 115, 109, 99, 112, 12, 73, 109, 97, 99, 114, 111, 110, 46, 115, 109, 99, 112, 11, 73, 98, 114, 101, 118, 101, 46, 115, 109, 99, 112, 12, 73, 111, 103, 111, 110, 101, 107, 46, 115, 109, 99, 112, 15, 73, 100, 111, 116, 97, 99, 99, 101, 110, 116, 46, 115, 109, 99, 112, 16, 74, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 46, 115, 109, 99, 112, 17, 75, 99, 111, 109, 109, 97, 97, 99, 99, 101, 110, 116, 46, 115, 109, 99, 112, 11, 76, 97, 99, 117, 116, 101, 46, 115, 109, 99, 112, 17, 76, 99, 111, 109, 109, 97, 97, 99, 99, 101, 110, 116, 46, 115, 109, 99, 112, 11, 76, 99, 97, 114, 111, 110, 46, 115, 109, 99, 112, 9, 76, 100, 111, 116, 46, 115, 109, 99, 112, 11, 78, 97, 99, 117, 116, 101, 46, 115, 109, 99, 112, 17, 78, 99, 111, 109, 109, 97, 97, 99, 99, 101, 110, 116, 46, 115, 109, 99, 112, 11, 78, 99, 97, 114, 111, 110, 46, 115, 109, 99, 112, 12, 79, 109, 97, 99, 114, 111, 110, 46, 115, 109, 99, 112, 11, 79, 98, 114, 101, 118, 101, 46, 115, 109, 99, 112, 18, 79, 104, 117, 110, 103, 97, 114, 117, 109, 108, 97, 117, 116, 46, 115, 109, 99, 112, 11, 82, 97, 99, 117, 116, 101, 46, 115, 109, 99, 112, 17, 82, 99, 111, 109, 109, 97, 97, 99, 99, 101, 110, 116, 46, 115, 109, 99, 112, 11, 82, 99, 97, 114, 111, 110, 46, 115, 109, 99, 112, 11, 83, 97, 99, 117, 116, 101, 46, 115, 109, 99, 112, 16, 83, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 46, 115, 109, 99, 112, 13, 83, 99, 101, 100, 105, 108, 108, 97, 46, 115, 109, 99, 112, 11, 83, 99, 97, 114, 111, 110, 46, 115, 109, 99, 112, 11, 84, 99, 97, 114, 111, 110, 46, 115, 109, 99, 112, 11, 85, 116, 105, 108, 100, 101, 46, 115, 109, 99, 112, 12, 85, 109, 97, 99, 114, 111, 110, 46, 115, 109, 99, 112, 11, 85, 98, 114, 101, 118, 101, 46, 115, 109, 99, 112, 10, 85, 114, 105, 110, 103, 46, 115, 109, 99, 112, 18, 85, 104, 117, 110, 103, 97, 114, 117, 109, 108, 97, 117, 116, 46, 115, 109, 99, 112, 12, 85, 111, 103, 111, 110, 101, 107, 46, 115, 109, 99, 112, 16, 87, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 46, 115, 109, 99, 112, 16, 89, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 46, 115, 109, 99, 112, 14, 89, 100, 105, 101, 114, 101, 115, 105, 115, 46, 115, 109, 99, 112, 11, 90, 97, 99, 117, 116, 101, 46, 115, 109, 99, 112, 15, 90, 100, 111, 116, 97, 99, 99, 101, 110, 116, 46, 115, 109, 99, 112, 11, 90, 99, 97, 114, 111, 110, 46, 115, 109, 99, 112, 10, 65, 108, 112, 104, 97, 116, 111, 110, 111, 115, 12, 69, 112, 115, 105, 108, 111, 110, 116, 111, 110, 111, 115, 8, 69, 116, 97, 116, 111, 110, 111, 115, 9, 73, 111, 116, 97, 116, 111, 110, 111, 115, 12, 79, 109, 105, 99, 114, 111, 110, 116, 111, 110, 111, 115, 12, 85, 112, 115, 105, 108, 111, 110, 116, 111, 110, 111, 115, 10, 79, 109, 101, 103, 97, 116, 111, 110, 111, 115, 17, 105, 111, 116, 97, 100, 105, 101, 114, 101, 115, 105, 115, 116, 111, 110, 111, 115, 5, 65, 108, 112, 104, 97, 4, 66, 101, 116, 97, 7, 69, 112, 115, 105, 108, 111, 110, 4, 90, 101, 116, 97, 3, 69, 116, 97, 4, 73, 111, 116, 97, 5, 75, 97, 112, 112, 97, 2, 77, 117, 2, 78, 117, 7, 79, 109, 105, 99, 114, 111, 110, 3, 82, 104, 111, 3, 84, 97, 117, 7, 85, 112, 115, 105, 108, 111, 110, 3, 67, 104, 105, 12, 73, 111, 116, 97, 100, 105, 101, 114, 101, 115, 105, 115, 15, 85, 112, 115, 105, 108, 111, 110, 100, 105, 101, 114, 101, 115, 105, 115, 10, 97, 108, 112, 104, 97, 116, 111, 110, 111, 115, 12, 101, 112, 115, 105, 108, 111, 110, 116, 111, 110, 111, 115, 8, 101, 116, 97, 116, 111, 110, 111, 115, 9, 105, 111, 116, 97, 116, 111, 110, 111, 115, 20, 117, 112, 115, 105, 108, 111, 110, 100, 105, 101, 114, 101, 115, 105, 115, 116, 111, 110, 111, 115, 5, 107, 97, 112, 112, 97, 7, 111, 109, 105, 99, 114, 111, 110, 7, 117, 110, 105, 48, 51, 66, 67, 2, 110, 117, 3, 99, 104, 105, 12, 105, 111, 116, 97, 100, 105, 101, 114, 101, 115, 105, 115, 15, 117, 112, 115, 105, 108, 111, 110, 100, 105, 101, 114, 101, 115, 105, 115, 12, 111, 109, 105, 99, 114, 111, 110, 116, 111, 110, 111, 115, 12, 117, 112, 115, 105, 108, 111, 110, 116, 111, 110, 111, 115, 10, 111, 109, 101, 103, 97, 116, 111, 110, 111, 115, 7, 117, 110, 105, 48, 52, 48, 49, 7, 117, 110, 105, 48, 52, 48, 51, 7, 117, 110, 105, 48, 52, 48, 53, 7, 117, 110, 105, 48, 52, 48, 54, 7, 117, 110, 105, 48, 52, 48, 55, 7, 117, 110, 105, 48, 52, 48, 56, 7, 117, 110, 105, 48, 52, 49, 65, 7, 117, 110, 105, 48, 52, 48, 67, 7, 117, 110, 105, 48, 52, 48, 69, 7, 117, 110, 105, 48, 52, 49, 48, 7, 117, 110, 105, 48, 52, 49, 50, 7, 117, 110, 105, 48, 52, 49, 51, 7, 117, 110, 105, 48, 52, 49, 53, 7, 117, 110, 105, 48, 52, 49, 57, 7, 117, 110, 105, 48, 52, 49, 67, 7, 117, 110, 105, 48, 52, 49, 68, 7, 117, 110, 105, 48, 52, 49, 69, 7, 117, 110, 105, 48, 52, 49, 70, 7, 117, 110, 105, 48, 52, 50, 48, 7, 117, 110, 105, 48, 52, 50, 49, 7, 117, 110, 105, 48, 52, 50, 50, 7, 117, 110, 105, 48, 52, 50, 52, 7, 117, 110, 105, 48, 52, 50, 53, 7, 117, 110, 105, 48, 52, 51, 48, 7, 117, 110, 105, 48, 52, 51, 53, 7, 117, 110, 105, 48, 52, 51, 57, 7, 117, 110, 105, 48, 52, 51, 69, 7, 117, 110, 105, 48, 52, 52, 48, 7, 117, 110, 105, 48, 52, 52, 49, 7, 117, 110, 105, 48, 52, 52, 51, 7, 117, 110, 105, 48, 52, 52, 53, 7, 117, 110, 105, 48, 52, 53, 49, 7, 117, 110, 105, 48, 52, 53, 51, 7, 117, 110, 105, 48, 52, 53, 53, 7, 117, 110, 105, 48, 52, 53, 54, 7, 117, 110, 105, 48, 52, 53, 55, 7, 117, 110, 105, 48, 52, 53, 56, 7, 117, 110, 105, 48, 52, 53, 67, 7, 117, 110, 105, 48, 52, 53, 69, 9, 101, 120, 99, 108, 97, 109, 100, 98, 108, 7, 117, 110, 105, 48, 49, 70, 48, 7, 117, 110, 105, 48, 50, 66, 67, 7, 117, 110, 105, 49, 69, 51, 69, 7, 117, 110, 105, 49, 69, 51, 70, 7, 117, 110, 105, 49, 69, 48, 48, 7, 117, 110, 105, 49, 69, 48, 49, 7, 117, 110, 105, 49, 70, 52, 68, 7, 117, 110, 105, 48, 52, 48, 48, 7, 117, 110, 105, 48, 52, 48, 68, 7, 117, 110, 105, 48, 52, 53, 48, 7, 117, 110, 105, 48, 52, 53, 68, 7, 117, 110, 105, 48, 52, 55, 48, 7, 117, 110, 105, 48, 52, 55, 49, 7, 117, 110, 105, 48, 52, 55, 54, 7, 117, 110, 105, 48, 52, 55, 55, 7, 117, 110, 105, 48, 52, 57, 56, 7, 117, 110, 105, 48, 52, 57, 57, 7, 117, 110, 105, 48, 52, 65, 65, 7, 117, 110, 105, 48, 52, 65, 66, 7, 117, 110, 105, 48, 52, 65, 69, 7, 117, 110, 105, 48, 52, 65, 70, 7, 117, 110, 105, 48, 52, 67, 48, 7, 117, 110, 105, 48, 52, 67, 49, 7, 117, 110, 105, 48, 52, 67, 50, 7, 117, 110, 105, 48, 52, 67, 70, 7, 117, 110, 105, 48, 52, 68, 48, 7, 117, 110, 105, 48, 52, 68, 49, 7, 117, 110, 105, 48, 52, 68, 50, 7, 117, 110, 105, 48, 52, 68, 51, 7, 117, 110, 105, 48, 52, 68, 52, 7, 117, 110, 105, 48, 52, 68, 53, 7, 117, 110, 105, 48, 52, 68, 54, 7, 117, 110, 105, 48, 52, 68, 55, 7, 117, 110, 105, 48, 52, 68, 65, 7, 117, 110, 105, 48, 52, 68, 57, 7, 117, 110, 105, 48, 52, 68, 66, 7, 117, 110, 105, 48, 52, 68, 67, 7, 117, 110, 105, 48, 52, 68, 68, 7, 117, 110, 105, 48, 52, 68, 69, 7, 117, 110, 105, 48, 52, 68, 70, 7, 117, 110, 105, 48, 52, 69, 50, 7, 117, 110, 105, 48, 52, 69, 51, 7, 117, 110, 105, 48, 52, 69, 52, 7, 117, 110, 105, 48, 52, 69, 53, 7, 117, 110, 105, 48, 52, 69, 54, 7, 117, 110, 105, 48, 52, 69, 55, 7, 117, 110, 105, 48, 52, 69, 56, 7, 117, 110, 105, 48, 52, 69, 57, 7, 117, 110, 105, 48, 52, 69, 65, 7, 117, 110, 105, 48, 52, 69, 66, 7, 117, 110, 105, 48, 52, 69, 67, 7, 117, 110, 105, 48, 52, 69, 68, 7, 117, 110, 105, 48, 52, 69, 69, 7, 117, 110, 105, 48, 52, 69, 70, 7, 117, 110, 105, 48, 52, 70, 48, 7, 117, 110, 105, 48, 52, 70, 49, 7, 117, 110, 105, 48, 52, 70, 50, 7, 117, 110, 105, 48, 52, 70, 51, 7, 117, 110, 105, 48, 52, 70, 52, 7, 117, 110, 105, 48, 52, 70, 53, 7, 117, 110, 105, 48, 52, 70, 56, 7, 117, 110, 105, 48, 52, 70, 57, 7, 117, 110, 105, 48, 52, 70, 67, 7, 117, 110, 105, 48, 52, 70, 68, 7, 117, 110, 105, 48, 53, 48, 49, 7, 117, 110, 105, 48, 53, 49, 50, 7, 117, 110, 105, 48, 53, 49, 51, 7, 117, 110, 105, 49, 69, 65, 48, 7, 117, 110, 105, 49, 69, 65, 49, 7, 117, 110, 105, 49, 69, 65, 50, 7, 117, 110, 105, 49, 69, 65, 51, 7, 117, 110, 105, 49, 69, 65, 52, 7, 117, 110, 105, 49, 69, 65, 53, 7, 117, 110, 105, 49, 69, 65, 54, 7, 117, 110, 105, 49, 69, 65, 55, 7, 117, 110, 105, 49, 69, 65, 56, 7, 117, 110, 105, 49, 69, 65, 57, 7, 117, 110, 105, 49, 69, 65, 65, 7, 117, 110, 105, 49, 69, 65, 66, 7, 117, 110, 105, 49, 69, 65, 67, 7, 117, 110, 105, 49, 69, 65, 68, 7, 117, 110, 105, 49, 69, 65, 69, 7, 117, 110, 105, 49, 69, 65, 70, 7, 117, 110, 105, 49, 69, 66, 48, 7, 117, 110, 105, 49, 69, 66, 49, 7, 117, 110, 105, 49, 69, 66, 50, 7, 117, 110, 105, 49, 69, 66, 51, 7, 117, 110, 105, 49, 69, 66, 52, 7, 117, 110, 105, 49, 69, 66, 53, 7, 117, 110, 105, 49, 69, 66, 54, 7, 117, 110, 105, 49, 69, 66, 55, 7, 117, 110, 105, 49, 69, 66, 56, 7, 117, 110, 105, 49, 69, 66, 57, 7, 117, 110, 105, 49, 69, 66, 65, 7, 117, 110, 105, 49, 69, 66, 66, 7, 117, 110, 105, 49, 69, 66, 67, 7, 117, 110, 105, 49, 69, 66, 68, 7, 117, 110, 105, 49, 69, 66, 69, 7, 117, 110, 105, 49, 69, 66, 70, 7, 117, 110, 105, 49, 69, 67, 48, 7, 117, 110, 105, 49, 69, 67, 49, 7, 117, 110, 105, 49, 69, 67, 50, 7, 117, 110, 105, 49, 69, 67, 51, 7, 117, 110, 105, 49, 69, 67, 52, 7, 117, 110, 105, 49, 69, 67, 53, 7, 117, 110, 105, 49, 69, 67, 54, 7, 117, 110, 105, 49, 69, 67, 55, 7, 117, 110, 105, 49, 69, 67, 56, 7, 117, 110, 105, 49, 69, 67, 57, 7, 117, 110, 105, 49, 69, 67, 65, 7, 117, 110, 105, 49, 69, 67, 66, 7, 117, 110, 105, 49, 69, 67, 67, 7, 117, 110, 105, 49, 69, 67, 68, 7, 117, 110, 105, 49, 69, 67, 69, 7, 117, 110, 105, 49, 69, 67, 70, 7, 117, 110, 105, 49, 69, 68, 48, 7, 117, 110, 105, 49, 69, 68, 49, 7, 117, 110, 105, 49, 69, 68, 50, 7, 117, 110, 105, 49, 69, 68, 51, 7, 117, 110, 105, 49, 69, 68, 52, 7, 117, 110, 105, 49, 69, 68, 53, 7, 117, 110, 105, 49, 69, 68, 54, 7, 117, 110, 105, 49, 69, 68, 55, 7, 117, 110, 105, 49, 69, 68, 56, 7, 117, 110, 105, 49, 69, 68, 57, 7, 117, 110, 105, 49, 69, 68, 65, 7, 117, 110, 105, 49, 69, 68, 66, 7, 117, 110, 105, 49, 69, 68, 67, 7, 117, 110, 105, 49, 69, 68, 68, 7, 117, 110, 105, 49, 69, 68, 69, 7, 117, 110, 105, 49, 69, 68, 70, 7, 117, 110, 105, 49, 69, 69, 48, 7, 117, 110, 105, 49, 69, 69, 49, 7, 117, 110, 105, 49, 69, 69, 50, 7, 117, 110, 105, 49, 69, 69, 51, 7, 117, 110, 105, 49, 69, 69, 52, 7, 117, 110, 105, 49, 69, 69, 53, 7, 117, 110, 105, 49, 69, 69, 54, 7, 117, 110, 105, 49, 69, 69, 55, 7, 117, 110, 105, 49, 69, 69, 56, 7, 117, 110, 105, 49, 69, 69, 57, 7, 117, 110, 105, 49, 69, 69, 65, 7, 117, 110, 105, 49, 69, 69, 66, 7, 117, 110, 105, 49, 69, 69, 67, 7, 117, 110, 105, 49, 69, 69, 68, 7, 117, 110, 105, 49, 69, 69, 69, 7, 117, 110, 105, 49, 69, 69, 70, 7, 117, 110, 105, 49, 69, 70, 48, 7, 117, 110, 105, 49, 69, 70, 49, 7, 117, 110, 105, 49, 69, 70, 52, 7, 117, 110, 105, 49, 69, 70, 53, 7, 117, 110, 105, 49, 69, 70, 54, 7, 117, 110, 105, 49, 69, 70, 55, 7, 117, 110, 105, 49, 69, 70, 56, 7, 117, 110, 105, 49, 69, 70, 57, 7, 117, 110, 105, 50, 48, 65, 66, 7, 117, 110, 105, 48, 52, 57, 65, 7, 117, 110, 105, 48, 52, 57, 66, 7, 117, 110, 105, 48, 52, 65, 50, 7, 117, 110, 105, 48, 52, 65, 51, 7, 117, 110, 105, 48, 52, 65, 67, 7, 117, 110, 105, 48, 52, 65, 68, 7, 117, 110, 105, 48, 52, 66, 50, 7, 117, 110, 105, 48, 52, 66, 51, 7, 117, 110, 105, 48, 52, 66, 54, 7, 117, 110, 105, 48, 52, 66, 55, 7, 117, 110, 105, 48, 52, 67, 66, 7, 117, 110, 105, 48, 52, 67, 67, 7, 117, 110, 105, 48, 52, 70, 54, 7, 117, 110, 105, 48, 52, 70, 55, 7, 117, 110, 105, 48, 52, 57, 54, 7, 117, 110, 105, 48, 52, 57, 55, 7, 117, 110, 105, 48, 52, 66, 69, 7, 117, 110, 105, 48, 52, 66, 70, 7, 117, 110, 105, 48, 52, 66, 66, 7, 117, 110, 105, 48, 52, 56, 68, 7, 117, 110, 105, 48, 52, 56, 67, 7, 117, 110, 105, 48, 52, 54, 50, 7, 117, 110, 105, 48, 52, 57, 50, 7, 117, 110, 105, 48, 52, 57, 51, 7, 117, 110, 105, 48, 52, 57, 69, 7, 117, 110, 105, 48, 52, 57, 70, 7, 117, 110, 105, 48, 52, 56, 65, 7, 117, 110, 105, 48, 52, 56, 66, 7, 117, 110, 105, 48, 52, 67, 57, 7, 117, 110, 105, 48, 52, 67, 65, 7, 117, 110, 105, 48, 52, 67, 68, 7, 117, 110, 105, 48, 52, 67, 69, 7, 117, 110, 105, 48, 52, 67, 53, 7, 117, 110, 105, 48, 52, 67, 54, 7, 117, 110, 105, 48, 52, 66, 48, 7, 117, 110, 105, 48, 52, 66, 49, 7, 117, 110, 105, 48, 52, 70, 69, 7, 117, 110, 105, 48, 52, 70, 70, 7, 117, 110, 105, 48, 53, 49, 49, 7, 117, 110, 105, 50, 48, 49, 53, 0, 1, 0, 1, 255, 255, 0, 15, 0, 1, 0, 0, 0, 10, 0, 48, 0, 62, 0, 4, 68, 70, 76, 84, 0, 26, 99, 121, 114, 108, 0, 26, 103, 114, 101, 107, 0, 26, 108, 97, 116, 110, 0, 26, 0, 4, 0, 0, 0, 0, 255, 255, 0, 1, 0, 0, 0, 1, 115, 109, 99, 112, 0, 8, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4, 0, 1, 0, 0, 0, 1, 0, 8, 0, 2, 1, 190, 0, 220, 2, 79, 2, 80, 2, 81, 2, 82, 2, 83, 2, 84, 2, 85, 2, 86, 2, 87, 2, 88, 2, 89, 2, 90, 2, 91, 2, 92, 2, 93, 2, 112, 2, 94, 2, 95, 2, 96, 2, 97, 2, 98, 2, 99, 2, 100, 2, 101, 2, 102, 2, 103, 2, 79, 2, 80, 2, 81, 2, 82, 2, 83, 2, 84, 2, 85, 2, 86, 2, 87, 2, 88, 2, 89, 2, 90, 2, 91, 2, 92, 2, 93, 2, 112, 2, 94, 2, 95, 2, 96, 2, 97, 2, 98, 2, 99, 2, 100, 2, 101, 2, 102, 2, 103, 2, 130, 2, 114, 2, 133, 2, 160, 2, 134, 2, 136, 2, 132, 2, 159, 2, 161, 2, 137, 2, 138, 2, 135, 2, 162, 2, 164, 2, 139, 2, 163, 2, 165, 2, 129, 2, 141, 2, 167, 2, 170, 2, 142, 2, 143, 2, 168, 2, 140, 2, 166, 2, 169, 2, 130, 2, 172, 2, 171, 2, 173, 2, 174, 2, 145, 2, 177, 2, 146, 2, 147, 2, 179, 2, 144, 2, 176, 2, 178, 2, 175, 2, 180, 2, 181, 2, 182, 2, 184, 2, 183, 2, 185, 2, 186, 2, 188, 2, 187, 2, 148, 2, 150, 2, 190, 2, 151, 2, 153, 2, 149, 2, 191, 2, 189, 2, 152, 2, 192, 2, 194, 2, 193, 2, 195, 2, 198, 2, 197, 2, 196, 2, 131, 2, 199, 2, 155, 2, 202, 2, 156, 2, 157, 2, 154, 2, 204, 2, 201, 2, 205, 2, 203, 2, 200, 2, 206, 2, 158, 2, 207, 2, 208, 2, 209, 2, 211, 2, 210, 2, 133, 2, 160, 2, 134, 2, 136, 2, 132, 2, 159, 2, 161, 2, 137, 2, 138, 2, 135, 2, 162, 2, 164, 2, 139, 2, 163, 2, 165, 2, 129, 2, 141, 2, 167, 2, 170, 2, 142, 2, 143, 2, 168, 2, 140, 2, 166, 2, 169, 2, 172, 2, 171, 2, 173, 2, 174, 2, 145, 2, 177, 2, 146, 2, 147, 2, 144, 2, 176, 2, 178, 2, 175, 2, 180, 2, 181, 2, 182, 2, 184, 2, 183, 2, 185, 2, 186, 2, 188, 2, 187, 2, 148, 2, 150, 2, 190, 2, 151, 2, 153, 2, 149, 2, 191, 2, 189, 2, 152, 2, 192, 2, 194, 2, 193, 2, 195, 2, 198, 2, 197, 2, 196, 2, 131, 2, 199, 2, 155, 2, 202, 2, 156, 2, 157, 2, 154, 2, 204, 2, 201, 2, 205, 2, 203, 2, 200, 2, 206, 2, 158, 2, 207, 2, 208, 2, 209, 2, 211, 2, 210, 2, 127, 2, 127, 0, 2, 0, 26, 0, 2, 0, 53, 0, 0, 0, 76, 0, 76, 0, 52, 0, 80, 0, 80, 0, 53, 0, 158, 0, 167, 0, 54, 0, 169, 0, 182, 0, 64, 0, 184, 0, 188, 0, 78, 0, 190, 0, 205, 0, 83, 0, 207, 0, 215, 0, 99, 0, 217, 0, 218, 0, 108, 0, 221, 0, 235, 0, 110, 0, 237, 0, 241, 0, 125, 0, 243, 0, 243, 0, 130, 0, 246, 0, 248, 0, 131, 0, 250, 1, 6, 0, 134, 1, 8, 1, 21, 0, 147, 1, 23, 1, 26, 0, 161, 1, 28, 1, 42, 0, 165, 1, 44, 1, 52, 0, 180, 1, 54, 1, 55, 0, 189, 1, 58, 1, 72, 0, 191, 1, 74, 1, 78, 0, 206, 1, 80, 1, 80, 0, 211, 1, 83, 1, 85, 0, 212, 1, 87, 1, 89, 0, 215, 2, 126, 2, 126, 0, 218, 2, 128, 2, 128, 0, 219, 0, 1, 0, 1, 0, 8, 0, 2, 0, 0, 0, 20, 0, 2, 0, 0, 0, 36, 0, 2, 119, 103, 104, 116, 1, 0, 0, 0, 105, 116, 97, 108, 1, 11, 0, 1, 0, 4, 0, 20, 0, 3, 0, 0, 0, 2, 1, 14, 1, 144, 0, 0, 2, 188, 0, 0, 0, 1, 0, 1, 0, 0, 1, 17, 0, 1, 0, 0) +font_name = "Roboto Mono" +style_name = "Italic" +font_style = 6 +msdf_pixel_range = 8 +fixed_size = 14 +cache/0/16/0/ascent = 15.0 +cache/0/16/0/descent = 4.0 +cache/0/16/0/underline_position = 1.375 +cache/0/16/0/underline_thickness = 0.6875 +cache/0/16/0/scale = 1.0 +cache/0/16/0/kerning_overrides/16/0 = Vector2(0, 0) +cache/0/16/0/kerning_overrides/14/0 = Vector2(0, 0) +cache/0/14/0/ascent = 15.0 +cache/0/14/0/descent = 4.0 +cache/0/14/0/underline_position = 1.375 +cache/0/14/0/underline_thickness = 0.6875 +cache/0/14/0/scale = 1.0 +cache/0/14/0/kerning_overrides/16/0 = Vector2(0, 0) +cache/0/14/0/kerning_overrides/14/0 = Vector2(0, 0) + +[sub_resource type="FontFile" id="FontFile_xg6bo"] +data = PackedByteArray(0, 1, 0, 0, 0, 14, 0, 128, 0, 3, 0, 96, 71, 83, 85, 66, 54, 189, 53, 203, 0, 1, 108, 220, 0, 0, 2, 168, 79, 83, 47, 50, 154, 14, 171, 99, 0, 1, 63, 156, 0, 0, 0, 96, 83, 84, 65, 84, 229, 216, 204, 44, 0, 1, 111, 132, 0, 0, 0, 64, 99, 109, 97, 112, 136, 53, 174, 103, 0, 1, 63, 252, 0, 0, 7, 80, 103, 97, 115, 112, 0, 0, 0, 16, 0, 1, 108, 212, 0, 0, 0, 8, 103, 108, 121, 102, 42, 86, 46, 152, 0, 0, 0, 236, 0, 1, 46, 146, 104, 101, 97, 100, 2, 60, 156, 14, 0, 1, 55, 112, 0, 0, 0, 54, 104, 104, 101, 97, 11, 181, 0, 151, 0, 1, 63, 120, 0, 0, 0, 36, 104, 109, 116, 120, 126, 110, 138, 127, 0, 1, 55, 168, 0, 0, 7, 208, 108, 111, 99, 97, 173, 101, 247, 125, 0, 1, 47, 160, 0, 0, 7, 208, 109, 97, 120, 112, 4, 6, 1, 98, 0, 1, 47, 128, 0, 0, 0, 32, 110, 97, 109, 101, 102, 36, 140, 84, 0, 1, 71, 84, 0, 0, 3, 196, 112, 111, 115, 116, 151, 175, 175, 6, 0, 1, 75, 24, 0, 0, 33, 188, 112, 114, 101, 112, 104, 6, 140, 133, 0, 1, 71, 76, 0, 0, 0, 7, 0, 2, 255, 174, 0, 0, 4, 60, 5, 176, 0, 7, 0, 10, 0, 0, 65, 19, 33, 3, 35, 1, 33, 19, 55, 19, 19, 3, 6, 29, 1, 25, 202, 249, 253, 53, 1, 41, 136, 109, 240, 51, 1, 48, 254, 208, 5, 176, 250, 80, 1, 48, 239, 2, 21, 253, 235, 0, 0, 3, 0, 20, 255, 255, 4, 175, 5, 176, 0, 26, 0, 41, 0, 56, 0, 0, 115, 33, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 37, 19, 5, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 39, 19, 19, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 35, 20, 2, 19, 105, 196, 77, 76, 98, 8, 3, 18, 22, 22, 71, 50, 53, 91, 35, 34, 42, 5, 8, 72, 65, 65, 172, 92, 254, 52, 134, 1, 11, 49, 70, 21, 19, 14, 7, 8, 50, 37, 38, 93, 50, 229, 107, 67, 214, 45, 76, 26, 26, 24, 7, 8, 52, 38, 39, 94, 49, 1, 49, 53, 53, 166, 115, 50, 97, 41, 41, 64, 18, 22, 61, 39, 39, 99, 60, 105, 146, 47, 46, 43, 2, 1, 252, 210, 1, 2, 31, 28, 26, 73, 45, 53, 78, 26, 27, 26, 1, 2, 2, 106, 1, 126, 1, 1, 21, 21, 22, 69, 50, 54, 75, 24, 24, 22, 0, 1, 0, 74, 255, 232, 4, 156, 5, 199, 0, 63, 0, 0, 65, 5, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 53, 38, 54, 55, 55, 54, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 21, 5, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 4, 51, 254, 242, 11, 44, 34, 34, 94, 60, 53, 68, 20, 20, 16, 1, 8, 5, 28, 6, 22, 17, 17, 49, 34, 33, 88, 57, 60, 76, 22, 21, 15, 1, 16, 3, 56, 54, 55, 166, 112, 92, 157, 65, 65, 103, 38, 38, 51, 12, 29, 10, 5, 18, 17, 66, 51, 50, 138, 89, 110, 194, 75, 75, 98, 1, 201, 2, 56, 93, 33, 33, 36, 3, 2, 43, 35, 34, 88, 46, 46, 90, 37, 199, 45, 98, 48, 47, 86, 32, 31, 37, 2, 2, 43, 35, 35, 94, 53, 1, 106, 178, 65, 65, 75, 2, 2, 50, 45, 45, 125, 73, 73, 162, 81, 196, 77, 155, 71, 72, 125, 46, 47, 55, 2, 3, 67, 63, 63, 178, 0, 2, 0, 17, 255, 255, 4, 124, 5, 176, 0, 21, 0, 43, 0, 0, 115, 33, 22, 54, 55, 54, 54, 55, 54, 54, 55, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 37, 23, 23, 22, 22, 23, 22, 22, 23, 22, 6, 7, 7, 6, 6, 7, 6, 6, 7, 6, 6, 35, 39, 17, 1, 138, 95, 170, 72, 79, 131, 48, 43, 58, 13, 17, 11, 19, 30, 25, 83, 52, 62, 159, 97, 254, 160, 237, 104, 59, 86, 30, 29, 35, 8, 7, 1, 6, 17, 8, 31, 25, 36, 86, 59, 36, 87, 49, 91, 1, 46, 42, 44, 131, 81, 71, 165, 88, 120, 94, 177, 76, 65, 110, 42, 47, 55, 2, 1, 228, 1, 3, 39, 32, 33, 85, 48, 48, 101, 48, 123, 55, 108, 47, 68, 94, 31, 19, 21, 2, 0, 0, 1, 0, 38, 0, 0, 4, 217, 5, 176, 0, 11, 0, 0, 65, 55, 33, 19, 33, 55, 33, 3, 33, 55, 33, 19, 3, 236, 39, 253, 187, 64, 2, 163, 40, 252, 74, 253, 3, 185, 40, 253, 89, 72, 2, 126, 222, 1, 111, 229, 250, 80, 227, 1, 155, 0, 0, 1, 0, 40, 0, 0, 4, 225, 5, 176, 0, 9, 0, 0, 65, 55, 33, 19, 33, 55, 33, 3, 33, 19, 4, 1, 40, 253, 162, 69, 2, 168, 41, 252, 67, 252, 1, 19, 105, 2, 91, 228, 1, 140, 229, 250, 80, 2, 91, 0, 0, 1, 0, 82, 255, 234, 4, 151, 5, 197, 0, 61, 0, 0, 101, 19, 33, 7, 51, 3, 6, 6, 39, 38, 38, 39, 38, 38, 39, 38, 54, 55, 55, 54, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 23, 33, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 36, 4, 9, 90, 254, 5, 37, 235, 51, 45, 114, 56, 53, 71, 21, 22, 20, 2, 3, 7, 5, 29, 6, 23, 19, 18, 50, 34, 34, 85, 53, 53, 71, 22, 22, 20, 2, 1, 10, 5, 59, 54, 55, 161, 107, 91, 155, 64, 64, 102, 37, 38, 50, 12, 29, 10, 6, 18, 17, 67, 51, 50, 139, 90, 132, 1, 29, 169, 2, 63, 210, 254, 247, 35, 29, 2, 2, 42, 35, 34, 86, 47, 46, 90, 38, 201, 42, 96, 48, 47, 87, 33, 33, 38, 2, 2, 35, 30, 30, 82, 48, 103, 167, 59, 58, 64, 2, 1, 50, 45, 46, 125, 72, 73, 160, 80, 198, 78, 155, 71, 71, 124, 46, 46, 55, 2, 2, 86, 0, 0, 1, 0, 15, 0, 0, 4, 185, 5, 176, 0, 11, 0, 0, 97, 19, 33, 3, 33, 19, 33, 3, 33, 19, 33, 3, 3, 188, 253, 254, 241, 104, 254, 114, 104, 254, 239, 252, 1, 16, 110, 1, 142, 110, 5, 176, 253, 171, 2, 85, 250, 80, 2, 119, 253, 137, 0, 1, 0, 82, 0, 0, 4, 130, 5, 176, 0, 11, 0, 0, 65, 7, 33, 3, 33, 7, 33, 55, 33, 19, 33, 55, 1, 79, 40, 1, 13, 174, 254, 244, 40, 3, 51, 40, 254, 236, 174, 1, 19, 40, 5, 176, 227, 252, 21, 226, 226, 3, 235, 227, 0, 1, 0, 71, 255, 234, 4, 192, 5, 176, 0, 27, 0, 0, 65, 3, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 37, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 19, 3, 173, 172, 8, 42, 32, 32, 86, 52, 53, 67, 19, 19, 12, 2, 254, 237, 3, 52, 54, 53, 160, 104, 105, 186, 74, 73, 98, 15, 171, 5, 176, 252, 14, 48, 88, 33, 34, 39, 1, 1, 35, 30, 29, 81, 47, 1, 102, 165, 58, 59, 64, 1, 2, 68, 63, 62, 173, 103, 3, 241, 0, 0, 1, 0, 20, 0, 0, 5, 82, 5, 176, 0, 12, 0, 0, 65, 19, 33, 1, 1, 33, 1, 7, 19, 33, 3, 33, 19, 2, 44, 244, 1, 55, 254, 164, 2, 87, 254, 160, 254, 93, 157, 114, 254, 237, 253, 1, 20, 72, 2, 83, 253, 173, 3, 32, 2, 144, 254, 34, 175, 2, 141, 250, 80, 1, 162, 0, 0, 1, 0, 41, 0, 0, 3, 249, 5, 176, 0, 5, 0, 0, 101, 19, 33, 3, 33, 55, 1, 99, 214, 254, 236, 252, 3, 168, 40, 227, 4, 205, 250, 80, 227, 0, 0, 1, 0, 18, 0, 0, 4, 212, 5, 176, 0, 14, 0, 0, 65, 33, 3, 51, 27, 2, 51, 1, 3, 3, 51, 19, 33, 3, 2, 96, 254, 175, 253, 252, 73, 106, 61, 137, 1, 29, 124, 77, 252, 253, 254, 168, 246, 5, 176, 250, 80, 1, 164, 2, 163, 253, 153, 2, 98, 253, 120, 254, 70, 5, 176, 253, 225, 0, 0, 1, 0, 15, 0, 0, 4, 184, 5, 176, 0, 9, 0, 0, 97, 19, 33, 3, 3, 33, 3, 33, 19, 19, 3, 187, 253, 254, 237, 166, 229, 254, 241, 252, 1, 20, 165, 232, 5, 176, 252, 79, 3, 177, 250, 80, 3, 181, 252, 75, 0, 2, 0, 73, 255, 234, 4, 138, 5, 198, 0, 37, 0, 75, 0, 0, 65, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 3, 7, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 53, 38, 54, 55, 55, 54, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 23, 22, 6, 4, 95, 33, 10, 8, 18, 19, 68, 51, 52, 137, 88, 91, 154, 63, 63, 100, 36, 37, 49, 12, 33, 10, 6, 17, 17, 64, 50, 49, 135, 87, 92, 156, 65, 65, 103, 39, 38, 50, 232, 33, 7, 22, 17, 18, 50, 33, 34, 86, 54, 51, 65, 19, 19, 16, 1, 7, 5, 33, 6, 20, 16, 15, 46, 32, 31, 84, 55, 51, 68, 21, 21, 20, 3, 2, 6, 2, 110, 211, 76, 154, 71, 70, 123, 47, 46, 54, 2, 2, 49, 44, 45, 124, 72, 72, 159, 80, 212, 75, 152, 70, 71, 123, 46, 47, 55, 2, 2, 48, 44, 44, 123, 72, 72, 160, 1, 39, 215, 43, 96, 46, 47, 84, 31, 31, 35, 2, 2, 43, 34, 34, 86, 45, 45, 86, 35, 215, 43, 95, 46, 46, 83, 32, 31, 35, 2, 2, 42, 33, 33, 84, 44, 45, 88, 0, 2, 0, 40, 0, 0, 4, 184, 5, 176, 0, 16, 0, 31, 0, 0, 65, 23, 50, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 37, 3, 33, 19, 19, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 1, 151, 224, 105, 197, 78, 78, 101, 9, 9, 59, 59, 60, 168, 101, 254, 43, 252, 1, 18, 132, 81, 223, 50, 72, 22, 21, 14, 6, 7, 49, 37, 37, 94, 53, 2, 22, 1, 61, 59, 58, 171, 112, 104, 168, 60, 60, 66, 3, 1, 250, 80, 2, 250, 1, 210, 1, 2, 39, 31, 32, 83, 47, 54, 86, 30, 30, 33, 1, 0, 0, 2, 0, 71, 254, 255, 4, 146, 5, 198, 0, 40, 0, 78, 0, 0, 65, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 23, 55, 39, 54, 54, 55, 54, 54, 3, 7, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 39, 38, 54, 55, 55, 54, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 23, 22, 6, 4, 97, 39, 10, 8, 18, 19, 69, 51, 51, 138, 88, 92, 154, 63, 64, 100, 37, 37, 49, 12, 40, 9, 11, 20, 20, 70, 50, 49, 131, 80, 37, 71, 35, 222, 192, 195, 38, 65, 26, 50, 63, 224, 40, 6, 23, 17, 16, 51, 33, 33, 85, 51, 47, 63, 20, 21, 20, 3, 4, 4, 5, 40, 6, 21, 16, 16, 46, 32, 32, 85, 55, 52, 69, 21, 21, 19, 2, 2, 6, 2, 66, 251, 76, 154, 72, 71, 124, 47, 46, 55, 2, 2, 49, 45, 45, 125, 72, 73, 159, 81, 252, 72, 143, 65, 66, 114, 42, 42, 50, 1, 1, 9, 8, 255, 151, 224, 30, 69, 37, 70, 164, 1, 88, 255, 39, 84, 39, 42, 74, 29, 29, 33, 2, 2, 36, 30, 29, 75, 40, 40, 80, 34, 255, 43, 96, 47, 46, 84, 32, 31, 36, 2, 2, 42, 33, 34, 85, 45, 45, 89, 0, 2, 0, 22, 0, 0, 4, 173, 5, 176, 0, 20, 0, 35, 0, 0, 65, 19, 33, 53, 3, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 37, 3, 33, 19, 55, 19, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 35, 2, 91, 171, 1, 36, 201, 70, 114, 42, 41, 50, 6, 9, 65, 62, 63, 173, 100, 254, 53, 253, 1, 19, 94, 39, 80, 213, 50, 76, 24, 24, 20, 7, 7, 51, 38, 39, 99, 55, 2, 32, 253, 224, 15, 2, 85, 28, 77, 51, 51, 128, 77, 108, 160, 53, 53, 55, 2, 1, 250, 80, 2, 32, 228, 1, 200, 1, 2, 31, 27, 28, 82, 52, 57, 88, 30, 30, 31, 0, 1, 0, 57, 255, 235, 4, 177, 5, 198, 0, 73, 0, 0, 65, 6, 6, 7, 6, 6, 35, 38, 38, 39, 38, 38, 55, 37, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 5, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 22, 3, 59, 7, 50, 36, 36, 87, 44, 60, 92, 29, 30, 30, 2, 254, 244, 3, 73, 67, 67, 182, 105, 98, 195, 75, 72, 98, 7, 6, 59, 53, 54, 144, 79, 37, 90, 38, 39, 46, 6, 6, 50, 36, 36, 87, 44, 52, 77, 26, 25, 25, 1, 1, 10, 3, 65, 60, 60, 168, 99, 95, 189, 77, 77, 102, 6, 6, 67, 58, 58, 151, 78, 41, 84, 33, 32, 35, 1, 131, 48, 69, 22, 23, 21, 1, 33, 31, 32, 92, 59, 1, 110, 173, 61, 61, 65, 2, 2, 47, 56, 53, 149, 105, 91, 147, 56, 56, 81, 27, 12, 33, 25, 24, 71, 51, 48, 71, 24, 23, 23, 1, 1, 32, 29, 29, 82, 49, 1, 102, 164, 58, 58, 64, 2, 2, 50, 52, 52, 156, 104, 93, 145, 54, 54, 77, 25, 14, 36, 26, 27, 74, 0, 0, 1, 0, 134, 0, 0, 5, 35, 5, 176, 0, 7, 0, 0, 65, 55, 33, 7, 33, 3, 33, 19, 4, 250, 41, 251, 139, 40, 1, 174, 213, 1, 19, 213, 4, 203, 229, 229, 251, 53, 4, 203, 0, 1, 0, 94, 255, 233, 4, 193, 5, 176, 0, 29, 0, 0, 65, 33, 3, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 19, 33, 3, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 4, 193, 254, 240, 165, 8, 36, 30, 31, 90, 62, 56, 61, 13, 14, 1, 5, 162, 254, 238, 165, 12, 38, 49, 49, 159, 110, 119, 191, 70, 70, 88, 17, 5, 176, 252, 58, 52, 104, 41, 41, 49, 3, 3, 57, 42, 42, 97, 43, 3, 198, 252, 58, 102, 184, 69, 70, 83, 2, 3, 75, 69, 68, 190, 113, 0, 0, 1, 0, 167, 0, 0, 5, 21, 5, 176, 0, 8, 0, 0, 97, 33, 1, 33, 1, 7, 39, 3, 33, 1, 110, 1, 23, 2, 144, 254, 202, 254, 108, 26, 7, 92, 254, 217, 5, 176, 252, 42, 64, 73, 3, 205, 0, 1, 0, 127, 0, 0, 5, 27, 5, 176, 0, 18, 0, 0, 115, 51, 19, 55, 21, 3, 51, 1, 35, 3, 7, 55, 19, 35, 3, 7, 55, 19, 35, 127, 248, 230, 32, 1, 248, 1, 167, 255, 212, 27, 1, 10, 197, 225, 30, 4, 32, 248, 2, 240, 103, 113, 253, 26, 5, 176, 252, 252, 100, 104, 3, 0, 253, 5, 100, 103, 2, 248, 0, 1, 255, 184, 0, 0, 5, 38, 5, 176, 0, 11, 0, 0, 65, 3, 33, 1, 1, 33, 1, 19, 33, 1, 1, 33, 2, 140, 165, 254, 204, 1, 24, 253, 237, 1, 80, 1, 84, 176, 1, 51, 254, 224, 2, 7, 254, 178, 3, 168, 2, 8, 253, 58, 253, 22, 2, 16, 253, 240, 2, 210, 2, 222, 0, 1, 0, 186, 0, 0, 5, 63, 5, 176, 0, 8, 0, 0, 65, 3, 33, 1, 3, 33, 19, 1, 33, 2, 124, 162, 254, 224, 1, 15, 91, 1, 17, 86, 2, 106, 254, 199, 3, 19, 2, 157, 252, 98, 253, 238, 1, 235, 3, 197, 0, 1, 255, 248, 0, 0, 4, 212, 5, 176, 0, 9, 0, 0, 101, 1, 55, 33, 7, 33, 1, 7, 33, 55, 1, 112, 3, 73, 27, 252, 10, 37, 2, 165, 252, 183, 29, 4, 10, 35, 227, 4, 27, 178, 229, 251, 236, 183, 227, 0, 0, 2, 0, 58, 255, 235, 4, 27, 4, 80, 0, 56, 0, 79, 0, 0, 97, 33, 55, 38, 54, 55, 19, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 37, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 7, 39, 34, 6, 7, 6, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 6, 22, 39, 34, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 55, 54, 54, 51, 23, 7, 6, 6, 7, 6, 6, 2, 188, 1, 13, 1, 21, 9, 9, 75, 9, 57, 55, 56, 152, 85, 81, 165, 68, 68, 90, 6, 1, 15, 7, 29, 22, 23, 61, 36, 39, 62, 21, 20, 17, 6, 13, 156, 61, 125, 59, 59, 104, 40, 40, 49, 3, 3, 50, 46, 45, 123, 68, 58, 104, 46, 24, 46, 22, 1, 3, 231, 29, 49, 17, 17, 16, 4, 4, 18, 13, 16, 44, 23, 36, 82, 40, 123, 34, 19, 45, 24, 34, 78, 18, 58, 123, 59, 1, 209, 93, 140, 48, 47, 50, 2, 1, 39, 42, 43, 131, 90, 2, 33, 51, 16, 18, 17, 1, 1, 23, 21, 22, 62, 39, 67, 2, 14, 17, 17, 55, 41, 41, 110, 72, 72, 116, 40, 41, 45, 1, 1, 27, 26, 14, 35, 20, 26, 49, 168, 16, 15, 15, 46, 31, 27, 44, 17, 21, 29, 12, 15, 14, 1, 187, 23, 38, 14, 20, 20, 0, 0, 2, 0, 38, 255, 234, 4, 56, 6, 0, 0, 35, 0, 67, 0, 0, 65, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 19, 33, 1, 51, 55, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 37, 7, 6, 6, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 19, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 23, 22, 6, 4, 47, 3, 6, 3, 12, 12, 49, 39, 40, 111, 74, 51, 90, 40, 23, 45, 21, 106, 254, 240, 254, 246, 246, 40, 15, 35, 20, 40, 97, 54, 78, 129, 51, 51, 78, 28, 28, 35, 254, 251, 2, 4, 16, 12, 14, 48, 35, 25, 57, 51, 26, 64, 23, 20, 30, 9, 75, 18, 43, 25, 27, 63, 37, 42, 56, 18, 17, 17, 3, 2, 4, 2, 24, 21, 61, 127, 60, 60, 107, 40, 40, 48, 2, 1, 24, 23, 14, 37, 22, 2, 41, 250, 0, 116, 22, 37, 15, 30, 31, 1, 2, 43, 39, 39, 108, 63, 62, 137, 88, 21, 36, 76, 35, 43, 77, 25, 19, 21, 16, 17, 15, 43, 28, 1, 178, 27, 44, 15, 17, 17, 1, 1, 31, 25, 25, 65, 35, 35, 71, 0, 1, 0, 96, 255, 233, 4, 49, 4, 81, 0, 60, 0, 0, 101, 38, 38, 39, 38, 38, 39, 38, 54, 55, 55, 54, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 23, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 7, 6, 6, 7, 6, 6, 2, 19, 36, 53, 18, 26, 24, 5, 3, 3, 3, 4, 6, 27, 23, 12, 38, 22, 28, 72, 45, 43, 64, 21, 21, 18, 3, 255, 5, 53, 52, 53, 150, 93, 115, 191, 71, 80, 96, 14, 3, 6, 6, 12, 18, 83, 62, 46, 121, 74, 87, 169, 69, 68, 88, 5, 254, 6, 41, 29, 30, 73, 201, 1, 22, 18, 26, 75, 40, 35, 73, 32, 30, 48, 99, 43, 24, 48, 18, 22, 24, 1, 2, 31, 26, 26, 71, 40, 1, 93, 153, 56, 55, 62, 2, 3, 78, 72, 82, 203, 117, 31, 57, 111, 50, 78, 131, 45, 32, 38, 1, 2, 53, 51, 51, 147, 92, 2, 40, 64, 21, 22, 22, 0, 2, 0, 91, 255, 235, 4, 187, 6, 0, 0, 35, 0, 64, 0, 0, 83, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 7, 51, 1, 33, 3, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 5, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 23, 3, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 39, 38, 54, 100, 3, 6, 5, 13, 13, 50, 39, 39, 108, 72, 51, 90, 39, 29, 53, 24, 14, 243, 1, 10, 254, 240, 104, 18, 40, 23, 35, 83, 46, 78, 128, 52, 52, 79, 28, 29, 36, 1, 5, 2, 7, 34, 32, 32, 96, 68, 31, 51, 20, 21, 31, 11, 78, 19, 43, 24, 26, 62, 36, 39, 54, 17, 15, 17, 6, 7, 3, 2, 31, 22, 59, 125, 59, 60, 106, 40, 41, 49, 2, 1, 24, 22, 17, 44, 27, 113, 6, 0, 253, 215, 22, 36, 14, 22, 24, 1, 2, 44, 39, 40, 109, 63, 63, 136, 89, 21, 57, 120, 49, 49, 62, 1, 1, 15, 15, 14, 44, 28, 254, 72, 25, 42, 15, 17, 17, 1, 1, 29, 23, 19, 48, 28, 41, 89, 0, 2, 0, 85, 255, 235, 4, 76, 4, 80, 0, 36, 0, 50, 0, 0, 69, 22, 54, 55, 39, 6, 6, 39, 38, 38, 39, 38, 38, 55, 33, 55, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 19, 22, 22, 23, 22, 22, 7, 7, 33, 54, 54, 55, 54, 54, 2, 44, 129, 245, 72, 123, 58, 151, 85, 54, 84, 28, 29, 30, 2, 2, 195, 18, 13, 37, 50, 51, 164, 113, 81, 146, 62, 49, 86, 36, 51, 65, 10, 4, 10, 58, 62, 61, 179, 220, 45, 69, 23, 22, 18, 7, 5, 254, 71, 19, 50, 34, 33, 86, 20, 1, 96, 100, 151, 60, 65, 3, 1, 39, 33, 33, 89, 52, 118, 105, 190, 74, 73, 88, 3, 2, 41, 37, 30, 81, 46, 70, 168, 90, 41, 110, 188, 69, 70, 82, 3, 129, 2, 33, 28, 28, 76, 44, 25, 44, 86, 34, 34, 40, 0, 0, 1, 0, 169, 0, 0, 5, 0, 6, 47, 0, 29, 0, 0, 97, 33, 19, 33, 55, 5, 55, 54, 54, 55, 54, 54, 23, 50, 22, 23, 55, 38, 38, 39, 38, 6, 7, 6, 6, 7, 7, 37, 7, 33, 1, 37, 1, 16, 153, 1, 121, 37, 254, 125, 13, 10, 43, 30, 39, 105, 63, 48, 95, 47, 42, 64, 128, 65, 108, 181, 69, 70, 92, 18, 11, 254, 244, 37, 1, 20, 3, 109, 205, 1, 61, 49, 74, 26, 34, 32, 1, 11, 11, 218, 11, 18, 1, 1, 58, 56, 56, 165, 106, 61, 1, 205, 0, 2, 0, 26, 254, 83, 4, 123, 4, 80, 0, 53, 0, 82, 0, 0, 83, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 7, 22, 22, 23, 22, 54, 55, 54, 54, 55, 19, 39, 7, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 5, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 23, 3, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 39, 38, 54, 101, 3, 6, 6, 15, 14, 53, 41, 40, 111, 72, 45, 81, 37, 29, 54, 25, 14, 12, 52, 38, 38, 98, 58, 75, 120, 45, 139, 68, 202, 108, 110, 192, 75, 74, 98, 16, 178, 249, 36, 17, 42, 23, 38, 89, 48, 78, 131, 53, 54, 82, 30, 30, 38, 1, 6, 2, 7, 39, 34, 33, 100, 68, 28, 48, 21, 22, 36, 13, 82, 19, 41, 23, 27, 64, 36, 41, 57, 19, 19, 20, 4, 4, 2, 2, 30, 21, 60, 126, 59, 60, 106, 40, 41, 48, 1, 1, 18, 19, 14, 40, 24, 64, 56, 89, 31, 32, 33, 2, 2, 65, 58, 166, 85, 89, 2, 3, 61, 60, 59, 174, 110, 4, 23, 1, 105, 24, 39, 14, 23, 23, 1, 2, 43, 39, 40, 108, 63, 63, 138, 89, 21, 57, 121, 49, 49, 61, 1, 1, 12, 11, 13, 41, 28, 254, 51, 23, 38, 13, 16, 16, 1, 1, 31, 25, 24, 63, 35, 34, 71, 0, 0, 1, 0, 32, 0, 0, 4, 68, 6, 0, 0, 31, 0, 0, 65, 19, 33, 1, 33, 19, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 3, 33, 19, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 1, 199, 115, 254, 241, 254, 245, 1, 15, 138, 22, 48, 26, 28, 61, 34, 49, 64, 18, 18, 9, 5, 111, 1, 16, 109, 9, 23, 36, 37, 129, 96, 64, 111, 46, 26, 48, 3, 163, 2, 93, 250, 0, 3, 14, 22, 35, 12, 12, 13, 1, 2, 34, 29, 30, 77, 45, 253, 110, 2, 143, 85, 160, 63, 62, 76, 1, 1, 41, 35, 20, 49, 0, 2, 0, 104, 0, 0, 3, 233, 5, 230, 0, 9, 0, 21, 0, 0, 65, 7, 33, 3, 33, 7, 33, 55, 33, 19, 3, 20, 22, 55, 50, 54, 53, 52, 38, 7, 34, 6, 1, 36, 40, 1, 43, 109, 254, 213, 39, 3, 89, 40, 254, 227, 149, 246, 91, 64, 65, 92, 91, 64, 68, 89, 4, 58, 227, 253, 139, 226, 226, 3, 88, 1, 16, 66, 80, 2, 85, 69, 66, 80, 2, 88, 0, 2, 0, 48, 254, 73, 3, 219, 5, 230, 0, 23, 0, 35, 0, 0, 65, 7, 33, 3, 6, 6, 7, 6, 6, 39, 38, 38, 39, 7, 22, 22, 23, 50, 54, 55, 54, 54, 55, 19, 3, 20, 22, 55, 50, 54, 53, 52, 38, 7, 34, 6, 1, 125, 40, 1, 9, 149, 7, 33, 24, 29, 83, 51, 36, 75, 35, 36, 45, 89, 45, 104, 173, 65, 65, 83, 14, 189, 244, 89, 65, 64, 93, 93, 63, 66, 89, 4, 58, 227, 252, 144, 41, 66, 23, 28, 28, 1, 1, 7, 8, 228, 8, 8, 1, 50, 52, 51, 156, 105, 4, 83, 1, 16, 65, 81, 2, 84, 70, 67, 79, 2, 88, 0, 0, 1, 0, 35, 0, 0, 4, 175, 6, 0, 0, 12, 0, 0, 65, 19, 33, 1, 1, 33, 1, 7, 19, 33, 1, 33, 19, 2, 2, 219, 1, 60, 254, 176, 1, 230, 254, 168, 254, 169, 90, 151, 254, 241, 254, 245, 1, 15, 56, 1, 189, 254, 67, 2, 108, 1, 206, 254, 188, 87, 3, 97, 250, 0, 1, 64, 0, 1, 0, 88, 0, 0, 3, 249, 6, 0, 0, 9, 0, 0, 65, 7, 33, 3, 33, 7, 33, 55, 33, 19, 1, 99, 40, 1, 59, 188, 254, 198, 40, 3, 121, 40, 254, 211, 227, 6, 0, 227, 251, 197, 226, 226, 5, 30, 0, 1, 255, 224, 0, 0, 4, 117, 4, 79, 0, 52, 0, 0, 65, 7, 3, 51, 19, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 6, 7, 3, 51, 19, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 20, 7, 3, 51, 19, 54, 38, 39, 38, 38, 39, 38, 6, 7, 38, 38, 39, 38, 38, 35, 34, 6, 7, 1, 132, 232, 188, 247, 141, 7, 16, 10, 11, 29, 18, 22, 23, 5, 4, 1, 1, 131, 239, 145, 8, 15, 8, 12, 27, 17, 21, 23, 5, 5, 2, 131, 247, 124, 10, 9, 35, 19, 74, 54, 68, 99, 40, 5, 19, 14, 22, 58, 36, 79, 111, 36, 4, 59, 1, 251, 198, 3, 43, 12, 21, 9, 10, 13, 19, 14, 15, 36, 16, 252, 248, 3, 59, 8, 16, 6, 9, 10, 20, 15, 15, 35, 16, 252, 249, 2, 239, 59, 143, 66, 36, 46, 1, 1, 65, 51, 24, 38, 13, 20, 21, 87, 66, 0, 0, 1, 0, 32, 0, 0, 4, 67, 4, 79, 0, 31, 0, 0, 115, 33, 19, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 3, 33, 19, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 55, 7, 32, 1, 16, 135, 21, 46, 26, 27, 62, 34, 51, 65, 18, 17, 9, 5, 110, 1, 15, 111, 9, 22, 35, 35, 123, 94, 63, 111, 47, 32, 57, 26, 18, 244, 3, 2, 24, 40, 13, 15, 15, 1, 1, 32, 28, 28, 77, 47, 253, 105, 2, 154, 83, 155, 61, 61, 74, 2, 1, 34, 32, 21, 54, 31, 152, 1, 0, 2, 0, 81, 255, 232, 4, 66, 4, 81, 0, 31, 0, 57, 0, 0, 83, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 23, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 91, 2, 8, 15, 23, 19, 54, 39, 44, 145, 88, 121, 199, 73, 73, 91, 14, 3, 8, 15, 23, 19, 60, 40, 50, 135, 85, 122, 199, 73, 73, 91, 255, 2, 7, 39, 34, 33, 99, 69, 56, 70, 18, 24, 3, 5, 2, 8, 37, 33, 34, 99, 68, 65, 73, 16, 17, 2, 2, 32, 21, 74, 140, 61, 49, 80, 39, 43, 56, 2, 3, 87, 76, 76, 203, 114, 22, 75, 143, 63, 50, 87, 36, 43, 50, 1, 3, 88, 77, 77, 205, 135, 21, 58, 120, 49, 49, 60, 2, 3, 50, 41, 55, 122, 54, 21, 57, 119, 48, 49, 61, 2, 2, 65, 48, 47, 111, 0, 0, 2, 255, 220, 254, 96, 4, 53, 4, 79, 0, 35, 0, 67, 0, 0, 65, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 55, 7, 1, 33, 19, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 37, 7, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 39, 19, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 23, 22, 6, 4, 45, 2, 6, 3, 12, 13, 49, 39, 40, 110, 74, 54, 97, 42, 23, 45, 21, 17, 248, 254, 252, 1, 15, 97, 18, 42, 23, 37, 84, 46, 77, 127, 52, 51, 79, 29, 28, 36, 254, 250, 2, 5, 17, 15, 15, 47, 32, 27, 69, 42, 33, 56, 22, 18, 28, 10, 80, 17, 39, 21, 28, 64, 37, 38, 53, 18, 21, 23, 2, 3, 3, 2, 25, 22, 61, 127, 60, 59, 106, 41, 40, 47, 2, 1, 26, 27, 15, 38, 22, 108, 1, 250, 38, 2, 0, 22, 36, 14, 21, 23, 1, 2, 45, 40, 40, 108, 63, 63, 135, 88, 21, 37, 79, 37, 42, 72, 25, 21, 24, 1, 1, 17, 16, 14, 38, 26, 1, 198, 23, 37, 14, 17, 18, 1, 1, 26, 22, 24, 73, 38, 34, 69, 0, 0, 2, 0, 92, 254, 96, 4, 109, 4, 80, 0, 35, 0, 67, 0, 0, 83, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 3, 33, 1, 35, 7, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 5, 55, 54, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 23, 3, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 39, 38, 54, 101, 2, 7, 5, 13, 13, 49, 40, 39, 110, 72, 49, 87, 39, 24, 46, 22, 99, 1, 16, 1, 4, 242, 42, 18, 43, 25, 36, 87, 47, 77, 127, 51, 52, 82, 29, 29, 37, 1, 5, 2, 5, 18, 15, 14, 43, 27, 29, 74, 46, 28, 48, 21, 21, 35, 12, 82, 17, 38, 22, 27, 65, 37, 41, 56, 17, 18, 18, 3, 3, 3, 2, 31, 21, 59, 126, 59, 60, 107, 40, 41, 49, 1, 1, 22, 22, 13, 36, 21, 254, 3, 5, 218, 111, 26, 42, 15, 23, 24, 1, 2, 42, 37, 38, 109, 63, 63, 140, 90, 21, 38, 79, 38, 37, 66, 25, 25, 29, 1, 1, 12, 12, 12, 40, 28, 254, 49, 22, 37, 14, 18, 18, 1, 1, 32, 26, 25, 65, 35, 35, 70, 0, 0, 1, 0, 174, 0, 0, 4, 142, 4, 80, 0, 24, 0, 0, 65, 34, 6, 7, 6, 6, 7, 55, 55, 35, 3, 33, 19, 54, 54, 55, 54, 54, 23, 22, 22, 23, 19, 38, 38, 3, 194, 59, 105, 47, 47, 82, 36, 7, 21, 252, 188, 1, 15, 113, 26, 61, 36, 43, 100, 58, 54, 104, 52, 74, 51, 101, 4, 80, 29, 26, 27, 74, 44, 44, 134, 251, 198, 2, 139, 41, 63, 21, 26, 26, 1, 1, 15, 13, 1, 21, 13, 15, 0, 1, 0, 74, 255, 234, 4, 76, 4, 79, 0, 79, 0, 0, 65, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 37, 20, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 38, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 7, 5, 52, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 22, 23, 22, 22, 2, 255, 7, 49, 33, 34, 75, 31, 41, 73, 28, 29, 34, 2, 254, 255, 79, 64, 63, 160, 83, 72, 164, 71, 81, 114, 5, 4, 75, 59, 24, 54, 28, 41, 86, 40, 26, 70, 30, 30, 38, 7, 6, 45, 31, 31, 70, 31, 37, 65, 24, 24, 27, 1, 1, 14, 75, 61, 62, 156, 82, 69, 149, 61, 86, 117, 3, 3, 70, 56, 47, 98, 62, 32, 73, 42, 21, 42, 15, 18, 20, 1, 47, 38, 48, 13, 14, 10, 18, 20, 19, 62, 44, 1, 92, 135, 45, 46, 46, 1, 1, 30, 32, 39, 135, 102, 84, 114, 37, 15, 24, 10, 15, 21, 8, 5, 14, 14, 13, 46, 38, 36, 49, 15, 14, 12, 17, 17, 18, 56, 39, 1, 91, 131, 43, 43, 41, 1, 1, 31, 29, 40, 142, 101, 77, 110, 37, 32, 41, 16, 8, 17, 9, 5, 18, 11, 14, 37, 0, 1, 0, 169, 255, 234, 4, 84, 5, 67, 0, 29, 0, 0, 65, 33, 3, 35, 7, 51, 3, 6, 22, 23, 22, 22, 23, 22, 54, 55, 39, 6, 6, 39, 38, 38, 39, 38, 38, 55, 19, 33, 55, 33, 2, 250, 254, 241, 46, 240, 36, 240, 81, 9, 31, 41, 40, 131, 91, 79, 176, 73, 9, 57, 114, 58, 47, 59, 15, 16, 7, 5, 76, 1, 136, 36, 254, 120, 5, 67, 254, 247, 205, 254, 20, 86, 147, 54, 54, 63, 1, 2, 26, 40, 193, 12, 18, 2, 1, 32, 27, 27, 72, 43, 1, 210, 205, 0, 0, 1, 0, 113, 255, 233, 4, 127, 4, 58, 0, 28, 0, 0, 69, 22, 54, 55, 7, 51, 19, 33, 3, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 54, 55, 19, 33, 3, 6, 22, 23, 22, 22, 1, 169, 97, 157, 60, 21, 245, 188, 254, 240, 133, 19, 43, 24, 30, 71, 41, 52, 56, 11, 12, 1, 5, 107, 254, 241, 107, 9, 16, 38, 35, 125, 21, 2, 100, 76, 153, 4, 58, 253, 8, 26, 41, 15, 18, 18, 1, 1, 42, 33, 33, 83, 42, 2, 131, 253, 128, 85, 163, 69, 63, 82, 0, 0, 1, 0, 149, 0, 0, 4, 179, 4, 59, 0, 8, 0, 0, 97, 51, 1, 33, 1, 7, 39, 3, 5, 1, 125, 254, 2, 56, 254, 221, 254, 167, 28, 2, 119, 254, 243, 4, 58, 253, 15, 81, 73, 2, 250, 1, 0, 1, 0, 112, 0, 0, 4, 210, 4, 58, 0, 18, 0, 0, 115, 51, 19, 55, 23, 19, 51, 1, 35, 3, 7, 53, 3, 35, 3, 7, 55, 19, 35, 112, 239, 207, 44, 3, 15, 238, 1, 120, 254, 187, 32, 3, 182, 222, 37, 6, 33, 244, 2, 53, 119, 120, 253, 204, 4, 58, 253, 137, 109, 123, 2, 105, 253, 134, 104, 108, 2, 118, 0, 1, 255, 241, 0, 0, 4, 197, 4, 58, 0, 11, 0, 0, 65, 3, 33, 1, 1, 33, 1, 19, 33, 1, 1, 33, 2, 120, 173, 254, 235, 1, 7, 254, 52, 1, 52, 1, 38, 186, 1, 21, 254, 239, 1, 188, 254, 206, 2, 233, 1, 81, 253, 248, 253, 206, 1, 97, 254, 159, 2, 28, 2, 30, 0, 1, 0, 0, 254, 72, 5, 3, 4, 58, 0, 26, 0, 0, 65, 3, 33, 1, 7, 6, 6, 7, 6, 6, 7, 6, 38, 39, 7, 22, 22, 23, 50, 54, 55, 54, 54, 55, 1, 33, 1, 2, 45, 132, 254, 226, 1, 6, 96, 17, 35, 19, 20, 46, 29, 20, 44, 20, 55, 35, 69, 36, 71, 117, 48, 48, 79, 33, 2, 235, 254, 201, 254, 106, 1, 186, 2, 128, 252, 1, 139, 20, 45, 19, 19, 26, 2, 2, 6, 1, 211, 9, 13, 1, 43, 38, 37, 102, 57, 4, 221, 253, 29, 0, 0, 1, 0, 20, 0, 0, 4, 129, 4, 58, 0, 9, 0, 0, 101, 1, 55, 33, 7, 33, 1, 7, 33, 55, 1, 177, 2, 180, 28, 252, 74, 36, 2, 54, 253, 84, 29, 3, 220, 35, 223, 2, 170, 177, 226, 253, 94, 182, 223, 0, 0, 3, 0, 124, 255, 233, 4, 92, 5, 199, 0, 37, 0, 57, 0, 77, 0, 0, 65, 19, 54, 38, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 3, 6, 6, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 1, 22, 22, 23, 22, 6, 7, 1, 54, 54, 55, 55, 54, 54, 55, 54, 54, 55, 54, 54, 3, 38, 38, 39, 38, 38, 55, 1, 6, 6, 7, 7, 6, 6, 7, 6, 6, 7, 6, 6, 4, 28, 55, 9, 5, 15, 15, 58, 45, 45, 123, 81, 77, 130, 54, 34, 61, 26, 66, 79, 16, 54, 6, 2, 5, 5, 29, 24, 43, 158, 121, 81, 136, 55, 57, 90, 33, 34, 45, 254, 178, 57, 60, 13, 12, 1, 5, 254, 94, 1, 2, 6, 33, 7, 29, 28, 10, 24, 14, 25, 63, 135, 56, 60, 13, 13, 1, 4, 1, 165, 4, 3, 3, 30, 6, 18, 14, 13, 43, 28, 25, 58, 2, 43, 1, 91, 70, 139, 63, 63, 109, 41, 40, 48, 2, 2, 35, 32, 22, 54, 31, 81, 210, 112, 254, 164, 48, 96, 45, 54, 102, 44, 81, 102, 3, 2, 39, 36, 37, 106, 64, 66, 151, 3, 9, 2, 58, 43, 43, 98, 43, 254, 230, 5, 14, 37, 207, 51, 110, 46, 16, 30, 12, 20, 23, 251, 227, 2, 56, 42, 41, 96, 42, 1, 27, 20, 24, 19, 190, 37, 79, 37, 35, 64, 23, 20, 16, 0, 0, 1, 0, 233, 0, 0, 3, 172, 5, 176, 0, 6, 0, 0, 97, 19, 35, 5, 7, 37, 3, 2, 182, 246, 20, 253, 125, 44, 1, 124, 193, 5, 176, 224, 252, 131, 251, 169, 0, 1, 0, 3, 0, 0, 4, 66, 5, 198, 0, 42, 0, 0, 97, 55, 33, 1, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 37, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 1, 7, 3, 199, 36, 253, 156, 1, 55, 59, 128, 55, 55, 76, 7, 8, 51, 52, 53, 152, 93, 105, 192, 75, 76, 97, 8, 1, 15, 7, 38, 32, 31, 89, 57, 43, 61, 19, 18, 13, 5, 7, 53, 36, 37, 82, 35, 253, 242, 31, 223, 1, 34, 55, 119, 67, 66, 151, 86, 95, 153, 55, 54, 60, 2, 2, 68, 63, 63, 176, 107, 1, 53, 90, 33, 33, 36, 1, 2, 33, 27, 27, 71, 40, 52, 96, 44, 45, 78, 34, 254, 15, 200, 0, 1, 0, 52, 255, 234, 4, 107, 5, 198, 0, 76, 0, 0, 65, 7, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 37, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 37, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 35, 1, 195, 38, 162, 53, 79, 23, 22, 16, 6, 6, 45, 34, 35, 88, 50, 45, 70, 23, 21, 22, 1, 254, 243, 3, 62, 57, 57, 159, 93, 101, 191, 76, 76, 97, 8, 4, 16, 21, 21, 67, 48, 51, 91, 36, 35, 45, 5, 8, 60, 58, 58, 160, 92, 92, 174, 70, 70, 91, 7, 1, 14, 8, 40, 29, 29, 74, 42, 38, 59, 20, 25, 22, 6, 7, 45, 35, 35, 90, 51, 3, 82, 216, 1, 2, 32, 29, 27, 76, 48, 50, 81, 28, 28, 30, 1, 2, 30, 26, 25, 69, 41, 1, 97, 153, 53, 54, 58, 2, 2, 55, 56, 55, 164, 108, 52, 97, 43, 42, 68, 23, 24, 64, 41, 40, 99, 60, 99, 150, 52, 51, 53, 2, 2, 52, 51, 51, 150, 97, 2, 41, 65, 23, 22, 24, 1, 1, 21, 20, 24, 74, 47, 53, 81, 27, 27, 29, 0, 2, 0, 19, 0, 0, 4, 55, 5, 176, 0, 10, 0, 14, 0, 0, 65, 19, 33, 1, 7, 33, 3, 33, 19, 51, 55, 33, 1, 55, 3, 3, 147, 159, 254, 229, 253, 17, 21, 2, 74, 55, 1, 15, 55, 164, 39, 253, 9, 1, 135, 35, 102, 2, 29, 3, 147, 252, 70, 186, 254, 196, 1, 60, 225, 1, 237, 51, 253, 224, 0, 1, 0, 76, 255, 233, 4, 140, 5, 176, 0, 48, 0, 0, 83, 23, 54, 54, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 39, 33, 20, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 38, 6, 7, 19, 33, 55, 33, 169, 221, 44, 96, 60, 56, 74, 21, 21, 12, 5, 6, 33, 29, 30, 88, 61, 45, 66, 22, 22, 24, 2, 254, 247, 63, 57, 57, 156, 93, 110, 188, 71, 70, 88, 11, 9, 33, 44, 45, 146, 104, 56, 109, 48, 100, 2, 47, 41, 252, 237, 2, 209, 57, 38, 41, 1, 1, 43, 35, 35, 91, 49, 53, 103, 41, 41, 50, 2, 1, 32, 27, 27, 72, 42, 94, 154, 55, 56, 62, 2, 3, 72, 66, 66, 183, 108, 94, 174, 67, 66, 81, 1, 1, 28, 30, 1, 66, 236, 0, 2, 0, 85, 255, 233, 4, 31, 5, 189, 0, 45, 0, 73, 0, 0, 65, 35, 34, 6, 7, 6, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 34, 6, 7, 6, 6, 7, 54, 54, 55, 54, 54, 55, 54, 54, 23, 23, 1, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 39, 38, 54, 55, 55, 54, 54, 55, 54, 54, 3, 215, 42, 83, 151, 67, 124, 194, 69, 55, 71, 16, 14, 12, 39, 52, 51, 168, 119, 110, 187, 70, 70, 87, 9, 8, 31, 41, 41, 138, 100, 42, 78, 35, 41, 72, 32, 17, 43, 25, 45, 114, 71, 49, 115, 64, 12, 254, 163, 53, 69, 19, 19, 11, 4, 5, 36, 31, 32, 88, 57, 41, 58, 19, 19, 22, 4, 4, 1, 3, 11, 19, 50, 30, 29, 68, 5, 189, 29, 26, 50, 173, 111, 90, 211, 115, 107, 107, 204, 81, 81, 101, 3, 3, 78, 69, 69, 187, 106, 87, 172, 69, 69, 86, 2, 17, 16, 18, 54, 33, 48, 87, 38, 64, 97, 30, 20, 22, 1, 1, 254, 24, 2, 50, 38, 39, 93, 44, 50, 101, 40, 41, 50, 2, 1, 31, 25, 25, 65, 36, 35, 70, 31, 84, 30, 53, 20, 19, 22, 0, 0, 1, 0, 125, 0, 0, 4, 170, 5, 176, 0, 6, 0, 0, 65, 55, 33, 7, 33, 1, 33, 4, 144, 26, 252, 30, 36, 2, 192, 253, 25, 1, 40, 5, 9, 167, 227, 251, 51, 0, 0, 3, 0, 63, 255, 234, 4, 88, 5, 198, 0, 47, 0, 71, 0, 95, 0, 0, 65, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 6, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 1, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 19, 6, 6, 7, 6, 6, 39, 34, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 4, 81, 7, 55, 53, 54, 151, 88, 96, 172, 66, 67, 83, 7, 4, 23, 27, 17, 46, 28, 58, 100, 38, 38, 47, 5, 8, 62, 58, 57, 160, 92, 99, 184, 72, 72, 92, 7, 5, 36, 39, 18, 47, 28, 51, 87, 33, 33, 41, 254, 162, 5, 39, 31, 32, 82, 49, 45, 67, 21, 21, 16, 5, 5, 39, 32, 31, 83, 50, 45, 66, 21, 20, 16, 78, 5, 32, 26, 27, 72, 44, 41, 56, 17, 17, 13, 4, 4, 31, 27, 26, 71, 45, 40, 57, 18, 17, 14, 4, 53, 93, 146, 52, 51, 55, 2, 2, 54, 54, 54, 156, 100, 56, 105, 45, 28, 50, 21, 27, 71, 45, 45, 111, 67, 98, 151, 51, 52, 56, 1, 2, 54, 55, 54, 161, 105, 70, 128, 52, 24, 44, 18, 26, 67, 41, 41, 100, 253, 175, 47, 82, 30, 30, 35, 1, 1, 33, 28, 27, 75, 43, 48, 83, 31, 30, 35, 1, 1, 34, 28, 29, 76, 2, 85, 41, 75, 29, 29, 34, 1, 33, 27, 26, 68, 37, 42, 74, 28, 28, 33, 1, 1, 31, 26, 26, 67, 0, 2, 0, 142, 255, 243, 4, 65, 5, 198, 0, 48, 0, 76, 0, 0, 119, 39, 7, 51, 54, 36, 55, 54, 18, 55, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 6, 6, 7, 6, 6, 7, 6, 6, 1, 38, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 23, 22, 6, 7, 7, 6, 6, 7, 6, 6, 253, 15, 24, 26, 181, 1, 32, 105, 104, 129, 23, 12, 7, 8, 17, 18, 63, 46, 47, 126, 81, 74, 133, 57, 57, 94, 34, 35, 43, 6, 8, 33, 43, 43, 141, 100, 42, 77, 35, 30, 58, 26, 22, 57, 34, 39, 94, 56, 47, 108, 1, 12, 54, 66, 17, 18, 9, 5, 5, 34, 30, 30, 86, 57, 30, 46, 17, 31, 30, 2, 2, 2, 3, 13, 18, 46, 28, 28, 66, 220, 1, 234, 1, 120, 107, 106, 1, 36, 173, 96, 69, 142, 65, 65, 115, 43, 43, 50, 2, 2, 37, 34, 35, 97, 58, 59, 133, 70, 89, 172, 68, 68, 84, 1, 1, 14, 15, 12, 38, 24, 60, 100, 39, 43, 63, 19, 16, 16, 1, 211, 1, 54, 40, 39, 95, 44, 48, 104, 44, 43, 55, 1, 1, 19, 16, 29, 92, 48, 30, 60, 25, 101, 31, 54, 19, 20, 22, 0, 1, 1, 223, 2, 147, 3, 133, 5, 165, 0, 6, 0, 0, 65, 19, 35, 5, 7, 55, 3, 3, 4, 129, 24, 254, 143, 29, 193, 95, 2, 147, 3, 18, 116, 163, 42, 253, 219, 0, 0, 1, 1, 61, 2, 155, 3, 224, 5, 190, 0, 39, 0, 0, 65, 55, 37, 55, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 55, 54, 54, 55, 54, 54, 51, 50, 22, 7, 6, 6, 7, 6, 6, 7, 5, 7, 3, 150, 28, 254, 176, 132, 40, 85, 36, 36, 48, 2, 3, 44, 39, 39, 102, 56, 63, 111, 42, 43, 53, 5, 198, 5, 20, 16, 15, 41, 27, 37, 38, 7, 5, 28, 19, 20, 43, 18, 254, 202, 25, 2, 155, 159, 2, 91, 28, 63, 38, 37, 89, 54, 62, 90, 30, 29, 29, 1, 1, 38, 36, 36, 102, 64, 1, 24, 41, 16, 16, 18, 43, 38, 25, 47, 21, 21, 38, 15, 251, 144, 0, 1, 1, 79, 2, 142, 3, 235, 5, 188, 0, 73, 0, 0, 65, 38, 38, 39, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 34, 6, 7, 6, 6, 7, 55, 54, 54, 51, 50, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 35, 7, 51, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 39, 20, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 38, 3, 155, 14, 41, 27, 31, 56, 22, 21, 27, 2, 3, 51, 41, 42, 104, 50, 56, 105, 42, 42, 55, 5, 202, 15, 58, 37, 17, 32, 12, 12, 11, 3, 4, 26, 19, 19, 45, 23, 82, 11, 92, 21, 40, 15, 14, 13, 4, 4, 25, 18, 19, 45, 22, 25, 40, 14, 11, 14, 1, 192, 46, 39, 38, 102, 58, 56, 119, 49, 49, 63, 2, 1, 16, 3, 240, 19, 28, 9, 14, 34, 22, 21, 57, 36, 60, 83, 26, 26, 24, 1, 26, 27, 28, 86, 60, 1, 34, 30, 9, 9, 9, 28, 19, 26, 35, 11, 12, 12, 1, 136, 1, 8, 9, 10, 33, 26, 24, 36, 11, 12, 12, 12, 12, 10, 30, 20, 1, 62, 92, 30, 31, 31, 1, 1, 25, 29, 28, 92, 66, 34, 58, 0, 2, 1, 61, 2, 178, 3, 230, 5, 197, 0, 51, 0, 71, 0, 0, 65, 51, 38, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 23, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 7, 39, 34, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 51, 22, 54, 55, 6, 22, 39, 34, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 55, 51, 7, 6, 6, 7, 6, 6, 2, 255, 169, 7, 3, 8, 17, 18, 15, 8, 32, 32, 32, 97, 62, 57, 110, 45, 45, 62, 8, 171, 6, 22, 16, 19, 50, 30, 28, 37, 10, 9, 6, 3, 8, 136, 59, 123, 51, 51, 67, 3, 2, 30, 29, 29, 83, 50, 69, 112, 45, 1, 1, 173, 20, 37, 13, 14, 14, 3, 3, 35, 25, 25, 59, 27, 123, 18, 16, 42, 24, 24, 52, 2, 192, 47, 89, 46, 105, 104, 105, 61, 101, 36, 36, 41, 1, 1, 26, 29, 29, 89, 61, 13, 23, 35, 12, 15, 14, 1, 1, 20, 17, 17, 45, 25, 53, 1, 22, 27, 27, 93, 70, 51, 82, 28, 29, 31, 1, 57, 51, 23, 47, 105, 9, 10, 9, 32, 23, 31, 44, 14, 14, 13, 1, 104, 21, 35, 13, 13, 14, 0, 0, 2, 1, 72, 2, 176, 4, 5, 5, 198, 0, 25, 0, 51, 0, 0, 65, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 55, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 23, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 1, 91, 13, 6, 35, 39, 38, 115, 72, 76, 132, 50, 50, 65, 9, 13, 7, 35, 38, 39, 114, 73, 77, 132, 50, 50, 65, 153, 12, 5, 29, 24, 24, 67, 42, 40, 56, 17, 16, 11, 3, 13, 5, 29, 24, 24, 67, 42, 41, 54, 16, 16, 12, 4, 116, 116, 71, 121, 44, 45, 51, 2, 2, 47, 45, 44, 125, 75, 117, 71, 121, 45, 44, 52, 2, 2, 48, 45, 45, 125, 194, 120, 39, 69, 26, 26, 29, 1, 1, 31, 26, 26, 67, 36, 119, 39, 69, 26, 26, 30, 1, 1, 32, 26, 25, 67, 0, 3, 0, 138, 0, 0, 4, 120, 5, 179, 0, 6, 0, 49, 0, 53, 0, 0, 65, 19, 35, 5, 7, 55, 3, 1, 55, 37, 55, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 5, 7, 39, 1, 39, 1, 1, 146, 116, 22, 254, 180, 26, 174, 86, 3, 84, 25, 254, 210, 118, 36, 77, 32, 33, 43, 2, 2, 39, 35, 35, 92, 51, 56, 100, 38, 39, 47, 5, 178, 5, 18, 14, 14, 37, 24, 19, 29, 7, 6, 3, 3, 4, 26, 17, 18, 38, 17, 254, 233, 22, 246, 2, 140, 127, 253, 117, 2, 240, 2, 195, 104, 147, 38, 254, 18, 253, 16, 143, 2, 82, 25, 57, 33, 34, 80, 49, 56, 81, 26, 27, 26, 1, 1, 34, 33, 32, 92, 58, 1, 22, 37, 14, 15, 16, 14, 12, 9, 24, 14, 23, 42, 19, 19, 34, 13, 226, 130, 237, 3, 160, 73, 252, 96, 0, 4, 0, 177, 0, 0, 4, 70, 5, 178, 0, 6, 0, 17, 0, 21, 0, 25, 0, 0, 65, 19, 35, 5, 7, 55, 3, 1, 19, 39, 1, 7, 33, 7, 51, 55, 51, 55, 33, 55, 55, 7, 5, 1, 39, 1, 1, 185, 116, 22, 254, 180, 26, 174, 86, 2, 230, 73, 179, 254, 131, 12, 1, 46, 25, 177, 26, 78, 28, 254, 118, 162, 14, 42, 254, 36, 2, 140, 127, 253, 117, 2, 239, 2, 195, 104, 147, 38, 254, 18, 254, 51, 1, 164, 3, 254, 72, 129, 144, 144, 147, 176, 20, 196, 54, 3, 160, 73, 252, 96, 0, 4, 0, 104, 0, 0, 4, 117, 5, 186, 0, 10, 0, 14, 0, 88, 0, 92, 0, 0, 65, 19, 39, 1, 7, 33, 7, 51, 55, 51, 55, 33, 55, 55, 7, 1, 7, 51, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 35, 20, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 34, 6, 7, 6, 6, 7, 51, 54, 54, 51, 50, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 19, 1, 39, 1, 4, 30, 73, 179, 254, 131, 12, 1, 46, 25, 177, 26, 78, 28, 254, 118, 162, 14, 42, 253, 216, 10, 82, 19, 36, 13, 13, 12, 3, 4, 23, 16, 17, 40, 20, 23, 37, 13, 9, 12, 1, 172, 41, 35, 34, 92, 52, 51, 107, 44, 44, 57, 1, 1, 18, 20, 12, 33, 21, 28, 50, 20, 19, 24, 2, 3, 46, 38, 37, 93, 45, 51, 94, 38, 38, 49, 5, 182, 13, 53, 33, 15, 29, 11, 11, 9, 2, 4, 23, 17, 17, 41, 21, 37, 2, 140, 127, 253, 117, 1, 34, 1, 164, 3, 254, 72, 129, 144, 144, 147, 176, 20, 196, 3, 107, 122, 1, 7, 9, 8, 30, 24, 21, 33, 10, 10, 11, 11, 12, 9, 26, 18, 55, 83, 28, 27, 28, 1, 1, 23, 25, 26, 83, 59, 34, 57, 21, 13, 21, 7, 13, 30, 20, 19, 51, 33, 54, 75, 23, 23, 22, 1, 24, 24, 25, 77, 54, 31, 27, 8, 8, 8, 25, 18, 23, 31, 11, 10, 11, 1, 252, 95, 3, 160, 73, 252, 96, 0, 2, 255, 193, 0, 0, 4, 247, 5, 176, 0, 15, 0, 18, 0, 0, 97, 55, 33, 19, 51, 55, 35, 19, 51, 55, 33, 1, 33, 19, 51, 3, 3, 19, 3, 4, 15, 39, 254, 251, 71, 210, 40, 211, 64, 240, 40, 253, 152, 253, 50, 1, 28, 150, 204, 58, 41, 230, 90, 226, 1, 153, 227, 1, 110, 228, 250, 80, 1, 78, 254, 178, 2, 62, 2, 0, 254, 0, 0, 3, 255, 245, 255, 235, 4, 158, 4, 81, 0, 78, 0, 93, 0, 113, 0, 0, 69, 22, 54, 55, 54, 54, 55, 39, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 55, 33, 55, 54, 38, 39, 38, 38, 39, 38, 6, 7, 38, 38, 39, 38, 6, 7, 6, 6, 7, 5, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 6, 7, 7, 35, 38, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 22, 22, 23, 22, 22, 19, 22, 22, 23, 22, 22, 15, 2, 55, 54, 54, 55, 54, 54, 1, 6, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 23, 23, 3, 6, 6, 7, 6, 6, 2, 239, 36, 79, 39, 38, 71, 30, 38, 26, 52, 26, 21, 44, 23, 44, 59, 14, 11, 7, 4, 15, 1, 180, 32, 16, 22, 30, 31, 109, 81, 64, 113, 52, 44, 112, 60, 75, 127, 47, 47, 59, 6, 1, 2, 4, 14, 12, 11, 34, 25, 22, 22, 4, 4, 1, 3, 24, 8, 89, 169, 67, 68, 86, 6, 3, 33, 36, 35, 105, 69, 42, 74, 33, 24, 46, 22, 20, 54, 32, 31, 70, 149, 26, 29, 7, 6, 1, 2, 15, 196, 12, 5, 15, 15, 14, 46, 254, 27, 23, 32, 9, 10, 7, 3, 4, 36, 28, 28, 70, 39, 4, 62, 8, 17, 8, 8, 18, 19, 1, 7, 9, 8, 31, 23, 194, 11, 19, 6, 6, 5, 1, 1, 28, 26, 18, 51, 32, 92, 206, 100, 150, 58, 57, 74, 2, 2, 38, 37, 42, 33, 1, 1, 43, 41, 42, 119, 75, 10, 21, 38, 15, 14, 16, 1, 1, 22, 16, 17, 37, 16, 121, 3, 37, 43, 44, 139, 99, 66, 113, 41, 41, 47, 1, 1, 22, 20, 15, 39, 23, 31, 43, 14, 15, 13, 3, 129, 1, 23, 17, 18, 43, 20, 114, 1, 63, 29, 62, 26, 26, 32, 253, 73, 1, 15, 14, 13, 37, 20, 37, 69, 26, 25, 29, 2, 1, 255, 0, 4, 8, 4, 3, 5, 0, 2, 0, 47, 255, 235, 5, 13, 5, 199, 0, 35, 0, 58, 0, 0, 97, 55, 33, 19, 33, 55, 33, 19, 33, 55, 33, 38, 38, 35, 38, 6, 7, 6, 6, 7, 6, 6, 7, 3, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 39, 38, 38, 39, 38, 38, 39, 38, 54, 55, 19, 54, 54, 55, 54, 54, 23, 22, 22, 23, 3, 34, 6, 4, 27, 41, 254, 164, 73, 1, 30, 38, 254, 225, 65, 1, 80, 38, 254, 99, 66, 127, 66, 80, 132, 52, 45, 71, 27, 33, 42, 11, 74, 7, 4, 14, 14, 52, 41, 40, 110, 72, 67, 130, 66, 245, 28, 42, 14, 15, 18, 5, 10, 5, 5, 72, 8, 29, 27, 27, 86, 65, 22, 43, 22, 190, 23, 43, 232, 1, 160, 217, 1, 118, 217, 5, 17, 1, 42, 37, 33, 84, 49, 60, 140, 74, 254, 48, 62, 124, 57, 57, 98, 36, 37, 44, 1, 1, 16, 5, 213, 2, 16, 14, 13, 36, 21, 41, 97, 42, 1, 212, 54, 109, 43, 43, 53, 1, 1, 3, 2, 251, 235, 1, 0, 3, 0, 6, 255, 235, 4, 142, 4, 80, 0, 76, 0, 114, 0, 135, 0, 0, 65, 38, 6, 7, 6, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 22, 22, 23, 22, 22, 51, 22, 54, 55, 54, 54, 55, 39, 6, 6, 7, 6, 6, 35, 38, 38, 39, 38, 38, 53, 52, 54, 55, 55, 33, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 38, 38, 39, 38, 38, 3, 55, 54, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 7, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 54, 54, 37, 55, 54, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 23, 22, 6, 7, 7, 1, 203, 72, 116, 45, 32, 51, 21, 32, 40, 9, 29, 6, 4, 12, 6, 16, 10, 33, 122, 95, 55, 97, 43, 12, 24, 11, 18, 41, 22, 36, 83, 42, 36, 71, 33, 25, 46, 21, 44, 19, 36, 19, 17, 35, 19, 45, 50, 11, 7, 6, 3, 3, 7, 1, 144, 31, 10, 5, 11, 11, 41, 31, 32, 88, 58, 39, 70, 31, 21, 39, 19, 17, 39, 20, 31, 68, 225, 24, 2, 4, 3, 3, 10, 7, 14, 50, 42, 25, 31, 8, 7, 4, 1, 2, 5, 2, 25, 2, 6, 6, 6, 18, 14, 14, 42, 28, 25, 30, 7, 8, 3, 2, 1, 5, 1, 215, 1, 3, 6, 4, 5, 15, 13, 12, 37, 26, 15, 21, 6, 5, 7, 2, 4, 2, 2, 12, 4, 79, 1, 40, 36, 25, 66, 36, 58, 135, 68, 200, 55, 114, 51, 23, 45, 20, 66, 84, 2, 1, 30, 29, 8, 18, 10, 19, 30, 11, 18, 16, 1, 12, 13, 10, 29, 19, 182, 8, 16, 5, 4, 5, 1, 40, 31, 17, 39, 20, 16, 32, 16, 36, 201, 65, 101, 48, 47, 83, 32, 31, 38, 1, 1, 16, 16, 10, 28, 16, 18, 28, 10, 15, 15, 253, 104, 203, 15, 37, 20, 19, 40, 19, 38, 52, 2, 1, 27, 21, 22, 52, 26, 26, 47, 15, 202, 20, 51, 27, 27, 52, 20, 20, 24, 1, 1, 28, 21, 21, 53, 26, 26, 47, 224, 9, 17, 42, 24, 26, 52, 20, 20, 23, 1, 1, 12, 10, 7, 17, 9, 23, 49, 18, 86, 0, 2, 0, 7, 255, 233, 4, 148, 5, 234, 0, 49, 0, 78, 0, 0, 65, 38, 38, 39, 55, 39, 7, 38, 38, 39, 7, 22, 22, 23, 7, 23, 37, 22, 22, 23, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 55, 55, 54, 54, 1, 6, 6, 39, 38, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 7, 7, 6, 6, 7, 6, 6, 4, 60, 7, 48, 42, 185, 60, 218, 56, 131, 74, 109, 32, 61, 27, 221, 62, 1, 1, 34, 33, 2, 28, 59, 32, 31, 66, 34, 113, 191, 72, 72, 88, 9, 9, 58, 59, 58, 168, 101, 86, 152, 65, 64, 106, 40, 40, 52, 11, 9, 8, 4, 254, 120, 39, 110, 72, 54, 76, 23, 24, 18, 6, 6, 43, 35, 34, 96, 60, 32, 71, 34, 33, 59, 20, 3, 15, 6, 20, 14, 11, 28, 3, 119, 96, 186, 93, 91, 124, 112, 54, 73, 22, 214, 14, 30, 23, 112, 123, 133, 59, 125, 69, 21, 33, 11, 11, 12, 1, 3, 75, 68, 68, 188, 111, 102, 173, 64, 65, 74, 3, 2, 43, 41, 40, 113, 68, 67, 151, 79, 68, 62, 120, 253, 254, 52, 64, 2, 2, 45, 36, 36, 91, 49, 54, 106, 43, 42, 53, 9, 10, 11, 36, 28, 14, 96, 35, 71, 35, 26, 50, 0, 2, 0, 27, 0, 0, 4, 148, 5, 176, 0, 18, 0, 33, 0, 0, 65, 33, 3, 33, 19, 23, 50, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 39, 7, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 39, 2, 40, 254, 240, 253, 1, 16, 51, 234, 107, 201, 79, 79, 103, 10, 9, 66, 62, 63, 172, 99, 205, 39, 233, 49, 77, 26, 25, 22, 7, 8, 53, 40, 40, 100, 55, 207, 5, 176, 250, 80, 1, 33, 1, 56, 57, 57, 171, 116, 106, 162, 56, 55, 58, 2, 1, 224, 1, 2, 31, 27, 28, 79, 49, 58, 86, 29, 30, 29, 1, 2, 0, 0, 2, 255, 220, 254, 96, 4, 53, 6, 7, 0, 38, 0, 70, 0, 0, 101, 54, 54, 55, 54, 54, 55, 54, 54, 55, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 19, 33, 1, 33, 19, 22, 22, 23, 22, 22, 23, 22, 54, 39, 38, 38, 39, 38, 38, 39, 19, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 23, 22, 6, 7, 7, 6, 6, 7, 6, 6, 7, 6, 6, 2, 234, 49, 81, 35, 25, 43, 18, 28, 36, 8, 2, 6, 3, 12, 12, 49, 39, 40, 110, 74, 47, 85, 37, 27, 51, 23, 107, 254, 241, 254, 172, 1, 15, 97, 21, 50, 27, 34, 76, 42, 46, 82, 181, 28, 50, 20, 23, 35, 11, 79, 20, 47, 28, 24, 56, 32, 41, 56, 18, 18, 18, 3, 3, 3, 3, 2, 7, 34, 31, 16, 39, 24, 24, 59, 8, 20, 64, 41, 31, 71, 38, 63, 135, 66, 21, 61, 127, 60, 60, 106, 40, 40, 48, 2, 1, 20, 20, 14, 39, 24, 2, 45, 248, 89, 2, 1, 26, 41, 14, 18, 18, 1, 1, 15, 208, 1, 13, 12, 14, 43, 30, 1, 197, 28, 43, 14, 13, 12, 1, 1, 31, 25, 26, 64, 35, 35, 70, 30, 21, 56, 121, 49, 25, 41, 15, 15, 16, 0, 0, 1, 0, 50, 0, 0, 4, 222, 4, 58, 0, 12, 0, 0, 65, 19, 33, 1, 1, 33, 1, 7, 19, 33, 3, 33, 19, 2, 52, 164, 1, 76, 254, 234, 1, 208, 254, 154, 254, 160, 108, 81, 254, 240, 187, 1, 15, 48, 1, 168, 254, 88, 2, 110, 1, 204, 254, 159, 108, 1, 205, 251, 198, 1, 21, 0, 0, 1, 0, 52, 255, 232, 4, 81, 6, 29, 0, 75, 0, 0, 97, 19, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 6, 38, 39, 7, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 3, 1, 67, 181, 6, 28, 25, 24, 75, 53, 30, 42, 13, 12, 9, 3, 6, 48, 27, 28, 47, 4, 4, 27, 22, 21, 52, 21, 21, 24, 7, 4, 22, 17, 20, 59, 36, 54, 109, 46, 77, 62, 146, 70, 90, 153, 58, 57, 69, 6, 3, 27, 21, 22, 50, 20, 20, 22, 7, 10, 50, 27, 27, 44, 5, 6, 45, 45, 46, 129, 78, 111, 180, 66, 66, 82, 15, 184, 4, 49, 42, 96, 41, 41, 52, 3, 2, 28, 21, 22, 53, 26, 54, 90, 43, 44, 92, 55, 47, 81, 37, 37, 71, 35, 36, 75, 41, 28, 50, 20, 23, 29, 1, 2, 31, 28, 219, 36, 25, 1, 1, 50, 49, 49, 143, 92, 44, 82, 39, 38, 74, 37, 36, 75, 39, 54, 89, 44, 44, 93, 57, 80, 130, 47, 47, 52, 2, 3, 73, 66, 66, 180, 104, 251, 204, 0, 2, 0, 119, 255, 235, 4, 84, 4, 79, 0, 42, 0, 56, 0, 0, 65, 38, 6, 7, 6, 6, 7, 23, 54, 54, 23, 22, 22, 23, 22, 22, 23, 20, 6, 21, 33, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 55, 55, 54, 38, 39, 38, 38, 3, 38, 38, 39, 38, 38, 55, 55, 33, 6, 6, 7, 6, 6, 2, 148, 54, 113, 55, 56, 103, 43, 61, 78, 158, 88, 55, 81, 27, 23, 23, 1, 1, 253, 93, 24, 12, 40, 51, 51, 160, 107, 87, 153, 64, 56, 72, 32, 40, 52, 9, 5, 10, 49, 57, 56, 173, 225, 47, 66, 19, 20, 13, 7, 6, 1, 154, 17, 46, 31, 31, 81, 4, 78, 1, 12, 15, 14, 48, 35, 182, 38, 45, 3, 2, 39, 34, 29, 78, 45, 6, 11, 6, 158, 103, 176, 66, 65, 75, 3, 2, 47, 44, 38, 82, 50, 65, 149, 79, 41, 108, 190, 72, 71, 85, 252, 126, 1, 32, 27, 27, 74, 44, 28, 43, 84, 33, 34, 40, 0, 1, 0, 89, 255, 43, 4, 156, 6, 152, 0, 55, 0, 0, 65, 6, 6, 39, 38, 38, 55, 37, 6, 18, 23, 7, 51, 55, 54, 36, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 38, 38, 55, 54, 54, 23, 22, 22, 7, 33, 54, 2, 39, 55, 35, 7, 6, 4, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 22, 3, 36, 12, 143, 87, 113, 86, 6, 254, 240, 8, 182, 190, 37, 156, 36, 176, 1, 12, 12, 6, 56, 52, 52, 140, 77, 38, 70, 26, 26, 28, 6, 12, 119, 89, 103, 63, 4, 1, 15, 8, 146, 176, 40, 157, 40, 178, 254, 252, 12, 6, 57, 53, 52, 141, 78, 39, 69, 26, 25, 25, 1, 133, 93, 95, 2, 2, 147, 101, 1, 186, 254, 255, 26, 198, 196, 18, 196, 194, 94, 141, 54, 53, 81, 33, 16, 37, 25, 24, 67, 47, 87, 102, 2, 2, 157, 86, 168, 1, 6, 34, 219, 215, 18, 206, 186, 94, 141, 53, 54, 79, 32, 16, 38, 25, 26, 69, 0, 0, 1, 0, 121, 255, 11, 4, 72, 5, 38, 0, 66, 0, 0, 101, 38, 38, 39, 38, 38, 39, 38, 54, 55, 55, 54, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 23, 54, 38, 39, 38, 38, 39, 55, 35, 7, 6, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 7, 51, 55, 54, 54, 55, 54, 54, 55, 7, 6, 6, 7, 6, 6, 2, 43, 65, 69, 15, 6, 6, 2, 2, 3, 3, 4, 5, 18, 15, 18, 50, 34, 27, 66, 40, 43, 64, 21, 21, 18, 3, 255, 4, 36, 38, 38, 110, 69, 41, 196, 39, 102, 167, 62, 62, 77, 12, 3, 5, 3, 8, 6, 25, 17, 36, 121, 84, 43, 196, 40, 78, 145, 57, 57, 72, 5, 254, 6, 41, 29, 30, 73, 201, 2, 65, 48, 17, 40, 20, 33, 67, 30, 30, 38, 77, 37, 40, 73, 24, 18, 19, 1, 2, 31, 26, 26, 71, 40, 1, 78, 134, 53, 52, 73, 17, 230, 221, 13, 96, 73, 73, 186, 103, 31, 49, 94, 44, 39, 73, 33, 70, 102, 22, 241, 228, 9, 61, 50, 50, 135, 83, 2, 40, 64, 21, 22, 22, 0, 1, 0, 10, 0, 0, 4, 191, 5, 198, 0, 48, 0, 0, 65, 33, 55, 33, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 5, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 7, 35, 7, 51, 7, 6, 6, 7, 6, 6, 7, 39, 7, 33, 55, 5, 54, 54, 55, 2, 29, 1, 37, 39, 254, 211, 28, 6, 31, 25, 25, 70, 45, 43, 57, 18, 17, 13, 2, 1, 7, 4, 48, 49, 49, 146, 94, 100, 173, 66, 66, 84, 12, 30, 151, 39, 158, 23, 5, 14, 13, 14, 41, 31, 75, 40, 4, 1, 39, 253, 114, 44, 50, 9, 2, 73, 221, 235, 40, 76, 30, 29, 35, 1, 1, 30, 24, 25, 67, 39, 1, 92, 151, 54, 54, 60, 2, 2, 62, 57, 58, 162, 99, 234, 221, 166, 30, 60, 26, 27, 41, 12, 2, 225, 226, 3, 45, 102, 63, 0, 0, 1, 0, 77, 0, 0, 5, 64, 5, 176, 0, 26, 0, 0, 65, 1, 7, 49, 39, 3, 33, 19, 33, 7, 33, 7, 33, 7, 33, 3, 33, 19, 33, 55, 33, 55, 55, 33, 55, 35, 1, 4, 6, 254, 197, 76, 35, 140, 254, 223, 249, 254, 244, 29, 1, 77, 22, 254, 180, 29, 1, 77, 50, 1, 18, 50, 1, 65, 29, 254, 190, 22, 1, 1, 64, 29, 236, 1, 240, 5, 176, 254, 15, 120, 125, 1, 236, 253, 54, 166, 124, 165, 254, 225, 1, 31, 165, 118, 6, 166, 2, 202, 0, 1, 255, 248, 254, 73, 4, 215, 6, 47, 0, 47, 0, 0, 65, 55, 35, 55, 54, 54, 55, 54, 54, 23, 50, 22, 23, 55, 38, 38, 39, 38, 6, 7, 6, 6, 7, 7, 35, 7, 51, 3, 6, 6, 7, 6, 6, 39, 38, 38, 39, 7, 22, 22, 23, 22, 54, 55, 54, 54, 55, 19, 3, 193, 32, 200, 11, 8, 46, 34, 34, 87, 50, 35, 65, 31, 45, 48, 96, 51, 102, 177, 67, 68, 87, 13, 9, 156, 32, 156, 136, 6, 26, 22, 23, 66, 45, 35, 72, 29, 37, 46, 95, 48, 99, 155, 56, 55, 67, 12, 136, 3, 109, 205, 79, 51, 74, 24, 24, 23, 1, 16, 16, 215, 16, 25, 1, 2, 53, 53, 54, 159, 103, 79, 205, 252, 134, 40, 74, 28, 28, 33, 1, 1, 18, 17, 220, 19, 19, 1, 1, 63, 57, 56, 157, 93, 3, 122, 255, 255, 255, 189, 0, 0, 4, 225, 5, 176, 6, 38, 0, 7, 0, 0, 0, 7, 2, 106, 254, 146, 254, 86, 0, 1, 0, 4, 0, 0, 4, 185, 5, 198, 0, 56, 0, 0, 65, 55, 33, 55, 33, 55, 33, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 5, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 7, 35, 7, 51, 7, 35, 7, 55, 7, 6, 6, 7, 6, 6, 7, 39, 7, 33, 55, 5, 54, 54, 55, 55, 3, 29, 27, 254, 228, 16, 1, 31, 27, 254, 218, 18, 6, 31, 25, 25, 69, 45, 43, 58, 17, 17, 14, 2, 1, 7, 4, 48, 49, 49, 145, 94, 101, 172, 66, 66, 85, 12, 19, 146, 26, 151, 18, 153, 27, 166, 10, 6, 16, 13, 14, 41, 31, 75, 40, 4, 1, 40, 253, 113, 45, 51, 11, 6, 1, 213, 153, 114, 153, 152, 40, 76, 30, 29, 35, 1, 1, 30, 24, 25, 67, 39, 1, 92, 151, 54, 54, 60, 2, 2, 62, 57, 58, 162, 99, 151, 153, 114, 153, 1, 53, 30, 59, 26, 26, 41, 11, 1, 225, 226, 3, 45, 100, 63, 39, 0, 2, 0, 15, 255, 236, 4, 209, 5, 176, 0, 45, 0, 63, 0, 0, 65, 55, 35, 19, 35, 3, 7, 54, 38, 39, 38, 38, 39, 39, 3, 51, 19, 23, 50, 54, 55, 54, 54, 55, 51, 3, 6, 22, 23, 22, 22, 23, 50, 54, 55, 39, 6, 6, 35, 34, 38, 39, 38, 54, 55, 19, 5, 19, 23, 22, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 7, 6, 6, 7, 4, 183, 26, 169, 46, 196, 46, 89, 4, 28, 34, 35, 110, 76, 233, 252, 195, 104, 59, 85, 130, 48, 48, 66, 23, 70, 104, 5, 10, 22, 21, 81, 65, 36, 76, 29, 17, 17, 36, 18, 27, 25, 4, 4, 3, 2, 107, 253, 59, 112, 58, 28, 37, 10, 10, 7, 5, 2, 5, 25, 23, 24, 73, 54, 3, 164, 150, 1, 4, 254, 252, 1, 69, 132, 52, 52, 65, 3, 2, 250, 80, 2, 51, 2, 60, 51, 51, 135, 74, 253, 136, 53, 113, 46, 47, 60, 1, 17, 23, 143, 5, 7, 33, 23, 23, 49, 18, 2, 123, 213, 2, 66, 2, 3, 33, 25, 25, 60, 30, 31, 55, 19, 44, 102, 44, 44, 60, 2, 0, 2, 255, 255, 255, 229, 4, 145, 4, 41, 0, 35, 0, 71, 0, 0, 101, 23, 55, 39, 54, 54, 55, 54, 38, 39, 55, 39, 7, 38, 38, 39, 38, 6, 7, 39, 7, 23, 6, 6, 7, 6, 22, 23, 7, 23, 55, 22, 22, 23, 22, 54, 1, 54, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 39, 38, 38, 3, 32, 79, 152, 91, 48, 61, 10, 9, 15, 21, 137, 121, 137, 56, 130, 70, 76, 139, 65, 87, 151, 92, 54, 66, 11, 8, 13, 18, 122, 120, 118, 57, 137, 73, 82, 147, 254, 60, 5, 29, 23, 23, 67, 40, 38, 89, 48, 38, 64, 26, 38, 50, 10, 9, 4, 4, 6, 30, 23, 25, 60, 38, 39, 91, 50, 44, 71, 28, 27, 42, 12, 11, 5, 76, 103, 134, 121, 64, 142, 81, 72, 139, 69, 114, 156, 119, 43, 44, 1, 1, 47, 39, 115, 133, 125, 68, 151, 85, 69, 136, 67, 101, 155, 102, 47, 48, 1, 2, 53, 1, 212, 43, 84, 38, 40, 71, 23, 24, 25, 1, 1, 22, 18, 28, 77, 47, 32, 70, 34, 44, 86, 38, 40, 67, 23, 26, 27, 1, 1, 28, 24, 25, 68, 39, 35, 75, 0, 0, 2, 1, 96, 255, 239, 3, 110, 5, 176, 0, 3, 0, 27, 0, 0, 65, 19, 33, 3, 3, 20, 22, 23, 22, 22, 55, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 7, 34, 6, 7, 6, 6, 2, 186, 180, 254, 234, 149, 99, 25, 21, 21, 57, 33, 33, 58, 22, 21, 24, 24, 21, 21, 57, 33, 34, 58, 21, 22, 24, 1, 253, 3, 179, 252, 77, 254, 133, 33, 54, 19, 20, 21, 1, 24, 21, 21, 57, 34, 34, 56, 20, 19, 22, 1, 25, 21, 22, 59, 0, 2, 1, 55, 254, 132, 3, 76, 4, 82, 0, 3, 0, 15, 0, 0, 65, 3, 33, 19, 19, 52, 38, 7, 6, 6, 21, 20, 22, 55, 50, 54, 1, 236, 181, 1, 23, 149, 105, 91, 66, 71, 88, 92, 65, 65, 94, 2, 53, 252, 79, 3, 177, 1, 132, 66, 87, 2, 2, 94, 67, 67, 81, 2, 89, 0, 0, 2, 0, 243, 255, 241, 4, 137, 5, 199, 0, 43, 0, 55, 0, 0, 65, 55, 54, 54, 55, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 37, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 6, 6, 3, 20, 22, 55, 50, 54, 53, 52, 38, 7, 34, 6, 1, 210, 240, 10, 52, 59, 54, 111, 46, 46, 63, 6, 8, 59, 56, 57, 155, 89, 97, 174, 67, 68, 87, 9, 1, 16, 8, 36, 27, 27, 71, 42, 36, 56, 19, 24, 19, 7, 7, 51, 34, 35, 78, 34, 95, 63, 111, 91, 65, 67, 92, 91, 66, 69, 89, 1, 185, 1, 70, 102, 49, 43, 89, 51, 51, 121, 76, 97, 143, 47, 47, 47, 2, 2, 50, 50, 51, 152, 101, 1, 40, 65, 23, 23, 25, 1, 1, 18, 17, 21, 66, 45, 46, 84, 37, 38, 65, 27, 75, 154, 254, 88, 67, 81, 2, 87, 71, 66, 86, 2, 95, 0, 0, 2, 0, 84, 254, 117, 3, 187, 4, 55, 0, 49, 0, 61, 0, 0, 65, 7, 6, 6, 7, 6, 6, 7, 6, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 5, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 55, 54, 54, 55, 54, 54, 3, 22, 22, 55, 54, 54, 39, 52, 38, 7, 6, 6, 2, 253, 238, 6, 15, 13, 13, 40, 29, 53, 109, 45, 45, 61, 6, 8, 52, 52, 52, 147, 88, 95, 167, 64, 64, 81, 9, 254, 241, 7, 27, 20, 25, 70, 45, 34, 49, 15, 16, 11, 5, 7, 47, 33, 33, 76, 35, 48, 59, 18, 17, 17, 179, 1, 70, 59, 60, 71, 1, 70, 62, 63, 65, 2, 128, 1, 36, 58, 25, 26, 45, 24, 43, 91, 52, 53, 122, 74, 93, 141, 48, 48, 51, 2, 2, 50, 51, 50, 149, 98, 1, 34, 58, 22, 27, 30, 1, 1, 22, 20, 21, 58, 35, 47, 87, 40, 39, 69, 28, 38, 71, 40, 39, 93, 1, 102, 60, 64, 2, 2, 68, 60, 61, 72, 2, 2, 76, 0, 0, 1, 0, 190, 254, 106, 2, 117, 0, 243, 0, 12, 0, 0, 101, 55, 35, 7, 6, 6, 7, 23, 54, 54, 55, 54, 54, 2, 80, 37, 255, 40, 17, 77, 50, 142, 49, 86, 34, 34, 46, 23, 220, 234, 95, 161, 81, 78, 40, 96, 55, 54, 120, 0, 0, 1, 1, 78, 255, 235, 2, 196, 1, 90, 0, 11, 0, 0, 101, 20, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 1, 78, 103, 79, 79, 113, 103, 79, 84, 108, 154, 77, 98, 106, 83, 77, 101, 110, 255, 255, 1, 92, 255, 235, 3, 96, 4, 148, 4, 38, 0, 96, 14, 0, 0, 7, 0, 96, 0, 156, 3, 58, 255, 255, 1, 8, 254, 106, 3, 134, 4, 148, 4, 39, 0, 96, 0, 194, 3, 58, 0, 6, 0, 95, 74, 0, 255, 255, 0, 22, 255, 234, 4, 142, 1, 89, 4, 39, 0, 96, 254, 200, 255, 255, 0, 38, 0, 96, 73, 255, 0, 7, 0, 96, 1, 202, 255, 255, 0, 1, 1, 241, 2, 37, 3, 36, 3, 86, 0, 11, 0, 0, 65, 20, 22, 55, 50, 54, 53, 52, 38, 7, 34, 6, 1, 241, 88, 65, 65, 89, 88, 65, 67, 87, 2, 184, 65, 82, 2, 88, 67, 65, 83, 2, 91, 0, 0, 1, 1, 163, 1, 245, 3, 109, 3, 246, 0, 25, 0, 0, 65, 7, 20, 22, 23, 22, 22, 51, 22, 54, 55, 54, 54, 55, 55, 54, 38, 39, 38, 38, 39, 34, 6, 7, 6, 6, 1, 165, 2, 29, 28, 27, 79, 48, 51, 86, 32, 32, 38, 4, 3, 1, 28, 27, 28, 80, 50, 52, 87, 32, 32, 37, 3, 12, 60, 48, 79, 29, 29, 33, 1, 33, 30, 30, 83, 51, 57, 49, 83, 31, 30, 35, 1, 35, 31, 31, 86, 0, 0, 1, 0, 1, 255, 39, 3, 158, 0, 0, 0, 3, 0, 0, 69, 55, 33, 7, 3, 119, 39, 252, 137, 38, 217, 217, 217, 0, 0, 1, 1, 5, 2, 18, 4, 86, 2, 243, 0, 3, 0, 0, 65, 55, 33, 7, 4, 46, 40, 252, 214, 39, 2, 18, 225, 225, 0, 1, 0, 58, 2, 89, 4, 173, 3, 60, 0, 3, 0, 0, 65, 55, 33, 7, 4, 121, 52, 251, 193, 52, 2, 89, 227, 227, 0, 1, 0, 54, 2, 89, 4, 169, 3, 60, 0, 3, 0, 0, 65, 55, 33, 7, 4, 117, 52, 251, 193, 52, 2, 89, 227, 227, 0, 1, 1, 248, 3, 225, 3, 30, 6, 0, 0, 5, 0, 0, 65, 55, 35, 7, 3, 51, 3, 6, 24, 209, 21, 64, 183, 5, 102, 154, 134, 254, 103, 0, 0, 2, 1, 79, 3, 240, 3, 250, 6, 0, 0, 5, 0, 11, 0, 0, 65, 55, 35, 7, 3, 51, 1, 55, 35, 7, 3, 51, 2, 89, 19, 202, 17, 66, 175, 1, 233, 19, 200, 17, 66, 174, 5, 136, 120, 111, 254, 95, 1, 152, 120, 107, 254, 91, 0, 1, 2, 35, 3, 244, 3, 164, 6, 43, 0, 12, 0, 0, 65, 7, 51, 55, 54, 54, 55, 39, 6, 6, 7, 6, 6, 2, 64, 29, 218, 30, 16, 72, 49, 122, 45, 77, 30, 31, 42, 4, 163, 175, 177, 87, 150, 72, 81, 37, 88, 50, 50, 109, 0, 1, 2, 24, 3, 228, 3, 152, 6, 24, 0, 12, 0, 0, 65, 55, 35, 7, 6, 6, 7, 23, 54, 54, 55, 54, 54, 3, 124, 28, 218, 29, 16, 71, 50, 122, 45, 77, 31, 30, 42, 5, 108, 172, 173, 88, 150, 72, 81, 37, 88, 50, 50, 109, 0, 1, 1, 49, 254, 187, 2, 188, 1, 13, 0, 9, 0, 0, 101, 55, 35, 7, 6, 6, 7, 23, 54, 54, 2, 154, 34, 227, 36, 15, 68, 49, 128, 88, 126, 66, 203, 205, 86, 150, 72, 81, 75, 201, 255, 255, 1, 131, 3, 244, 4, 79, 6, 43, 4, 39, 0, 108, 255, 96, 0, 0, 0, 7, 0, 108, 0, 171, 0, 0, 255, 255, 1, 119, 3, 228, 4, 83, 6, 24, 4, 39, 0, 109, 255, 95, 0, 0, 0, 7, 0, 109, 0, 187, 0, 0, 0, 2, 0, 166, 254, 185, 3, 106, 0, 235, 0, 9, 0, 22, 0, 0, 101, 55, 35, 7, 6, 6, 7, 23, 54, 54, 37, 55, 35, 7, 6, 6, 7, 23, 54, 54, 55, 54, 54, 2, 17, 26, 227, 30, 15, 68, 49, 134, 89, 122, 1, 80, 27, 227, 31, 15, 74, 48, 133, 45, 77, 31, 31, 42, 65, 170, 173, 86, 150, 72, 81, 74, 203, 115, 170, 173, 87, 149, 72, 81, 37, 88, 50, 50, 110, 0, 255, 255, 1, 248, 3, 225, 3, 30, 6, 0, 6, 6, 0, 106, 0, 0, 255, 255, 1, 79, 3, 240, 3, 250, 6, 0, 6, 6, 0, 107, 0, 0, 0, 1, 1, 58, 254, 55, 3, 239, 6, 85, 0, 36, 0, 0, 65, 7, 6, 6, 23, 22, 22, 23, 22, 22, 23, 55, 38, 38, 39, 38, 38, 55, 54, 54, 55, 55, 54, 54, 55, 54, 54, 55, 39, 6, 6, 7, 6, 6, 7, 6, 6, 1, 77, 3, 11, 5, 9, 9, 47, 41, 40, 121, 84, 64, 58, 74, 21, 21, 16, 1, 1, 14, 9, 3, 18, 65, 53, 52, 149, 103, 43, 96, 161, 65, 66, 103, 38, 38, 51, 2, 76, 23, 85, 191, 97, 98, 191, 85, 85, 142, 48, 149, 49, 131, 75, 75, 163, 81, 81, 154, 66, 25, 124, 246, 113, 113, 200, 78, 155, 43, 132, 82, 83, 190, 100, 101, 205, 0, 0, 1, 0, 163, 254, 53, 3, 101, 6, 83, 0, 33, 0, 0, 65, 55, 54, 54, 39, 38, 38, 39, 38, 38, 39, 7, 22, 22, 23, 22, 22, 21, 6, 6, 7, 7, 6, 6, 7, 6, 6, 7, 23, 54, 54, 55, 54, 18, 3, 83, 3, 11, 4, 11, 11, 49, 42, 43, 123, 84, 64, 57, 74, 22, 21, 16, 1, 14, 9, 4, 18, 65, 52, 53, 150, 103, 39, 150, 233, 79, 75, 92, 2, 62, 23, 85, 191, 98, 98, 191, 86, 85, 141, 47, 148, 49, 131, 75, 76, 164, 81, 81, 153, 66, 25, 124, 246, 114, 114, 200, 78, 153, 64, 241, 149, 136, 1, 47, 0, 1, 0, 241, 254, 177, 3, 225, 6, 154, 0, 7, 0, 0, 65, 55, 33, 1, 33, 55, 35, 19, 3, 191, 34, 254, 77, 254, 195, 1, 179, 34, 165, 249, 5, 195, 215, 248, 23, 215, 6, 59, 0, 1, 0, 241, 254, 177, 3, 226, 6, 154, 0, 7, 0, 0, 65, 7, 51, 3, 35, 7, 33, 1, 2, 46, 34, 166, 249, 166, 34, 1, 180, 1, 61, 6, 154, 215, 249, 197, 215, 7, 233, 0, 0, 1, 1, 36, 254, 153, 4, 56, 6, 64, 0, 48, 0, 0, 65, 55, 38, 38, 39, 38, 54, 55, 55, 54, 38, 39, 38, 38, 39, 54, 54, 55, 55, 54, 54, 55, 54, 54, 55, 39, 6, 6, 7, 6, 6, 7, 7, 6, 6, 7, 7, 22, 22, 23, 22, 22, 7, 7, 6, 22, 23, 22, 22, 3, 6, 43, 50, 48, 10, 8, 7, 5, 21, 5, 17, 21, 22, 72, 49, 124, 150, 17, 21, 7, 19, 22, 22, 76, 64, 19, 101, 152, 53, 54, 65, 12, 21, 18, 146, 127, 20, 60, 81, 24, 23, 15, 7, 21, 9, 25, 30, 35, 130, 254, 153, 159, 4, 62, 44, 46, 109, 40, 164, 55, 102, 44, 44, 73, 26, 50, 171, 135, 163, 51, 108, 45, 45, 59, 1, 159, 4, 78, 63, 64, 166, 93, 163, 127, 123, 2, 200, 3, 34, 30, 31, 90, 59, 164, 75, 153, 61, 72, 99, 0, 0, 1, 0, 193, 254, 148, 3, 213, 6, 60, 0, 45, 0, 0, 87, 23, 54, 54, 55, 54, 54, 55, 55, 54, 54, 55, 55, 38, 38, 55, 55, 54, 38, 39, 38, 38, 39, 7, 22, 22, 23, 22, 6, 7, 7, 6, 22, 23, 22, 22, 23, 6, 6, 7, 7, 6, 6, 7, 6, 6, 193, 23, 97, 151, 54, 54, 65, 12, 22, 18, 146, 126, 20, 120, 90, 14, 21, 9, 24, 36, 37, 125, 92, 46, 43, 54, 12, 16, 13, 7, 21, 6, 21, 27, 21, 60, 40, 119, 142, 17, 21, 6, 24, 23, 24, 75, 203, 161, 6, 80, 64, 64, 166, 90, 163, 126, 122, 2, 200, 6, 125, 118, 164, 80, 162, 66, 66, 86, 4, 157, 4, 38, 35, 46, 131, 52, 164, 62, 115, 48, 36, 62, 24, 51, 171, 131, 163, 46, 107, 46, 47, 62, 0, 1, 1, 110, 0, 128, 3, 127, 3, 159, 0, 6, 0, 0, 65, 1, 35, 1, 7, 19, 51, 2, 68, 1, 59, 193, 254, 178, 2, 214, 161, 2, 2, 1, 157, 254, 122, 20, 254, 123, 0, 1, 1, 28, 0, 127, 3, 44, 3, 158, 0, 6, 0, 0, 65, 35, 19, 1, 51, 1, 55, 2, 86, 161, 160, 254, 199, 192, 1, 79, 1, 3, 158, 254, 125, 254, 100, 1, 135, 20, 0, 1, 0, 88, 0, 146, 4, 78, 4, 182, 0, 11, 0, 0, 65, 19, 33, 3, 33, 7, 33, 3, 33, 19, 33, 55, 2, 235, 68, 254, 254, 69, 254, 156, 44, 1, 100, 71, 1, 2, 72, 1, 99, 44, 3, 44, 1, 138, 254, 118, 254, 254, 100, 1, 156, 254, 0, 1, 0, 144, 2, 89, 3, 252, 3, 60, 0, 3, 0, 0, 65, 55, 33, 7, 3, 212, 40, 252, 188, 40, 2, 89, 227, 227, 0, 2, 0, 72, 0, 0, 4, 60, 5, 4, 0, 11, 0, 15, 0, 0, 65, 19, 35, 3, 33, 7, 33, 3, 51, 19, 33, 55, 3, 55, 33, 7, 2, 251, 55, 239, 55, 254, 182, 37, 1, 75, 58, 239, 58, 1, 65, 36, 176, 40, 252, 188, 40, 3, 165, 1, 95, 254, 161, 232, 254, 142, 1, 114, 232, 252, 91, 227, 227, 0, 0, 1, 0, 114, 0, 207, 4, 113, 4, 141, 0, 11, 0, 0, 83, 23, 1, 19, 55, 3, 1, 39, 1, 3, 7, 19, 114, 141, 1, 96, 243, 178, 246, 1, 99, 141, 254, 160, 243, 178, 246, 1, 126, 175, 1, 56, 254, 200, 153, 1, 60, 1, 59, 174, 254, 200, 1, 56, 153, 254, 196, 0, 0, 3, 0, 99, 0, 136, 4, 110, 4, 209, 0, 3, 0, 15, 0, 27, 0, 0, 65, 55, 33, 7, 1, 20, 22, 51, 50, 54, 53, 52, 38, 7, 34, 6, 3, 20, 22, 51, 50, 54, 53, 52, 38, 7, 34, 6, 4, 70, 40, 252, 29, 40, 1, 181, 86, 61, 60, 89, 88, 60, 65, 83, 143, 88, 60, 60, 89, 87, 62, 65, 83, 2, 61, 227, 227, 1, 255, 61, 76, 81, 66, 62, 77, 2, 84, 252, 150, 62, 75, 81, 66, 62, 78, 2, 85, 0, 0, 2, 0, 98, 1, 30, 4, 108, 3, 177, 0, 3, 0, 7, 0, 0, 65, 55, 33, 7, 1, 55, 33, 7, 4, 68, 40, 252, 105, 40, 3, 76, 40, 252, 105, 40, 2, 205, 228, 228, 254, 81, 227, 227, 0, 1, 0, 92, 0, 132, 4, 102, 4, 79, 0, 19, 0, 0, 65, 55, 33, 55, 33, 55, 35, 55, 39, 7, 33, 7, 33, 7, 33, 7, 51, 7, 23, 55, 3, 243, 40, 254, 91, 141, 1, 59, 40, 197, 62, 119, 110, 253, 213, 40, 1, 181, 141, 254, 181, 40, 214, 59, 120, 106, 1, 30, 227, 204, 228, 89, 69, 158, 228, 204, 227, 86, 68, 154, 0, 2, 0, 91, 0, 243, 4, 107, 4, 7, 0, 43, 0, 90, 0, 0, 83, 7, 54, 54, 55, 54, 54, 51, 54, 22, 23, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 55, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 38, 38, 7, 34, 6, 7, 6, 6, 3, 7, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 55, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 38, 38, 39, 38, 38, 7, 34, 6, 7, 6, 6, 187, 11, 26, 59, 33, 33, 72, 41, 32, 60, 28, 27, 53, 28, 53, 104, 62, 38, 65, 29, 28, 50, 21, 13, 26, 56, 31, 32, 70, 39, 27, 50, 24, 29, 55, 28, 56, 110, 66, 39, 69, 31, 31, 53, 108, 10, 26, 58, 32, 32, 72, 40, 28, 51, 24, 31, 62, 31, 52, 104, 62, 38, 68, 30, 29, 51, 22, 12, 26, 57, 32, 33, 71, 40, 27, 50, 23, 29, 56, 29, 27, 52, 27, 29, 63, 35, 39, 67, 30, 30, 51, 3, 115, 211, 28, 53, 20, 20, 25, 1, 12, 10, 11, 27, 15, 29, 43, 25, 21, 20, 53, 29, 210, 27, 52, 21, 21, 25, 9, 8, 10, 28, 16, 32, 44, 1, 24, 20, 20, 53, 254, 51, 209, 28, 52, 20, 20, 25, 8, 8, 10, 30, 18, 29, 42, 24, 21, 20, 52, 29, 212, 28, 53, 20, 21, 24, 9, 8, 9, 28, 16, 15, 27, 10, 11, 13, 1, 25, 20, 20, 53, 0, 1, 0, 136, 0, 149, 4, 75, 4, 85, 0, 8, 0, 0, 83, 1, 19, 37, 39, 55, 37, 19, 1, 136, 3, 29, 45, 254, 0, 49, 83, 2, 45, 42, 252, 100, 2, 5, 254, 144, 1, 5, 188, 20, 29, 186, 1, 20, 254, 144, 0, 1, 0, 75, 0, 137, 4, 29, 4, 74, 0, 8, 0, 0, 119, 1, 55, 1, 3, 5, 23, 7, 5, 75, 3, 171, 39, 252, 213, 45, 2, 24, 42, 75, 253, 192, 137, 1, 112, 226, 1, 111, 254, 253, 194, 17, 23, 188, 0, 2, 0, 78, 0, 35, 4, 134, 4, 236, 0, 8, 0, 12, 0, 0, 65, 55, 37, 55, 1, 7, 1, 55, 37, 1, 55, 33, 7, 1, 220, 83, 2, 45, 42, 252, 100, 39, 3, 29, 45, 254, 0, 1, 133, 40, 252, 188, 40, 3, 50, 26, 168, 248, 254, 181, 202, 254, 181, 235, 169, 253, 3, 227, 227, 0, 0, 2, 0, 72, 0, 34, 4, 85, 4, 234, 0, 8, 0, 12, 0, 0, 65, 7, 5, 7, 1, 55, 1, 7, 5, 19, 55, 33, 7, 3, 63, 75, 253, 192, 49, 3, 171, 39, 252, 213, 45, 2, 24, 119, 40, 252, 188, 40, 3, 67, 20, 170, 252, 1, 76, 203, 1, 74, 233, 174, 252, 207, 227, 227, 0, 1, 0, 184, 1, 118, 4, 2, 3, 37, 0, 5, 0, 0, 65, 19, 33, 7, 33, 3, 3, 183, 75, 252, 213, 31, 2, 105, 46, 1, 118, 1, 175, 171, 254, 252, 0, 1, 0, 82, 255, 131, 4, 124, 5, 176, 0, 3, 0, 0, 69, 1, 33, 1, 1, 88, 3, 36, 254, 249, 252, 221, 125, 6, 45, 249, 211, 0, 0, 1, 1, 129, 255, 131, 3, 116, 5, 176, 0, 3, 0, 0, 65, 19, 51, 3, 1, 129, 255, 244, 254, 5, 176, 249, 211, 6, 45, 0, 0, 1, 0, 217, 0, 229, 3, 227, 4, 206, 0, 3, 0, 0, 101, 1, 39, 1, 1, 87, 2, 140, 127, 253, 117, 229, 3, 160, 73, 252, 96, 0, 0, 5, 0, 122, 255, 234, 4, 90, 5, 199, 0, 25, 0, 51, 0, 77, 0, 103, 0, 107, 0, 0, 83, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 55, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 23, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 7, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 19, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 55, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 23, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 7, 7, 6, 6, 7, 6, 6, 39, 34, 38, 39, 38, 38, 5, 1, 39, 1, 133, 7, 4, 30, 32, 32, 95, 61, 64, 107, 41, 40, 50, 7, 7, 4, 28, 31, 32, 95, 62, 65, 108, 40, 41, 50, 172, 7, 3, 15, 13, 12, 38, 26, 26, 32, 8, 8, 5, 1, 8, 3, 15, 12, 13, 38, 25, 26, 31, 8, 9, 5, 243, 7, 5, 30, 33, 32, 95, 62, 64, 108, 40, 40, 50, 7, 7, 4, 29, 31, 32, 95, 62, 64, 108, 40, 41, 51, 172, 8, 3, 14, 13, 13, 38, 26, 25, 31, 9, 8, 5, 1, 8, 3, 13, 12, 12, 38, 27, 24, 32, 9, 9, 6, 254, 118, 2, 208, 128, 253, 48, 4, 171, 76, 60, 101, 37, 37, 43, 1, 2, 41, 37, 37, 104, 62, 77, 60, 102, 38, 37, 43, 2, 1, 41, 37, 38, 105, 141, 80, 22, 43, 17, 16, 20, 21, 17, 17, 42, 21, 79, 22, 43, 16, 17, 20, 21, 17, 16, 42, 253, 8, 77, 60, 101, 37, 38, 43, 1, 1, 40, 37, 37, 104, 63, 78, 60, 102, 37, 37, 43, 2, 1, 40, 37, 38, 105, 142, 81, 22, 43, 17, 16, 19, 21, 16, 17, 42, 21, 79, 24, 44, 16, 17, 19, 1, 22, 17, 16, 42, 38, 3, 255, 68, 252, 1, 0, 6, 0, 96, 255, 232, 4, 93, 5, 198, 0, 49, 0, 75, 0, 101, 0, 127, 0, 153, 0, 157, 0, 0, 83, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 55, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 5, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 7, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 55, 37, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 7, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 3, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 7, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 55, 39, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 55, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 17, 1, 39, 1, 255, 3, 3, 26, 28, 28, 86, 58, 35, 62, 29, 13, 26, 13, 10, 23, 11, 28, 63, 34, 63, 102, 37, 37, 45, 6, 2, 3, 24, 27, 27, 85, 59, 37, 65, 30, 12, 24, 12, 10, 21, 11, 27, 64, 35, 63, 104, 37, 38, 45, 2, 15, 2, 10, 10, 10, 31, 24, 22, 26, 6, 6, 2, 1, 3, 2, 8, 9, 10, 32, 25, 22, 25, 6, 7, 3, 1, 254, 167, 2, 10, 10, 10, 32, 24, 22, 26, 6, 6, 2, 1, 3, 2, 9, 9, 10, 32, 25, 21, 25, 6, 7, 3, 90, 2, 10, 10, 9, 33, 24, 22, 26, 6, 6, 2, 1, 3, 2, 11, 9, 10, 32, 23, 23, 26, 6, 6, 2, 1, 169, 3, 3, 24, 27, 26, 84, 57, 61, 101, 37, 37, 45, 5, 3, 3, 26, 28, 28, 87, 60, 62, 98, 34, 35, 41, 3, 127, 83, 252, 129, 1, 34, 39, 54, 97, 37, 37, 44, 1, 1, 16, 15, 7, 18, 10, 11, 18, 7, 17, 15, 1, 1, 44, 39, 38, 104, 60, 39, 54, 99, 38, 38, 46, 1, 1, 18, 16, 7, 17, 9, 10, 18, 7, 18, 16, 1, 1, 46, 39, 40, 106, 59, 19, 43, 18, 18, 24, 24, 17, 18, 41, 16, 38, 20, 43, 18, 18, 22, 24, 17, 17, 40, 16, 39, 19, 43, 18, 18, 24, 24, 17, 18, 41, 16, 38, 20, 43, 18, 18, 22, 24, 17, 17, 40, 16, 3, 169, 19, 44, 19, 18, 24, 25, 18, 18, 41, 16, 36, 18, 43, 18, 18, 24, 23, 17, 17, 40, 17, 36, 37, 52, 97, 38, 38, 46, 1, 2, 44, 39, 39, 103, 59, 37, 55, 100, 39, 38, 46, 1, 1, 47, 40, 41, 105, 252, 253, 2, 82, 100, 253, 174, 0, 0, 1, 1, 102, 254, 102, 3, 53, 5, 176, 0, 3, 0, 0, 65, 1, 35, 1, 2, 17, 1, 36, 171, 254, 220, 254, 102, 7, 74, 248, 182, 0, 0, 2, 1, 66, 254, 242, 3, 100, 5, 176, 0, 3, 0, 7, 0, 0, 65, 51, 19, 35, 37, 19, 35, 3, 1, 66, 247, 138, 247, 1, 21, 131, 247, 131, 254, 242, 3, 27, 173, 2, 246, 253, 10, 0, 0, 1, 0, 141, 0, 0, 4, 116, 5, 176, 0, 11, 0, 0, 65, 55, 33, 19, 33, 3, 33, 7, 33, 3, 33, 19, 4, 79, 37, 254, 164, 59, 254, 240, 59, 254, 170, 37, 1, 87, 133, 1, 16, 133, 3, 82, 232, 1, 118, 254, 138, 232, 252, 174, 3, 82, 0, 1, 0, 30, 254, 96, 4, 136, 5, 176, 0, 19, 0, 0, 97, 55, 33, 19, 33, 55, 33, 19, 33, 3, 33, 7, 33, 3, 33, 7, 33, 3, 33, 19, 3, 223, 35, 254, 164, 99, 1, 91, 36, 254, 164, 59, 254, 240, 59, 254, 171, 36, 1, 86, 99, 254, 171, 35, 1, 85, 65, 1, 16, 66, 223, 2, 121, 226, 1, 118, 254, 138, 226, 253, 135, 223, 254, 96, 1, 160, 0, 3, 0, 66, 255, 234, 4, 94, 4, 80, 0, 51, 0, 75, 0, 108, 0, 0, 65, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 7, 23, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 37, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 39, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 3, 42, 111, 7, 22, 17, 17, 49, 34, 38, 46, 12, 12, 6, 2, 8, 4, 23, 20, 19, 58, 40, 34, 45, 13, 13, 9, 1, 115, 3, 28, 29, 29, 85, 55, 64, 100, 36, 36, 43, 6, 8, 3, 23, 28, 27, 87, 61, 58, 91, 33, 33, 41, 253, 132, 10, 86, 67, 66, 173, 99, 91, 140, 45, 45, 39, 10, 11, 84, 66, 67, 172, 99, 93, 140, 45, 46, 38, 81, 11, 52, 58, 57, 173, 111, 78, 145, 64, 63, 107, 40, 39, 50, 8, 7, 19, 24, 24, 77, 51, 51, 126, 74, 79, 145, 63, 64, 106, 40, 40, 50, 1, 186, 1, 30, 50, 18, 18, 18, 1, 1, 36, 27, 27, 65, 31, 92, 35, 68, 27, 27, 33, 20, 18, 18, 50, 31, 1, 56, 89, 31, 29, 33, 1, 1, 47, 40, 40, 107, 59, 90, 56, 103, 39, 40, 50, 1, 2, 32, 31, 30, 88, 148, 94, 173, 66, 66, 78, 3, 2, 80, 64, 65, 162, 85, 93, 175, 67, 67, 79, 3, 2, 81, 65, 65, 164, 85, 104, 197, 77, 78, 95, 3, 2, 42, 38, 38, 107, 64, 64, 144, 75, 69, 135, 61, 60, 104, 39, 38, 44, 2, 2, 41, 38, 38, 107, 63, 64, 144, 0, 4, 0, 69, 255, 233, 4, 95, 4, 80, 0, 32, 0, 56, 0, 76, 0, 91, 0, 0, 83, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 23, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 37, 51, 23, 51, 3, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 39, 3, 51, 19, 55, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 76, 7, 18, 24, 24, 77, 51, 51, 127, 74, 79, 145, 64, 63, 106, 40, 39, 50, 8, 10, 51, 57, 57, 173, 111, 79, 145, 63, 64, 106, 40, 40, 50, 84, 10, 85, 67, 66, 173, 99, 92, 140, 45, 45, 39, 10, 11, 84, 66, 67, 173, 99, 92, 140, 45, 45, 39, 1, 67, 116, 74, 109, 95, 29, 54, 22, 21, 28, 2, 3, 34, 30, 30, 80, 43, 198, 100, 112, 55, 30, 100, 24, 42, 15, 15, 14, 5, 4, 25, 18, 18, 43, 21, 2, 22, 70, 135, 61, 61, 104, 38, 39, 45, 2, 2, 42, 38, 38, 107, 64, 63, 144, 75, 104, 197, 78, 77, 95, 3, 2, 41, 38, 39, 106, 64, 64, 143, 76, 94, 174, 66, 66, 78, 3, 2, 80, 64, 65, 163, 85, 93, 174, 67, 67, 78, 3, 2, 81, 65, 64, 163, 36, 252, 1, 28, 12, 29, 20, 19, 52, 34, 49, 70, 23, 22, 21, 1, 1, 253, 131, 1, 97, 184, 1, 1, 7, 10, 10, 35, 28, 24, 33, 11, 12, 11, 1, 0, 2, 0, 240, 3, 146, 4, 228, 5, 176, 0, 12, 0, 20, 0, 0, 65, 3, 51, 19, 35, 3, 3, 35, 3, 51, 19, 19, 55, 1, 55, 33, 7, 51, 3, 51, 19, 4, 71, 61, 124, 94, 145, 188, 50, 149, 95, 123, 63, 49, 70, 254, 217, 19, 254, 117, 19, 132, 75, 135, 75, 4, 230, 254, 172, 2, 30, 254, 145, 1, 111, 253, 226, 1, 100, 254, 156, 1, 1, 180, 105, 105, 254, 78, 1, 178, 0, 2, 1, 192, 3, 161, 3, 206, 5, 198, 0, 23, 0, 47, 0, 0, 65, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 23, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 1, 195, 3, 32, 32, 31, 89, 53, 58, 101, 39, 38, 47, 3, 3, 31, 30, 30, 87, 53, 58, 103, 39, 40, 49, 139, 3, 23, 19, 19, 48, 27, 25, 39, 13, 12, 12, 3, 3, 22, 17, 18, 46, 27, 24, 40, 14, 14, 14, 4, 169, 52, 94, 36, 36, 44, 1, 1, 45, 39, 39, 103, 56, 50, 95, 37, 37, 46, 1, 1, 46, 39, 40, 103, 54, 26, 48, 19, 19, 23, 21, 17, 18, 44, 23, 26, 46, 18, 18, 22, 19, 16, 16, 43, 0, 1, 0, 158, 1, 171, 4, 125, 5, 176, 0, 14, 0, 0, 65, 1, 23, 1, 19, 55, 3, 37, 39, 5, 19, 35, 3, 37, 7, 2, 10, 254, 195, 163, 1, 4, 146, 185, 213, 1, 147, 32, 254, 132, 105, 214, 33, 254, 169, 94, 3, 126, 254, 190, 130, 1, 101, 254, 140, 122, 1, 72, 91, 216, 159, 1, 175, 254, 76, 168, 198, 0, 0, 2, 0, 6, 0, 0, 4, 176, 5, 176, 0, 27, 0, 31, 0, 0, 65, 3, 51, 19, 51, 55, 35, 19, 51, 55, 35, 19, 35, 3, 35, 19, 35, 3, 35, 7, 51, 3, 35, 7, 51, 3, 51, 19, 55, 19, 51, 3, 2, 82, 143, 181, 142, 242, 30, 214, 101, 237, 30, 209, 146, 181, 145, 188, 144, 179, 146, 254, 30, 226, 101, 247, 30, 219, 142, 180, 143, 57, 101, 188, 100, 1, 154, 254, 102, 1, 154, 169, 1, 34, 171, 1, 160, 254, 96, 1, 160, 254, 96, 171, 254, 222, 169, 254, 102, 1, 154, 169, 1, 34, 254, 222, 0, 3, 0, 25, 255, 234, 4, 150, 5, 201, 0, 39, 0, 53, 0, 69, 0, 0, 83, 6, 22, 23, 22, 54, 55, 23, 33, 39, 54, 54, 55, 35, 6, 6, 7, 3, 55, 54, 54, 55, 54, 38, 39, 38, 6, 7, 6, 22, 23, 22, 22, 23, 7, 6, 6, 7, 6, 6, 5, 38, 38, 55, 54, 54, 55, 54, 54, 55, 55, 19, 6, 6, 19, 54, 54, 23, 22, 22, 7, 6, 6, 7, 7, 38, 38, 39, 38, 38, 37, 12, 220, 169, 95, 169, 80, 47, 1, 37, 138, 98, 104, 12, 231, 10, 55, 45, 183, 101, 86, 147, 6, 8, 165, 134, 174, 230, 14, 4, 9, 10, 10, 28, 16, 43, 46, 86, 35, 43, 55, 1, 142, 75, 58, 8, 4, 23, 17, 17, 43, 24, 11, 192, 49, 102, 23, 8, 83, 69, 49, 27, 2, 4, 54, 39, 102, 7, 13, 5, 8, 6, 1, 108, 173, 209, 2, 2, 55, 48, 81, 238, 96, 238, 136, 76, 133, 63, 1, 53, 73, 60, 156, 114, 132, 193, 4, 4, 218, 170, 43, 82, 40, 40, 79, 39, 27, 30, 68, 40, 50, 118, 234, 2, 109, 65, 31, 60, 27, 27, 48, 19, 7, 254, 171, 23, 33, 3, 125, 59, 102, 2, 2, 81, 38, 51, 69, 29, 69, 18, 36, 18, 26, 54, 0, 2, 0, 41, 255, 247, 4, 170, 5, 164, 0, 109, 0, 137, 0, 0, 65, 54, 2, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 6, 20, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 39, 6, 6, 39, 38, 38, 39, 38, 38, 39, 38, 54, 55, 54, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 54, 55, 19, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 6, 6, 23, 22, 22, 23, 22, 22, 51, 54, 54, 55, 54, 54, 55, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 5, 54, 54, 55, 54, 54, 55, 54, 54, 23, 50, 22, 23, 3, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 54, 54, 4, 150, 20, 60, 95, 48, 129, 84, 102, 179, 76, 76, 123, 46, 47, 61, 14, 13, 16, 15, 66, 53, 52, 148, 98, 70, 142, 58, 22, 58, 124, 63, 74, 103, 33, 34, 35, 6, 6, 8, 10, 11, 45, 34, 34, 90, 57, 57, 138, 82, 68, 95, 31, 63, 13, 14, 3, 9, 8, 8, 24, 18, 18, 49, 33, 18, 16, 2, 2, 3, 2, 122, 44, 100, 60, 61, 103, 42, 42, 65, 24, 25, 33, 9, 7, 5, 7, 6, 22, 19, 21, 64, 45, 28, 49, 20, 20, 36, 16, 18, 75, 51, 61, 97, 38, 37, 54, 19, 19, 23, 253, 108, 5, 18, 13, 14, 40, 27, 25, 63, 39, 6, 13, 7, 122, 11, 22, 13, 13, 28, 16, 13, 20, 5, 15, 7, 4, 2, 7, 3, 62, 144, 1, 26, 88, 44, 52, 2, 2, 61, 55, 56, 151, 86, 86, 185, 90, 84, 165, 75, 76, 129, 47, 48, 56, 1, 2, 34, 39, 138, 25, 29, 1, 1, 46, 39, 39, 104, 58, 58, 121, 58, 69, 146, 70, 69, 123, 46, 45, 50, 2, 2, 41, 34, 70, 219, 107, 20, 71, 41, 41, 84, 34, 34, 42, 2, 1, 16, 12, 11, 28, 14, 2, 16, 40, 37, 1, 1, 37, 33, 33, 90, 51, 51, 109, 52, 41, 102, 49, 36, 65, 24, 28, 32, 1, 16, 15, 15, 32, 18, 48, 50, 2, 1, 51, 43, 42, 112, 59, 58, 115, 99, 31, 68, 33, 35, 65, 25, 22, 26, 1, 1, 2, 254, 46, 11, 21, 8, 9, 11, 1, 1, 12, 8, 24, 63, 39, 24, 42, 0, 0, 2, 255, 218, 254, 52, 4, 178, 5, 197, 0, 112, 0, 148, 0, 0, 65, 54, 38, 39, 38, 38, 39, 38, 38, 39, 38, 38, 39, 38, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 5, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 6, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 22, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 39, 34, 38, 39, 38, 38, 55, 33, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 1, 22, 22, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 38, 38, 39, 38, 38, 39, 38, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 55, 22, 22, 4, 88, 5, 28, 28, 13, 33, 19, 30, 72, 38, 35, 75, 37, 37, 90, 37, 38, 45, 9, 7, 54, 37, 36, 86, 41, 47, 75, 25, 25, 25, 2, 1, 15, 4, 64, 60, 60, 169, 101, 62, 126, 59, 60, 105, 40, 41, 52, 5, 4, 12, 17, 11, 29, 19, 38, 66, 25, 32, 41, 4, 7, 66, 58, 25, 57, 32, 40, 87, 44, 22, 55, 29, 29, 53, 20, 19, 19, 5, 8, 53, 37, 37, 86, 39, 49, 82, 29, 30, 32, 3, 254, 237, 3, 74, 65, 65, 177, 101, 124, 246, 80, 40, 51, 5, 4, 15, 22, 9, 25, 16, 35, 60, 24, 36, 45, 253, 179, 21, 41, 21, 36, 89, 38, 38, 46, 9, 5, 23, 17, 15, 37, 22, 12, 23, 12, 21, 45, 22, 38, 90, 36, 36, 41, 9, 5, 20, 16, 13, 37, 23, 13, 26, 1, 227, 64, 103, 41, 19, 35, 16, 25, 41, 17, 15, 27, 11, 11, 26, 21, 21, 64, 51, 46, 62, 19, 19, 15, 1, 1, 27, 26, 25, 76, 48, 1, 106, 160, 54, 53, 54, 2, 1, 18, 20, 20, 62, 43, 44, 112, 70, 49, 92, 41, 25, 46, 22, 21, 50, 29, 37, 93, 56, 95, 134, 48, 21, 35, 15, 20, 32, 14, 7, 16, 11, 11, 28, 19, 19, 49, 31, 45, 60, 17, 18, 14, 1, 22, 23, 23, 73, 53, 110, 157, 51, 52, 50, 1, 2, 73, 86, 43, 112, 70, 54, 101, 45, 19, 38, 17, 19, 44, 26, 38, 98, 1, 11, 7, 13, 7, 13, 28, 24, 24, 68, 49, 29, 47, 20, 18, 29, 13, 5, 8, 4, 7, 14, 7, 13, 30, 21, 23, 68, 52, 28, 48, 20, 18, 30, 12, 5, 9, 0, 0, 1, 1, 12, 0, 0, 4, 102, 5, 177, 0, 16, 0, 0, 97, 51, 19, 37, 34, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 23, 2, 151, 211, 252, 254, 207, 108, 190, 72, 73, 91, 10, 9, 50, 54, 54, 161, 101, 65, 5, 176, 1, 66, 61, 62, 176, 110, 101, 168, 60, 61, 68, 3, 1, 0, 0, 1, 0, 215, 2, 175, 4, 6, 5, 176, 0, 8, 0, 0, 83, 51, 19, 55, 23, 19, 51, 3, 35, 215, 230, 240, 39, 4, 95, 207, 175, 196, 2, 175, 1, 187, 92, 69, 254, 46, 3, 1, 0, 1, 0, 8, 1, 120, 4, 104, 3, 58, 0, 49, 0, 0, 65, 39, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 23, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 22, 22, 23, 22, 22, 51, 22, 54, 55, 54, 54, 4, 104, 181, 5, 25, 19, 19, 51, 33, 25, 46, 21, 21, 38, 17, 22, 45, 24, 43, 98, 56, 78, 119, 41, 41, 46, 6, 172, 6, 27, 20, 20, 53, 33, 24, 47, 22, 22, 39, 17, 31, 64, 35, 34, 77, 44, 79, 119, 41, 41, 47, 2, 241, 18, 29, 58, 24, 24, 31, 14, 13, 12, 31, 16, 20, 37, 15, 28, 33, 1, 1, 62, 52, 52, 133, 70, 21, 28, 58, 23, 23, 30, 15, 12, 12, 31, 16, 29, 49, 18, 18, 21, 1, 65, 53, 53, 136, 0, 255, 255, 255, 174, 0, 0, 4, 173, 7, 31, 6, 38, 0, 2, 0, 0, 0, 7, 1, 91, 0, 201, 1, 89, 255, 255, 255, 174, 0, 0, 4, 130, 7, 66, 6, 38, 0, 2, 0, 0, 0, 7, 1, 95, 0, 82, 1, 159, 255, 255, 255, 174, 0, 0, 4, 132, 7, 73, 6, 38, 0, 2, 0, 0, 0, 7, 1, 92, 0, 190, 1, 93, 255, 255, 255, 174, 0, 0, 4, 141, 7, 48, 6, 38, 0, 2, 0, 0, 0, 7, 1, 97, 0, 58, 1, 93, 255, 255, 255, 174, 0, 0, 4, 60, 7, 34, 6, 38, 0, 2, 0, 0, 0, 7, 1, 90, 255, 184, 1, 92, 255, 255, 255, 174, 0, 0, 4, 149, 6, 242, 6, 38, 0, 2, 0, 0, 0, 7, 1, 94, 0, 65, 1, 66, 0, 2, 255, 174, 254, 88, 4, 60, 5, 176, 0, 36, 0, 39, 0, 0, 69, 54, 54, 55, 54, 54, 55, 55, 51, 3, 35, 1, 33, 19, 33, 19, 6, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 51, 22, 54, 55, 39, 6, 6, 39, 38, 38, 1, 19, 19, 3, 76, 3, 34, 26, 25, 61, 29, 10, 52, 202, 249, 253, 53, 1, 41, 136, 1, 167, 27, 33, 60, 23, 23, 28, 1, 1, 29, 27, 26, 74, 44, 46, 89, 40, 36, 19, 41, 20, 28, 21, 254, 130, 240, 51, 184, 35, 56, 22, 22, 33, 13, 3, 5, 176, 250, 80, 1, 48, 254, 231, 21, 52, 30, 31, 72, 41, 45, 73, 26, 26, 29, 1, 20, 22, 157, 8, 13, 1, 2, 32, 2, 242, 2, 21, 253, 235, 0, 255, 255, 255, 174, 0, 0, 4, 60, 7, 137, 6, 38, 0, 2, 0, 0, 0, 7, 1, 98, 0, 104, 1, 245, 255, 255, 255, 174, 0, 0, 4, 229, 8, 86, 6, 38, 0, 2, 0, 0, 0, 7, 2, 107, 0, 57, 1, 160, 255, 255, 255, 174, 0, 0, 4, 150, 7, 99, 6, 38, 0, 2, 0, 0, 0, 7, 1, 93, 0, 209, 1, 94, 255, 255, 255, 193, 0, 0, 5, 10, 7, 31, 6, 38, 0, 72, 0, 0, 0, 7, 1, 91, 1, 38, 1, 89, 255, 255, 0, 74, 255, 232, 4, 221, 7, 30, 6, 38, 0, 4, 0, 0, 0, 7, 1, 91, 0, 249, 1, 88, 255, 255, 0, 74, 255, 232, 4, 226, 7, 75, 6, 38, 0, 4, 0, 0, 0, 7, 1, 100, 0, 108, 1, 92, 255, 255, 0, 74, 254, 55, 4, 156, 5, 199, 6, 38, 0, 4, 0, 0, 0, 6, 1, 102, 51, 5, 255, 255, 0, 74, 255, 232, 4, 180, 7, 72, 6, 38, 0, 4, 0, 0, 0, 7, 1, 92, 0, 238, 1, 92, 255, 255, 0, 17, 255, 255, 4, 124, 7, 67, 6, 38, 0, 5, 0, 0, 0, 7, 1, 100, 255, 223, 1, 84, 0, 2, 255, 222, 255, 255, 4, 137, 5, 176, 0, 22, 0, 45, 0, 0, 115, 33, 22, 54, 55, 54, 54, 55, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 37, 3, 35, 7, 51, 33, 55, 35, 19, 23, 22, 22, 23, 22, 22, 23, 22, 6, 7, 7, 6, 6, 7, 6, 6, 35, 39, 19, 32, 1, 138, 145, 243, 92, 91, 118, 20, 17, 9, 7, 15, 20, 84, 60, 63, 170, 106, 254, 160, 110, 176, 32, 177, 1, 240, 32, 221, 71, 104, 59, 86, 30, 29, 35, 8, 7, 1, 6, 17, 13, 63, 51, 51, 144, 95, 91, 72, 1, 106, 91, 90, 244, 137, 120, 70, 136, 61, 83, 145, 51, 55, 65, 2, 1, 253, 135, 180, 180, 1, 149, 1, 3, 39, 32, 33, 85, 48, 48, 101, 48, 123, 85, 160, 61, 62, 75, 2, 1, 161, 0, 255, 255, 0, 38, 0, 0, 4, 217, 7, 22, 6, 38, 0, 6, 0, 0, 0, 7, 1, 91, 0, 208, 1, 80, 255, 255, 0, 38, 0, 0, 4, 217, 7, 57, 6, 38, 0, 6, 0, 0, 0, 7, 1, 95, 0, 89, 1, 150, 255, 255, 0, 38, 0, 0, 4, 217, 7, 67, 6, 38, 0, 6, 0, 0, 0, 7, 1, 100, 0, 67, 1, 84, 255, 255, 0, 38, 0, 0, 4, 217, 7, 64, 6, 38, 0, 6, 0, 0, 0, 7, 1, 92, 0, 197, 1, 84, 255, 255, 0, 38, 0, 0, 4, 217, 7, 39, 6, 38, 0, 6, 0, 0, 0, 7, 1, 97, 0, 65, 1, 84, 255, 255, 0, 38, 0, 0, 4, 217, 7, 70, 6, 38, 0, 6, 0, 0, 0, 7, 1, 96, 0, 79, 1, 100, 255, 255, 0, 38, 0, 0, 4, 217, 7, 25, 6, 38, 0, 6, 0, 0, 0, 7, 1, 90, 255, 191, 1, 83, 255, 255, 0, 38, 0, 0, 4, 217, 6, 233, 6, 38, 0, 6, 0, 0, 0, 7, 1, 94, 0, 72, 1, 57, 0, 1, 0, 39, 254, 74, 4, 188, 5, 176, 0, 28, 0, 0, 65, 33, 3, 3, 33, 3, 33, 19, 19, 7, 6, 6, 7, 6, 6, 7, 34, 38, 39, 7, 22, 22, 51, 50, 54, 55, 54, 54, 55, 4, 188, 254, 238, 156, 222, 254, 244, 253, 1, 18, 155, 223, 6, 6, 22, 19, 19, 54, 37, 26, 49, 24, 39, 36, 70, 37, 93, 146, 53, 53, 66, 12, 5, 176, 252, 132, 3, 124, 250, 80, 3, 123, 252, 133, 37, 32, 63, 24, 25, 31, 1, 8, 6, 221, 8, 10, 58, 54, 53, 147, 88, 0, 0, 1, 0, 38, 254, 88, 4, 217, 5, 176, 0, 41, 0, 0, 65, 55, 33, 19, 33, 55, 33, 3, 33, 6, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 51, 22, 54, 55, 39, 6, 6, 39, 38, 38, 55, 54, 54, 55, 54, 54, 55, 55, 51, 55, 33, 19, 3, 236, 39, 253, 187, 64, 2, 163, 40, 252, 74, 253, 2, 65, 27, 48, 18, 18, 22, 1, 1, 29, 27, 26, 74, 44, 46, 89, 40, 36, 19, 41, 20, 28, 21, 2, 3, 34, 26, 25, 61, 29, 10, 111, 40, 253, 89, 72, 2, 126, 222, 1, 111, 229, 250, 80, 20, 48, 28, 28, 64, 36, 45, 73, 26, 26, 29, 1, 20, 22, 157, 8, 13, 1, 2, 32, 27, 35, 56, 22, 22, 33, 13, 3, 227, 1, 155, 0, 0, 2, 255, 222, 255, 255, 4, 137, 5, 176, 0, 22, 0, 45, 0, 0, 115, 33, 22, 54, 55, 54, 54, 55, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 37, 3, 35, 7, 51, 33, 55, 35, 19, 23, 22, 22, 23, 22, 22, 23, 22, 6, 7, 7, 6, 6, 7, 6, 6, 35, 39, 19, 32, 1, 138, 145, 243, 92, 91, 118, 20, 17, 9, 7, 15, 20, 84, 60, 63, 170, 106, 254, 160, 110, 176, 32, 177, 1, 240, 32, 221, 71, 104, 59, 86, 30, 29, 35, 8, 7, 1, 6, 17, 13, 63, 51, 51, 144, 95, 91, 72, 1, 106, 91, 90, 244, 137, 120, 70, 136, 61, 83, 145, 51, 55, 65, 2, 1, 253, 135, 180, 180, 1, 149, 1, 3, 39, 32, 33, 85, 48, 48, 101, 48, 123, 85, 160, 61, 62, 75, 2, 1, 161, 0, 255, 255, 0, 82, 255, 234, 4, 151, 7, 65, 6, 38, 0, 8, 0, 0, 0, 7, 1, 95, 0, 102, 1, 158, 255, 255, 0, 82, 255, 234, 4, 152, 7, 72, 6, 38, 0, 8, 0, 0, 0, 7, 1, 92, 0, 210, 1, 92, 255, 255, 0, 82, 254, 21, 4, 151, 5, 197, 6, 38, 0, 8, 0, 0, 0, 7, 1, 104, 0, 162, 254, 190, 0, 2, 255, 222, 0, 0, 5, 31, 5, 176, 0, 19, 0, 23, 0, 0, 65, 55, 33, 7, 33, 55, 33, 7, 35, 7, 51, 3, 33, 19, 33, 3, 33, 19, 51, 55, 1, 33, 55, 33, 4, 94, 42, 254, 241, 42, 254, 114, 42, 254, 239, 42, 47, 30, 48, 181, 1, 16, 110, 1, 142, 110, 1, 15, 182, 192, 30, 253, 242, 254, 114, 33, 1, 142, 4, 194, 238, 238, 238, 238, 171, 251, 233, 2, 119, 253, 137, 4, 23, 171, 254, 153, 188, 0, 255, 255, 0, 15, 0, 0, 4, 185, 7, 64, 6, 38, 0, 9, 0, 0, 0, 7, 1, 92, 0, 162, 1, 84, 255, 255, 0, 82, 0, 0, 4, 141, 7, 31, 6, 38, 0, 10, 0, 0, 0, 7, 1, 91, 0, 169, 1, 89, 255, 255, 0, 82, 0, 0, 4, 130, 7, 66, 6, 38, 0, 10, 0, 0, 0, 7, 1, 95, 0, 50, 1, 159, 255, 255, 0, 82, 0, 0, 4, 130, 7, 73, 6, 38, 0, 10, 0, 0, 0, 7, 1, 92, 0, 158, 1, 93, 255, 255, 0, 82, 0, 0, 4, 130, 7, 48, 6, 38, 0, 10, 0, 0, 0, 7, 1, 97, 0, 26, 1, 93, 255, 255, 0, 82, 0, 0, 4, 130, 7, 79, 6, 38, 0, 10, 0, 0, 0, 7, 1, 96, 0, 40, 1, 109, 255, 255, 0, 82, 0, 0, 4, 130, 7, 34, 6, 38, 0, 10, 0, 0, 0, 7, 1, 90, 255, 152, 1, 92, 255, 255, 0, 82, 0, 0, 4, 130, 6, 242, 6, 38, 0, 10, 0, 0, 0, 7, 1, 94, 0, 33, 1, 66, 0, 1, 0, 82, 254, 88, 4, 130, 5, 176, 0, 41, 0, 0, 65, 7, 33, 3, 33, 7, 33, 6, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 51, 22, 54, 55, 39, 6, 6, 39, 38, 38, 55, 54, 54, 55, 54, 54, 55, 39, 51, 55, 33, 19, 33, 55, 1, 79, 40, 1, 13, 174, 254, 244, 40, 1, 204, 27, 48, 18, 18, 22, 1, 1, 29, 27, 26, 74, 44, 46, 89, 40, 36, 19, 41, 20, 28, 21, 2, 3, 34, 26, 25, 61, 29, 7, 111, 40, 254, 236, 174, 1, 19, 40, 5, 176, 227, 252, 21, 226, 20, 48, 28, 28, 64, 36, 45, 73, 26, 26, 29, 1, 20, 22, 157, 8, 13, 1, 2, 32, 27, 35, 56, 22, 22, 33, 13, 3, 226, 3, 235, 227, 255, 255, 0, 82, 0, 0, 4, 130, 7, 99, 6, 38, 0, 10, 0, 0, 0, 7, 1, 93, 0, 177, 1, 94, 255, 255, 0, 71, 255, 234, 5, 200, 7, 61, 6, 38, 0, 11, 0, 0, 0, 7, 1, 92, 2, 2, 1, 81, 255, 255, 0, 20, 254, 11, 5, 82, 5, 176, 6, 38, 0, 12, 0, 0, 0, 7, 1, 104, 0, 110, 254, 180, 255, 255, 0, 41, 0, 0, 3, 249, 7, 2, 6, 38, 0, 13, 0, 0, 0, 7, 1, 91, 255, 125, 1, 60, 255, 255, 0, 41, 0, 0, 4, 125, 5, 177, 6, 38, 0, 13, 0, 0, 0, 7, 0, 109, 0, 229, 255, 153, 255, 255, 0, 41, 254, 34, 3, 249, 5, 176, 6, 38, 0, 13, 0, 0, 0, 7, 1, 104, 0, 119, 254, 203, 255, 255, 0, 41, 0, 0, 3, 249, 5, 176, 6, 38, 0, 13, 0, 0, 0, 7, 1, 96, 0, 43, 253, 221, 0, 1, 0, 43, 0, 0, 4, 21, 5, 176, 0, 13, 0, 0, 65, 19, 33, 3, 7, 7, 55, 3, 33, 55, 33, 19, 55, 55, 1, 242, 99, 254, 236, 113, 129, 36, 130, 104, 3, 168, 40, 253, 106, 80, 237, 36, 3, 122, 2, 54, 253, 120, 37, 203, 37, 253, 163, 227, 1, 204, 68, 203, 255, 255, 0, 15, 0, 0, 4, 184, 7, 31, 6, 38, 0, 15, 0, 0, 0, 7, 1, 91, 0, 181, 1, 89, 255, 255, 0, 15, 0, 0, 4, 184, 7, 76, 6, 38, 0, 15, 0, 0, 0, 7, 1, 100, 0, 40, 1, 93, 255, 255, 0, 15, 254, 27, 4, 184, 5, 176, 6, 38, 0, 15, 0, 0, 0, 7, 1, 104, 0, 117, 254, 196, 255, 255, 0, 15, 0, 0, 4, 184, 7, 99, 6, 38, 0, 15, 0, 0, 0, 7, 1, 93, 0, 189, 1, 94, 255, 255, 0, 73, 255, 234, 4, 159, 7, 52, 6, 38, 0, 16, 0, 0, 0, 7, 1, 91, 0, 187, 1, 110, 255, 255, 0, 73, 255, 234, 4, 138, 7, 87, 6, 38, 0, 16, 0, 0, 0, 7, 1, 95, 0, 68, 1, 180, 255, 255, 0, 73, 255, 234, 4, 138, 7, 94, 6, 38, 0, 16, 0, 0, 0, 7, 1, 92, 0, 176, 1, 114, 255, 255, 0, 73, 255, 234, 4, 138, 7, 69, 6, 38, 0, 16, 0, 0, 0, 7, 1, 97, 0, 44, 1, 114, 255, 255, 0, 73, 255, 234, 4, 138, 7, 55, 6, 38, 0, 16, 0, 0, 0, 7, 1, 90, 255, 170, 1, 113, 0, 2, 0, 86, 255, 234, 5, 80, 5, 224, 0, 50, 0, 88, 0, 0, 65, 55, 54, 38, 39, 54, 54, 55, 54, 54, 55, 7, 6, 6, 7, 6, 6, 7, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 3, 7, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 53, 38, 54, 55, 55, 54, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 23, 22, 6, 4, 108, 33, 11, 11, 22, 51, 76, 27, 26, 31, 6, 186, 5, 12, 11, 11, 33, 25, 22, 52, 31, 47, 118, 73, 91, 154, 63, 63, 100, 36, 37, 49, 12, 33, 10, 6, 17, 17, 64, 50, 49, 135, 87, 92, 156, 65, 65, 103, 39, 38, 50, 232, 33, 7, 22, 17, 18, 50, 33, 34, 86, 54, 51, 65, 19, 19, 16, 1, 7, 5, 33, 6, 20, 16, 15, 46, 32, 31, 85, 54, 51, 68, 21, 21, 20, 3, 2, 6, 2, 110, 211, 81, 162, 75, 20, 68, 45, 45, 111, 64, 1, 29, 62, 28, 28, 46, 14, 32, 54, 22, 32, 38, 2, 2, 49, 44, 45, 124, 72, 72, 159, 80, 212, 75, 152, 70, 71, 123, 46, 47, 55, 2, 2, 48, 44, 44, 123, 72, 72, 160, 1, 39, 215, 43, 96, 46, 47, 84, 31, 31, 35, 2, 2, 43, 34, 34, 86, 45, 45, 86, 35, 215, 43, 95, 46, 46, 83, 32, 31, 35, 2, 2, 42, 33, 33, 84, 44, 45, 88, 0, 255, 255, 0, 73, 255, 234, 5, 96, 7, 96, 6, 38, 0, 16, 0, 0, 0, 7, 1, 99, 0, 184, 1, 114, 255, 255, 0, 73, 255, 234, 4, 138, 7, 7, 6, 38, 0, 16, 0, 0, 0, 7, 1, 94, 0, 51, 1, 87, 0, 3, 255, 174, 255, 161, 4, 252, 5, 238, 0, 46, 0, 69, 0, 86, 0, 0, 65, 55, 54, 52, 39, 38, 38, 39, 19, 35, 7, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 7, 6, 6, 21, 20, 22, 23, 3, 51, 55, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 37, 55, 54, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 23, 1, 54, 54, 55, 54, 54, 37, 7, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 1, 22, 6, 4, 100, 33, 7, 8, 8, 33, 25, 186, 194, 95, 23, 53, 29, 34, 78, 44, 91, 154, 63, 63, 100, 36, 37, 49, 12, 33, 4, 4, 29, 30, 221, 193, 125, 50, 131, 86, 92, 156, 65, 65, 103, 39, 38, 50, 253, 23, 33, 6, 20, 16, 15, 46, 32, 31, 84, 55, 24, 41, 17, 15, 25, 10, 254, 31, 1, 2, 1, 2, 3, 2, 3, 33, 7, 22, 17, 18, 50, 33, 34, 86, 54, 51, 65, 20, 1, 243, 1, 6, 2, 110, 211, 56, 114, 55, 55, 103, 45, 1, 1, 132, 19, 30, 12, 13, 15, 1, 2, 49, 44, 45, 124, 72, 72, 159, 80, 212, 29, 60, 30, 76, 149, 65, 254, 205, 173, 45, 51, 2, 2, 48, 44, 44, 123, 72, 72, 160, 79, 215, 43, 95, 46, 46, 83, 32, 31, 35, 2, 1, 11, 9, 8, 23, 14, 253, 101, 13, 26, 13, 15, 29, 229, 215, 43, 96, 46, 47, 84, 31, 31, 35, 2, 2, 43, 35, 2, 179, 39, 74, 255, 255, 255, 174, 255, 161, 4, 252, 7, 93, 6, 38, 0, 219, 0, 0, 0, 7, 1, 91, 0, 194, 1, 151, 255, 255, 0, 73, 255, 234, 4, 138, 7, 120, 6, 38, 0, 16, 0, 0, 0, 7, 1, 93, 0, 195, 1, 115, 255, 255, 0, 22, 0, 0, 4, 173, 7, 19, 6, 38, 0, 19, 0, 0, 0, 7, 1, 91, 0, 161, 1, 77, 255, 255, 0, 22, 0, 0, 4, 173, 7, 64, 6, 38, 0, 19, 0, 0, 0, 7, 1, 100, 0, 20, 1, 81, 255, 255, 0, 22, 254, 34, 4, 173, 5, 176, 6, 38, 0, 19, 0, 0, 0, 7, 1, 104, 0, 108, 254, 203, 255, 255, 0, 57, 255, 235, 4, 177, 7, 52, 6, 38, 0, 20, 0, 0, 0, 7, 1, 91, 0, 200, 1, 110, 255, 255, 0, 57, 255, 235, 4, 177, 7, 97, 6, 38, 0, 20, 0, 0, 0, 7, 1, 100, 0, 59, 1, 114, 255, 255, 0, 57, 254, 41, 4, 177, 5, 198, 6, 38, 0, 20, 0, 0, 0, 6, 1, 102, 92, 247, 255, 255, 0, 57, 255, 235, 4, 177, 7, 94, 6, 38, 0, 20, 0, 0, 0, 7, 1, 92, 0, 189, 1, 114, 0, 1, 0, 134, 0, 0, 5, 35, 5, 176, 0, 15, 0, 0, 65, 55, 35, 19, 33, 55, 33, 7, 33, 3, 35, 7, 51, 3, 33, 19, 3, 216, 32, 228, 51, 1, 179, 41, 251, 139, 40, 1, 174, 51, 221, 32, 222, 131, 1, 19, 131, 2, 245, 180, 1, 34, 229, 229, 254, 222, 180, 253, 11, 2, 245, 0, 255, 255, 0, 134, 0, 0, 5, 35, 7, 73, 6, 38, 0, 21, 0, 0, 0, 7, 1, 100, 0, 41, 1, 90, 255, 255, 0, 94, 255, 233, 4, 193, 7, 28, 6, 38, 0, 22, 0, 0, 0, 7, 1, 91, 0, 191, 1, 86, 255, 255, 0, 94, 255, 233, 4, 193, 7, 63, 6, 38, 0, 22, 0, 0, 0, 7, 1, 95, 0, 72, 1, 156, 255, 255, 0, 94, 255, 233, 4, 193, 7, 70, 6, 38, 0, 22, 0, 0, 0, 7, 1, 92, 0, 180, 1, 90, 255, 255, 0, 94, 255, 233, 4, 193, 7, 45, 6, 38, 0, 22, 0, 0, 0, 7, 1, 97, 0, 48, 1, 90, 255, 255, 0, 94, 255, 233, 4, 193, 7, 31, 6, 38, 0, 22, 0, 0, 0, 7, 1, 90, 255, 174, 1, 89, 0, 1, 0, 101, 255, 233, 6, 33, 5, 230, 0, 43, 0, 0, 65, 33, 3, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 19, 33, 3, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 19, 54, 54, 55, 54, 54, 55, 7, 6, 6, 7, 6, 6, 7, 4, 200, 254, 240, 165, 8, 36, 30, 31, 90, 62, 56, 61, 13, 14, 1, 5, 162, 254, 238, 165, 12, 38, 49, 49, 159, 110, 119, 191, 70, 70, 88, 17, 103, 97, 144, 50, 50, 56, 8, 191, 7, 21, 20, 21, 66, 52, 5, 176, 252, 58, 52, 104, 41, 41, 49, 3, 3, 57, 42, 42, 97, 43, 3, 198, 252, 58, 102, 184, 69, 70, 83, 2, 3, 75, 69, 68, 190, 113, 2, 97, 4, 56, 51, 51, 149, 98, 1, 51, 87, 32, 33, 41, 5, 255, 255, 0, 94, 255, 233, 5, 100, 7, 72, 6, 38, 0, 22, 0, 0, 0, 7, 1, 99, 0, 188, 1, 90, 255, 255, 0, 94, 255, 233, 4, 193, 6, 239, 6, 38, 0, 22, 0, 0, 0, 7, 1, 94, 0, 55, 1, 63, 0, 1, 0, 94, 254, 153, 4, 193, 5, 176, 0, 60, 0, 0, 65, 33, 3, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 19, 33, 3, 6, 22, 23, 22, 22, 23, 48, 48, 49, 6, 6, 7, 6, 6, 21, 6, 22, 23, 22, 22, 51, 22, 54, 55, 39, 6, 6, 39, 38, 38, 55, 54, 54, 55, 54, 54, 55, 54, 54, 55, 54, 54, 55, 4, 193, 254, 240, 165, 8, 36, 30, 31, 90, 62, 56, 61, 14, 13, 1, 5, 162, 254, 238, 165, 12, 33, 44, 44, 142, 98, 13, 20, 6, 5, 6, 1, 29, 27, 26, 74, 44, 46, 89, 40, 36, 19, 41, 20, 28, 21, 2, 1, 14, 10, 11, 30, 16, 75, 120, 45, 45, 58, 13, 5, 176, 252, 58, 52, 104, 41, 41, 49, 3, 3, 57, 42, 42, 97, 43, 3, 198, 252, 58, 97, 176, 68, 68, 88, 10, 18, 38, 21, 15, 33, 17, 45, 73, 26, 26, 29, 1, 20, 22, 157, 8, 13, 1, 2, 32, 27, 20, 36, 16, 16, 28, 12, 26, 92, 63, 62, 153, 87, 255, 255, 0, 94, 255, 233, 4, 193, 7, 134, 6, 38, 0, 22, 0, 0, 0, 7, 1, 98, 0, 94, 1, 242, 255, 255, 0, 94, 255, 233, 4, 193, 7, 96, 6, 38, 0, 22, 0, 0, 0, 7, 1, 93, 0, 199, 1, 91, 255, 255, 0, 127, 0, 0, 5, 27, 7, 31, 6, 38, 0, 24, 0, 0, 0, 7, 1, 91, 0, 159, 1, 89, 255, 255, 0, 127, 0, 0, 5, 27, 7, 73, 6, 38, 0, 24, 0, 0, 0, 7, 1, 92, 0, 148, 1, 93, 255, 255, 0, 127, 0, 0, 5, 27, 7, 48, 6, 38, 0, 24, 0, 0, 0, 7, 1, 97, 0, 16, 1, 93, 255, 255, 0, 127, 0, 0, 5, 27, 7, 34, 6, 38, 0, 24, 0, 0, 0, 7, 1, 90, 255, 142, 1, 92, 255, 255, 0, 186, 0, 0, 5, 63, 7, 31, 6, 38, 0, 26, 0, 0, 0, 7, 1, 91, 0, 195, 1, 89, 255, 255, 0, 186, 0, 0, 5, 63, 7, 73, 6, 38, 0, 26, 0, 0, 0, 7, 1, 92, 0, 184, 1, 93, 255, 255, 0, 186, 0, 0, 5, 63, 7, 48, 6, 38, 0, 26, 0, 0, 0, 7, 1, 97, 0, 52, 1, 93, 255, 255, 0, 186, 0, 0, 5, 63, 7, 34, 6, 38, 0, 26, 0, 0, 0, 7, 1, 90, 255, 178, 1, 92, 255, 255, 255, 248, 0, 0, 4, 212, 7, 28, 6, 38, 0, 27, 0, 0, 0, 7, 1, 91, 0, 179, 1, 86, 255, 255, 255, 248, 0, 0, 4, 212, 7, 73, 6, 38, 0, 27, 0, 0, 0, 7, 1, 100, 0, 38, 1, 90, 255, 255, 255, 248, 0, 0, 4, 212, 7, 76, 6, 38, 0, 27, 0, 0, 0, 7, 1, 96, 0, 50, 1, 106, 255, 255, 0, 58, 255, 235, 4, 81, 5, 221, 6, 38, 0, 28, 0, 0, 0, 6, 1, 91, 109, 23, 255, 255, 0, 58, 255, 235, 4, 39, 6, 0, 6, 38, 0, 28, 0, 0, 0, 6, 1, 95, 247, 93, 255, 255, 0, 58, 255, 235, 4, 40, 6, 7, 6, 38, 0, 28, 0, 0, 0, 6, 1, 92, 98, 27, 255, 255, 0, 58, 255, 235, 4, 50, 5, 238, 6, 38, 0, 28, 0, 0, 0, 6, 1, 97, 223, 27, 255, 255, 0, 58, 255, 235, 4, 27, 5, 224, 6, 38, 0, 28, 0, 0, 0, 7, 1, 90, 255, 92, 0, 26, 255, 255, 0, 58, 255, 235, 4, 58, 5, 176, 6, 38, 0, 28, 0, 0, 0, 6, 1, 94, 230, 0, 0, 2, 0, 58, 254, 88, 4, 27, 4, 80, 0, 85, 0, 108, 0, 0, 101, 6, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 51, 22, 54, 55, 39, 6, 6, 39, 38, 38, 55, 54, 54, 55, 54, 54, 55, 55, 51, 55, 38, 54, 55, 19, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 37, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 7, 39, 34, 6, 7, 6, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 6, 22, 39, 34, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 55, 54, 54, 51, 23, 7, 6, 6, 7, 6, 6, 2, 182, 33, 61, 23, 23, 28, 1, 1, 29, 27, 26, 74, 44, 46, 89, 40, 36, 19, 41, 20, 28, 21, 2, 3, 34, 26, 25, 61, 29, 9, 46, 1, 21, 9, 9, 75, 9, 57, 55, 56, 152, 85, 81, 165, 68, 68, 90, 6, 1, 15, 7, 29, 22, 23, 61, 36, 39, 62, 21, 20, 17, 6, 13, 156, 61, 125, 59, 59, 104, 40, 40, 49, 3, 3, 50, 46, 45, 123, 68, 50, 90, 41, 32, 59, 28, 1, 1, 229, 29, 49, 17, 17, 16, 4, 3, 14, 10, 13, 38, 22, 39, 92, 45, 123, 34, 23, 57, 32, 29, 66, 24, 21, 52, 31, 31, 72, 41, 45, 73, 26, 26, 29, 1, 20, 22, 157, 8, 13, 1, 2, 32, 27, 35, 56, 22, 22, 33, 13, 3, 18, 58, 123, 59, 1, 209, 93, 140, 48, 47, 50, 2, 1, 39, 42, 43, 131, 90, 2, 33, 51, 16, 18, 17, 1, 1, 23, 21, 22, 62, 39, 67, 2, 14, 17, 17, 55, 41, 41, 110, 72, 72, 116, 40, 41, 45, 1, 1, 20, 20, 15, 41, 26, 20, 38, 151, 16, 15, 15, 46, 31, 22, 38, 16, 21, 32, 12, 20, 18, 1, 187, 28, 44, 15, 14, 14, 0, 255, 255, 0, 58, 255, 235, 4, 27, 6, 71, 6, 38, 0, 28, 0, 0, 0, 7, 1, 98, 0, 12, 0, 179, 255, 255, 0, 58, 255, 235, 4, 138, 7, 20, 6, 38, 0, 28, 0, 0, 0, 6, 2, 107, 222, 94, 255, 255, 0, 58, 255, 235, 4, 58, 6, 33, 6, 38, 0, 28, 0, 0, 0, 6, 1, 93, 117, 28, 255, 255, 255, 245, 255, 235, 4, 158, 5, 222, 6, 38, 0, 73, 0, 0, 0, 7, 1, 91, 0, 168, 0, 24, 255, 255, 0, 96, 255, 233, 4, 112, 5, 221, 6, 38, 0, 30, 0, 0, 0, 7, 1, 91, 0, 140, 0, 23, 255, 255, 0, 96, 255, 233, 4, 118, 6, 10, 6, 38, 0, 30, 0, 0, 0, 6, 1, 100, 0, 27, 255, 255, 0, 96, 254, 55, 4, 49, 4, 81, 6, 38, 0, 30, 0, 0, 0, 6, 1, 102, 51, 5, 255, 255, 0, 96, 255, 233, 4, 71, 6, 7, 6, 38, 0, 30, 0, 0, 0, 7, 1, 92, 0, 129, 0, 27, 255, 255, 0, 17, 255, 234, 5, 238, 6, 24, 4, 38, 0, 31, 182, 255, 0, 7, 0, 109, 2, 86, 0, 0, 0, 2, 0, 76, 255, 235, 5, 56, 6, 0, 0, 43, 0, 72, 0, 0, 65, 55, 35, 55, 33, 7, 35, 7, 51, 7, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 7, 51, 19, 1, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 23, 3, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 39, 38, 54, 5, 24, 32, 164, 24, 254, 240, 26, 235, 32, 233, 44, 22, 49, 27, 33, 73, 41, 78, 128, 52, 52, 79, 28, 29, 36, 8, 3, 6, 5, 13, 13, 50, 39, 39, 108, 72, 50, 89, 39, 30, 54, 24, 14, 243, 211, 252, 237, 2, 7, 34, 32, 32, 96, 68, 31, 53, 20, 20, 31, 10, 78, 22, 53, 31, 22, 53, 29, 32, 50, 16, 24, 22, 5, 5, 2, 4, 196, 180, 136, 136, 180, 237, 27, 41, 15, 17, 18, 1, 2, 44, 39, 40, 109, 63, 63, 136, 67, 22, 59, 125, 59, 60, 106, 40, 41, 49, 2, 1, 23, 22, 17, 45, 27, 113, 4, 196, 253, 69, 21, 57, 120, 49, 49, 62, 1, 1, 16, 15, 15, 42, 28, 254, 72, 30, 48, 15, 11, 12, 1, 1, 20, 18, 28, 50, 38, 40, 84, 0, 255, 255, 0, 85, 255, 235, 4, 86, 5, 222, 6, 38, 0, 32, 0, 0, 0, 6, 1, 91, 114, 24, 255, 255, 0, 85, 255, 235, 4, 76, 6, 1, 6, 38, 0, 32, 0, 0, 0, 6, 1, 95, 252, 94, 255, 255, 0, 85, 255, 235, 4, 92, 6, 11, 6, 38, 0, 32, 0, 0, 0, 6, 1, 100, 230, 28, 255, 255, 0, 85, 255, 235, 4, 76, 6, 8, 6, 38, 0, 32, 0, 0, 0, 6, 1, 92, 103, 28, 255, 255, 0, 85, 255, 235, 4, 76, 5, 239, 6, 38, 0, 32, 0, 0, 0, 6, 1, 97, 228, 28, 255, 255, 0, 85, 255, 235, 4, 76, 6, 14, 6, 38, 0, 32, 0, 0, 0, 6, 1, 96, 242, 44, 255, 255, 0, 85, 255, 235, 4, 76, 5, 225, 6, 38, 0, 32, 0, 0, 0, 7, 1, 90, 255, 97, 0, 27, 255, 255, 0, 85, 255, 235, 4, 76, 5, 177, 6, 38, 0, 32, 0, 0, 0, 6, 1, 94, 235, 1, 0, 1, 0, 40, 254, 73, 4, 40, 4, 79, 0, 49, 0, 0, 115, 33, 19, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 3, 6, 6, 7, 6, 6, 35, 34, 38, 39, 7, 22, 22, 23, 50, 54, 55, 54, 54, 55, 19, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 55, 7, 40, 1, 15, 138, 20, 44, 23, 28, 61, 34, 47, 54, 13, 12, 1, 4, 114, 5, 22, 18, 18, 53, 37, 25, 50, 24, 39, 36, 71, 37, 93, 146, 53, 52, 65, 12, 113, 9, 16, 31, 31, 118, 93, 65, 113, 48, 26, 47, 21, 23, 250, 3, 17, 20, 32, 12, 13, 14, 1, 1, 37, 30, 30, 75, 39, 253, 65, 32, 62, 24, 24, 30, 8, 7, 223, 8, 10, 1, 58, 53, 53, 147, 88, 2, 191, 79, 156, 62, 62, 78, 2, 1, 41, 36, 20, 49, 28, 154, 1, 0, 0, 2, 0, 86, 254, 111, 4, 76, 4, 80, 0, 68, 0, 82, 0, 0, 101, 39, 6, 6, 39, 38, 38, 39, 38, 38, 39, 52, 52, 53, 53, 33, 55, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 48, 48, 49, 6, 6, 7, 6, 22, 23, 22, 22, 51, 22, 54, 55, 39, 6, 6, 39, 38, 38, 55, 54, 54, 55, 54, 54, 55, 54, 54, 1, 22, 22, 23, 22, 22, 7, 7, 33, 54, 54, 55, 54, 54, 3, 234, 123, 58, 151, 85, 54, 84, 28, 26, 29, 2, 2, 195, 18, 13, 37, 50, 51, 164, 113, 82, 149, 63, 56, 93, 36, 43, 55, 9, 4, 9, 46, 50, 50, 149, 94, 39, 51, 2, 1, 29, 27, 26, 74, 44, 46, 89, 40, 36, 19, 41, 20, 28, 21, 2, 2, 25, 19, 19, 47, 25, 81, 143, 254, 222, 45, 69, 23, 22, 18, 7, 5, 254, 71, 19, 50, 34, 33, 86, 175, 151, 60, 65, 3, 1, 39, 33, 29, 76, 45, 5, 10, 5, 4, 118, 105, 190, 74, 73, 88, 3, 2, 42, 39, 34, 94, 54, 66, 153, 81, 41, 99, 174, 67, 68, 90, 15, 38, 93, 57, 45, 73, 26, 26, 29, 1, 20, 22, 157, 8, 13, 1, 2, 32, 27, 29, 49, 20, 19, 32, 13, 21, 85, 3, 3, 2, 33, 28, 28, 76, 44, 25, 44, 86, 34, 34, 40, 0, 255, 255, 0, 26, 254, 83, 4, 123, 6, 0, 6, 38, 0, 34, 0, 0, 0, 6, 1, 95, 250, 93, 255, 255, 0, 26, 254, 83, 4, 123, 6, 7, 6, 38, 0, 34, 0, 0, 0, 6, 1, 92, 101, 27, 255, 255, 0, 26, 254, 83, 4, 123, 6, 180, 6, 38, 0, 34, 0, 0, 0, 7, 2, 78, 0, 37, 0, 153, 0, 1, 0, 47, 0, 0, 4, 83, 6, 0, 0, 39, 0, 0, 65, 55, 35, 55, 33, 7, 35, 7, 51, 3, 33, 19, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 3, 33, 19, 54, 38, 39, 38, 38, 39, 34, 6, 7, 6, 6, 7, 19, 3, 7, 32, 249, 27, 254, 241, 25, 155, 32, 156, 211, 1, 15, 138, 24, 52, 28, 26, 57, 32, 49, 64, 18, 18, 9, 5, 111, 1, 16, 109, 9, 23, 36, 37, 129, 96, 45, 82, 36, 44, 77, 32, 54, 4, 192, 180, 140, 140, 180, 251, 64, 3, 14, 23, 37, 12, 11, 11, 1, 2, 34, 29, 30, 77, 45, 253, 110, 2, 143, 85, 160, 63, 62, 76, 1, 20, 19, 22, 68, 42, 1, 29, 0, 255, 255, 0, 32, 0, 0, 4, 91, 7, 168, 6, 38, 0, 35, 0, 0, 0, 7, 1, 92, 0, 149, 1, 188, 255, 255, 0, 88, 0, 0, 4, 146, 5, 196, 6, 38, 1, 109, 0, 0, 0, 7, 1, 91, 0, 174, 255, 254, 255, 255, 0, 88, 0, 0, 4, 103, 5, 230, 6, 38, 1, 109, 0, 0, 0, 6, 1, 95, 55, 67, 255, 255, 0, 88, 0, 0, 4, 105, 5, 237, 6, 38, 1, 109, 0, 0, 0, 7, 1, 92, 0, 163, 0, 1, 255, 255, 0, 88, 0, 0, 4, 114, 5, 212, 6, 38, 1, 109, 0, 0, 0, 6, 1, 97, 31, 1, 255, 255, 0, 88, 0, 0, 3, 249, 5, 198, 6, 38, 1, 109, 0, 0, 0, 6, 1, 90, 157, 0, 255, 255, 0, 88, 0, 0, 4, 122, 5, 151, 6, 38, 1, 109, 0, 0, 0, 6, 1, 94, 38, 231, 0, 2, 0, 104, 254, 88, 3, 233, 5, 229, 0, 39, 0, 63, 0, 0, 65, 7, 33, 3, 33, 7, 33, 6, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 51, 22, 54, 55, 39, 6, 6, 39, 38, 38, 55, 54, 54, 55, 54, 54, 55, 39, 33, 55, 33, 19, 3, 20, 22, 23, 22, 22, 55, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 7, 34, 6, 7, 6, 6, 1, 36, 40, 1, 43, 109, 254, 213, 39, 1, 23, 27, 48, 18, 18, 22, 1, 1, 29, 27, 26, 74, 44, 46, 89, 40, 36, 19, 41, 20, 28, 21, 2, 3, 34, 26, 25, 61, 29, 7, 1, 74, 40, 254, 227, 149, 246, 25, 21, 21, 56, 32, 33, 58, 21, 21, 24, 25, 21, 21, 56, 32, 33, 57, 21, 22, 24, 4, 58, 227, 253, 139, 226, 20, 48, 28, 28, 64, 36, 45, 73, 26, 26, 29, 1, 20, 22, 157, 8, 13, 1, 2, 32, 27, 35, 56, 22, 22, 33, 13, 3, 226, 3, 88, 1, 16, 33, 54, 19, 19, 20, 1, 23, 21, 20, 56, 34, 33, 54, 19, 19, 20, 1, 23, 20, 21, 56, 0, 255, 255, 0, 88, 0, 0, 4, 123, 6, 7, 6, 38, 1, 109, 0, 0, 0, 7, 1, 93, 0, 182, 0, 2, 255, 255, 0, 51, 254, 73, 4, 167, 5, 223, 6, 38, 1, 113, 0, 0, 0, 7, 1, 92, 0, 225, 255, 243, 255, 255, 0, 35, 254, 12, 4, 175, 6, 0, 6, 38, 0, 38, 0, 0, 0, 7, 1, 104, 0, 89, 254, 181, 255, 255, 0, 88, 0, 0, 4, 214, 7, 101, 6, 38, 0, 39, 0, 0, 0, 7, 1, 91, 0, 242, 1, 159, 255, 255, 0, 13, 0, 0, 5, 11, 6, 5, 4, 38, 0, 39, 181, 0, 0, 7, 0, 109, 1, 115, 255, 237, 255, 255, 0, 88, 254, 35, 3, 249, 6, 0, 6, 38, 0, 39, 0, 0, 0, 7, 1, 104, 0, 169, 254, 204, 255, 255, 0, 13, 0, 0, 4, 99, 6, 0, 4, 38, 0, 39, 181, 0, 0, 7, 1, 96, 0, 241, 253, 217, 0, 1, 0, 102, 0, 0, 4, 139, 6, 0, 0, 17, 0, 0, 65, 7, 33, 3, 5, 7, 37, 3, 33, 7, 33, 55, 33, 19, 37, 55, 5, 19, 1, 113, 40, 1, 59, 71, 254, 185, 36, 1, 71, 81, 254, 198, 40, 3, 121, 40, 254, 211, 102, 1, 39, 36, 254, 217, 89, 6, 0, 227, 254, 104, 138, 207, 138, 254, 44, 226, 226, 2, 80, 125, 207, 125, 1, 255, 255, 255, 0, 32, 0, 0, 4, 92, 5, 221, 6, 38, 0, 41, 0, 0, 0, 6, 1, 91, 120, 23, 255, 255, 0, 32, 0, 0, 4, 98, 6, 10, 6, 38, 0, 41, 0, 0, 0, 6, 1, 100, 236, 27, 255, 255, 0, 32, 254, 34, 4, 67, 4, 79, 6, 38, 0, 41, 0, 0, 0, 7, 1, 104, 0, 116, 254, 203, 255, 255, 0, 32, 0, 0, 4, 69, 6, 33, 6, 38, 0, 41, 0, 0, 0, 7, 1, 93, 0, 128, 0, 28, 255, 255, 0, 81, 255, 232, 4, 105, 5, 221, 6, 38, 0, 42, 0, 0, 0, 7, 1, 91, 0, 133, 0, 23, 255, 255, 0, 81, 255, 232, 4, 66, 6, 0, 6, 38, 0, 42, 0, 0, 0, 6, 1, 95, 14, 93, 255, 255, 0, 81, 255, 232, 4, 66, 6, 7, 6, 38, 0, 42, 0, 0, 0, 6, 1, 92, 122, 27, 255, 255, 0, 81, 255, 232, 4, 74, 5, 238, 6, 38, 0, 42, 0, 0, 0, 6, 1, 97, 247, 27, 255, 255, 0, 81, 255, 232, 4, 66, 5, 224, 6, 38, 0, 42, 0, 0, 0, 7, 1, 90, 255, 116, 0, 26, 0, 2, 0, 70, 255, 232, 4, 221, 4, 157, 0, 44, 0, 73, 0, 0, 65, 6, 6, 7, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 55, 54, 38, 39, 54, 54, 55, 54, 54, 55, 7, 6, 6, 3, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 23, 22, 6, 4, 5, 13, 35, 24, 53, 149, 100, 85, 150, 62, 51, 88, 33, 41, 52, 10, 2, 11, 41, 53, 22, 56, 33, 45, 113, 67, 121, 199, 73, 73, 91, 14, 3, 8, 18, 26, 50, 78, 26, 22, 26, 5, 182, 5, 17, 240, 2, 8, 37, 33, 34, 99, 68, 48, 65, 20, 28, 15, 8, 2, 7, 39, 34, 33, 99, 69, 43, 60, 20, 19, 21, 5, 4, 3, 4, 39, 27, 45, 15, 57, 67, 2, 2, 43, 40, 33, 92, 53, 65, 153, 81, 21, 107, 195, 74, 32, 54, 20, 29, 32, 1, 3, 87, 76, 76, 203, 114, 22, 78, 148, 65, 23, 72, 48, 40, 97, 56, 2, 30, 60, 253, 232, 21, 57, 119, 48, 49, 61, 2, 1, 38, 30, 47, 122, 85, 21, 58, 120, 49, 49, 60, 2, 2, 31, 25, 25, 65, 35, 36, 73, 0, 255, 255, 0, 81, 255, 232, 5, 42, 6, 9, 6, 38, 0, 42, 0, 0, 0, 7, 1, 99, 0, 130, 0, 27, 255, 255, 0, 81, 255, 232, 4, 82, 5, 176, 6, 38, 0, 42, 0, 0, 0, 6, 1, 94, 254, 0, 0, 3, 0, 70, 255, 115, 4, 91, 4, 191, 0, 37, 0, 54, 0, 71, 0, 0, 83, 7, 6, 22, 23, 22, 22, 23, 7, 51, 55, 22, 22, 23, 22, 54, 55, 54, 54, 55, 55, 54, 38, 39, 38, 38, 39, 55, 35, 7, 38, 38, 39, 38, 6, 7, 6, 6, 23, 55, 54, 54, 55, 54, 54, 23, 50, 22, 23, 1, 38, 38, 53, 52, 54, 37, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 1, 22, 22, 21, 20, 6, 91, 2, 7, 10, 16, 16, 56, 39, 149, 167, 100, 37, 85, 49, 121, 199, 73, 73, 91, 14, 3, 7, 9, 16, 15, 51, 36, 153, 166, 100, 40, 93, 53, 122, 199, 73, 73, 91, 255, 2, 7, 39, 34, 33, 99, 69, 22, 37, 16, 254, 165, 8, 7, 2, 1, 195, 2, 8, 37, 33, 34, 99, 68, 18, 31, 14, 1, 82, 6, 5, 3, 2, 32, 21, 65, 123, 55, 56, 96, 38, 231, 154, 15, 18, 1, 3, 87, 76, 76, 203, 114, 22, 64, 123, 55, 52, 93, 38, 236, 154, 19, 21, 1, 3, 88, 77, 77, 205, 135, 21, 58, 120, 49, 49, 60, 2, 10, 9, 253, 232, 28, 62, 31, 20, 40, 49, 21, 57, 119, 48, 49, 61, 2, 1, 6, 5, 2, 10, 25, 51, 25, 20, 41, 0, 255, 255, 0, 70, 255, 115, 4, 91, 5, 217, 6, 38, 1, 56, 0, 0, 0, 6, 1, 91, 91, 19, 255, 255, 0, 81, 255, 232, 4, 82, 6, 33, 6, 38, 0, 42, 0, 0, 0, 7, 1, 93, 0, 141, 0, 28, 255, 255, 0, 174, 0, 0, 4, 142, 5, 221, 6, 38, 0, 45, 0, 0, 0, 6, 1, 91, 94, 23, 255, 255, 0, 174, 0, 0, 4, 142, 6, 10, 6, 38, 0, 45, 0, 0, 0, 6, 1, 100, 210, 27, 255, 255, 0, 87, 254, 34, 4, 142, 4, 80, 6, 38, 0, 45, 0, 0, 0, 7, 1, 104, 255, 194, 254, 203, 255, 255, 0, 74, 255, 234, 4, 76, 5, 221, 6, 38, 0, 46, 0, 0, 0, 6, 1, 91, 93, 23, 255, 255, 0, 74, 255, 234, 4, 76, 6, 10, 6, 38, 0, 46, 0, 0, 0, 6, 1, 100, 209, 27, 255, 255, 0, 74, 254, 41, 4, 76, 4, 79, 6, 38, 0, 46, 0, 0, 0, 6, 1, 102, 30, 247, 255, 255, 0, 74, 255, 234, 4, 76, 6, 7, 6, 38, 0, 46, 0, 0, 0, 6, 1, 92, 82, 27, 0, 1, 0, 161, 255, 235, 4, 84, 5, 67, 0, 40, 0, 0, 65, 55, 35, 55, 33, 55, 33, 19, 33, 3, 35, 7, 51, 7, 35, 7, 51, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 39, 6, 6, 39, 38, 38, 39, 38, 38, 55, 55, 3, 66, 32, 212, 26, 1, 136, 36, 254, 120, 46, 254, 241, 46, 240, 36, 240, 26, 190, 32, 192, 25, 9, 31, 41, 40, 131, 91, 40, 86, 43, 42, 81, 36, 9, 57, 114, 58, 47, 59, 15, 16, 7, 5, 21, 2, 27, 180, 158, 205, 1, 9, 254, 247, 205, 158, 180, 154, 86, 147, 54, 54, 63, 1, 1, 5, 7, 7, 26, 20, 193, 12, 18, 2, 1, 32, 27, 27, 72, 43, 128, 255, 255, 0, 149, 255, 234, 5, 89, 6, 187, 4, 38, 0, 47, 236, 0, 0, 7, 0, 109, 1, 193, 0, 163, 255, 255, 0, 113, 255, 233, 4, 127, 5, 200, 6, 38, 0, 48, 0, 0, 0, 7, 1, 91, 0, 131, 0, 2, 255, 255, 0, 113, 255, 233, 4, 127, 5, 235, 6, 38, 0, 48, 0, 0, 0, 6, 1, 95, 12, 72, 255, 255, 0, 113, 255, 233, 4, 127, 5, 242, 6, 38, 0, 48, 0, 0, 0, 6, 1, 92, 120, 6, 255, 255, 0, 113, 255, 233, 4, 127, 5, 217, 6, 38, 0, 48, 0, 0, 0, 6, 1, 97, 245, 6, 255, 255, 0, 113, 255, 233, 4, 127, 5, 203, 6, 38, 0, 48, 0, 0, 0, 7, 1, 90, 255, 114, 0, 5, 0, 1, 0, 85, 255, 234, 5, 143, 4, 156, 0, 45, 0, 0, 97, 51, 19, 54, 54, 55, 7, 6, 6, 7, 6, 6, 7, 55, 33, 3, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 54, 55, 19, 33, 3, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 2, 175, 245, 133, 161, 183, 14, 185, 7, 24, 19, 17, 46, 30, 25, 254, 240, 133, 22, 51, 29, 27, 64, 35, 52, 56, 11, 12, 1, 5, 107, 254, 241, 107, 6, 3, 12, 12, 45, 36, 36, 99, 66, 49, 89, 39, 39, 68, 30, 2, 253, 27, 202, 186, 2, 45, 77, 30, 28, 43, 14, 141, 253, 8, 30, 46, 14, 14, 14, 1, 1, 42, 33, 33, 83, 42, 2, 131, 253, 128, 56, 112, 51, 51, 88, 33, 33, 38, 1, 1, 26, 24, 23, 64, 38, 0, 255, 255, 0, 113, 255, 233, 5, 40, 5, 244, 6, 38, 0, 48, 0, 0, 0, 7, 1, 99, 0, 128, 0, 6, 255, 255, 0, 113, 255, 233, 4, 127, 5, 156, 6, 38, 0, 48, 0, 0, 0, 6, 1, 94, 252, 236, 0, 1, 0, 113, 254, 88, 4, 127, 4, 58, 0, 60, 0, 0, 97, 51, 19, 33, 3, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 54, 55, 19, 33, 3, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 7, 6, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 51, 22, 54, 55, 39, 6, 6, 39, 38, 38, 55, 54, 54, 55, 54, 54, 55, 3, 170, 25, 188, 254, 240, 133, 21, 48, 28, 28, 66, 37, 52, 56, 11, 12, 1, 5, 107, 254, 241, 107, 9, 17, 36, 36, 124, 99, 49, 89, 39, 39, 68, 30, 18, 33, 59, 22, 23, 27, 1, 1, 29, 27, 26, 74, 44, 46, 89, 40, 36, 19, 41, 20, 28, 21, 2, 3, 34, 26, 25, 61, 29, 4, 58, 253, 8, 29, 44, 15, 15, 15, 1, 1, 42, 33, 33, 83, 42, 2, 131, 253, 128, 85, 166, 65, 64, 82, 1, 1, 26, 24, 23, 64, 38, 132, 21, 51, 31, 31, 71, 40, 45, 73, 26, 26, 29, 1, 20, 22, 157, 8, 13, 1, 2, 32, 27, 35, 56, 22, 22, 33, 13, 0, 255, 255, 0, 113, 255, 233, 4, 127, 6, 50, 6, 38, 0, 48, 0, 0, 0, 7, 1, 98, 0, 34, 0, 158, 255, 255, 0, 113, 255, 233, 4, 127, 6, 12, 6, 38, 0, 48, 0, 0, 0, 7, 1, 93, 0, 139, 0, 7, 255, 255, 0, 112, 0, 0, 4, 210, 5, 200, 6, 38, 0, 50, 0, 0, 0, 6, 1, 91, 113, 2, 255, 255, 0, 112, 0, 0, 4, 210, 5, 242, 6, 38, 0, 50, 0, 0, 0, 6, 1, 92, 102, 6, 255, 255, 0, 112, 0, 0, 4, 210, 5, 217, 6, 38, 0, 50, 0, 0, 0, 6, 1, 97, 227, 6, 255, 255, 0, 112, 0, 0, 4, 210, 5, 203, 6, 38, 0, 50, 0, 0, 0, 7, 1, 90, 255, 96, 0, 5, 255, 255, 0, 0, 254, 72, 5, 3, 5, 200, 6, 38, 0, 52, 0, 0, 0, 7, 1, 91, 0, 154, 0, 2, 255, 255, 0, 0, 254, 72, 5, 3, 5, 242, 6, 38, 0, 52, 0, 0, 0, 7, 1, 92, 0, 143, 0, 6, 255, 255, 0, 0, 254, 72, 5, 3, 5, 217, 6, 38, 0, 52, 0, 0, 0, 6, 1, 97, 11, 6, 255, 255, 0, 0, 254, 72, 5, 3, 5, 203, 6, 38, 0, 52, 0, 0, 0, 6, 1, 90, 137, 5, 255, 255, 0, 20, 0, 0, 4, 129, 5, 200, 6, 38, 0, 53, 0, 0, 0, 7, 1, 91, 0, 154, 0, 2, 255, 255, 0, 20, 0, 0, 4, 131, 5, 245, 6, 38, 0, 53, 0, 0, 0, 6, 1, 100, 13, 6, 255, 255, 0, 20, 0, 0, 4, 129, 5, 248, 6, 38, 0, 53, 0, 0, 0, 6, 1, 96, 25, 22, 0, 1, 2, 32, 4, 175, 3, 187, 5, 198, 0, 3, 0, 0, 65, 3, 33, 19, 3, 187, 129, 254, 230, 213, 4, 175, 1, 23, 254, 233, 0, 1, 1, 200, 4, 175, 3, 228, 5, 198, 0, 3, 0, 0, 65, 3, 51, 1, 2, 170, 226, 227, 1, 57, 5, 198, 254, 233, 1, 23, 0, 1, 0, 239, 4, 220, 3, 198, 5, 236, 0, 8, 0, 0, 65, 37, 35, 5, 7, 55, 55, 23, 23, 3, 198, 254, 255, 155, 254, 199, 2, 219, 171, 126, 209, 4, 250, 242, 240, 32, 2, 125, 126, 1, 0, 1, 0, 234, 4, 233, 3, 197, 6, 5, 0, 37, 0, 0, 65, 39, 6, 6, 7, 6, 6, 35, 6, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 23, 54, 54, 55, 54, 54, 51, 54, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 3, 197, 129, 6, 20, 14, 13, 32, 21, 37, 65, 32, 32, 67, 37, 50, 81, 28, 29, 34, 4, 134, 6, 18, 13, 13, 33, 22, 37, 65, 32, 32, 66, 38, 51, 80, 28, 28, 32, 5, 234, 27, 21, 37, 14, 11, 14, 1, 28, 17, 17, 29, 43, 35, 36, 89, 45, 29, 20, 37, 13, 12, 16, 1, 28, 17, 17, 29, 43, 36, 35, 89, 0, 1, 1, 116, 5, 12, 4, 84, 5, 176, 0, 3, 0, 0, 65, 55, 33, 7, 4, 58, 26, 253, 58, 26, 5, 12, 164, 164, 0, 1, 1, 157, 4, 124, 4, 48, 5, 163, 0, 25, 0, 0, 65, 7, 6, 6, 7, 6, 6, 35, 38, 38, 39, 38, 38, 55, 39, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 4, 48, 196, 6, 25, 20, 19, 50, 32, 34, 46, 14, 13, 11, 1, 193, 1, 46, 41, 41, 113, 67, 69, 123, 48, 47, 59, 5, 163, 2, 31, 50, 18, 17, 17, 1, 21, 19, 17, 48, 28, 1, 69, 108, 37, 38, 41, 1, 1, 38, 38, 37, 111, 0, 0, 1, 2, 78, 4, 197, 3, 114, 5, 226, 0, 11, 0, 0, 65, 20, 22, 55, 50, 54, 53, 52, 38, 7, 34, 6, 2, 78, 85, 61, 61, 85, 86, 60, 66, 80, 5, 78, 61, 76, 2, 80, 65, 62, 76, 2, 84, 0, 0, 2, 1, 120, 4, 214, 4, 83, 5, 211, 0, 11, 0, 23, 0, 0, 65, 20, 22, 51, 54, 54, 53, 52, 38, 35, 6, 6, 5, 20, 22, 51, 54, 54, 53, 52, 38, 7, 6, 6, 1, 120, 79, 55, 53, 78, 81, 52, 54, 78, 1, 210, 80, 53, 53, 79, 84, 50, 55, 76, 5, 81, 53, 68, 2, 70, 57, 54, 68, 2, 72, 56, 54, 69, 2, 72, 57, 55, 67, 1, 1, 73, 0, 2, 1, 243, 4, 14, 3, 143, 5, 148, 0, 23, 0, 47, 0, 0, 65, 6, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 23, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 1, 244, 1, 30, 27, 26, 71, 40, 43, 77, 30, 29, 36, 2, 1, 29, 25, 26, 69, 40, 43, 79, 30, 31, 38, 111, 2, 19, 15, 15, 38, 21, 20, 31, 10, 9, 8, 2, 2, 18, 14, 14, 37, 21, 18, 29, 10, 13, 12, 4, 199, 41, 68, 24, 25, 27, 29, 27, 27, 74, 44, 40, 69, 26, 25, 29, 30, 27, 28, 76, 41, 21, 38, 15, 14, 17, 16, 13, 13, 35, 18, 20, 38, 14, 14, 17, 12, 11, 12, 37, 0, 2, 1, 51, 4, 229, 4, 168, 5, 238, 0, 3, 0, 7, 0, 0, 65, 1, 51, 1, 33, 3, 51, 1, 3, 138, 254, 228, 227, 1, 87, 253, 127, 244, 220, 1, 41, 5, 238, 254, 247, 1, 9, 254, 247, 1, 9, 0, 0, 1, 1, 140, 4, 221, 4, 118, 5, 239, 0, 8, 0, 0, 65, 39, 39, 7, 23, 51, 37, 53, 7, 2, 227, 118, 224, 1, 255, 171, 1, 64, 238, 5, 112, 125, 2, 24, 250, 251, 23, 3, 0, 1, 252, 149, 254, 147, 253, 208, 255, 174, 0, 11, 0, 0, 69, 20, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 252, 149, 95, 62, 62, 96, 94, 63, 66, 92, 229, 65, 71, 79, 67, 64, 73, 83, 0, 1, 1, 28, 254, 50, 2, 137, 0, 5, 0, 30, 0, 0, 101, 7, 7, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 7, 54, 54, 55, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 2, 35, 203, 44, 17, 47, 20, 20, 24, 4, 5, 26, 18, 19, 44, 22, 6, 39, 84, 41, 40, 72, 28, 27, 32, 1, 1, 19, 19, 15, 43, 27, 5, 1, 140, 2, 3, 6, 7, 28, 26, 26, 33, 10, 10, 10, 1, 164, 1, 11, 11, 11, 36, 27, 26, 74, 48, 35, 59, 22, 17, 24, 6, 0, 1, 0, 243, 254, 88, 2, 121, 0, 61, 0, 28, 0, 0, 69, 39, 6, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 51, 22, 54, 55, 39, 6, 6, 39, 38, 38, 55, 54, 54, 55, 54, 54, 2, 121, 153, 42, 84, 33, 33, 43, 1, 1, 29, 27, 26, 74, 44, 46, 89, 40, 36, 19, 41, 20, 28, 21, 2, 3, 34, 26, 25, 61, 3, 64, 21, 55, 35, 36, 87, 51, 45, 73, 26, 26, 29, 1, 20, 22, 157, 8, 13, 1, 2, 32, 27, 35, 56, 22, 22, 33, 0, 0, 1, 0, 149, 255, 87, 1, 204, 0, 250, 0, 9, 0, 0, 101, 55, 35, 7, 6, 6, 7, 23, 54, 54, 1, 197, 7, 186, 10, 12, 60, 43, 113, 79, 101, 182, 68, 72, 75, 130, 62, 80, 66, 182, 255, 255, 0, 161, 0, 93, 4, 34, 3, 124, 4, 39, 0, 122, 255, 51, 255, 221, 0, 7, 0, 122, 0, 163, 255, 221, 0, 1, 255, 246, 254, 96, 4, 150, 4, 58, 0, 33, 0, 0, 65, 33, 1, 33, 19, 22, 22, 51, 50, 54, 55, 54, 54, 55, 7, 51, 19, 33, 3, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 39, 38, 54, 55, 2, 9, 254, 241, 254, 252, 1, 15, 85, 39, 87, 47, 32, 58, 26, 32, 58, 28, 9, 242, 188, 254, 240, 135, 21, 49, 27, 28, 63, 35, 34, 48, 14, 19, 14, 2, 1, 4, 3, 4, 58, 250, 38, 1, 189, 25, 25, 10, 10, 12, 37, 24, 72, 4, 58, 252, 254, 27, 41, 13, 13, 13, 1, 1, 21, 17, 21, 57, 31, 26, 54, 26, 255, 255, 0, 131, 0, 127, 4, 0, 3, 158, 4, 39, 0, 123, 255, 103, 0, 0, 0, 7, 0, 123, 0, 212, 0, 0, 0, 1, 0, 88, 0, 0, 3, 249, 4, 58, 0, 9, 0, 0, 65, 7, 33, 3, 33, 7, 33, 55, 33, 19, 1, 20, 40, 1, 59, 109, 254, 198, 40, 3, 121, 40, 254, 211, 149, 4, 58, 227, 253, 139, 226, 226, 3, 88, 0, 2, 0, 17, 255, 235, 4, 195, 5, 176, 0, 3, 0, 31, 0, 0, 115, 19, 35, 3, 1, 3, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 39, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 19, 213, 253, 196, 253, 3, 238, 193, 5, 22, 20, 20, 59, 42, 38, 42, 10, 10, 3, 2, 196, 3, 32, 35, 35, 111, 76, 82, 130, 48, 47, 57, 11, 193, 5, 176, 250, 80, 5, 176, 251, 145, 36, 67, 25, 25, 29, 2, 1, 35, 26, 26, 63, 29, 1, 72, 123, 45, 46, 54, 1, 2, 47, 45, 45, 127, 79, 4, 110, 0, 4, 255, 224, 254, 76, 4, 186, 5, 195, 0, 23, 0, 33, 0, 45, 0, 57, 0, 0, 65, 7, 51, 3, 6, 6, 7, 6, 6, 39, 38, 38, 39, 7, 22, 22, 51, 50, 54, 55, 54, 54, 55, 19, 33, 7, 51, 3, 35, 7, 33, 55, 35, 19, 1, 20, 22, 55, 54, 54, 53, 52, 38, 7, 6, 6, 5, 20, 22, 55, 54, 54, 53, 52, 38, 7, 6, 6, 2, 239, 30, 210, 157, 9, 46, 36, 36, 98, 62, 45, 88, 43, 27, 54, 104, 54, 102, 163, 60, 60, 75, 14, 186, 252, 30, 30, 222, 128, 228, 30, 2, 130, 30, 219, 159, 1, 149, 66, 48, 49, 62, 67, 47, 50, 61, 253, 203, 66, 48, 48, 63, 68, 47, 49, 61, 4, 58, 170, 252, 106, 60, 97, 33, 34, 36, 1, 1, 6, 8, 169, 8, 9, 61, 56, 56, 159, 98, 4, 64, 170, 253, 26, 170, 170, 3, 144, 1, 20, 48, 61, 2, 2, 62, 49, 51, 60, 2, 2, 64, 50, 48, 61, 2, 2, 62, 49, 51, 60, 2, 2, 64, 0, 0, 1, 1, 39, 0, 0, 4, 167, 6, 47, 0, 21, 0, 0, 97, 33, 19, 54, 54, 55, 54, 54, 23, 22, 22, 23, 55, 38, 38, 39, 38, 6, 7, 6, 6, 7, 1, 39, 1, 14, 189, 10, 50, 39, 38, 101, 60, 24, 45, 23, 47, 40, 79, 41, 114, 188, 70, 70, 90, 16, 4, 77, 58, 97, 34, 34, 36, 1, 1, 7, 5, 214, 8, 13, 1, 1, 66, 63, 63, 180, 111, 0, 0, 1, 0, 51, 254, 73, 3, 155, 4, 58, 0, 23, 0, 0, 65, 7, 33, 3, 6, 6, 7, 6, 6, 39, 38, 38, 39, 7, 22, 22, 23, 50, 54, 55, 54, 54, 55, 19, 1, 128, 40, 1, 10, 149, 8, 40, 30, 28, 75, 45, 37, 75, 36, 36, 45, 90, 45, 104, 173, 65, 65, 83, 14, 188, 4, 58, 227, 252, 144, 47, 72, 23, 22, 22, 1, 1, 7, 8, 228, 8, 8, 1, 50, 52, 51, 156, 105, 4, 83, 0, 0, 2, 1, 29, 254, 141, 2, 96, 255, 188, 0, 23, 0, 44, 0, 0, 69, 6, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 23, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 35, 34, 38, 1, 30, 1, 25, 22, 21, 57, 31, 33, 59, 23, 23, 27, 1, 1, 24, 20, 21, 56, 31, 33, 62, 23, 23, 29, 107, 4, 12, 8, 7, 21, 14, 11, 16, 5, 6, 3, 2, 2, 13, 9, 8, 20, 10, 25, 19, 228, 33, 53, 18, 19, 20, 24, 21, 20, 56, 34, 32, 55, 20, 19, 22, 24, 21, 22, 59, 31, 11, 22, 9, 9, 10, 9, 7, 8, 21, 10, 12, 22, 8, 7, 9, 29, 0, 1, 253, 96, 4, 186, 254, 144, 6, 24, 0, 3, 0, 0, 65, 3, 35, 19, 254, 144, 98, 206, 151, 4, 186, 1, 94, 254, 162, 0, 0, 1, 253, 231, 4, 185, 255, 154, 6, 25, 0, 3, 0, 0, 65, 3, 51, 1, 254, 178, 203, 175, 1, 4, 6, 25, 254, 160, 1, 96, 255, 255, 252, 248, 4, 233, 255, 211, 6, 5, 4, 7, 1, 93, 252, 14, 0, 0, 0, 1, 253, 194, 4, 238, 255, 66, 6, 132, 0, 27, 0, 0, 65, 23, 55, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 7, 50, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 253, 194, 211, 9, 31, 58, 23, 22, 27, 1, 2, 74, 48, 55, 115, 44, 17, 15, 47, 21, 20, 27, 4, 4, 35, 22, 23, 49, 18, 4, 239, 1, 67, 6, 22, 18, 18, 52, 35, 62, 75, 17, 19, 13, 2, 133, 2, 5, 6, 25, 25, 24, 27, 7, 7, 5, 2, 0, 0, 2, 252, 171, 4, 228, 255, 205, 5, 238, 0, 3, 0, 7, 0, 0, 65, 3, 33, 19, 33, 3, 33, 19, 254, 142, 192, 254, 221, 239, 2, 51, 145, 254, 231, 191, 4, 228, 1, 10, 254, 246, 1, 10, 254, 246, 0, 1, 2, 163, 4, 242, 4, 79, 6, 129, 0, 3, 0, 0, 65, 3, 51, 1, 3, 55, 148, 147, 1, 25, 6, 129, 254, 113, 1, 143, 0, 3, 1, 126, 4, 197, 4, 166, 7, 9, 0, 3, 0, 15, 0, 27, 0, 0, 65, 3, 51, 19, 1, 20, 22, 55, 54, 54, 53, 52, 38, 7, 6, 6, 5, 20, 22, 55, 54, 54, 53, 52, 38, 7, 6, 6, 3, 65, 99, 153, 219, 253, 44, 85, 53, 55, 82, 83, 55, 56, 81, 2, 20, 83, 56, 56, 81, 83, 55, 56, 82, 7, 9, 254, 188, 1, 68, 254, 60, 59, 69, 2, 2, 73, 59, 57, 73, 2, 2, 76, 56, 58, 72, 2, 2, 76, 58, 57, 72, 2, 2, 75, 255, 255, 2, 46, 2, 37, 3, 97, 3, 86, 4, 6, 0, 100, 61, 0, 0, 1, 0, 32, 0, 0, 4, 176, 5, 176, 0, 5, 0, 0, 65, 55, 33, 3, 33, 19, 4, 136, 40, 252, 109, 253, 1, 18, 213, 4, 204, 228, 250, 80, 4, 204, 0, 2, 255, 181, 0, 0, 4, 110, 5, 176, 0, 3, 0, 8, 0, 0, 65, 1, 33, 3, 1, 1, 55, 23, 19, 2, 139, 253, 42, 4, 185, 206, 253, 167, 1, 87, 59, 15, 86, 5, 176, 250, 80, 5, 176, 251, 50, 2, 212, 124, 124, 253, 44, 0, 0, 3, 0, 84, 255, 234, 4, 149, 5, 198, 0, 3, 0, 41, 0, 79, 0, 0, 65, 55, 33, 7, 37, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 3, 7, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 53, 38, 54, 55, 55, 54, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 23, 22, 6, 3, 29, 39, 254, 134, 39, 2, 199, 33, 10, 8, 18, 19, 68, 51, 52, 137, 88, 91, 154, 63, 63, 100, 36, 37, 49, 12, 33, 10, 6, 17, 17, 64, 50, 49, 135, 87, 92, 156, 65, 65, 103, 39, 38, 50, 232, 33, 7, 22, 17, 18, 50, 33, 34, 86, 54, 51, 65, 19, 19, 16, 1, 7, 5, 33, 6, 20, 16, 15, 46, 32, 31, 84, 55, 51, 68, 21, 21, 20, 3, 2, 6, 2, 102, 223, 223, 8, 211, 76, 154, 71, 70, 123, 47, 46, 54, 2, 2, 49, 44, 45, 124, 72, 72, 159, 80, 212, 75, 152, 70, 71, 123, 46, 47, 55, 2, 2, 48, 44, 44, 123, 72, 72, 160, 1, 39, 215, 43, 96, 46, 47, 84, 31, 31, 35, 2, 2, 43, 34, 34, 86, 45, 45, 86, 35, 215, 43, 95, 46, 46, 83, 32, 31, 35, 2, 2, 42, 33, 33, 84, 44, 45, 88, 0, 0, 1, 255, 169, 0, 0, 4, 37, 5, 176, 0, 6, 0, 0, 65, 19, 33, 3, 33, 1, 33, 2, 169, 101, 1, 23, 183, 254, 235, 253, 80, 1, 38, 4, 52, 251, 204, 5, 176, 250, 80, 0, 0, 3, 0, 13, 0, 0, 4, 154, 5, 176, 0, 3, 0, 7, 0, 11, 0, 0, 119, 7, 33, 55, 1, 7, 33, 55, 1, 7, 33, 55, 52, 39, 3, 179, 40, 253, 33, 39, 2, 223, 39, 253, 52, 40, 3, 126, 40, 226, 226, 226, 2, 111, 219, 219, 2, 95, 228, 228, 0, 1, 0, 13, 0, 0, 4, 188, 5, 176, 0, 7, 0, 0, 97, 19, 33, 3, 33, 19, 33, 3, 3, 191, 253, 252, 77, 252, 1, 18, 213, 1, 142, 213, 5, 176, 250, 80, 4, 204, 251, 52, 0, 1, 0, 3, 0, 1, 4, 207, 5, 176, 0, 12, 0, 0, 65, 55, 1, 33, 55, 33, 7, 1, 1, 7, 33, 55, 33, 3, 86, 1, 254, 236, 2, 100, 40, 252, 49, 25, 1, 80, 253, 232, 28, 3, 236, 39, 253, 140, 2, 213, 18, 1, 229, 228, 140, 253, 197, 253, 186, 162, 224, 0, 0, 3, 0, 75, 0, 0, 4, 230, 5, 176, 0, 29, 0, 42, 0, 55, 0, 0, 65, 55, 33, 7, 6, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 7, 33, 55, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 1, 54, 54, 55, 54, 54, 55, 3, 38, 38, 39, 38, 38, 37, 6, 6, 7, 6, 6, 7, 19, 22, 22, 23, 22, 22, 3, 121, 41, 254, 238, 40, 112, 186, 69, 69, 85, 11, 9, 36, 45, 45, 144, 98, 39, 1, 17, 39, 110, 185, 69, 69, 85, 11, 9, 34, 44, 45, 143, 253, 133, 7, 34, 29, 28, 82, 54, 114, 45, 52, 13, 13, 2, 2, 115, 7, 34, 28, 29, 80, 52, 114, 45, 51, 12, 12, 1, 4, 234, 198, 196, 12, 91, 72, 72, 191, 111, 94, 175, 70, 70, 96, 15, 191, 189, 12, 88, 71, 70, 187, 110, 94, 177, 72, 72, 99, 253, 236, 54, 98, 41, 40, 60, 16, 253, 183, 16, 58, 38, 37, 85, 61, 52, 94, 39, 39, 57, 15, 2, 72, 17, 62, 39, 40, 88, 0, 0, 1, 0, 108, 0, 0, 5, 75, 5, 176, 0, 35, 0, 0, 65, 19, 33, 3, 38, 38, 39, 38, 54, 55, 19, 33, 3, 6, 22, 23, 22, 22, 23, 3, 33, 19, 54, 54, 55, 54, 54, 55, 19, 33, 3, 6, 6, 7, 6, 6, 3, 5, 159, 254, 239, 159, 48, 49, 9, 10, 4, 6, 95, 254, 238, 95, 12, 27, 43, 42, 146, 107, 67, 1, 17, 67, 115, 177, 64, 63, 78, 16, 96, 254, 237, 96, 8, 27, 24, 24, 74, 2, 60, 3, 116, 252, 142, 19, 70, 44, 43, 95, 44, 2, 55, 253, 202, 99, 184, 73, 74, 99, 15, 254, 166, 1, 89, 14, 91, 71, 71, 187, 111, 2, 54, 253, 202, 52, 100, 42, 43, 64, 0, 1, 255, 248, 0, 0, 4, 147, 5, 198, 0, 74, 0, 0, 65, 3, 33, 55, 5, 54, 54, 55, 54, 54, 55, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 5, 7, 33, 19, 38, 38, 39, 38, 52, 55, 54, 54, 55, 55, 54, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 23, 22, 6, 7, 7, 6, 6, 7, 6, 6, 2, 84, 44, 1, 201, 41, 254, 244, 78, 127, 48, 47, 62, 12, 7, 8, 10, 19, 20, 69, 50, 51, 133, 84, 88, 152, 64, 64, 103, 38, 39, 50, 11, 6, 13, 31, 42, 22, 56, 34, 254, 253, 41, 1, 201, 44, 38, 43, 9, 10, 5, 4, 14, 4, 6, 5, 19, 15, 15, 44, 30, 30, 78, 50, 46, 60, 18, 18, 15, 2, 1, 6, 4, 7, 8, 24, 23, 28, 96, 1, 15, 254, 241, 228, 4, 48, 126, 75, 74, 168, 90, 51, 74, 148, 68, 68, 119, 45, 44, 52, 2, 2, 46, 42, 43, 119, 69, 70, 154, 79, 51, 107, 202, 91, 45, 88, 41, 3, 228, 1, 16, 20, 76, 49, 48, 109, 53, 52, 93, 32, 52, 38, 90, 44, 44, 82, 31, 30, 34, 2, 2, 42, 32, 33, 82, 42, 43, 81, 31, 54, 62, 143, 66, 85, 143, 0, 2, 0, 82, 255, 235, 4, 58, 4, 80, 0, 55, 0, 87, 0, 0, 65, 35, 7, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 22, 22, 23, 22, 22, 51, 22, 54, 55, 39, 6, 6, 39, 38, 38, 39, 38, 38, 53, 52, 54, 55, 37, 55, 54, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 23, 3, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 39, 38, 54, 4, 58, 193, 80, 18, 45, 26, 34, 79, 44, 77, 126, 50, 49, 76, 27, 26, 34, 8, 2, 6, 3, 11, 12, 46, 37, 37, 105, 70, 57, 97, 42, 26, 48, 22, 13, 46, 30, 29, 70, 37, 32, 58, 27, 2, 11, 20, 11, 20, 19, 3, 1, 1, 3, 1, 253, 176, 2, 4, 15, 13, 13, 37, 27, 26, 69, 45, 26, 47, 20, 17, 30, 12, 94, 16, 34, 18, 25, 57, 32, 38, 49, 15, 16, 13, 1, 2, 4, 4, 58, 118, 29, 47, 17, 21, 23, 1, 2, 47, 43, 42, 113, 65, 64, 136, 64, 22, 57, 122, 58, 58, 104, 40, 40, 48, 1, 1, 29, 28, 16, 43, 25, 37, 53, 16, 17, 16, 1, 12, 12, 212, 2, 4, 2, 1, 24, 16, 5, 12, 5, 12, 23, 10, 185, 21, 35, 81, 40, 39, 72, 27, 28, 33, 1, 1, 10, 11, 8, 26, 18, 253, 238, 15, 24, 9, 13, 12, 1, 1, 31, 24, 25, 63, 33, 33, 64, 0, 2, 255, 235, 254, 110, 4, 136, 5, 199, 0, 38, 0, 78, 0, 0, 65, 38, 6, 7, 6, 6, 7, 3, 33, 19, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 3, 39, 7, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 19, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 2, 241, 99, 180, 70, 71, 94, 14, 246, 1, 14, 88, 24, 49, 25, 40, 87, 45, 102, 173, 64, 64, 78, 8, 4, 17, 22, 23, 73, 51, 48, 83, 32, 32, 39, 5, 7, 58, 55, 55, 152, 189, 63, 30, 114, 48, 66, 19, 19, 12, 6, 7, 47, 35, 36, 90, 51, 30, 61, 28, 22, 42, 18, 133, 7, 40, 31, 30, 79, 48, 39, 58, 19, 18, 15, 4, 5, 30, 24, 29, 83, 5, 197, 2, 62, 58, 59, 163, 99, 250, 96, 1, 206, 15, 26, 9, 15, 16, 1, 2, 62, 59, 58, 166, 102, 55, 103, 45, 45, 72, 24, 26, 65, 40, 40, 95, 57, 93, 143, 49, 48, 52, 253, 150, 1, 205, 1, 2, 38, 31, 31, 80, 44, 51, 84, 29, 30, 32, 8, 10, 7, 23, 16, 3, 7, 44, 80, 30, 29, 33, 1, 1, 30, 24, 25, 66, 37, 45, 74, 27, 32, 35, 0, 0, 1, 0, 127, 254, 95, 4, 236, 4, 58, 0, 10, 0, 0, 65, 1, 7, 39, 3, 33, 19, 3, 33, 19, 1, 3, 199, 254, 114, 30, 1, 137, 254, 238, 244, 79, 1, 15, 73, 2, 112, 4, 58, 253, 1, 73, 67, 3, 5, 251, 235, 254, 58, 1, 166, 4, 53, 0, 0, 2, 0, 64, 255, 233, 4, 94, 6, 37, 0, 63, 0, 92, 0, 0, 65, 6, 22, 23, 22, 22, 23, 7, 6, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 38, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 51, 54, 22, 23, 55, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 19, 55, 54, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 1, 87, 2, 15, 15, 18, 56, 37, 11, 82, 136, 51, 52, 64, 10, 2, 10, 50, 57, 57, 175, 114, 121, 203, 77, 76, 97, 14, 2, 11, 46, 50, 51, 152, 94, 20, 49, 20, 11, 17, 5, 4, 2, 3, 7, 38, 27, 26, 59, 28, 60, 113, 56, 60, 36, 73, 37, 37, 77, 39, 78, 152, 60, 60, 78, 3, 2, 5, 23, 19, 18, 51, 32, 32, 78, 45, 54, 75, 23, 22, 16, 5, 3, 9, 43, 36, 37, 105, 70, 66, 80, 19, 20, 8, 4, 219, 38, 69, 31, 35, 59, 22, 21, 16, 80, 57, 58, 147, 82, 21, 110, 190, 71, 71, 83, 2, 3, 83, 74, 73, 201, 116, 21, 107, 175, 70, 70, 108, 40, 9, 23, 17, 9, 21, 12, 10, 22, 13, 31, 42, 13, 13, 12, 1, 34, 20, 183, 15, 28, 11, 11, 14, 1, 1, 37, 40, 41, 125, 252, 221, 20, 37, 81, 39, 38, 68, 25, 24, 24, 6, 7, 68, 47, 47, 107, 45, 19, 60, 122, 48, 49, 59, 2, 2, 62, 48, 47, 114, 0, 0, 1, 0, 75, 255, 235, 4, 138, 4, 79, 0, 88, 0, 0, 83, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 33, 6, 6, 7, 6, 6, 39, 34, 38, 39, 38, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 55, 54, 54, 51, 23, 55, 35, 38, 38, 39, 38, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 5, 52, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 6, 6, 7, 6, 6, 78, 3, 41, 38, 37, 99, 55, 54, 110, 49, 79, 172, 75, 82, 118, 8, 254, 240, 9, 58, 38, 39, 84, 35, 29, 76, 33, 16, 27, 9, 10, 8, 3, 3, 19, 14, 13, 36, 20, 39, 89, 39, 211, 33, 238, 27, 70, 29, 18, 29, 7, 4, 3, 3, 7, 54, 36, 36, 81, 34, 30, 70, 30, 29, 40, 1, 1, 12, 81, 64, 64, 157, 77, 86, 203, 82, 76, 89, 3, 1, 23, 21, 21, 55, 32, 48, 90, 34, 35, 43, 1, 42, 63, 95, 35, 35, 48, 14, 14, 13, 1, 1, 29, 34, 38, 137, 103, 41, 52, 14, 15, 10, 1, 10, 14, 7, 19, 12, 13, 33, 21, 24, 37, 15, 14, 21, 8, 14, 8, 1, 188, 1, 6, 11, 7, 22, 16, 10, 25, 15, 41, 51, 15, 14, 9, 9, 12, 13, 47, 37, 1, 89, 124, 40, 39, 37, 2, 2, 32, 41, 38, 122, 92, 38, 64, 27, 27, 43, 16, 17, 44, 31, 32, 85, 0, 0, 1, 0, 62, 254, 122, 4, 162, 5, 176, 0, 56, 0, 0, 69, 54, 38, 39, 38, 38, 39, 39, 38, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 55, 1, 55, 33, 7, 33, 5, 6, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 23, 54, 54, 55, 54, 54, 3, 120, 3, 39, 35, 35, 91, 49, 173, 32, 46, 15, 21, 12, 6, 10, 68, 48, 48, 112, 55, 1, 210, 30, 252, 64, 40, 2, 73, 254, 244, 70, 146, 61, 62, 86, 9, 7, 37, 40, 39, 117, 72, 160, 19, 33, 11, 11, 11, 4, 5, 23, 16, 16, 36, 17, 137, 42, 88, 37, 36, 50, 46, 58, 82, 29, 28, 37, 12, 39, 8, 25, 18, 23, 68, 45, 77, 122, 52, 52, 92, 47, 1, 162, 170, 224, 247, 60, 128, 72, 72, 166, 100, 77, 121, 45, 46, 60, 16, 32, 4, 14, 10, 11, 30, 21, 26, 46, 22, 22, 39, 18, 117, 28, 74, 45, 44, 99, 0, 0, 1, 0, 20, 254, 97, 4, 63, 4, 79, 0, 31, 0, 0, 65, 7, 3, 33, 19, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 3, 33, 19, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 1, 203, 251, 188, 1, 16, 140, 24, 53, 27, 29, 63, 34, 44, 60, 17, 17, 11, 5, 187, 1, 17, 186, 9, 23, 36, 36, 124, 92, 68, 118, 50, 29, 53, 23, 4, 59, 1, 251, 198, 3, 24, 21, 31, 11, 11, 11, 1, 2, 29, 25, 26, 70, 41, 251, 182, 4, 73, 83, 151, 58, 57, 69, 2, 1, 39, 37, 20, 53, 30, 0, 3, 0, 152, 255, 232, 4, 102, 5, 199, 0, 37, 0, 58, 0, 79, 0, 0, 65, 19, 54, 38, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 3, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 39, 7, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 39, 38, 54, 63, 3, 54, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 23, 22, 6, 7, 7, 4, 28, 65, 9, 9, 19, 15, 53, 37, 44, 121, 79, 85, 140, 56, 57, 89, 29, 25, 35, 9, 64, 8, 6, 16, 15, 58, 44, 44, 119, 76, 120, 182, 64, 31, 51, 20, 19, 27, 245, 24, 3, 10, 6, 7, 19, 13, 26, 80, 60, 43, 53, 14, 13, 8, 2, 1, 5, 3, 24, 36, 18, 4, 11, 8, 10, 37, 25, 24, 64, 41, 27, 41, 15, 16, 19, 6, 11, 4, 5, 18, 2, 10, 1, 148, 72, 144, 65, 52, 92, 34, 41, 49, 2, 2, 44, 41, 43, 116, 67, 56, 123, 63, 254, 107, 67, 132, 59, 60, 102, 38, 38, 44, 2, 3, 88, 76, 38, 89, 48, 48, 105, 165, 160, 24, 49, 23, 25, 47, 20, 40, 47, 2, 2, 33, 26, 21, 51, 27, 28, 58, 27, 160, 215, 129, 27, 55, 27, 37, 66, 22, 21, 23, 1, 1, 16, 12, 13, 36, 20, 41, 96, 42, 129, 0, 1, 0, 217, 255, 234, 3, 199, 4, 58, 0, 23, 0, 0, 65, 7, 33, 3, 6, 22, 23, 22, 22, 23, 22, 54, 55, 39, 6, 6, 7, 34, 38, 39, 38, 38, 55, 19, 1, 1, 40, 1, 19, 77, 18, 33, 39, 39, 127, 89, 68, 119, 56, 24, 36, 74, 42, 37, 46, 11, 12, 6, 9, 117, 4, 58, 227, 254, 44, 109, 147, 48, 49, 53, 2, 1, 35, 40, 203, 19, 25, 1, 20, 19, 19, 61, 52, 2, 188, 0, 0, 1, 255, 177, 255, 239, 4, 19, 6, 5, 0, 44, 0, 0, 65, 38, 6, 7, 7, 54, 54, 23, 22, 22, 23, 22, 22, 23, 23, 1, 33, 1, 55, 19, 22, 22, 23, 22, 22, 23, 50, 54, 55, 55, 6, 6, 39, 38, 38, 39, 38, 38, 39, 3, 38, 38, 39, 38, 38, 1, 153, 38, 76, 37, 16, 20, 40, 20, 34, 50, 18, 17, 22, 7, 15, 253, 204, 1, 47, 1, 14, 57, 80, 13, 51, 38, 38, 102, 64, 20, 38, 19, 29, 11, 24, 11, 29, 36, 12, 12, 13, 4, 187, 14, 51, 37, 38, 96, 6, 4, 1, 11, 10, 210, 2, 4, 2, 2, 37, 27, 27, 63, 28, 60, 251, 210, 2, 51, 150, 254, 71, 58, 104, 39, 40, 47, 1, 5, 5, 220, 1, 3, 2, 3, 38, 26, 26, 57, 22, 3, 115, 53, 98, 38, 37, 46, 0, 1, 0, 132, 254, 118, 4, 176, 5, 197, 0, 93, 0, 0, 65, 55, 38, 38, 35, 34, 6, 7, 6, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 6, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 23, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 39, 38, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 51, 23, 55, 35, 34, 38, 39, 38, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 55, 54, 54, 51, 50, 22, 4, 110, 66, 70, 145, 74, 63, 131, 62, 63, 112, 42, 43, 52, 4, 2, 27, 25, 25, 70, 41, 74, 132, 51, 52, 66, 6, 12, 120, 103, 50, 115, 60, 57, 16, 32, 12, 11, 12, 3, 4, 23, 15, 15, 36, 17, 127, 42, 90, 38, 37, 51, 3, 3, 39, 34, 35, 92, 50, 92, 46, 92, 35, 35, 38, 8, 10, 86, 61, 60, 145, 70, 126, 40, 159, 24, 59, 29, 30, 55, 19, 20, 19, 6, 5, 25, 19, 15, 39, 22, 46, 102, 42, 55, 104, 4, 186, 216, 25, 26, 16, 18, 19, 60, 43, 44, 115, 74, 47, 79, 31, 32, 49, 17, 23, 65, 47, 48, 126, 83, 145, 167, 48, 25, 38, 18, 17, 5, 14, 10, 10, 29, 20, 26, 47, 22, 22, 39, 18, 115, 27, 74, 44, 44, 101, 54, 60, 81, 28, 27, 35, 13, 23, 11, 32, 27, 26, 78, 57, 82, 104, 30, 29, 22, 1, 230, 4, 5, 5, 20, 17, 16, 49, 35, 28, 43, 16, 14, 21, 7, 16, 8, 23, 0, 0, 1, 0, 122, 255, 236, 4, 223, 4, 58, 0, 29, 0, 0, 65, 55, 33, 7, 51, 3, 33, 19, 51, 3, 6, 22, 23, 22, 22, 23, 22, 54, 55, 39, 6, 6, 35, 34, 38, 39, 38, 54, 55, 19, 4, 185, 38, 251, 213, 37, 130, 151, 1, 16, 150, 245, 92, 6, 17, 28, 28, 99, 75, 57, 101, 49, 26, 23, 43, 24, 27, 27, 5, 6, 2, 2, 92, 3, 100, 214, 214, 252, 156, 3, 100, 253, 206, 70, 117, 43, 43, 50, 1, 2, 29, 29, 193, 9, 12, 18, 15, 15, 40, 22, 2, 36, 0, 2, 255, 208, 254, 96, 4, 57, 4, 81, 0, 33, 0, 62, 0, 0, 65, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 3, 33, 19, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 37, 7, 6, 6, 7, 6, 6, 39, 34, 38, 39, 38, 38, 39, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 23, 22, 6, 4, 47, 3, 7, 7, 16, 17, 59, 45, 46, 122, 79, 118, 195, 72, 73, 94, 16, 170, 1, 15, 100, 19, 43, 24, 40, 92, 50, 76, 126, 51, 50, 78, 28, 28, 35, 254, 252, 2, 7, 35, 31, 32, 95, 66, 30, 54, 23, 26, 42, 14, 45, 9, 38, 32, 31, 92, 65, 42, 56, 17, 17, 16, 2, 2, 4, 2, 5, 22, 68, 136, 62, 62, 107, 40, 39, 47, 2, 3, 80, 72, 72, 194, 111, 252, 32, 2, 14, 25, 40, 16, 25, 25, 1, 2, 42, 38, 38, 104, 61, 60, 132, 87, 21, 56, 114, 45, 46, 57, 2, 11, 11, 13, 42, 30, 250, 52, 115, 48, 47, 61, 2, 2, 35, 28, 28, 71, 37, 37, 73, 0, 0, 1, 0, 62, 254, 83, 4, 50, 4, 81, 0, 66, 0, 0, 65, 38, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 23, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 38, 38, 39, 38, 38, 55, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 23, 54, 38, 39, 38, 38, 2, 142, 121, 201, 75, 75, 93, 13, 4, 10, 46, 53, 53, 161, 105, 20, 52, 23, 22, 28, 5, 5, 37, 26, 26, 60, 28, 106, 60, 122, 50, 49, 65, 2, 2, 30, 27, 27, 72, 40, 41, 85, 39, 63, 80, 21, 22, 11, 7, 4, 8, 40, 35, 34, 101, 69, 41, 65, 23, 28, 26, 2, 255, 4, 58, 55, 55, 156, 4, 78, 3, 85, 75, 75, 202, 115, 31, 107, 174, 65, 66, 87, 19, 4, 9, 10, 10, 34, 29, 32, 56, 23, 23, 34, 11, 158, 25, 69, 46, 46, 116, 72, 50, 76, 28, 28, 38, 14, 13, 18, 7, 12, 54, 40, 39, 101, 60, 30, 59, 118, 47, 46, 57, 2, 1, 22, 20, 25, 78, 50, 1, 97, 155, 54, 54, 59, 0, 0, 2, 0, 54, 255, 232, 4, 184, 4, 59, 0, 28, 0, 54, 0, 0, 65, 55, 37, 34, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 55, 54, 38, 39, 38, 38, 39, 1, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 4, 144, 40, 253, 197, 119, 197, 74, 74, 92, 14, 2, 11, 40, 51, 51, 167, 117, 113, 191, 72, 71, 89, 12, 2, 5, 19, 21, 13, 38, 22, 253, 183, 2, 7, 38, 33, 33, 96, 66, 60, 68, 15, 15, 2, 5, 2, 10, 54, 56, 28, 71, 45, 65, 71, 16, 16, 1, 3, 88, 226, 1, 81, 71, 71, 196, 115, 22, 107, 195, 75, 76, 92, 3, 3, 78, 70, 69, 189, 109, 22, 58, 107, 49, 33, 63, 31, 254, 182, 21, 56, 113, 45, 45, 55, 2, 2, 61, 45, 45, 105, 46, 21, 74, 158, 48, 25, 27, 1, 2, 64, 48, 48, 111, 0, 0, 1, 0, 106, 255, 234, 4, 64, 4, 58, 0, 25, 0, 0, 65, 55, 33, 7, 33, 3, 6, 22, 23, 22, 22, 23, 22, 54, 55, 39, 6, 6, 35, 34, 38, 39, 38, 38, 55, 19, 4, 23, 41, 252, 82, 40, 1, 84, 77, 9, 24, 37, 37, 124, 92, 64, 117, 57, 10, 38, 76, 42, 41, 46, 11, 11, 1, 4, 77, 3, 83, 231, 231, 254, 44, 86, 145, 54, 54, 62, 2, 2, 25, 29, 211, 14, 22, 27, 24, 23, 62, 36, 1, 216, 0, 1, 0, 85, 255, 233, 4, 62, 4, 60, 0, 36, 0, 0, 65, 33, 3, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 55, 54, 2, 39, 39, 22, 18, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 1, 221, 254, 240, 100, 20, 47, 53, 52, 165, 110, 84, 140, 57, 56, 94, 32, 37, 47, 11, 16, 10, 40, 254, 31, 6, 18, 9, 38, 36, 32, 96, 67, 55, 64, 16, 16, 6, 7, 4, 58, 253, 169, 121, 188, 62, 62, 70, 2, 1, 39, 36, 37, 105, 62, 70, 160, 85, 127, 1, 6, 123, 1, 125, 254, 252, 128, 58, 137, 55, 52, 70, 1, 1, 47, 36, 36, 90, 45, 0, 2, 0, 59, 254, 34, 4, 168, 4, 72, 0, 55, 0, 77, 0, 0, 69, 3, 33, 19, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 3, 38, 38, 39, 38, 38, 39, 38, 54, 55, 54, 54, 55, 54, 54, 55, 39, 6, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 22, 22, 37, 19, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 6, 6, 1, 139, 88, 1, 16, 88, 114, 181, 66, 65, 79, 13, 7, 6, 13, 14, 52, 39, 40, 108, 71, 66, 112, 42, 43, 54, 8, 100, 22, 32, 11, 8, 12, 3, 7, 6, 7, 9, 35, 24, 25, 65, 37, 173, 63, 101, 37, 37, 47, 9, 11, 22, 38, 17, 48, 30, 36, 90, 1, 99, 105, 3, 11, 9, 7, 19, 12, 22, 25, 6, 6, 1, 1, 2, 6, 1, 6, 31, 26, 27, 75, 6, 254, 40, 1, 211, 18, 99, 75, 75, 194, 113, 58, 124, 59, 58, 105, 40, 39, 48, 1, 1, 43, 39, 40, 109, 63, 253, 197, 15, 37, 22, 17, 39, 20, 45, 94, 43, 53, 101, 46, 48, 88, 40, 156, 48, 119, 68, 68, 149, 79, 96, 184, 76, 35, 64, 26, 30, 46, 217, 2, 70, 14, 26, 9, 7, 9, 39, 30, 31, 75, 34, 34, 54, 11, 55, 101, 44, 44, 71, 0, 1, 0, 59, 254, 34, 4, 200, 4, 60, 0, 45, 0, 0, 65, 33, 3, 38, 38, 39, 38, 38, 53, 52, 54, 55, 19, 33, 3, 6, 6, 23, 22, 22, 23, 22, 22, 23, 3, 33, 19, 54, 54, 55, 54, 54, 55, 54, 38, 39, 39, 22, 6, 7, 6, 6, 7, 6, 6, 7, 3, 77, 254, 241, 154, 31, 38, 10, 5, 7, 6, 5, 83, 254, 239, 83, 6, 2, 3, 4, 23, 20, 37, 137, 108, 88, 1, 15, 88, 122, 190, 68, 67, 83, 15, 17, 2, 30, 246, 17, 7, 19, 9, 37, 29, 30, 84, 58, 4, 58, 252, 171, 21, 63, 36, 27, 55, 29, 33, 65, 29, 1, 239, 254, 20, 47, 92, 44, 51, 95, 43, 81, 119, 25, 254, 41, 1, 211, 18, 105, 80, 79, 205, 119, 121, 248, 119, 1, 121, 247, 121, 60, 112, 48, 48, 78, 25, 0, 0, 1, 0, 23, 255, 233, 4, 143, 4, 60, 0, 88, 0, 0, 65, 33, 6, 2, 7, 6, 6, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 55, 54, 54, 53, 52, 38, 39, 39, 22, 2, 7, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 54, 55, 54, 54, 55, 19, 33, 3, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 54, 55, 54, 54, 55, 54, 54, 55, 54, 54, 1, 233, 254, 244, 71, 96, 17, 6, 8, 4, 3, 27, 30, 29, 96, 71, 46, 76, 31, 31, 52, 22, 10, 37, 27, 27, 69, 42, 74, 114, 42, 41, 58, 20, 19, 24, 7, 7, 8, 18, 22, 253, 28, 1, 16, 2, 5, 5, 5, 16, 12, 12, 34, 23, 21, 22, 4, 5, 1, 3, 2, 5, 2, 54, 254, 227, 54, 2, 5, 6, 6, 18, 13, 14, 37, 25, 16, 14, 1, 1, 5, 5, 4, 9, 1, 10, 37, 24, 24, 55, 4, 57, 121, 254, 253, 140, 50, 123, 64, 65, 122, 48, 49, 60, 1, 1, 30, 26, 26, 68, 37, 39, 67, 24, 25, 29, 1, 3, 55, 47, 46, 124, 67, 66, 133, 56, 55, 110, 55, 73, 147, 72, 1, 127, 254, 253, 128, 14, 66, 41, 41, 89, 36, 37, 47, 1, 1, 38, 29, 28, 69, 32, 32, 49, 10, 1, 90, 254, 166, 13, 55, 33, 34, 70, 27, 28, 33, 4, 2, 51, 37, 37, 88, 40, 39, 60, 10, 68, 132, 65, 64, 126, 0, 0, 2, 0, 110, 255, 233, 4, 193, 5, 199, 0, 58, 0, 81, 0, 0, 65, 55, 6, 6, 7, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 19, 5, 3, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 55, 54, 54, 1, 55, 54, 54, 55, 54, 54, 23, 50, 22, 23, 22, 22, 23, 22, 6, 7, 3, 38, 38, 39, 38, 38, 4, 176, 17, 26, 52, 26, 41, 11, 5, 13, 7, 22, 13, 37, 123, 87, 89, 146, 54, 54, 66, 8, 2, 7, 44, 47, 47, 139, 89, 18, 8, 32, 27, 27, 78, 52, 51, 72, 21, 22, 15, 5, 42, 254, 252, 41, 11, 47, 53, 53, 158, 100, 109, 185, 70, 70, 91, 16, 16, 31, 60, 254, 36, 3, 3, 17, 15, 15, 42, 29, 13, 20, 7, 8, 10, 3, 5, 2, 2, 50, 41, 56, 16, 16, 11, 2, 69, 234, 6, 11, 5, 241, 64, 109, 45, 26, 47, 21, 57, 71, 2, 3, 60, 54, 54, 147, 84, 23, 92, 162, 65, 66, 94, 24, 100, 44, 88, 35, 35, 43, 2, 1, 42, 34, 33, 86, 47, 1, 2, 1, 255, 0, 98, 171, 64, 64, 76, 2, 3, 69, 63, 63, 177, 105, 99, 6, 14, 1, 240, 24, 24, 50, 20, 19, 25, 1, 8, 6, 7, 19, 11, 22, 48, 20, 254, 228, 19, 54, 34, 34, 79, 0, 0, 1, 0, 204, 0, 0, 5, 107, 5, 203, 0, 46, 0, 0, 65, 3, 7, 53, 3, 38, 38, 39, 38, 38, 39, 38, 6, 7, 7, 54, 54, 51, 22, 22, 23, 22, 22, 23, 19, 3, 33, 19, 1, 54, 54, 55, 54, 54, 51, 50, 22, 23, 55, 38, 38, 39, 38, 6, 7, 6, 6, 3, 136, 210, 26, 80, 10, 46, 31, 32, 88, 59, 30, 59, 28, 1, 12, 24, 13, 14, 25, 10, 13, 19, 5, 161, 90, 1, 17, 82, 1, 118, 12, 12, 13, 19, 62, 38, 11, 23, 11, 47, 32, 64, 35, 66, 107, 43, 43, 67, 4, 175, 254, 109, 66, 66, 1, 152, 52, 97, 38, 38, 47, 2, 1, 10, 11, 223, 2, 3, 1, 7, 6, 8, 26, 18, 253, 107, 253, 255, 1, 218, 2, 125, 20, 20, 22, 32, 39, 3, 3, 218, 12, 13, 1, 1, 47, 39, 40, 104, 0, 2, 0, 5, 255, 234, 5, 46, 4, 58, 0, 40, 0, 86, 0, 0, 65, 55, 33, 7, 55, 6, 6, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 55, 54, 54, 39, 1, 6, 6, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 55, 54, 54, 55, 55, 33, 7, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 52, 55, 54, 54, 55, 54, 54, 55, 5, 22, 6, 5, 8, 38, 251, 36, 36, 111, 59, 73, 14, 6, 1, 9, 9, 39, 32, 32, 92, 63, 49, 79, 33, 33, 55, 23, 10, 40, 29, 28, 73, 44, 66, 104, 40, 40, 59, 20, 20, 25, 7, 14, 4, 2, 254, 233, 2, 4, 4, 5, 14, 10, 11, 30, 21, 24, 26, 6, 6, 1, 2, 2, 6, 1, 30, 254, 227, 30, 2, 7, 6, 6, 20, 14, 15, 41, 28, 16, 18, 4, 4, 2, 2, 6, 1, 14, 77, 53, 1, 218, 2, 1, 3, 113, 201, 200, 2, 108, 234, 121, 52, 104, 49, 49, 85, 32, 32, 38, 1, 1, 31, 27, 27, 71, 39, 41, 70, 25, 26, 30, 1, 2, 34, 32, 31, 87, 51, 50, 112, 56, 113, 224, 114, 254, 60, 14, 45, 25, 26, 51, 21, 21, 26, 36, 29, 28, 68, 32, 32, 51, 11, 207, 207, 16, 56, 33, 34, 67, 27, 27, 31, 3, 2, 29, 22, 21, 51, 24, 23, 39, 10, 120, 233, 109, 2, 113, 225, 0, 0, 1, 0, 138, 255, 238, 4, 189, 5, 176, 0, 48, 0, 0, 65, 55, 33, 7, 33, 3, 33, 19, 54, 54, 51, 54, 50, 23, 22, 22, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 7, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 38, 38, 7, 34, 6, 7, 19, 4, 149, 40, 251, 245, 40, 1, 38, 213, 1, 18, 114, 7, 15, 7, 7, 15, 8, 28, 47, 18, 14, 23, 9, 20, 13, 5, 5, 30, 24, 27, 77, 51, 23, 102, 180, 69, 69, 86, 9, 8, 52, 54, 23, 55, 31, 44, 105, 58, 17, 30, 17, 74, 4, 204, 228, 228, 251, 52, 2, 108, 1, 1, 1, 1, 1, 12, 11, 8, 20, 13, 30, 79, 46, 46, 73, 25, 28, 32, 3, 213, 2, 55, 54, 54, 160, 108, 101, 162, 57, 24, 39, 14, 20, 21, 1, 3, 2, 1, 125, 0, 0, 1, 0, 83, 255, 234, 4, 169, 5, 199, 0, 67, 0, 0, 65, 5, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 39, 38, 54, 55, 55, 5, 55, 5, 55, 54, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 33, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 3, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 4, 64, 254, 241, 11, 44, 34, 35, 94, 61, 50, 67, 20, 21, 20, 2, 2, 7, 6, 6, 1, 194, 40, 254, 46, 5, 8, 21, 16, 18, 52, 37, 30, 76, 48, 62, 82, 24, 24, 19, 1, 1, 17, 3, 60, 57, 57, 171, 114, 86, 148, 61, 61, 99, 36, 39, 52, 13, 44, 9, 5, 16, 16, 70, 50, 51, 139, 89, 111, 194, 75, 75, 99, 1, 201, 2, 56, 95, 33, 34, 36, 2, 2, 37, 30, 30, 78, 42, 41, 84, 37, 34, 1, 227, 1, 29, 39, 85, 41, 47, 88, 29, 24, 27, 1, 2, 40, 35, 35, 95, 57, 109, 179, 65, 64, 72, 2, 1, 43, 40, 40, 112, 64, 70, 159, 82, 254, 229, 69, 136, 62, 72, 124, 43, 45, 53, 2, 2, 66, 63, 62, 178, 0, 2, 255, 195, 255, 254, 4, 103, 5, 176, 0, 49, 0, 64, 0, 0, 65, 33, 3, 6, 6, 7, 6, 6, 7, 6, 6, 7, 6, 6, 39, 39, 7, 51, 22, 54, 55, 54, 54, 55, 54, 54, 55, 54, 54, 55, 19, 51, 3, 51, 22, 54, 55, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 35, 7, 23, 22, 22, 23, 22, 6, 7, 6, 6, 7, 6, 6, 7, 35, 3, 137, 253, 181, 149, 4, 9, 8, 4, 12, 8, 6, 14, 8, 20, 55, 38, 17, 27, 31, 79, 121, 45, 45, 64, 22, 7, 14, 6, 9, 16, 6, 111, 130, 213, 249, 62, 108, 45, 50, 81, 28, 27, 33, 5, 7, 23, 35, 36, 123, 92, 8, 26, 15, 39, 43, 9, 9, 1, 4, 5, 23, 22, 23, 68, 48, 16, 5, 176, 252, 146, 26, 73, 39, 22, 45, 21, 17, 30, 14, 31, 38, 1, 2, 225, 2, 49, 43, 43, 116, 65, 23, 49, 24, 43, 85, 40, 2, 138, 251, 52, 1, 31, 29, 33, 97, 57, 54, 121, 61, 78, 162, 67, 67, 87, 3, 224, 1, 5, 52, 36, 36, 78, 29, 40, 91, 38, 39, 53, 1, 0, 0, 2, 255, 240, 255, 254, 4, 82, 5, 176, 0, 24, 0, 39, 0, 0, 65, 19, 35, 3, 51, 19, 51, 3, 33, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 7, 7, 19, 35, 3, 23, 23, 22, 22, 23, 22, 20, 7, 6, 6, 7, 6, 6, 7, 35, 1, 124, 107, 251, 252, 250, 107, 167, 107, 1, 0, 100, 158, 56, 56, 65, 8, 6, 23, 37, 34, 118, 85, 17, 97, 236, 107, 219, 9, 40, 43, 10, 10, 4, 5, 24, 23, 23, 69, 48, 8, 3, 72, 2, 104, 250, 80, 2, 102, 253, 154, 2, 80, 67, 67, 173, 92, 69, 166, 71, 69, 90, 5, 1, 2, 8, 253, 152, 128, 1, 5, 50, 34, 35, 77, 31, 40, 89, 37, 37, 50, 1, 0, 1, 0, 146, 0, 0, 4, 159, 5, 176, 0, 35, 0, 0, 65, 55, 33, 7, 33, 3, 33, 19, 22, 22, 23, 22, 22, 23, 22, 22, 23, 22, 22, 7, 3, 33, 19, 54, 38, 39, 38, 38, 39, 38, 38, 39, 38, 38, 35, 19, 4, 119, 40, 252, 27, 40, 1, 32, 213, 1, 18, 120, 7, 12, 6, 4, 9, 4, 31, 44, 14, 16, 9, 6, 75, 1, 18, 75, 10, 50, 53, 42, 112, 67, 13, 28, 14, 7, 15, 7, 68, 4, 204, 228, 228, 251, 52, 2, 140, 1, 1, 1, 1, 2, 1, 7, 25, 19, 24, 70, 47, 254, 59, 1, 196, 99, 156, 54, 42, 53, 12, 2, 3, 1, 1, 1, 1, 96, 0, 1, 0, 1, 254, 152, 4, 176, 5, 176, 0, 11, 0, 0, 83, 3, 33, 3, 33, 19, 33, 19, 33, 3, 33, 19, 254, 253, 1, 89, 63, 1, 20, 63, 1, 69, 253, 254, 237, 214, 254, 114, 214, 5, 176, 250, 80, 254, 152, 1, 104, 5, 176, 251, 50, 4, 206, 0, 0, 2, 0, 22, 255, 255, 4, 167, 5, 176, 0, 18, 0, 33, 0, 0, 65, 55, 33, 3, 33, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 39, 19, 3, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 35, 39, 4, 127, 40, 252, 108, 253, 1, 192, 110, 204, 81, 81, 104, 10, 9, 66, 63, 64, 176, 100, 143, 53, 92, 172, 49, 78, 27, 26, 23, 7, 8, 53, 40, 41, 104, 58, 145, 4, 204, 228, 250, 80, 1, 60, 60, 59, 177, 117, 108, 164, 56, 56, 59, 2, 1, 1, 54, 253, 232, 1, 2, 30, 27, 28, 78, 51, 60, 93, 32, 32, 34, 2, 0, 2, 255, 177, 254, 154, 4, 146, 5, 176, 0, 20, 0, 30, 0, 0, 65, 19, 35, 19, 33, 3, 6, 6, 7, 6, 6, 7, 6, 6, 7, 39, 3, 51, 19, 33, 3, 3, 19, 51, 3, 5, 54, 54, 55, 54, 54, 3, 153, 141, 105, 213, 253, 68, 140, 12, 22, 15, 16, 41, 30, 31, 85, 57, 48, 52, 230, 63, 2, 20, 62, 78, 86, 165, 174, 254, 204, 53, 73, 26, 25, 37, 254, 154, 2, 72, 4, 206, 253, 172, 56, 122, 61, 61, 118, 51, 52, 86, 28, 1, 253, 184, 1, 102, 254, 154, 4, 194, 1, 112, 252, 22, 4, 68, 155, 82, 81, 169, 0, 1, 255, 139, 0, 0, 5, 34, 5, 176, 0, 21, 0, 0, 65, 19, 33, 3, 1, 33, 3, 35, 19, 35, 3, 35, 3, 33, 19, 1, 33, 19, 51, 3, 51, 19, 2, 253, 33, 1, 21, 99, 1, 82, 254, 218, 231, 41, 113, 241, 110, 44, 21, 254, 233, 97, 254, 132, 1, 41, 242, 54, 108, 240, 106, 2, 76, 253, 180, 2, 248, 2, 184, 253, 151, 2, 105, 253, 152, 2, 104, 253, 100, 252, 236, 2, 77, 253, 179, 2, 76, 0, 0, 1, 0, 35, 255, 235, 4, 181, 5, 198, 0, 79, 0, 0, 65, 22, 22, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 37, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 37, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 35, 39, 7, 23, 22, 22, 23, 22, 22, 3, 23, 26, 21, 7, 8, 59, 42, 43, 103, 51, 46, 79, 29, 29, 32, 1, 254, 239, 3, 73, 65, 64, 173, 97, 100, 200, 84, 86, 118, 8, 5, 32, 36, 22, 59, 37, 52, 95, 38, 37, 48, 5, 8, 72, 66, 66, 175, 94, 95, 190, 77, 77, 103, 8, 1, 18, 9, 49, 35, 35, 85, 45, 43, 80, 29, 28, 30, 6, 7, 48, 36, 37, 94, 52, 178, 38, 205, 27, 49, 21, 18, 31, 2, 66, 26, 79, 54, 56, 82, 26, 26, 25, 1, 1, 27, 25, 25, 73, 48, 1, 104, 158, 53, 53, 55, 2, 1, 44, 52, 53, 168, 120, 68, 119, 47, 28, 47, 17, 24, 62, 40, 40, 100, 61, 106, 153, 50, 49, 47, 2, 2, 50, 51, 52, 156, 104, 1, 46, 70, 24, 23, 23, 1, 1, 22, 23, 23, 70, 48, 56, 80, 26, 26, 25, 1, 220, 1, 1, 8, 8, 6, 18, 0, 0, 1, 0, 3, 0, 0, 4, 180, 5, 176, 0, 9, 0, 0, 65, 1, 19, 33, 3, 33, 1, 3, 33, 19, 3, 155, 253, 216, 159, 254, 238, 253, 1, 24, 2, 40, 159, 1, 19, 253, 5, 176, 252, 111, 3, 145, 250, 80, 3, 144, 252, 112, 5, 176, 0, 1, 255, 196, 0, 0, 4, 196, 5, 176, 0, 30, 0, 0, 65, 33, 3, 6, 6, 7, 6, 6, 7, 6, 6, 7, 6, 6, 7, 39, 7, 51, 50, 54, 55, 54, 54, 55, 54, 54, 55, 19, 33, 3, 33, 4, 196, 252, 185, 134, 5, 11, 9, 10, 31, 25, 12, 29, 17, 20, 48, 28, 35, 27, 74, 93, 140, 52, 52, 73, 25, 25, 33, 12, 96, 1, 34, 213, 1, 19, 5, 176, 253, 6, 38, 98, 51, 52, 100, 39, 19, 31, 12, 13, 16, 1, 1, 225, 61, 53, 52, 140, 77, 77, 160, 74, 2, 22, 251, 52, 0, 1, 255, 251, 255, 232, 5, 75, 5, 176, 0, 26, 0, 0, 65, 3, 3, 33, 1, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 7, 22, 22, 23, 22, 54, 55, 54, 54, 55, 1, 33, 2, 106, 42, 136, 254, 228, 1, 50, 42, 18, 43, 25, 32, 77, 47, 36, 71, 34, 42, 53, 105, 55, 79, 131, 54, 54, 88, 36, 2, 193, 254, 203, 2, 177, 1, 0, 1, 255, 251, 231, 64, 30, 49, 18, 22, 23, 1, 1, 16, 12, 220, 13, 20, 1, 1, 45, 40, 39, 110, 65, 4, 157, 0, 0, 1, 0, 1, 254, 161, 4, 162, 5, 176, 0, 11, 0, 0, 83, 3, 33, 3, 51, 19, 35, 19, 33, 3, 33, 19, 254, 253, 3, 74, 61, 255, 118, 183, 214, 254, 236, 213, 254, 128, 214, 5, 176, 250, 80, 254, 161, 2, 64, 4, 207, 251, 50, 4, 206, 0, 0, 1, 0, 213, 0, 0, 4, 211, 5, 176, 0, 25, 0, 0, 65, 33, 3, 6, 6, 39, 38, 38, 39, 38, 54, 55, 19, 33, 3, 6, 22, 23, 22, 22, 51, 22, 54, 55, 3, 33, 4, 211, 254, 237, 123, 51, 102, 52, 54, 59, 12, 13, 1, 5, 74, 254, 238, 75, 12, 38, 49, 48, 157, 108, 51, 99, 48, 104, 1, 19, 5, 176, 253, 92, 11, 15, 2, 2, 44, 34, 34, 87, 45, 1, 198, 254, 59, 103, 174, 63, 64, 72, 1, 16, 14, 253, 212, 0, 0, 1, 255, 230, 0, 0, 5, 6, 5, 176, 0, 11, 0, 0, 65, 33, 3, 33, 19, 33, 3, 35, 19, 33, 3, 35, 1, 238, 254, 245, 253, 4, 35, 253, 254, 245, 214, 132, 214, 254, 253, 214, 134, 5, 176, 250, 80, 5, 176, 251, 50, 4, 206, 251, 50, 0, 0, 1, 255, 230, 254, 162, 5, 6, 5, 176, 0, 15, 0, 0, 65, 33, 3, 33, 3, 51, 19, 35, 19, 33, 3, 35, 19, 33, 3, 35, 1, 238, 254, 245, 253, 3, 146, 61, 251, 119, 126, 215, 254, 245, 214, 132, 214, 254, 253, 214, 134, 5, 176, 250, 80, 254, 162, 2, 61, 4, 209, 251, 50, 4, 206, 251, 50, 0, 0, 2, 0, 159, 255, 255, 4, 81, 5, 176, 0, 18, 0, 33, 0, 0, 83, 7, 51, 3, 33, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 39, 19, 3, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 39, 198, 39, 244, 215, 1, 119, 103, 187, 72, 72, 91, 9, 8, 55, 55, 56, 159, 96, 70, 101, 140, 99, 45, 62, 18, 18, 12, 5, 7, 36, 29, 32, 90, 56, 73, 5, 176, 217, 251, 41, 1, 57, 57, 56, 167, 108, 99, 157, 55, 54, 59, 3, 1, 2, 72, 252, 215, 1, 2, 31, 26, 27, 71, 42, 49, 80, 28, 32, 35, 1, 2, 0, 0, 3, 255, 223, 255, 254, 4, 243, 5, 176, 0, 16, 0, 31, 0, 35, 0, 0, 65, 19, 33, 3, 33, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 7, 23, 22, 22, 23, 22, 6, 7, 6, 6, 7, 6, 6, 7, 35, 5, 19, 33, 3, 1, 128, 103, 254, 245, 253, 1, 61, 99, 162, 59, 59, 71, 8, 6, 27, 36, 37, 122, 88, 79, 45, 33, 30, 5, 4, 4, 3, 4, 18, 17, 18, 56, 42, 38, 2, 226, 253, 254, 238, 253, 3, 94, 2, 82, 250, 80, 2, 67, 60, 59, 164, 96, 79, 149, 58, 58, 71, 3, 214, 2, 3, 47, 31, 31, 66, 22, 34, 80, 34, 35, 48, 2, 213, 5, 176, 250, 80, 0, 2, 0, 22, 255, 255, 4, 45, 5, 176, 0, 16, 0, 31, 0, 0, 65, 19, 33, 3, 33, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 7, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 35, 39, 1, 201, 93, 254, 237, 253, 1, 192, 110, 204, 81, 81, 104, 10, 9, 66, 63, 64, 176, 100, 182, 172, 49, 78, 27, 26, 23, 7, 8, 53, 40, 41, 104, 58, 145, 3, 150, 2, 26, 250, 80, 1, 60, 60, 59, 177, 117, 108, 164, 56, 56, 59, 2, 225, 1, 2, 30, 27, 28, 78, 51, 60, 93, 32, 32, 34, 2, 0, 0, 1, 0, 1, 255, 233, 4, 85, 5, 200, 0, 67, 0, 0, 65, 33, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 55, 19, 54, 38, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 37, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 23, 22, 6, 7, 7, 33, 7, 33, 7, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 1, 28, 254, 238, 9, 49, 55, 54, 167, 111, 133, 212, 78, 37, 62, 23, 26, 35, 9, 48, 9, 10, 19, 20, 69, 50, 51, 133, 83, 112, 199, 77, 77, 97, 9, 1, 15, 4, 39, 36, 35, 100, 66, 47, 66, 21, 20, 20, 3, 3, 6, 5, 7, 254, 148, 40, 1, 125, 8, 7, 21, 14, 11, 27, 16, 38, 114, 81, 58, 73, 19, 20, 8, 1, 228, 106, 182, 67, 68, 78, 3, 3, 93, 82, 40, 93, 51, 55, 121, 64, 1, 47, 74, 146, 66, 66, 113, 42, 41, 49, 2, 2, 76, 69, 69, 190, 111, 1, 61, 106, 39, 38, 43, 2, 2, 36, 29, 30, 75, 40, 41, 82, 35, 41, 227, 40, 38, 79, 36, 28, 51, 23, 53, 65, 4, 3, 51, 40, 39, 98, 0, 2, 255, 233, 255, 233, 4, 142, 5, 199, 0, 45, 0, 83, 0, 0, 65, 19, 54, 54, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 7, 35, 19, 35, 3, 51, 19, 51, 7, 6, 6, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 3, 3, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 52, 55, 54, 54, 55, 19, 54, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 6, 6, 4, 62, 71, 7, 2, 8, 8, 37, 34, 34, 100, 70, 72, 111, 43, 43, 61, 21, 22, 27, 8, 20, 85, 111, 244, 252, 243, 106, 84, 14, 7, 4, 6, 6, 34, 32, 31, 95, 69, 74, 116, 45, 44, 65, 23, 23, 29, 168, 76, 3, 5, 6, 6, 19, 15, 16, 46, 32, 25, 28, 5, 6, 3, 3, 8, 1, 76, 2, 6, 5, 5, 17, 15, 14, 42, 30, 28, 32, 8, 7, 1, 2, 3, 8, 1, 252, 1, 185, 55, 121, 58, 58, 105, 40, 40, 49, 2, 2, 45, 39, 40, 106, 59, 60, 124, 57, 128, 2, 123, 250, 80, 2, 92, 97, 52, 118, 58, 58, 107, 41, 41, 51, 2, 2, 43, 39, 38, 105, 60, 59, 127, 2, 24, 254, 1, 22, 58, 31, 31, 60, 23, 23, 27, 2, 2, 34, 26, 25, 63, 30, 29, 50, 14, 1, 255, 19, 56, 31, 30, 60, 24, 24, 28, 1, 2, 32, 24, 25, 60, 29, 30, 52, 0, 2, 255, 107, 0, 0, 4, 137, 5, 177, 0, 19, 0, 34, 0, 0, 97, 33, 19, 37, 34, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 1, 33, 1, 51, 1, 54, 54, 55, 54, 54, 51, 23, 3, 39, 38, 38, 39, 38, 38, 2, 121, 1, 20, 252, 254, 41, 106, 200, 79, 80, 103, 9, 6, 28, 33, 20, 57, 36, 254, 82, 1, 50, 1, 110, 210, 254, 162, 7, 53, 40, 39, 100, 56, 169, 77, 195, 58, 84, 24, 18, 14, 5, 176, 1, 49, 53, 53, 165, 117, 69, 124, 52, 32, 57, 24, 253, 106, 2, 61, 1, 175, 59, 85, 28, 27, 27, 2, 254, 72, 1, 2, 34, 33, 26, 73, 0, 0, 2, 0, 91, 255, 233, 4, 126, 6, 21, 0, 52, 0, 78, 0, 0, 65, 38, 6, 7, 54, 54, 55, 54, 54, 55, 54, 54, 55, 54, 54, 55, 35, 6, 6, 7, 6, 6, 7, 6, 6, 7, 6, 6, 7, 6, 6, 7, 7, 23, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 55, 54, 38, 39, 38, 38, 7, 22, 22, 23, 22, 22, 7, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 55, 54, 54, 55, 54, 54, 2, 193, 98, 165, 71, 28, 70, 45, 44, 111, 71, 81, 144, 55, 55, 69, 6, 221, 8, 48, 32, 33, 73, 34, 99, 157, 62, 62, 92, 32, 33, 43, 12, 5, 1, 3, 11, 41, 53, 52, 170, 117, 116, 194, 72, 72, 90, 12, 2, 9, 37, 46, 47, 151, 177, 59, 74, 20, 19, 10, 4, 2, 6, 37, 32, 32, 94, 64, 62, 74, 18, 19, 8, 5, 2, 6, 38, 33, 32, 92, 3, 254, 2, 75, 65, 64, 106, 41, 40, 55, 14, 16, 45, 40, 39, 121, 92, 39, 47, 14, 14, 14, 7, 20, 88, 62, 62, 153, 85, 85, 182, 90, 38, 2, 21, 108, 198, 76, 77, 94, 2, 2, 78, 70, 70, 192, 112, 21, 96, 179, 70, 69, 86, 222, 2, 50, 39, 40, 98, 49, 21, 56, 108, 42, 43, 51, 2, 2, 55, 42, 42, 103, 50, 21, 55, 103, 40, 39, 46, 0, 3, 0, 29, 255, 255, 4, 23, 4, 58, 0, 32, 0, 47, 0, 65, 0, 0, 115, 33, 22, 54, 55, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 37, 19, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 39, 19, 55, 23, 22, 22, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 29, 2, 7, 79, 162, 67, 33, 57, 20, 20, 24, 1, 1, 28, 26, 26, 72, 42, 41, 79, 32, 31, 40, 3, 3, 32, 29, 30, 81, 46, 46, 99, 46, 254, 91, 162, 247, 26, 49, 18, 17, 17, 5, 6, 37, 26, 27, 63, 31, 219, 72, 39, 179, 27, 54, 21, 6, 12, 5, 9, 8, 4, 6, 39, 26, 27, 61, 29, 1, 29, 36, 18, 49, 32, 31, 77, 46, 46, 75, 30, 29, 40, 11, 16, 42, 29, 29, 75, 49, 57, 88, 33, 32, 43, 14, 13, 12, 1, 1, 253, 137, 1, 1, 11, 12, 12, 41, 31, 35, 47, 13, 14, 12, 1, 1, 1, 163, 219, 1, 1, 8, 11, 4, 10, 5, 12, 34, 23, 33, 43, 12, 12, 10, 1, 0, 1, 0, 34, 0, 0, 4, 103, 4, 58, 0, 5, 0, 0, 65, 55, 33, 3, 33, 19, 4, 63, 40, 252, 119, 188, 1, 14, 149, 3, 88, 226, 251, 198, 3, 88, 0, 2, 255, 148, 254, 188, 4, 123, 4, 58, 0, 20, 0, 30, 0, 0, 119, 39, 3, 33, 19, 33, 3, 51, 19, 35, 19, 33, 3, 6, 6, 7, 6, 6, 7, 6, 6, 1, 55, 51, 3, 5, 54, 54, 55, 54, 54, 66, 99, 75, 1, 0, 57, 2, 120, 57, 252, 115, 150, 149, 253, 4, 69, 7, 14, 10, 11, 32, 25, 25, 73, 1, 213, 24, 225, 108, 254, 201, 36, 53, 20, 20, 29, 221, 3, 253, 220, 1, 68, 254, 188, 2, 35, 3, 91, 254, 146, 37, 98, 53, 53, 105, 42, 43, 58, 1, 233, 133, 253, 142, 3, 55, 121, 63, 63, 130, 0, 1, 255, 179, 0, 0, 4, 207, 4, 58, 0, 21, 0, 0, 65, 19, 33, 3, 1, 33, 3, 35, 19, 35, 3, 35, 3, 33, 19, 1, 33, 19, 51, 3, 51, 19, 2, 219, 54, 1, 3, 117, 1, 48, 254, 228, 194, 38, 76, 235, 76, 40, 47, 254, 248, 120, 254, 186, 1, 23, 194, 49, 78, 236, 76, 1, 154, 254, 102, 2, 55, 2, 3, 254, 101, 1, 155, 254, 102, 1, 154, 254, 19, 253, 179, 1, 155, 254, 101, 1, 154, 0, 0, 1, 0, 59, 255, 235, 4, 77, 4, 78, 0, 88, 0, 0, 65, 22, 22, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 33, 20, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 37, 54, 54, 55, 54, 54, 51, 22, 22, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 39, 7, 2, 80, 17, 37, 18, 14, 28, 12, 27, 30, 7, 7, 52, 35, 36, 80, 34, 32, 70, 29, 30, 38, 254, 246, 77, 63, 63, 157, 80, 53, 119, 59, 58, 107, 42, 41, 52, 3, 3, 36, 34, 19, 47, 27, 40, 78, 32, 31, 41, 3, 3, 36, 33, 33, 90, 50, 50, 104, 47, 74, 158, 66, 83, 110, 6, 1, 17, 9, 47, 32, 31, 72, 33, 27, 62, 26, 9, 17, 7, 11, 10, 4, 6, 48, 33, 33, 74, 33, 185, 33, 1, 203, 1, 2, 4, 2, 8, 6, 14, 50, 41, 41, 54, 16, 17, 13, 12, 15, 15, 50, 39, 91, 128, 41, 41, 39, 1, 1, 12, 16, 15, 51, 38, 37, 101, 65, 55, 90, 33, 18, 30, 11, 17, 45, 29, 29, 75, 48, 60, 91, 34, 34, 46, 14, 14, 13, 1, 1, 29, 32, 41, 131, 98, 1, 36, 47, 14, 13, 10, 1, 11, 13, 6, 12, 8, 13, 34, 22, 39, 50, 14, 14, 10, 1, 1, 185, 0, 0, 1, 0, 13, 0, 0, 4, 112, 4, 58, 0, 9, 0, 0, 65, 1, 19, 33, 3, 33, 1, 3, 33, 19, 3, 90, 254, 8, 118, 254, 241, 188, 1, 22, 1, 248, 118, 1, 15, 188, 4, 58, 253, 94, 2, 162, 251, 198, 2, 162, 253, 94, 4, 58, 0, 1, 0, 24, 0, 0, 4, 229, 4, 58, 0, 12, 0, 0, 65, 19, 33, 1, 1, 37, 1, 35, 19, 33, 3, 33, 19, 2, 19, 207, 1, 86, 254, 199, 1, 230, 254, 155, 254, 157, 130, 73, 254, 240, 188, 1, 16, 70, 1, 149, 254, 107, 2, 37, 2, 20, 1, 254, 98, 1, 158, 251, 198, 1, 149, 0, 0, 1, 255, 195, 255, 254, 4, 111, 4, 58, 0, 27, 0, 0, 65, 33, 3, 6, 6, 7, 6, 6, 7, 6, 6, 39, 39, 7, 51, 22, 54, 55, 54, 54, 55, 54, 54, 55, 55, 33, 3, 33, 4, 111, 252, 196, 77, 6, 11, 9, 9, 31, 24, 25, 73, 51, 29, 23, 54, 91, 141, 53, 52, 74, 26, 26, 34, 11, 39, 1, 28, 149, 1, 16, 4, 58, 254, 51, 38, 89, 44, 44, 81, 31, 31, 37, 1, 1, 228, 2, 48, 44, 44, 119, 70, 70, 152, 76, 235, 252, 168, 0, 0, 1, 0, 5, 0, 0, 4, 137, 4, 58, 0, 12, 0, 0, 65, 3, 33, 3, 51, 19, 19, 51, 19, 3, 51, 19, 33, 2, 30, 15, 254, 178, 188, 240, 104, 50, 182, 253, 102, 241, 188, 254, 170, 1, 79, 2, 235, 251, 198, 2, 84, 253, 172, 2, 70, 253, 186, 4, 58, 0, 0, 1, 0, 13, 0, 0, 4, 111, 4, 58, 0, 11, 0, 0, 97, 19, 33, 3, 33, 19, 33, 3, 33, 19, 33, 3, 3, 179, 188, 254, 240, 76, 254, 122, 76, 254, 240, 188, 1, 16, 73, 1, 134, 73, 4, 58, 254, 74, 1, 182, 251, 198, 1, 164, 254, 92, 0, 1, 0, 13, 0, 0, 4, 112, 4, 58, 0, 7, 0, 0, 97, 19, 33, 3, 33, 19, 33, 3, 3, 180, 188, 252, 89, 188, 1, 16, 149, 1, 135, 149, 4, 58, 251, 198, 3, 88, 252, 168, 0, 1, 0, 134, 0, 0, 4, 227, 4, 58, 0, 7, 0, 0, 65, 55, 33, 7, 33, 3, 33, 19, 4, 188, 39, 251, 203, 40, 1, 145, 149, 1, 16, 150, 3, 91, 223, 223, 252, 165, 3, 91, 0, 3, 0, 33, 254, 96, 4, 114, 6, 0, 0, 31, 0, 45, 0, 59, 0, 0, 83, 7, 6, 22, 23, 22, 22, 23, 3, 33, 19, 54, 54, 55, 54, 54, 55, 55, 54, 38, 39, 38, 38, 39, 19, 33, 3, 6, 6, 7, 6, 6, 1, 19, 22, 22, 23, 22, 20, 7, 7, 6, 6, 7, 6, 6, 3, 3, 38, 38, 39, 38, 54, 55, 55, 54, 54, 55, 54, 54, 44, 2, 9, 29, 39, 39, 128, 91, 78, 1, 18, 77, 105, 171, 63, 63, 80, 13, 2, 9, 28, 39, 40, 130, 91, 84, 254, 238, 84, 105, 170, 62, 63, 79, 2, 91, 121, 37, 42, 9, 9, 6, 3, 9, 36, 28, 25, 68, 196, 120, 36, 40, 8, 9, 1, 5, 3, 8, 34, 26, 25, 68, 2, 33, 21, 89, 168, 70, 71, 104, 25, 254, 99, 1, 153, 19, 95, 70, 70, 180, 105, 22, 90, 169, 72, 71, 105, 25, 1, 194, 254, 64, 20, 96, 70, 71, 181, 254, 90, 2, 107, 24, 68, 39, 39, 84, 40, 20, 53, 94, 40, 36, 59, 2, 86, 253, 152, 24, 67, 38, 38, 83, 40, 21, 52, 93, 39, 37, 61, 0, 0, 1, 0, 13, 254, 191, 4, 88, 4, 58, 0, 11, 0, 0, 83, 3, 33, 3, 51, 19, 35, 19, 33, 3, 33, 19, 201, 188, 3, 22, 56, 251, 114, 154, 149, 254, 240, 149, 254, 150, 149, 4, 58, 251, 198, 254, 191, 2, 31, 3, 92, 252, 165, 3, 91, 0, 0, 1, 0, 137, 0, 0, 4, 148, 4, 58, 0, 25, 0, 0, 97, 19, 33, 3, 6, 6, 39, 38, 38, 39, 38, 38, 55, 19, 33, 3, 6, 22, 23, 22, 22, 51, 22, 54, 55, 3, 3, 216, 188, 254, 240, 94, 53, 104, 54, 49, 71, 22, 23, 17, 6, 55, 254, 241, 55, 11, 58, 60, 59, 167, 98, 51, 100, 50, 68, 4, 58, 254, 3, 9, 12, 2, 1, 21, 22, 22, 70, 51, 1, 85, 254, 172, 106, 155, 51, 51, 50, 1, 11, 11, 254, 162, 0, 1, 255, 232, 0, 0, 4, 177, 4, 58, 0, 11, 0, 0, 65, 33, 3, 33, 19, 33, 3, 35, 19, 35, 3, 35, 1, 171, 254, 249, 188, 4, 13, 188, 254, 249, 150, 127, 149, 255, 150, 127, 4, 58, 251, 198, 4, 58, 252, 165, 3, 91, 252, 165, 0, 1, 255, 228, 254, 191, 4, 173, 4, 58, 0, 15, 0, 0, 65, 33, 3, 33, 3, 51, 19, 35, 19, 33, 3, 35, 19, 35, 3, 35, 1, 167, 254, 249, 188, 3, 139, 56, 221, 113, 110, 150, 254, 249, 150, 127, 149, 255, 150, 127, 4, 58, 251, 198, 254, 191, 2, 31, 3, 92, 252, 165, 3, 91, 252, 165, 0, 2, 0, 99, 255, 255, 4, 79, 4, 58, 0, 18, 0, 33, 0, 0, 83, 7, 33, 3, 33, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 39, 19, 3, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 39, 138, 39, 1, 0, 150, 1, 167, 84, 165, 66, 66, 85, 5, 4, 62, 54, 55, 141, 74, 119, 69, 106, 148, 26, 46, 17, 16, 15, 4, 6, 35, 26, 26, 62, 33, 121, 4, 58, 217, 252, 159, 1, 43, 45, 45, 138, 94, 84, 121, 39, 39, 39, 2, 1, 1, 137, 253, 158, 1, 2, 14, 14, 14, 42, 29, 35, 52, 17, 18, 18, 1, 1, 0, 3, 255, 247, 255, 255, 4, 174, 4, 58, 0, 16, 0, 20, 0, 35, 0, 0, 65, 19, 35, 3, 33, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 1, 19, 33, 3, 1, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 35, 1, 108, 67, 251, 189, 1, 57, 84, 148, 56, 56, 68, 6, 5, 44, 43, 44, 123, 75, 2, 101, 187, 254, 238, 188, 254, 120, 41, 34, 41, 10, 10, 3, 4, 4, 19, 14, 20, 63, 42, 33, 2, 183, 1, 131, 251, 198, 1, 48, 47, 46, 137, 87, 77, 122, 42, 42, 45, 2, 253, 74, 4, 58, 251, 198, 1, 249, 1, 3, 24, 20, 20, 52, 30, 28, 45, 17, 24, 25, 2, 0, 2, 0, 29, 255, 255, 4, 54, 4, 58, 0, 16, 0, 31, 0, 0, 65, 19, 33, 3, 33, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 5, 5, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 39, 1, 169, 63, 254, 241, 188, 2, 38, 86, 171, 70, 70, 91, 6, 5, 63, 56, 56, 149, 80, 254, 225, 1, 21, 31, 56, 20, 19, 18, 6, 6, 42, 29, 30, 70, 35, 251, 2, 206, 1, 108, 251, 198, 1, 41, 45, 44, 138, 97, 90, 131, 43, 43, 44, 2, 222, 1, 1, 15, 15, 16, 49, 35, 39, 54, 16, 17, 15, 1, 1, 0, 1, 0, 66, 255, 233, 4, 51, 4, 79, 0, 56, 0, 0, 65, 22, 22, 23, 22, 22, 7, 33, 7, 37, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 39, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 55, 54, 54, 55, 54, 54, 2, 109, 55, 73, 21, 20, 14, 4, 254, 206, 31, 1, 65, 17, 46, 34, 34, 91, 61, 45, 69, 23, 21, 22, 1, 253, 3, 57, 55, 55, 155, 94, 123, 202, 75, 74, 93, 14, 3, 9, 18, 25, 21, 65, 41, 51, 133, 83, 80, 159, 65, 82, 111, 8, 254, 9, 44, 32, 31, 77, 3, 110, 2, 40, 33, 34, 88, 49, 174, 1, 52, 95, 35, 36, 41, 2, 2, 30, 26, 26, 70, 42, 1, 96, 153, 54, 54, 60, 2, 3, 83, 74, 74, 202, 117, 31, 80, 147, 63, 51, 87, 32, 39, 44, 1, 1, 43, 38, 51, 157, 104, 2, 42, 62, 21, 21, 21, 0, 2, 255, 204, 255, 232, 4, 132, 4, 80, 0, 43, 0, 81, 0, 0, 65, 19, 33, 3, 33, 19, 55, 6, 6, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 55, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 23, 55, 54, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 7, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 54, 54, 1, 77, 78, 254, 237, 188, 1, 26, 74, 88, 6, 2, 4, 4, 26, 21, 37, 128, 93, 105, 154, 53, 27, 43, 15, 15, 19, 6, 16, 6, 2, 11, 11, 45, 35, 36, 102, 67, 68, 111, 44, 44, 69, 25, 26, 37, 12, 243, 14, 2, 7, 7, 7, 21, 16, 16, 46, 31, 27, 32, 8, 8, 4, 1, 2, 6, 1, 14, 3, 7, 7, 7, 21, 16, 16, 45, 31, 27, 32, 8, 8, 4, 2, 1, 6, 2, 115, 1, 199, 251, 198, 1, 172, 1, 36, 71, 34, 44, 83, 36, 64, 80, 2, 3, 89, 73, 37, 88, 46, 42, 87, 43, 118, 55, 117, 56, 55, 98, 38, 37, 45, 2, 2, 37, 33, 34, 93, 53, 53, 116, 57, 148, 119, 21, 59, 33, 32, 64, 26, 25, 29, 1, 1, 35, 26, 27, 65, 31, 32, 54, 16, 119, 21, 59, 32, 33, 64, 25, 26, 30, 2, 1, 35, 27, 26, 65, 32, 31, 54, 0, 0, 2, 255, 219, 0, 0, 4, 133, 4, 59, 0, 19, 0, 34, 0, 0, 65, 37, 34, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 1, 33, 1, 51, 3, 33, 1, 54, 54, 55, 54, 54, 55, 23, 3, 37, 38, 38, 39, 38, 38, 4, 133, 253, 234, 86, 170, 69, 69, 90, 6, 3, 31, 32, 17, 44, 26, 254, 195, 1, 35, 1, 18, 236, 67, 1, 16, 253, 200, 6, 41, 30, 29, 70, 35, 235, 50, 254, 243, 29, 50, 18, 18, 17, 4, 58, 1, 43, 45, 45, 139, 96, 58, 106, 43, 22, 39, 16, 254, 81, 1, 123, 254, 133, 2, 195, 38, 57, 19, 18, 20, 1, 1, 254, 228, 1, 1, 18, 17, 16, 47, 0, 0, 1, 0, 22, 254, 71, 4, 58, 6, 0, 0, 61, 0, 0, 65, 55, 35, 55, 33, 7, 35, 7, 51, 3, 33, 19, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 3, 51, 7, 6, 6, 7, 6, 6, 35, 6, 38, 39, 7, 22, 22, 23, 22, 54, 55, 54, 54, 55, 19, 35, 55, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 19, 2, 213, 32, 229, 32, 254, 241, 29, 176, 32, 177, 207, 1, 15, 138, 25, 54, 30, 25, 55, 30, 49, 64, 18, 18, 9, 5, 111, 4, 7, 5, 22, 18, 18, 54, 37, 25, 49, 24, 38, 36, 71, 38, 93, 145, 52, 52, 64, 12, 85, 5, 31, 9, 23, 36, 37, 129, 96, 51, 92, 40, 38, 66, 29, 49, 4, 166, 180, 166, 166, 180, 251, 90, 3, 14, 24, 38, 12, 10, 10, 1, 2, 34, 29, 30, 77, 45, 253, 110, 42, 32, 63, 25, 25, 30, 1, 9, 7, 218, 9, 10, 1, 1, 59, 53, 53, 147, 88, 1, 254, 186, 85, 160, 63, 62, 76, 1, 1, 27, 23, 23, 62, 37, 1, 3, 0, 0, 1, 0, 86, 255, 233, 4, 39, 4, 81, 0, 59, 0, 0, 101, 38, 38, 39, 38, 38, 39, 38, 38, 55, 33, 55, 33, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 23, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 7, 6, 6, 7, 6, 6, 2, 9, 52, 65, 18, 9, 11, 3, 4, 3, 1, 1, 45, 31, 254, 200, 11, 40, 32, 31, 89, 59, 43, 64, 21, 21, 18, 3, 255, 5, 53, 52, 53, 150, 93, 120, 197, 73, 73, 90, 14, 3, 6, 7, 13, 10, 34, 23, 51, 167, 117, 87, 169, 69, 68, 88, 5, 254, 6, 41, 29, 30, 73, 201, 1, 44, 34, 16, 37, 19, 22, 45, 23, 176, 50, 95, 37, 36, 44, 2, 2, 31, 26, 26, 71, 40, 1, 93, 153, 56, 55, 62, 2, 3, 86, 75, 76, 202, 113, 31, 60, 115, 52, 41, 75, 33, 75, 90, 2, 2, 53, 51, 51, 147, 92, 2, 40, 64, 21, 22, 22, 0, 0, 2, 255, 181, 255, 254, 4, 142, 4, 58, 0, 40, 0, 55, 0, 0, 65, 33, 3, 6, 6, 7, 6, 6, 7, 6, 6, 39, 39, 7, 51, 22, 54, 55, 54, 54, 55, 54, 54, 55, 55, 51, 3, 33, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 39, 7, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 7, 3, 118, 253, 140, 77, 4, 11, 9, 10, 29, 22, 22, 61, 42, 19, 27, 44, 86, 130, 49, 48, 68, 24, 23, 29, 11, 40, 105, 148, 1, 15, 87, 160, 62, 62, 79, 6, 5, 48, 46, 39, 104, 61, 50, 27, 6, 32, 44, 10, 8, 4, 4, 4, 17, 13, 20, 49, 38, 9, 4, 58, 254, 51, 29, 79, 43, 43, 83, 33, 33, 40, 1, 1, 240, 2, 53, 46, 46, 123, 70, 69, 147, 69, 235, 252, 168, 1, 47, 48, 47, 141, 92, 81, 128, 45, 38, 51, 6, 5, 219, 1, 5, 26, 21, 15, 39, 24, 25, 43, 17, 28, 36, 8, 2, 0, 2, 255, 240, 255, 255, 4, 88, 4, 58, 0, 24, 0, 39, 0, 0, 65, 19, 33, 3, 33, 19, 51, 3, 33, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 35, 19, 33, 3, 23, 51, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 35, 1, 115, 73, 254, 239, 187, 1, 16, 77, 118, 77, 1, 41, 86, 153, 59, 59, 73, 6, 5, 45, 44, 45, 129, 78, 5, 68, 254, 239, 73, 252, 13, 28, 35, 10, 10, 4, 3, 4, 24, 19, 19, 53, 33, 5, 2, 153, 1, 161, 251, 198, 1, 186, 254, 70, 1, 49, 48, 48, 140, 90, 79, 130, 46, 46, 52, 2, 1, 97, 254, 95, 157, 3, 22, 18, 18, 46, 25, 31, 56, 21, 22, 26, 1, 0, 1, 0, 32, 0, 0, 4, 68, 6, 0, 0, 39, 0, 0, 65, 55, 33, 55, 33, 7, 35, 7, 51, 3, 33, 19, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 3, 33, 19, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 19, 3, 1, 32, 254, 251, 30, 254, 241, 27, 144, 32, 145, 209, 1, 15, 138, 26, 56, 31, 24, 53, 29, 49, 64, 18, 18, 9, 5, 111, 1, 16, 109, 9, 23, 36, 37, 129, 96, 54, 97, 42, 34, 62, 27, 51, 4, 177, 180, 155, 155, 180, 251, 79, 3, 14, 25, 39, 12, 9, 9, 1, 2, 34, 29, 30, 77, 45, 253, 110, 2, 143, 85, 160, 63, 62, 76, 1, 1, 30, 26, 22, 59, 35, 1, 14, 0, 0, 1, 0, 13, 254, 154, 4, 112, 4, 58, 0, 11, 0, 0, 65, 33, 3, 33, 3, 33, 19, 33, 19, 33, 3, 33, 1, 217, 254, 240, 188, 1, 77, 63, 1, 16, 62, 1, 75, 188, 254, 240, 149, 254, 121, 4, 58, 251, 198, 254, 154, 1, 102, 4, 58, 252, 165, 0, 0, 1, 0, 29, 255, 233, 5, 25, 5, 176, 0, 74, 0, 0, 65, 35, 3, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 53, 54, 54, 55, 19, 35, 3, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 53, 52, 54, 55, 19, 35, 3, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 55, 5, 25, 254, 183, 1, 4, 2, 3, 7, 5, 11, 36, 28, 30, 29, 5, 3, 2, 1, 1, 2, 181, 253, 183, 1, 4, 2, 3, 9, 6, 12, 38, 30, 29, 26, 4, 2, 2, 2, 2, 183, 253, 181, 7, 3, 8, 6, 24, 17, 35, 115, 83, 46, 77, 32, 18, 34, 15, 10, 25, 15, 29, 78, 45, 86, 131, 47, 30, 45, 14, 8, 12, 3, 5, 176, 251, 192, 10, 24, 14, 13, 29, 13, 26, 36, 1, 1, 36, 26, 12, 26, 13, 14, 26, 10, 4, 64, 251, 192, 10, 23, 12, 15, 31, 13, 26, 35, 1, 1, 38, 26, 11, 24, 12, 15, 27, 11, 4, 63, 251, 212, 43, 92, 36, 31, 59, 25, 55, 67, 1, 1, 30, 26, 15, 35, 20, 20, 35, 13, 27, 29, 1, 2, 64, 55, 35, 87, 47, 26, 53, 27, 0, 1, 0, 27, 255, 233, 4, 191, 4, 58, 0, 74, 0, 0, 65, 35, 3, 6, 6, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 38, 54, 55, 19, 35, 3, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 53, 52, 54, 55, 19, 35, 3, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 55, 4, 191, 247, 114, 3, 7, 10, 5, 15, 9, 9, 23, 14, 15, 22, 7, 9, 9, 2, 4, 4, 3, 113, 253, 113, 3, 11, 12, 5, 12, 8, 11, 31, 20, 19, 22, 6, 4, 4, 4, 3, 113, 247, 115, 8, 19, 31, 15, 43, 28, 28, 70, 43, 38, 65, 28, 27, 48, 21, 13, 37, 25, 25, 64, 36, 48, 81, 33, 30, 50, 21, 44, 50, 11, 4, 58, 253, 78, 20, 65, 31, 16, 29, 11, 9, 10, 11, 9, 11, 29, 17, 30, 64, 20, 2, 178, 253, 78, 23, 67, 30, 13, 22, 9, 13, 15, 1, 1, 23, 18, 12, 30, 16, 27, 50, 14, 2, 178, 253, 79, 72, 146, 59, 29, 50, 18, 19, 20, 1, 1, 21, 18, 18, 50, 29, 31, 49, 17, 18, 19, 1, 2, 20, 20, 16, 47, 28, 59, 150, 77, 0, 0, 2, 0, 86, 255, 255, 4, 51, 6, 26, 0, 24, 0, 39, 0, 0, 65, 55, 33, 19, 33, 3, 35, 7, 51, 3, 33, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 39, 19, 3, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 39, 3, 34, 32, 254, 254, 54, 254, 239, 53, 157, 31, 157, 187, 1, 237, 85, 171, 70, 69, 90, 6, 5, 64, 56, 57, 148, 78, 191, 64, 102, 219, 28, 55, 20, 20, 21, 5, 6, 42, 29, 30, 70, 34, 193, 4, 52, 180, 1, 50, 254, 206, 180, 251, 204, 1, 40, 44, 44, 137, 97, 88, 128, 42, 42, 41, 2, 1, 1, 115, 253, 174, 1, 1, 13, 14, 14, 45, 34, 39, 53, 16, 16, 14, 1, 1, 0, 0, 1, 255, 206, 255, 234, 4, 205, 5, 199, 0, 84, 0, 0, 65, 19, 35, 3, 51, 19, 55, 7, 6, 6, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 7, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 54, 55, 54, 54, 55, 55, 23, 55, 7, 55, 54, 54, 55, 54, 54, 55, 54, 54, 51, 22, 22, 23, 22, 22, 23, 22, 6, 7, 51, 54, 52, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 7, 1, 98, 103, 255, 252, 254, 107, 106, 4, 13, 10, 7, 6, 39, 37, 36, 111, 78, 105, 152, 51, 50, 55, 8, 242, 4, 7, 6, 7, 20, 15, 15, 43, 30, 35, 38, 8, 8, 1, 5, 5, 13, 4, 4, 198, 43, 215, 5, 4, 8, 6, 8, 24, 19, 18, 54, 38, 24, 33, 11, 10, 11, 3, 6, 7, 2, 244, 7, 10, 11, 43, 36, 36, 102, 70, 82, 127, 48, 48, 70, 25, 22, 32, 13, 10, 3, 93, 2, 83, 250, 80, 2, 108, 2, 18, 59, 137, 68, 69, 127, 49, 50, 61, 3, 3, 84, 70, 70, 179, 91, 1, 21, 53, 27, 27, 51, 20, 20, 23, 1, 1, 46, 35, 35, 86, 41, 41, 69, 20, 18, 2, 241, 1, 31, 23, 57, 30, 40, 81, 33, 32, 39, 1, 17, 15, 13, 33, 18, 40, 86, 29, 57, 119, 55, 55, 98, 37, 36, 44, 2, 2, 55, 47, 48, 126, 69, 58, 120, 55, 41, 0, 0, 1, 255, 226, 255, 234, 4, 150, 4, 84, 0, 75, 0, 0, 65, 55, 35, 55, 54, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 21, 51, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 7, 35, 19, 33, 3, 33, 19, 55, 7, 6, 20, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 54, 54, 55, 55, 3, 80, 32, 186, 5, 3, 8, 5, 4, 10, 6, 16, 51, 41, 32, 33, 7, 7, 1, 248, 3, 27, 34, 35, 118, 87, 103, 151, 53, 32, 50, 19, 11, 19, 8, 7, 79, 78, 254, 251, 188, 1, 5, 78, 97, 2, 3, 3, 5, 26, 22, 38, 132, 96, 82, 131, 48, 48, 60, 9, 248, 5, 17, 13, 13, 39, 27, 25, 30, 8, 8, 4, 1, 1, 3, 2, 3, 1, 197, 185, 23, 15, 34, 17, 14, 28, 13, 36, 49, 1, 1, 32, 23, 24, 55, 23, 78, 143, 54, 54, 66, 2, 3, 81, 66, 40, 93, 49, 28, 58, 29, 26, 1, 189, 251, 197, 1, 197, 1, 17, 32, 63, 31, 47, 89, 39, 68, 85, 3, 2, 57, 50, 50, 136, 76, 1, 22, 46, 18, 19, 23, 1, 1, 27, 21, 20, 52, 26, 18, 33, 13, 23, 0, 2, 255, 159, 0, 0, 4, 114, 5, 176, 0, 11, 0, 16, 0, 0, 65, 19, 33, 3, 33, 1, 33, 19, 51, 3, 51, 19, 39, 19, 55, 23, 19, 3, 41, 57, 1, 16, 225, 254, 234, 253, 36, 1, 39, 204, 74, 73, 234, 72, 212, 163, 58, 16, 44, 1, 166, 254, 90, 5, 176, 250, 80, 1, 166, 254, 90, 1, 166, 201, 1, 80, 120, 120, 254, 176, 0, 2, 255, 221, 0, 0, 4, 37, 4, 58, 0, 11, 0, 16, 0, 0, 65, 19, 33, 3, 33, 1, 33, 19, 51, 3, 51, 19, 39, 55, 55, 23, 19, 2, 239, 48, 1, 6, 224, 254, 238, 253, 170, 1, 31, 140, 76, 48, 188, 46, 168, 125, 52, 6, 45, 1, 15, 254, 241, 4, 58, 251, 198, 1, 15, 254, 241, 1, 15, 184, 242, 118, 95, 254, 247, 0, 0, 2, 255, 231, 0, 0, 4, 47, 5, 176, 0, 19, 0, 24, 0, 0, 65, 19, 51, 3, 35, 1, 35, 19, 35, 3, 51, 19, 51, 3, 51, 19, 51, 3, 51, 19, 39, 19, 55, 21, 3, 3, 88, 3, 212, 48, 215, 254, 184, 175, 142, 219, 253, 220, 77, 131, 176, 228, 165, 41, 82, 156, 80, 126, 130, 36, 1, 1, 185, 254, 71, 5, 176, 252, 203, 3, 53, 250, 80, 1, 184, 254, 72, 1, 186, 254, 70, 1, 186, 193, 1, 97, 99, 99, 254, 159, 0, 2, 255, 231, 0, 0, 4, 46, 4, 58, 0, 19, 0, 24, 0, 0, 65, 19, 51, 3, 35, 1, 35, 19, 35, 3, 51, 19, 51, 3, 51, 19, 51, 3, 51, 19, 39, 55, 55, 23, 23, 3, 70, 22, 210, 112, 216, 254, 212, 169, 110, 220, 188, 220, 46, 109, 125, 231, 121, 51, 51, 165, 50, 131, 101, 37, 6, 15, 1, 5, 254, 251, 4, 58, 253, 141, 2, 115, 251, 198, 1, 4, 254, 252, 1, 6, 254, 250, 1, 5, 194, 221, 81, 81, 221, 0, 0, 2, 255, 196, 0, 0, 5, 2, 5, 176, 0, 39, 0, 44, 0, 0, 65, 1, 33, 19, 7, 6, 6, 7, 6, 6, 7, 3, 33, 19, 54, 54, 55, 54, 54, 51, 51, 3, 33, 19, 23, 22, 22, 23, 22, 22, 7, 3, 33, 19, 54, 38, 39, 38, 38, 39, 3, 3, 7, 39, 3, 3, 99, 1, 159, 251, 237, 192, 15, 72, 121, 47, 70, 85, 15, 66, 1, 18, 67, 8, 30, 25, 19, 50, 32, 37, 101, 1, 17, 103, 22, 34, 39, 9, 8, 1, 4, 67, 1, 19, 65, 7, 23, 33, 32, 107, 76, 28, 138, 44, 19, 62, 3, 9, 2, 167, 253, 96, 1, 6, 36, 31, 46, 153, 109, 254, 110, 1, 146, 42, 64, 20, 14, 16, 253, 210, 2, 43, 1, 3, 25, 20, 20, 53, 30, 254, 109, 1, 146, 75, 130, 50, 48, 62, 9, 1, 194, 254, 253, 82, 82, 1, 3, 0, 0, 2, 255, 215, 0, 0, 4, 168, 4, 58, 0, 39, 0, 43, 0, 0, 99, 33, 55, 54, 54, 55, 54, 54, 51, 51, 3, 33, 19, 23, 22, 22, 23, 22, 6, 7, 7, 33, 55, 54, 38, 39, 38, 38, 39, 39, 1, 33, 19, 7, 6, 6, 7, 6, 6, 7, 1, 3, 35, 3, 41, 1, 15, 38, 5, 16, 15, 14, 47, 35, 22, 74, 1, 15, 75, 18, 29, 26, 4, 3, 5, 3, 37, 1, 16, 37, 6, 13, 24, 22, 78, 58, 20, 1, 107, 252, 4, 175, 16, 76, 114, 41, 43, 52, 10, 2, 255, 172, 2, 79, 238, 30, 59, 23, 22, 29, 254, 111, 1, 142, 1, 3, 34, 23, 23, 53, 21, 240, 238, 62, 118, 49, 45, 68, 15, 5, 1, 226, 254, 39, 2, 12, 57, 45, 47, 128, 81, 2, 145, 254, 244, 1, 12, 0, 0, 2, 255, 204, 0, 0, 5, 31, 5, 176, 0, 48, 0, 51, 0, 0, 65, 39, 1, 33, 19, 33, 19, 35, 3, 51, 19, 55, 6, 6, 7, 6, 6, 7, 3, 51, 19, 54, 54, 55, 54, 54, 55, 51, 3, 51, 19, 23, 22, 22, 23, 22, 22, 23, 22, 6, 7, 3, 51, 19, 54, 38, 39, 38, 38, 11, 2, 3, 210, 11, 1, 88, 253, 0, 105, 254, 168, 114, 218, 252, 218, 102, 104, 4, 6, 3, 15, 20, 7, 67, 205, 76, 5, 16, 14, 13, 43, 32, 19, 106, 206, 107, 15, 15, 20, 6, 4, 5, 1, 2, 6, 3, 64, 209, 76, 6, 11, 22, 21, 75, 71, 131, 36, 3, 18, 2, 2, 156, 253, 108, 2, 148, 250, 80, 2, 83, 2, 7, 14, 7, 32, 68, 35, 254, 78, 1, 179, 27, 54, 23, 22, 29, 2, 253, 176, 2, 77, 1, 2, 14, 10, 8, 17, 10, 23, 49, 19, 254, 76, 1, 179, 57, 116, 49, 47, 68, 1, 221, 254, 235, 1, 21, 0, 2, 255, 209, 0, 0, 4, 221, 4, 58, 0, 41, 0, 44, 0, 0, 65, 19, 35, 3, 51, 19, 55, 6, 6, 7, 3, 51, 19, 54, 54, 55, 54, 54, 55, 51, 3, 51, 19, 51, 50, 22, 23, 22, 6, 7, 3, 51, 19, 54, 38, 39, 38, 38, 39, 1, 33, 19, 1, 7, 39, 1, 21, 83, 219, 188, 219, 72, 119, 20, 27, 7, 39, 208, 50, 4, 15, 13, 12, 41, 30, 5, 76, 208, 72, 2, 16, 36, 4, 2, 5, 3, 35, 208, 47, 8, 11, 19, 19, 70, 56, 1, 32, 253, 22, 109, 1, 47, 118, 38, 2, 92, 1, 222, 251, 198, 1, 159, 2, 38, 77, 42, 254, 252, 1, 5, 25, 53, 22, 22, 29, 1, 254, 99, 1, 155, 32, 29, 21, 46, 21, 254, 250, 1, 6, 45, 112, 45, 45, 68, 15, 1, 234, 254, 34, 1, 51, 223, 223, 0, 0, 2, 0, 18, 254, 65, 4, 89, 7, 118, 0, 86, 0, 95, 0, 0, 65, 39, 7, 23, 22, 22, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 35, 39, 38, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 55, 38, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 55, 23, 50, 54, 55, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 39, 7, 5, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 19, 39, 39, 7, 23, 51, 37, 53, 7, 2, 28, 134, 41, 154, 39, 71, 28, 18, 29, 10, 17, 13, 6, 8, 52, 37, 38, 93, 48, 60, 73, 134, 52, 53, 65, 4, 3, 34, 34, 34, 100, 63, 93, 24, 44, 16, 17, 17, 5, 4, 28, 20, 19, 49, 25, 56, 62, 121, 54, 35, 66, 29, 74, 94, 8, 4, 28, 30, 26, 75, 48, 58, 99, 37, 37, 45, 5, 7, 73, 63, 64, 168, 88, 244, 40, 1, 17, 40, 72, 26, 26, 25, 6, 7, 49, 36, 37, 91, 122, 118, 224, 1, 255, 171, 1, 64, 238, 3, 93, 1, 232, 1, 2, 15, 16, 8, 26, 16, 25, 67, 42, 52, 76, 25, 25, 24, 1, 1, 34, 36, 36, 115, 80, 66, 114, 46, 46, 67, 19, 170, 11, 28, 18, 18, 46, 30, 28, 39, 13, 12, 12, 1, 1, 20, 20, 13, 35, 21, 54, 165, 110, 61, 105, 43, 37, 59, 20, 24, 63, 42, 42, 105, 66, 102, 140, 44, 44, 40, 2, 1, 230, 1, 1, 18, 19, 20, 63, 45, 53, 74, 24, 24, 23, 3, 154, 125, 2, 24, 250, 251, 23, 3, 0, 0, 2, 0, 54, 254, 79, 4, 74, 5, 248, 0, 92, 0, 101, 0, 0, 65, 39, 7, 23, 50, 22, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 35, 39, 34, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 55, 38, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 55, 23, 50, 54, 55, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 39, 7, 5, 22, 22, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 19, 39, 39, 7, 23, 51, 37, 53, 7, 2, 17, 147, 32, 168, 30, 74, 31, 15, 26, 8, 8, 5, 3, 8, 54, 36, 36, 82, 34, 53, 66, 125, 49, 49, 61, 3, 2, 34, 33, 32, 90, 53, 91, 23, 41, 14, 15, 14, 5, 5, 31, 23, 22, 52, 26, 49, 53, 111, 54, 53, 95, 36, 36, 45, 2, 1, 25, 23, 23, 64, 37, 42, 76, 30, 29, 36, 3, 4, 39, 32, 33, 88, 49, 50, 102, 46, 244, 36, 1, 17, 26, 64, 26, 17, 26, 6, 3, 2, 2, 6, 44, 31, 31, 73, 131, 118, 224, 1, 255, 171, 1, 64, 238, 2, 113, 1, 177, 1, 9, 13, 7, 20, 14, 12, 33, 20, 42, 53, 15, 15, 12, 1, 30, 32, 33, 104, 74, 60, 106, 44, 44, 68, 22, 156, 12, 28, 19, 18, 46, 29, 29, 39, 12, 12, 11, 1, 1, 14, 17, 16, 51, 38, 37, 98, 63, 42, 69, 28, 28, 42, 14, 19, 47, 31, 31, 78, 50, 60, 87, 32, 32, 42, 13, 12, 11, 1, 1, 204, 1, 1, 8, 11, 8, 22, 16, 9, 22, 13, 41, 53, 16, 17, 14, 3, 7, 125, 2, 24, 250, 251, 23, 3, 0, 0, 3, 0, 71, 255, 234, 4, 136, 5, 198, 0, 37, 0, 58, 0, 79, 0, 0, 65, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 37, 7, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 53, 38, 54, 55, 55, 1, 22, 22, 23, 22, 6, 7, 7, 33, 55, 54, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 4, 93, 33, 10, 8, 18, 19, 68, 51, 52, 137, 88, 91, 154, 63, 63, 100, 36, 37, 49, 12, 33, 10, 6, 17, 17, 64, 50, 49, 135, 87, 92, 156, 65, 65, 103, 39, 38, 50, 254, 251, 4, 7, 22, 17, 18, 50, 33, 34, 86, 54, 51, 65, 19, 19, 16, 1, 7, 5, 4, 1, 218, 21, 20, 3, 2, 6, 5, 2, 254, 33, 1, 6, 20, 16, 15, 46, 32, 31, 85, 54, 51, 68, 2, 110, 211, 76, 154, 71, 70, 123, 47, 46, 54, 2, 2, 49, 44, 45, 124, 72, 72, 159, 80, 212, 75, 152, 70, 71, 123, 46, 47, 55, 2, 2, 48, 44, 44, 123, 72, 72, 160, 106, 26, 43, 96, 46, 47, 84, 31, 31, 35, 2, 2, 43, 34, 34, 86, 45, 45, 86, 35, 27, 2, 8, 33, 84, 44, 45, 88, 37, 9, 8, 43, 95, 46, 46, 83, 32, 31, 35, 2, 2, 42, 0, 3, 0, 72, 255, 232, 4, 63, 4, 80, 0, 28, 0, 41, 0, 54, 0, 0, 83, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 55, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 37, 22, 22, 23, 22, 22, 7, 33, 54, 54, 55, 54, 54, 3, 38, 38, 39, 38, 38, 53, 33, 6, 6, 7, 6, 6, 85, 2, 11, 41, 53, 52, 168, 116, 121, 199, 73, 73, 91, 14, 3, 11, 40, 52, 53, 168, 117, 90, 157, 64, 47, 83, 32, 39, 50, 2, 30, 53, 67, 19, 19, 13, 1, 254, 77, 13, 43, 33, 32, 87, 58, 53, 67, 19, 20, 14, 1, 179, 13, 44, 32, 32, 86, 2, 32, 21, 107, 195, 74, 75, 91, 2, 3, 87, 76, 76, 203, 114, 22, 107, 196, 76, 75, 92, 2, 2, 48, 44, 34, 89, 52, 64, 150, 255, 2, 46, 35, 36, 89, 44, 49, 93, 35, 35, 42, 253, 88, 2, 44, 35, 35, 86, 44, 48, 90, 34, 35, 41, 0, 0, 1, 0, 164, 0, 0, 5, 110, 5, 197, 0, 22, 0, 0, 65, 3, 5, 19, 33, 1, 54, 54, 55, 54, 54, 55, 51, 55, 39, 38, 6, 7, 6, 6, 7, 1, 7, 2, 58, 123, 254, 229, 222, 1, 31, 2, 6, 11, 27, 18, 18, 44, 27, 23, 31, 47, 81, 125, 49, 49, 73, 29, 254, 187, 39, 1, 139, 4, 38, 1, 250, 80, 4, 87, 22, 43, 17, 16, 21, 1, 244, 1, 1, 57, 48, 49, 126, 68, 253, 40, 98, 0, 0, 1, 0, 140, 0, 0, 4, 162, 4, 81, 0, 26, 0, 0, 65, 3, 33, 19, 51, 1, 54, 54, 55, 54, 54, 55, 54, 22, 23, 55, 38, 38, 35, 34, 6, 7, 6, 6, 7, 3, 7, 1, 237, 78, 254, 237, 184, 254, 1, 129, 10, 25, 16, 15, 39, 24, 11, 24, 11, 48, 26, 54, 29, 75, 115, 44, 44, 67, 26, 172, 41, 1, 133, 2, 181, 251, 198, 2, 253, 19, 37, 15, 14, 18, 1, 1, 4, 2, 218, 11, 12, 55, 46, 46, 118, 61, 254, 146, 113, 0, 0, 3, 0, 37, 254, 77, 4, 242, 5, 200, 0, 37, 0, 64, 0, 102, 0, 0, 65, 19, 54, 54, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 3, 6, 6, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 37, 19, 35, 3, 7, 6, 6, 7, 6, 6, 7, 6, 38, 39, 7, 22, 22, 51, 50, 54, 55, 54, 54, 55, 1, 35, 3, 1, 3, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 54, 54, 55, 19, 54, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 6, 6, 2, 111, 82, 5, 4, 6, 6, 30, 27, 28, 86, 61, 62, 94, 35, 36, 51, 17, 17, 22, 6, 82, 5, 6, 4, 3, 25, 25, 25, 80, 59, 64, 99, 39, 38, 55, 19, 19, 25, 1, 39, 28, 169, 40, 40, 10, 23, 16, 17, 45, 33, 17, 35, 17, 14, 25, 51, 26, 55, 84, 32, 31, 44, 15, 1, 184, 177, 191, 254, 129, 92, 3, 7, 6, 6, 21, 16, 16, 44, 31, 26, 28, 6, 7, 1, 3, 2, 7, 2, 92, 2, 7, 6, 6, 19, 15, 15, 44, 30, 26, 30, 7, 7, 2, 2, 2, 7, 1, 222, 1, 245, 45, 107, 55, 55, 103, 41, 40, 51, 2, 2, 47, 40, 40, 105, 56, 56, 111, 46, 254, 10, 41, 105, 54, 55, 105, 42, 42, 52, 2, 2, 44, 39, 39, 103, 57, 56, 114, 239, 1, 158, 251, 206, 97, 25, 62, 28, 28, 39, 1, 1, 6, 2, 154, 6, 10, 49, 39, 38, 95, 45, 4, 227, 253, 198, 1, 255, 253, 181, 20, 59, 33, 33, 66, 26, 26, 31, 2, 1, 37, 28, 28, 67, 32, 32, 53, 14, 2, 74, 19, 59, 33, 33, 65, 26, 26, 31, 2, 2, 36, 27, 27, 66, 31, 32, 54, 0, 0, 3, 0, 29, 254, 77, 4, 242, 4, 80, 0, 37, 0, 75, 0, 102, 0, 0, 83, 7, 6, 6, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 55, 55, 54, 54, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 23, 55, 54, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 6, 7, 6, 6, 7, 7, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 54, 55, 54, 54, 37, 55, 19, 35, 3, 7, 6, 6, 7, 6, 6, 7, 6, 38, 39, 7, 22, 22, 51, 50, 54, 55, 54, 54, 55, 1, 35, 42, 3, 6, 4, 5, 5, 30, 30, 29, 93, 68, 70, 110, 42, 41, 60, 21, 20, 25, 7, 3, 5, 5, 5, 5, 31, 29, 30, 94, 68, 71, 109, 41, 42, 59, 20, 21, 24, 186, 2, 3, 8, 8, 7, 24, 20, 20, 57, 40, 34, 37, 9, 8, 1, 3, 4, 11, 2, 3, 3, 7, 7, 8, 25, 20, 20, 57, 40, 34, 37, 8, 8, 1, 4, 3, 11, 2, 153, 13, 28, 169, 40, 40, 10, 23, 16, 17, 45, 33, 17, 35, 17, 14, 25, 51, 26, 55, 84, 32, 31, 44, 15, 1, 184, 177, 2, 34, 22, 49, 117, 60, 60, 113, 44, 45, 55, 2, 2, 49, 44, 43, 114, 62, 62, 126, 54, 22, 49, 119, 61, 60, 114, 45, 44, 55, 2, 2, 50, 43, 44, 115, 62, 63, 127, 74, 21, 25, 80, 45, 45, 90, 36, 35, 43, 2, 2, 49, 37, 37, 90, 43, 43, 72, 19, 20, 26, 79, 45, 45, 89, 35, 35, 43, 2, 2, 48, 37, 37, 90, 43, 42, 71, 2, 158, 1, 159, 251, 206, 97, 25, 62, 28, 28, 39, 1, 1, 7, 2, 155, 6, 10, 48, 39, 38, 95, 46, 4, 227, 0, 0, 4, 0, 73, 255, 120, 4, 138, 6, 41, 0, 3, 0, 7, 0, 45, 0, 83, 0, 0, 65, 19, 35, 3, 3, 19, 35, 3, 1, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 3, 7, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 53, 38, 54, 55, 55, 54, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 23, 22, 6, 3, 12, 79, 191, 79, 25, 81, 192, 81, 2, 235, 33, 10, 8, 18, 19, 68, 51, 52, 137, 88, 91, 154, 63, 63, 100, 36, 37, 49, 12, 33, 10, 6, 17, 17, 64, 50, 49, 135, 87, 92, 156, 65, 65, 103, 39, 38, 50, 232, 33, 7, 22, 17, 18, 50, 33, 34, 86, 54, 51, 65, 19, 19, 16, 1, 7, 5, 33, 6, 20, 16, 15, 46, 32, 31, 84, 55, 51, 68, 21, 21, 20, 3, 2, 6, 4, 100, 1, 197, 254, 59, 251, 20, 1, 208, 254, 48, 2, 246, 211, 76, 154, 71, 70, 123, 47, 46, 54, 2, 2, 49, 44, 45, 124, 72, 72, 159, 80, 212, 75, 152, 70, 71, 123, 46, 47, 55, 2, 2, 48, 44, 44, 123, 72, 72, 160, 1, 39, 215, 43, 96, 46, 47, 84, 31, 31, 35, 2, 2, 43, 34, 34, 86, 45, 45, 86, 35, 215, 43, 95, 46, 46, 83, 32, 31, 35, 2, 2, 42, 33, 33, 84, 44, 45, 88, 0, 0, 4, 0, 79, 255, 109, 4, 70, 4, 199, 0, 3, 0, 7, 0, 33, 0, 62, 0, 0, 65, 19, 35, 3, 19, 19, 35, 3, 1, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 55, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 23, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 23, 22, 6, 7, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 2, 194, 80, 166, 80, 5, 83, 168, 83, 254, 227, 2, 11, 41, 53, 52, 168, 116, 121, 199, 73, 73, 91, 14, 3, 11, 40, 52, 53, 168, 117, 122, 199, 73, 73, 91, 255, 2, 7, 39, 34, 33, 99, 69, 43, 60, 20, 19, 21, 5, 4, 3, 3, 2, 8, 37, 33, 34, 99, 68, 65, 73, 16, 17, 2, 2, 252, 1, 203, 254, 53, 252, 113, 1, 221, 254, 35, 2, 179, 21, 107, 195, 74, 75, 91, 2, 3, 87, 76, 76, 203, 114, 22, 107, 196, 76, 75, 92, 2, 3, 88, 77, 77, 205, 135, 21, 58, 120, 49, 49, 60, 2, 2, 31, 25, 25, 65, 35, 36, 73, 33, 21, 57, 119, 48, 49, 61, 2, 2, 65, 48, 47, 111, 0, 3, 0, 4, 255, 233, 5, 41, 7, 45, 0, 106, 0, 142, 0, 155, 0, 0, 65, 33, 3, 7, 6, 6, 7, 6, 6, 7, 6, 6, 35, 38, 38, 39, 38, 38, 39, 38, 54, 55, 19, 54, 54, 55, 54, 54, 55, 55, 6, 6, 7, 6, 6, 7, 3, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 55, 19, 54, 38, 39, 38, 38, 39, 38, 38, 39, 7, 22, 22, 23, 22, 22, 23, 22, 6, 7, 3, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 52, 54, 55, 55, 19, 22, 22, 23, 22, 22, 23, 51, 55, 35, 34, 38, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 7, 23, 55, 54, 54, 55, 54, 54, 51, 50, 22, 1, 23, 54, 54, 55, 54, 54, 55, 55, 39, 7, 6, 6, 3, 46, 254, 250, 67, 5, 1, 5, 3, 3, 10, 6, 12, 39, 31, 33, 37, 8, 4, 5, 1, 1, 1, 1, 107, 7, 29, 24, 24, 66, 45, 27, 101, 170, 64, 64, 83, 14, 108, 4, 4, 8, 9, 34, 24, 43, 132, 84, 54, 87, 38, 13, 25, 12, 8, 20, 11, 31, 82, 47, 90, 151, 57, 31, 49, 18, 16, 21, 5, 108, 5, 6, 10, 10, 34, 23, 47, 142, 91, 23, 41, 48, 11, 4, 6, 1, 2, 2, 2, 109, 2, 7, 5, 5, 12, 8, 16, 48, 34, 19, 24, 6, 7, 5, 1, 3, 1, 5, 230, 26, 53, 27, 23, 47, 25, 20, 9, 27, 24, 45, 21, 29, 57, 28, 49, 99, 54, 64, 100, 31, 21, 25, 3, 3, 130, 2, 4, 17, 13, 16, 44, 28, 51, 96, 254, 240, 85, 28, 52, 21, 21, 28, 5, 14, 146, 18, 10, 51, 3, 48, 254, 97, 33, 11, 26, 13, 14, 29, 13, 25, 34, 1, 30, 24, 11, 23, 12, 14, 30, 14, 2, 156, 41, 72, 27, 27, 31, 2, 227, 2, 57, 54, 54, 158, 102, 253, 101, 37, 70, 31, 39, 69, 28, 51, 59, 1, 1, 35, 30, 11, 24, 13, 14, 25, 11, 29, 31, 1, 2, 54, 51, 27, 69, 39, 33, 73, 40, 2, 155, 46, 85, 38, 37, 66, 28, 56, 66, 5, 231, 4, 34, 26, 11, 24, 13, 19, 41, 22, 253, 98, 14, 30, 14, 13, 26, 11, 24, 29, 2, 1, 18, 15, 14, 35, 18, 18, 34, 12, 31, 4, 220, 13, 23, 10, 7, 10, 1, 136, 8, 6, 9, 25, 13, 22, 37, 1, 1, 41, 40, 26, 70, 42, 38, 1, 19, 22, 36, 13, 16, 18, 37, 254, 191, 63, 16, 43, 26, 25, 60, 33, 101, 1, 94, 45, 70, 0, 0, 3, 0, 26, 255, 232, 4, 141, 5, 225, 0, 92, 0, 128, 0, 141, 0, 0, 65, 7, 22, 22, 23, 22, 6, 7, 3, 6, 6, 7, 6, 6, 35, 6, 38, 39, 38, 38, 53, 38, 54, 55, 55, 35, 7, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 53, 52, 54, 55, 19, 54, 54, 55, 54, 54, 55, 55, 6, 6, 7, 6, 6, 7, 3, 6, 22, 23, 22, 22, 23, 22, 22, 23, 50, 54, 55, 54, 54, 55, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 19, 54, 38, 39, 38, 38, 19, 35, 34, 38, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 7, 23, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 23, 22, 22, 51, 51, 5, 23, 54, 54, 55, 54, 54, 55, 55, 39, 7, 6, 6, 3, 85, 14, 39, 34, 5, 4, 8, 4, 53, 3, 9, 10, 11, 35, 30, 32, 34, 7, 3, 3, 1, 2, 1, 37, 229, 36, 2, 5, 4, 3, 9, 6, 13, 41, 32, 27, 25, 3, 1, 1, 3, 1, 53, 6, 17, 17, 17, 55, 44, 21, 90, 148, 54, 55, 70, 12, 57, 3, 5, 7, 8, 25, 18, 36, 110, 74, 40, 67, 29, 28, 47, 21, 9, 29, 19, 26, 69, 41, 79, 127, 47, 47, 58, 10, 56, 7, 32, 39, 39, 121, 176, 48, 20, 38, 19, 32, 61, 30, 47, 96, 53, 62, 98, 32, 24, 29, 4, 3, 133, 2, 4, 17, 13, 16, 46, 28, 49, 94, 47, 29, 60, 31, 18, 38, 20, 42, 253, 241, 85, 28, 52, 21, 21, 28, 5, 14, 146, 18, 10, 51, 4, 79, 196, 3, 39, 28, 28, 66, 30, 254, 152, 23, 55, 24, 25, 33, 1, 25, 20, 8, 19, 10, 14, 30, 14, 245, 245, 14, 27, 13, 11, 22, 10, 20, 24, 2, 2, 36, 25, 8, 17, 9, 17, 32, 13, 1, 104, 37, 71, 28, 27, 35, 1, 193, 2, 57, 50, 51, 143, 89, 254, 129, 35, 67, 31, 30, 55, 24, 49, 59, 1, 23, 21, 21, 55, 32, 29, 50, 18, 25, 28, 1, 3, 54, 48, 48, 130, 73, 1, 127, 77, 138, 53, 53, 65, 1, 29, 6, 5, 9, 27, 14, 22, 37, 1, 1, 36, 36, 27, 74, 46, 38, 1, 19, 22, 36, 13, 17, 17, 38, 22, 14, 28, 9, 6, 7, 241, 63, 16, 43, 26, 25, 60, 33, 101, 1, 94, 45, 70, 0, 2, 0, 35, 255, 233, 5, 31, 7, 7, 0, 7, 0, 82, 0, 0, 65, 7, 33, 7, 51, 55, 33, 55, 1, 22, 54, 55, 54, 54, 55, 54, 54, 55, 19, 35, 3, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 53, 52, 54, 55, 19, 35, 3, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 53, 52, 54, 55, 19, 35, 3, 6, 22, 23, 22, 22, 23, 22, 22, 23, 50, 54, 55, 54, 54, 55, 22, 22, 23, 22, 22, 1, 207, 20, 1, 9, 23, 178, 22, 1, 25, 20, 254, 76, 86, 131, 47, 23, 38, 13, 14, 19, 5, 185, 254, 183, 2, 4, 4, 2, 6, 4, 11, 36, 28, 30, 29, 5, 2, 3, 3, 1, 181, 253, 183, 2, 5, 3, 3, 7, 5, 12, 38, 30, 29, 26, 4, 2, 2, 3, 1, 183, 253, 184, 4, 2, 6, 6, 25, 19, 35, 115, 83, 36, 62, 27, 27, 48, 22, 11, 31, 19, 29, 71, 7, 7, 112, 127, 127, 112, 248, 228, 2, 64, 55, 27, 65, 35, 35, 75, 38, 4, 61, 251, 192, 12, 33, 17, 10, 21, 10, 26, 36, 1, 1, 36, 26, 10, 23, 11, 15, 30, 12, 4, 64, 251, 192, 12, 31, 15, 12, 23, 11, 26, 35, 1, 1, 38, 26, 10, 22, 10, 16, 30, 11, 4, 64, 251, 193, 35, 70, 32, 36, 66, 28, 55, 67, 1, 17, 17, 16, 47, 28, 24, 39, 15, 22, 24, 0, 2, 0, 30, 255, 232, 4, 191, 5, 177, 0, 7, 0, 82, 0, 0, 65, 7, 33, 7, 51, 55, 33, 55, 1, 38, 38, 39, 38, 38, 53, 52, 54, 55, 19, 35, 3, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 54, 54, 55, 19, 35, 3, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 55, 19, 35, 3, 6, 6, 7, 6, 6, 39, 38, 38, 1, 143, 20, 1, 10, 23, 177, 23, 1, 25, 20, 254, 99, 6, 8, 1, 1, 1, 4, 1, 113, 253, 113, 3, 11, 12, 5, 13, 8, 11, 30, 20, 19, 22, 6, 6, 2, 1, 1, 4, 1, 113, 247, 115, 5, 2, 7, 6, 18, 14, 31, 111, 85, 38, 65, 28, 27, 48, 21, 11, 32, 20, 28, 69, 40, 89, 129, 45, 24, 37, 13, 11, 15, 5, 116, 247, 114, 2, 8, 10, 10, 35, 30, 17, 24, 5, 177, 112, 127, 127, 112, 251, 51, 10, 26, 14, 9, 20, 10, 21, 40, 14, 2, 178, 253, 78, 23, 67, 30, 13, 23, 9, 13, 14, 1, 1, 23, 18, 17, 43, 21, 21, 36, 11, 2, 178, 253, 79, 41, 83, 39, 30, 58, 26, 59, 77, 1, 1, 21, 18, 18, 50, 29, 28, 44, 16, 22, 24, 1, 3, 72, 60, 33, 76, 40, 33, 69, 35, 2, 176, 253, 78, 20, 65, 31, 31, 45, 1, 1, 14, 0, 0, 1, 0, 114, 254, 147, 4, 127, 5, 199, 0, 54, 0, 0, 65, 19, 39, 38, 38, 39, 38, 38, 39, 38, 54, 55, 19, 54, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 33, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 3, 6, 20, 23, 22, 22, 23, 22, 22, 23, 3, 2, 162, 99, 189, 72, 83, 19, 8, 10, 3, 3, 3, 5, 45, 6, 19, 16, 15, 43, 29, 29, 76, 47, 58, 65, 15, 14, 2, 3, 1, 19, 6, 39, 49, 49, 159, 114, 85, 145, 60, 60, 95, 36, 36, 47, 11, 46, 6, 6, 6, 29, 22, 42, 144, 104, 68, 254, 147, 2, 58, 2, 4, 75, 56, 23, 49, 25, 36, 73, 33, 1, 37, 37, 85, 43, 42, 78, 30, 29, 33, 1, 2, 52, 40, 40, 97, 46, 105, 182, 68, 67, 80, 2, 2, 47, 42, 42, 116, 68, 68, 149, 75, 254, 222, 47, 94, 46, 49, 94, 42, 81, 117, 23, 254, 158, 0, 1, 0, 151, 254, 145, 4, 79, 4, 81, 0, 42, 0, 0, 65, 19, 39, 38, 38, 39, 38, 54, 55, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 23, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 3, 2, 147, 99, 185, 61, 64, 13, 13, 3, 5, 3, 7, 36, 32, 31, 94, 67, 42, 56, 17, 17, 13, 1, 255, 4, 48, 48, 49, 144, 93, 119, 194, 71, 72, 89, 13, 3, 9, 22, 35, 34, 122, 92, 69, 254, 145, 2, 57, 2, 3, 67, 48, 47, 108, 46, 30, 55, 117, 48, 48, 60, 3, 2, 34, 27, 27, 69, 37, 1, 90, 152, 56, 56, 65, 2, 3, 87, 76, 76, 202, 111, 31, 86, 170, 72, 73, 108, 22, 254, 154, 0, 0, 1, 0, 54, 0, 0, 4, 184, 5, 62, 0, 19, 0, 0, 65, 1, 23, 55, 37, 1, 35, 3, 39, 7, 23, 1, 39, 7, 23, 1, 51, 19, 23, 55, 2, 46, 1, 13, 249, 89, 255, 0, 1, 43, 183, 237, 253, 86, 253, 254, 245, 254, 84, 251, 254, 218, 186, 232, 253, 84, 1, 184, 1, 114, 169, 116, 171, 1, 158, 254, 184, 171, 119, 171, 254, 141, 171, 117, 171, 254, 105, 1, 65, 170, 117, 0, 0, 1, 253, 162, 4, 162, 0, 157, 5, 253, 0, 7, 0, 0, 65, 33, 55, 39, 7, 33, 7, 23, 254, 102, 2, 16, 39, 173, 18, 253, 238, 42, 174, 5, 32, 220, 1, 108, 238, 1, 0, 1, 253, 148, 5, 22, 0, 121, 6, 20, 0, 35, 0, 0, 65, 35, 7, 51, 50, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 7, 23, 55, 54, 38, 39, 38, 38, 35, 38, 6, 7, 6, 6, 7, 6, 6, 253, 198, 41, 9, 51, 22, 42, 21, 39, 78, 38, 59, 117, 59, 23, 32, 10, 9, 8, 2, 2, 130, 4, 3, 27, 27, 28, 82, 51, 62, 117, 58, 35, 70, 36, 24, 49, 5, 157, 135, 6, 5, 9, 29, 15, 22, 36, 3, 1, 14, 12, 12, 36, 23, 20, 1, 40, 53, 80, 27, 26, 27, 1, 36, 22, 14, 25, 9, 6, 7, 0, 1, 254, 164, 5, 18, 255, 124, 6, 91, 0, 5, 0, 0, 65, 23, 55, 39, 55, 39, 254, 164, 132, 84, 37, 26, 185, 5, 237, 219, 75, 113, 135, 6, 0, 1, 254, 109, 5, 19, 255, 136, 6, 91, 0, 5, 0, 0, 65, 55, 55, 15, 2, 254, 182, 187, 23, 186, 18, 79, 5, 19, 195, 133, 5, 109, 116, 0, 0, 8, 254, 170, 254, 195, 6, 9, 5, 176, 0, 25, 0, 51, 0, 77, 0, 103, 0, 129, 0, 155, 0, 181, 0, 207, 0, 0, 65, 51, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 7, 51, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 1, 51, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 7, 51, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 19, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 7, 51, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 1, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 7, 51, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 1, 51, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 7, 51, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 1, 51, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 7, 51, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 1, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 7, 51, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 19, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 7, 51, 52, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 2, 6, 111, 5, 17, 12, 13, 37, 25, 24, 32, 9, 8, 6, 1, 109, 1, 23, 23, 24, 73, 46, 45, 75, 28, 29, 36, 2, 7, 111, 5, 17, 12, 13, 36, 25, 24, 32, 9, 8, 6, 1, 110, 1, 22, 22, 24, 75, 47, 45, 74, 28, 29, 36, 90, 109, 5, 14, 10, 13, 40, 27, 24, 31, 9, 9, 5, 1, 110, 1, 19, 19, 24, 77, 50, 45, 74, 28, 29, 35, 254, 226, 108, 5, 13, 10, 13, 40, 28, 24, 31, 9, 9, 5, 1, 110, 1, 23, 22, 24, 74, 46, 45, 74, 28, 28, 36, 253, 153, 111, 4, 12, 9, 13, 42, 29, 24, 31, 9, 8, 6, 1, 110, 1, 19, 18, 25, 78, 50, 45, 75, 28, 28, 36, 254, 171, 112, 5, 17, 11, 14, 37, 25, 24, 32, 9, 8, 6, 1, 109, 1, 23, 22, 25, 73, 46, 49, 82, 29, 24, 31, 254, 251, 109, 6, 18, 13, 13, 35, 24, 24, 32, 9, 8, 6, 1, 109, 1, 17, 16, 23, 80, 52, 45, 75, 28, 29, 35, 65, 110, 5, 14, 9, 14, 39, 28, 24, 31, 9, 8, 6, 1, 111, 19, 18, 25, 77, 50, 45, 75, 28, 29, 35, 4, 244, 20, 35, 13, 15, 17, 16, 14, 14, 37, 21, 42, 68, 24, 26, 28, 1, 1, 26, 24, 25, 70, 254, 192, 20, 35, 13, 15, 17, 16, 14, 14, 37, 21, 41, 67, 24, 27, 29, 1, 1, 26, 24, 25, 70, 253, 221, 1, 17, 32, 12, 18, 21, 16, 14, 14, 37, 21, 38, 63, 24, 30, 33, 1, 1, 26, 24, 25, 71, 253, 206, 1, 17, 31, 12, 18, 22, 16, 14, 14, 37, 21, 41, 67, 24, 27, 29, 1, 1, 26, 24, 25, 71, 254, 186, 15, 29, 12, 20, 24, 16, 14, 14, 37, 21, 37, 63, 23, 31, 34, 1, 1, 26, 24, 25, 70, 4, 239, 19, 35, 13, 15, 18, 16, 14, 14, 37, 21, 41, 68, 24, 26, 29, 1, 1, 31, 30, 23, 65, 253, 225, 1, 21, 36, 14, 13, 16, 16, 14, 14, 37, 21, 35, 60, 23, 33, 37, 1, 1, 26, 24, 25, 71, 253, 206, 1, 17, 32, 13, 17, 21, 16, 14, 14, 37, 21, 37, 63, 23, 31, 34, 1, 1, 26, 24, 25, 71, 0, 0, 8, 254, 204, 254, 99, 5, 208, 5, 198, 0, 4, 0, 9, 0, 14, 0, 19, 0, 24, 0, 29, 0, 34, 0, 39, 0, 0, 69, 7, 3, 51, 19, 19, 55, 19, 35, 3, 1, 7, 5, 55, 37, 5, 55, 37, 7, 5, 1, 23, 37, 39, 5, 1, 39, 5, 23, 37, 19, 55, 3, 7, 19, 1, 7, 19, 55, 3, 2, 65, 133, 126, 102, 170, 17, 132, 126, 102, 170, 2, 61, 13, 1, 62, 17, 254, 200, 251, 119, 13, 254, 193, 17, 1, 57, 3, 229, 92, 1, 48, 63, 254, 181, 252, 192, 92, 254, 207, 64, 1, 74, 21, 103, 150, 65, 95, 3, 40, 102, 149, 66, 94, 58, 3, 254, 160, 1, 82, 4, 175, 3, 1, 95, 254, 175, 254, 3, 140, 68, 90, 128, 210, 140, 68, 90, 128, 2, 68, 98, 190, 78, 152, 252, 25, 98, 190, 79, 152, 3, 90, 96, 1, 47, 59, 254, 173, 253, 68, 97, 254, 209, 61, 1, 81, 0, 3, 0, 40, 0, 0, 4, 184, 5, 176, 0, 3, 0, 20, 0, 35, 0, 0, 65, 1, 7, 1, 37, 23, 50, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 37, 3, 33, 19, 19, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 4, 22, 254, 190, 122, 1, 66, 253, 251, 224, 105, 197, 78, 78, 101, 9, 9, 59, 59, 60, 168, 101, 254, 43, 252, 1, 18, 132, 81, 223, 50, 72, 22, 21, 14, 6, 7, 49, 37, 37, 94, 53, 1, 140, 2, 73, 53, 253, 184, 190, 1, 61, 59, 58, 171, 112, 104, 168, 60, 60, 66, 3, 1, 250, 80, 2, 250, 1, 210, 1, 2, 39, 31, 32, 83, 47, 54, 86, 30, 30, 33, 1, 0, 3, 255, 220, 254, 96, 4, 53, 4, 79, 0, 3, 0, 39, 0, 71, 0, 0, 69, 1, 7, 1, 19, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 55, 7, 1, 33, 19, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 37, 7, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 39, 19, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 23, 22, 20, 3, 182, 254, 180, 107, 1, 74, 228, 2, 6, 3, 12, 13, 49, 39, 40, 110, 74, 47, 85, 37, 31, 56, 26, 17, 248, 254, 252, 1, 15, 97, 20, 46, 26, 35, 80, 43, 77, 127, 52, 51, 79, 29, 28, 36, 254, 250, 2, 4, 14, 12, 8, 21, 14, 32, 96, 68, 29, 49, 21, 22, 34, 12, 80, 22, 51, 29, 23, 52, 29, 34, 50, 18, 14, 20, 7, 14, 18, 1, 206, 72, 254, 50, 2, 115, 22, 61, 127, 60, 59, 106, 41, 40, 47, 2, 1, 20, 19, 16, 45, 28, 108, 1, 250, 38, 2, 0, 24, 39, 14, 19, 20, 1, 2, 45, 40, 40, 108, 63, 63, 135, 88, 21, 32, 69, 33, 24, 47, 21, 50, 62, 2, 1, 13, 12, 13, 43, 30, 1, 198, 29, 45, 13, 11, 11, 1, 1, 22, 18, 14, 38, 21, 48, 109, 0, 1, 0, 43, 0, 0, 5, 26, 7, 31, 0, 7, 0, 0, 65, 19, 33, 3, 33, 3, 33, 19, 4, 179, 103, 254, 240, 64, 253, 94, 253, 1, 18, 213, 4, 204, 2, 83, 254, 145, 250, 80, 4, 204, 0, 1, 0, 40, 0, 0, 4, 201, 5, 117, 0, 7, 0, 0, 65, 19, 33, 3, 33, 3, 33, 19, 4, 108, 93, 254, 241, 55, 253, 97, 188, 1, 14, 149, 3, 88, 2, 29, 254, 197, 251, 198, 3, 88, 0, 1, 0, 32, 254, 176, 4, 176, 5, 176, 0, 33, 0, 0, 65, 55, 33, 3, 33, 19, 51, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 7, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 35, 19, 4, 136, 40, 252, 109, 253, 1, 18, 105, 181, 80, 100, 26, 26, 12, 9, 9, 42, 38, 38, 111, 78, 24, 133, 215, 79, 78, 96, 14, 14, 55, 64, 65, 199, 130, 152, 68, 4, 204, 228, 250, 80, 2, 95, 3, 62, 50, 50, 129, 70, 69, 130, 50, 51, 63, 3, 213, 3, 88, 78, 78, 215, 130, 129, 211, 76, 75, 85, 3, 1, 137, 0, 0, 1, 0, 40, 254, 224, 4, 109, 4, 58, 0, 39, 0, 0, 65, 55, 33, 3, 33, 19, 51, 22, 22, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 23, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 35, 55, 4, 69, 40, 252, 119, 188, 1, 14, 76, 179, 35, 61, 24, 17, 29, 11, 22, 17, 7, 7, 44, 32, 33, 84, 48, 91, 79, 149, 59, 59, 77, 8, 10, 64, 64, 31, 75, 43, 46, 104, 56, 150, 34, 3, 88, 226, 251, 198, 1, 179, 1, 15, 13, 10, 25, 15, 32, 85, 53, 53, 87, 34, 35, 53, 19, 193, 26, 87, 60, 60, 150, 89, 114, 177, 61, 29, 45, 16, 17, 18, 1, 194, 0, 1, 0, 25, 0, 0, 5, 101, 5, 176, 0, 20, 0, 0, 65, 33, 1, 35, 19, 35, 3, 35, 19, 33, 3, 33, 19, 51, 7, 51, 55, 23, 19, 33, 3, 5, 101, 254, 164, 254, 176, 13, 51, 164, 46, 76, 104, 254, 237, 253, 1, 19, 106, 77, 41, 164, 44, 29, 140, 1, 80, 200, 5, 176, 253, 167, 1, 3, 254, 255, 2, 87, 250, 80, 2, 91, 229, 230, 1, 253, 165, 3, 20, 0, 0, 1, 0, 23, 0, 0, 4, 227, 4, 58, 0, 20, 0, 0, 65, 33, 3, 35, 55, 35, 7, 35, 19, 33, 3, 33, 19, 51, 7, 51, 55, 23, 19, 33, 3, 4, 227, 254, 159, 236, 42, 40, 151, 38, 65, 77, 254, 240, 188, 1, 16, 74, 66, 35, 151, 34, 50, 99, 1, 79, 206, 4, 58, 254, 96, 194, 194, 1, 160, 251, 198, 1, 151, 174, 173, 1, 254, 107, 2, 42, 0, 1, 0, 120, 0, 0, 5, 34, 5, 176, 0, 14, 0, 0, 65, 19, 33, 3, 1, 33, 1, 35, 19, 33, 7, 33, 3, 33, 19, 2, 138, 137, 1, 42, 192, 1, 165, 254, 185, 254, 204, 48, 106, 253, 194, 43, 1, 46, 210, 1, 17, 107, 2, 79, 253, 177, 2, 233, 2, 199, 253, 187, 2, 69, 241, 251, 65, 2, 80, 0, 0, 1, 0, 67, 0, 0, 4, 228, 4, 58, 0, 14, 0, 0, 65, 19, 33, 3, 1, 33, 3, 35, 19, 33, 7, 33, 3, 33, 19, 2, 126, 95, 1, 90, 193, 1, 110, 254, 155, 221, 65, 76, 253, 192, 42, 1, 42, 146, 1, 22, 74, 1, 137, 254, 119, 2, 45, 2, 13, 254, 108, 1, 148, 242, 252, 184, 1, 138, 0, 1, 255, 212, 0, 0, 5, 30, 5, 176, 0, 13, 0, 0, 65, 19, 33, 3, 33, 19, 51, 3, 33, 19, 33, 55, 33, 3, 1, 112, 104, 254, 249, 253, 1, 7, 107, 253, 107, 1, 7, 211, 1, 65, 43, 253, 183, 103, 3, 94, 2, 82, 250, 80, 2, 102, 253, 154, 4, 191, 241, 253, 174, 0, 0, 1, 255, 235, 0, 0, 4, 217, 4, 58, 0, 13, 0, 0, 65, 19, 33, 3, 33, 19, 33, 3, 33, 19, 33, 55, 33, 3, 1, 115, 75, 254, 233, 188, 1, 23, 72, 1, 0, 72, 1, 23, 146, 1, 4, 42, 253, 229, 75, 2, 139, 1, 175, 251, 198, 1, 156, 254, 100, 3, 73, 241, 254, 81, 0, 1, 255, 200, 254, 162, 4, 83, 5, 176, 0, 47, 0, 0, 65, 19, 33, 3, 33, 19, 51, 3, 33, 19, 23, 22, 22, 23, 22, 20, 7, 6, 6, 7, 6, 6, 7, 6, 6, 7, 6, 6, 7, 7, 54, 54, 55, 54, 54, 55, 54, 54, 55, 54, 52, 39, 38, 38, 39, 38, 38, 39, 2, 251, 108, 253, 93, 252, 1, 5, 210, 158, 209, 1, 5, 108, 20, 30, 35, 8, 7, 3, 4, 10, 2, 5, 10, 8, 9, 27, 21, 21, 60, 42, 25, 126, 181, 62, 30, 48, 18, 18, 24, 7, 7, 10, 11, 46, 38, 39, 111, 75, 3, 64, 2, 112, 250, 80, 4, 183, 251, 73, 2, 80, 1, 5, 45, 33, 33, 79, 38, 39, 65, 20, 33, 76, 38, 38, 73, 28, 29, 37, 4, 228, 4, 105, 84, 41, 96, 52, 52, 111, 56, 60, 131, 64, 63, 116, 45, 44, 55, 3, 0, 1, 255, 233, 254, 232, 4, 74, 4, 58, 0, 35, 0, 0, 65, 19, 33, 3, 33, 19, 51, 3, 33, 19, 23, 22, 22, 23, 22, 6, 7, 6, 6, 7, 6, 6, 7, 23, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 2, 234, 78, 253, 109, 188, 1, 4, 147, 137, 147, 1, 6, 81, 5, 38, 39, 7, 7, 5, 5, 6, 26, 21, 22, 63, 43, 93, 79, 131, 49, 48, 59, 8, 9, 34, 42, 42, 135, 92, 2, 160, 1, 154, 251, 198, 3, 73, 252, 183, 1, 177, 1, 11, 50, 33, 34, 76, 34, 44, 83, 36, 36, 57, 18, 200, 21, 93, 64, 63, 153, 80, 88, 166, 66, 65, 84, 8, 0, 2, 0, 78, 255, 234, 4, 192, 5, 199, 0, 83, 0, 115, 0, 0, 69, 55, 38, 38, 39, 54, 54, 55, 54, 54, 55, 19, 54, 54, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 3, 6, 22, 23, 22, 22, 23, 34, 34, 35, 38, 38, 39, 38, 38, 39, 38, 54, 55, 19, 54, 54, 55, 54, 54, 55, 54, 54, 55, 55, 6, 6, 7, 6, 6, 7, 6, 6, 7, 3, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 22, 22, 3, 19, 54, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 6, 7, 6, 6, 7, 3, 6, 6, 7, 6, 6, 7, 38, 38, 39, 38, 54, 4, 43, 21, 29, 56, 29, 30, 50, 20, 32, 43, 12, 48, 6, 1, 8, 8, 38, 32, 32, 93, 65, 62, 101, 40, 40, 60, 21, 22, 27, 7, 51, 9, 2, 10, 9, 33, 22, 7, 6, 7, 48, 67, 21, 22, 22, 4, 4, 3, 5, 51, 3, 9, 8, 7, 21, 16, 16, 44, 29, 30, 74, 122, 49, 50, 75, 27, 28, 36, 10, 51, 10, 12, 22, 22, 76, 54, 53, 139, 84, 66, 121, 57, 68, 141, 225, 49, 1, 3, 4, 3, 12, 10, 9, 28, 20, 18, 19, 4, 3, 2, 3, 3, 6, 1, 50, 8, 20, 14, 12, 30, 18, 11, 13, 2, 2, 5, 19, 221, 1, 4, 7, 36, 77, 39, 64, 139, 74, 1, 47, 49, 115, 59, 58, 109, 43, 42, 53, 2, 2, 44, 37, 38, 101, 55, 55, 112, 49, 254, 192, 63, 123, 59, 52, 104, 50, 2, 39, 31, 31, 79, 42, 42, 84, 36, 1, 69, 21, 62, 34, 34, 69, 28, 28, 36, 3, 237, 2, 48, 40, 40, 106, 61, 61, 131, 65, 254, 190, 76, 151, 69, 69, 118, 44, 44, 51, 1, 2, 35, 29, 30, 28, 2, 168, 1, 69, 11, 46, 29, 29, 60, 25, 25, 30, 1, 1, 36, 26, 27, 64, 29, 30, 45, 9, 254, 179, 39, 74, 36, 30, 61, 29, 32, 66, 33, 39, 80, 0, 0, 2, 0, 43, 255, 230, 4, 162, 4, 80, 0, 74, 0, 103, 0, 0, 69, 55, 38, 38, 39, 54, 54, 55, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 34, 38, 35, 38, 38, 39, 38, 38, 39, 38, 38, 55, 55, 54, 54, 55, 54, 54, 55, 55, 6, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 22, 22, 1, 55, 54, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 7, 6, 6, 7, 38, 38, 39, 38, 38, 4, 78, 13, 37, 73, 37, 79, 98, 16, 20, 5, 4, 12, 12, 43, 33, 34, 91, 59, 50, 86, 37, 27, 48, 20, 48, 57, 10, 20, 6, 1, 8, 6, 21, 15, 5, 11, 5, 34, 54, 20, 14, 22, 8, 23, 12, 8, 13, 6, 23, 20, 20, 59, 43, 28, 104, 167, 62, 62, 77, 13, 12, 12, 54, 60, 26, 63, 36, 49, 118, 67, 69, 132, 64, 78, 161, 254, 193, 19, 1, 5, 4, 4, 11, 7, 14, 46, 33, 31, 30, 5, 2, 1, 1, 1, 2, 1, 18, 10, 62, 56, 20, 27, 8, 8, 3, 26, 167, 1, 4, 6, 71, 170, 106, 143, 49, 105, 51, 50, 91, 35, 35, 42, 2, 1, 24, 22, 16, 44, 26, 60, 151, 76, 148, 48, 92, 45, 34, 69, 34, 2, 5, 23, 18, 12, 29, 16, 44, 111, 59, 96, 38, 79, 35, 34, 49, 8, 232, 3, 75, 64, 64, 172, 99, 93, 112, 200, 75, 32, 55, 20, 28, 31, 1, 1, 26, 23, 28, 24, 2, 35, 154, 12, 28, 16, 16, 35, 16, 31, 42, 1, 1, 53, 35, 18, 36, 17, 16, 28, 9, 146, 72, 118, 46, 28, 58, 30, 30, 66, 0, 0, 1, 0, 107, 254, 161, 4, 204, 5, 176, 0, 15, 0, 0, 65, 3, 33, 3, 33, 19, 35, 19, 33, 3, 33, 19, 51, 55, 33, 7, 1, 76, 211, 2, 218, 61, 1, 1, 119, 148, 210, 254, 240, 210, 254, 202, 167, 214, 43, 253, 57, 42, 4, 191, 251, 65, 254, 161, 2, 85, 4, 186, 251, 72, 3, 199, 241, 241, 0, 1, 0, 73, 254, 191, 4, 96, 4, 58, 0, 15, 0, 0, 65, 3, 33, 3, 33, 19, 35, 19, 33, 3, 33, 19, 51, 55, 33, 7, 1, 0, 146, 2, 174, 56, 1, 6, 115, 144, 147, 254, 232, 147, 254, 249, 105, 166, 43, 253, 139, 42, 3, 73, 252, 183, 254, 191, 2, 47, 3, 76, 252, 182, 2, 89, 241, 241, 0, 2, 0, 190, 0, 0, 4, 188, 5, 176, 0, 3, 0, 29, 0, 0, 65, 19, 35, 3, 1, 33, 3, 6, 6, 39, 38, 38, 39, 38, 54, 55, 19, 33, 3, 6, 22, 23, 22, 22, 51, 22, 54, 55, 3, 33, 2, 82, 131, 162, 131, 3, 12, 254, 237, 123, 51, 102, 52, 54, 59, 12, 13, 1, 5, 74, 254, 238, 75, 12, 38, 49, 48, 157, 108, 51, 99, 48, 104, 1, 19, 1, 31, 2, 244, 253, 12, 4, 145, 253, 92, 11, 15, 2, 2, 44, 34, 34, 87, 45, 1, 198, 254, 59, 103, 174, 63, 64, 72, 1, 16, 14, 253, 212, 0, 2, 0, 129, 0, 0, 4, 140, 4, 58, 0, 3, 0, 29, 0, 0, 101, 19, 35, 3, 5, 19, 33, 3, 6, 6, 39, 38, 38, 39, 38, 38, 55, 19, 33, 3, 6, 22, 23, 22, 22, 51, 22, 54, 55, 3, 2, 90, 111, 162, 111, 2, 24, 188, 254, 240, 94, 53, 104, 54, 49, 71, 22, 23, 17, 6, 55, 254, 241, 55, 11, 58, 60, 59, 167, 98, 51, 100, 50, 68, 165, 2, 128, 253, 128, 165, 4, 58, 254, 3, 9, 12, 2, 1, 21, 22, 22, 70, 51, 1, 85, 254, 172, 106, 155, 51, 51, 50, 1, 11, 11, 254, 162, 0, 0, 1, 0, 11, 0, 0, 4, 44, 5, 176, 0, 25, 0, 0, 115, 33, 19, 54, 54, 23, 22, 22, 23, 22, 22, 7, 3, 33, 19, 54, 38, 39, 38, 38, 39, 38, 6, 7, 19, 33, 11, 1, 28, 119, 52, 104, 53, 52, 60, 14, 13, 2, 5, 68, 1, 29, 80, 12, 47, 53, 54, 163, 106, 51, 99, 50, 102, 254, 228, 2, 147, 10, 15, 2, 2, 41, 32, 33, 83, 43, 254, 64, 1, 193, 103, 176, 65, 64, 74, 1, 1, 14, 11, 2, 36, 0, 0, 2, 0, 38, 255, 233, 4, 157, 5, 197, 0, 66, 0, 87, 0, 0, 69, 22, 54, 55, 54, 54, 55, 39, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 39, 38, 54, 55, 55, 5, 55, 54, 54, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 7, 38, 38, 55, 52, 54, 55, 39, 6, 22, 23, 22, 22, 23, 7, 6, 6, 23, 22, 22, 23, 22, 22, 19, 55, 54, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 23, 20, 6, 7, 7, 2, 120, 50, 104, 49, 38, 72, 34, 22, 34, 72, 36, 28, 56, 29, 71, 87, 21, 10, 11, 2, 2, 4, 5, 6, 2, 107, 35, 10, 4, 10, 11, 50, 43, 43, 126, 87, 80, 136, 56, 57, 91, 35, 24, 39, 15, 24, 13, 9, 1, 8, 3, 197, 9, 2, 19, 18, 80, 68, 12, 8, 3, 6, 7, 36, 29, 51, 176, 35, 11, 6, 13, 8, 13, 36, 24, 24, 62, 39, 36, 47, 14, 14, 13, 1, 6, 4, 9, 22, 1, 10, 11, 9, 26, 18, 251, 14, 23, 7, 6, 4, 1, 3, 65, 50, 23, 52, 27, 31, 65, 32, 27, 1, 197, 69, 149, 72, 72, 130, 50, 50, 61, 2, 2, 47, 42, 42, 115, 65, 44, 94, 47, 87, 21, 46, 25, 24, 48, 23, 1, 63, 130, 57, 58, 91, 24, 60, 49, 99, 48, 60, 113, 49, 89, 111, 3, 122, 47, 21, 48, 24, 37, 71, 28, 27, 32, 1, 1, 29, 23, 23, 60, 31, 31, 62, 25, 48, 0, 0, 2, 0, 61, 255, 235, 4, 118, 4, 81, 0, 65, 0, 79, 0, 0, 101, 54, 54, 55, 39, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 39, 38, 38, 53, 52, 52, 53, 53, 33, 55, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 38, 38, 39, 38, 54, 55, 39, 6, 22, 23, 22, 22, 23, 7, 6, 6, 21, 22, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 3, 22, 22, 23, 22, 22, 7, 7, 37, 54, 54, 55, 54, 54, 3, 119, 42, 75, 31, 104, 28, 58, 31, 28, 61, 34, 28, 44, 16, 11, 16, 7, 15, 13, 2, 55, 21, 13, 31, 51, 42, 137, 99, 98, 158, 61, 62, 90, 30, 18, 17, 3, 4, 1, 2, 179, 4, 12, 22, 21, 78, 62, 1, 1, 1, 2, 45, 41, 20, 50, 29, 42, 101, 58, 66, 125, 78, 37, 45, 11, 11, 3, 4, 6, 254, 226, 11, 30, 22, 22, 62, 36, 22, 60, 38, 157, 22, 37, 12, 11, 11, 1, 1, 16, 15, 9, 22, 13, 29, 69, 35, 3, 7, 3, 3, 134, 97, 196, 78, 63, 85, 3, 3, 71, 60, 61, 157, 84, 19, 47, 25, 25, 51, 25, 1, 60, 121, 53, 53, 84, 23, 7, 14, 29, 14, 75, 140, 56, 28, 49, 19, 27, 31, 2, 1, 28, 3, 88, 1, 37, 28, 28, 66, 29, 29, 1, 32, 77, 33, 33, 43, 0, 0, 1, 0, 54, 254, 172, 5, 17, 5, 176, 0, 35, 0, 0, 65, 33, 3, 33, 19, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 7, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 39, 1, 33, 1, 35, 2, 70, 254, 237, 253, 1, 20, 105, 217, 74, 84, 20, 20, 4, 7, 9, 42, 37, 38, 112, 78, 24, 132, 214, 79, 79, 97, 15, 10, 19, 35, 31, 102, 78, 49, 1, 222, 254, 162, 254, 148, 104, 5, 176, 250, 80, 2, 92, 2, 3, 69, 52, 52, 125, 60, 70, 130, 50, 51, 63, 2, 215, 3, 88, 78, 78, 215, 129, 91, 179, 77, 66, 108, 26, 16, 2, 130, 253, 175, 0, 0, 1, 0, 43, 254, 214, 4, 180, 4, 58, 0, 34, 0, 0, 65, 1, 33, 1, 35, 19, 33, 3, 33, 19, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 23, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 3, 17, 1, 163, 254, 155, 254, 199, 104, 72, 254, 241, 188, 1, 15, 71, 186, 51, 75, 24, 23, 16, 7, 7, 39, 30, 30, 77, 44, 90, 77, 142, 56, 55, 73, 8, 7, 23, 30, 30, 97, 2, 85, 1, 229, 254, 98, 1, 158, 251, 198, 1, 149, 1, 3, 38, 31, 32, 84, 49, 50, 83, 33, 34, 52, 20, 193, 26, 87, 59, 59, 146, 86, 71, 133, 57, 56, 88, 0, 0, 1, 0, 32, 254, 74, 4, 173, 5, 176, 0, 29, 0, 0, 65, 33, 3, 33, 19, 33, 3, 6, 6, 7, 6, 6, 35, 34, 38, 39, 7, 22, 22, 51, 50, 54, 55, 54, 54, 55, 19, 33, 3, 33, 2, 47, 254, 238, 253, 1, 18, 105, 1, 107, 108, 6, 22, 18, 19, 54, 37, 25, 48, 24, 38, 36, 71, 37, 93, 146, 54, 53, 65, 12, 255, 254, 237, 109, 254, 149, 5, 176, 250, 80, 2, 92, 253, 125, 32, 62, 24, 25, 31, 8, 6, 221, 8, 10, 58, 53, 53, 147, 88, 5, 215, 253, 142, 0, 0, 1, 0, 34, 254, 74, 4, 102, 4, 58, 0, 29, 0, 0, 65, 33, 3, 33, 19, 33, 3, 6, 6, 7, 6, 6, 35, 34, 38, 39, 7, 22, 22, 51, 50, 54, 55, 54, 54, 55, 19, 33, 3, 33, 1, 237, 254, 241, 188, 1, 15, 74, 1, 105, 78, 5, 22, 18, 19, 54, 37, 25, 48, 23, 39, 35, 72, 37, 93, 145, 53, 52, 64, 12, 191, 254, 240, 76, 254, 151, 4, 58, 251, 198, 1, 164, 254, 52, 32, 63, 25, 25, 31, 9, 7, 220, 8, 10, 58, 53, 53, 146, 88, 4, 98, 254, 74, 0, 0, 2, 0, 67, 255, 233, 4, 135, 5, 197, 0, 52, 0, 72, 0, 0, 65, 38, 6, 7, 6, 6, 7, 23, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 23, 22, 6, 7, 7, 37, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 55, 19, 54, 54, 39, 38, 38, 39, 38, 38, 1, 38, 38, 39, 38, 38, 39, 38, 38, 55, 55, 37, 6, 6, 7, 6, 6, 7, 6, 6, 2, 170, 43, 97, 48, 49, 90, 37, 28, 41, 84, 43, 37, 76, 38, 76, 93, 23, 10, 12, 2, 3, 4, 6, 14, 253, 18, 33, 10, 5, 17, 17, 64, 50, 49, 135, 88, 87, 152, 65, 64, 105, 40, 39, 52, 12, 44, 6, 1, 5, 8, 45, 37, 60, 192, 254, 215, 42, 62, 22, 19, 27, 6, 6, 1, 4, 13, 1, 236, 10, 27, 19, 19, 51, 33, 33, 82, 5, 196, 1, 6, 9, 9, 32, 25, 228, 17, 26, 8, 7, 6, 1, 2, 65, 50, 23, 52, 27, 33, 70, 34, 72, 1, 204, 77, 150, 68, 69, 117, 43, 44, 51, 2, 2, 47, 43, 42, 118, 69, 69, 154, 78, 1, 20, 46, 89, 42, 69, 125, 51, 82, 97, 251, 25, 1, 25, 21, 19, 51, 30, 30, 67, 34, 92, 1, 41, 87, 41, 42, 75, 27, 28, 31, 0, 1, 0, 80, 255, 233, 4, 213, 5, 176, 0, 45, 0, 0, 65, 1, 7, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 37, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 39, 1, 55, 33, 7, 3, 105, 254, 125, 34, 148, 75, 99, 24, 16, 9, 7, 7, 51, 38, 38, 94, 49, 45, 70, 23, 24, 24, 2, 254, 240, 3, 62, 59, 58, 162, 96, 102, 198, 79, 79, 105, 9, 7, 33, 39, 36, 108, 72, 33, 1, 173, 33, 252, 114, 41, 4, 202, 254, 162, 194, 1, 3, 51, 47, 31, 82, 49, 52, 80, 27, 28, 28, 2, 1, 30, 26, 26, 72, 44, 1, 99, 157, 54, 55, 59, 2, 2, 53, 54, 54, 165, 111, 84, 147, 59, 52, 77, 19, 7, 1, 146, 195, 228, 0, 0, 1, 0, 5, 254, 115, 4, 135, 4, 58, 0, 45, 0, 0, 65, 1, 7, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 37, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 39, 1, 55, 33, 7, 3, 24, 254, 130, 33, 149, 71, 97, 25, 19, 12, 7, 7, 52, 38, 38, 95, 49, 45, 70, 23, 24, 24, 2, 254, 240, 3, 63, 59, 58, 162, 96, 102, 197, 79, 79, 103, 9, 7, 32, 38, 36, 110, 73, 26, 1, 167, 32, 252, 111, 40, 3, 88, 254, 157, 191, 1, 2, 47, 43, 32, 88, 54, 51, 81, 27, 28, 28, 2, 1, 30, 26, 26, 72, 44, 1, 99, 157, 54, 54, 59, 2, 2, 52, 55, 54, 165, 111, 82, 147, 59, 53, 79, 19, 6, 1, 147, 194, 226, 0, 255, 255, 0, 50, 254, 71, 5, 4, 5, 176, 4, 38, 1, 123, 84, 0, 0, 39, 2, 106, 255, 7, 0, 23, 0, 6, 2, 111, 191, 0, 255, 255, 0, 14, 254, 66, 4, 176, 4, 58, 4, 38, 1, 181, 73, 0, 0, 39, 2, 106, 255, 1, 255, 59, 0, 6, 2, 111, 129, 251, 0, 2, 0, 43, 0, 0, 4, 195, 5, 176, 0, 16, 0, 31, 0, 0, 65, 39, 34, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 5, 19, 33, 3, 39, 38, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 51, 23, 3, 87, 211, 110, 204, 81, 81, 105, 10, 10, 64, 62, 62, 176, 102, 1, 201, 253, 254, 237, 213, 211, 52, 78, 24, 25, 20, 7, 8, 54, 41, 40, 104, 57, 185, 3, 176, 1, 62, 60, 61, 178, 116, 109, 170, 59, 60, 65, 4, 1, 5, 176, 251, 50, 1, 2, 39, 32, 32, 87, 50, 59, 93, 33, 32, 35, 2, 0, 0, 2, 0, 60, 255, 255, 4, 213, 5, 176, 0, 39, 0, 57, 0, 0, 97, 22, 54, 55, 54, 54, 55, 54, 54, 55, 54, 54, 39, 37, 22, 6, 7, 6, 6, 7, 6, 6, 7, 35, 19, 33, 3, 39, 38, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 3, 54, 54, 55, 54, 54, 55, 54, 54, 23, 23, 3, 39, 38, 38, 39, 38, 54, 2, 220, 79, 128, 51, 50, 76, 28, 27, 36, 11, 17, 2, 18, 254, 254, 21, 16, 19, 7, 22, 22, 22, 72, 55, 25, 218, 254, 238, 96, 7, 105, 174, 64, 65, 78, 9, 8, 37, 45, 45, 143, 97, 85, 3, 14, 12, 11, 33, 22, 21, 53, 33, 3, 100, 5, 41, 44, 10, 10, 1, 1, 43, 40, 39, 107, 62, 62, 136, 68, 111, 227, 111, 1, 110, 232, 109, 42, 112, 51, 52, 73, 2, 4, 209, 253, 255, 1, 4, 74, 65, 65, 177, 99, 93, 164, 63, 63, 77, 6, 1, 210, 25, 59, 30, 29, 54, 20, 20, 21, 3, 1, 254, 16, 1, 7, 52, 35, 35, 79, 0, 2, 0, 58, 255, 234, 4, 127, 6, 24, 0, 73, 0, 108, 0, 0, 83, 7, 6, 6, 23, 22, 22, 23, 22, 22, 23, 50, 54, 55, 54, 54, 55, 54, 54, 55, 22, 22, 23, 22, 22, 51, 22, 54, 55, 54, 54, 55, 54, 54, 55, 54, 38, 39, 37, 22, 6, 7, 6, 6, 7, 6, 6, 7, 6, 6, 7, 38, 38, 39, 38, 54, 55, 19, 33, 3, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 37, 3, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 52, 55, 54, 54, 55, 55, 54, 54, 55, 54, 54, 55, 54, 54, 23, 50, 22, 23, 22, 22, 84, 19, 5, 2, 7, 6, 30, 27, 27, 82, 58, 33, 56, 24, 12, 21, 10, 11, 20, 9, 17, 52, 32, 32, 72, 38, 70, 110, 42, 42, 62, 22, 21, 27, 7, 14, 5, 14, 254, 254, 17, 7, 14, 2, 5, 4, 5, 14, 11, 11, 32, 23, 15, 13, 1, 1, 4, 2, 207, 254, 239, 97, 10, 22, 12, 18, 41, 23, 64, 100, 38, 39, 56, 19, 19, 24, 1, 202, 89, 4, 3, 1, 8, 17, 8, 9, 20, 11, 21, 23, 5, 5, 2, 2, 7, 1, 18, 2, 7, 7, 6, 20, 15, 15, 43, 29, 7, 13, 6, 6, 12, 2, 79, 140, 42, 102, 52, 53, 98, 38, 39, 48, 1, 21, 18, 8, 20, 11, 11, 25, 13, 36, 48, 14, 15, 13, 1, 51, 44, 43, 114, 62, 62, 125, 55, 100, 199, 100, 1, 100, 201, 101, 17, 58, 35, 35, 74, 31, 31, 43, 5, 7, 31, 19, 18, 38, 14, 4, 206, 253, 253, 10, 18, 6, 11, 12, 1, 2, 46, 40, 41, 107, 58, 58, 115, 216, 253, 243, 24, 47, 24, 6, 11, 5, 4, 5, 1, 1, 31, 23, 23, 57, 27, 26, 45, 11, 142, 18, 58, 33, 32, 65, 26, 26, 31, 2, 4, 3, 3, 8, 0, 0, 1, 0, 130, 255, 234, 4, 125, 5, 176, 0, 80, 0, 0, 65, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 55, 54, 38, 39, 37, 22, 6, 7, 6, 6, 7, 6, 6, 7, 6, 6, 7, 38, 38, 39, 38, 38, 55, 55, 54, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 39, 7, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 39, 7, 23, 22, 22, 23, 22, 6, 1, 137, 12, 4, 33, 36, 35, 106, 69, 76, 126, 50, 50, 77, 28, 27, 36, 9, 14, 6, 14, 254, 252, 18, 6, 15, 4, 10, 8, 9, 25, 18, 18, 50, 33, 12, 15, 4, 4, 2, 1, 12, 4, 11, 19, 19, 66, 51, 57, 99, 38, 37, 47, 5, 7, 50, 52, 53, 152, 93, 186, 40, 214, 39, 54, 15, 17, 10, 5, 6, 26, 21, 31, 96, 64, 99, 40, 180, 36, 37, 7, 7, 1, 1, 129, 109, 69, 110, 38, 38, 41, 1, 1, 45, 40, 40, 109, 62, 62, 134, 65, 100, 198, 100, 1, 100, 201, 100, 25, 66, 35, 36, 69, 28, 29, 37, 3, 5, 11, 8, 8, 23, 14, 110, 51, 96, 42, 41, 66, 20, 25, 66, 43, 42, 105, 66, 97, 150, 52, 51, 55, 3, 1, 230, 1, 2, 26, 22, 23, 64, 38, 42, 69, 27, 40, 44, 1, 2, 228, 3, 3, 48, 33, 33, 70, 0, 1, 0, 121, 255, 227, 4, 102, 4, 58, 0, 77, 0, 0, 101, 38, 38, 55, 55, 54, 38, 39, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 39, 7, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 39, 7, 23, 22, 22, 23, 22, 22, 7, 7, 6, 22, 23, 22, 22, 51, 22, 54, 55, 54, 54, 55, 54, 54, 55, 54, 38, 39, 37, 22, 22, 7, 6, 6, 7, 6, 6, 7, 6, 6, 7, 38, 38, 2, 191, 7, 2, 1, 5, 5, 74, 78, 40, 70, 27, 27, 34, 3, 5, 66, 56, 56, 145, 73, 207, 33, 229, 30, 50, 18, 17, 15, 5, 6, 38, 27, 27, 65, 32, 126, 35, 218, 26, 36, 11, 10, 7, 2, 9, 3, 56, 47, 47, 119, 60, 61, 99, 39, 39, 59, 21, 21, 27, 6, 10, 17, 16, 255, 0, 20, 5, 11, 3, 9, 10, 5, 16, 10, 9, 24, 14, 19, 24, 189, 11, 32, 20, 49, 82, 116, 26, 19, 45, 29, 28, 74, 47, 86, 119, 37, 36, 34, 2, 1, 226, 1, 1, 15, 14, 15, 46, 33, 36, 48, 14, 14, 12, 1, 1, 212, 2, 2, 15, 14, 13, 35, 23, 76, 73, 94, 27, 27, 22, 1, 39, 33, 33, 89, 51, 50, 108, 51, 80, 156, 78, 1, 78, 158, 81, 24, 84, 41, 22, 42, 16, 14, 19, 4, 5, 16, 0, 0, 2, 0, 225, 254, 110, 4, 100, 5, 176, 0, 57, 0, 70, 0, 0, 83, 5, 22, 22, 23, 22, 22, 7, 7, 6, 6, 23, 22, 22, 23, 37, 55, 38, 38, 39, 38, 54, 55, 55, 54, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 37, 7, 5, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 35, 39, 1, 55, 35, 7, 6, 6, 7, 23, 54, 54, 55, 54, 54, 225, 1, 10, 51, 69, 20, 20, 13, 6, 15, 4, 6, 2, 2, 18, 20, 1, 16, 2, 20, 20, 2, 3, 5, 4, 16, 6, 11, 20, 20, 71, 54, 57, 99, 38, 37, 48, 5, 8, 66, 62, 62, 171, 97, 254, 230, 34, 1, 49, 48, 76, 25, 24, 20, 6, 8, 53, 39, 40, 99, 55, 212, 3, 56, 37, 255, 40, 17, 77, 50, 142, 49, 86, 34, 34, 46, 2, 71, 1, 2, 37, 30, 30, 82, 47, 105, 30, 67, 33, 33, 62, 25, 1, 24, 22, 54, 30, 29, 59, 28, 109, 54, 104, 45, 45, 71, 21, 25, 63, 41, 41, 103, 66, 106, 156, 52, 52, 53, 2, 1, 224, 1, 2, 29, 26, 27, 77, 49, 59, 82, 25, 26, 23, 1, 252, 244, 220, 234, 95, 161, 81, 78, 40, 96, 55, 54, 120, 0, 2, 0, 204, 254, 96, 4, 51, 4, 58, 0, 54, 0, 67, 0, 0, 83, 5, 22, 22, 23, 22, 22, 7, 7, 6, 6, 23, 20, 22, 23, 37, 55, 38, 38, 55, 55, 54, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 37, 7, 5, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 39, 1, 55, 35, 7, 6, 6, 7, 23, 54, 54, 55, 54, 54, 204, 1, 8, 35, 54, 17, 20, 16, 4, 11, 3, 4, 1, 9, 10, 1, 18, 1, 21, 5, 5, 11, 4, 8, 14, 15, 50, 38, 40, 70, 27, 27, 34, 3, 6, 68, 58, 59, 151, 76, 254, 235, 33, 1, 44, 31, 56, 20, 20, 20, 6, 6, 43, 30, 30, 72, 34, 226, 3, 33, 37, 255, 40, 17, 77, 50, 142, 49, 86, 34, 34, 46, 1, 135, 2, 1, 19, 16, 19, 59, 39, 77, 20, 41, 20, 21, 40, 18, 1, 16, 32, 72, 37, 78, 40, 76, 33, 33, 54, 18, 21, 50, 31, 30, 76, 48, 89, 126, 40, 40, 39, 2, 1, 222, 1, 1, 16, 16, 17, 50, 35, 39, 52, 16, 16, 14, 1, 1, 253, 194, 220, 234, 95, 161, 81, 78, 40, 96, 55, 54, 120, 0, 0, 1, 255, 173, 255, 234, 4, 150, 5, 176, 0, 69, 0, 0, 65, 3, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 55, 54, 54, 39, 35, 22, 6, 7, 6, 6, 7, 6, 6, 7, 6, 6, 7, 38, 38, 39, 38, 52, 53, 52, 54, 55, 19, 33, 3, 6, 6, 7, 6, 6, 7, 6, 6, 39, 39, 7, 51, 22, 54, 55, 54, 54, 55, 54, 54, 55, 19, 2, 138, 157, 2, 3, 6, 7, 23, 17, 32, 103, 71, 69, 109, 42, 42, 61, 22, 21, 26, 8, 14, 7, 6, 231, 8, 16, 14, 3, 6, 5, 6, 16, 13, 13, 36, 25, 13, 12, 1, 1, 1, 1, 196, 253, 124, 117, 4, 11, 10, 10, 32, 25, 26, 72, 51, 17, 27, 39, 99, 147, 54, 53, 73, 25, 24, 31, 12, 78, 4, 202, 252, 91, 32, 61, 27, 30, 52, 21, 42, 48, 1, 1, 51, 44, 44, 114, 63, 62, 124, 54, 99, 200, 100, 100, 201, 100, 18, 60, 35, 35, 72, 30, 31, 42, 4, 7, 18, 12, 4, 7, 4, 8, 17, 9, 4, 141, 253, 80, 32, 105, 60, 61, 124, 49, 50, 62, 1, 1, 227, 2, 71, 60, 60, 158, 86, 86, 174, 75, 1, 202, 0, 0, 1, 255, 197, 255, 234, 4, 132, 4, 58, 0, 69, 0, 0, 65, 33, 3, 6, 6, 7, 6, 6, 7, 6, 6, 7, 39, 7, 51, 22, 54, 55, 54, 54, 55, 54, 54, 63, 2, 3, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 55, 54, 38, 39, 37, 22, 6, 7, 6, 6, 7, 6, 6, 7, 6, 6, 7, 38, 38, 39, 52, 52, 53, 52, 54, 55, 3, 101, 253, 133, 75, 3, 7, 6, 7, 21, 17, 18, 51, 36, 19, 33, 56, 82, 123, 45, 45, 60, 21, 20, 26, 10, 36, 99, 95, 2, 4, 6, 7, 23, 17, 33, 106, 74, 68, 108, 43, 43, 63, 23, 22, 28, 8, 13, 9, 14, 254, 254, 18, 3, 13, 2, 6, 4, 5, 16, 11, 12, 34, 23, 14, 11, 1, 3, 1, 4, 58, 254, 52, 24, 74, 42, 43, 86, 34, 35, 44, 1, 1, 240, 1, 55, 48, 48, 126, 70, 69, 143, 64, 231, 1, 253, 225, 35, 66, 29, 30, 54, 22, 44, 51, 1, 1, 44, 39, 39, 104, 58, 57, 120, 55, 94, 188, 94, 1, 94, 190, 95, 18, 54, 30, 31, 62, 26, 27, 37, 5, 7, 26, 16, 2, 4, 3, 13, 26, 11, 0, 0, 1, 255, 221, 255, 233, 4, 138, 5, 176, 0, 53, 0, 0, 65, 33, 3, 35, 19, 33, 3, 33, 19, 51, 3, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 55, 54, 38, 39, 37, 22, 6, 7, 6, 6, 7, 6, 6, 7, 6, 6, 7, 38, 38, 39, 38, 38, 53, 52, 54, 55, 3, 174, 254, 237, 109, 174, 109, 254, 237, 253, 1, 19, 105, 174, 42, 3, 3, 5, 6, 19, 15, 30, 102, 76, 71, 112, 44, 44, 65, 23, 23, 28, 8, 14, 6, 13, 254, 251, 17, 6, 14, 3, 6, 5, 5, 17, 12, 13, 36, 24, 4, 7, 1, 2, 2, 2, 1, 5, 176, 253, 142, 2, 114, 250, 80, 2, 92, 254, 241, 35, 68, 31, 30, 56, 24, 49, 59, 2, 2, 50, 43, 43, 114, 62, 62, 127, 56, 100, 199, 100, 1, 100, 202, 100, 18, 59, 35, 35, 73, 30, 30, 42, 4, 4, 9, 6, 5, 12, 6, 8, 17, 8, 0, 1, 255, 217, 255, 234, 4, 99, 4, 58, 0, 53, 0, 0, 65, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 55, 54, 54, 39, 33, 22, 6, 7, 6, 6, 7, 6, 6, 7, 6, 6, 7, 38, 38, 39, 38, 38, 53, 52, 54, 55, 19, 33, 3, 35, 19, 33, 3, 33, 19, 1, 192, 16, 3, 4, 7, 8, 28, 19, 37, 113, 75, 66, 104, 41, 40, 60, 21, 20, 27, 7, 13, 4, 8, 254, 255, 8, 13, 12, 2, 4, 4, 4, 12, 10, 10, 29, 20, 18, 18, 4, 2, 2, 1, 1, 128, 254, 240, 74, 139, 74, 254, 240, 188, 1, 17, 75, 1, 173, 118, 35, 66, 28, 32, 55, 23, 44, 48, 1, 1, 46, 40, 39, 105, 58, 57, 117, 53, 94, 188, 95, 95, 190, 94, 16, 52, 30, 30, 63, 26, 27, 38, 6, 6, 22, 15, 8, 16, 9, 7, 15, 8, 3, 5, 254, 85, 1, 171, 251, 198, 1, 173, 0, 1, 0, 90, 255, 232, 4, 112, 5, 199, 0, 63, 0, 0, 69, 22, 54, 55, 54, 54, 55, 54, 38, 39, 37, 22, 22, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 39, 38, 54, 55, 19, 54, 54, 55, 54, 54, 55, 54, 54, 51, 22, 22, 23, 55, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 3, 6, 22, 23, 22, 22, 23, 22, 22, 2, 38, 110, 196, 77, 76, 101, 15, 11, 9, 8, 254, 248, 14, 1, 15, 10, 49, 37, 37, 96, 56, 49, 70, 23, 24, 27, 5, 6, 2, 5, 41, 11, 52, 43, 21, 51, 29, 30, 70, 40, 73, 141, 63, 85, 80, 174, 93, 72, 130, 57, 49, 87, 38, 82, 104, 19, 40, 8, 4, 11, 10, 40, 28, 57, 184, 21, 3, 61, 60, 60, 176, 111, 86, 171, 86, 1, 85, 175, 86, 54, 88, 31, 31, 33, 2, 1, 39, 31, 31, 79, 43, 42, 86, 37, 1, 9, 67, 139, 56, 28, 46, 17, 17, 19, 1, 35, 35, 207, 49, 41, 2, 1, 30, 28, 23, 65, 40, 86, 225, 123, 254, 250, 58, 114, 53, 53, 99, 43, 87, 108, 0, 0, 1, 0, 107, 255, 233, 4, 68, 4, 80, 0, 51, 0, 0, 101, 38, 38, 39, 38, 38, 55, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 55, 38, 38, 39, 38, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 38, 39, 37, 22, 6, 7, 6, 6, 7, 6, 6, 2, 109, 68, 95, 28, 29, 21, 7, 5, 9, 55, 43, 42, 113, 68, 68, 135, 59, 69, 72, 161, 82, 120, 212, 82, 82, 106, 13, 5, 11, 60, 64, 63, 187, 117, 89, 168, 67, 67, 89, 9, 5, 7, 6, 254, 255, 8, 1, 8, 7, 36, 26, 27, 67, 204, 1, 53, 44, 43, 113, 60, 42, 64, 115, 44, 43, 51, 28, 33, 218, 40, 28, 1, 1, 80, 72, 72, 200, 120, 43, 116, 195, 71, 72, 82, 2, 2, 44, 47, 46, 141, 96, 47, 93, 47, 1, 48, 94, 48, 39, 56, 17, 18, 15, 0, 1, 0, 174, 255, 234, 4, 132, 5, 176, 0, 43, 0, 0, 65, 3, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 55, 54, 38, 39, 37, 22, 6, 7, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 54, 55, 19, 33, 55, 33, 7, 1, 227, 144, 7, 32, 40, 40, 128, 88, 76, 126, 51, 50, 78, 28, 28, 36, 9, 14, 6, 14, 254, 252, 17, 6, 15, 3, 11, 9, 9, 27, 19, 20, 53, 34, 30, 32, 7, 7, 1, 2, 143, 1, 66, 41, 252, 118, 40, 4, 202, 252, 171, 85, 143, 52, 53, 60, 1, 1, 45, 40, 40, 108, 63, 62, 133, 65, 100, 199, 100, 1, 100, 201, 100, 23, 67, 37, 37, 74, 28, 29, 34, 2, 2, 36, 25, 25, 56, 22, 3, 86, 230, 230, 0, 0, 1, 0, 108, 255, 233, 4, 79, 4, 58, 0, 43, 0, 0, 65, 3, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 55, 54, 38, 39, 39, 22, 22, 7, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 19, 33, 55, 33, 7, 1, 126, 79, 7, 36, 42, 42, 131, 89, 99, 160, 58, 33, 52, 18, 14, 19, 5, 9, 22, 17, 254, 22, 10, 12, 2, 8, 6, 5, 16, 9, 20, 60, 42, 32, 38, 9, 9, 3, 3, 80, 1, 79, 40, 252, 142, 39, 3, 88, 254, 27, 87, 143, 51, 52, 58, 1, 2, 72, 62, 35, 85, 47, 36, 78, 40, 72, 143, 71, 1, 71, 145, 73, 16, 37, 19, 19, 39, 17, 35, 46, 1, 1, 34, 25, 25, 57, 25, 1, 230, 226, 226, 0, 1, 0, 23, 255, 233, 4, 136, 5, 199, 0, 76, 0, 0, 83, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 5, 6, 6, 7, 6, 6, 39, 34, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 51, 23, 55, 39, 38, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 5, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 6, 6, 7, 6, 6, 31, 8, 77, 69, 68, 181, 95, 100, 187, 74, 74, 96, 9, 254, 238, 8, 44, 33, 33, 83, 46, 45, 87, 32, 32, 35, 6, 7, 52, 40, 40, 102, 58, 178, 39, 206, 46, 73, 24, 24, 20, 6, 7, 54, 39, 39, 96, 48, 41, 63, 21, 21, 20, 1, 1, 18, 2, 62, 56, 57, 156, 91, 102, 199, 79, 80, 103, 7, 4, 30, 30, 20, 55, 32, 63, 105, 39, 40, 48, 1, 144, 107, 157, 52, 52, 51, 2, 2, 53, 54, 54, 161, 106, 2, 46, 74, 26, 27, 28, 1, 25, 25, 24, 75, 51, 61, 88, 28, 27, 26, 1, 220, 1, 1, 26, 24, 24, 72, 48, 52, 77, 25, 24, 23, 1, 1, 28, 24, 24, 67, 39, 1, 94, 151, 53, 53, 60, 2, 2, 47, 51, 52, 163, 113, 57, 102, 42, 28, 50, 20, 23, 64, 43, 44, 111, 255, 255, 255, 222, 254, 34, 3, 168, 0, 0, 4, 39, 0, 102, 255, 221, 254, 251, 0, 6, 0, 102, 10, 0, 0, 1, 1, 14, 3, 228, 2, 142, 6, 24, 0, 12, 0, 0, 65, 39, 51, 23, 22, 22, 23, 7, 38, 38, 39, 38, 38, 1, 42, 28, 218, 29, 16, 71, 50, 122, 45, 77, 30, 31, 42, 5, 108, 172, 173, 88, 150, 72, 81, 37, 88, 50, 50, 109, 255, 255, 0, 157, 255, 235, 3, 217, 1, 90, 4, 39, 0, 96, 255, 79, 0, 0, 0, 7, 0, 96, 1, 21, 0, 0, 0, 2, 1, 33, 2, 48, 4, 44, 5, 197, 0, 10, 0, 14, 0, 0, 65, 19, 35, 1, 7, 33, 7, 51, 55, 51, 55, 33, 1, 55, 3, 3, 156, 104, 184, 253, 228, 15, 1, 185, 33, 172, 32, 143, 24, 253, 205, 1, 41, 24, 74, 3, 108, 2, 89, 253, 145, 111, 183, 183, 133, 1, 87, 39, 254, 130, 0, 1, 1, 42, 2, 141, 4, 24, 5, 187, 0, 28, 0, 0, 65, 7, 3, 51, 19, 54, 54, 55, 54, 54, 51, 22, 22, 23, 22, 6, 7, 3, 51, 19, 54, 38, 39, 38, 38, 39, 38, 6, 7, 2, 82, 157, 139, 205, 96, 13, 31, 18, 17, 41, 23, 38, 39, 8, 7, 2, 3, 72, 203, 82, 6, 16, 25, 26, 89, 67, 76, 111, 42, 5, 174, 1, 252, 224, 2, 40, 19, 31, 11, 10, 10, 1, 38, 28, 28, 65, 28, 254, 67, 1, 250, 59, 110, 43, 43, 51, 1, 1, 77, 59, 0, 1, 0, 103, 255, 236, 4, 199, 5, 198, 0, 63, 0, 0, 65, 55, 33, 55, 33, 55, 33, 54, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 55, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 35, 7, 51, 7, 35, 7, 55, 6, 6, 21, 20, 22, 23, 22, 22, 23, 22, 54, 55, 39, 6, 6, 39, 38, 38, 39, 38, 38, 53, 52, 54, 55, 3, 107, 27, 254, 178, 23, 1, 76, 26, 254, 173, 3, 6, 4, 20, 59, 39, 46, 121, 77, 47, 90, 44, 57, 59, 116, 60, 131, 213, 81, 74, 109, 32, 4, 6, 3, 159, 26, 166, 22, 165, 26, 174, 3, 3, 55, 51, 62, 187, 118, 62, 122, 60, 11, 48, 98, 51, 72, 98, 27, 22, 20, 1, 2, 2, 8, 148, 126, 147, 10, 19, 10, 57, 95, 35, 41, 44, 1, 1, 18, 15, 228, 13, 18, 1, 1, 76, 70, 64, 176, 106, 11, 23, 11, 147, 126, 148, 1, 22, 42, 20, 91, 153, 58, 72, 81, 1, 1, 14, 14, 230, 15, 17, 1, 1, 48, 42, 32, 83, 48, 14, 29, 15, 0, 0, 4, 0, 137, 255, 234, 4, 82, 5, 199, 0, 51, 0, 77, 0, 103, 0, 107, 0, 0, 65, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 52, 55, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 23, 52, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 3, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 55, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 23, 55, 54, 54, 55, 54, 54, 51, 22, 22, 23, 22, 20, 7, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 5, 1, 39, 1, 2, 145, 180, 4, 15, 11, 12, 33, 21, 24, 26, 5, 6, 2, 10, 3, 15, 13, 13, 38, 27, 22, 28, 8, 7, 4, 182, 33, 31, 32, 93, 59, 66, 104, 37, 38, 46, 6, 6, 4, 26, 30, 30, 92, 63, 61, 99, 37, 36, 42, 84, 7, 4, 26, 30, 30, 93, 63, 66, 104, 38, 37, 44, 6, 7, 4, 26, 29, 30, 93, 63, 66, 105, 37, 38, 44, 170, 7, 3, 14, 13, 12, 37, 26, 25, 27, 6, 6, 1, 7, 3, 12, 12, 12, 38, 28, 24, 26, 6, 6, 2, 254, 143, 2, 140, 127, 253, 117, 4, 42, 3, 18, 36, 14, 15, 18, 30, 22, 21, 46, 17, 78, 21, 50, 21, 21, 28, 20, 15, 16, 38, 18, 1, 57, 97, 36, 36, 41, 2, 1, 48, 41, 42, 111, 61, 77, 57, 107, 41, 42, 51, 1, 2, 39, 36, 36, 98, 253, 117, 76, 58, 108, 41, 42, 51, 1, 1, 48, 42, 41, 110, 61, 77, 58, 108, 42, 41, 50, 2, 1, 48, 41, 42, 111, 139, 79, 21, 49, 21, 21, 28, 1, 30, 21, 22, 47, 18, 78, 22, 50, 21, 21, 27, 1, 1, 31, 22, 21, 46, 32, 3, 160, 73, 252, 96, 0, 0, 2, 0, 132, 255, 234, 4, 93, 5, 146, 0, 44, 0, 67, 0, 0, 69, 19, 38, 38, 39, 38, 38, 55, 55, 54, 54, 55, 54, 54, 55, 55, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 3, 6, 6, 35, 7, 54, 54, 55, 7, 6, 22, 23, 22, 22, 3, 19, 54, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 7, 6, 6, 7, 6, 6, 2, 240, 24, 58, 74, 20, 20, 9, 9, 8, 75, 164, 72, 73, 103, 9, 4, 5, 32, 35, 36, 110, 72, 49, 88, 38, 38, 64, 27, 53, 65, 12, 62, 46, 92, 46, 20, 47, 92, 46, 3, 19, 58, 62, 62, 176, 18, 53, 3, 16, 14, 7, 19, 12, 12, 27, 16, 20, 22, 5, 5, 1, 1, 6, 8, 41, 29, 30, 75, 22, 1, 5, 3, 35, 31, 30, 87, 55, 47, 34, 97, 63, 64, 163, 94, 43, 69, 122, 46, 46, 55, 2, 1, 17, 17, 17, 50, 31, 62, 164, 89, 254, 162, 6, 6, 188, 2, 7, 8, 17, 110, 165, 56, 56, 60, 2, 235, 1, 36, 25, 62, 27, 13, 24, 8, 7, 8, 1, 2, 23, 16, 17, 36, 15, 44, 51, 90, 38, 39, 66, 0, 4, 0, 10, 0, 0, 4, 201, 5, 193, 0, 9, 0, 47, 0, 79, 0, 83, 0, 0, 97, 19, 35, 3, 3, 35, 3, 51, 19, 19, 1, 7, 6, 22, 23, 22, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 55, 54, 54, 55, 55, 54, 38, 39, 38, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 6, 6, 23, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 6, 7, 7, 6, 6, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 53, 52, 54, 19, 55, 33, 7, 2, 111, 253, 187, 152, 89, 185, 253, 187, 153, 88, 1, 221, 23, 1, 3, 3, 4, 12, 8, 17, 54, 39, 39, 60, 21, 10, 16, 6, 7, 9, 2, 23, 1, 2, 3, 4, 11, 9, 17, 56, 39, 39, 60, 21, 9, 15, 6, 7, 10, 82, 23, 2, 6, 7, 6, 22, 18, 18, 16, 3, 2, 3, 1, 23, 1, 3, 1, 2, 4, 3, 7, 22, 18, 18, 16, 2, 1, 1, 2, 134, 18, 254, 215, 17, 5, 176, 252, 152, 3, 104, 250, 80, 3, 108, 252, 148, 5, 8, 214, 18, 35, 16, 16, 28, 13, 26, 32, 31, 26, 12, 28, 16, 16, 37, 18, 214, 17, 33, 16, 17, 31, 13, 26, 32, 32, 26, 12, 26, 14, 17, 39, 225, 197, 13, 33, 14, 14, 20, 21, 14, 15, 32, 12, 196, 7, 17, 8, 7, 15, 6, 15, 19, 21, 15, 5, 12, 5, 9, 19, 254, 171, 98, 98, 0, 2, 0, 128, 255, 235, 4, 109, 4, 80, 0, 42, 0, 54, 0, 0, 101, 55, 6, 6, 7, 6, 6, 39, 38, 38, 39, 19, 33, 55, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 3, 22, 22, 23, 3, 33, 19, 54, 54, 55, 54, 54, 3, 166, 1, 45, 92, 48, 48, 101, 52, 69, 121, 46, 61, 2, 236, 4, 7, 43, 50, 51, 159, 109, 75, 142, 63, 63, 106, 40, 41, 51, 7, 5, 7, 11, 12, 42, 29, 27, 71, 42, 42, 97, 54, 99, 190, 118, 69, 118, 44, 52, 253, 245, 52, 31, 68, 37, 36, 78, 92, 105, 26, 45, 16, 17, 18, 2, 2, 54, 51, 1, 74, 49, 98, 191, 76, 76, 95, 3, 2, 43, 39, 40, 109, 64, 64, 141, 71, 49, 98, 46, 49, 92, 40, 39, 65, 23, 23, 27, 1, 2, 60, 3, 201, 1, 58, 52, 254, 224, 1, 22, 25, 45, 17, 16, 19, 0, 5, 0, 207, 255, 244, 4, 169, 5, 171, 0, 6, 0, 54, 0, 78, 0, 102, 0, 106, 0, 0, 65, 19, 35, 5, 7, 55, 3, 5, 54, 38, 39, 38, 38, 39, 34, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 6, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 3, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 19, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 1, 1, 39, 1, 1, 215, 116, 22, 254, 180, 26, 174, 86, 3, 128, 2, 39, 34, 34, 87, 45, 49, 95, 38, 38, 47, 1, 1, 11, 10, 10, 27, 17, 28, 51, 19, 18, 24, 1, 2, 44, 36, 36, 91, 46, 51, 101, 40, 41, 51, 2, 1, 15, 15, 11, 29, 18, 25, 43, 16, 16, 20, 207, 3, 21, 15, 15, 38, 19, 17, 30, 11, 11, 11, 3, 3, 22, 15, 16, 36, 19, 16, 30, 12, 11, 11, 31, 2, 16, 12, 13, 32, 18, 16, 26, 8, 7, 7, 2, 3, 18, 13, 12, 31, 16, 17, 27, 8, 7, 6, 253, 129, 2, 140, 127, 253, 117, 2, 232, 2, 195, 104, 147, 38, 254, 18, 219, 51, 74, 24, 24, 22, 1, 24, 26, 27, 79, 55, 23, 43, 18, 16, 28, 11, 15, 36, 22, 22, 54, 34, 54, 75, 23, 24, 22, 1, 1, 24, 25, 26, 82, 58, 29, 53, 21, 16, 27, 10, 15, 32, 20, 20, 49, 254, 235, 20, 31, 11, 11, 11, 9, 10, 9, 28, 19, 20, 29, 11, 10, 10, 8, 9, 9, 26, 1, 17, 17, 27, 10, 10, 11, 10, 9, 9, 23, 15, 18, 28, 10, 9, 9, 10, 9, 8, 23, 254, 216, 3, 160, 73, 252, 96, 0, 0, 5, 0, 99, 255, 244, 4, 167, 5, 188, 0, 73, 0, 121, 0, 145, 0, 169, 0, 173, 0, 0, 65, 7, 51, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 39, 35, 20, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 34, 6, 7, 6, 6, 7, 51, 54, 54, 51, 50, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 1, 54, 38, 39, 38, 38, 39, 34, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 6, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 3, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 19, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 1, 1, 39, 1, 1, 68, 10, 82, 19, 36, 13, 13, 12, 3, 4, 23, 16, 17, 40, 20, 21, 35, 13, 11, 14, 1, 172, 41, 35, 34, 92, 52, 51, 107, 44, 44, 57, 1, 1, 16, 17, 13, 35, 23, 28, 50, 20, 19, 24, 2, 3, 46, 38, 37, 93, 45, 51, 94, 38, 38, 49, 5, 182, 13, 53, 33, 15, 29, 11, 11, 9, 2, 4, 23, 17, 17, 41, 21, 3, 24, 2, 39, 34, 34, 87, 45, 49, 95, 38, 38, 47, 1, 1, 9, 8, 9, 29, 20, 28, 51, 19, 18, 24, 1, 2, 44, 36, 36, 91, 46, 51, 101, 40, 41, 51, 2, 1, 14, 13, 11, 31, 19, 25, 43, 16, 16, 20, 207, 3, 21, 15, 15, 38, 19, 17, 30, 11, 11, 11, 3, 3, 22, 15, 16, 36, 19, 16, 30, 12, 11, 11, 31, 3, 15, 12, 13, 32, 18, 16, 26, 8, 7, 7, 2, 3, 16, 11, 13, 32, 18, 17, 28, 8, 7, 5, 253, 126, 2, 140, 127, 253, 117, 4, 144, 122, 1, 7, 9, 8, 30, 24, 21, 33, 10, 10, 11, 9, 10, 9, 28, 20, 55, 83, 28, 27, 28, 1, 1, 23, 25, 26, 83, 59, 32, 54, 21, 15, 24, 7, 13, 30, 20, 19, 51, 33, 54, 75, 23, 23, 22, 1, 24, 24, 25, 77, 54, 31, 27, 8, 8, 8, 25, 18, 23, 31, 11, 10, 11, 1, 253, 125, 51, 74, 24, 24, 22, 1, 24, 26, 27, 79, 55, 20, 39, 16, 19, 33, 12, 15, 36, 22, 22, 54, 34, 54, 75, 23, 24, 22, 1, 1, 24, 25, 26, 82, 58, 28, 50, 21, 17, 29, 11, 15, 32, 20, 20, 49, 254, 235, 20, 31, 11, 11, 11, 9, 10, 9, 28, 19, 20, 29, 11, 10, 10, 8, 9, 9, 26, 1, 17, 16, 28, 9, 11, 11, 10, 10, 8, 24, 14, 17, 26, 10, 10, 11, 10, 10, 8, 23, 254, 208, 3, 160, 73, 252, 96, 0, 5, 0, 96, 255, 241, 4, 133, 5, 183, 0, 45, 0, 93, 0, 117, 0, 141, 0, 145, 0, 0, 83, 23, 54, 54, 23, 50, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 35, 6, 38, 39, 39, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 35, 34, 6, 7, 55, 5, 55, 33, 1, 54, 38, 39, 38, 38, 39, 34, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 6, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 3, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 19, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 1, 1, 39, 1, 136, 148, 23, 51, 29, 24, 35, 10, 9, 7, 3, 3, 16, 13, 15, 42, 27, 38, 45, 2, 172, 2, 44, 36, 36, 90, 47, 58, 103, 40, 40, 48, 2, 2, 28, 28, 27, 81, 51, 28, 55, 26, 48, 1, 37, 25, 254, 71, 3, 142, 2, 39, 34, 34, 87, 45, 49, 95, 38, 38, 47, 1, 1, 7, 8, 9, 30, 21, 28, 51, 19, 18, 24, 1, 2, 44, 36, 36, 91, 46, 51, 101, 40, 41, 51, 2, 1, 17, 17, 11, 27, 16, 25, 43, 16, 16, 20, 207, 3, 21, 15, 15, 38, 19, 17, 30, 11, 11, 11, 3, 3, 22, 15, 16, 36, 19, 16, 30, 12, 11, 11, 31, 2, 16, 12, 12, 33, 18, 15, 24, 8, 9, 8, 2, 3, 19, 13, 12, 30, 16, 18, 28, 8, 6, 5, 253, 148, 2, 140, 127, 253, 117, 4, 76, 38, 16, 17, 1, 15, 14, 13, 33, 21, 23, 38, 14, 16, 19, 2, 28, 40, 1, 52, 78, 27, 26, 29, 1, 1, 35, 33, 33, 96, 59, 50, 82, 29, 29, 30, 12, 11, 127, 1, 143, 252, 83, 51, 74, 24, 24, 22, 1, 24, 26, 27, 79, 55, 19, 36, 16, 20, 35, 13, 15, 36, 22, 22, 54, 34, 54, 75, 23, 24, 22, 1, 1, 24, 25, 26, 82, 58, 31, 55, 23, 14, 24, 9, 15, 32, 20, 20, 49, 254, 235, 20, 31, 11, 11, 11, 9, 10, 9, 28, 19, 20, 29, 11, 10, 10, 8, 9, 9, 26, 1, 17, 17, 27, 9, 11, 11, 8, 8, 9, 25, 16, 18, 29, 10, 8, 9, 11, 10, 8, 22, 254, 220, 3, 160, 73, 252, 96, 0, 0, 5, 0, 180, 255, 244, 4, 155, 5, 177, 0, 6, 0, 54, 0, 78, 0, 102, 0, 106, 0, 0, 65, 55, 33, 7, 33, 1, 51, 5, 54, 38, 39, 38, 38, 39, 34, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 6, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 3, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 19, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 1, 1, 39, 1, 2, 254, 20, 253, 210, 26, 1, 111, 254, 123, 198, 3, 31, 2, 39, 34, 34, 87, 45, 49, 95, 38, 38, 47, 1, 1, 9, 9, 10, 28, 19, 28, 51, 19, 18, 24, 1, 2, 44, 36, 36, 91, 46, 51, 101, 40, 41, 51, 2, 1, 14, 13, 11, 31, 19, 25, 43, 16, 16, 20, 207, 3, 21, 15, 15, 38, 19, 17, 30, 11, 11, 11, 3, 3, 22, 15, 16, 36, 19, 16, 30, 12, 11, 11, 31, 2, 16, 11, 13, 33, 18, 14, 23, 8, 10, 9, 2, 3, 15, 10, 13, 34, 18, 18, 29, 8, 6, 3, 253, 101, 2, 140, 127, 253, 117, 5, 64, 113, 146, 253, 204, 222, 51, 74, 24, 24, 22, 1, 24, 26, 27, 79, 55, 21, 40, 17, 18, 31, 12, 15, 36, 22, 22, 54, 34, 54, 75, 23, 24, 22, 1, 1, 24, 25, 26, 82, 58, 28, 50, 21, 17, 29, 11, 15, 32, 20, 20, 49, 254, 235, 20, 31, 11, 11, 11, 9, 10, 9, 28, 19, 20, 29, 11, 10, 10, 8, 9, 9, 26, 1, 17, 16, 27, 9, 11, 12, 8, 7, 8, 26, 17, 16, 26, 9, 11, 12, 12, 11, 8, 21, 254, 218, 3, 160, 73, 252, 96, 0, 2, 0, 82, 255, 233, 4, 102, 5, 255, 0, 53, 0, 82, 0, 0, 65, 38, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 55, 55, 54, 54, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 23, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 23, 22, 22, 7, 38, 38, 7, 22, 22, 23, 22, 22, 23, 7, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 55, 54, 54, 55, 54, 54, 2, 113, 113, 184, 68, 68, 85, 12, 3, 10, 42, 53, 52, 167, 114, 91, 152, 62, 62, 96, 36, 35, 46, 11, 8, 11, 6, 11, 11, 56, 51, 52, 154, 110, 81, 152, 72, 21, 36, 70, 36, 26, 53, 28, 49, 76, 28, 27, 37, 11, 10, 7, 2, 53, 133, 64, 37, 64, 25, 23, 35, 10, 18, 6, 19, 15, 16, 44, 29, 30, 77, 48, 61, 72, 17, 18, 6, 5, 2, 7, 40, 34, 34, 96, 4, 11, 2, 77, 69, 69, 187, 106, 22, 106, 190, 72, 72, 86, 2, 2, 54, 49, 48, 131, 75, 75, 161, 78, 59, 83, 187, 91, 91, 168, 64, 64, 77, 1, 2, 37, 36, 204, 13, 21, 6, 5, 4, 1, 2, 36, 30, 30, 78, 42, 43, 89, 40, 57, 60, 222, 1, 21, 19, 18, 51, 33, 109, 39, 84, 40, 41, 72, 27, 27, 30, 2, 2, 55, 43, 42, 103, 49, 20, 57, 108, 42, 42, 49, 0, 0, 1, 0, 18, 255, 9, 4, 140, 5, 176, 0, 7, 0, 0, 69, 1, 33, 1, 33, 19, 33, 3, 3, 130, 1, 10, 252, 145, 254, 245, 1, 18, 231, 1, 78, 232, 247, 6, 167, 249, 89, 5, 203, 250, 53, 0, 0, 1, 255, 141, 254, 243, 5, 5, 5, 176, 0, 12, 0, 0, 65, 55, 1, 33, 55, 33, 7, 1, 1, 7, 33, 55, 33, 3, 108, 4, 254, 139, 2, 226, 40, 251, 179, 25, 1, 180, 253, 86, 28, 4, 115, 40, 253, 6, 2, 69, 34, 2, 104, 225, 140, 253, 62, 253, 51, 162, 225, 0, 0, 1, 0, 24, 0, 0, 4, 219, 5, 176, 0, 10, 0, 0, 65, 3, 5, 7, 51, 19, 51, 1, 35, 1, 7, 1, 226, 58, 254, 152, 40, 220, 95, 227, 2, 165, 230, 254, 19, 37, 1, 54, 1, 197, 1, 227, 253, 233, 5, 176, 251, 150, 85, 0, 0, 3, 0, 54, 0, 243, 4, 171, 3, 215, 0, 73, 0, 111, 0, 149, 0, 0, 65, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 38, 38, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 55, 22, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 39, 7, 6, 6, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 39, 38, 38, 55, 55, 54, 54, 55, 54, 54, 55, 54, 54, 55, 50, 22, 23, 22, 22, 23, 22, 6, 5, 55, 54, 54, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 23, 22, 22, 21, 7, 6, 6, 7, 6, 6, 7, 6, 6, 7, 6, 38, 39, 38, 38, 39, 38, 54, 4, 166, 3, 2, 2, 4, 5, 23, 18, 31, 102, 73, 50, 84, 36, 18, 33, 15, 17, 30, 14, 8, 20, 12, 11, 29, 15, 32, 77, 43, 78, 120, 41, 21, 33, 11, 12, 15, 3, 3, 2, 3, 5, 6, 22, 16, 30, 102, 74, 50, 85, 36, 18, 34, 15, 16, 29, 13, 7, 17, 11, 12, 30, 17, 31, 76, 45, 79, 120, 42, 23, 36, 11, 10, 12, 193, 3, 2, 5, 5, 4, 12, 8, 16, 49, 35, 26, 49, 18, 3, 6, 3, 13, 14, 1, 3, 7, 32, 23, 2, 5, 3, 25, 58, 28, 32, 36, 8, 4, 4, 1, 1, 1, 253, 26, 3, 2, 6, 4, 5, 11, 8, 16, 49, 36, 25, 47, 19, 3, 4, 3, 14, 17, 3, 7, 27, 19, 4, 8, 5, 25, 59, 29, 33, 37, 8, 4, 4, 1, 1, 1, 2, 89, 37, 26, 50, 24, 37, 69, 29, 48, 59, 1, 1, 32, 26, 13, 30, 16, 18, 37, 19, 19, 37, 16, 17, 31, 13, 25, 30, 2, 2, 56, 49, 24, 58, 32, 31, 69, 36, 37, 30, 59, 28, 33, 62, 26, 48, 59, 1, 1, 34, 28, 14, 33, 17, 18, 37, 18, 18, 36, 16, 19, 33, 15, 27, 32, 1, 3, 57, 50, 27, 65, 36, 29, 62, 69, 36, 15, 30, 15, 14, 26, 11, 23, 28, 2, 1, 34, 25, 4, 10, 4, 22, 46, 21, 16, 23, 51, 23, 2, 6, 2, 23, 31, 1, 28, 21, 10, 23, 12, 13, 29, 65, 36, 16, 31, 15, 13, 26, 11, 23, 27, 1, 1, 30, 22, 3, 6, 4, 21, 46, 21, 16, 22, 50, 22, 5, 10, 5, 26, 34, 1, 1, 27, 22, 10, 25, 13, 13, 26, 0, 0, 1, 0, 70, 254, 73, 4, 105, 6, 48, 0, 40, 0, 0, 69, 49, 19, 54, 54, 55, 54, 54, 51, 50, 22, 23, 55, 38, 38, 39, 38, 6, 7, 6, 6, 7, 3, 6, 6, 7, 6, 6, 7, 6, 38, 39, 7, 22, 22, 51, 50, 54, 55, 54, 54, 2, 112, 188, 5, 24, 18, 23, 67, 42, 24, 46, 23, 45, 40, 80, 41, 91, 149, 55, 55, 69, 10, 187, 5, 18, 16, 17, 51, 37, 26, 53, 26, 33, 35, 70, 36, 93, 144, 52, 51, 62, 34, 4, 210, 32, 54, 20, 25, 28, 7, 5, 213, 8, 14, 1, 1, 53, 49, 50, 143, 89, 251, 46, 31, 64, 26, 26, 34, 1, 1, 9, 8, 220, 8, 11, 61, 54, 54, 149, 0, 2, 0, 150, 0, 0, 4, 74, 5, 176, 0, 5, 0, 13, 0, 0, 65, 1, 19, 51, 1, 3, 7, 23, 19, 1, 7, 39, 3, 1, 2, 116, 254, 34, 240, 229, 1, 223, 241, 139, 8, 105, 254, 245, 34, 7, 108, 1, 9, 5, 176, 253, 52, 253, 28, 2, 202, 2, 230, 231, 68, 254, 95, 254, 65, 67, 68, 1, 164, 1, 185, 0, 0, 22, 255, 234, 0, 8, 4, 168, 4, 8, 0, 16, 0, 37, 0, 51, 0, 67, 0, 73, 0, 79, 0, 85, 0, 91, 0, 100, 0, 104, 0, 108, 0, 112, 0, 116, 0, 120, 0, 124, 0, 139, 0, 143, 0, 147, 0, 151, 0, 155, 0, 159, 0, 163, 0, 0, 65, 7, 6, 6, 7, 6, 38, 39, 38, 38, 53, 55, 54, 54, 55, 54, 22, 23, 35, 19, 51, 50, 22, 23, 22, 22, 21, 6, 6, 7, 22, 22, 23, 22, 6, 7, 6, 6, 39, 55, 54, 38, 39, 34, 6, 7, 7, 6, 22, 23, 50, 54, 37, 55, 51, 7, 6, 6, 7, 6, 38, 39, 23, 22, 22, 51, 50, 54, 1, 51, 55, 7, 55, 35, 5, 55, 55, 35, 7, 39, 1, 51, 55, 23, 55, 7, 5, 55, 7, 51, 55, 39, 1, 39, 7, 55, 54, 54, 55, 54, 38, 3, 51, 55, 35, 23, 51, 55, 35, 5, 51, 55, 35, 19, 51, 55, 35, 23, 51, 55, 35, 5, 51, 55, 35, 1, 7, 51, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 35, 5, 55, 35, 7, 23, 55, 35, 7, 19, 55, 35, 7, 5, 55, 35, 7, 23, 55, 35, 7, 19, 55, 35, 7, 1, 209, 1, 5, 66, 54, 31, 50, 16, 14, 15, 2, 5, 67, 54, 56, 66, 139, 132, 56, 85, 19, 40, 16, 16, 19, 1, 31, 21, 20, 23, 1, 1, 19, 16, 16, 40, 216, 9, 2, 23, 35, 37, 43, 8, 9, 2, 24, 35, 37, 43, 2, 1, 34, 50, 25, 7, 54, 44, 51, 55, 3, 47, 2, 13, 28, 25, 33, 252, 97, 165, 19, 111, 25, 59, 3, 64, 169, 33, 57, 26, 100, 253, 28, 59, 22, 99, 19, 168, 3, 89, 103, 17, 59, 31, 158, 254, 101, 72, 25, 64, 23, 43, 5, 3, 24, 51, 147, 17, 147, 196, 148, 17, 148, 254, 70, 146, 17, 146, 29, 148, 16, 147, 197, 147, 17, 147, 254, 69, 146, 17, 146, 1, 89, 19, 44, 12, 25, 11, 11, 16, 3, 2, 7, 7, 8, 19, 9, 254, 0, 31, 59, 31, 23, 31, 59, 31, 131, 31, 59, 31, 3, 230, 31, 58, 31, 22, 31, 58, 31, 130, 31, 58, 31, 2, 35, 62, 52, 66, 1, 1, 23, 19, 16, 42, 24, 62, 52, 66, 1, 1, 70, 233, 1, 47, 7, 9, 9, 31, 24, 27, 30, 14, 9, 31, 23, 24, 33, 10, 11, 10, 118, 65, 30, 48, 1, 49, 33, 63, 32, 48, 1, 49, 10, 208, 209, 43, 50, 2, 2, 49, 49, 3, 23, 29, 32, 254, 79, 67, 2, 113, 178, 2, 176, 113, 2, 3, 28, 95, 2, 68, 2, 66, 2, 95, 159, 2, 253, 239, 2, 97, 1, 3, 23, 26, 20, 19, 1, 208, 68, 68, 68, 68, 68, 252, 0, 67, 67, 67, 67, 67, 2, 38, 86, 1, 6, 6, 5, 18, 14, 12, 14, 4, 3, 2, 167, 142, 142, 207, 141, 141, 1, 159, 141, 141, 208, 142, 142, 207, 141, 141, 1, 159, 141, 141, 0, 0, 5, 0, 2, 253, 213, 4, 162, 8, 98, 0, 3, 0, 47, 0, 51, 0, 55, 0, 59, 0, 0, 65, 9, 2, 5, 35, 52, 54, 55, 54, 54, 55, 54, 54, 55, 54, 54, 53, 52, 38, 35, 34, 6, 7, 35, 54, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 7, 6, 6, 7, 6, 6, 21, 21, 35, 53, 19, 21, 51, 53, 3, 21, 51, 53, 2, 85, 253, 173, 2, 83, 2, 77, 254, 26, 202, 8, 11, 10, 35, 29, 10, 27, 12, 12, 17, 32, 37, 24, 41, 2, 203, 1, 43, 37, 36, 97, 56, 64, 102, 35, 34, 37, 23, 18, 18, 45, 22, 11, 17, 6, 6, 6, 202, 94, 4, 6, 4, 6, 82, 252, 49, 252, 49, 3, 207, 251, 48, 50, 19, 19, 40, 36, 13, 39, 24, 23, 51, 26, 52, 64, 48, 55, 70, 101, 33, 32, 30, 39, 36, 37, 103, 64, 41, 64, 28, 29, 55, 31, 16, 29, 15, 16, 39, 116, 170, 170, 252, 172, 4, 4, 10, 137, 4, 4, 0, 0, 2, 1, 131, 4, 234, 4, 78, 6, 240, 0, 6, 0, 44, 0, 0, 65, 39, 35, 5, 51, 55, 23, 19, 39, 6, 6, 7, 6, 6, 7, 6, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 23, 54, 54, 55, 54, 54, 55, 54, 22, 23, 22, 22, 51, 54, 54, 55, 54, 54, 4, 78, 229, 171, 254, 197, 211, 184, 132, 170, 90, 4, 11, 8, 9, 25, 17, 27, 49, 25, 25, 50, 27, 36, 53, 18, 19, 23, 4, 94, 4, 11, 8, 8, 24, 17, 27, 49, 25, 24, 50, 28, 36, 53, 18, 18, 22, 4, 234, 248, 248, 149, 149, 1, 230, 32, 14, 32, 14, 14, 20, 2, 3, 20, 14, 13, 23, 34, 26, 26, 64, 30, 27, 13, 31, 13, 13, 18, 2, 3, 21, 13, 14, 22, 1, 34, 26, 26, 64, 0, 2, 1, 115, 4, 234, 5, 67, 6, 178, 0, 6, 0, 34, 0, 0, 65, 39, 35, 5, 51, 55, 23, 55, 51, 55, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 7, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 4, 62, 230, 173, 254, 200, 211, 183, 134, 207, 99, 8, 23, 42, 17, 21, 26, 2, 3, 46, 34, 35, 80, 31, 12, 13, 51, 25, 24, 34, 4, 3, 29, 19, 20, 41, 15, 4, 234, 235, 235, 140, 140, 129, 61, 5, 17, 14, 16, 47, 31, 43, 53, 15, 14, 10, 1, 82, 1, 1, 5, 5, 24, 24, 20, 23, 5, 6, 3, 1, 0, 0, 2, 0, 181, 4, 247, 4, 96, 6, 145, 0, 6, 0, 10, 0, 0, 65, 39, 35, 5, 51, 55, 23, 37, 3, 35, 19, 4, 96, 237, 159, 254, 193, 221, 171, 125, 254, 95, 109, 215, 171, 4, 247, 235, 235, 129, 129, 140, 1, 14, 254, 242, 0, 2, 1, 115, 4, 234, 5, 195, 6, 133, 0, 6, 0, 10, 0, 0, 65, 5, 51, 55, 23, 51, 39, 37, 3, 51, 1, 2, 179, 254, 192, 222, 170, 125, 199, 238, 1, 137, 203, 170, 1, 10, 5, 213, 235, 129, 129, 235, 176, 254, 241, 1, 15, 0, 0, 2, 1, 181, 4, 200, 4, 74, 6, 113, 0, 25, 0, 29, 0, 0, 65, 7, 6, 6, 7, 6, 6, 39, 34, 38, 39, 38, 38, 55, 39, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 39, 39, 35, 23, 4, 74, 184, 6, 25, 17, 23, 62, 34, 29, 48, 17, 18, 18, 1, 181, 1, 57, 45, 45, 111, 56, 57, 119, 50, 49, 66, 249, 114, 210, 163, 5, 177, 1, 26, 38, 14, 18, 17, 1, 13, 14, 13, 42, 30, 2, 64, 88, 27, 28, 25, 1, 1, 23, 28, 27, 89, 71, 187, 187, 0, 1, 2, 33, 4, 80, 3, 122, 6, 27, 0, 12, 0, 0, 65, 7, 51, 55, 54, 54, 55, 39, 6, 6, 7, 6, 6, 2, 53, 20, 216, 23, 14, 54, 38, 139, 41, 64, 22, 23, 29, 4, 215, 135, 124, 70, 124, 60, 81, 27, 72, 42, 42, 93, 0, 2, 255, 168, 0, 0, 4, 40, 4, 141, 0, 7, 0, 12, 0, 0, 101, 23, 33, 3, 33, 1, 33, 55, 55, 19, 55, 23, 19, 2, 244, 42, 1, 10, 246, 254, 249, 253, 125, 1, 31, 116, 107, 188, 30, 11, 66, 221, 221, 4, 141, 251, 115, 221, 204, 1, 101, 57, 58, 254, 156, 0, 0, 3, 0, 51, 0, 0, 4, 91, 4, 141, 0, 26, 0, 41, 0, 56, 0, 0, 115, 33, 50, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 37, 19, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 39, 19, 19, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 51, 1, 251, 128, 220, 62, 34, 44, 3, 2, 18, 20, 20, 60, 40, 45, 77, 29, 29, 36, 3, 3, 32, 30, 60, 204, 100, 254, 77, 155, 244, 31, 52, 18, 18, 16, 6, 6, 44, 30, 30, 70, 33, 207, 79, 46, 210, 31, 55, 20, 19, 18, 6, 6, 39, 28, 28, 67, 34, 61, 72, 39, 103, 67, 41, 76, 33, 32, 49, 13, 18, 48, 33, 32, 82, 51, 61, 93, 35, 68, 55, 2, 1, 253, 93, 1, 1, 15, 15, 16, 49, 35, 38, 51, 16, 16, 14, 1, 1, 1, 200, 1, 4, 1, 1, 12, 14, 15, 47, 36, 38, 50, 16, 16, 14, 1, 0, 0, 1, 0, 58, 255, 238, 4, 85, 4, 159, 0, 54, 0, 0, 65, 5, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 5, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 4, 8, 254, 243, 8, 43, 32, 33, 84, 49, 58, 74, 20, 20, 10, 6, 25, 8, 44, 35, 35, 95, 59, 47, 76, 26, 25, 26, 2, 1, 16, 4, 68, 58, 59, 163, 99, 112, 194, 74, 75, 97, 16, 24, 8, 18, 24, 24, 75, 49, 50, 126, 72, 100, 183, 73, 72, 96, 1, 144, 2, 48, 75, 25, 25, 24, 2, 3, 54, 42, 41, 100, 49, 179, 52, 105, 41, 41, 51, 1, 1, 26, 25, 25, 74, 48, 1, 100, 156, 54, 53, 56, 2, 2, 78, 69, 70, 188, 108, 177, 70, 130, 56, 55, 90, 34, 34, 38, 2, 2, 51, 53, 52, 158, 0, 0, 2, 0, 48, 255, 255, 4, 97, 4, 141, 0, 15, 0, 31, 0, 0, 115, 33, 22, 54, 55, 54, 54, 55, 55, 54, 38, 39, 38, 38, 39, 37, 23, 23, 22, 22, 23, 22, 22, 7, 7, 6, 6, 7, 6, 6, 35, 39, 48, 1, 206, 109, 196, 77, 77, 103, 15, 23, 11, 57, 59, 60, 171, 102, 254, 90, 232, 180, 56, 74, 21, 20, 12, 6, 25, 9, 48, 37, 38, 100, 61, 164, 1, 75, 67, 66, 183, 107, 168, 102, 179, 68, 67, 80, 3, 1, 223, 2, 3, 49, 38, 39, 95, 49, 170, 58, 101, 37, 38, 44, 2, 0, 0, 1, 0, 51, 0, 0, 4, 123, 4, 141, 0, 11, 0, 0, 65, 55, 33, 55, 33, 55, 33, 3, 33, 55, 33, 19, 3, 173, 39, 253, 235, 39, 2, 110, 39, 252, 130, 202, 3, 120, 39, 253, 151, 48, 1, 238, 223, 225, 223, 251, 115, 221, 1, 17, 0, 1, 0, 58, 0, 0, 4, 116, 4, 141, 0, 9, 0, 0, 65, 55, 33, 19, 33, 55, 33, 3, 33, 19, 3, 187, 40, 253, 223, 45, 2, 94, 39, 252, 144, 202, 1, 17, 81, 1, 205, 223, 1, 2, 223, 251, 115, 1, 205, 0, 0, 1, 0, 62, 255, 240, 4, 90, 4, 159, 0, 55, 0, 0, 101, 19, 33, 7, 51, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 5, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 3, 244, 76, 254, 29, 36, 212, 38, 18, 37, 19, 33, 69, 34, 60, 79, 22, 22, 12, 6, 30, 9, 48, 38, 37, 97, 59, 47, 74, 24, 22, 21, 1, 1, 7, 2, 66, 59, 59, 162, 94, 111, 195, 75, 76, 100, 16, 27, 12, 52, 57, 57, 171, 107, 62, 140, 69, 68, 123, 146, 1, 235, 205, 187, 9, 13, 5, 8, 5, 1, 2, 47, 38, 38, 98, 53, 200, 54, 101, 39, 39, 46, 1, 1, 23, 23, 21, 64, 43, 1, 100, 148, 49, 49, 49, 2, 2, 76, 67, 68, 184, 108, 197, 107, 180, 66, 67, 76, 2, 1, 13, 19, 18, 63, 0, 1, 0, 33, 0, 0, 4, 92, 4, 141, 0, 11, 0, 0, 97, 19, 33, 3, 33, 19, 33, 3, 33, 19, 33, 3, 3, 146, 202, 254, 241, 85, 254, 173, 85, 254, 241, 202, 1, 14, 79, 1, 84, 79, 4, 141, 254, 23, 1, 233, 251, 115, 1, 197, 254, 59, 0, 1, 0, 91, 0, 0, 4, 77, 4, 140, 0, 11, 0, 0, 65, 7, 33, 3, 33, 7, 33, 55, 33, 19, 33, 55, 1, 37, 39, 1, 8, 124, 254, 249, 40, 3, 40, 40, 254, 241, 123, 1, 14, 40, 4, 140, 226, 253, 56, 226, 226, 2, 200, 226, 0, 1, 0, 116, 255, 238, 4, 108, 4, 141, 0, 27, 0, 0, 65, 3, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 37, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 19, 3, 92, 121, 6, 30, 24, 25, 72, 48, 47, 57, 15, 16, 9, 2, 254, 239, 3, 47, 50, 49, 150, 100, 101, 170, 65, 64, 83, 14, 123, 4, 141, 253, 41, 41, 84, 34, 35, 42, 1, 1, 36, 29, 29, 74, 40, 1, 98, 157, 55, 56, 62, 1, 2, 70, 62, 61, 167, 97, 2, 214, 0, 0, 1, 0, 45, 0, 0, 4, 224, 4, 141, 0, 12, 0, 0, 65, 19, 33, 1, 1, 33, 1, 7, 19, 33, 3, 33, 19, 2, 15, 209, 1, 50, 254, 203, 2, 3, 254, 156, 254, 169, 114, 84, 254, 240, 202, 1, 16, 53, 1, 186, 254, 70, 2, 118, 2, 23, 254, 156, 123, 1, 223, 251, 115, 1, 52, 0, 0, 1, 0, 51, 0, 0, 4, 5, 4, 141, 0, 5, 0, 0, 101, 19, 33, 3, 33, 55, 1, 108, 164, 254, 238, 203, 3, 171, 39, 221, 3, 176, 251, 115, 221, 0, 0, 1, 0, 12, 0, 0, 4, 160, 4, 141, 0, 12, 0, 0, 65, 3, 33, 3, 51, 19, 19, 23, 19, 3, 51, 19, 33, 2, 84, 79, 254, 209, 202, 248, 129, 69, 178, 219, 122, 248, 203, 254, 207, 2, 76, 2, 65, 251, 115, 2, 231, 254, 14, 1, 1, 195, 253, 73, 4, 141, 0, 1, 0, 50, 0, 0, 4, 88, 4, 141, 0, 9, 0, 0, 97, 19, 33, 3, 3, 33, 3, 33, 19, 19, 3, 142, 202, 254, 242, 123, 205, 254, 250, 202, 1, 13, 122, 206, 4, 141, 253, 60, 2, 196, 251, 115, 2, 196, 253, 60, 0, 2, 0, 77, 255, 237, 4, 89, 4, 160, 0, 31, 0, 63, 0, 0, 65, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 3, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 39, 38, 52, 55, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 23, 22, 22, 4, 49, 28, 12, 52, 56, 22, 55, 31, 46, 111, 63, 113, 193, 74, 74, 96, 16, 27, 7, 11, 17, 13, 37, 24, 56, 168, 105, 112, 193, 74, 74, 97, 229, 29, 8, 42, 34, 34, 94, 60, 59, 72, 19, 7, 9, 3, 6, 4, 28, 8, 41, 34, 33, 94, 62, 33, 52, 20, 14, 21, 9, 19, 9, 1, 229, 194, 102, 181, 68, 27, 47, 18, 27, 31, 1, 3, 75, 68, 68, 186, 108, 195, 60, 111, 49, 36, 66, 29, 68, 79, 2, 3, 75, 68, 67, 186, 1, 49, 198, 53, 104, 40, 41, 48, 2, 2, 52, 41, 14, 32, 17, 30, 64, 31, 197, 54, 104, 40, 39, 47, 2, 1, 19, 17, 11, 30, 16, 41, 98, 0, 2, 0, 65, 255, 65, 4, 94, 4, 160, 0, 31, 0, 57, 0, 0, 65, 55, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 22, 54, 55, 23, 55, 39, 54, 54, 55, 54, 54, 3, 7, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 4, 56, 27, 11, 53, 57, 58, 169, 105, 113, 195, 75, 75, 98, 16, 27, 12, 51, 57, 57, 169, 106, 32, 64, 32, 165, 172, 143, 45, 75, 30, 40, 52, 236, 28, 8, 44, 34, 35, 96, 61, 59, 75, 20, 20, 9, 6, 28, 9, 42, 35, 34, 96, 62, 57, 74, 20, 20, 11, 1, 229, 194, 103, 181, 68, 68, 80, 2, 3, 74, 67, 68, 187, 109, 195, 104, 180, 67, 67, 79, 1, 1, 7, 6, 189, 109, 168, 31, 71, 40, 55, 128, 1, 16, 199, 54, 104, 40, 40, 48, 2, 2, 51, 41, 40, 99, 50, 197, 56, 104, 40, 39, 45, 2, 2, 51, 40, 40, 98, 0, 0, 2, 0, 38, 0, 0, 4, 78, 4, 141, 0, 20, 0, 35, 0, 0, 65, 19, 33, 53, 3, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 37, 3, 33, 19, 55, 19, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 2, 59, 147, 1, 33, 180, 59, 96, 35, 35, 41, 4, 5, 66, 57, 58, 151, 79, 254, 61, 202, 1, 16, 71, 38, 54, 207, 34, 57, 20, 20, 18, 5, 6, 42, 30, 30, 75, 39, 1, 151, 254, 105, 13, 1, 210, 24, 63, 42, 41, 106, 67, 91, 128, 41, 41, 39, 2, 1, 251, 115, 1, 151, 223, 1, 53, 1, 1, 18, 18, 18, 54, 37, 42, 62, 20, 20, 19, 1, 0, 0, 1, 0, 86, 255, 239, 4, 91, 4, 159, 0, 88, 0, 0, 65, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 55, 37, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 38, 38, 39, 38, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 21, 5, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 22, 23, 22, 22, 23, 22, 22, 3, 13, 6, 47, 32, 33, 73, 32, 45, 74, 26, 27, 29, 1, 254, 241, 1, 71, 61, 61, 163, 92, 56, 117, 55, 55, 98, 38, 37, 46, 4, 3, 28, 26, 27, 76, 44, 44, 97, 49, 15, 36, 19, 15, 30, 13, 31, 37, 7, 6, 45, 31, 31, 70, 31, 42, 69, 22, 16, 18, 1, 14, 1, 67, 58, 58, 156, 89, 82, 167, 68, 69, 91, 5, 5, 62, 53, 33, 80, 43, 26, 55, 27, 27, 75, 33, 16, 28, 9, 9, 8, 1, 66, 37, 51, 15, 16, 14, 19, 21, 21, 66, 47, 1, 101, 143, 45, 46, 44, 1, 1, 14, 17, 16, 53, 39, 38, 103, 66, 59, 94, 37, 37, 55, 22, 21, 32, 14, 4, 9, 5, 4, 12, 7, 15, 49, 39, 35, 50, 15, 15, 14, 1, 1, 27, 26, 19, 52, 32, 1, 97, 138, 45, 44, 42, 2, 1, 39, 42, 43, 133, 93, 88, 119, 40, 25, 38, 15, 9, 17, 8, 8, 19, 17, 9, 21, 13, 14, 32, 0, 1, 0, 140, 0, 0, 4, 218, 4, 141, 0, 7, 0, 0, 65, 55, 33, 7, 33, 3, 33, 19, 4, 179, 39, 251, 217, 39, 1, 134, 163, 1, 18, 164, 3, 174, 223, 223, 252, 82, 3, 174, 0, 1, 0, 112, 255, 238, 4, 133, 4, 141, 0, 29, 0, 0, 65, 33, 3, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 19, 33, 3, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 4, 133, 254, 240, 129, 7, 33, 27, 27, 75, 48, 45, 61, 17, 18, 11, 5, 128, 254, 242, 128, 10, 50, 54, 53, 154, 93, 101, 175, 68, 67, 88, 14, 4, 141, 253, 8, 45, 75, 26, 26, 29, 2, 1, 32, 27, 26, 71, 42, 2, 248, 253, 9, 96, 154, 55, 55, 60, 2, 2, 56, 55, 54, 159, 101, 0, 0, 1, 0, 146, 0, 0, 4, 255, 4, 142, 0, 8, 0, 0, 65, 3, 5, 19, 33, 1, 33, 1, 7, 2, 30, 125, 254, 241, 218, 1, 35, 2, 112, 254, 217, 254, 95, 25, 1, 65, 3, 77, 1, 251, 115, 4, 141, 252, 179, 65, 0, 1, 0, 130, 0, 0, 4, 210, 4, 141, 0, 18, 0, 0, 65, 19, 35, 3, 51, 19, 55, 23, 19, 51, 1, 33, 3, 7, 55, 19, 35, 3, 7, 1, 111, 17, 252, 2, 248, 168, 36, 1, 3, 247, 1, 145, 254, 253, 152, 28, 1, 4, 249, 156, 32, 2, 189, 1, 208, 251, 115, 1, 229, 105, 110, 254, 32, 4, 141, 254, 25, 91, 91, 1, 231, 254, 47, 95, 0, 1, 255, 206, 0, 0, 4, 188, 4, 141, 0, 11, 0, 0, 65, 3, 33, 19, 1, 33, 1, 19, 33, 1, 1, 33, 2, 99, 138, 254, 217, 245, 254, 39, 1, 72, 1, 27, 153, 1, 47, 254, 247, 1, 204, 254, 185, 3, 16, 1, 125, 253, 202, 253, 169, 1, 133, 254, 123, 2, 63, 2, 78, 0, 0, 1, 0, 161, 0, 0, 4, 244, 4, 141, 0, 10, 0, 0, 65, 3, 33, 1, 3, 33, 19, 1, 33, 1, 7, 2, 80, 149, 254, 230, 1, 24, 75, 1, 17, 68, 2, 49, 254, 203, 254, 198, 35, 2, 191, 1, 206, 253, 32, 254, 83, 1, 138, 3, 3, 254, 45, 52, 0, 1, 0, 54, 0, 0, 4, 122, 4, 141, 0, 9, 0, 0, 101, 1, 55, 33, 7, 33, 1, 7, 33, 55, 1, 190, 2, 164, 24, 252, 134, 36, 2, 24, 253, 90, 24, 3, 151, 35, 221, 3, 26, 150, 223, 252, 234, 152, 221, 0, 0, 2, 1, 197, 4, 202, 4, 90, 6, 245, 0, 25, 0, 59, 0, 0, 65, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 55, 39, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 37, 51, 39, 54, 54, 55, 54, 54, 55, 52, 38, 39, 38, 38, 39, 38, 38, 35, 7, 50, 50, 51, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 4, 90, 184, 8, 32, 22, 22, 53, 29, 29, 48, 17, 18, 19, 1, 181, 1, 57, 45, 45, 111, 56, 57, 119, 50, 49, 66, 254, 133, 105, 10, 25, 53, 23, 22, 29, 1, 25, 21, 22, 54, 28, 29, 54, 21, 11, 8, 34, 21, 20, 43, 17, 16, 18, 4, 5, 35, 22, 22, 45, 16, 5, 177, 2, 29, 41, 13, 13, 11, 11, 13, 13, 41, 30, 2, 64, 87, 27, 27, 25, 1, 1, 22, 27, 27, 89, 93, 45, 4, 15, 13, 13, 40, 31, 30, 44, 15, 15, 18, 5, 5, 4, 66, 1, 6, 6, 6, 22, 16, 21, 21, 5, 5, 2, 1, 0, 0, 2, 1, 181, 4, 200, 4, 74, 6, 113, 0, 25, 0, 29, 0, 0, 65, 7, 6, 6, 7, 6, 6, 39, 34, 38, 39, 38, 38, 55, 39, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 3, 7, 51, 55, 4, 74, 184, 6, 25, 17, 23, 62, 34, 29, 48, 17, 18, 18, 1, 181, 1, 57, 45, 45, 111, 56, 57, 119, 50, 49, 66, 253, 152, 161, 201, 5, 177, 1, 26, 38, 14, 18, 17, 1, 13, 14, 13, 42, 30, 2, 64, 88, 27, 28, 25, 1, 1, 23, 28, 27, 89, 1, 2, 187, 186, 0, 0, 1, 1, 43, 2, 136, 3, 236, 3, 60, 0, 3, 0, 0, 65, 55, 33, 7, 3, 204, 32, 253, 95, 32, 2, 136, 180, 180, 0, 3, 2, 43, 4, 83, 4, 172, 6, 182, 0, 3, 0, 27, 0, 51, 0, 0, 65, 7, 23, 37, 1, 20, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 53, 52, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 23, 52, 54, 55, 54, 54, 51, 50, 22, 23, 22, 22, 21, 20, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 3, 151, 212, 199, 1, 34, 253, 127, 30, 26, 26, 67, 38, 40, 71, 27, 27, 31, 29, 25, 25, 67, 38, 40, 72, 27, 28, 32, 99, 16, 13, 14, 35, 19, 19, 33, 12, 12, 15, 16, 13, 13, 35, 19, 19, 33, 13, 12, 15, 6, 182, 203, 1, 204, 254, 77, 39, 64, 23, 24, 26, 28, 25, 25, 69, 41, 38, 66, 24, 24, 27, 29, 25, 26, 70, 38, 20, 35, 12, 12, 15, 14, 11, 12, 32, 19, 20, 34, 12, 12, 14, 13, 11, 12, 31, 0, 0, 2, 2, 68, 4, 131, 4, 61, 5, 197, 0, 5, 0, 15, 0, 0, 65, 7, 51, 19, 55, 7, 5, 7, 51, 55, 54, 54, 55, 39, 6, 6, 3, 6, 2, 82, 230, 1, 176, 254, 198, 15, 128, 18, 11, 40, 32, 84, 51, 68, 4, 160, 27, 1, 41, 23, 1, 208, 113, 107, 57, 107, 49, 1, 41, 102, 0, 2, 1, 228, 4, 197, 4, 117, 6, 225, 0, 25, 0, 63, 0, 0, 65, 7, 6, 6, 7, 6, 6, 35, 34, 38, 39, 38, 38, 55, 39, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 19, 39, 6, 6, 7, 6, 6, 7, 6, 38, 39, 38, 38, 35, 34, 6, 7, 6, 6, 7, 23, 54, 54, 55, 54, 54, 55, 54, 22, 23, 22, 22, 51, 50, 54, 55, 54, 54, 4, 115, 183, 7, 32, 21, 22, 54, 30, 29, 47, 16, 17, 18, 1, 180, 1, 55, 44, 44, 111, 56, 58, 119, 49, 48, 65, 7, 109, 6, 14, 10, 10, 28, 18, 30, 54, 27, 27, 55, 30, 39, 60, 21, 22, 26, 4, 114, 5, 15, 10, 10, 28, 18, 30, 53, 27, 26, 54, 31, 39, 60, 21, 21, 24, 5, 177, 1, 30, 42, 13, 13, 11, 12, 13, 13, 41, 30, 2, 63, 89, 28, 28, 27, 1, 1, 24, 28, 27, 91, 1, 83, 31, 16, 30, 12, 12, 16, 1, 2, 22, 15, 14, 24, 32, 26, 26, 67, 34, 32, 16, 30, 12, 12, 16, 1, 1, 22, 14, 14, 23, 32, 26, 25, 67, 0, 0, 1, 1, 68, 254, 156, 2, 181, 0, 201, 0, 3, 0, 0, 65, 19, 33, 3, 2, 84, 97, 254, 240, 97, 254, 156, 2, 45, 253, 211, 0, 1, 0, 141, 254, 71, 2, 236, 0, 245, 0, 21, 0, 0, 101, 33, 3, 6, 6, 7, 6, 6, 35, 34, 38, 39, 7, 22, 22, 23, 22, 54, 55, 54, 54, 55, 2, 236, 254, 241, 46, 6, 22, 18, 19, 54, 37, 24, 48, 23, 39, 37, 72, 35, 93, 145, 53, 52, 63, 12, 245, 254, 227, 32, 62, 24, 24, 30, 9, 6, 223, 9, 10, 1, 1, 59, 54, 53, 148, 88, 0, 2, 0, 51, 0, 0, 4, 90, 4, 141, 0, 16, 0, 31, 0, 0, 65, 23, 50, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 37, 3, 33, 19, 19, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 1, 133, 215, 90, 174, 71, 70, 92, 7, 6, 58, 54, 55, 150, 86, 254, 55, 203, 1, 16, 104, 59, 215, 38, 58, 17, 16, 11, 5, 6, 41, 30, 30, 74, 38, 1, 121, 1, 49, 50, 49, 147, 98, 91, 144, 51, 50, 56, 3, 1, 251, 115, 2, 87, 1, 87, 1, 3, 30, 24, 22, 60, 34, 41, 62, 22, 22, 23, 1, 0, 0, 1, 0, 42, 0, 0, 5, 48, 5, 176, 0, 12, 0, 0, 65, 19, 33, 1, 1, 33, 1, 7, 19, 33, 3, 33, 19, 2, 27, 235, 1, 47, 254, 210, 2, 41, 254, 180, 254, 30, 63, 118, 254, 237, 252, 1, 18, 104, 2, 86, 253, 170, 2, 231, 2, 201, 253, 126, 1, 2, 131, 250, 80, 2, 86, 0, 0, 1, 0, 38, 255, 232, 4, 41, 4, 159, 0, 59, 0, 0, 65, 7, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 39, 1, 38, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 3, 33, 19, 54, 54, 55, 54, 54, 23, 22, 22, 23, 7, 7, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 35, 34, 38, 1, 240, 104, 57, 118, 64, 86, 149, 56, 56, 67, 5, 3, 33, 33, 32, 91, 56, 6, 1, 7, 40, 89, 51, 52, 117, 69, 106, 167, 61, 61, 75, 13, 126, 1, 12, 126, 6, 28, 24, 23, 67, 44, 35, 58, 22, 197, 34, 95, 32, 68, 27, 26, 29, 6, 5, 29, 22, 22, 57, 32, 34, 56, 1, 2, 221, 29, 30, 1, 1, 55, 51, 50, 143, 87, 61, 101, 39, 38, 52, 15, 1, 1, 12, 52, 88, 32, 32, 38, 2, 2, 60, 57, 58, 164, 101, 253, 25, 2, 232, 38, 76, 30, 29, 35, 1, 1, 30, 27, 207, 194, 1, 1, 10, 13, 14, 51, 41, 32, 55, 20, 20, 24, 28, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 1, 0, 0, 255, 255, 1, 5, 2, 18, 4, 86, 2, 243, 6, 6, 0, 103, 0, 0, 255, 255, 0, 74, 255, 232, 4, 156, 7, 78, 6, 38, 0, 4, 0, 0, 0, 7, 1, 96, 0, 120, 1, 108, 255, 255, 0, 96, 255, 233, 4, 49, 6, 13, 6, 38, 0, 30, 0, 0, 0, 6, 1, 96, 11, 43, 255, 255, 0, 82, 255, 234, 4, 151, 7, 78, 6, 38, 0, 8, 0, 0, 0, 7, 1, 96, 0, 92, 1, 108, 255, 255, 0, 26, 254, 83, 4, 123, 6, 13, 6, 38, 0, 34, 0, 0, 0, 6, 1, 96, 240, 43, 255, 255, 255, 190, 0, 0, 4, 67, 6, 21, 6, 38, 0, 41, 0, 0, 0, 7, 0, 109, 253, 166, 255, 253, 255, 255, 0, 57, 254, 14, 4, 177, 5, 198, 6, 38, 0, 20, 0, 0, 0, 7, 1, 104, 0, 162, 254, 183, 255, 255, 0, 74, 254, 14, 4, 76, 4, 79, 6, 38, 0, 46, 0, 0, 0, 7, 1, 104, 0, 100, 254, 183, 255, 255, 0, 134, 254, 37, 5, 35, 5, 176, 6, 38, 0, 21, 0, 0, 0, 7, 1, 104, 0, 113, 254, 206, 255, 255, 0, 169, 254, 24, 4, 84, 5, 67, 6, 38, 0, 47, 0, 0, 0, 7, 1, 104, 0, 175, 254, 193, 255, 255, 0, 134, 254, 63, 5, 35, 5, 176, 6, 38, 0, 21, 0, 0, 0, 6, 1, 102, 43, 13, 255, 255, 0, 140, 254, 62, 4, 218, 4, 141, 6, 38, 2, 97, 0, 0, 0, 6, 1, 102, 50, 12, 255, 255, 0, 169, 254, 50, 4, 84, 5, 67, 6, 38, 0, 47, 0, 0, 0, 6, 1, 102, 105, 0, 255, 255, 255, 153, 255, 255, 4, 97, 4, 141, 6, 38, 2, 82, 0, 0, 0, 7, 2, 106, 254, 110, 255, 104, 255, 255, 255, 153, 255, 255, 4, 97, 4, 141, 6, 38, 2, 82, 0, 0, 0, 7, 2, 106, 254, 110, 255, 104, 255, 255, 0, 140, 0, 0, 4, 218, 4, 141, 6, 38, 2, 97, 0, 0, 0, 6, 2, 106, 224, 181, 255, 255, 255, 168, 0, 0, 4, 40, 5, 229, 6, 38, 2, 79, 0, 0, 0, 7, 1, 90, 255, 110, 0, 31, 255, 255, 255, 168, 0, 0, 4, 99, 5, 226, 6, 38, 2, 79, 0, 0, 0, 6, 1, 91, 127, 28, 255, 255, 255, 168, 0, 0, 4, 58, 6, 12, 6, 38, 2, 79, 0, 0, 0, 6, 1, 92, 116, 32, 255, 255, 255, 168, 0, 0, 4, 76, 6, 38, 6, 38, 2, 79, 0, 0, 0, 7, 1, 93, 0, 135, 0, 33, 255, 255, 255, 168, 0, 0, 4, 68, 5, 243, 6, 38, 2, 79, 0, 0, 0, 6, 1, 97, 241, 32, 255, 255, 255, 168, 0, 0, 4, 40, 6, 76, 6, 38, 2, 79, 0, 0, 0, 7, 1, 98, 0, 30, 0, 184, 255, 255, 255, 168, 0, 0, 4, 156, 7, 25, 6, 38, 2, 79, 0, 0, 0, 6, 2, 107, 240, 99, 255, 255, 0, 58, 254, 50, 4, 85, 4, 159, 6, 38, 2, 81, 0, 0, 0, 6, 1, 102, 20, 0, 255, 255, 0, 51, 0, 0, 4, 123, 5, 229, 6, 38, 2, 83, 0, 0, 0, 6, 1, 90, 139, 31, 255, 255, 0, 51, 0, 0, 4, 123, 5, 226, 6, 38, 2, 83, 0, 0, 0, 6, 1, 91, 110, 28, 255, 255, 0, 51, 0, 0, 4, 123, 6, 12, 6, 38, 2, 83, 0, 0, 0, 6, 1, 92, 99, 32, 255, 255, 0, 51, 0, 0, 4, 123, 5, 243, 6, 38, 2, 83, 0, 0, 0, 6, 1, 97, 224, 32, 255, 255, 0, 91, 0, 0, 4, 77, 5, 223, 6, 38, 2, 87, 0, 0, 0, 6, 1, 90, 129, 25, 255, 255, 0, 91, 0, 0, 4, 118, 5, 220, 6, 38, 2, 87, 0, 0, 0, 7, 1, 91, 0, 146, 0, 22, 255, 255, 0, 91, 0, 0, 4, 77, 6, 6, 6, 38, 2, 87, 0, 0, 0, 7, 1, 92, 0, 135, 0, 26, 255, 255, 0, 91, 0, 0, 4, 86, 5, 237, 6, 38, 2, 87, 0, 0, 0, 6, 1, 97, 3, 26, 255, 255, 0, 50, 0, 0, 4, 88, 6, 38, 6, 38, 2, 92, 0, 0, 0, 7, 1, 93, 0, 143, 0, 33, 255, 255, 0, 77, 255, 237, 4, 89, 5, 241, 6, 38, 2, 93, 0, 0, 0, 7, 1, 90, 255, 104, 0, 43, 255, 255, 0, 77, 255, 237, 4, 93, 5, 238, 6, 38, 2, 93, 0, 0, 0, 6, 1, 91, 121, 40, 255, 255, 0, 77, 255, 237, 4, 89, 6, 24, 6, 38, 2, 93, 0, 0, 0, 6, 1, 92, 110, 44, 255, 255, 0, 77, 255, 237, 4, 89, 6, 50, 6, 38, 2, 93, 0, 0, 0, 7, 1, 93, 0, 129, 0, 45, 255, 255, 0, 77, 255, 237, 4, 89, 5, 255, 6, 38, 2, 93, 0, 0, 0, 6, 1, 97, 235, 44, 255, 255, 0, 112, 255, 238, 4, 133, 5, 254, 6, 38, 2, 98, 0, 0, 0, 6, 1, 90, 140, 56, 255, 255, 0, 112, 255, 238, 4, 133, 5, 251, 6, 38, 2, 98, 0, 0, 0, 7, 1, 91, 0, 157, 0, 53, 255, 255, 0, 112, 255, 238, 4, 133, 6, 37, 6, 38, 2, 98, 0, 0, 0, 7, 1, 92, 0, 146, 0, 57, 255, 255, 0, 112, 255, 238, 4, 133, 6, 12, 6, 38, 2, 98, 0, 0, 0, 6, 1, 97, 14, 57, 255, 255, 0, 161, 0, 0, 4, 244, 5, 226, 6, 38, 2, 102, 0, 0, 0, 6, 1, 91, 123, 28, 255, 255, 255, 168, 0, 0, 4, 76, 5, 181, 6, 38, 2, 79, 0, 0, 0, 6, 1, 94, 248, 5, 255, 255, 255, 168, 0, 0, 4, 56, 6, 5, 6, 38, 2, 79, 0, 0, 0, 6, 1, 95, 8, 98, 0, 2, 255, 168, 254, 88, 4, 40, 4, 141, 0, 36, 0, 41, 0, 0, 97, 51, 3, 33, 1, 33, 55, 33, 23, 6, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 51, 22, 54, 55, 39, 6, 6, 39, 38, 38, 55, 54, 54, 55, 54, 54, 55, 1, 19, 55, 23, 19, 3, 239, 57, 246, 254, 249, 253, 125, 1, 31, 116, 1, 185, 37, 33, 60, 23, 23, 28, 1, 1, 29, 27, 26, 74, 44, 46, 89, 40, 36, 19, 41, 20, 28, 21, 2, 3, 34, 26, 25, 61, 29, 253, 176, 182, 36, 13, 64, 4, 141, 251, 115, 221, 198, 21, 52, 30, 31, 72, 41, 45, 73, 26, 26, 29, 1, 20, 22, 157, 8, 13, 1, 2, 32, 27, 35, 56, 22, 22, 33, 13, 1, 172, 1, 89, 69, 69, 254, 167, 0, 255, 255, 0, 58, 255, 238, 4, 85, 5, 238, 6, 38, 2, 81, 0, 0, 0, 6, 1, 91, 108, 40, 255, 255, 0, 58, 255, 238, 4, 85, 6, 24, 6, 38, 2, 81, 0, 0, 0, 6, 1, 92, 97, 44, 255, 255, 0, 58, 255, 238, 4, 86, 6, 27, 6, 38, 2, 81, 0, 0, 0, 6, 1, 100, 224, 44, 255, 255, 0, 48, 255, 255, 4, 97, 6, 15, 6, 38, 2, 82, 0, 0, 0, 6, 1, 100, 149, 32, 255, 255, 0, 51, 0, 0, 4, 123, 5, 181, 6, 38, 2, 83, 0, 0, 0, 6, 1, 94, 231, 5, 255, 255, 0, 51, 0, 0, 4, 123, 6, 5, 6, 38, 2, 83, 0, 0, 0, 6, 1, 95, 248, 98, 255, 255, 0, 51, 0, 0, 4, 123, 6, 18, 6, 38, 2, 83, 0, 0, 0, 6, 1, 96, 238, 48, 0, 1, 0, 51, 254, 88, 4, 123, 4, 141, 0, 41, 0, 0, 65, 55, 33, 55, 33, 55, 33, 3, 33, 6, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 51, 22, 54, 55, 39, 6, 6, 39, 38, 38, 55, 54, 54, 55, 54, 54, 55, 51, 51, 55, 33, 19, 3, 173, 39, 253, 235, 39, 2, 110, 39, 252, 130, 202, 1, 250, 27, 48, 18, 18, 22, 1, 1, 29, 27, 26, 74, 44, 46, 89, 40, 36, 19, 41, 20, 28, 21, 2, 3, 34, 26, 25, 61, 29, 4, 123, 39, 253, 151, 48, 1, 238, 223, 225, 223, 251, 115, 20, 48, 28, 28, 64, 36, 45, 73, 26, 26, 29, 1, 20, 22, 157, 8, 13, 1, 2, 32, 27, 35, 56, 22, 22, 36, 13, 221, 1, 17, 0, 255, 255, 0, 51, 0, 0, 4, 123, 6, 15, 6, 38, 2, 83, 0, 0, 0, 6, 1, 100, 226, 32, 255, 255, 0, 62, 255, 240, 4, 90, 6, 24, 6, 38, 2, 85, 0, 0, 0, 6, 1, 92, 126, 44, 255, 255, 0, 62, 255, 240, 4, 90, 6, 17, 6, 38, 2, 85, 0, 0, 0, 6, 1, 95, 18, 110, 255, 255, 0, 62, 254, 24, 4, 90, 4, 159, 6, 38, 2, 85, 0, 0, 0, 7, 1, 104, 0, 134, 254, 193, 255, 255, 0, 33, 0, 0, 4, 92, 6, 12, 6, 38, 2, 86, 0, 0, 0, 6, 1, 92, 96, 32, 255, 255, 0, 91, 0, 0, 4, 77, 6, 32, 6, 38, 2, 87, 0, 0, 0, 6, 1, 93, 114, 27, 255, 255, 0, 91, 0, 0, 4, 77, 5, 176, 6, 38, 2, 87, 0, 0, 0, 6, 1, 94, 226, 0, 255, 255, 0, 91, 0, 0, 4, 77, 5, 255, 6, 38, 2, 87, 0, 0, 0, 6, 1, 95, 245, 92, 0, 1, 0, 91, 254, 88, 4, 77, 4, 140, 0, 41, 0, 0, 65, 7, 33, 3, 33, 7, 33, 6, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 51, 22, 54, 55, 39, 6, 6, 39, 38, 38, 55, 54, 54, 55, 54, 54, 55, 51, 51, 55, 33, 19, 33, 55, 1, 37, 39, 1, 8, 124, 254, 249, 40, 1, 195, 27, 48, 18, 18, 22, 1, 1, 29, 27, 26, 74, 44, 46, 89, 40, 36, 19, 41, 20, 28, 21, 2, 3, 34, 26, 25, 61, 29, 4, 98, 40, 254, 241, 123, 1, 14, 40, 4, 140, 226, 253, 56, 226, 20, 48, 28, 28, 64, 36, 45, 73, 26, 26, 29, 1, 20, 22, 157, 8, 13, 1, 2, 32, 27, 35, 56, 22, 22, 36, 13, 226, 2, 200, 226, 0, 255, 255, 0, 91, 0, 0, 4, 77, 6, 12, 6, 38, 2, 87, 0, 0, 0, 6, 1, 96, 248, 42, 255, 255, 0, 116, 255, 238, 5, 96, 6, 5, 6, 38, 2, 88, 0, 0, 0, 7, 1, 92, 1, 154, 0, 25, 255, 255, 0, 45, 254, 31, 4, 224, 4, 141, 6, 38, 2, 89, 0, 0, 0, 7, 1, 104, 0, 64, 254, 200, 255, 255, 0, 51, 0, 0, 4, 5, 5, 203, 6, 38, 2, 90, 0, 0, 0, 7, 1, 91, 255, 80, 0, 5, 255, 255, 0, 51, 254, 32, 4, 5, 4, 141, 6, 38, 2, 90, 0, 0, 0, 7, 1, 104, 0, 125, 254, 201, 255, 255, 0, 51, 0, 0, 4, 5, 4, 144, 6, 38, 2, 90, 0, 0, 0, 7, 0, 109, 0, 22, 254, 120, 255, 255, 0, 51, 0, 0, 4, 5, 4, 141, 6, 38, 2, 90, 0, 0, 0, 7, 1, 96, 255, 165, 253, 65, 255, 255, 0, 50, 0, 0, 4, 88, 5, 226, 6, 38, 2, 92, 0, 0, 0, 6, 1, 91, 109, 28, 255, 255, 0, 50, 254, 24, 4, 88, 4, 141, 6, 38, 2, 92, 0, 0, 0, 7, 1, 104, 0, 128, 254, 193, 255, 255, 0, 50, 0, 0, 4, 113, 6, 15, 6, 38, 2, 92, 0, 0, 0, 6, 1, 100, 251, 32, 255, 255, 0, 77, 255, 237, 4, 89, 5, 193, 6, 38, 2, 93, 0, 0, 0, 6, 1, 94, 242, 17, 255, 255, 0, 77, 255, 237, 4, 89, 6, 17, 6, 38, 2, 93, 0, 0, 0, 6, 1, 95, 2, 110, 255, 255, 0, 77, 255, 237, 5, 30, 6, 26, 6, 38, 2, 93, 0, 0, 0, 6, 1, 99, 118, 44, 255, 255, 0, 38, 0, 0, 4, 78, 5, 251, 6, 38, 2, 95, 0, 0, 0, 6, 1, 91, 52, 53, 255, 255, 0, 38, 254, 32, 4, 78, 4, 141, 6, 38, 2, 95, 0, 0, 0, 7, 1, 104, 0, 72, 254, 201, 255, 255, 0, 38, 0, 0, 4, 78, 6, 40, 6, 38, 2, 95, 0, 0, 0, 6, 1, 100, 190, 57, 255, 255, 0, 86, 255, 239, 4, 105, 5, 238, 6, 38, 2, 96, 0, 0, 0, 7, 1, 91, 0, 133, 0, 40, 255, 255, 0, 86, 255, 239, 4, 91, 6, 24, 6, 38, 2, 96, 0, 0, 0, 6, 1, 92, 122, 44, 255, 255, 0, 86, 254, 46, 4, 91, 4, 159, 6, 38, 2, 96, 0, 0, 0, 6, 1, 102, 61, 252, 255, 255, 0, 86, 255, 239, 4, 111, 6, 27, 6, 38, 2, 96, 0, 0, 0, 6, 1, 100, 249, 44, 255, 255, 0, 140, 0, 0, 4, 218, 6, 15, 6, 38, 2, 97, 0, 0, 0, 6, 1, 100, 249, 32, 255, 255, 0, 112, 255, 238, 4, 133, 6, 63, 6, 38, 2, 98, 0, 0, 0, 7, 1, 93, 0, 165, 0, 58, 255, 255, 0, 112, 255, 238, 4, 133, 5, 206, 6, 38, 2, 98, 0, 0, 0, 6, 1, 94, 21, 30, 255, 255, 0, 112, 255, 238, 4, 133, 6, 30, 6, 38, 2, 98, 0, 0, 0, 6, 1, 95, 38, 123, 255, 255, 0, 112, 255, 238, 4, 133, 6, 101, 6, 38, 2, 98, 0, 0, 0, 7, 1, 98, 0, 60, 0, 209, 255, 255, 0, 112, 255, 238, 5, 66, 6, 39, 6, 38, 2, 98, 0, 0, 0, 7, 1, 99, 0, 154, 0, 57, 0, 1, 0, 112, 254, 166, 4, 133, 4, 141, 0, 60, 0, 0, 65, 33, 3, 6, 6, 7, 6, 6, 39, 38, 38, 39, 38, 38, 55, 19, 33, 3, 6, 22, 23, 22, 22, 23, 48, 48, 49, 6, 6, 7, 6, 6, 21, 6, 22, 23, 22, 22, 51, 22, 54, 55, 39, 6, 6, 39, 38, 38, 55, 54, 54, 55, 54, 54, 55, 54, 54, 55, 54, 54, 55, 4, 133, 254, 240, 129, 7, 33, 27, 27, 75, 48, 45, 61, 17, 18, 11, 5, 128, 254, 242, 128, 10, 44, 48, 47, 138, 85, 10, 17, 5, 5, 7, 1, 29, 26, 27, 74, 44, 46, 89, 40, 36, 19, 41, 20, 28, 21, 2, 1, 10, 8, 9, 25, 15, 64, 108, 41, 42, 54, 11, 4, 141, 253, 8, 45, 75, 26, 26, 29, 2, 1, 32, 27, 26, 71, 42, 2, 248, 253, 9, 91, 147, 54, 54, 65, 8, 15, 32, 17, 16, 35, 18, 45, 73, 26, 26, 29, 1, 20, 22, 157, 8, 13, 1, 2, 32, 27, 18, 31, 14, 15, 27, 12, 21, 73, 50, 50, 127, 75, 255, 255, 0, 130, 0, 0, 4, 210, 6, 12, 6, 38, 2, 100, 0, 0, 0, 6, 1, 92, 107, 32, 255, 255, 0, 161, 0, 0, 4, 244, 6, 12, 6, 38, 2, 102, 0, 0, 0, 6, 1, 92, 112, 32, 255, 255, 0, 161, 0, 0, 4, 244, 5, 243, 6, 38, 2, 102, 0, 0, 0, 6, 1, 97, 237, 32, 255, 255, 0, 54, 0, 0, 4, 122, 5, 226, 6, 38, 2, 103, 0, 0, 0, 6, 1, 91, 116, 28, 255, 255, 0, 54, 0, 0, 4, 122, 6, 18, 6, 38, 2, 103, 0, 0, 0, 6, 1, 96, 244, 48, 255, 255, 0, 54, 0, 0, 4, 122, 6, 15, 6, 38, 2, 103, 0, 0, 0, 6, 1, 100, 232, 32, 255, 255, 255, 174, 0, 0, 4, 60, 6, 129, 6, 38, 0, 2, 0, 0, 0, 7, 1, 120, 253, 241, 0, 0, 255, 255, 255, 251, 0, 0, 5, 11, 6, 131, 4, 38, 0, 6, 50, 0, 0, 7, 1, 120, 253, 88, 0, 2, 255, 255, 255, 235, 0, 0, 4, 235, 6, 127, 4, 38, 0, 9, 50, 0, 0, 7, 1, 120, 253, 72, 255, 254, 255, 255, 0, 46, 0, 0, 4, 180, 6, 131, 4, 38, 0, 10, 50, 0, 0, 7, 1, 120, 253, 139, 0, 2, 255, 255, 0, 24, 255, 234, 4, 148, 6, 129, 4, 38, 0, 16, 10, 0, 0, 7, 1, 120, 253, 117, 0, 0, 255, 255, 255, 148, 0, 0, 5, 101, 6, 129, 4, 38, 0, 26, 38, 0, 0, 7, 1, 120, 252, 241, 0, 0, 255, 255, 0, 2, 0, 0, 4, 157, 6, 129, 4, 38, 1, 132, 10, 0, 0, 7, 1, 120, 253, 135, 0, 0, 255, 255, 0, 217, 255, 234, 4, 111, 6, 192, 6, 38, 1, 141, 0, 0, 0, 6, 1, 121, 201, 183, 255, 255, 255, 174, 0, 0, 4, 60, 5, 176, 6, 6, 0, 2, 0, 0, 255, 255, 0, 20, 255, 255, 4, 175, 5, 176, 6, 6, 0, 3, 0, 0, 255, 255, 0, 38, 0, 0, 4, 217, 5, 176, 6, 6, 0, 6, 0, 0, 255, 255, 255, 248, 0, 0, 4, 212, 5, 176, 6, 6, 0, 27, 0, 0, 255, 255, 0, 15, 0, 0, 4, 185, 5, 176, 6, 6, 0, 9, 0, 0, 255, 255, 0, 82, 0, 0, 4, 130, 5, 176, 6, 6, 0, 10, 0, 0, 255, 255, 0, 20, 0, 0, 5, 82, 5, 176, 6, 6, 0, 12, 0, 0, 255, 255, 0, 18, 0, 0, 4, 212, 5, 176, 6, 6, 0, 14, 0, 0, 255, 255, 0, 15, 0, 0, 4, 184, 5, 176, 6, 6, 0, 15, 0, 0, 255, 255, 0, 73, 255, 234, 4, 138, 5, 198, 6, 6, 0, 16, 0, 0, 255, 255, 0, 40, 0, 0, 4, 184, 5, 176, 6, 6, 0, 17, 0, 0, 255, 255, 0, 134, 0, 0, 5, 35, 5, 176, 6, 6, 0, 21, 0, 0, 255, 255, 0, 186, 0, 0, 5, 63, 5, 176, 6, 6, 0, 26, 0, 0, 255, 255, 255, 184, 0, 0, 5, 38, 5, 176, 6, 6, 0, 25, 0, 0, 255, 255, 0, 82, 0, 0, 4, 130, 7, 48, 6, 38, 0, 10, 0, 0, 0, 7, 1, 97, 0, 26, 1, 93, 255, 255, 0, 186, 0, 0, 5, 63, 7, 48, 6, 38, 0, 26, 0, 0, 0, 7, 1, 97, 0, 52, 1, 93, 255, 255, 0, 82, 255, 235, 4, 58, 6, 140, 6, 38, 1, 133, 0, 0, 0, 6, 1, 120, 214, 11, 255, 255, 0, 75, 255, 235, 4, 138, 6, 139, 6, 38, 1, 137, 0, 0, 0, 6, 1, 120, 245, 10, 255, 255, 0, 20, 254, 97, 4, 63, 6, 140, 6, 38, 1, 139, 0, 0, 0, 6, 1, 120, 229, 11, 255, 255, 0, 217, 255, 234, 4, 37, 6, 120, 6, 38, 1, 141, 0, 0, 0, 6, 1, 120, 214, 247, 255, 255, 0, 85, 255, 233, 4, 91, 6, 204, 6, 38, 1, 149, 0, 0, 0, 6, 1, 121, 181, 195, 255, 255, 0, 50, 0, 0, 4, 222, 4, 58, 6, 6, 0, 79, 0, 0, 255, 255, 0, 81, 255, 232, 4, 66, 4, 81, 6, 6, 0, 42, 0, 0, 255, 255, 255, 246, 254, 96, 4, 150, 4, 58, 6, 6, 1, 107, 0, 0, 255, 255, 0, 149, 0, 0, 4, 179, 4, 59, 6, 6, 0, 49, 0, 0, 255, 255, 255, 241, 0, 0, 4, 197, 4, 58, 6, 6, 0, 51, 0, 0, 255, 255, 0, 217, 255, 234, 4, 74, 5, 217, 6, 38, 1, 141, 0, 0, 0, 6, 1, 97, 247, 6, 255, 255, 0, 85, 255, 233, 4, 62, 5, 229, 6, 38, 1, 149, 0, 0, 0, 6, 1, 97, 227, 18, 255, 255, 0, 81, 255, 232, 4, 66, 6, 140, 6, 38, 0, 42, 0, 0, 0, 6, 1, 120, 214, 11, 255, 255, 0, 85, 255, 233, 4, 62, 6, 131, 6, 38, 1, 149, 0, 0, 0, 6, 1, 120, 194, 2, 255, 255, 0, 23, 255, 233, 4, 143, 6, 134, 6, 38, 1, 152, 0, 0, 0, 6, 1, 120, 214, 5, 255, 255, 0, 38, 0, 0, 4, 217, 7, 39, 6, 38, 0, 6, 0, 0, 0, 7, 1, 97, 0, 65, 1, 84, 255, 255, 0, 32, 0, 0, 4, 176, 7, 22, 6, 38, 1, 123, 0, 0, 0, 7, 1, 91, 0, 184, 1, 80, 0, 1, 0, 57, 255, 236, 4, 177, 5, 198, 0, 79, 0, 0, 65, 6, 6, 7, 6, 6, 35, 38, 38, 39, 38, 38, 55, 37, 6, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 38, 38, 39, 38, 38, 39, 38, 38, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 5, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 22, 23, 22, 22, 3, 59, 7, 50, 36, 36, 87, 44, 65, 95, 30, 26, 24, 1, 254, 244, 3, 73, 67, 67, 182, 105, 92, 181, 75, 82, 107, 8, 6, 59, 53, 54, 144, 79, 37, 90, 38, 19, 31, 10, 12, 10, 3, 6, 50, 36, 36, 87, 44, 52, 77, 26, 25, 25, 1, 1, 10, 3, 65, 60, 60, 168, 99, 95, 189, 77, 77, 102, 6, 6, 67, 58, 58, 151, 78, 41, 84, 33, 15, 24, 8, 9, 8, 1, 131, 48, 69, 22, 23, 21, 1, 38, 36, 31, 87, 55, 1, 110, 173, 61, 61, 65, 2, 1, 43, 46, 49, 159, 112, 91, 147, 56, 56, 81, 27, 12, 33, 25, 11, 29, 17, 18, 44, 27, 48, 71, 24, 23, 23, 1, 1, 32, 29, 29, 82, 49, 1, 102, 164, 58, 58, 64, 2, 2, 50, 52, 52, 156, 104, 93, 145, 54, 54, 77, 25, 14, 36, 26, 12, 29, 17, 20, 47, 0, 255, 255, 0, 82, 0, 0, 4, 130, 5, 176, 6, 6, 0, 10, 0, 0, 255, 255, 0, 82, 0, 0, 4, 130, 7, 48, 6, 38, 0, 10, 0, 0, 0, 7, 1, 97, 0, 26, 1, 93, 255, 255, 0, 71, 255, 234, 4, 192, 5, 176, 6, 6, 0, 11, 0, 0, 255, 255, 0, 42, 0, 0, 5, 48, 5, 176, 6, 6, 2, 113, 0, 0, 255, 255, 0, 20, 0, 0, 5, 82, 7, 19, 6, 38, 0, 12, 0, 0, 0, 7, 1, 91, 0, 161, 1, 77, 255, 255, 255, 251, 255, 232, 5, 75, 7, 57, 6, 38, 1, 168, 0, 0, 0, 7, 1, 95, 0, 111, 1, 150, 255, 255, 255, 174, 0, 0, 4, 60, 5, 176, 6, 6, 0, 2, 0, 0, 255, 255, 0, 20, 255, 255, 4, 175, 5, 176, 6, 6, 0, 3, 0, 0, 255, 255, 0, 32, 0, 0, 4, 176, 5, 176, 6, 6, 1, 123, 0, 0, 255, 255, 0, 38, 0, 0, 4, 217, 5, 176, 6, 6, 0, 6, 0, 0, 255, 255, 0, 3, 0, 0, 4, 180, 7, 44, 6, 38, 1, 166, 0, 0, 0, 7, 1, 95, 0, 36, 1, 137, 255, 255, 0, 18, 0, 0, 4, 212, 5, 176, 6, 6, 0, 14, 0, 0, 255, 255, 0, 15, 0, 0, 4, 185, 5, 176, 6, 6, 0, 9, 0, 0, 255, 255, 0, 73, 255, 234, 4, 138, 5, 198, 6, 6, 0, 16, 0, 0, 255, 255, 0, 13, 0, 0, 4, 188, 5, 176, 6, 6, 1, 128, 0, 0, 255, 255, 0, 40, 0, 0, 4, 184, 5, 176, 6, 6, 0, 17, 0, 0, 255, 255, 0, 74, 255, 232, 4, 156, 5, 199, 6, 6, 0, 4, 0, 0, 255, 255, 0, 134, 0, 0, 5, 35, 5, 176, 6, 6, 0, 21, 0, 0, 255, 255, 0, 75, 0, 0, 4, 230, 5, 176, 6, 6, 1, 130, 0, 0, 255, 255, 255, 184, 0, 0, 5, 38, 5, 176, 6, 6, 0, 25, 0, 0, 255, 255, 0, 58, 255, 235, 4, 27, 4, 80, 6, 6, 0, 28, 0, 0, 255, 255, 0, 85, 255, 235, 4, 76, 4, 80, 6, 6, 0, 32, 0, 0, 255, 255, 0, 13, 0, 0, 4, 112, 5, 247, 6, 38, 1, 185, 0, 0, 0, 6, 1, 95, 242, 84, 255, 255, 0, 81, 255, 232, 4, 66, 4, 81, 6, 6, 0, 42, 0, 0, 255, 255, 255, 220, 254, 96, 4, 53, 4, 79, 6, 6, 0, 43, 0, 0, 0, 1, 0, 96, 255, 233, 4, 49, 4, 81, 0, 57, 0, 0, 101, 38, 38, 39, 38, 38, 39, 38, 54, 55, 55, 54, 54, 55, 54, 54, 23, 22, 22, 23, 22, 22, 7, 23, 54, 38, 39, 38, 38, 39, 38, 6, 7, 6, 6, 7, 7, 6, 22, 23, 22, 22, 23, 22, 22, 23, 22, 54, 55, 54, 54, 55, 7, 6, 6, 7, 6, 6, 2, 19, 65, 69, 15, 6, 6, 2, 2, 3, 3, 4, 7, 36, 32, 32, 97, 69, 43, 64, 21, 21, 18, 3, 255, 5, 53, 52, 53, 150, 93, 120, 197, 73, 73, 90, 14, 3, 6, 5, 10, 10, 36, 26, 51, 167, 117, 87, 169, 69, 68, 88, 5, 254, 6, 41, 29, 30, 73, 201, 2, 65, 48, 17, 38, 20, 33, 69, 30, 30, 57, 117, 48, 47, 58, 2, 2, 31, 26, 26, 71, 40, 1, 93, 153, 56, 55, 62, 2, 3, 86, 75, 76, 202, 113, 31, 54, 105, 48, 47, 85, 37, 75, 90, 2, 2, 53, 51, 51, 147, 92, 2, 40, 64, 21, 22, 22, 0, 255, 255, 0, 0, 254, 72, 5, 3, 4, 58, 6, 6, 0, 52, 0, 0, 255, 255, 255, 241, 0, 0, 4, 197, 4, 58, 6, 6, 0, 51, 0, 0, 255, 255, 0, 85, 255, 235, 4, 76, 5, 239, 6, 38, 0, 32, 0, 0, 0, 6, 1, 97, 228, 28, 255, 255, 0, 34, 0, 0, 4, 103, 5, 212, 6, 38, 1, 181, 0, 0, 0, 6, 1, 91, 127, 14, 255, 255, 0, 74, 255, 234, 4, 76, 4, 79, 6, 6, 0, 46, 0, 0, 255, 255, 0, 104, 0, 0, 3, 233, 5, 230, 6, 6, 0, 36, 0, 0, 255, 255, 0, 88, 0, 0, 4, 114, 5, 212, 6, 38, 1, 109, 0, 0, 0, 6, 1, 97, 31, 1, 255, 255, 0, 48, 254, 73, 3, 219, 5, 230, 6, 6, 0, 37, 0, 0, 255, 255, 0, 24, 0, 0, 4, 229, 5, 212, 6, 38, 1, 186, 0, 0, 0, 6, 1, 91, 86, 14, 255, 255, 0, 0, 254, 72, 5, 3, 5, 235, 6, 38, 0, 52, 0, 0, 0, 6, 1, 95, 35, 72, 255, 255, 255, 224, 255, 239, 5, 10, 5, 176, 6, 39, 0, 91, 254, 128, 0, 0, 0, 7, 0, 91, 1, 156, 0, 0, 255, 255, 0, 51, 254, 73, 4, 213, 5, 226, 6, 38, 1, 113, 0, 0, 0, 6, 1, 100, 95, 243, 255, 255, 2, 24, 3, 228, 3, 152, 6, 24, 6, 6, 0, 109, 0, 0, 255, 255, 0, 18, 0, 0, 4, 212, 7, 31, 6, 38, 0, 14, 0, 0, 0, 7, 1, 91, 0, 181, 1, 89, 255, 255, 255, 224, 0, 0, 4, 134, 5, 221, 6, 38, 0, 40, 0, 0, 0, 7, 1, 91, 0, 162, 0, 23, 255, 255, 255, 174, 254, 146, 4, 60, 5, 176, 6, 38, 0, 2, 0, 0, 0, 6, 1, 114, 2, 5, 255, 255, 0, 58, 254, 154, 4, 27, 4, 80, 6, 38, 0, 28, 0, 0, 0, 6, 1, 114, 193, 13, 255, 255, 255, 202, 255, 234, 4, 138, 6, 85, 6, 38, 0, 16, 0, 0, 0, 7, 2, 108, 253, 134, 0, 144, 255, 255, 0, 38, 0, 0, 4, 217, 7, 25, 6, 38, 0, 6, 0, 0, 0, 7, 1, 90, 255, 191, 1, 83, 255, 255, 0, 3, 0, 0, 4, 180, 7, 12, 6, 38, 1, 166, 0, 0, 0, 7, 1, 90, 255, 138, 1, 70, 255, 255, 0, 85, 255, 235, 4, 76, 5, 225, 6, 38, 0, 32, 0, 0, 0, 7, 1, 90, 255, 97, 0, 27, 255, 255, 0, 13, 0, 0, 4, 112, 5, 215, 6, 38, 1, 185, 0, 0, 0, 7, 1, 90, 255, 87, 0, 17, 255, 255, 0, 108, 0, 0, 5, 75, 5, 176, 6, 6, 1, 131, 0, 0, 255, 255, 0, 59, 254, 34, 4, 200, 4, 60, 6, 6, 1, 151, 0, 0, 255, 255, 0, 164, 0, 0, 5, 110, 7, 112, 6, 38, 1, 226, 0, 0, 0, 7, 1, 119, 4, 122, 1, 130, 255, 255, 0, 140, 0, 0, 4, 162, 6, 63, 6, 38, 1, 227, 0, 0, 0, 7, 1, 119, 4, 35, 0, 81, 255, 255, 0, 35, 254, 3, 4, 181, 5, 198, 6, 38, 1, 165, 0, 0, 0, 7, 2, 110, 255, 195, 255, 103, 255, 255, 0, 59, 254, 13, 4, 77, 4, 78, 6, 38, 1, 184, 0, 0, 0, 7, 2, 110, 255, 197, 255, 113, 255, 255, 0, 74, 254, 18, 4, 156, 5, 199, 6, 38, 0, 4, 0, 0, 0, 7, 2, 110, 255, 203, 255, 118, 255, 255, 0, 96, 254, 18, 4, 49, 4, 81, 6, 38, 0, 30, 0, 0, 0, 7, 2, 110, 255, 203, 255, 118, 255, 255, 0, 186, 0, 0, 5, 63, 5, 176, 6, 6, 0, 26, 0, 0, 255, 255, 0, 127, 254, 95, 4, 236, 4, 58, 6, 6, 1, 135, 0, 0, 255, 255, 0, 82, 0, 0, 4, 130, 5, 176, 6, 6, 0, 10, 0, 0, 255, 255, 255, 139, 0, 0, 5, 34, 7, 57, 6, 38, 1, 164, 0, 0, 0, 7, 1, 95, 0, 69, 1, 150, 255, 255, 255, 179, 0, 0, 4, 207, 5, 247, 6, 38, 1, 183, 0, 0, 0, 6, 1, 95, 5, 84, 255, 255, 0, 82, 0, 0, 4, 130, 5, 176, 6, 6, 0, 10, 0, 0, 255, 255, 255, 174, 0, 0, 4, 130, 7, 66, 6, 38, 0, 2, 0, 0, 0, 7, 1, 95, 0, 82, 1, 159, 255, 255, 0, 58, 255, 235, 4, 39, 6, 0, 6, 38, 0, 28, 0, 0, 0, 6, 1, 95, 247, 93, 255, 255, 255, 174, 0, 0, 4, 141, 7, 48, 6, 38, 0, 2, 0, 0, 0, 7, 1, 97, 0, 58, 1, 93, 255, 255, 0, 58, 255, 235, 4, 50, 5, 238, 6, 38, 0, 28, 0, 0, 0, 6, 1, 97, 223, 27, 255, 255, 255, 193, 0, 0, 4, 247, 5, 176, 6, 6, 0, 72, 0, 0, 255, 255, 255, 245, 255, 235, 4, 158, 4, 81, 6, 6, 0, 73, 0, 0, 255, 255, 0, 38, 0, 0, 4, 217, 7, 57, 6, 38, 0, 6, 0, 0, 0, 7, 1, 95, 0, 89, 1, 150, 255, 255, 0, 85, 255, 235, 4, 76, 6, 1, 6, 38, 0, 32, 0, 0, 0, 6, 1, 95, 252, 94, 255, 255, 0, 67, 255, 233, 4, 135, 6, 249, 6, 38, 2, 16, 0, 0, 0, 7, 1, 97, 0, 46, 1, 38, 255, 255, 0, 119, 255, 235, 4, 84, 4, 79, 6, 6, 0, 81, 0, 0, 255, 255, 0, 119, 255, 235, 4, 95, 5, 239, 6, 38, 0, 81, 0, 0, 0, 6, 1, 97, 12, 28, 255, 255, 255, 139, 0, 0, 5, 34, 7, 39, 6, 38, 1, 164, 0, 0, 0, 7, 1, 97, 0, 45, 1, 84, 255, 255, 255, 179, 0, 0, 4, 207, 5, 229, 6, 38, 1, 183, 0, 0, 0, 6, 1, 97, 238, 18, 255, 255, 0, 35, 255, 235, 4, 181, 7, 47, 6, 38, 1, 165, 0, 0, 0, 7, 1, 97, 0, 46, 1, 92, 255, 255, 0, 59, 255, 235, 4, 77, 5, 237, 6, 38, 1, 184, 0, 0, 0, 6, 1, 97, 244, 26, 255, 255, 0, 3, 0, 0, 4, 180, 6, 220, 6, 38, 1, 166, 0, 0, 0, 7, 1, 94, 0, 19, 1, 44, 255, 255, 0, 13, 0, 0, 4, 112, 5, 168, 6, 38, 1, 185, 0, 0, 0, 6, 1, 94, 225, 248, 255, 255, 0, 3, 0, 0, 4, 180, 7, 26, 6, 38, 1, 166, 0, 0, 0, 7, 1, 97, 0, 12, 1, 71, 255, 255, 0, 13, 0, 0, 4, 112, 5, 229, 6, 38, 1, 185, 0, 0, 0, 6, 1, 97, 218, 18, 255, 255, 0, 73, 255, 234, 4, 138, 7, 69, 6, 38, 0, 16, 0, 0, 0, 7, 1, 97, 0, 44, 1, 114, 255, 255, 0, 81, 255, 232, 4, 74, 5, 238, 6, 38, 0, 42, 0, 0, 0, 6, 1, 97, 247, 27, 255, 255, 0, 71, 255, 234, 4, 136, 5, 198, 6, 6, 1, 224, 0, 0, 255, 255, 0, 72, 255, 232, 4, 63, 4, 80, 6, 6, 1, 225, 0, 0, 255, 255, 0, 71, 255, 234, 4, 136, 7, 38, 6, 38, 1, 224, 0, 0, 0, 7, 1, 97, 0, 45, 1, 83, 255, 255, 0, 72, 255, 232, 4, 63, 5, 248, 6, 38, 1, 225, 0, 0, 0, 6, 1, 97, 229, 37, 255, 255, 0, 1, 255, 233, 4, 85, 7, 47, 6, 38, 1, 176, 0, 0, 0, 7, 1, 97, 255, 248, 1, 92, 255, 255, 0, 66, 255, 233, 4, 56, 5, 238, 6, 38, 1, 200, 0, 0, 0, 6, 1, 97, 229, 27, 255, 255, 255, 251, 255, 232, 5, 75, 6, 233, 6, 38, 1, 168, 0, 0, 0, 7, 1, 94, 0, 94, 1, 57, 255, 255, 0, 0, 254, 72, 5, 3, 5, 156, 6, 38, 0, 52, 0, 0, 0, 6, 1, 94, 18, 236, 255, 255, 255, 251, 255, 232, 5, 75, 7, 39, 6, 38, 1, 168, 0, 0, 0, 7, 1, 97, 0, 87, 1, 84, 255, 255, 0, 0, 254, 72, 5, 3, 5, 217, 6, 38, 0, 52, 0, 0, 0, 6, 1, 97, 11, 6, 255, 255, 255, 251, 255, 232, 5, 139, 7, 66, 6, 38, 1, 168, 0, 0, 0, 7, 1, 99, 0, 227, 1, 84, 255, 255, 0, 0, 254, 72, 5, 63, 5, 244, 6, 38, 0, 52, 0, 0, 0, 7, 1, 99, 0, 151, 0, 6, 255, 255, 0, 213, 0, 0, 4, 211, 7, 39, 6, 38, 1, 170, 0, 0, 0, 7, 1, 97, 0, 7, 1, 84, 255, 255, 0, 137, 0, 0, 4, 148, 5, 229, 6, 38, 1, 194, 0, 0, 0, 6, 1, 97, 40, 18, 255, 255, 255, 223, 255, 254, 4, 243, 7, 48, 6, 38, 1, 174, 0, 0, 0, 7, 1, 97, 0, 5, 1, 93, 255, 255, 255, 247, 255, 255, 4, 174, 5, 217, 6, 38, 1, 198, 0, 0, 0, 6, 1, 97, 35, 6, 255, 255, 255, 184, 254, 71, 5, 38, 5, 176, 6, 38, 0, 25, 0, 0, 0, 7, 2, 111, 2, 8, 0, 0, 255, 255, 255, 241, 254, 71, 4, 197, 4, 58, 6, 38, 0, 51, 0, 0, 0, 7, 2, 111, 1, 185, 0, 0, 255, 255, 0, 91, 255, 235, 4, 187, 6, 0, 6, 6, 0, 31, 0, 0, 255, 255, 255, 196, 254, 71, 4, 252, 5, 176, 6, 38, 1, 167, 0, 0, 0, 7, 2, 111, 2, 16, 0, 0, 255, 255, 255, 195, 254, 71, 4, 235, 4, 58, 6, 38, 1, 187, 0, 0, 0, 7, 2, 111, 1, 255, 0, 0, 255, 255, 255, 174, 254, 152, 4, 60, 5, 176, 6, 38, 0, 2, 0, 0, 0, 7, 1, 101, 4, 161, 0, 5, 255, 255, 0, 58, 254, 160, 4, 27, 4, 80, 6, 38, 0, 28, 0, 0, 0, 7, 1, 101, 4, 95, 0, 13, 255, 255, 255, 174, 0, 0, 4, 60, 7, 198, 6, 38, 0, 2, 0, 0, 0, 7, 1, 118, 4, 235, 1, 66, 255, 255, 0, 58, 255, 235, 4, 27, 6, 132, 6, 38, 0, 28, 0, 0, 0, 7, 1, 118, 4, 143, 0, 0, 255, 255, 255, 174, 0, 0, 5, 240, 7, 227, 6, 38, 0, 2, 0, 0, 0, 7, 2, 76, 0, 45, 1, 94, 255, 255, 0, 58, 255, 235, 5, 149, 6, 161, 6, 38, 0, 28, 0, 0, 0, 6, 2, 76, 210, 28, 255, 255, 255, 174, 0, 0, 4, 116, 7, 210, 6, 38, 0, 2, 0, 0, 0, 7, 2, 75, 0, 20, 1, 65, 255, 255, 0, 58, 255, 235, 4, 27, 6, 145, 6, 38, 0, 28, 0, 0, 0, 6, 2, 75, 185, 0, 255, 255, 255, 174, 0, 0, 5, 107, 7, 239, 6, 38, 0, 2, 0, 0, 0, 7, 2, 74, 0, 40, 1, 61, 255, 255, 0, 58, 255, 235, 5, 16, 6, 174, 6, 38, 0, 28, 0, 0, 0, 6, 2, 74, 205, 252, 255, 255, 255, 174, 0, 0, 4, 108, 8, 43, 6, 38, 0, 2, 0, 0, 0, 7, 2, 73, 0, 30, 1, 59, 255, 255, 0, 58, 255, 235, 4, 27, 6, 234, 6, 38, 0, 28, 0, 0, 0, 6, 2, 73, 195, 250, 255, 255, 255, 174, 254, 152, 4, 132, 7, 73, 6, 38, 0, 2, 0, 0, 0, 39, 1, 92, 0, 190, 1, 93, 0, 7, 1, 101, 4, 161, 0, 5, 255, 255, 0, 58, 254, 160, 4, 40, 6, 7, 6, 38, 0, 28, 0, 0, 0, 38, 1, 92, 98, 27, 0, 7, 1, 101, 4, 95, 0, 13, 255, 255, 255, 174, 0, 0, 4, 120, 7, 189, 6, 38, 0, 2, 0, 0, 0, 7, 2, 105, 0, 46, 1, 76, 255, 255, 0, 58, 255, 235, 4, 29, 6, 123, 6, 38, 0, 28, 0, 0, 0, 6, 2, 105, 211, 10, 255, 255, 255, 174, 0, 0, 4, 143, 8, 28, 6, 38, 0, 2, 0, 0, 0, 7, 2, 77, 0, 69, 1, 171, 255, 255, 0, 58, 255, 235, 4, 52, 6, 218, 6, 38, 0, 28, 0, 0, 0, 6, 2, 77, 234, 105, 255, 255, 255, 174, 0, 0, 4, 113, 8, 50, 6, 38, 0, 2, 0, 0, 0, 7, 2, 104, 0, 23, 1, 61, 255, 255, 0, 58, 255, 235, 4, 27, 6, 241, 6, 38, 0, 28, 0, 0, 0, 6, 2, 104, 188, 252, 255, 255, 255, 174, 0, 0, 4, 116, 8, 34, 6, 38, 0, 2, 0, 0, 0, 7, 2, 109, 255, 255, 1, 65, 255, 255, 0, 58, 255, 235, 4, 27, 6, 225, 6, 38, 0, 28, 0, 0, 0, 6, 2, 109, 163, 0, 255, 255, 255, 174, 254, 152, 4, 130, 7, 66, 6, 38, 0, 2, 0, 0, 0, 39, 1, 95, 0, 82, 1, 159, 0, 7, 1, 101, 4, 161, 0, 5, 255, 255, 0, 58, 254, 160, 4, 39, 6, 0, 6, 38, 0, 28, 0, 0, 0, 38, 1, 95, 247, 93, 0, 7, 1, 101, 4, 95, 0, 13, 255, 255, 0, 38, 254, 157, 4, 217, 5, 176, 6, 38, 0, 6, 0, 0, 0, 7, 1, 101, 4, 185, 0, 10, 255, 255, 0, 85, 254, 147, 4, 76, 4, 80, 6, 38, 0, 32, 0, 0, 0, 7, 1, 101, 4, 174, 0, 0, 255, 255, 0, 38, 0, 0, 4, 217, 7, 189, 6, 38, 0, 6, 0, 0, 0, 7, 1, 118, 4, 242, 1, 57, 255, 255, 0, 85, 255, 235, 4, 76, 6, 133, 6, 38, 0, 32, 0, 0, 0, 7, 1, 118, 4, 148, 0, 1, 255, 255, 0, 38, 0, 0, 4, 217, 7, 90, 6, 38, 0, 6, 0, 0, 0, 7, 1, 93, 0, 216, 1, 85, 255, 255, 0, 85, 255, 235, 4, 76, 6, 34, 6, 38, 0, 32, 0, 0, 0, 6, 1, 93, 122, 29, 255, 255, 0, 38, 0, 0, 5, 247, 7, 218, 6, 38, 0, 6, 0, 0, 0, 7, 2, 76, 0, 52, 1, 85, 255, 255, 0, 85, 255, 235, 5, 154, 6, 162, 6, 38, 0, 32, 0, 0, 0, 6, 2, 76, 215, 29, 255, 255, 0, 38, 0, 0, 4, 217, 7, 201, 6, 38, 0, 6, 0, 0, 0, 7, 2, 75, 0, 27, 1, 56, 255, 255, 0, 85, 255, 235, 4, 76, 6, 145, 6, 38, 0, 32, 0, 0, 0, 6, 2, 75, 190, 0, 255, 255, 0, 38, 0, 0, 5, 114, 7, 230, 6, 38, 0, 6, 0, 0, 0, 7, 2, 74, 0, 47, 1, 52, 255, 255, 0, 85, 255, 235, 5, 21, 6, 175, 6, 38, 0, 32, 0, 0, 0, 6, 2, 74, 210, 253, 255, 255, 0, 38, 0, 0, 4, 217, 8, 34, 6, 38, 0, 6, 0, 0, 0, 7, 2, 73, 0, 37, 1, 50, 255, 255, 0, 85, 255, 235, 4, 76, 6, 235, 6, 38, 0, 32, 0, 0, 0, 6, 2, 73, 200, 251, 255, 255, 0, 38, 254, 157, 4, 217, 7, 64, 6, 38, 0, 6, 0, 0, 0, 39, 1, 92, 0, 197, 1, 84, 0, 7, 1, 101, 4, 185, 0, 10, 255, 255, 0, 85, 254, 147, 4, 76, 6, 8, 6, 38, 0, 32, 0, 0, 0, 38, 1, 92, 103, 28, 0, 7, 1, 101, 4, 174, 0, 0, 255, 255, 0, 82, 0, 0, 4, 130, 7, 198, 6, 38, 0, 10, 0, 0, 0, 7, 1, 118, 4, 203, 1, 66, 255, 255, 0, 88, 0, 0, 4, 18, 6, 107, 6, 38, 1, 109, 0, 0, 0, 7, 1, 118, 4, 208, 255, 231, 255, 255, 0, 82, 254, 157, 4, 130, 5, 176, 6, 38, 0, 10, 0, 0, 0, 7, 1, 101, 4, 141, 0, 10, 255, 255, 0, 104, 254, 157, 3, 233, 5, 230, 6, 38, 0, 36, 0, 0, 0, 7, 1, 101, 4, 203, 0, 10, 255, 255, 0, 73, 254, 138, 4, 138, 5, 198, 6, 38, 0, 16, 0, 0, 0, 7, 1, 101, 4, 156, 255, 247, 255, 255, 0, 81, 254, 133, 4, 66, 4, 81, 6, 38, 0, 42, 0, 0, 0, 7, 1, 101, 4, 150, 255, 242, 255, 255, 0, 73, 255, 234, 4, 138, 7, 219, 6, 38, 0, 16, 0, 0, 0, 7, 1, 118, 4, 221, 1, 87, 255, 255, 0, 81, 255, 232, 4, 66, 6, 132, 6, 38, 0, 42, 0, 0, 0, 7, 1, 118, 4, 167, 0, 0, 255, 255, 0, 73, 255, 234, 5, 226, 7, 248, 6, 38, 0, 16, 0, 0, 0, 7, 2, 76, 0, 31, 1, 115, 255, 255, 0, 81, 255, 232, 5, 173, 6, 161, 6, 38, 0, 42, 0, 0, 0, 6, 2, 76, 234, 28, 255, 255, 0, 73, 255, 234, 4, 138, 7, 231, 6, 38, 0, 16, 0, 0, 0, 7, 2, 75, 0, 6, 1, 86, 255, 255, 0, 81, 255, 232, 4, 66, 6, 145, 6, 38, 0, 42, 0, 0, 0, 6, 2, 75, 209, 0, 255, 255, 0, 73, 255, 234, 5, 93, 8, 4, 6, 38, 0, 16, 0, 0, 0, 7, 2, 74, 0, 26, 1, 82, 255, 255, 0, 81, 255, 232, 5, 40, 6, 174, 6, 38, 0, 42, 0, 0, 0, 6, 2, 74, 229, 252, 255, 255, 0, 73, 255, 234, 4, 138, 8, 64, 6, 38, 0, 16, 0, 0, 0, 7, 2, 73, 0, 16, 1, 80, 255, 255, 0, 81, 255, 232, 4, 66, 6, 234, 6, 38, 0, 42, 0, 0, 0, 6, 2, 73, 219, 250, 255, 255, 0, 73, 254, 138, 4, 138, 7, 94, 6, 38, 0, 16, 0, 0, 0, 39, 1, 92, 0, 176, 1, 114, 0, 7, 1, 101, 4, 156, 255, 247, 255, 255, 0, 81, 254, 133, 4, 66, 6, 7, 6, 38, 0, 42, 0, 0, 0, 38, 1, 92, 122, 27, 0, 7, 1, 101, 4, 150, 255, 242, 255, 255, 0, 86, 255, 234, 5, 80, 7, 39, 6, 38, 0, 216, 0, 0, 0, 7, 1, 91, 0, 195, 1, 97, 255, 255, 0, 70, 255, 232, 4, 221, 5, 221, 6, 38, 1, 53, 0, 0, 0, 6, 1, 91, 123, 23, 255, 255, 0, 86, 255, 234, 5, 80, 7, 42, 6, 38, 0, 216, 0, 0, 0, 7, 1, 90, 255, 178, 1, 100, 255, 255, 0, 70, 255, 232, 4, 221, 5, 224, 6, 38, 1, 53, 0, 0, 0, 7, 1, 90, 255, 106, 0, 26, 255, 255, 0, 86, 255, 234, 5, 80, 7, 206, 6, 38, 0, 216, 0, 0, 0, 7, 1, 118, 4, 229, 1, 74, 255, 255, 0, 70, 255, 232, 4, 221, 6, 132, 6, 38, 1, 53, 0, 0, 0, 7, 1, 118, 4, 157, 0, 0, 255, 255, 0, 86, 255, 234, 5, 80, 7, 107, 6, 38, 0, 216, 0, 0, 0, 7, 1, 93, 0, 203, 1, 102, 255, 255, 0, 70, 255, 232, 4, 221, 6, 33, 6, 38, 1, 53, 0, 0, 0, 7, 1, 93, 0, 131, 0, 28, 255, 255, 0, 86, 254, 147, 5, 80, 5, 224, 6, 38, 0, 216, 0, 0, 0, 7, 1, 101, 4, 144, 0, 0, 255, 255, 0, 70, 254, 138, 4, 221, 4, 157, 6, 38, 1, 53, 0, 0, 0, 7, 1, 101, 4, 147, 255, 247, 255, 255, 0, 94, 254, 140, 4, 193, 5, 176, 6, 38, 0, 22, 0, 0, 0, 7, 1, 101, 4, 150, 255, 249, 255, 255, 0, 113, 254, 147, 4, 127, 4, 58, 6, 38, 0, 48, 0, 0, 0, 7, 1, 101, 4, 60, 0, 0, 255, 255, 0, 94, 255, 233, 4, 193, 7, 195, 6, 38, 0, 22, 0, 0, 0, 7, 1, 118, 4, 225, 1, 63, 255, 255, 0, 113, 255, 233, 4, 127, 6, 112, 6, 38, 0, 48, 0, 0, 0, 7, 1, 118, 4, 165, 255, 236, 255, 255, 0, 101, 255, 233, 6, 33, 7, 31, 6, 38, 0, 236, 0, 0, 0, 7, 1, 91, 0, 200, 1, 89, 255, 255, 0, 85, 255, 234, 5, 143, 5, 200, 6, 38, 1, 73, 0, 0, 0, 6, 1, 91, 123, 2, 255, 255, 0, 101, 255, 233, 6, 33, 7, 34, 6, 38, 0, 236, 0, 0, 0, 7, 1, 90, 255, 183, 1, 92, 255, 255, 0, 85, 255, 234, 5, 143, 5, 203, 6, 38, 1, 73, 0, 0, 0, 7, 1, 90, 255, 106, 0, 5, 255, 255, 0, 101, 255, 233, 6, 33, 7, 198, 6, 38, 0, 236, 0, 0, 0, 7, 1, 118, 4, 234, 1, 66, 255, 255, 0, 85, 255, 234, 5, 143, 6, 112, 6, 38, 1, 73, 0, 0, 0, 7, 1, 118, 4, 157, 255, 236, 255, 255, 0, 101, 255, 233, 6, 33, 7, 99, 6, 38, 0, 236, 0, 0, 0, 7, 1, 93, 0, 208, 1, 94, 255, 255, 0, 85, 255, 234, 5, 143, 6, 12, 6, 38, 1, 73, 0, 0, 0, 7, 1, 93, 0, 131, 0, 7, 255, 255, 0, 101, 254, 138, 6, 33, 5, 230, 6, 38, 0, 236, 0, 0, 0, 7, 1, 101, 4, 169, 255, 247, 255, 255, 0, 85, 254, 147, 5, 143, 4, 156, 6, 38, 1, 73, 0, 0, 0, 7, 1, 101, 4, 57, 0, 0, 255, 255, 0, 186, 254, 186, 5, 63, 5, 176, 6, 38, 0, 26, 0, 0, 0, 7, 1, 101, 4, 172, 0, 39, 255, 255, 0, 0, 254, 33, 5, 3, 4, 58, 6, 38, 0, 52, 0, 0, 0, 7, 1, 101, 5, 164, 255, 142, 255, 255, 0, 186, 0, 0, 5, 63, 7, 198, 6, 38, 0, 26, 0, 0, 0, 7, 1, 118, 4, 229, 1, 66, 255, 255, 0, 0, 254, 72, 5, 3, 6, 112, 6, 38, 0, 52, 0, 0, 0, 7, 1, 118, 4, 188, 255, 236, 255, 255, 0, 186, 0, 0, 5, 63, 7, 99, 6, 38, 0, 26, 0, 0, 0, 7, 1, 93, 0, 203, 1, 94, 255, 255, 0, 0, 254, 72, 5, 3, 6, 12, 6, 38, 0, 52, 0, 0, 0, 7, 1, 93, 0, 162, 0, 7, 255, 255, 0, 16, 254, 190, 5, 71, 6, 0, 4, 38, 0, 31, 241, 0, 0, 39, 2, 106, 1, 91, 2, 60, 0, 6, 0, 102, 15, 151, 255, 255, 0, 42, 254, 157, 5, 48, 5, 176, 6, 38, 2, 113, 0, 0, 0, 7, 2, 110, 1, 241, 0, 1, 255, 255, 0, 24, 254, 156, 4, 229, 4, 58, 6, 38, 1, 186, 0, 0, 0, 7, 2, 110, 2, 37, 0, 0, 255, 255, 0, 15, 254, 156, 4, 185, 5, 176, 6, 38, 0, 9, 0, 0, 0, 7, 2, 110, 1, 217, 0, 0, 255, 255, 0, 13, 254, 156, 4, 142, 4, 58, 6, 38, 1, 189, 0, 0, 0, 7, 2, 110, 1, 217, 0, 0, 255, 255, 0, 134, 254, 156, 5, 35, 5, 176, 6, 38, 0, 21, 0, 0, 0, 7, 2, 110, 0, 130, 0, 0, 255, 255, 0, 134, 254, 156, 4, 227, 4, 58, 6, 38, 1, 191, 0, 0, 0, 7, 2, 110, 0, 184, 0, 0, 255, 255, 255, 184, 254, 156, 5, 38, 5, 176, 6, 38, 0, 25, 0, 0, 0, 7, 2, 110, 1, 226, 0, 0, 255, 255, 255, 241, 254, 156, 4, 197, 4, 58, 6, 38, 0, 51, 0, 0, 0, 7, 2, 110, 1, 147, 0, 0, 255, 255, 0, 213, 254, 156, 4, 211, 5, 176, 6, 38, 1, 170, 0, 0, 0, 7, 2, 110, 1, 250, 0, 0, 255, 255, 0, 137, 254, 156, 4, 179, 4, 58, 6, 38, 1, 194, 0, 0, 0, 7, 2, 110, 1, 254, 0, 0, 255, 255, 0, 213, 254, 156, 4, 211, 5, 176, 6, 38, 1, 170, 0, 0, 0, 7, 2, 110, 0, 136, 0, 0, 255, 255, 0, 137, 254, 156, 4, 148, 4, 58, 6, 38, 1, 194, 0, 0, 0, 7, 2, 110, 0, 139, 0, 0, 255, 255, 0, 32, 254, 156, 4, 176, 5, 176, 6, 38, 1, 123, 0, 0, 0, 7, 2, 110, 255, 87, 0, 0, 255, 255, 0, 34, 254, 156, 4, 103, 4, 58, 6, 38, 1, 181, 0, 0, 0, 7, 2, 110, 255, 34, 0, 0, 255, 255, 255, 139, 254, 156, 5, 34, 5, 176, 6, 38, 1, 164, 0, 0, 0, 7, 2, 110, 2, 30, 0, 0, 255, 255, 255, 179, 254, 156, 4, 207, 4, 58, 6, 38, 1, 183, 0, 0, 0, 7, 2, 110, 2, 22, 0, 0, 255, 255, 0, 38, 254, 16, 4, 157, 5, 197, 6, 38, 2, 10, 0, 0, 0, 7, 2, 110, 0, 68, 255, 116, 255, 255, 0, 61, 254, 19, 4, 118, 4, 81, 6, 38, 2, 11, 0, 0, 0, 7, 2, 110, 0, 77, 255, 119, 255, 255, 0, 32, 0, 0, 4, 68, 6, 0, 6, 6, 0, 35, 0, 0, 0, 2, 0, 29, 255, 255, 4, 54, 4, 58, 0, 24, 0, 39, 0, 0, 65, 55, 33, 55, 33, 7, 35, 7, 51, 3, 33, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 39, 55, 3, 5, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 7, 39, 2, 215, 32, 254, 224, 17, 254, 241, 17, 114, 32, 114, 139, 2, 38, 86, 171, 70, 70, 91, 6, 5, 63, 56, 56, 149, 80, 249, 14, 52, 1, 21, 31, 56, 20, 19, 18, 6, 6, 42, 29, 30, 70, 35, 251, 3, 35, 180, 99, 99, 180, 252, 221, 1, 41, 45, 44, 138, 97, 90, 131, 43, 43, 44, 2, 1, 85, 254, 204, 1, 1, 15, 15, 16, 49, 35, 39, 54, 16, 17, 15, 1, 1, 0, 0, 2, 0, 22, 255, 255, 4, 45, 5, 176, 0, 24, 0, 39, 0, 0, 65, 55, 35, 55, 33, 7, 35, 7, 51, 3, 33, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 39, 55, 3, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 35, 39, 2, 201, 32, 228, 33, 254, 237, 33, 170, 32, 171, 189, 1, 192, 110, 204, 81, 81, 104, 10, 9, 66, 63, 64, 176, 100, 143, 29, 68, 172, 49, 78, 27, 26, 23, 7, 8, 53, 40, 41, 104, 58, 145, 4, 66, 180, 186, 186, 180, 251, 190, 1, 60, 60, 59, 177, 117, 108, 164, 56, 56, 59, 2, 1, 172, 254, 114, 1, 2, 30, 27, 28, 78, 51, 60, 93, 32, 32, 34, 2, 0, 2, 0, 22, 255, 255, 4, 45, 5, 176, 0, 24, 0, 39, 0, 0, 65, 55, 35, 55, 33, 7, 35, 7, 51, 3, 33, 22, 54, 55, 54, 54, 55, 54, 38, 39, 38, 38, 39, 39, 55, 3, 23, 22, 22, 23, 22, 22, 7, 6, 6, 7, 6, 6, 35, 39, 2, 201, 32, 228, 33, 254, 237, 33, 170, 32, 171, 189, 1, 192, 110, 204, 81, 81, 104, 10, 9, 66, 63, 64, 176, 100, 143, 29, 68, 172, 49, 78, 27, 26, 23, 7, 8, 53, 40, 41, 104, 58, 145, 4, 66, 180, 186, 186, 180, 251, 190, 1, 60, 60, 59, 177, 117, 108, 164, 56, 56, 59, 2, 1, 172, 254, 114, 1, 2, 30, 27, 28, 78, 51, 60, 93, 32, 32, 34, 2, 0, 1, 255, 241, 0, 0, 4, 176, 5, 176, 0, 13, 0, 0, 65, 55, 35, 19, 33, 55, 33, 3, 35, 7, 51, 3, 33, 19, 2, 146, 32, 238, 67, 2, 129, 40, 252, 109, 107, 161, 32, 162, 115, 1, 18, 115, 2, 151, 180, 1, 129, 228, 253, 155, 180, 253, 105, 2, 151, 0, 0, 1, 255, 186, 0, 0, 4, 103, 4, 58, 0, 13, 0, 0, 65, 55, 35, 55, 33, 55, 33, 3, 35, 7, 51, 3, 33, 19, 2, 91, 32, 221, 39, 2, 122, 40, 252, 119, 78, 182, 32, 183, 79, 1, 14, 79, 1, 199, 180, 221, 226, 254, 65, 180, 254, 57, 1, 199, 0, 1, 0, 52, 0, 0, 5, 58, 5, 176, 0, 20, 0, 0, 65, 55, 35, 55, 33, 7, 35, 7, 51, 3, 33, 19, 51, 19, 33, 1, 1, 33, 1, 7, 19, 2, 225, 32, 216, 26, 254, 237, 24, 184, 32, 185, 197, 1, 18, 104, 119, 235, 1, 47, 254, 210, 2, 41, 254, 180, 254, 30, 63, 59, 4, 113, 180, 139, 139, 180, 251, 143, 2, 86, 253, 170, 2, 231, 2, 201, 253, 126, 1, 1, 68, 0, 0, 1, 0, 55, 0, 0, 4, 195, 6, 0, 0, 20, 0, 0, 65, 55, 35, 55, 33, 7, 35, 7, 51, 3, 33, 19, 55, 19, 33, 1, 1, 33, 1, 7, 19, 2, 231, 32, 208, 26, 254, 241, 26, 194, 32, 195, 210, 1, 15, 56, 152, 219, 1, 60, 254, 176, 1, 230, 254, 168, 254, 169, 90, 93, 4, 184, 180, 148, 148, 180, 251, 72, 1, 64, 125, 254, 67, 2, 108, 1, 206, 254, 188, 87, 2, 25, 255, 255, 0, 3, 254, 91, 4, 185, 7, 44, 6, 38, 1, 166, 0, 0, 0, 39, 1, 95, 0, 36, 1, 137, 0, 7, 0, 95, 2, 68, 255, 241, 255, 255, 0, 13, 254, 91, 4, 183, 5, 247, 6, 38, 1, 185, 0, 0, 0, 38, 1, 95, 242, 84, 0, 7, 0, 95, 2, 66, 255, 241, 255, 255, 0, 15, 254, 91, 4, 185, 5, 176, 6, 38, 0, 9, 0, 0, 0, 7, 0, 95, 2, 65, 255, 241, 255, 255, 0, 13, 254, 91, 4, 182, 4, 58, 6, 38, 1, 189, 0, 0, 0, 7, 0, 95, 2, 65, 255, 241, 255, 255, 0, 18, 254, 91, 4, 225, 5, 176, 6, 38, 0, 14, 0, 0, 0, 7, 0, 95, 2, 108, 255, 241, 255, 255, 0, 5, 254, 91, 4, 209, 4, 58, 6, 38, 1, 188, 0, 0, 0, 7, 0, 95, 2, 92, 255, 241, 255, 255, 255, 196, 254, 91, 4, 199, 5, 176, 6, 38, 1, 167, 0, 0, 0, 7, 0, 95, 2, 82, 255, 241, 255, 255, 255, 195, 254, 91, 4, 182, 4, 58, 6, 38, 1, 187, 0, 0, 0, 7, 0, 95, 2, 65, 255, 241, 0, 1, 0, 186, 0, 0, 5, 63, 5, 176, 0, 15, 0, 0, 65, 55, 35, 1, 33, 1, 49, 3, 33, 19, 35, 7, 51, 3, 33, 19, 3, 156, 32, 95, 1, 226, 254, 199, 254, 118, 162, 254, 224, 220, 123, 32, 205, 90, 1, 17, 92, 2, 11, 180, 2, 241, 253, 99, 2, 157, 253, 15, 180, 253, 245, 2, 11, 0, 0, 1, 0, 127, 254, 95, 4, 236, 4, 58, 0, 17, 0, 0, 101, 55, 35, 1, 33, 1, 7, 49, 39, 3, 33, 19, 35, 7, 51, 3, 33, 19, 3, 77, 32, 136, 2, 7, 254, 219, 254, 114, 30, 1, 137, 254, 238, 209, 132, 32, 194, 74, 1, 15, 74, 7, 180, 3, 127, 253, 1, 73, 67, 3, 5, 252, 129, 180, 254, 88, 1, 168, 0, 1, 255, 184, 0, 0, 5, 38, 5, 176, 0, 17, 0, 0, 65, 55, 35, 1, 33, 1, 3, 33, 19, 35, 7, 51, 1, 33, 1, 19, 33, 1, 3, 188, 32, 109, 1, 183, 254, 178, 254, 180, 165, 254, 204, 244, 108, 32, 112, 254, 45, 1, 80, 1, 84, 176, 1, 51, 254, 250, 2, 144, 180, 2, 108, 253, 248, 2, 8, 253, 148, 180, 253, 112, 2, 16, 253, 240, 2, 144, 0, 1, 255, 241, 0, 0, 4, 197, 4, 58, 0, 17, 0, 0, 65, 55, 35, 1, 33, 1, 3, 33, 19, 35, 7, 51, 1, 33, 1, 19, 33, 3, 3, 155, 32, 92, 1, 102, 254, 206, 254, 229, 173, 254, 235, 221, 121, 32, 115, 254, 132, 1, 52, 1, 38, 186, 1, 21, 235, 1, 209, 180, 1, 181, 254, 175, 1, 81, 254, 75, 180, 254, 47, 1, 97, 254, 159, 1, 209, 0, 255, 255, 0, 75, 255, 235, 4, 138, 4, 79, 6, 6, 1, 137, 0, 0, 0, 1, 0, 54, 2, 89, 4, 169, 3, 60, 0, 3, 0, 0, 65, 55, 33, 7, 4, 117, 52, 251, 193, 52, 2, 89, 227, 227, 0, 0, 0, 1, 0, 0, 3, 231, 0, 208, 0, 22, 0, 144, 0, 5, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 29, 0, 125, 0, 229, 1, 47, 1, 75, 1, 100, 1, 202, 1, 230, 2, 1, 2, 53, 2, 86, 2, 104, 2, 138, 2, 163, 3, 30, 3, 89, 3, 217, 4, 26, 4, 146, 4, 167, 4, 222, 4, 245, 5, 25, 5, 57, 5, 82, 5, 107, 5, 235, 6, 91, 6, 190, 7, 42, 7, 128, 7, 181, 8, 60, 8, 119, 8, 160, 8, 222, 8, 255, 9, 23, 9, 109, 9, 165, 10, 5, 10, 119, 10, 232, 11, 22, 11, 148, 11, 202, 11, 255, 12, 22, 12, 58, 12, 90, 12, 142, 12, 167, 13, 43, 13, 62, 13, 136, 14, 4, 14, 39, 14, 120, 14, 240, 15, 4, 15, 159, 16, 28, 16, 48, 16, 116, 16, 231, 17, 90, 17, 177, 18, 16, 18, 71, 18, 221, 19, 4, 19, 186, 20, 28, 20, 241, 21, 113, 21, 174, 22, 36, 22, 69, 22, 191, 23, 29, 23, 123, 23, 230, 24, 56, 24, 107, 24, 186, 24, 198, 25, 35, 25, 139, 26, 1, 26, 51, 26, 84, 26, 176, 27, 23, 27, 50, 27, 72, 27, 84, 27, 96, 27, 112, 27, 136, 27, 182, 27, 196, 27, 210, 27, 224, 27, 238, 27, 255, 28, 26, 28, 53, 28, 80, 28, 102, 28, 115, 28, 128, 28, 171, 28, 179, 28, 187, 28, 251, 29, 54, 29, 75, 29, 96, 29, 178, 29, 254, 30, 18, 30, 38, 30, 66, 30, 80, 30, 115, 30, 146, 30, 194, 30, 216, 30, 253, 31, 136, 31, 161, 31, 185, 31, 218, 31, 250, 32, 12, 32, 28, 32, 43, 32, 59, 32, 232, 33, 223, 33, 239, 34, 5, 34, 33, 34, 73, 34, 246, 35, 139, 35, 182, 36, 5, 36, 41, 36, 97, 36, 213, 37, 174, 38, 152, 38, 185, 38, 206, 39, 31, 39, 43, 39, 55, 39, 67, 39, 79, 39, 91, 39, 103, 39, 175, 39, 187, 39, 199, 39, 211, 39, 223, 39, 235, 39, 247, 40, 2, 40, 14, 40, 26, 40, 103, 40, 115, 40, 127, 40, 139, 40, 151, 40, 163, 40, 175, 40, 187, 40, 199, 40, 252, 41, 68, 41, 145, 41, 157, 41, 169, 41, 181, 41, 228, 41, 240, 41, 252, 42, 8, 42, 20, 42, 32, 42, 44, 42, 56, 42, 68, 42, 139, 42, 151, 42, 163, 42, 175, 42, 187, 42, 199, 42, 211, 42, 223, 42, 254, 43, 10, 43, 22, 43, 34, 43, 46, 43, 58, 43, 70, 43, 82, 43, 94, 43, 106, 43, 249, 44, 5, 44, 17, 44, 159, 44, 171, 44, 183, 44, 195, 44, 207, 44, 219, 44, 231, 44, 243, 44, 254, 45, 10, 45, 43, 45, 55, 45, 67, 45, 79, 45, 91, 45, 103, 45, 115, 45, 191, 45, 203, 45, 215, 46, 56, 46, 68, 46, 80, 46, 92, 46, 104, 46, 116, 46, 128, 46, 140, 46, 152, 46, 164, 46, 176, 46, 188, 46, 200, 46, 212, 46, 223, 46, 234, 46, 245, 47, 0, 47, 12, 47, 23, 47, 194, 47, 206, 47, 217, 47, 228, 47, 240, 47, 252, 48, 7, 48, 18, 48, 30, 48, 42, 48, 161, 48, 172, 48, 183, 48, 194, 48, 205, 48, 216, 48, 227, 48, 239, 48, 250, 49, 76, 49, 205, 49, 216, 49, 227, 49, 239, 50, 52, 50, 64, 50, 76, 50, 87, 50, 99, 50, 110, 50, 121, 50, 132, 50, 236, 50, 248, 51, 4, 51, 16, 51, 28, 51, 40, 51, 52, 51, 64, 51, 103, 51, 114, 51, 125, 51, 137, 51, 149, 51, 161, 51, 172, 51, 183, 51, 194, 51, 206, 52, 71, 52, 83, 52, 94, 52, 211, 52, 222, 52, 234, 52, 245, 53, 0, 53, 12, 53, 23, 53, 34, 53, 45, 53, 56, 53, 124, 53, 136, 53, 148, 53, 159, 53, 170, 53, 181, 53, 193, 54, 15, 54, 27, 54, 38, 54, 138, 54, 150, 54, 162, 54, 173, 54, 184, 54, 195, 54, 207, 54, 219, 54, 231, 54, 242, 54, 253, 55, 9, 55, 20, 55, 31, 55, 46, 55, 61, 55, 83, 55, 145, 55, 159, 55, 206, 55, 230, 56, 15, 56, 92, 56, 116, 56, 137, 56, 159, 56, 213, 57, 8, 57, 30, 57, 30, 57, 43, 57, 103, 57, 116, 57, 140, 57, 198, 58, 38, 58, 79, 58, 124, 58, 196, 58, 211, 58, 226, 58, 235, 59, 29, 59, 52, 59, 67, 59, 118, 59, 126, 59, 144, 59, 171, 60, 46, 60, 67, 60, 96, 60, 117, 60, 148, 60, 245, 61, 55, 61, 177, 62, 61, 62, 190, 62, 219, 63, 112, 63, 251, 64, 90, 64, 148, 65, 22, 65, 67, 65, 145, 66, 35, 66, 88, 66, 193, 67, 46, 67, 139, 67, 186, 67, 251, 68, 122, 68, 201, 69, 88, 69, 223, 70, 47, 70, 187, 71, 13, 71, 125, 71, 231, 72, 44, 72, 108, 72, 137, 72, 198, 73, 1, 73, 47, 73, 176, 73, 203, 74, 2, 74, 54, 74, 82, 74, 131, 74, 159, 74, 193, 74, 254, 75, 64, 75, 122, 75, 233, 76, 113, 76, 177, 77, 48, 77, 157, 77, 175, 77, 233, 78, 23, 78, 163, 78, 190, 78, 223, 79, 18, 79, 48, 79, 76, 79, 97, 79, 118, 79, 222, 79, 250, 80, 42, 80, 69, 80, 102, 80, 163, 80, 230, 81, 33, 81, 127, 82, 5, 82, 71, 82, 172, 83, 14, 83, 107, 83, 177, 83, 247, 84, 20, 84, 140, 85, 4, 85, 75, 85, 210, 86, 75, 86, 113, 86, 151, 86, 199, 86, 247, 87, 73, 87, 150, 87, 241, 88, 65, 88, 218, 89, 123, 89, 254, 90, 91, 90, 137, 90, 187, 91, 100, 92, 9, 92, 149, 93, 1, 93, 246, 94, 210, 95, 87, 95, 222, 96, 58, 96, 132, 96, 175, 96, 195, 96, 255, 97, 16, 97, 33, 98, 96, 98, 183, 98, 251, 99, 117, 99, 139, 99, 161, 99, 221, 100, 33, 100, 75, 100, 115, 100, 150, 100, 184, 100, 216, 100, 248, 101, 73, 101, 137, 102, 66, 102, 231, 103, 9, 103, 43, 103, 100, 103, 157, 103, 205, 104, 90, 104, 217, 105, 26, 105, 90, 105, 144, 105, 198, 106, 63, 106, 143, 106, 223, 106, 238, 106, 253, 107, 55, 107, 152, 108, 69, 108, 199, 109, 68, 109, 185, 110, 42, 110, 155, 111, 11, 111, 101, 111, 191, 112, 40, 112, 125, 112, 201, 113, 20, 113, 143, 113, 143, 113, 143, 113, 143, 113, 143, 113, 143, 113, 143, 113, 143, 113, 143, 113, 143, 113, 143, 113, 143, 113, 143, 113, 155, 113, 182, 113, 195, 113, 228, 114, 24, 114, 125, 115, 41, 115, 153, 116, 31, 116, 124, 117, 42, 118, 55, 119, 29, 119, 202, 120, 80, 120, 103, 120, 134, 120, 161, 121, 140, 121, 207, 121, 243, 121, 243, 122, 255, 123, 95, 123, 170, 123, 231, 124, 1, 124, 28, 124, 81, 124, 108, 124, 139, 124, 235, 125, 71, 125, 127, 125, 154, 125, 179, 126, 15, 126, 43, 126, 70, 126, 122, 126, 155, 126, 173, 126, 203, 126, 228, 127, 77, 127, 174, 127, 240, 128, 125, 128, 146, 128, 201, 128, 226, 129, 9, 129, 41, 129, 70, 129, 95, 129, 191, 129, 245, 130, 3, 130, 86, 130, 119, 130, 222, 130, 237, 131, 21, 131, 80, 131, 113, 131, 212, 131, 220, 131, 228, 131, 240, 131, 251, 132, 7, 132, 18, 132, 30, 132, 42, 132, 54, 132, 66, 132, 78, 132, 89, 132, 100, 132, 111, 132, 123, 132, 135, 132, 146, 132, 158, 132, 169, 132, 180, 132, 192, 132, 203, 132, 215, 132, 226, 132, 237, 132, 248, 133, 3, 133, 14, 133, 25, 133, 36, 133, 48, 133, 60, 133, 71, 133, 83, 133, 95, 133, 106, 133, 117, 133, 129, 133, 140, 133, 151, 133, 163, 133, 175, 133, 186, 133, 197, 133, 208, 133, 219, 134, 37, 134, 48, 134, 59, 134, 70, 134, 81, 134, 92, 134, 103, 134, 114, 134, 185, 134, 196, 134, 207, 134, 218, 134, 230, 134, 241, 134, 252, 135, 7, 135, 18, 135, 89, 135, 100, 135, 112, 135, 124, 135, 136, 135, 148, 135, 160, 135, 172, 135, 183, 135, 195, 135, 206, 135, 217, 135, 228, 135, 239, 135, 250, 136, 6, 136, 17, 136, 29, 136, 40, 136, 51, 136, 62, 136, 73, 136, 85, 136, 96, 136, 107, 136, 119, 136, 131, 136, 228, 136, 239, 136, 250, 137, 5, 137, 16, 137, 27, 137, 38, 137, 50, 137, 62, 137, 74, 137, 86, 137, 98, 137, 110, 137, 122, 137, 133, 137, 141, 137, 149, 137, 157, 137, 165, 137, 173, 137, 181, 137, 189, 137, 197, 137, 205, 137, 213, 137, 221, 137, 229, 137, 237, 137, 245, 138, 1, 138, 13, 138, 24, 138, 35, 138, 46, 138, 57, 138, 68, 138, 76, 138, 84, 138, 92, 138, 100, 138, 108, 138, 119, 138, 130, 138, 141, 138, 152, 138, 163, 138, 175, 138, 187, 139, 60, 139, 68, 139, 80, 139, 88, 139, 96, 139, 108, 139, 120, 139, 128, 139, 136, 139, 144, 139, 152, 139, 164, 139, 172, 139, 180, 139, 188, 139, 196, 139, 204, 139, 212, 139, 220, 139, 228, 139, 236, 139, 244, 139, 252, 140, 7, 140, 15, 140, 23, 140, 118, 140, 126, 140, 134, 140, 145, 140, 156, 140, 164, 140, 172, 140, 183, 140, 191, 140, 202, 140, 213, 140, 226, 140, 237, 140, 245, 141, 1, 141, 13, 141, 24, 141, 35, 141, 47, 141, 59, 141, 71, 141, 83, 141, 95, 141, 103, 141, 111, 141, 123, 141, 135, 141, 147, 141, 159, 141, 171, 141, 183, 141, 191, 141, 199, 141, 207, 141, 219, 141, 230, 141, 238, 141, 250, 142, 5, 142, 17, 142, 28, 142, 36, 142, 44, 142, 56, 142, 67, 142, 79, 142, 87, 142, 98, 142, 110, 142, 121, 142, 133, 142, 144, 142, 156, 142, 167, 142, 179, 142, 190, 142, 202, 142, 213, 142, 221, 142, 229, 142, 241, 142, 252, 143, 8, 143, 19, 143, 31, 143, 42, 143, 54, 143, 65, 143, 77, 143, 89, 143, 101, 143, 112, 143, 124, 143, 135, 143, 147, 143, 159, 143, 167, 143, 179, 143, 191, 143, 203, 143, 215, 143, 227, 143, 239, 143, 251, 144, 6, 144, 18, 144, 29, 144, 41, 144, 52, 144, 64, 144, 75, 144, 91, 144, 106, 144, 118, 144, 129, 144, 141, 144, 152, 144, 164, 144, 175, 144, 187, 144, 198, 144, 214, 144, 229, 144, 241, 144, 253, 145, 9, 145, 21, 145, 33, 145, 44, 145, 56, 145, 67, 145, 79, 145, 90, 145, 102, 145, 113, 145, 125, 145, 136, 145, 152, 145, 167, 145, 179, 145, 191, 145, 203, 145, 215, 145, 227, 145, 239, 145, 251, 146, 7, 146, 19, 146, 30, 146, 42, 146, 53, 146, 65, 146, 76, 146, 88, 146, 99, 146, 115, 146, 130, 146, 142, 146, 153, 146, 165, 146, 177, 146, 189, 146, 201, 146, 213, 146, 225, 146, 237, 146, 249, 147, 5, 147, 17, 147, 29, 147, 41, 147, 53, 147, 64, 147, 76, 147, 88, 147, 100, 147, 112, 147, 124, 147, 136, 147, 148, 147, 160, 147, 172, 147, 184, 147, 196, 147, 208, 147, 220, 147, 232, 147, 247, 148, 3, 148, 15, 148, 27, 148, 39, 148, 51, 148, 63, 148, 75, 148, 87, 148, 99, 148, 111, 148, 123, 148, 135, 148, 147, 148, 159, 148, 171, 148, 183, 148, 195, 148, 207, 148, 215, 149, 29, 149, 97, 149, 165, 149, 195, 149, 224, 150, 11, 150, 54, 150, 70, 150, 85, 150, 97, 150, 109, 150, 121, 150, 133, 150, 145, 150, 157, 150, 191, 150, 227, 151, 11, 151, 51, 151, 59, 151, 73, 0, 1, 0, 0, 0, 3, 0, 0, 25, 88, 56, 236, 95, 15, 60, 245, 0, 11, 8, 0, 0, 0, 0, 0, 196, 240, 17, 46, 0, 0, 0, 0, 218, 216, 63, 171, 252, 172, 253, 213, 6, 164, 8, 98, 0, 3, 0, 9, 0, 2, 0, 0, 0, 0, 0, 0, 4, 178, 0, 0, 0, 0, 255, 174, 0, 20, 0, 74, 0, 17, 0, 38, 0, 40, 0, 82, 0, 15, 0, 82, 0, 71, 0, 20, 0, 41, 0, 18, 0, 15, 0, 73, 0, 40, 0, 71, 0, 22, 0, 57, 0, 134, 0, 94, 0, 167, 0, 127, 255, 184, 0, 186, 255, 248, 0, 58, 0, 38, 0, 96, 0, 91, 0, 85, 0, 169, 0, 26, 0, 32, 0, 104, 0, 48, 0, 35, 0, 88, 255, 224, 0, 32, 0, 81, 255, 220, 0, 92, 0, 174, 0, 74, 0, 169, 0, 113, 0, 149, 0, 112, 255, 241, 0, 0, 0, 20, 0, 124, 0, 233, 0, 3, 0, 52, 0, 19, 0, 76, 0, 85, 0, 125, 0, 63, 0, 142, 1, 223, 1, 61, 1, 79, 1, 61, 1, 72, 0, 138, 0, 177, 0, 104, 255, 193, 255, 245, 0, 47, 0, 6, 0, 7, 0, 27, 255, 220, 0, 50, 0, 52, 0, 119, 0, 89, 0, 121, 0, 10, 0, 77, 255, 248, 255, 189, 0, 4, 0, 15, 255, 255, 1, 96, 1, 55, 0, 243, 0, 84, 0, 190, 1, 78, 1, 92, 1, 8, 0, 22, 1, 241, 1, 163, 0, 1, 1, 5, 0, 58, 0, 54, 1, 248, 1, 79, 2, 35, 2, 24, 1, 49, 1, 131, 1, 119, 0, 166, 1, 248, 1, 79, 1, 58, 0, 163, 0, 241, 0, 241, 1, 36, 0, 193, 1, 110, 1, 28, 0, 88, 0, 144, 0, 72, 0, 114, 0, 99, 0, 98, 0, 92, 0, 91, 0, 136, 0, 75, 0, 78, 0, 72, 0, 184, 0, 82, 1, 129, 0, 217, 0, 122, 0, 96, 1, 102, 1, 66, 0, 141, 0, 30, 0, 66, 0, 69, 0, 240, 1, 192, 0, 158, 0, 6, 0, 25, 0, 41, 255, 218, 1, 12, 0, 215, 0, 8, 255, 174, 255, 174, 255, 174, 255, 174, 255, 174, 255, 174, 255, 174, 255, 174, 255, 174, 255, 174, 255, 193, 0, 74, 0, 74, 0, 74, 0, 74, 0, 17, 255, 222, 0, 38, 0, 38, 0, 38, 0, 38, 0, 38, 0, 38, 0, 38, 0, 38, 0, 39, 0, 38, 255, 222, 0, 82, 0, 82, 0, 82, 255, 222, 0, 15, 0, 82, 0, 82, 0, 82, 0, 82, 0, 82, 0, 82, 0, 82, 0, 82, 0, 82, 0, 71, 0, 20, 0, 41, 0, 41, 0, 41, 0, 41, 0, 43, 0, 15, 0, 15, 0, 15, 0, 15, 0, 73, 0, 73, 0, 73, 0, 73, 0, 73, 0, 86, 0, 73, 0, 73, 255, 174, 255, 174, 0, 73, 0, 22, 0, 22, 0, 22, 0, 57, 0, 57, 0, 57, 0, 57, 0, 134, 0, 134, 0, 94, 0, 94, 0, 94, 0, 94, 0, 94, 0, 101, 0, 94, 0, 94, 0, 94, 0, 94, 0, 94, 0, 127, 0, 127, 0, 127, 0, 127, 0, 186, 0, 186, 0, 186, 0, 186, 255, 248, 255, 248, 255, 248, 0, 58, 0, 58, 0, 58, 0, 58, 0, 58, 0, 58, 0, 58, 0, 58, 0, 58, 0, 58, 255, 245, 0, 96, 0, 96, 0, 96, 0, 96, 0, 17, 0, 76, 0, 85, 0, 85, 0, 85, 0, 85, 0, 85, 0, 85, 0, 85, 0, 85, 0, 40, 0, 86, 0, 26, 0, 26, 0, 26, 0, 47, 0, 32, 0, 88, 0, 88, 0, 88, 0, 88, 0, 88, 0, 88, 0, 104, 0, 88, 0, 51, 0, 35, 0, 88, 0, 13, 0, 88, 0, 13, 0, 102, 0, 32, 0, 32, 0, 32, 0, 32, 0, 81, 0, 81, 0, 81, 0, 81, 0, 81, 0, 70, 0, 81, 0, 81, 0, 70, 0, 70, 0, 81, 0, 174, 0, 174, 0, 87, 0, 74, 0, 74, 0, 74, 0, 74, 0, 161, 0, 149, 0, 113, 0, 113, 0, 113, 0, 113, 0, 113, 0, 85, 0, 113, 0, 113, 0, 113, 0, 113, 0, 113, 0, 112, 0, 112, 0, 112, 0, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 20, 0, 20, 2, 32, 1, 200, 0, 239, 0, 234, 1, 116, 1, 157, 2, 78, 1, 120, 1, 243, 1, 51, 1, 140, 252, 149, 1, 28, 0, 243, 0, 149, 0, 0, 0, 161, 255, 246, 0, 131, 0, 88, 0, 17, 255, 224, 1, 39, 0, 51, 1, 29, 253, 96, 253, 231, 252, 248, 253, 194, 252, 171, 2, 163, 1, 126, 2, 46, 0, 32, 255, 181, 0, 84, 255, 169, 0, 13, 0, 13, 0, 3, 0, 75, 0, 108, 255, 248, 0, 82, 255, 235, 0, 127, 0, 64, 0, 75, 0, 62, 0, 20, 0, 152, 0, 217, 255, 177, 0, 132, 0, 122, 255, 208, 0, 62, 0, 54, 0, 106, 0, 85, 0, 59, 0, 59, 0, 23, 0, 110, 0, 204, 0, 5, 0, 138, 0, 83, 255, 195, 255, 240, 0, 146, 0, 1, 0, 22, 255, 177, 255, 139, 0, 35, 0, 3, 255, 196, 255, 251, 0, 1, 0, 213, 255, 230, 255, 230, 0, 159, 255, 223, 0, 22, 0, 1, 255, 233, 255, 107, 0, 91, 0, 29, 0, 34, 255, 148, 255, 179, 0, 59, 0, 13, 0, 24, 255, 195, 0, 5, 0, 13, 0, 13, 0, 134, 0, 33, 0, 13, 0, 137, 255, 232, 255, 228, 0, 99, 255, 247, 0, 29, 0, 66, 255, 204, 255, 219, 0, 22, 0, 86, 255, 181, 255, 240, 0, 32, 0, 13, 0, 29, 0, 27, 0, 86, 255, 206, 255, 226, 255, 159, 255, 221, 255, 231, 255, 231, 255, 196, 255, 215, 255, 204, 255, 209, 0, 18, 0, 54, 0, 71, 0, 72, 0, 164, 0, 140, 0, 37, 0, 29, 0, 73, 0, 79, 0, 4, 0, 26, 0, 35, 0, 30, 0, 114, 0, 151, 0, 54, 253, 162, 253, 148, 254, 164, 254, 109, 254, 170, 254, 204, 0, 40, 255, 220, 0, 43, 0, 40, 0, 32, 0, 40, 0, 25, 0, 23, 0, 120, 0, 67, 255, 212, 255, 235, 255, 200, 255, 233, 0, 78, 0, 43, 0, 107, 0, 73, 0, 190, 0, 129, 0, 11, 0, 38, 0, 61, 0, 54, 0, 43, 0, 32, 0, 34, 0, 67, 0, 80, 0, 5, 0, 50, 0, 14, 0, 43, 0, 60, 0, 58, 0, 130, 0, 121, 0, 225, 0, 204, 255, 173, 255, 197, 255, 221, 255, 217, 0, 90, 0, 107, 0, 174, 0, 108, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 222, 1, 14, 0, 157, 1, 33, 1, 42, 0, 103, 0, 137, 0, 132, 0, 10, 0, 128, 0, 207, 0, 99, 0, 96, 0, 180, 0, 82, 0, 18, 255, 141, 0, 24, 0, 54, 0, 70, 0, 150, 0, 0, 255, 234, 0, 2, 1, 131, 1, 115, 0, 181, 1, 115, 1, 181, 2, 33, 255, 168, 0, 51, 0, 58, 0, 48, 0, 51, 0, 58, 0, 62, 0, 33, 0, 91, 0, 116, 0, 45, 0, 51, 0, 12, 0, 50, 0, 77, 0, 65, 0, 38, 0, 86, 0, 140, 0, 112, 0, 146, 0, 130, 255, 206, 0, 161, 0, 54, 1, 197, 1, 181, 1, 43, 2, 43, 2, 68, 1, 228, 1, 68, 0, 141, 0, 51, 0, 42, 0, 38, 0, 0, 1, 5, 0, 74, 0, 96, 0, 82, 0, 26, 255, 190, 0, 57, 0, 74, 0, 134, 0, 169, 0, 134, 0, 140, 0, 169, 255, 153, 255, 153, 0, 140, 255, 168, 255, 168, 255, 168, 255, 168, 255, 168, 255, 168, 255, 168, 0, 58, 0, 51, 0, 51, 0, 51, 0, 51, 0, 91, 0, 91, 0, 91, 0, 91, 0, 50, 0, 77, 0, 77, 0, 77, 0, 77, 0, 77, 0, 112, 0, 112, 0, 112, 0, 112, 0, 161, 255, 168, 255, 168, 255, 168, 0, 58, 0, 58, 0, 58, 0, 48, 0, 51, 0, 51, 0, 51, 0, 51, 0, 51, 0, 62, 0, 62, 0, 62, 0, 33, 0, 91, 0, 91, 0, 91, 0, 91, 0, 91, 0, 116, 0, 45, 0, 51, 0, 51, 0, 51, 0, 51, 0, 50, 0, 50, 0, 50, 0, 77, 0, 77, 0, 77, 0, 38, 0, 38, 0, 38, 0, 86, 0, 86, 0, 86, 0, 86, 0, 140, 0, 112, 0, 112, 0, 112, 0, 112, 0, 112, 0, 112, 0, 130, 0, 161, 0, 161, 0, 54, 0, 54, 0, 54, 255, 174, 255, 251, 255, 235, 0, 46, 0, 24, 255, 148, 0, 2, 0, 217, 255, 174, 0, 20, 0, 38, 255, 248, 0, 15, 0, 82, 0, 20, 0, 18, 0, 15, 0, 73, 0, 40, 0, 134, 0, 186, 255, 184, 0, 82, 0, 186, 0, 82, 0, 75, 0, 20, 0, 217, 0, 85, 0, 50, 0, 81, 255, 246, 0, 149, 255, 241, 0, 217, 0, 85, 0, 81, 0, 85, 0, 23, 0, 38, 0, 32, 0, 57, 0, 82, 0, 82, 0, 71, 0, 42, 0, 20, 255, 251, 255, 174, 0, 20, 0, 32, 0, 38, 0, 3, 0, 18, 0, 15, 0, 73, 0, 13, 0, 40, 0, 74, 0, 134, 0, 75, 255, 184, 0, 58, 0, 85, 0, 13, 0, 81, 255, 220, 0, 96, 0, 0, 255, 241, 0, 85, 0, 34, 0, 74, 0, 104, 0, 88, 0, 48, 0, 24, 0, 0, 255, 224, 0, 51, 2, 24, 0, 18, 255, 224, 255, 174, 0, 58, 255, 202, 0, 38, 0, 3, 0, 85, 0, 13, 0, 108, 0, 59, 0, 164, 0, 140, 0, 35, 0, 59, 0, 74, 0, 96, 0, 186, 0, 127, 0, 82, 255, 139, 255, 179, 0, 82, 255, 174, 0, 58, 255, 174, 0, 58, 255, 193, 255, 245, 0, 38, 0, 85, 0, 67, 0, 119, 0, 119, 255, 139, 255, 179, 0, 35, 0, 59, 0, 3, 0, 13, 0, 3, 0, 13, 0, 73, 0, 81, 0, 71, 0, 72, 0, 71, 0, 72, 0, 1, 0, 66, 255, 251, 0, 0, 255, 251, 0, 0, 255, 251, 0, 0, 0, 213, 0, 137, 255, 223, 255, 247, 255, 184, 255, 241, 0, 91, 255, 196, 255, 195, 255, 174, 0, 58, 255, 174, 0, 58, 255, 174, 0, 58, 255, 174, 0, 58, 255, 174, 0, 58, 255, 174, 0, 58, 255, 174, 0, 58, 255, 174, 0, 58, 255, 174, 0, 58, 255, 174, 0, 58, 255, 174, 0, 58, 255, 174, 0, 58, 0, 38, 0, 85, 0, 38, 0, 85, 0, 38, 0, 85, 0, 38, 0, 85, 0, 38, 0, 85, 0, 38, 0, 85, 0, 38, 0, 85, 0, 38, 0, 85, 0, 82, 0, 88, 0, 82, 0, 104, 0, 73, 0, 81, 0, 73, 0, 81, 0, 73, 0, 81, 0, 73, 0, 81, 0, 73, 0, 81, 0, 73, 0, 81, 0, 73, 0, 81, 0, 86, 0, 70, 0, 86, 0, 70, 0, 86, 0, 70, 0, 86, 0, 70, 0, 86, 0, 70, 0, 94, 0, 113, 0, 94, 0, 113, 0, 101, 0, 85, 0, 101, 0, 85, 0, 101, 0, 85, 0, 101, 0, 85, 0, 101, 0, 85, 0, 186, 0, 0, 0, 186, 0, 0, 0, 186, 0, 0, 0, 16, 0, 42, 0, 24, 0, 15, 0, 13, 0, 134, 0, 134, 255, 184, 255, 241, 0, 213, 0, 137, 0, 213, 0, 137, 0, 32, 0, 34, 255, 139, 255, 179, 0, 38, 0, 61, 0, 32, 0, 29, 0, 22, 0, 22, 255, 241, 255, 186, 0, 52, 0, 55, 0, 3, 0, 13, 0, 15, 0, 13, 0, 18, 0, 5, 255, 196, 255, 195, 0, 186, 0, 127, 255, 184, 255, 241, 0, 75, 0, 54, 0, 1, 0, 0, 8, 98, 253, 213, 0, 0, 4, 178, 252, 172, 254, 14, 6, 164, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 178, 2, 188, 0, 5, 0, 0, 5, 154, 5, 51, 0, 0, 1, 31, 5, 154, 5, 51, 0, 0, 3, 209, 0, 102, 2, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 91, 0, 0, 0, 32, 0, 0, 0, 0, 112, 121, 114, 115, 0, 33, 0, 13, 255, 253, 8, 98, 253, 213, 0, 0, 8, 98, 2, 43, 32, 0, 1, 159, 0, 0, 0, 0, 4, 58, 5, 176, 0, 0, 0, 32, 0, 1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 20, 0, 3, 0, 1, 0, 0, 0, 20, 0, 4, 7, 60, 0, 0, 0, 190, 0, 128, 0, 6, 0, 62, 0, 13, 0, 47, 0, 57, 0, 64, 0, 90, 0, 96, 0, 122, 0, 126, 1, 127, 1, 146, 1, 161, 1, 176, 1, 240, 1, 255, 2, 27, 2, 55, 2, 89, 2, 188, 2, 199, 2, 201, 2, 221, 2, 243, 3, 1, 3, 3, 3, 9, 3, 15, 3, 35, 3, 138, 3, 140, 3, 146, 3, 161, 3, 176, 3, 185, 3, 201, 3, 206, 3, 210, 3, 214, 4, 37, 4, 47, 4, 69, 4, 79, 4, 98, 4, 111, 4, 119, 4, 134, 4, 206, 4, 215, 4, 225, 4, 245, 5, 1, 5, 16, 5, 19, 30, 1, 30, 63, 30, 133, 30, 241, 30, 243, 30, 249, 31, 77, 32, 11, 32, 21, 32, 30, 32, 34, 32, 38, 32, 48, 32, 51, 32, 58, 32, 60, 32, 68, 32, 116, 32, 127, 32, 164, 32, 167, 32, 172, 33, 5, 33, 19, 33, 22, 33, 34, 33, 46, 33, 94, 34, 2, 34, 15, 34, 18, 34, 21, 34, 26, 34, 30, 34, 43, 34, 72, 34, 96, 34, 101, 37, 202, 246, 195, 254, 255, 255, 253, 255, 255, 0, 0, 0, 13, 0, 32, 0, 48, 0, 58, 0, 65, 0, 91, 0, 97, 0, 123, 0, 160, 1, 146, 1, 160, 1, 175, 1, 240, 1, 250, 2, 24, 2, 55, 2, 89, 2, 188, 2, 198, 2, 201, 2, 216, 2, 243, 3, 0, 3, 3, 3, 9, 3, 15, 3, 35, 3, 132, 3, 140, 3, 142, 3, 147, 3, 163, 3, 177, 3, 186, 3, 202, 3, 209, 3, 214, 4, 0, 4, 38, 4, 48, 4, 70, 4, 80, 4, 99, 4, 112, 4, 120, 4, 136, 4, 207, 4, 216, 4, 226, 4, 246, 5, 2, 5, 17, 30, 0, 30, 62, 30, 128, 30, 160, 30, 242, 30, 244, 31, 77, 32, 0, 32, 19, 32, 23, 32, 32, 32, 37, 32, 48, 32, 50, 32, 57, 32, 60, 32, 68, 32, 116, 32, 127, 32, 163, 32, 167, 32, 171, 33, 5, 33, 19, 33, 22, 33, 34, 33, 46, 33, 91, 34, 2, 34, 15, 34, 17, 34, 21, 34, 26, 34, 30, 34, 43, 34, 72, 34, 96, 34, 100, 37, 202, 246, 195, 254, 255, 255, 252, 255, 255, 1, 92, 0, 0, 0, 6, 0, 0, 255, 193, 0, 0, 255, 187, 0, 0, 0, 0, 254, 196, 0, 0, 0, 0, 1, 51, 0, 0, 0, 98, 255, 58, 253, 248, 0, 104, 0, 0, 254, 149, 0, 0, 254, 127, 254, 115, 254, 114, 254, 109, 254, 104, 254, 66, 0, 0, 255, 76, 255, 75, 0, 0, 0, 0, 253, 212, 0, 0, 255, 44, 253, 200, 253, 197, 0, 0, 253, 131, 0, 0, 253, 123, 0, 0, 253, 112, 0, 0, 253, 108, 0, 0, 254, 108, 0, 0, 254, 105, 0, 0, 253, 20, 0, 0, 229, 39, 228, 231, 0, 0, 228, 198, 0, 0, 228, 196, 227, 220, 226, 37, 0, 0, 0, 0, 0, 0, 0, 0, 224, 93, 224, 64, 224, 65, 226, 230, 224, 71, 225, 192, 225, 182, 223, 180, 223, 178, 0, 0, 225, 50, 225, 37, 225, 35, 223, 114, 225, 12, 224, 224, 224, 61, 224, 49, 0, 0, 222, 116, 224, 40, 224, 37, 224, 25, 222, 59, 222, 34, 222, 34, 220, 123, 10, 165, 3, 71, 2, 75, 0, 1, 0, 0, 0, 188, 0, 0, 0, 216, 0, 0, 0, 226, 0, 0, 0, 234, 0, 240, 0, 0, 2, 172, 2, 174, 0, 0, 2, 174, 0, 0, 0, 0, 0, 0, 0, 0, 2, 176, 0, 0, 2, 176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 174, 0, 0, 0, 0, 2, 182, 2, 210, 0, 0, 2, 234, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 3, 74, 0, 0, 3, 114, 0, 0, 3, 148, 0, 0, 3, 160, 0, 0, 4, 42, 0, 0, 4, 58, 0, 0, 4, 78, 0, 0, 0, 0, 4, 78, 0, 0, 4, 86, 0, 0, 0, 0, 0, 0, 4, 82, 4, 86, 4, 100, 4, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 91, 0, 107, 0, 151, 0, 82, 0, 140, 0, 152, 0, 106, 0, 116, 0, 117, 0, 150, 0, 124, 0, 95, 0, 103, 0, 96, 0, 137, 0, 97, 0, 98, 0, 132, 0, 129, 0, 133, 0, 93, 0, 153, 0, 118, 0, 138, 0, 119, 0, 156, 0, 102, 1, 90, 0, 120, 0, 142, 0, 121, 0, 157, 2, 115, 0, 92, 0, 83, 0, 84, 0, 90, 0, 85, 0, 143, 0, 154, 1, 97, 0, 146, 0, 67, 1, 106, 0, 136, 2, 116, 0, 147, 1, 94, 0, 149, 0, 126, 0, 65, 0, 66, 1, 91, 1, 107, 0, 155, 0, 100, 1, 102, 0, 64, 0, 68, 1, 108, 0, 70, 0, 69, 0, 71, 0, 94, 0, 162, 0, 158, 0, 160, 0, 167, 0, 161, 0, 165, 0, 72, 0, 171, 0, 181, 0, 175, 0, 178, 0, 179, 0, 196, 0, 191, 0, 193, 0, 194, 0, 185, 0, 210, 0, 215, 0, 211, 0, 213, 0, 221, 0, 214, 0, 127, 0, 219, 0, 235, 0, 231, 0, 233, 0, 234, 0, 246, 0, 77, 0, 80, 1, 1, 0, 253, 0, 255, 1, 6, 1, 0, 1, 4, 0, 73, 1, 10, 1, 20, 1, 14, 1, 17, 1, 18, 1, 33, 1, 29, 1, 31, 1, 32, 0, 76, 1, 47, 1, 52, 1, 48, 1, 50, 1, 58, 1, 51, 0, 128, 1, 56, 1, 72, 1, 68, 1, 70, 1, 71, 1, 83, 0, 78, 1, 85, 0, 163, 1, 2, 0, 159, 0, 254, 0, 164, 1, 3, 0, 169, 1, 8, 0, 172, 1, 11, 2, 117, 2, 118, 0, 170, 1, 9, 0, 173, 1, 12, 0, 174, 1, 13, 0, 182, 1, 21, 0, 176, 1, 15, 0, 180, 1, 19, 0, 184, 1, 23, 0, 177, 1, 16, 0, 187, 1, 25, 0, 186, 1, 24, 2, 119, 2, 120, 0, 188, 1, 26, 0, 190, 1, 28, 0, 189, 1, 27, 0, 199, 1, 36, 0, 197, 1, 34, 0, 192, 1, 30, 0, 198, 1, 35, 0, 195, 1, 109, 1, 110, 1, 111, 0, 200, 1, 37, 0, 201, 1, 38, 0, 79, 0, 202, 1, 39, 0, 204, 1, 41, 0, 203, 1, 40, 0, 205, 1, 42, 0, 206, 1, 43, 0, 207, 1, 44, 0, 209, 1, 46, 0, 208, 1, 45, 2, 121, 0, 183, 1, 22, 0, 218, 1, 55, 0, 212, 1, 49, 0, 217, 1, 54, 0, 74, 0, 75, 0, 222, 1, 59, 0, 224, 1, 61, 0, 223, 1, 60, 0, 225, 1, 62, 0, 228, 1, 65, 0, 227, 1, 64, 0, 226, 1, 63, 2, 126, 2, 128, 0, 230, 1, 67, 0, 229, 1, 66, 0, 241, 1, 78, 0, 238, 1, 75, 0, 232, 1, 69, 0, 240, 1, 77, 0, 237, 1, 74, 0, 239, 1, 76, 0, 243, 1, 80, 0, 247, 1, 84, 0, 248, 0, 250, 1, 87, 0, 252, 1, 89, 0, 251, 1, 88, 1, 112, 0, 216, 1, 53, 0, 236, 1, 73, 0, 166, 1, 5, 0, 168, 1, 7, 0, 220, 1, 57, 1, 92, 1, 100, 1, 95, 1, 96, 1, 98, 1, 103, 1, 93, 1, 99, 1, 120, 1, 121, 2, 212, 1, 122, 2, 213, 2, 214, 2, 215, 1, 123, 1, 124, 2, 222, 2, 223, 2, 224, 1, 125, 2, 225, 2, 226, 1, 126, 2, 227, 2, 228, 1, 127, 2, 229, 1, 128, 2, 230, 1, 129, 2, 231, 2, 232, 1, 130, 2, 233, 1, 131, 1, 132, 2, 234, 2, 235, 2, 236, 2, 237, 2, 238, 2, 239, 2, 240, 2, 241, 1, 142, 2, 243, 2, 244, 1, 143, 2, 242, 1, 144, 1, 145, 1, 146, 1, 147, 1, 148, 1, 149, 1, 150, 2, 245, 1, 151, 1, 152, 3, 42, 2, 251, 1, 156, 2, 252, 1, 157, 2, 253, 2, 254, 2, 255, 3, 0, 1, 158, 1, 159, 1, 160, 3, 2, 3, 43, 3, 3, 1, 161, 3, 4, 1, 162, 3, 5, 3, 6, 1, 163, 3, 7, 1, 164, 1, 165, 1, 166, 3, 8, 3, 1, 1, 167, 3, 9, 3, 10, 3, 11, 3, 12, 3, 13, 3, 14, 3, 15, 1, 168, 3, 16, 3, 17, 3, 18, 1, 179, 1, 180, 1, 181, 1, 182, 3, 19, 1, 183, 1, 184, 1, 185, 3, 20, 1, 186, 1, 187, 1, 188, 1, 189, 3, 21, 1, 190, 3, 22, 3, 23, 1, 191, 3, 24, 1, 192, 3, 25, 3, 44, 3, 26, 1, 203, 3, 27, 1, 204, 3, 28, 3, 29, 3, 30, 3, 31, 1, 205, 1, 206, 1, 207, 3, 32, 3, 45, 3, 33, 1, 208, 1, 209, 1, 210, 3, 212, 3, 46, 3, 47, 1, 224, 1, 225, 1, 226, 1, 227, 3, 48, 3, 49, 1, 243, 1, 244, 3, 217, 3, 218, 3, 211, 3, 210, 1, 245, 1, 246, 1, 247, 1, 248, 3, 213, 3, 214, 1, 249, 1, 250, 3, 205, 3, 206, 3, 50, 3, 51, 3, 191, 3, 192, 1, 251, 1, 252, 3, 215, 3, 216, 1, 253, 1, 254, 3, 193, 3, 194, 1, 255, 2, 0, 2, 1, 2, 2, 2, 3, 2, 4, 3, 52, 3, 53, 3, 195, 3, 196, 3, 54, 3, 55, 3, 225, 3, 226, 3, 197, 3, 198, 2, 5, 2, 6, 3, 199, 3, 200, 2, 7, 2, 8, 2, 9, 3, 209, 2, 10, 2, 11, 3, 207, 3, 208, 3, 56, 3, 57, 3, 58, 2, 12, 2, 13, 3, 223, 3, 224, 2, 14, 2, 15, 3, 219, 3, 220, 3, 201, 3, 202, 3, 221, 3, 222, 2, 16, 3, 69, 3, 68, 3, 70, 3, 71, 3, 72, 3, 73, 3, 74, 2, 17, 2, 18, 3, 203, 3, 204, 3, 95, 3, 96, 2, 19, 2, 20, 3, 97, 3, 98, 3, 227, 3, 228, 2, 21, 3, 99, 3, 229, 3, 100, 3, 101, 0, 245, 1, 82, 0, 242, 1, 79, 0, 244, 1, 81, 0, 249, 1, 86, 0, 104, 0, 105, 3, 230, 2, 49, 0, 108, 0, 109, 0, 110, 2, 50, 0, 111, 0, 112, 0, 113, 0, 144, 0, 145, 0, 101, 2, 51, 0, 99, 3, 190, 2, 54, 2, 65, 0, 125, 184, 1, 255, 133, 176, 4, 141, 0, 0, 0, 0, 17, 0, 210, 0, 3, 0, 1, 4, 9, 0, 0, 0, 180, 0, 0, 0, 3, 0, 1, 4, 9, 0, 1, 0, 22, 0, 180, 0, 3, 0, 1, 4, 9, 0, 2, 0, 22, 0, 202, 0, 3, 0, 1, 4, 9, 0, 3, 0, 64, 0, 224, 0, 3, 0, 1, 4, 9, 0, 4, 0, 46, 1, 32, 0, 3, 0, 1, 4, 9, 0, 5, 0, 26, 1, 78, 0, 3, 0, 1, 4, 9, 0, 6, 0, 42, 1, 104, 0, 3, 0, 1, 4, 9, 0, 7, 0, 74, 1, 146, 0, 3, 0, 1, 4, 9, 0, 9, 0, 12, 1, 220, 0, 3, 0, 1, 4, 9, 0, 11, 0, 20, 1, 232, 0, 3, 0, 1, 4, 9, 0, 12, 0, 38, 1, 252, 0, 3, 0, 1, 4, 9, 0, 13, 0, 92, 2, 34, 0, 3, 0, 1, 4, 9, 0, 14, 0, 84, 2, 126, 0, 3, 0, 1, 4, 9, 1, 0, 0, 12, 2, 210, 0, 3, 0, 1, 4, 9, 1, 11, 0, 12, 2, 222, 0, 3, 0, 1, 4, 9, 1, 16, 0, 8, 2, 234, 0, 3, 0, 1, 4, 9, 1, 17, 0, 12, 2, 222, 0, 67, 0, 111, 0, 112, 0, 121, 0, 114, 0, 105, 0, 103, 0, 104, 0, 116, 0, 32, 0, 50, 0, 48, 0, 49, 0, 53, 0, 32, 0, 84, 0, 104, 0, 101, 0, 32, 0, 82, 0, 111, 0, 98, 0, 111, 0, 116, 0, 111, 0, 32, 0, 77, 0, 111, 0, 110, 0, 111, 0, 32, 0, 80, 0, 114, 0, 111, 0, 106, 0, 101, 0, 99, 0, 116, 0, 32, 0, 65, 0, 117, 0, 116, 0, 104, 0, 111, 0, 114, 0, 115, 0, 32, 0, 40, 0, 104, 0, 116, 0, 116, 0, 112, 0, 115, 0, 58, 0, 47, 0, 47, 0, 103, 0, 105, 0, 116, 0, 104, 0, 117, 0, 98, 0, 46, 0, 99, 0, 111, 0, 109, 0, 47, 0, 103, 0, 111, 0, 111, 0, 103, 0, 108, 0, 101, 0, 102, 0, 111, 0, 110, 0, 116, 0, 115, 0, 47, 0, 114, 0, 111, 0, 98, 0, 111, 0, 116, 0, 111, 0, 109, 0, 111, 0, 110, 0, 111, 0, 41, 0, 82, 0, 111, 0, 98, 0, 111, 0, 116, 0, 111, 0, 32, 0, 77, 0, 111, 0, 110, 0, 111, 0, 66, 0, 111, 0, 108, 0, 100, 0, 32, 0, 73, 0, 116, 0, 97, 0, 108, 0, 105, 0, 99, 0, 51, 0, 46, 0, 48, 0, 48, 0, 48, 0, 59, 0, 112, 0, 121, 0, 114, 0, 115, 0, 59, 0, 82, 0, 111, 0, 98, 0, 111, 0, 116, 0, 111, 0, 77, 0, 111, 0, 110, 0, 111, 0, 45, 0, 66, 0, 111, 0, 108, 0, 100, 0, 73, 0, 116, 0, 97, 0, 108, 0, 105, 0, 99, 0, 82, 0, 111, 0, 98, 0, 111, 0, 116, 0, 111, 0, 32, 0, 77, 0, 111, 0, 110, 0, 111, 0, 32, 0, 66, 0, 111, 0, 108, 0, 100, 0, 32, 0, 73, 0, 116, 0, 97, 0, 108, 0, 105, 0, 99, 0, 86, 0, 101, 0, 114, 0, 115, 0, 105, 0, 111, 0, 110, 0, 32, 0, 51, 0, 46, 0, 48, 0, 48, 0, 48, 0, 82, 0, 111, 0, 98, 0, 111, 0, 116, 0, 111, 0, 77, 0, 111, 0, 110, 0, 111, 0, 45, 0, 66, 0, 111, 0, 108, 0, 100, 0, 73, 0, 116, 0, 97, 0, 108, 0, 105, 0, 99, 0, 82, 0, 111, 0, 98, 0, 111, 0, 116, 0, 111, 0, 32, 0, 77, 0, 111, 0, 110, 0, 111, 0, 32, 0, 105, 0, 115, 0, 32, 0, 97, 0, 32, 0, 116, 0, 114, 0, 97, 0, 100, 0, 101, 0, 109, 0, 97, 0, 114, 0, 107, 0, 32, 0, 111, 0, 102, 0, 32, 0, 71, 0, 111, 0, 111, 0, 103, 0, 108, 0, 101, 0, 46, 0, 71, 0, 111, 0, 111, 0, 103, 0, 108, 0, 101, 0, 71, 0, 111, 0, 111, 0, 103, 0, 108, 0, 101, 0, 46, 0, 99, 0, 111, 0, 109, 0, 67, 0, 104, 0, 114, 0, 105, 0, 115, 0, 116, 0, 105, 0, 97, 0, 110, 0, 32, 0, 82, 0, 111, 0, 98, 0, 101, 0, 114, 0, 116, 0, 115, 0, 111, 0, 110, 0, 76, 0, 105, 0, 99, 0, 101, 0, 110, 0, 115, 0, 101, 0, 100, 0, 32, 0, 117, 0, 110, 0, 100, 0, 101, 0, 114, 0, 32, 0, 116, 0, 104, 0, 101, 0, 32, 0, 65, 0, 112, 0, 97, 0, 99, 0, 104, 0, 101, 0, 32, 0, 76, 0, 105, 0, 99, 0, 101, 0, 110, 0, 115, 0, 101, 0, 44, 0, 32, 0, 86, 0, 101, 0, 114, 0, 115, 0, 105, 0, 111, 0, 110, 0, 32, 0, 50, 0, 46, 0, 48, 0, 104, 0, 116, 0, 116, 0, 112, 0, 58, 0, 47, 0, 47, 0, 119, 0, 119, 0, 119, 0, 46, 0, 97, 0, 112, 0, 97, 0, 99, 0, 104, 0, 101, 0, 46, 0, 111, 0, 114, 0, 103, 0, 47, 0, 108, 0, 105, 0, 99, 0, 101, 0, 110, 0, 115, 0, 101, 0, 115, 0, 47, 0, 76, 0, 73, 0, 67, 0, 69, 0, 78, 0, 83, 0, 69, 0, 45, 0, 50, 0, 46, 0, 48, 0, 87, 0, 101, 0, 105, 0, 103, 0, 104, 0, 116, 0, 73, 0, 116, 0, 97, 0, 108, 0, 105, 0, 99, 0, 66, 0, 111, 0, 108, 0, 100, 0, 2, 0, 0, 255, 246, 0, 0, 255, 106, 0, 100, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 231, 0, 0, 0, 3, 0, 36, 0, 37, 0, 38, 0, 39, 0, 40, 0, 41, 0, 42, 0, 43, 0, 44, 0, 45, 0, 46, 0, 47, 0, 48, 0, 49, 0, 50, 0, 51, 0, 52, 0, 53, 0, 54, 0, 55, 0, 56, 0, 57, 0, 58, 0, 59, 0, 60, 0, 61, 0, 68, 0, 69, 0, 70, 0, 71, 0, 72, 0, 73, 0, 74, 0, 75, 0, 76, 0, 77, 0, 78, 0, 79, 0, 80, 0, 81, 0, 82, 0, 83, 0, 84, 0, 85, 0, 86, 0, 87, 0, 88, 0, 89, 0, 90, 0, 91, 0, 92, 0, 93, 0, 19, 0, 20, 0, 21, 0, 22, 0, 23, 0, 24, 0, 25, 0, 26, 0, 27, 0, 28, 0, 241, 0, 242, 0, 243, 0, 157, 0, 158, 0, 244, 0, 245, 0, 246, 0, 144, 0, 160, 0, 176, 0, 177, 0, 234, 0, 237, 0, 238, 1, 2, 0, 137, 1, 3, 0, 7, 0, 132, 0, 133, 0, 150, 0, 166, 0, 247, 1, 4, 1, 5, 0, 189, 0, 4, 0, 163, 0, 34, 0, 162, 0, 15, 0, 17, 0, 29, 0, 30, 0, 171, 0, 195, 0, 135, 0, 66, 0, 16, 0, 178, 0, 179, 0, 10, 0, 5, 0, 182, 0, 183, 0, 196, 0, 180, 0, 181, 0, 197, 1, 6, 1, 7, 0, 11, 0, 12, 0, 62, 0, 64, 0, 94, 0, 96, 0, 190, 0, 191, 0, 14, 0, 239, 0, 147, 0, 240, 0, 184, 0, 32, 0, 143, 0, 167, 0, 31, 0, 33, 0, 148, 0, 149, 0, 164, 0, 18, 0, 63, 0, 188, 0, 8, 0, 198, 0, 95, 0, 232, 0, 130, 0, 194, 0, 139, 0, 138, 0, 140, 0, 131, 0, 13, 0, 6, 0, 9, 0, 35, 0, 134, 0, 136, 0, 65, 0, 97, 0, 201, 1, 8, 0, 199, 0, 98, 0, 173, 1, 9, 1, 10, 0, 99, 1, 11, 0, 174, 1, 12, 0, 253, 0, 255, 0, 100, 1, 13, 1, 14, 1, 15, 0, 101, 1, 16, 1, 17, 0, 200, 0, 202, 1, 18, 0, 203, 1, 19, 1, 20, 1, 21, 0, 233, 0, 248, 1, 22, 1, 23, 1, 24, 1, 25, 0, 204, 1, 26, 0, 205, 0, 206, 0, 250, 0, 207, 1, 27, 1, 28, 1, 29, 1, 30, 1, 31, 1, 32, 1, 33, 1, 34, 1, 35, 0, 226, 1, 36, 1, 37, 1, 38, 0, 102, 0, 208, 1, 39, 0, 209, 0, 103, 0, 211, 1, 40, 1, 41, 1, 42, 0, 145, 1, 43, 0, 175, 1, 44, 1, 45, 1, 46, 1, 47, 0, 228, 0, 251, 1, 48, 1, 49, 1, 50, 0, 212, 1, 51, 0, 213, 0, 104, 0, 214, 1, 52, 1, 53, 1, 54, 1, 55, 1, 56, 1, 57, 1, 58, 1, 59, 1, 60, 1, 61, 0, 235, 1, 62, 0, 187, 1, 63, 1, 64, 0, 230, 1, 65, 0, 105, 1, 66, 0, 107, 0, 108, 0, 106, 1, 67, 1, 68, 0, 110, 1, 69, 0, 109, 1, 70, 0, 254, 1, 0, 0, 111, 1, 71, 1, 72, 1, 1, 0, 112, 1, 73, 1, 74, 0, 114, 0, 115, 1, 75, 0, 113, 1, 76, 1, 77, 1, 78, 0, 249, 1, 79, 1, 80, 1, 81, 1, 82, 0, 116, 1, 83, 0, 118, 0, 119, 0, 117, 1, 84, 1, 85, 1, 86, 1, 87, 1, 88, 1, 89, 1, 90, 1, 91, 1, 92, 0, 227, 1, 93, 1, 94, 1, 95, 0, 120, 0, 121, 1, 96, 0, 123, 0, 124, 0, 122, 1, 97, 1, 98, 1, 99, 0, 161, 1, 100, 0, 125, 1, 101, 1, 102, 1, 103, 1, 104, 0, 229, 0, 252, 1, 105, 1, 106, 1, 107, 0, 126, 1, 108, 0, 128, 0, 129, 0, 127, 1, 109, 1, 110, 1, 111, 1, 112, 1, 113, 1, 114, 1, 115, 1, 116, 1, 117, 1, 118, 0, 236, 1, 119, 0, 186, 1, 120, 1, 121, 0, 231, 1, 122, 0, 67, 0, 141, 0, 216, 0, 217, 0, 218, 0, 219, 0, 220, 0, 142, 0, 221, 0, 223, 0, 225, 1, 123, 0, 222, 0, 224, 1, 124, 0, 2, 0, 169, 0, 151, 0, 170, 0, 215, 1, 125, 1, 126, 1, 127, 1, 128, 1, 129, 1, 130, 1, 131, 1, 132, 1, 133, 1, 134, 1, 135, 1, 136, 1, 137, 1, 138, 0, 168, 1, 139, 1, 140, 1, 141, 1, 142, 1, 143, 1, 144, 1, 145, 0, 159, 1, 146, 1, 147, 1, 148, 1, 149, 1, 150, 1, 151, 1, 152, 1, 153, 1, 154, 1, 155, 1, 156, 0, 155, 1, 157, 1, 158, 1, 159, 1, 160, 1, 161, 1, 162, 1, 163, 1, 164, 1, 165, 1, 166, 1, 167, 1, 168, 1, 169, 1, 170, 1, 171, 1, 172, 1, 173, 1, 174, 1, 175, 1, 176, 1, 177, 1, 178, 1, 179, 1, 180, 1, 181, 1, 182, 1, 183, 1, 184, 1, 185, 1, 186, 1, 187, 1, 188, 1, 189, 1, 190, 1, 191, 1, 192, 1, 193, 1, 194, 1, 195, 1, 196, 1, 197, 1, 198, 1, 199, 1, 200, 1, 201, 1, 202, 1, 203, 1, 204, 1, 205, 1, 206, 1, 207, 1, 208, 1, 209, 1, 210, 1, 211, 1, 212, 1, 213, 1, 214, 1, 215, 1, 216, 1, 217, 1, 218, 1, 219, 1, 220, 1, 221, 1, 222, 1, 223, 1, 224, 1, 225, 1, 226, 1, 227, 1, 228, 1, 229, 1, 230, 1, 231, 1, 232, 1, 233, 1, 234, 1, 235, 1, 236, 1, 237, 1, 238, 1, 239, 1, 240, 1, 241, 1, 242, 1, 243, 1, 244, 1, 245, 1, 246, 1, 247, 1, 248, 1, 249, 1, 250, 1, 251, 1, 252, 1, 253, 1, 254, 1, 255, 2, 0, 2, 1, 2, 2, 2, 3, 2, 4, 2, 5, 2, 6, 2, 7, 2, 8, 2, 9, 2, 10, 2, 11, 2, 12, 2, 13, 2, 14, 2, 15, 2, 16, 2, 17, 2, 18, 2, 19, 2, 20, 2, 21, 2, 22, 2, 23, 2, 24, 2, 25, 2, 26, 2, 27, 2, 28, 2, 29, 2, 30, 2, 31, 2, 32, 2, 33, 2, 34, 2, 35, 2, 36, 2, 37, 2, 38, 2, 39, 2, 40, 2, 41, 2, 42, 2, 43, 2, 44, 2, 45, 2, 46, 2, 47, 2, 48, 2, 49, 2, 50, 2, 51, 2, 52, 2, 53, 2, 54, 2, 55, 2, 56, 2, 57, 2, 58, 2, 59, 2, 60, 2, 61, 2, 62, 2, 63, 2, 64, 2, 65, 2, 66, 2, 67, 2, 68, 2, 69, 2, 70, 2, 71, 2, 72, 2, 73, 2, 74, 0, 152, 0, 154, 0, 153, 0, 165, 0, 146, 0, 156, 0, 185, 2, 75, 2, 76, 2, 77, 2, 78, 2, 79, 2, 80, 2, 81, 2, 82, 2, 83, 2, 84, 2, 85, 2, 86, 2, 87, 2, 88, 2, 89, 2, 90, 2, 91, 2, 92, 2, 93, 2, 94, 2, 95, 2, 96, 2, 97, 2, 98, 2, 99, 2, 100, 2, 101, 2, 102, 2, 103, 2, 104, 2, 105, 2, 106, 2, 107, 2, 108, 2, 109, 2, 110, 2, 111, 2, 112, 2, 113, 2, 114, 2, 115, 2, 116, 2, 117, 2, 118, 2, 119, 0, 172, 2, 120, 2, 121, 2, 122, 2, 123, 2, 124, 2, 125, 2, 126, 2, 127, 2, 128, 2, 129, 2, 130, 2, 131, 2, 132, 2, 133, 2, 134, 2, 135, 2, 136, 2, 137, 2, 138, 2, 139, 2, 140, 2, 141, 2, 142, 2, 143, 2, 144, 2, 145, 2, 146, 2, 147, 2, 148, 2, 149, 2, 150, 2, 151, 2, 152, 2, 153, 2, 154, 2, 155, 2, 156, 2, 157, 2, 158, 2, 159, 2, 160, 2, 161, 2, 162, 2, 163, 2, 164, 2, 165, 2, 166, 2, 167, 2, 168, 2, 169, 2, 170, 2, 171, 2, 172, 2, 173, 2, 174, 2, 175, 2, 176, 2, 177, 2, 178, 2, 179, 2, 180, 2, 181, 2, 182, 2, 183, 2, 184, 2, 185, 2, 186, 2, 187, 2, 188, 2, 189, 2, 190, 2, 191, 2, 192, 2, 193, 2, 194, 2, 195, 2, 196, 2, 197, 2, 198, 2, 199, 2, 200, 2, 201, 2, 202, 2, 203, 2, 204, 2, 205, 2, 206, 2, 207, 2, 208, 2, 209, 2, 210, 2, 211, 2, 212, 2, 213, 2, 214, 2, 215, 2, 216, 2, 217, 2, 218, 2, 219, 2, 220, 2, 221, 2, 222, 2, 223, 2, 224, 2, 225, 2, 226, 2, 227, 2, 228, 2, 229, 2, 230, 2, 231, 2, 232, 2, 233, 2, 234, 2, 235, 2, 236, 2, 237, 2, 238, 2, 239, 2, 240, 2, 241, 2, 242, 2, 243, 2, 244, 2, 245, 2, 246, 2, 247, 2, 248, 2, 249, 2, 250, 2, 251, 2, 252, 2, 253, 2, 254, 2, 255, 3, 0, 3, 1, 3, 2, 3, 3, 3, 4, 3, 5, 3, 6, 3, 7, 3, 8, 3, 9, 3, 10, 3, 11, 3, 12, 3, 13, 3, 14, 3, 15, 3, 16, 3, 17, 3, 18, 3, 19, 3, 20, 3, 21, 3, 22, 3, 23, 3, 24, 3, 25, 3, 26, 3, 27, 3, 28, 3, 29, 3, 30, 3, 31, 3, 32, 3, 33, 3, 34, 3, 35, 3, 36, 3, 37, 3, 38, 3, 39, 3, 40, 3, 41, 3, 42, 3, 43, 3, 44, 3, 45, 3, 46, 3, 47, 3, 48, 3, 49, 3, 50, 3, 51, 3, 52, 3, 53, 3, 54, 3, 55, 3, 56, 3, 57, 3, 58, 3, 59, 3, 60, 3, 61, 3, 62, 3, 63, 3, 64, 3, 65, 3, 66, 3, 67, 3, 68, 3, 69, 3, 70, 3, 71, 3, 72, 3, 73, 3, 74, 3, 75, 3, 76, 3, 77, 3, 78, 3, 79, 3, 80, 3, 81, 3, 82, 3, 83, 3, 84, 3, 85, 3, 86, 3, 87, 3, 88, 3, 89, 3, 90, 3, 91, 3, 92, 3, 93, 3, 94, 3, 95, 3, 96, 3, 97, 3, 98, 3, 99, 3, 100, 3, 101, 3, 102, 3, 103, 3, 104, 3, 105, 3, 106, 3, 107, 3, 108, 3, 109, 3, 110, 3, 111, 3, 112, 3, 113, 3, 114, 3, 115, 3, 116, 3, 117, 3, 118, 3, 119, 3, 120, 3, 121, 3, 122, 3, 123, 3, 124, 3, 125, 3, 126, 3, 127, 3, 128, 3, 129, 3, 130, 3, 131, 3, 132, 3, 133, 3, 134, 3, 135, 3, 136, 3, 137, 3, 138, 3, 139, 3, 140, 3, 141, 3, 142, 3, 143, 3, 144, 3, 145, 3, 146, 3, 147, 3, 148, 3, 149, 3, 150, 3, 151, 3, 152, 3, 153, 3, 154, 3, 155, 3, 156, 3, 157, 3, 158, 3, 159, 3, 160, 3, 161, 3, 162, 3, 163, 3, 164, 3, 165, 3, 166, 3, 167, 3, 168, 3, 169, 3, 170, 3, 171, 3, 172, 3, 173, 3, 174, 3, 175, 3, 176, 3, 177, 3, 178, 3, 179, 3, 180, 3, 181, 3, 182, 3, 183, 3, 184, 3, 185, 3, 186, 3, 187, 3, 188, 3, 189, 3, 190, 3, 191, 3, 192, 3, 193, 3, 194, 3, 195, 3, 196, 3, 197, 3, 198, 3, 199, 3, 200, 3, 201, 3, 202, 3, 203, 3, 204, 3, 205, 3, 206, 3, 207, 3, 208, 3, 209, 3, 210, 3, 211, 3, 212, 3, 213, 3, 214, 3, 215, 3, 216, 3, 217, 3, 218, 3, 219, 3, 220, 3, 221, 3, 222, 3, 223, 3, 224, 3, 225, 3, 226, 3, 227, 3, 228, 3, 229, 3, 230, 3, 231, 3, 232, 3, 233, 3, 234, 12, 107, 103, 114, 101, 101, 110, 108, 97, 110, 100, 105, 99, 5, 115, 99, 104, 119, 97, 4, 108, 105, 114, 97, 6, 112, 101, 115, 101, 116, 97, 6, 109, 105, 110, 117, 116, 101, 6, 115, 101, 99, 111, 110, 100, 6, 65, 98, 114, 101, 118, 101, 7, 65, 109, 97, 99, 114, 111, 110, 7, 65, 111, 103, 111, 110, 101, 107, 10, 65, 114, 105, 110, 103, 97, 99, 117, 116, 101, 7, 65, 69, 97, 99, 117, 116, 101, 11, 67, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 6, 68, 99, 97, 114, 111, 110, 6, 68, 99, 114, 111, 97, 116, 6, 69, 98, 114, 101, 118, 101, 6, 69, 99, 97, 114, 111, 110, 10, 69, 100, 111, 116, 97, 99, 99, 101, 110, 116, 7, 69, 109, 97, 99, 114, 111, 110, 3, 69, 110, 103, 7, 69, 111, 103, 111, 110, 101, 107, 11, 71, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 12, 71, 99, 111, 109, 109, 97, 97, 99, 99, 101, 110, 116, 4, 72, 98, 97, 114, 11, 72, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 6, 73, 98, 114, 101, 118, 101, 7, 73, 109, 97, 99, 114, 111, 110, 7, 73, 111, 103, 111, 110, 101, 107, 6, 73, 116, 105, 108, 100, 101, 11, 74, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 12, 75, 99, 111, 109, 109, 97, 97, 99, 99, 101, 110, 116, 6, 76, 97, 99, 117, 116, 101, 6, 76, 99, 97, 114, 111, 110, 12, 76, 99, 111, 109, 109, 97, 97, 99, 99, 101, 110, 116, 4, 76, 100, 111, 116, 6, 78, 97, 99, 117, 116, 101, 6, 78, 99, 97, 114, 111, 110, 12, 78, 99, 111, 109, 109, 97, 97, 99, 99, 101, 110, 116, 6, 79, 98, 114, 101, 118, 101, 5, 79, 104, 111, 114, 110, 13, 79, 104, 117, 110, 103, 97, 114, 117, 109, 108, 97, 117, 116, 7, 79, 109, 97, 99, 114, 111, 110, 11, 79, 115, 108, 97, 115, 104, 97, 99, 117, 116, 101, 6, 82, 97, 99, 117, 116, 101, 6, 82, 99, 97, 114, 111, 110, 12, 82, 99, 111, 109, 109, 97, 97, 99, 99, 101, 110, 116, 6, 83, 97, 99, 117, 116, 101, 11, 83, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 4, 84, 98, 97, 114, 6, 84, 99, 97, 114, 111, 110, 6, 85, 98, 114, 101, 118, 101, 5, 85, 104, 111, 114, 110, 13, 85, 104, 117, 110, 103, 97, 114, 117, 109, 108, 97, 117, 116, 7, 85, 109, 97, 99, 114, 111, 110, 7, 85, 111, 103, 111, 110, 101, 107, 5, 85, 114, 105, 110, 103, 6, 85, 116, 105, 108, 100, 101, 6, 87, 97, 99, 117, 116, 101, 11, 87, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 9, 87, 100, 105, 101, 114, 101, 115, 105, 115, 6, 87, 103, 114, 97, 118, 101, 11, 89, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 6, 89, 103, 114, 97, 118, 101, 6, 90, 97, 99, 117, 116, 101, 10, 90, 100, 111, 116, 97, 99, 99, 101, 110, 116, 6, 97, 98, 114, 101, 118, 101, 7, 97, 109, 97, 99, 114, 111, 110, 7, 97, 111, 103, 111, 110, 101, 107, 10, 97, 114, 105, 110, 103, 97, 99, 117, 116, 101, 7, 97, 101, 97, 99, 117, 116, 101, 11, 99, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 6, 100, 99, 97, 114, 111, 110, 6, 101, 98, 114, 101, 118, 101, 6, 101, 99, 97, 114, 111, 110, 10, 101, 100, 111, 116, 97, 99, 99, 101, 110, 116, 7, 101, 109, 97, 99, 114, 111, 110, 3, 101, 110, 103, 7, 101, 111, 103, 111, 110, 101, 107, 11, 103, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 12, 103, 99, 111, 109, 109, 97, 97, 99, 99, 101, 110, 116, 4, 104, 98, 97, 114, 11, 104, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 6, 105, 98, 114, 101, 118, 101, 7, 105, 109, 97, 99, 114, 111, 110, 7, 105, 111, 103, 111, 110, 101, 107, 6, 105, 116, 105, 108, 100, 101, 11, 106, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 12, 107, 99, 111, 109, 109, 97, 97, 99, 99, 101, 110, 116, 6, 108, 97, 99, 117, 116, 101, 6, 108, 99, 97, 114, 111, 110, 12, 108, 99, 111, 109, 109, 97, 97, 99, 99, 101, 110, 116, 4, 108, 100, 111, 116, 6, 110, 97, 99, 117, 116, 101, 6, 110, 99, 97, 114, 111, 110, 12, 110, 99, 111, 109, 109, 97, 97, 99, 99, 101, 110, 116, 6, 111, 98, 114, 101, 118, 101, 5, 111, 104, 111, 114, 110, 13, 111, 104, 117, 110, 103, 97, 114, 117, 109, 108, 97, 117, 116, 7, 111, 109, 97, 99, 114, 111, 110, 11, 111, 115, 108, 97, 115, 104, 97, 99, 117, 116, 101, 6, 114, 97, 99, 117, 116, 101, 6, 114, 99, 97, 114, 111, 110, 12, 114, 99, 111, 109, 109, 97, 97, 99, 99, 101, 110, 116, 6, 115, 97, 99, 117, 116, 101, 11, 115, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 4, 116, 98, 97, 114, 6, 116, 99, 97, 114, 111, 110, 6, 117, 98, 114, 101, 118, 101, 5, 117, 104, 111, 114, 110, 13, 117, 104, 117, 110, 103, 97, 114, 117, 109, 108, 97, 117, 116, 7, 117, 109, 97, 99, 114, 111, 110, 7, 117, 111, 103, 111, 110, 101, 107, 5, 117, 114, 105, 110, 103, 6, 117, 116, 105, 108, 100, 101, 6, 119, 97, 99, 117, 116, 101, 11, 119, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 9, 119, 100, 105, 101, 114, 101, 115, 105, 115, 6, 119, 103, 114, 97, 118, 101, 11, 121, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 6, 121, 103, 114, 97, 118, 101, 6, 122, 97, 99, 117, 116, 101, 10, 122, 100, 111, 116, 97, 99, 99, 101, 110, 116, 8, 100, 111, 116, 98, 101, 108, 111, 119, 11, 99, 111, 109, 109, 97, 97, 99, 99, 101, 110, 116, 2, 73, 74, 2, 105, 106, 5, 108, 111, 110, 103, 115, 7, 117, 110, 105, 48, 50, 51, 55, 7, 117, 110, 105, 48, 50, 70, 51, 9, 103, 114, 97, 118, 101, 99, 111, 109, 98, 9, 97, 99, 117, 116, 101, 99, 111, 109, 98, 9, 116, 105, 108, 100, 101, 99, 111, 109, 98, 4, 104, 111, 111, 107, 7, 117, 110, 105, 48, 51, 48, 70, 5, 116, 111, 110, 111, 115, 13, 100, 105, 101, 114, 101, 115, 105, 115, 116, 111, 110, 111, 115, 9, 97, 110, 111, 116, 101, 108, 101, 105, 97, 5, 71, 97, 109, 109, 97, 5, 84, 104, 101, 116, 97, 6, 76, 97, 109, 98, 100, 97, 2, 88, 105, 2, 80, 105, 5, 83, 105, 103, 109, 97, 3, 80, 104, 105, 3, 80, 115, 105, 5, 97, 108, 112, 104, 97, 4, 98, 101, 116, 97, 5, 103, 97, 109, 109, 97, 5, 100, 101, 108, 116, 97, 7, 101, 112, 115, 105, 108, 111, 110, 4, 122, 101, 116, 97, 3, 101, 116, 97, 5, 116, 104, 101, 116, 97, 4, 105, 111, 116, 97, 6, 108, 97, 109, 98, 100, 97, 2, 120, 105, 3, 114, 104, 111, 6, 115, 105, 103, 109, 97, 49, 5, 115, 105, 103, 109, 97, 3, 116, 97, 117, 7, 117, 112, 115, 105, 108, 111, 110, 3, 112, 104, 105, 3, 112, 115, 105, 5, 111, 109, 101, 103, 97, 7, 117, 110, 105, 48, 51, 68, 49, 7, 117, 110, 105, 48, 51, 68, 50, 7, 117, 110, 105, 48, 51, 68, 54, 7, 117, 110, 105, 48, 52, 48, 50, 7, 117, 110, 105, 48, 52, 48, 52, 7, 117, 110, 105, 48, 52, 48, 57, 7, 117, 110, 105, 48, 52, 48, 65, 7, 117, 110, 105, 48, 52, 48, 66, 7, 117, 110, 105, 48, 52, 48, 70, 7, 117, 110, 105, 48, 52, 49, 49, 7, 117, 110, 105, 48, 52, 49, 52, 7, 117, 110, 105, 48, 52, 49, 54, 7, 117, 110, 105, 48, 52, 49, 55, 7, 117, 110, 105, 48, 52, 49, 56, 7, 117, 110, 105, 48, 52, 49, 66, 7, 117, 110, 105, 48, 52, 50, 51, 7, 117, 110, 105, 48, 52, 50, 54, 7, 117, 110, 105, 48, 52, 50, 55, 7, 117, 110, 105, 48, 52, 50, 56, 7, 117, 110, 105, 48, 52, 50, 57, 7, 117, 110, 105, 48, 52, 50, 65, 7, 117, 110, 105, 48, 52, 50, 66, 7, 117, 110, 105, 48, 52, 50, 67, 7, 117, 110, 105, 48, 52, 50, 68, 7, 117, 110, 105, 48, 52, 50, 69, 7, 117, 110, 105, 48, 52, 50, 70, 7, 117, 110, 105, 48, 52, 51, 49, 7, 117, 110, 105, 48, 52, 51, 50, 7, 117, 110, 105, 48, 52, 51, 51, 7, 117, 110, 105, 48, 52, 51, 52, 7, 117, 110, 105, 48, 52, 51, 54, 7, 117, 110, 105, 48, 52, 51, 55, 7, 117, 110, 105, 48, 52, 51, 56, 7, 117, 110, 105, 48, 52, 51, 65, 7, 117, 110, 105, 48, 52, 51, 66, 7, 117, 110, 105, 48, 52, 51, 67, 7, 117, 110, 105, 48, 52, 51, 68, 7, 117, 110, 105, 48, 52, 51, 70, 7, 117, 110, 105, 48, 52, 52, 50, 7, 117, 110, 105, 48, 52, 52, 52, 7, 117, 110, 105, 48, 52, 52, 54, 7, 117, 110, 105, 48, 52, 52, 55, 7, 117, 110, 105, 48, 52, 52, 56, 7, 117, 110, 105, 48, 52, 52, 57, 7, 117, 110, 105, 48, 52, 52, 65, 7, 117, 110, 105, 48, 52, 52, 66, 7, 117, 110, 105, 48, 52, 52, 67, 7, 117, 110, 105, 48, 52, 52, 68, 7, 117, 110, 105, 48, 52, 52, 69, 7, 117, 110, 105, 48, 52, 52, 70, 7, 117, 110, 105, 48, 52, 53, 50, 7, 117, 110, 105, 48, 52, 53, 52, 7, 117, 110, 105, 48, 52, 53, 57, 7, 117, 110, 105, 48, 52, 53, 65, 7, 117, 110, 105, 48, 52, 53, 66, 7, 117, 110, 105, 48, 52, 53, 70, 7, 117, 110, 105, 48, 52, 54, 48, 7, 117, 110, 105, 48, 52, 54, 49, 7, 117, 110, 105, 48, 52, 54, 51, 7, 117, 110, 105, 48, 52, 54, 52, 7, 117, 110, 105, 48, 52, 54, 53, 7, 117, 110, 105, 48, 52, 54, 54, 7, 117, 110, 105, 48, 52, 54, 55, 7, 117, 110, 105, 48, 52, 54, 56, 7, 117, 110, 105, 48, 52, 54, 57, 7, 117, 110, 105, 48, 52, 54, 65, 7, 117, 110, 105, 48, 52, 54, 66, 7, 117, 110, 105, 48, 52, 54, 67, 7, 117, 110, 105, 48, 52, 54, 68, 7, 117, 110, 105, 48, 52, 54, 69, 7, 117, 110, 105, 48, 52, 54, 70, 7, 117, 110, 105, 48, 52, 55, 50, 7, 117, 110, 105, 48, 52, 55, 51, 7, 117, 110, 105, 48, 52, 55, 52, 7, 117, 110, 105, 48, 52, 55, 53, 7, 117, 110, 105, 48, 52, 55, 56, 7, 117, 110, 105, 48, 52, 55, 57, 7, 117, 110, 105, 48, 52, 55, 65, 7, 117, 110, 105, 48, 52, 55, 66, 7, 117, 110, 105, 48, 52, 55, 67, 7, 117, 110, 105, 48, 52, 55, 68, 7, 117, 110, 105, 48, 52, 55, 69, 7, 117, 110, 105, 48, 52, 55, 70, 7, 117, 110, 105, 48, 52, 56, 48, 7, 117, 110, 105, 48, 52, 56, 49, 7, 117, 110, 105, 48, 52, 56, 50, 7, 117, 110, 105, 48, 52, 56, 51, 7, 117, 110, 105, 48, 52, 56, 52, 7, 117, 110, 105, 48, 52, 56, 53, 7, 117, 110, 105, 48, 52, 56, 54, 7, 117, 110, 105, 48, 52, 56, 56, 7, 117, 110, 105, 48, 52, 56, 57, 7, 117, 110, 105, 48, 52, 56, 69, 7, 117, 110, 105, 48, 52, 56, 70, 7, 117, 110, 105, 48, 52, 57, 48, 7, 117, 110, 105, 48, 52, 57, 49, 7, 117, 110, 105, 48, 52, 57, 52, 7, 117, 110, 105, 48, 52, 57, 53, 7, 117, 110, 105, 48, 52, 57, 67, 7, 117, 110, 105, 48, 52, 57, 68, 7, 117, 110, 105, 48, 52, 65, 48, 7, 117, 110, 105, 48, 52, 65, 49, 7, 117, 110, 105, 48, 52, 65, 52, 7, 117, 110, 105, 48, 52, 65, 53, 7, 117, 110, 105, 48, 52, 65, 54, 7, 117, 110, 105, 48, 52, 65, 55, 7, 117, 110, 105, 48, 52, 65, 56, 7, 117, 110, 105, 48, 52, 65, 57, 7, 117, 110, 105, 48, 52, 66, 52, 7, 117, 110, 105, 48, 52, 66, 53, 7, 117, 110, 105, 48, 52, 66, 56, 7, 117, 110, 105, 48, 52, 66, 57, 7, 117, 110, 105, 48, 52, 66, 65, 7, 117, 110, 105, 48, 52, 66, 67, 7, 117, 110, 105, 48, 52, 66, 68, 7, 117, 110, 105, 48, 52, 67, 51, 7, 117, 110, 105, 48, 52, 67, 52, 7, 117, 110, 105, 48, 52, 67, 55, 7, 117, 110, 105, 48, 52, 67, 56, 7, 117, 110, 105, 48, 52, 68, 56, 7, 117, 110, 105, 48, 52, 69, 48, 7, 117, 110, 105, 48, 52, 69, 49, 7, 117, 110, 105, 48, 52, 70, 65, 7, 117, 110, 105, 48, 52, 70, 66, 7, 117, 110, 105, 48, 53, 48, 48, 7, 117, 110, 105, 48, 53, 48, 50, 7, 117, 110, 105, 48, 53, 48, 51, 7, 117, 110, 105, 48, 53, 48, 52, 7, 117, 110, 105, 48, 53, 48, 53, 7, 117, 110, 105, 48, 53, 48, 54, 7, 117, 110, 105, 48, 53, 48, 55, 7, 117, 110, 105, 48, 53, 48, 56, 7, 117, 110, 105, 48, 53, 48, 57, 7, 117, 110, 105, 48, 53, 48, 65, 7, 117, 110, 105, 48, 53, 48, 66, 7, 117, 110, 105, 48, 53, 48, 67, 7, 117, 110, 105, 48, 53, 48, 68, 7, 117, 110, 105, 48, 53, 48, 69, 7, 117, 110, 105, 48, 53, 48, 70, 7, 117, 110, 105, 48, 53, 49, 48, 7, 117, 110, 105, 50, 48, 48, 48, 7, 117, 110, 105, 50, 48, 48, 49, 7, 117, 110, 105, 50, 48, 48, 50, 7, 117, 110, 105, 50, 48, 48, 51, 7, 117, 110, 105, 50, 48, 48, 52, 7, 117, 110, 105, 50, 48, 48, 53, 7, 117, 110, 105, 50, 48, 48, 54, 7, 117, 110, 105, 50, 48, 48, 55, 7, 117, 110, 105, 50, 48, 48, 56, 7, 117, 110, 105, 50, 48, 48, 57, 7, 117, 110, 105, 50, 48, 48, 65, 7, 117, 110, 105, 50, 48, 48, 66, 13, 117, 110, 100, 101, 114, 115, 99, 111, 114, 101, 100, 98, 108, 13, 113, 117, 111, 116, 101, 114, 101, 118, 101, 114, 115, 101, 100, 7, 117, 110, 105, 50, 48, 50, 53, 7, 117, 110, 105, 50, 48, 55, 52, 9, 110, 115, 117, 112, 101, 114, 105, 111, 114, 4, 69, 117, 114, 111, 7, 117, 110, 105, 50, 49, 48, 53, 7, 117, 110, 105, 50, 49, 49, 51, 7, 117, 110, 105, 50, 49, 49, 54, 9, 101, 115, 116, 105, 109, 97, 116, 101, 100, 9, 111, 110, 101, 101, 105, 103, 104, 116, 104, 12, 116, 104, 114, 101, 101, 101, 105, 103, 104, 116, 104, 115, 11, 102, 105, 118, 101, 101, 105, 103, 104, 116, 104, 115, 12, 115, 101, 118, 101, 110, 101, 105, 103, 104, 116, 104, 115, 7, 117, 110, 105, 70, 69, 70, 70, 7, 117, 110, 105, 70, 70, 70, 67, 7, 117, 110, 105, 70, 70, 70, 68, 19, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 116, 105, 108, 100, 101, 99, 111, 109, 98, 18, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 104, 111, 111, 107, 99, 111, 109, 98, 19, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 103, 114, 97, 118, 101, 99, 111, 109, 98, 19, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 97, 99, 117, 116, 101, 99, 111, 109, 98, 14, 98, 114, 101, 118, 101, 103, 114, 97, 118, 101, 99, 111, 109, 98, 17, 99, 111, 109, 109, 97, 97, 99, 99, 101, 110, 116, 114, 111, 116, 97, 116, 101, 6, 65, 46, 115, 109, 99, 112, 6, 66, 46, 115, 109, 99, 112, 6, 67, 46, 115, 109, 99, 112, 6, 68, 46, 115, 109, 99, 112, 6, 69, 46, 115, 109, 99, 112, 6, 70, 46, 115, 109, 99, 112, 6, 71, 46, 115, 109, 99, 112, 6, 72, 46, 115, 109, 99, 112, 6, 73, 46, 115, 109, 99, 112, 6, 74, 46, 115, 109, 99, 112, 6, 75, 46, 115, 109, 99, 112, 6, 76, 46, 115, 109, 99, 112, 6, 77, 46, 115, 109, 99, 112, 6, 78, 46, 115, 109, 99, 112, 6, 79, 46, 115, 109, 99, 112, 6, 81, 46, 115, 109, 99, 112, 6, 82, 46, 115, 109, 99, 112, 6, 83, 46, 115, 109, 99, 112, 6, 84, 46, 115, 109, 99, 112, 6, 85, 46, 115, 109, 99, 112, 6, 86, 46, 115, 109, 99, 112, 6, 87, 46, 115, 109, 99, 112, 6, 88, 46, 115, 109, 99, 112, 6, 89, 46, 115, 109, 99, 112, 6, 90, 46, 115, 109, 99, 112, 13, 98, 114, 101, 118, 101, 104, 111, 111, 107, 99, 111, 109, 98, 14, 98, 114, 101, 118, 101, 97, 99, 117, 116, 101, 99, 111, 109, 98, 8, 99, 114, 111, 115, 115, 98, 97, 114, 9, 114, 105, 110, 103, 97, 99, 117, 116, 101, 9, 100, 97, 115, 105, 97, 111, 120, 105, 97, 14, 98, 114, 101, 118, 101, 116, 105, 108, 100, 101, 99, 111, 109, 98, 11, 99, 121, 114, 105, 108, 108, 105, 99, 116, 105, 99, 12, 99, 121, 114, 105, 108, 108, 105, 99, 104, 111, 111, 107, 6, 80, 46, 115, 109, 99, 112, 5, 75, 46, 97, 108, 116, 15, 71, 101, 114, 109, 97, 110, 100, 98, 108, 115, 46, 115, 109, 99, 112, 7, 117, 110, 105, 48, 48, 65, 68, 7, 117, 110, 105, 48, 49, 48, 65, 7, 117, 110, 105, 48, 49, 48, 66, 7, 117, 110, 105, 48, 49, 50, 48, 7, 117, 110, 105, 48, 49, 50, 49, 11, 110, 97, 112, 111, 115, 116, 114, 111, 112, 104, 101, 7, 117, 110, 105, 48, 50, 49, 56, 7, 117, 110, 105, 48, 50, 49, 57, 7, 117, 110, 105, 48, 50, 49, 65, 7, 117, 110, 105, 48, 50, 49, 66, 7, 117, 110, 105, 48, 49, 54, 50, 12, 117, 110, 105, 48, 49, 54, 50, 46, 115, 109, 99, 112, 7, 117, 110, 105, 48, 49, 54, 51, 11, 68, 99, 114, 111, 97, 116, 46, 115, 109, 99, 112, 8, 69, 116, 104, 46, 115, 109, 99, 112, 9, 84, 98, 97, 114, 46, 115, 109, 99, 112, 11, 65, 103, 114, 97, 118, 101, 46, 115, 109, 99, 112, 11, 65, 97, 99, 117, 116, 101, 46, 115, 109, 99, 112, 16, 65, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 46, 115, 109, 99, 112, 11, 65, 116, 105, 108, 100, 101, 46, 115, 109, 99, 112, 14, 65, 100, 105, 101, 114, 101, 115, 105, 115, 46, 115, 109, 99, 112, 10, 65, 114, 105, 110, 103, 46, 115, 109, 99, 112, 15, 65, 114, 105, 110, 103, 97, 99, 117, 116, 101, 46, 115, 109, 99, 112, 13, 67, 99, 101, 100, 105, 108, 108, 97, 46, 115, 109, 99, 112, 11, 69, 103, 114, 97, 118, 101, 46, 115, 109, 99, 112, 11, 69, 97, 99, 117, 116, 101, 46, 115, 109, 99, 112, 16, 69, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 46, 115, 109, 99, 112, 14, 69, 100, 105, 101, 114, 101, 115, 105, 115, 46, 115, 109, 99, 112, 11, 73, 103, 114, 97, 118, 101, 46, 115, 109, 99, 112, 11, 73, 97, 99, 117, 116, 101, 46, 115, 109, 99, 112, 16, 73, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 46, 115, 109, 99, 112, 14, 73, 100, 105, 101, 114, 101, 115, 105, 115, 46, 115, 109, 99, 112, 11, 78, 116, 105, 108, 100, 101, 46, 115, 109, 99, 112, 11, 79, 103, 114, 97, 118, 101, 46, 115, 109, 99, 112, 11, 79, 97, 99, 117, 116, 101, 46, 115, 109, 99, 112, 16, 79, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 46, 115, 109, 99, 112, 11, 79, 116, 105, 108, 100, 101, 46, 115, 109, 99, 112, 14, 79, 100, 105, 101, 114, 101, 115, 105, 115, 46, 115, 109, 99, 112, 11, 85, 103, 114, 97, 118, 101, 46, 115, 109, 99, 112, 11, 85, 97, 99, 117, 116, 101, 46, 115, 109, 99, 112, 16, 85, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 46, 115, 109, 99, 112, 14, 85, 100, 105, 101, 114, 101, 115, 105, 115, 46, 115, 109, 99, 112, 11, 89, 97, 99, 117, 116, 101, 46, 115, 109, 99, 112, 12, 65, 109, 97, 99, 114, 111, 110, 46, 115, 109, 99, 112, 11, 65, 98, 114, 101, 118, 101, 46, 115, 109, 99, 112, 12, 65, 111, 103, 111, 110, 101, 107, 46, 115, 109, 99, 112, 11, 67, 97, 99, 117, 116, 101, 46, 115, 109, 99, 112, 16, 67, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 46, 115, 109, 99, 112, 11, 67, 99, 97, 114, 111, 110, 46, 115, 109, 99, 112, 11, 68, 99, 97, 114, 111, 110, 46, 115, 109, 99, 112, 12, 69, 109, 97, 99, 114, 111, 110, 46, 115, 109, 99, 112, 11, 69, 98, 114, 101, 118, 101, 46, 115, 109, 99, 112, 15, 69, 100, 111, 116, 97, 99, 99, 101, 110, 116, 46, 115, 109, 99, 112, 12, 69, 111, 103, 111, 110, 101, 107, 46, 115, 109, 99, 112, 11, 69, 99, 97, 114, 111, 110, 46, 115, 109, 99, 112, 16, 71, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 46, 115, 109, 99, 112, 11, 71, 98, 114, 101, 118, 101, 46, 115, 109, 99, 112, 17, 71, 99, 111, 109, 109, 97, 97, 99, 99, 101, 110, 116, 46, 115, 109, 99, 112, 16, 72, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 46, 115, 109, 99, 112, 11, 73, 116, 105, 108, 100, 101, 46, 115, 109, 99, 112, 12, 73, 109, 97, 99, 114, 111, 110, 46, 115, 109, 99, 112, 11, 73, 98, 114, 101, 118, 101, 46, 115, 109, 99, 112, 12, 73, 111, 103, 111, 110, 101, 107, 46, 115, 109, 99, 112, 15, 73, 100, 111, 116, 97, 99, 99, 101, 110, 116, 46, 115, 109, 99, 112, 16, 74, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 46, 115, 109, 99, 112, 17, 75, 99, 111, 109, 109, 97, 97, 99, 99, 101, 110, 116, 46, 115, 109, 99, 112, 11, 76, 97, 99, 117, 116, 101, 46, 115, 109, 99, 112, 17, 76, 99, 111, 109, 109, 97, 97, 99, 99, 101, 110, 116, 46, 115, 109, 99, 112, 11, 76, 99, 97, 114, 111, 110, 46, 115, 109, 99, 112, 9, 76, 100, 111, 116, 46, 115, 109, 99, 112, 11, 78, 97, 99, 117, 116, 101, 46, 115, 109, 99, 112, 17, 78, 99, 111, 109, 109, 97, 97, 99, 99, 101, 110, 116, 46, 115, 109, 99, 112, 11, 78, 99, 97, 114, 111, 110, 46, 115, 109, 99, 112, 12, 79, 109, 97, 99, 114, 111, 110, 46, 115, 109, 99, 112, 11, 79, 98, 114, 101, 118, 101, 46, 115, 109, 99, 112, 18, 79, 104, 117, 110, 103, 97, 114, 117, 109, 108, 97, 117, 116, 46, 115, 109, 99, 112, 11, 82, 97, 99, 117, 116, 101, 46, 115, 109, 99, 112, 17, 82, 99, 111, 109, 109, 97, 97, 99, 99, 101, 110, 116, 46, 115, 109, 99, 112, 11, 82, 99, 97, 114, 111, 110, 46, 115, 109, 99, 112, 11, 83, 97, 99, 117, 116, 101, 46, 115, 109, 99, 112, 16, 83, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 46, 115, 109, 99, 112, 13, 83, 99, 101, 100, 105, 108, 108, 97, 46, 115, 109, 99, 112, 11, 83, 99, 97, 114, 111, 110, 46, 115, 109, 99, 112, 11, 84, 99, 97, 114, 111, 110, 46, 115, 109, 99, 112, 11, 85, 116, 105, 108, 100, 101, 46, 115, 109, 99, 112, 12, 85, 109, 97, 99, 114, 111, 110, 46, 115, 109, 99, 112, 11, 85, 98, 114, 101, 118, 101, 46, 115, 109, 99, 112, 10, 85, 114, 105, 110, 103, 46, 115, 109, 99, 112, 18, 85, 104, 117, 110, 103, 97, 114, 117, 109, 108, 97, 117, 116, 46, 115, 109, 99, 112, 12, 85, 111, 103, 111, 110, 101, 107, 46, 115, 109, 99, 112, 16, 87, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 46, 115, 109, 99, 112, 16, 89, 99, 105, 114, 99, 117, 109, 102, 108, 101, 120, 46, 115, 109, 99, 112, 14, 89, 100, 105, 101, 114, 101, 115, 105, 115, 46, 115, 109, 99, 112, 11, 90, 97, 99, 117, 116, 101, 46, 115, 109, 99, 112, 15, 90, 100, 111, 116, 97, 99, 99, 101, 110, 116, 46, 115, 109, 99, 112, 11, 90, 99, 97, 114, 111, 110, 46, 115, 109, 99, 112, 10, 65, 108, 112, 104, 97, 116, 111, 110, 111, 115, 12, 69, 112, 115, 105, 108, 111, 110, 116, 111, 110, 111, 115, 8, 69, 116, 97, 116, 111, 110, 111, 115, 9, 73, 111, 116, 97, 116, 111, 110, 111, 115, 12, 79, 109, 105, 99, 114, 111, 110, 116, 111, 110, 111, 115, 12, 85, 112, 115, 105, 108, 111, 110, 116, 111, 110, 111, 115, 10, 79, 109, 101, 103, 97, 116, 111, 110, 111, 115, 17, 105, 111, 116, 97, 100, 105, 101, 114, 101, 115, 105, 115, 116, 111, 110, 111, 115, 5, 65, 108, 112, 104, 97, 4, 66, 101, 116, 97, 7, 69, 112, 115, 105, 108, 111, 110, 4, 90, 101, 116, 97, 3, 69, 116, 97, 4, 73, 111, 116, 97, 5, 75, 97, 112, 112, 97, 2, 77, 117, 2, 78, 117, 7, 79, 109, 105, 99, 114, 111, 110, 3, 82, 104, 111, 3, 84, 97, 117, 7, 85, 112, 115, 105, 108, 111, 110, 3, 67, 104, 105, 12, 73, 111, 116, 97, 100, 105, 101, 114, 101, 115, 105, 115, 15, 85, 112, 115, 105, 108, 111, 110, 100, 105, 101, 114, 101, 115, 105, 115, 10, 97, 108, 112, 104, 97, 116, 111, 110, 111, 115, 12, 101, 112, 115, 105, 108, 111, 110, 116, 111, 110, 111, 115, 8, 101, 116, 97, 116, 111, 110, 111, 115, 9, 105, 111, 116, 97, 116, 111, 110, 111, 115, 20, 117, 112, 115, 105, 108, 111, 110, 100, 105, 101, 114, 101, 115, 105, 115, 116, 111, 110, 111, 115, 5, 107, 97, 112, 112, 97, 7, 111, 109, 105, 99, 114, 111, 110, 7, 117, 110, 105, 48, 51, 66, 67, 2, 110, 117, 3, 99, 104, 105, 12, 105, 111, 116, 97, 100, 105, 101, 114, 101, 115, 105, 115, 15, 117, 112, 115, 105, 108, 111, 110, 100, 105, 101, 114, 101, 115, 105, 115, 12, 111, 109, 105, 99, 114, 111, 110, 116, 111, 110, 111, 115, 12, 117, 112, 115, 105, 108, 111, 110, 116, 111, 110, 111, 115, 10, 111, 109, 101, 103, 97, 116, 111, 110, 111, 115, 7, 117, 110, 105, 48, 52, 48, 49, 7, 117, 110, 105, 48, 52, 48, 51, 7, 117, 110, 105, 48, 52, 48, 53, 7, 117, 110, 105, 48, 52, 48, 54, 7, 117, 110, 105, 48, 52, 48, 55, 7, 117, 110, 105, 48, 52, 48, 56, 7, 117, 110, 105, 48, 52, 49, 65, 7, 117, 110, 105, 48, 52, 48, 67, 7, 117, 110, 105, 48, 52, 48, 69, 7, 117, 110, 105, 48, 52, 49, 48, 7, 117, 110, 105, 48, 52, 49, 50, 7, 117, 110, 105, 48, 52, 49, 51, 7, 117, 110, 105, 48, 52, 49, 53, 7, 117, 110, 105, 48, 52, 49, 57, 7, 117, 110, 105, 48, 52, 49, 67, 7, 117, 110, 105, 48, 52, 49, 68, 7, 117, 110, 105, 48, 52, 49, 69, 7, 117, 110, 105, 48, 52, 49, 70, 7, 117, 110, 105, 48, 52, 50, 48, 7, 117, 110, 105, 48, 52, 50, 49, 7, 117, 110, 105, 48, 52, 50, 50, 7, 117, 110, 105, 48, 52, 50, 52, 7, 117, 110, 105, 48, 52, 50, 53, 7, 117, 110, 105, 48, 52, 51, 48, 7, 117, 110, 105, 48, 52, 51, 53, 7, 117, 110, 105, 48, 52, 51, 57, 7, 117, 110, 105, 48, 52, 51, 69, 7, 117, 110, 105, 48, 52, 52, 48, 7, 117, 110, 105, 48, 52, 52, 49, 7, 117, 110, 105, 48, 52, 52, 51, 7, 117, 110, 105, 48, 52, 52, 53, 7, 117, 110, 105, 48, 52, 53, 49, 7, 117, 110, 105, 48, 52, 53, 51, 7, 117, 110, 105, 48, 52, 53, 53, 7, 117, 110, 105, 48, 52, 53, 54, 7, 117, 110, 105, 48, 52, 53, 55, 7, 117, 110, 105, 48, 52, 53, 56, 7, 117, 110, 105, 48, 52, 53, 67, 7, 117, 110, 105, 48, 52, 53, 69, 9, 101, 120, 99, 108, 97, 109, 100, 98, 108, 7, 117, 110, 105, 48, 49, 70, 48, 7, 117, 110, 105, 48, 50, 66, 67, 7, 117, 110, 105, 49, 69, 51, 69, 7, 117, 110, 105, 49, 69, 51, 70, 7, 117, 110, 105, 49, 69, 48, 48, 7, 117, 110, 105, 49, 69, 48, 49, 7, 117, 110, 105, 49, 70, 52, 68, 7, 117, 110, 105, 48, 52, 48, 48, 7, 117, 110, 105, 48, 52, 48, 68, 7, 117, 110, 105, 48, 52, 53, 48, 7, 117, 110, 105, 48, 52, 53, 68, 7, 117, 110, 105, 48, 52, 55, 48, 7, 117, 110, 105, 48, 52, 55, 49, 7, 117, 110, 105, 48, 52, 55, 54, 7, 117, 110, 105, 48, 52, 55, 55, 7, 117, 110, 105, 48, 52, 57, 56, 7, 117, 110, 105, 48, 52, 57, 57, 7, 117, 110, 105, 48, 52, 65, 65, 7, 117, 110, 105, 48, 52, 65, 66, 7, 117, 110, 105, 48, 52, 65, 69, 7, 117, 110, 105, 48, 52, 65, 70, 7, 117, 110, 105, 48, 52, 67, 48, 7, 117, 110, 105, 48, 52, 67, 49, 7, 117, 110, 105, 48, 52, 67, 50, 7, 117, 110, 105, 48, 52, 67, 70, 7, 117, 110, 105, 48, 52, 68, 48, 7, 117, 110, 105, 48, 52, 68, 49, 7, 117, 110, 105, 48, 52, 68, 50, 7, 117, 110, 105, 48, 52, 68, 51, 7, 117, 110, 105, 48, 52, 68, 52, 7, 117, 110, 105, 48, 52, 68, 53, 7, 117, 110, 105, 48, 52, 68, 54, 7, 117, 110, 105, 48, 52, 68, 55, 7, 117, 110, 105, 48, 52, 68, 65, 7, 117, 110, 105, 48, 52, 68, 57, 7, 117, 110, 105, 48, 52, 68, 66, 7, 117, 110, 105, 48, 52, 68, 67, 7, 117, 110, 105, 48, 52, 68, 68, 7, 117, 110, 105, 48, 52, 68, 69, 7, 117, 110, 105, 48, 52, 68, 70, 7, 117, 110, 105, 48, 52, 69, 50, 7, 117, 110, 105, 48, 52, 69, 51, 7, 117, 110, 105, 48, 52, 69, 52, 7, 117, 110, 105, 48, 52, 69, 53, 7, 117, 110, 105, 48, 52, 69, 54, 7, 117, 110, 105, 48, 52, 69, 55, 7, 117, 110, 105, 48, 52, 69, 56, 7, 117, 110, 105, 48, 52, 69, 57, 7, 117, 110, 105, 48, 52, 69, 65, 7, 117, 110, 105, 48, 52, 69, 66, 7, 117, 110, 105, 48, 52, 69, 67, 7, 117, 110, 105, 48, 52, 69, 68, 7, 117, 110, 105, 48, 52, 69, 69, 7, 117, 110, 105, 48, 52, 69, 70, 7, 117, 110, 105, 48, 52, 70, 48, 7, 117, 110, 105, 48, 52, 70, 49, 7, 117, 110, 105, 48, 52, 70, 50, 7, 117, 110, 105, 48, 52, 70, 51, 7, 117, 110, 105, 48, 52, 70, 52, 7, 117, 110, 105, 48, 52, 70, 53, 7, 117, 110, 105, 48, 52, 70, 56, 7, 117, 110, 105, 48, 52, 70, 57, 7, 117, 110, 105, 48, 52, 70, 67, 7, 117, 110, 105, 48, 52, 70, 68, 7, 117, 110, 105, 48, 53, 48, 49, 7, 117, 110, 105, 48, 53, 49, 50, 7, 117, 110, 105, 48, 53, 49, 51, 7, 117, 110, 105, 49, 69, 65, 48, 7, 117, 110, 105, 49, 69, 65, 49, 7, 117, 110, 105, 49, 69, 65, 50, 7, 117, 110, 105, 49, 69, 65, 51, 7, 117, 110, 105, 49, 69, 65, 52, 7, 117, 110, 105, 49, 69, 65, 53, 7, 117, 110, 105, 49, 69, 65, 54, 7, 117, 110, 105, 49, 69, 65, 55, 7, 117, 110, 105, 49, 69, 65, 56, 7, 117, 110, 105, 49, 69, 65, 57, 7, 117, 110, 105, 49, 69, 65, 65, 7, 117, 110, 105, 49, 69, 65, 66, 7, 117, 110, 105, 49, 69, 65, 67, 7, 117, 110, 105, 49, 69, 65, 68, 7, 117, 110, 105, 49, 69, 65, 69, 7, 117, 110, 105, 49, 69, 65, 70, 7, 117, 110, 105, 49, 69, 66, 48, 7, 117, 110, 105, 49, 69, 66, 49, 7, 117, 110, 105, 49, 69, 66, 50, 7, 117, 110, 105, 49, 69, 66, 51, 7, 117, 110, 105, 49, 69, 66, 52, 7, 117, 110, 105, 49, 69, 66, 53, 7, 117, 110, 105, 49, 69, 66, 54, 7, 117, 110, 105, 49, 69, 66, 55, 7, 117, 110, 105, 49, 69, 66, 56, 7, 117, 110, 105, 49, 69, 66, 57, 7, 117, 110, 105, 49, 69, 66, 65, 7, 117, 110, 105, 49, 69, 66, 66, 7, 117, 110, 105, 49, 69, 66, 67, 7, 117, 110, 105, 49, 69, 66, 68, 7, 117, 110, 105, 49, 69, 66, 69, 7, 117, 110, 105, 49, 69, 66, 70, 7, 117, 110, 105, 49, 69, 67, 48, 7, 117, 110, 105, 49, 69, 67, 49, 7, 117, 110, 105, 49, 69, 67, 50, 7, 117, 110, 105, 49, 69, 67, 51, 7, 117, 110, 105, 49, 69, 67, 52, 7, 117, 110, 105, 49, 69, 67, 53, 7, 117, 110, 105, 49, 69, 67, 54, 7, 117, 110, 105, 49, 69, 67, 55, 7, 117, 110, 105, 49, 69, 67, 56, 7, 117, 110, 105, 49, 69, 67, 57, 7, 117, 110, 105, 49, 69, 67, 65, 7, 117, 110, 105, 49, 69, 67, 66, 7, 117, 110, 105, 49, 69, 67, 67, 7, 117, 110, 105, 49, 69, 67, 68, 7, 117, 110, 105, 49, 69, 67, 69, 7, 117, 110, 105, 49, 69, 67, 70, 7, 117, 110, 105, 49, 69, 68, 48, 7, 117, 110, 105, 49, 69, 68, 49, 7, 117, 110, 105, 49, 69, 68, 50, 7, 117, 110, 105, 49, 69, 68, 51, 7, 117, 110, 105, 49, 69, 68, 52, 7, 117, 110, 105, 49, 69, 68, 53, 7, 117, 110, 105, 49, 69, 68, 54, 7, 117, 110, 105, 49, 69, 68, 55, 7, 117, 110, 105, 49, 69, 68, 56, 7, 117, 110, 105, 49, 69, 68, 57, 7, 117, 110, 105, 49, 69, 68, 65, 7, 117, 110, 105, 49, 69, 68, 66, 7, 117, 110, 105, 49, 69, 68, 67, 7, 117, 110, 105, 49, 69, 68, 68, 7, 117, 110, 105, 49, 69, 68, 69, 7, 117, 110, 105, 49, 69, 68, 70, 7, 117, 110, 105, 49, 69, 69, 48, 7, 117, 110, 105, 49, 69, 69, 49, 7, 117, 110, 105, 49, 69, 69, 50, 7, 117, 110, 105, 49, 69, 69, 51, 7, 117, 110, 105, 49, 69, 69, 52, 7, 117, 110, 105, 49, 69, 69, 53, 7, 117, 110, 105, 49, 69, 69, 54, 7, 117, 110, 105, 49, 69, 69, 55, 7, 117, 110, 105, 49, 69, 69, 56, 7, 117, 110, 105, 49, 69, 69, 57, 7, 117, 110, 105, 49, 69, 69, 65, 7, 117, 110, 105, 49, 69, 69, 66, 7, 117, 110, 105, 49, 69, 69, 67, 7, 117, 110, 105, 49, 69, 69, 68, 7, 117, 110, 105, 49, 69, 69, 69, 7, 117, 110, 105, 49, 69, 69, 70, 7, 117, 110, 105, 49, 69, 70, 48, 7, 117, 110, 105, 49, 69, 70, 49, 7, 117, 110, 105, 49, 69, 70, 52, 7, 117, 110, 105, 49, 69, 70, 53, 7, 117, 110, 105, 49, 69, 70, 54, 7, 117, 110, 105, 49, 69, 70, 55, 7, 117, 110, 105, 49, 69, 70, 56, 7, 117, 110, 105, 49, 69, 70, 57, 7, 117, 110, 105, 50, 48, 65, 66, 7, 117, 110, 105, 48, 52, 57, 65, 7, 117, 110, 105, 48, 52, 57, 66, 7, 117, 110, 105, 48, 52, 65, 50, 7, 117, 110, 105, 48, 52, 65, 51, 7, 117, 110, 105, 48, 52, 65, 67, 7, 117, 110, 105, 48, 52, 65, 68, 7, 117, 110, 105, 48, 52, 66, 50, 7, 117, 110, 105, 48, 52, 66, 51, 7, 117, 110, 105, 48, 52, 66, 54, 7, 117, 110, 105, 48, 52, 66, 55, 7, 117, 110, 105, 48, 52, 67, 66, 7, 117, 110, 105, 48, 52, 67, 67, 7, 117, 110, 105, 48, 52, 70, 54, 7, 117, 110, 105, 48, 52, 70, 55, 7, 117, 110, 105, 48, 52, 57, 54, 7, 117, 110, 105, 48, 52, 57, 55, 7, 117, 110, 105, 48, 52, 66, 69, 7, 117, 110, 105, 48, 52, 66, 70, 7, 117, 110, 105, 48, 52, 66, 66, 7, 117, 110, 105, 48, 52, 56, 68, 7, 117, 110, 105, 48, 52, 56, 67, 7, 117, 110, 105, 48, 52, 54, 50, 7, 117, 110, 105, 48, 52, 57, 50, 7, 117, 110, 105, 48, 52, 57, 51, 7, 117, 110, 105, 48, 52, 57, 69, 7, 117, 110, 105, 48, 52, 57, 70, 7, 117, 110, 105, 48, 52, 56, 65, 7, 117, 110, 105, 48, 52, 56, 66, 7, 117, 110, 105, 48, 52, 67, 57, 7, 117, 110, 105, 48, 52, 67, 65, 7, 117, 110, 105, 48, 52, 67, 68, 7, 117, 110, 105, 48, 52, 67, 69, 7, 117, 110, 105, 48, 52, 67, 53, 7, 117, 110, 105, 48, 52, 67, 54, 7, 117, 110, 105, 48, 52, 66, 48, 7, 117, 110, 105, 48, 52, 66, 49, 7, 117, 110, 105, 48, 52, 70, 69, 7, 117, 110, 105, 48, 52, 70, 70, 7, 117, 110, 105, 48, 53, 49, 49, 7, 117, 110, 105, 50, 48, 49, 53, 0, 1, 0, 1, 255, 255, 0, 15, 0, 1, 0, 0, 0, 10, 0, 48, 0, 62, 0, 4, 68, 70, 76, 84, 0, 26, 99, 121, 114, 108, 0, 26, 103, 114, 101, 107, 0, 26, 108, 97, 116, 110, 0, 26, 0, 4, 0, 0, 0, 0, 255, 255, 0, 1, 0, 0, 0, 1, 115, 109, 99, 112, 0, 8, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4, 0, 1, 0, 0, 0, 1, 0, 8, 0, 2, 1, 190, 0, 220, 2, 79, 2, 80, 2, 81, 2, 82, 2, 83, 2, 84, 2, 85, 2, 86, 2, 87, 2, 88, 2, 89, 2, 90, 2, 91, 2, 92, 2, 93, 2, 112, 2, 94, 2, 95, 2, 96, 2, 97, 2, 98, 2, 99, 2, 100, 2, 101, 2, 102, 2, 103, 2, 79, 2, 80, 2, 81, 2, 82, 2, 83, 2, 84, 2, 85, 2, 86, 2, 87, 2, 88, 2, 89, 2, 90, 2, 91, 2, 92, 2, 93, 2, 112, 2, 94, 2, 95, 2, 96, 2, 97, 2, 98, 2, 99, 2, 100, 2, 101, 2, 102, 2, 103, 2, 130, 2, 114, 2, 133, 2, 160, 2, 134, 2, 136, 2, 132, 2, 159, 2, 161, 2, 137, 2, 138, 2, 135, 2, 162, 2, 164, 2, 139, 2, 163, 2, 165, 2, 129, 2, 141, 2, 167, 2, 170, 2, 142, 2, 143, 2, 168, 2, 140, 2, 166, 2, 169, 2, 130, 2, 172, 2, 171, 2, 173, 2, 174, 2, 145, 2, 177, 2, 146, 2, 147, 2, 179, 2, 144, 2, 176, 2, 178, 2, 175, 2, 180, 2, 181, 2, 182, 2, 184, 2, 183, 2, 185, 2, 186, 2, 188, 2, 187, 2, 148, 2, 150, 2, 190, 2, 151, 2, 153, 2, 149, 2, 191, 2, 189, 2, 152, 2, 192, 2, 194, 2, 193, 2, 195, 2, 198, 2, 197, 2, 196, 2, 131, 2, 199, 2, 155, 2, 202, 2, 156, 2, 157, 2, 154, 2, 204, 2, 201, 2, 205, 2, 203, 2, 200, 2, 206, 2, 158, 2, 207, 2, 208, 2, 209, 2, 211, 2, 210, 2, 133, 2, 160, 2, 134, 2, 136, 2, 132, 2, 159, 2, 161, 2, 137, 2, 138, 2, 135, 2, 162, 2, 164, 2, 139, 2, 163, 2, 165, 2, 129, 2, 141, 2, 167, 2, 170, 2, 142, 2, 143, 2, 168, 2, 140, 2, 166, 2, 169, 2, 172, 2, 171, 2, 173, 2, 174, 2, 145, 2, 177, 2, 146, 2, 147, 2, 144, 2, 176, 2, 178, 2, 175, 2, 180, 2, 181, 2, 182, 2, 184, 2, 183, 2, 185, 2, 186, 2, 188, 2, 187, 2, 148, 2, 150, 2, 190, 2, 151, 2, 153, 2, 149, 2, 191, 2, 189, 2, 152, 2, 192, 2, 194, 2, 193, 2, 195, 2, 198, 2, 197, 2, 196, 2, 131, 2, 199, 2, 155, 2, 202, 2, 156, 2, 157, 2, 154, 2, 204, 2, 201, 2, 205, 2, 203, 2, 200, 2, 206, 2, 158, 2, 207, 2, 208, 2, 209, 2, 211, 2, 210, 2, 127, 2, 127, 0, 2, 0, 26, 0, 2, 0, 53, 0, 0, 0, 76, 0, 76, 0, 52, 0, 80, 0, 80, 0, 53, 0, 158, 0, 167, 0, 54, 0, 169, 0, 182, 0, 64, 0, 184, 0, 188, 0, 78, 0, 190, 0, 205, 0, 83, 0, 207, 0, 215, 0, 99, 0, 217, 0, 218, 0, 108, 0, 221, 0, 235, 0, 110, 0, 237, 0, 241, 0, 125, 0, 243, 0, 243, 0, 130, 0, 246, 0, 248, 0, 131, 0, 250, 1, 6, 0, 134, 1, 8, 1, 21, 0, 147, 1, 23, 1, 26, 0, 161, 1, 28, 1, 42, 0, 165, 1, 44, 1, 52, 0, 180, 1, 54, 1, 55, 0, 189, 1, 58, 1, 72, 0, 191, 1, 74, 1, 78, 0, 206, 1, 80, 1, 80, 0, 211, 1, 83, 1, 85, 0, 212, 1, 87, 1, 89, 0, 215, 2, 126, 2, 126, 0, 218, 2, 128, 2, 128, 0, 219, 0, 1, 0, 1, 0, 8, 0, 2, 0, 0, 0, 20, 0, 2, 0, 0, 0, 36, 0, 2, 119, 103, 104, 116, 1, 0, 0, 0, 105, 116, 97, 108, 1, 11, 0, 1, 0, 4, 0, 16, 0, 1, 0, 0, 0, 0, 1, 16, 2, 188, 0, 0, 0, 1, 0, 1, 0, 0, 1, 17, 0, 1, 0, 0) +font_name = "Roboto Mono" +style_name = "Bold Italic" +font_style = 7 +font_weight = 700 +msdf_pixel_range = 8 +fixed_size = 14 +cache/0/16/0/ascent = 15.0 +cache/0/16/0/descent = 4.0 +cache/0/16/0/underline_position = 1.375 +cache/0/16/0/underline_thickness = 0.6875 +cache/0/16/0/scale = 1.0 +cache/0/16/0/kerning_overrides/16/0 = Vector2(0, 0) +cache/0/16/0/kerning_overrides/14/0 = Vector2(0, 0) +cache/0/14/0/ascent = 15.0 +cache/0/14/0/descent = 4.0 +cache/0/14/0/underline_position = 1.375 +cache/0/14/0/underline_thickness = 0.6875 +cache/0/14/0/scale = 1.0 +cache/0/14/0/kerning_overrides/16/0 = Vector2(0, 0) +cache/0/14/0/kerning_overrides/14/0 = Vector2(0, 0) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_hbbq5"] +content_margin_left = 10.0 +content_margin_right = 10.0 +bg_color = Color(0.172549, 0.113725, 0.141176, 1) +border_width_left = 4 +border_width_top = 4 +border_width_right = 4 +border_width_bottom = 4 +border_color = Color(0.87451, 0.0705882, 0.160784, 1) +border_blend = true +corner_radius_top_left = 8 +corner_radius_top_right = 8 +corner_radius_bottom_right = 8 +corner_radius_bottom_left = 8 +shadow_color = Color(0, 0, 0, 0.756863) +shadow_size = 10 +shadow_offset = Vector2(10, 10) + +[node name="Control" type="Window"] +disable_3d = true +gui_embed_subwindows = true +title = "GdUnitSettings" +initial_position = 1 +size = Vector2i(1006, 723) +visible = false +wrap_controls = true +exclusive = true +extend_to_title = true +script = ExtResource("2") + +[node name="property_template" type="Control" parent="."] +visible = false +layout_mode = 3 +anchors_preset = 0 +offset_left = 4.0 +offset_top = 4.0 +offset_right = 224.0 +offset_bottom = 201.0 +size_flags_horizontal = 3 + +[node name="Label" type="Label" parent="property_template"] +layout_mode = 0 +offset_top = 13.0 +offset_right = 131.0 +offset_bottom = 27.0 + +[node name="btn_reset" type="Button" parent="property_template"] +layout_mode = 0 +offset_right = 12.0 +offset_bottom = 40.0 +tooltip_text = "Reset to default value" +clip_text = true + +[node name="info" type="Label" parent="property_template"] +layout_mode = 0 +offset_left = 390.0 +offset_top = 11.0 +offset_right = 590.0 +offset_bottom = 25.0 +size_flags_horizontal = 3 +text = "Enables/disables the update notification " +clip_text = true +max_lines_visible = 1 + +[node name="sub_category" type="Panel" parent="property_template"] +layout_mode = 1 +anchors_preset = 10 +anchor_right = 1.0 +offset_bottom = 30.0 +grow_horizontal = 2 +size_flags_horizontal = 3 + +[node name="Label" type="Label" parent="property_template/sub_category"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme_override_colors/font_color = Color(0.196078, 0.631373, 0.639216, 1) + +[node name="GdUnitUpdateClient" type="Node" parent="."] +script = ExtResource("8_2ggr0") + +[node name="Panel" type="Panel" parent="."] +use_parent_material = true +clip_contents = true +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 + +[node name="PanelContainer" type="PanelContainer" parent="Panel"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="v" type="VBoxContainer" parent="Panel/PanelContainer"] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 + +[node name="MarginContainer" type="MarginContainer" parent="Panel/PanelContainer/v"] +use_parent_material = true +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 +theme_override_constants/margin_left = 4 +theme_override_constants/margin_top = 4 +theme_override_constants/margin_right = 4 + +[node name="GridContainer" type="HBoxContainer" parent="Panel/PanelContainer/v/MarginContainer"] +use_parent_material = true +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 + +[node name="PanelContainer" type="MarginContainer" parent="Panel/PanelContainer/v/MarginContainer/GridContainer"] +use_parent_material = true +layout_mode = 2 +size_flags_vertical = 3 + +[node name="Panel" type="VBoxContainer" parent="Panel/PanelContainer/v/MarginContainer/GridContainer/PanelContainer"] +use_parent_material = true +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 + +[node name="CenterContainer" type="CenterContainer" parent="Panel/PanelContainer/v/MarginContainer/GridContainer/PanelContainer/Panel"] +use_parent_material = true +layout_mode = 2 +size_flags_horizontal = 3 + +[node name="logo" type="TextureRect" parent="Panel/PanelContainer/v/MarginContainer/GridContainer/PanelContainer/Panel/CenterContainer"] +custom_minimum_size = Vector2(120, 120) +layout_mode = 2 +size_flags_horizontal = 0 +size_flags_vertical = 4 +texture = ExtResource("3_isfyl") +expand_mode = 1 +stretch_mode = 5 + +[node name="CenterContainer2" type="MarginContainer" parent="Panel/PanelContainer/v/MarginContainer/GridContainer/PanelContainer/Panel"] +use_parent_material = true +custom_minimum_size = Vector2(0, 30) +layout_mode = 2 +size_flags_horizontal = 3 + +[node name="version" type="RichTextLabel" parent="Panel/PanelContainer/v/MarginContainer/GridContainer/PanelContainer/Panel/CenterContainer2"] +unique_name_in_owner = true +use_parent_material = true +clip_contents = false +layout_mode = 2 +size_flags_horizontal = 3 +auto_translate = false +localize_numeral_system = false +theme_override_fonts/normal_font = SubResource("FontFile_ulks6") +theme_override_fonts/bold_font = SubResource("FontFile_ia6yb") +theme_override_fonts/italics_font = SubResource("FontFile_uy7mm") +theme_override_fonts/bold_italics_font = SubResource("FontFile_xg6bo") +theme_override_fonts/mono_font = SubResource("FontFile_ulks6") +theme_override_font_sizes/normal_font_size = 14 +theme_override_font_sizes/bold_font_size = 14 +theme_override_font_sizes/italics_font_size = 14 +theme_override_font_sizes/bold_italics_font_size = 14 +theme_override_font_sizes/mono_font_size = 14 +bbcode_enabled = true +text = "[center][color=#9887c4]gd[/color][color=#7a57d6]Unit[/color][color=#9887c4]4[/color] [color=#9887c4]4.3.0[/color][/center]" +scroll_active = false +meta_underlined = false + +[node name="VBoxContainer" type="VBoxContainer" parent="Panel/PanelContainer/v/MarginContainer/GridContainer/PanelContainer"] +custom_minimum_size = Vector2(200, 0) +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 +alignment = 2 + +[node name="btn_report_bug" type="Button" parent="Panel/PanelContainer/v/MarginContainer/GridContainer/PanelContainer/VBoxContainer"] +layout_mode = 2 +size_flags_horizontal = 3 +tooltip_text = "Press to create a bug report" +text = "Report Bug" + +[node name="btn_request_feature" type="Button" parent="Panel/PanelContainer/v/MarginContainer/GridContainer/PanelContainer/VBoxContainer"] +layout_mode = 2 +size_flags_horizontal = 3 +tooltip_text = "Press to create a feature request" +text = "Request Feature" + +[node name="btn_install_examples" type="Button" parent="Panel/PanelContainer/v/MarginContainer/GridContainer/PanelContainer/VBoxContainer"] +unique_name_in_owner = true +layout_mode = 2 +size_flags_horizontal = 3 +tooltip_text = "Press to install the advanced test examples" +disabled = true +text = "Install Examples" + +[node name="Properties" type="TabContainer" parent="Panel/PanelContainer/v/MarginContainer/GridContainer"] +layout_mode = 2 +size_flags_horizontal = 11 + +[node name="Common" type="ScrollContainer" parent="Panel/PanelContainer/v/MarginContainer/GridContainer/Properties"] +layout_mode = 2 + +[node name="common-content" type="VBoxContainer" parent="Panel/PanelContainer/v/MarginContainer/GridContainer/Properties/Common"] +unique_name_in_owner = true +clip_contents = true +custom_minimum_size = Vector2(1557, 0) +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 + +[node name="UI" type="ScrollContainer" parent="Panel/PanelContainer/v/MarginContainer/GridContainer/Properties"] +visible = false +layout_mode = 2 + +[node name="ui-content" type="VBoxContainer" parent="Panel/PanelContainer/v/MarginContainer/GridContainer/Properties/UI"] +unique_name_in_owner = true +clip_contents = true +custom_minimum_size = Vector2(1361, 0) +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 + +[node name="Shortcuts" type="ScrollContainer" parent="Panel/PanelContainer/v/MarginContainer/GridContainer/Properties"] +visible = false +layout_mode = 2 + +[node name="shortcut-content" type="VBoxContainer" parent="Panel/PanelContainer/v/MarginContainer/GridContainer/Properties/Shortcuts"] +unique_name_in_owner = true +clip_contents = true +custom_minimum_size = Vector2(983, 0) +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 + +[node name="GdUnitInputCapture" parent="Panel/PanelContainer/v/MarginContainer/GridContainer/Properties/Shortcuts/shortcut-content" instance=ExtResource("5_xu3j8")] +unique_name_in_owner = true +visible = false +modulate = Color(1.01063e-08, 1.01063e-08, 1.01063e-08, 0.1) +z_index = 1 +z_as_relative = false +layout_mode = 2 +size_flags_horizontal = 1 +size_flags_vertical = 1 + +[node name="Report" type="ScrollContainer" parent="Panel/PanelContainer/v/MarginContainer/GridContainer/Properties"] +visible = false +layout_mode = 2 + +[node name="report-content" type="VBoxContainer" parent="Panel/PanelContainer/v/MarginContainer/GridContainer/Properties/Report"] +unique_name_in_owner = true +clip_contents = true +custom_minimum_size = Vector2(1249, 0) +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 + +[node name="Templates" parent="Panel/PanelContainer/v/MarginContainer/GridContainer/Properties" instance=ExtResource("4")] +visible = false +layout_mode = 2 + +[node name="propertyError" type="PopupPanel" parent="Panel/PanelContainer/v/MarginContainer/GridContainer/Properties"] +unique_name_in_owner = true +initial_position = 1 +size = Vector2i(400, 100) +theme_override_styles/panel = SubResource("StyleBoxFlat_hbbq5") + +[node name="Label" type="Label" parent="Panel/PanelContainer/v/MarginContainer/GridContainer/Properties/propertyError"] +offset_left = 10.0 +offset_top = 4.0 +offset_right = 390.0 +offset_bottom = 96.0 +theme_override_colors/font_color = Color(0.858824, 0, 0.109804, 1) +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="MarginContainer2" type="MarginContainer" parent="Panel/PanelContainer/v"] +layout_mode = 2 +size_flags_horizontal = 3 +theme_override_constants/margin_left = 4 +theme_override_constants/margin_right = 4 +theme_override_constants/margin_bottom = 4 + +[node name="HBoxContainer" type="HBoxContainer" parent="Panel/PanelContainer/v/MarginContainer2"] +layout_mode = 2 +size_flags_horizontal = 3 +alignment = 2 + +[node name="ProgressBar" type="ProgressBar" parent="Panel/PanelContainer/v/MarginContainer2/HBoxContainer"] +unique_name_in_owner = true +visible = false +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 + +[node name="progress_lbl" type="Label" parent="Panel/PanelContainer/v/MarginContainer2/HBoxContainer/ProgressBar"] +unique_name_in_owner = true +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 +clip_text = true + +[node name="btn_close" type="Button" parent="Panel/PanelContainer/v/MarginContainer2/HBoxContainer"] +custom_minimum_size = Vector2(200, 0) +layout_mode = 2 +text = "Close" + +[connection signal="close_requested" from="." to="." method="_on_btn_close_pressed"] +[connection signal="pressed" from="Panel/PanelContainer/v/MarginContainer/GridContainer/PanelContainer/VBoxContainer/btn_report_bug" to="." method="_on_btn_report_bug_pressed"] +[connection signal="pressed" from="Panel/PanelContainer/v/MarginContainer/GridContainer/PanelContainer/VBoxContainer/btn_request_feature" to="." method="_on_btn_request_feature_pressed"] +[connection signal="pressed" from="Panel/PanelContainer/v/MarginContainer/GridContainer/PanelContainer/VBoxContainer/btn_install_examples" to="." method="_on_btn_install_examples_pressed"] +[connection signal="pressed" from="Panel/PanelContainer/v/MarginContainer2/HBoxContainer/btn_close" to="." method="_on_btn_close_pressed"] diff --git a/addons/gdUnit4/src/ui/settings/logo.png b/addons/gdUnit4/src/ui/settings/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..12de79ff1a4ce83860ed4907ae5c7bd10a56d87a GIT binary patch literal 49775 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%0AKr(9Uc>BSL)Bn(%Dc$$Ky(%WMe% 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 void: + setup_editor_colors() + setup_fonts() + setup_supported_types() + load_template(GdUnitTestSuiteTemplate.TEMPLATE_ID_GD) + setup_tags_help() + + +func _notification(what :int) -> void: + if what == EditorSettings.NOTIFICATION_EDITOR_SETTINGS_CHANGED: + setup_fonts() + + +func setup_editor_colors() -> void: + if not Engine.is_editor_hint(): + return + var settings := EditorInterface.get_editor_settings() + var background_color :Color = settings.get_setting("text_editor/theme/highlighting/background_color") + var text_color :Color = settings.get_setting("text_editor/theme/highlighting/text_color") + var selection_color :Color = settings.get_setting("text_editor/theme/highlighting/selection_color") + + for e :CodeEdit in [_template_editor, _tags_editor]: + var editor :CodeEdit = e + editor.add_theme_color_override("background_color", background_color) + editor.add_theme_color_override("font_color", text_color) + editor.add_theme_color_override("font_readonly_color", text_color) + editor.add_theme_color_override("font_selected_color", selection_color) + setup_highlighter(editor, settings) + + +func setup_highlighter(editor :CodeEdit, settings :EditorSettings) -> void: + var highlighter := CodeHighlighter.new() + editor.set_syntax_highlighter(highlighter) + var number_color :Color = settings.get_setting("text_editor/theme/highlighting/number_color") + var symbol_color :Color = settings.get_setting("text_editor/theme/highlighting/symbol_color") + var function_color :Color = settings.get_setting("text_editor/theme/highlighting/function_color") + var member_variable_color :Color = settings.get_setting("text_editor/theme/highlighting/member_variable_color") + var comment_color :Color = settings.get_setting("text_editor/theme/highlighting/comment_color") + var keyword_color :Color = settings.get_setting("text_editor/theme/highlighting/keyword_color") + var base_type_color :Color = settings.get_setting("text_editor/theme/highlighting/base_type_color") + var annotation_color :Color = settings.get_setting("text_editor/theme/highlighting/gdscript/annotation_color") + + highlighter.clear_color_regions() + highlighter.clear_keyword_colors() + highlighter.add_color_region("#", "", comment_color, true) + highlighter.add_color_region("${", "}", Color.YELLOW) + highlighter.add_color_region("'", "'", Color.YELLOW) + highlighter.add_color_region("\"", "\"", Color.YELLOW) + highlighter.number_color = number_color + highlighter.symbol_color = symbol_color + highlighter.function_color = function_color + highlighter.member_variable_color = member_variable_color + highlighter.add_keyword_color("@", annotation_color) + highlighter.add_keyword_color("warning_ignore", annotation_color) + for word in gd_key_words: + highlighter.add_keyword_color(word, keyword_color) + for word in gdunit_key_words: + highlighter.add_keyword_color(word, base_type_color) + + +func setup_fonts() -> void: + if _template_editor: + GdUnitFonts.init_fonts(_template_editor) + var font_size := GdUnitFonts.init_fonts(_tags_editor) + _title_bar.size.y = font_size + 16 + _title_bar.custom_minimum_size.y = font_size + 16 + + +func setup_supported_types() -> void: + _selected_type.clear() + _selected_type.add_item("GD - GDScript", GdUnitTestSuiteTemplate.TEMPLATE_ID_GD) + _selected_type.add_item("C# - CSharpScript", GdUnitTestSuiteTemplate.TEMPLATE_ID_CS) + + +func setup_tags_help() -> void: + _tags_editor.set_text(GdUnitTestSuiteTemplate.load_tags(_selected_template)) + + +func load_template(template_id :int) -> void: + _selected_template = template_id + _template_editor.set_text(GdUnitTestSuiteTemplate.load_template(template_id)) + + +func _on_Restore_pressed() -> void: + _template_editor.set_text(GdUnitTestSuiteTemplate.default_template(_selected_template)) + GdUnitTestSuiteTemplate.reset_to_default(_selected_template) + _save_button.disabled = true + + +func _on_Save_pressed() -> void: + GdUnitTestSuiteTemplate.save_template(_selected_template, _template_editor.get_text()) + _save_button.disabled = true + + +func _on_Tags_pressed() -> void: + _show_tags.popup_centered_ratio(.5) + + +func _on_Editor_text_changed() -> void: + _save_button.disabled = false + + +func _on_SelectType_item_selected(index :int) -> void: + load_template(_selected_type.get_item_id(index)) + setup_tags_help() diff --git a/addons/gdUnit4/src/ui/templates/TestSuiteTemplate.tscn b/addons/gdUnit4/src/ui/templates/TestSuiteTemplate.tscn new file mode 100644 index 0000000..5ccc443 --- /dev/null +++ b/addons/gdUnit4/src/ui/templates/TestSuiteTemplate.tscn @@ -0,0 +1,127 @@ +[gd_scene load_steps=2 format=3 uid="uid://dte0m2endcgtu"] + +[ext_resource type="Script" path="res://addons/gdUnit4/src/ui/templates/TestSuiteTemplate.gd" id="1"] + +[node name="TestSuiteTemplate" type="MarginContainer"] +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 +script = ExtResource("1") + +[node name="VBoxContainer" type="VBoxContainer" parent="."] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 + +[node name="sub_category" type="Panel" parent="VBoxContainer"] +custom_minimum_size = Vector2(0, 30) +layout_mode = 2 +size_flags_horizontal = 3 + +[node name="Label" type="Label" parent="VBoxContainer/sub_category"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_left = 4.0 +offset_right = 4.0 +offset_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +text = "Test Suite Template +" + +[node name="EdiorLayout" type="VBoxContainer" parent="VBoxContainer"] +layout_mode = 2 +size_flags_vertical = 3 + +[node name="Editor" type="CodeEdit" parent="VBoxContainer/EdiorLayout"] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 + +[node name="MarginContainer" type="MarginContainer" parent="VBoxContainer/EdiorLayout/Editor"] +layout_mode = 1 +anchors_preset = 12 +anchor_top = 1.0 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_top = -31.0 +grow_horizontal = 2 +grow_vertical = 0 +size_flags_horizontal = 3 +size_flags_vertical = 3 + +[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer/EdiorLayout/Editor/MarginContainer"] +layout_mode = 2 +size_flags_vertical = 8 +alignment = 2 + +[node name="Tags" type="Button" parent="VBoxContainer/EdiorLayout/Editor/MarginContainer/HBoxContainer"] +layout_mode = 2 +tooltip_text = "Shows supported tags." +text = "Supported Tags" + +[node name="SelectType" type="OptionButton" parent="VBoxContainer/EdiorLayout/Editor/MarginContainer/HBoxContainer"] +layout_mode = 2 +tooltip_text = "Select the script type specific template." +item_count = 2 +selected = 0 +popup/item_0/text = "GD - GDScript" +popup/item_0/id = 1000 +popup/item_1/text = "C# - CSharpScript" +popup/item_1/id = 2000 + +[node name="Panel" type="MarginContainer" parent="VBoxContainer"] +layout_mode = 2 +size_flags_horizontal = 3 + +[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer/Panel"] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 +alignment = 2 + +[node name="Restore" type="Button" parent="VBoxContainer/Panel/HBoxContainer"] +layout_mode = 2 +text = "Restore" + +[node name="Save" type="Button" parent="VBoxContainer/Panel/HBoxContainer"] +layout_mode = 2 +disabled = true +text = "Save" + +[node name="Tags" type="PopupPanel" parent="."] +size = Vector2i(300, 100) +unresizable = false +content_scale_aspect = 4 + +[node name="MarginContainer" type="MarginContainer" parent="Tags"] +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_left = 4.0 +offset_top = 4.0 +offset_right = -856.0 +offset_bottom = -552.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="TextEdit" type="CodeEdit" parent="Tags/MarginContainer"] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 +editable = false +context_menu_enabled = false +shortcut_keys_enabled = false +virtual_keyboard_enabled = false + +[connection signal="text_changed" from="VBoxContainer/EdiorLayout/Editor" to="." method="_on_Editor_text_changed"] +[connection signal="pressed" from="VBoxContainer/EdiorLayout/Editor/MarginContainer/HBoxContainer/Tags" to="." method="_on_Tags_pressed"] +[connection signal="item_selected" from="VBoxContainer/EdiorLayout/Editor/MarginContainer/HBoxContainer/SelectType" to="." method="_on_SelectType_item_selected"] +[connection signal="pressed" from="VBoxContainer/Panel/HBoxContainer/Restore" to="." method="_on_Restore_pressed"] +[connection signal="pressed" from="VBoxContainer/Panel/HBoxContainer/Save" to="." method="_on_Save_pressed"] diff --git a/addons/gdUnit4/src/update/GdMarkDownReader.gd b/addons/gdUnit4/src/update/GdMarkDownReader.gd new file mode 100644 index 0000000..6a6594b --- /dev/null +++ b/addons/gdUnit4/src/update/GdMarkDownReader.gd @@ -0,0 +1,339 @@ +extends RefCounted + +const GdUnitUpdateClient = preload("res://addons/gdUnit4/src/update/GdUnitUpdateClient.gd") + +const FONT_H1 := 32 +const FONT_H2 := 28 +const FONT_H3 := 24 +const FONT_H4 := 20 +const FONT_H5 := 16 +const FONT_H6 := 12 + +const HORIZONTAL_RULE := "[img=4000x2]res://addons/gdUnit4/src/update/assets/horizontal-line2.png[/img]\n" +const HEADER_RULE := "[font_size=%d]$1[/font_size]\n" +const HEADER_CENTERED_RULE := "[font_size=%d][center]$1[/center][/font_size]\n" + +const image_download_folder := "res://addons/gdUnit4/tmp-update/" + +const exclude_font_size := "\b(?!(?:(font_size))\b)" + +var md_replace_patterns := [ + # horizontal rules + [regex("(?m)^[ ]{0,3}---$"), HORIZONTAL_RULE], + [regex("(?m)^[ ]{0,3}___$"), HORIZONTAL_RULE], + [regex("(?m)^[ ]{0,3}\\*\\*\\*$"), HORIZONTAL_RULE], + + # headers + [regex("(?m)^###### (.*)"), HEADER_RULE % FONT_H6], + [regex("(?m)^##### (.*)"), HEADER_RULE % FONT_H5], + [regex("(?m)^#### (.*)"), HEADER_RULE % FONT_H4], + [regex("(?m)^### (.*)"), HEADER_RULE % FONT_H3], + [regex("(?m)^## (.*)"), (HEADER_RULE + HORIZONTAL_RULE) % FONT_H2], + [regex("(?m)^# (.*)"), (HEADER_RULE + HORIZONTAL_RULE) % FONT_H1], + [regex("(?m)^(.+)=={2,}$"), HEADER_RULE % FONT_H1], + [regex("(?m)^(.+)--{2,}$"), HEADER_RULE % FONT_H2], + # html headers + [regex("

((.*?\\R?)+)<\\/h1>"), (HEADER_RULE + HORIZONTAL_RULE) % FONT_H1], + [regex("((.*?\\R?)+)<\\/h1>"), (HEADER_CENTERED_RULE + HORIZONTAL_RULE) % FONT_H1], + [regex("

((.*?\\R?)+)<\\/h2>"), (HEADER_RULE + HORIZONTAL_RULE) % FONT_H2], + [regex("((.*?\\R?)+)<\\/h2>"), (HEADER_CENTERED_RULE + HORIZONTAL_RULE) % FONT_H1], + [regex("

((.*?\\R?)+)<\\/h3>"), HEADER_RULE % FONT_H3], + [regex("((.*?\\R?)+)<\\/h3>"), HEADER_CENTERED_RULE % FONT_H3], + [regex("

((.*?\\R?)+)<\\/h4>"), HEADER_RULE % FONT_H4], + [regex("((.*?\\R?)+)<\\/h4>"), HEADER_CENTERED_RULE % FONT_H4], + [regex("
((.*?\\R?)+)<\\/h5>"), HEADER_RULE % FONT_H5], + [regex("((.*?\\R?)+)<\\/h5>"), HEADER_CENTERED_RULE % FONT_H5], + [regex("
((.*?\\R?)+)<\\/h6>"), HEADER_RULE % FONT_H6], + [regex("((.*?\\R?)+)<\\/h6>"), HEADER_CENTERED_RULE % FONT_H6], + + # asterics + #[regex("(\\*)"), "xxx$1xxx"], + + # extract/compile image references + [regex("!\\[(.*?)\\]\\[(.*?)\\]"), Callable(self, "process_image_references")], + # extract images with path and optional tool tip + [regex("!\\[(.*?)\\]\\((.*?)(( )+(.*?))?\\)"), Callable(self, "process_image")], + + # links + [regex("([!]|)\\[(.+)\\]\\(([^ ]+?)\\)"), "[url={\"url\":\"$3\"}]$2[/url]"], + # links with tool tip + [regex("([!]|)\\[(.+)\\]\\(([^ ]+?)( \"(.+)\")?\\)"), "[url={\"url\":\"$3\", \"tool_tip\":\"$5\"}]$2[/url]"], + + # embeded text + [regex("(?m)^[ ]{0,3}>(.*?)$"), "[img=50x14]res://addons/gdUnit4/src/update/assets/embedded.png[/img][i]$1[/i]"], + + # italic + bold font + [regex("[_]{3}(.*?)[_]{3}"), "[i][b]$1[/b][/i]"], + [regex("[\\*]{3}(.*?)[\\*]{3}"), "[i][b]$1[/b][/i]"], + # bold font + [regex("(.*?)<\\/b>"), "[b]$1[/b]"], + [regex("[_]{2}(.*?)[_]{2}"), "[b]$1[/b]"], + [regex("[\\*]{2}(.*?)[\\*]{2}"), "[b]$1[/b]"], + # italic font + [regex("(.*?)<\\/i>"), "[i]$1[/i]"], + [regex(exclude_font_size+"_(.*?)_"), "[i]$1[/i]"], + [regex("\\*(.*?)\\*"), "[i]$1[/i]"], + + # strikethrough font + [regex("(.*?)"), "[s]$1[/s]"], + [regex("~~(.*?)~~"), "[s]$1[/s]"], + [regex("~(.*?)~"), "[s]$1[/s]"], + + # handling lists + # using an image for dots as workaroud because list is not supported checked Godot 3.x + [regex("(?m)^[ ]{0,1}[*\\-+] (.*)$"), list_replace(0)], + [regex("(?m)^[ ]{2,3}[*\\-+] (.*)$"), list_replace(1)], + [regex("(?m)^[ ]{4,5}[*\\-+] (.*)$"), list_replace(2)], + [regex("(?m)^[ ]{6,7}[*\\-+] (.*)$"), list_replace(3)], + [regex("(?m)^[ ]{8,9}[*\\-+] (.*)$"), list_replace(4)], + + # code blocks, code blocks looks not like code blocks in richtext + [regex("```(javascript|python|shell|gdscript)([\\s\\S]*?\n)```"), code_block("$2", true)], + [regex("``([\\s\\S]*?)``"), code_block("$1")], + [regex("`([\\s\\S]*?)`{1,2}"), code_block("$1")], +] + +var _img_replace_regex := RegEx.new() +var _image_urls := PackedStringArray() +var _on_table_tag := false +var _client :GdUnitUpdateClient + + +func regex(pattern :String) -> RegEx: + var regex_ := RegEx.new() + var err := regex_.compile(pattern) + if err != OK: + push_error("error '%s' checked pattern '%s'" % [err, pattern]) + return null + return regex_ + + +func _init() -> void: + _img_replace_regex.compile("\\[img\\]((.*?))\\[/img\\]") + + +func set_http_client(client :GdUnitUpdateClient) -> void: + _client = client + + +func _notification(what :int) -> void: + if what == NOTIFICATION_PREDELETE: + # finally remove_at the downloaded images + for image in _image_urls: + DirAccess.remove_absolute(image) + DirAccess.remove_absolute(image + ".import") + + +func list_replace(indent :int) -> String: + var replace_pattern := "[img=12x12]res://addons/gdUnit4/src/update/assets/dot2.png[/img]" if indent %2 else "[img=12x12]res://addons/gdUnit4/src/update/assets/dot1.png[/img]" + replace_pattern += " $1" + + for index in indent: + replace_pattern = replace_pattern.insert(0, " ") + return replace_pattern + + +func code_block(replace :String, border :bool = false) -> String: + var cb := "[code][color=aqua][font_size=16]%s[/font_size][/color][/code]" % replace + if border: + return "[img=1400x14]res://addons/gdUnit4/src/update/assets/border_top.png[/img]"\ + + "[indent]" + cb + "[/indent]"\ + + "[img=1400x14]res://addons/gdUnit4/src/update/assets/border_bottom.png[/img]\n" + return cb + + +func to_bbcode(input :String) -> String: + input = process_tables(input) + + for pattern :Array in md_replace_patterns: + var regex_ :RegEx = pattern[0] + var bb_replace :Variant = pattern[1] + if bb_replace is Callable: + input = await bb_replace.call(regex_, input) + else: + input = regex_.sub(input, bb_replace, true) + return input + "\n" + + +func process_tables(input :String) -> String: + var bbcode := Array() + var lines := Array(input.split("\n")) + while not lines.is_empty(): + if is_table(lines[0]): + bbcode.append_array(parse_table(lines)) + continue + bbcode.append(lines.pop_front()) + return "\n".join(PackedStringArray(bbcode)) + + +class Table: + var _columns :int + var _rows := Array() + + class Row: + var _cells := PackedStringArray() + + func _init(cells :PackedStringArray, columns :int) -> void: + _cells = cells + for i in range(_cells.size(), columns): + _cells.append("") + + func to_bbcode(cell_sizes :PackedInt32Array, bold :bool) -> String: + var cells := PackedStringArray() + for cell_index in _cells.size(): + var cell :String = _cells[cell_index] + if cell.strip_edges() == "--": + cell = create_line(cell_sizes[cell_index]) + if bold: + cell = "[b]%s[/b]" % cell + cells.append("[cell]%s[/cell]" % cell) + return "|".join(cells) + + func create_line(length :int) -> String: + var line := "" + for i in length: + line += "-" + return line + + func _init(columns :int) -> void: + _columns = columns + + func parse_row(line :String) -> bool: + # is line containing cells? + if line.find("|") == -1: + return false + _rows.append(Row.new(line.split("|"), _columns)) + return true + + func calculate_max_cell_sizes() -> PackedInt32Array: + var cells_size := PackedInt32Array() + for column in _columns: + cells_size.append(0) + + for row_index in _rows.size(): + var row :Row = _rows[row_index] + for cell_index in row._cells.size(): + var cell_size :int = cells_size[cell_index] + var size := row._cells[cell_index].length() + if size > cell_size: + cells_size[cell_index] = size + return cells_size + + func to_bbcode() -> PackedStringArray: + var cell_sizes := calculate_max_cell_sizes() + var bb_code := PackedStringArray() + + bb_code.append("[table=%d]" % _columns) + for row_index in _rows.size(): + bb_code.append(_rows[row_index].to_bbcode(cell_sizes, row_index==0)) + bb_code.append("[/table]\n") + return bb_code + + +func parse_table(lines :Array) -> PackedStringArray: + var line :String = lines[0] + var table := Table.new(line.count("|") + 1) + while not lines.is_empty(): + line = lines.pop_front() + if not table.parse_row(line): + break + return table.to_bbcode() + + +func is_table(line :String) -> bool: + return line.find("|") != -1 + + +func open_table(line :String) -> String: + _on_table_tag = true + return "[table=%d]" % (line.count("|") + 1) + + +func close_table() -> String: + _on_table_tag = false + return "[/table]" + + +func extract_cells(line :String, bold := false) -> String: + var cells := "" + for cell in line.split("|"): + if bold: + cell = "[b]%s[/b]" % cell + cells += "[cell]%s[/cell]" % cell + return cells + + +func process_image_references(p_regex :RegEx, p_input :String) -> String: + # exists references? + var matches := p_regex.search_all(p_input) + if matches.is_empty(): + return p_input + # collect image references and remove_at it + var references := Dictionary() + var link_regex := regex("\\[(\\S+)\\]:(\\S+)([ ]\"(.*)\")?") + # create copy of original source to replace checked it + var input := p_input.replace("\r", "") + var extracted_references := p_input.replace("\r", "") + for reg_match in link_regex.search_all(input): + var line := reg_match.get_string(0) + "\n" + var ref := reg_match.get_string(1) + #var topl_tip = reg_match.get_string(4) + # collect reference and url + references[ref] = reg_match.get_string(2) + extracted_references = extracted_references.replace(line, "") + + # replace image references by collected url's + for reference_key :String in references.keys(): + var regex_key := regex("\\](\\[%s\\])" % reference_key) + for reg_match in regex_key.search_all(extracted_references): + var ref :String = reg_match.get_string(0) + var image_url :String = "](%s)" % references.get(reference_key) + extracted_references = extracted_references.replace(ref, image_url) + return extracted_references + + +func process_image(p_regex :RegEx, p_input :String) -> String: + var to_replace := PackedStringArray() + var tool_tips := PackedStringArray() + # find all matches + var matches := p_regex.search_all(p_input) + if matches.is_empty(): + return p_input + for reg_match in matches: + # grap the parts to replace and store temporay because a direct replace will distort the offsets + to_replace.append(p_input.substr(reg_match.get_start(0), reg_match.get_end(0))) + # grap optional tool tips + tool_tips.append(reg_match.get_string(5)) + # finally replace all findings + for replace in to_replace: + var re := p_regex.sub(replace, "[img]$2[/img]") + p_input = p_input.replace(replace, re) + return await _process_external_image_resources(p_input) + + +func _process_external_image_resources(input :String) -> String: + DirAccess.make_dir_recursive_absolute(image_download_folder) + # scan all img for external resources and download it + for value in _img_replace_regex.search_all(input): + if value.get_group_count() >= 1: + var image_url :String = value.get_string(1) + # if not a local resource we need to download it + if image_url.begins_with("http"): + if OS.is_stdout_verbose(): + prints("download image:", image_url) + var response := await _client.request_image(image_url) + if response.code() == 200: + var image := Image.new() + var error := image.load_png_from_buffer(response.body()) + if error != OK: + prints("Error creating image from response", error) + # replace characters where format characters + var new_url := image_download_folder + image_url.get_file().replace("_", "-") + if new_url.get_extension() != 'png': + new_url = new_url + '.png' + var err := image.save_png(new_url) + if err: + push_error("Can't save image to '%s'. Error: %s" % [new_url, error_string(err)]) + _image_urls.append(new_url) + input = input.replace(image_url, new_url) + return input diff --git a/addons/gdUnit4/src/update/GdUnitPatch.gd b/addons/gdUnit4/src/update/GdUnitPatch.gd new file mode 100644 index 0000000..daa20f7 --- /dev/null +++ b/addons/gdUnit4/src/update/GdUnitPatch.gd @@ -0,0 +1,20 @@ +class_name GdUnitPatch +extends RefCounted + +const PATCH_VERSION = "patch_version" + +var _version :GdUnit4Version + + +func _init(version_ :GdUnit4Version) -> void: + _version = version_ + + +func version() -> GdUnit4Version: + return _version + + +# this function needs to be implement +func execute() -> bool: + push_error("The function 'execute()' is not implemented at %s" % self) + return false diff --git a/addons/gdUnit4/src/update/GdUnitPatcher.gd b/addons/gdUnit4/src/update/GdUnitPatcher.gd new file mode 100644 index 0000000..d6d5048 --- /dev/null +++ b/addons/gdUnit4/src/update/GdUnitPatcher.gd @@ -0,0 +1,71 @@ +class_name GdUnitPatcher +extends RefCounted + + +const _base_dir := "res://addons/gdUnit4/src/update/patches/" + +var _patches := Dictionary() + + +func scan(current :GdUnit4Version) -> void: + _scan(_base_dir, current) + + +func _scan(scan_path :String, current :GdUnit4Version) -> void: + _patches = Dictionary() + var patch_paths := _collect_patch_versions(scan_path, current) + for path in patch_paths: + prints("scan for patches checked '%s'" % path) + _patches[path] = _scan_patches(path) + + +func patch_count() -> int: + var count := 0 + for key :String in _patches.keys(): + count += _patches[key].size() + return count + + +func execute() -> void: + for key :String in _patches.keys(): + for path :String in _patches[key]: + var patch :GdUnitPatch = load(key + "/" + path).new() + if patch: + prints("execute patch", patch.version(), patch.get_script().resource_path) + if not patch.execute(): + prints("error checked execution patch %s" % key + "/" + path) + + +func _collect_patch_versions(scan_path :String, current :GdUnit4Version) -> PackedStringArray: + if not DirAccess.dir_exists_absolute(scan_path): + return PackedStringArray() + var patches := Array() + var dir := DirAccess.open(scan_path) + if dir != null: + dir.list_dir_begin() # TODO GODOT4 fill missing arguments https://github.com/godotengine/godot/pull/40547 + var next := "." + while next != "": + next = dir.get_next() + if next.is_empty() or next == "." or next == "..": + continue + var version := GdUnit4Version.parse(next) + if version.is_greater(current): + patches.append(scan_path + next) + patches.sort() + return PackedStringArray(patches) + + +func _scan_patches(path :String) -> PackedStringArray: + var patches := Array() + var dir := DirAccess.open(path) + if dir != null: + dir.list_dir_begin() # TODOGODOT4 fill missing arguments https://github.com/godotengine/godot/pull/40547 + var next := "." + while next != "": + next = dir.get_next() + if next.is_empty() or next == "." or next == "..": + continue + patches.append(next) + # make sorted from lowest to high version + patches.sort() + return PackedStringArray(patches) diff --git a/addons/gdUnit4/src/update/GdUnitUpdate.gd b/addons/gdUnit4/src/update/GdUnitUpdate.gd new file mode 100644 index 0000000..7b7206c --- /dev/null +++ b/addons/gdUnit4/src/update/GdUnitUpdate.gd @@ -0,0 +1,223 @@ +@tool +extends ConfirmationDialog + +const GdUnitTools := preload("res://addons/gdUnit4/src/core/GdUnitTools.gd") +const GdUnitUpdateClient := preload("res://addons/gdUnit4/src/update/GdUnitUpdateClient.gd") + +@onready var _progress_content :RichTextLabel = %message +@onready var _progress_bar :TextureProgressBar = %progress + + +var _debug_mode := false +var _update_client :GdUnitUpdateClient +var _download_url :String + + +func _ready() -> void: + message_h4("Press 'Update' to start!", Color.GREEN) + init_progress(5) + + +func _process(_delta :float) -> void: + if _progress_content != null and _progress_content.is_visible_in_tree(): + _progress_content.queue_redraw() + + +func init_progress(max_value : int) -> void: + _progress_bar.max_value = max_value + _progress_bar.value = 1 + + +func setup(update_client :GdUnitUpdateClient, download_url :String) -> void: + _update_client = update_client + _download_url = download_url + + +func update_progress(message :String) -> void: + message_h4(message, Color.GREEN) + _progress_bar.value += 1 + if _debug_mode: + await get_tree().create_timer(3).timeout + await get_tree().create_timer(.2).timeout + + +func _colored(message :String, color :Color) -> String: + return "[color=#%s]%s[/color]" % [color.to_html(), message] + + +func message_h4(message :String, color :Color) -> void: + _progress_content.clear() + _progress_content.append_text("[font_size=16]%s[/font_size]" % _colored(message, color)) + + +func run_update() -> void: + get_cancel_button().disabled = true + get_ok_button().disabled = true + + await update_progress("Download Release ... [img=24x24]%s[/img]" % GdUnitUiTools.get_spinner()) + await download_release() + await update_progress("Extract update ... [img=24x24]%s[/img]" % GdUnitUiTools.get_spinner()) + var zip_file := temp_dir() + "/update.zip" + var tmp_path := create_temp_dir("update") + var result :Variant = extract_zip(zip_file, tmp_path) + if result == null: + await update_progress("Update failed!") + await get_tree().create_timer(3).timeout + queue_free() + return + + await update_progress("Uninstall GdUnit4 ... [img=24x24]%s[/img]" % GdUnitUiTools.get_spinner()) + disable_gdUnit() + if not _debug_mode: + delete_directory("res://addons/gdUnit4/") + # give editor time to react on deleted files + await get_tree().create_timer(1).timeout + + await update_progress("Install new GdUnit4 version ...") + if _debug_mode: + copy_directory(tmp_path, "res://debug") + else: + copy_directory(tmp_path, "res://") + + await update_progress("New GdUnit version successfully installed, Restarting Godot ...") + await get_tree().create_timer(3).timeout + enable_gdUnit() + hide() + delete_directory("res://addons/.gdunit_update") + restart_godot() + + +func restart_godot() -> void: + prints("Force restart Godot") + EditorInterface.restart_editor(true) + + +func enable_gdUnit() -> void: + var enabled_plugins := PackedStringArray() + if ProjectSettings.has_setting("editor_plugins/enabled"): + enabled_plugins = ProjectSettings.get_setting("editor_plugins/enabled") + if not enabled_plugins.has("res://addons/gdUnit4/plugin.cfg"): + enabled_plugins.append("res://addons/gdUnit4/plugin.cfg") + ProjectSettings.set_setting("editor_plugins/enabled", enabled_plugins) + ProjectSettings.save() + + +func disable_gdUnit() -> void: + EditorInterface.set_plugin_enabled("gdUnit4", false) + + +const GDUNIT_TEMP := "user://tmp" + +func temp_dir() -> String: + if not DirAccess.dir_exists_absolute(GDUNIT_TEMP): + DirAccess.make_dir_recursive_absolute(GDUNIT_TEMP) + return GDUNIT_TEMP + + +func create_temp_dir(folder_name :String) -> String: + var new_folder := temp_dir() + "/" + folder_name + delete_directory(new_folder) + if not DirAccess.dir_exists_absolute(new_folder): + DirAccess.make_dir_recursive_absolute(new_folder) + return new_folder + + +func delete_directory(path :String, only_content := false) -> void: + var dir := DirAccess.open(path) + if dir != null: + dir.list_dir_begin() + var file_name := "." + while file_name != "": + file_name = dir.get_next() + if file_name.is_empty() or file_name == "." or file_name == "..": + continue + var next := path + "/" +file_name + if dir.current_is_dir(): + delete_directory(next) + else: + # delete file + var err := dir.remove(next) + if err: + push_error("Delete %s failed: %s" % [next, error_string(err)]) + if not only_content: + var err := dir.remove(path) + if err: + push_error("Delete %s failed: %s" % [path, error_string(err)]) + + +func copy_directory(from_dir :String, to_dir :String) -> bool: + if not DirAccess.dir_exists_absolute(from_dir): + push_error("Source directory not found '%s'" % from_dir) + return false + # check if destination exists + if not DirAccess.dir_exists_absolute(to_dir): + # create it + var err := DirAccess.make_dir_recursive_absolute(to_dir) + if err != OK: + push_error("Can't create directory '%s'. Error: %s" % [to_dir, error_string(err)]) + return false + var source_dir := DirAccess.open(from_dir) + var dest_dir := DirAccess.open(to_dir) + if source_dir != null: + source_dir.list_dir_begin() + var next := "." + + while next != "": + next = source_dir.get_next() + if next == "" or next == "." or next == "..": + continue + var source := source_dir.get_current_dir() + "/" + next + var dest := dest_dir.get_current_dir() + "/" + next + if source_dir.current_is_dir(): + copy_directory(source + "/", dest) + continue + var err := source_dir.copy(source, dest) + if err != OK: + push_error("Error checked copy file '%s' to '%s'" % [source, dest]) + return false + return true + else: + push_error("Directory not found: " + from_dir) + return false + + +func extract_zip(zip_package :String, dest_path :String) -> Variant: + var zip: ZIPReader = ZIPReader.new() + var err := zip.open(zip_package) + if err != OK: + push_error("Extracting `%s` failed! Please collect the error log and report this. Error Code: %s" % [zip_package, err]) + return null + var zip_entries: PackedStringArray = zip.get_files() + # Get base path and step over archive folder + var archive_path := zip_entries[0] + zip_entries.remove_at(0) + + for zip_entry in zip_entries: + var new_file_path: String = dest_path + "/" + zip_entry.replace(archive_path, "") + if zip_entry.ends_with("/"): + DirAccess.make_dir_recursive_absolute(new_file_path) + continue + var file: FileAccess = FileAccess.open(new_file_path, FileAccess.WRITE) + file.store_buffer(zip.read_file(zip_entry)) + zip.close() + return dest_path + + +func download_release() -> void: + var zip_file := GdUnitFileAccess.temp_dir() + "/update.zip" + var response :GdUnitUpdateClient.HttpResponse + if _debug_mode: + response = GdUnitUpdateClient.HttpResponse.new(200, PackedByteArray()) + zip_file = "res://update.zip" + else: + response = await _update_client.request_zip_package(_download_url, zip_file) + _update_client.queue_free() + if response.code() != 200: + push_warning("Update information cannot be retrieved from GitHub! \n Error code: %d : %s" % [response.code(), response.response()]) + message_h4("Update failed! Try it later again.", Color.RED) + await get_tree().create_timer(3).timeout + return + + +func _on_confirmed() -> void: + await run_update() diff --git a/addons/gdUnit4/src/update/GdUnitUpdate.tscn b/addons/gdUnit4/src/update/GdUnitUpdate.tscn new file mode 100644 index 0000000..81fff38 --- /dev/null +++ b/addons/gdUnit4/src/update/GdUnitUpdate.tscn @@ -0,0 +1,74 @@ +[gd_scene load_steps=3 format=3 uid="uid://2eahgaw88y6q"] + +[ext_resource type="Script" path="res://addons/gdUnit4/src/update/GdUnitUpdate.gd" id="1"] +[ext_resource type="Texture2D" uid="uid://cwxuep3lbnu3p" path="res://addons/gdUnit4/src/update/assets/progress-background.png" id="2_q6rkd"] + +[node name="GdUnitUpdate" type="ConfirmationDialog"] +disable_3d = true +title = "Update GdUnit4 to new version" +size = Vector2i(1000, 141) +visible = true +extend_to_title = true +min_size = Vector2i(1000, 140) +ok_button_text = "Update" +dialog_hide_on_ok = false +script = ExtResource("1") + +[node name="UpdateProgress" type="PanelContainer" parent="."] +custom_minimum_size = Vector2(0, 80) +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_left = 8.0 +offset_top = 8.0 +offset_right = -8.0 +offset_bottom = -49.0 +grow_horizontal = 2 +grow_vertical = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 + +[node name="VBoxContainer" type="VBoxContainer" parent="UpdateProgress"] +layout_mode = 2 + +[node name="Panel" type="Panel" parent="UpdateProgress/VBoxContainer"] +custom_minimum_size = Vector2(0, 40) +layout_mode = 2 + +[node name="message" type="RichTextLabel" parent="UpdateProgress/VBoxContainer/Panel"] +unique_name_in_owner = true +custom_minimum_size = Vector2(400, 40) +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +bbcode_enabled = true +fit_content = true +scroll_active = false +shortcut_keys_enabled = false + +[node name="Panel2" type="Panel" parent="UpdateProgress/VBoxContainer"] +custom_minimum_size = Vector2(0, 40) +layout_mode = 2 + +[node name="progress" type="TextureProgressBar" parent="UpdateProgress/VBoxContainer/Panel2"] +unique_name_in_owner = true +clip_contents = true +custom_minimum_size = Vector2(980, 30) +layout_mode = 0 +offset_left = 2.0 +offset_right = 982.0 +offset_bottom = 36.0 +auto_translate = false +localize_numeral_system = false +min_value = 1.0 +max_value = 5.0 +value = 1.0 +rounded = true +nine_patch_stretch = true +texture_progress = ExtResource("2_q6rkd") +texture_progress_offset = Vector2(0, 2) + +[connection signal="confirmed" from="." to="." method="_on_confirmed"] diff --git a/addons/gdUnit4/src/update/GdUnitUpdateClient.gd b/addons/gdUnit4/src/update/GdUnitUpdateClient.gd new file mode 100644 index 0000000..a3f56ce --- /dev/null +++ b/addons/gdUnit4/src/update/GdUnitUpdateClient.gd @@ -0,0 +1,83 @@ +@tool +extends Node + +signal request_completed(response :HttpResponse) + +class HttpResponse: + var _code :int + var _body :PackedByteArray + + + func _init(code_ :int, body_ :PackedByteArray) -> void: + _code = code_ + _body = body_ + + func code() -> int: + return _code + + func response() -> Variant: + var test_json_conv := JSON.new() + test_json_conv.parse(_body.get_string_from_utf8()) + return test_json_conv.get_data() + + func body() -> PackedByteArray: + return _body + +var _http_request :HTTPRequest = HTTPRequest.new() + + +func _ready() -> void: + add_child(_http_request) + _http_request.request_completed.connect(_on_request_completed) + + +func _notification(what :int) -> void: + if what == NOTIFICATION_PREDELETE: + if is_instance_valid(_http_request): + _http_request.queue_free() + + +#func list_tags() -> void: +# _http_request.connect("request_completed",Callable(self,"_response_request_tags")) +# var error = _http_request.request("https://api.github.com/repos/MikeSchulze/gdUnit4/tags") +# if error != OK: +# push_error("An error occurred in the HTTP request.") + + +func request_latest_version() -> HttpResponse: + var error := _http_request.request("https://api.github.com/repos/MikeSchulze/gdUnit4/tags") + if error != OK: + var message := "request_latest_version failed: %d" % error + return HttpResponse.new(error, message.to_utf8_buffer()) + return await self.request_completed + + +func request_releases() -> HttpResponse: + var error := _http_request.request("https://api.github.com/repos/MikeSchulze/gdUnit4/releases") + if error != OK: + var message := "request_releases failed: %d" % error + return HttpResponse.new(error, message.to_utf8_buffer()) + return await self.request_completed + + +func request_image(url :String) -> HttpResponse: + var error := _http_request.request(url) + if error != OK: + var message := "request_image failed: %d" % error + return HttpResponse.new(error, message.to_utf8_buffer()) + return await self.request_completed + + +func request_zip_package(url :String, file :String) -> HttpResponse: + _http_request.set_download_file(file) + var error := _http_request.request(url) + if error != OK: + var message := "request_zip_package failed: %d" % error + return HttpResponse.new(error, message.to_utf8_buffer()) + return await self.request_completed + + +func _on_request_completed(_result :int, response_code :int, _headers :PackedStringArray, body :PackedByteArray) -> void: + if _http_request.get_http_client_status() != HTTPClient.STATUS_DISCONNECTED: + _http_request.set_download_file("") + request_completed.emit(HttpResponse.new(response_code, body)) diff --git a/addons/gdUnit4/src/update/GdUnitUpdateNotify.gd b/addons/gdUnit4/src/update/GdUnitUpdateNotify.gd new file mode 100644 index 0000000..67acabb --- /dev/null +++ b/addons/gdUnit4/src/update/GdUnitUpdateNotify.gd @@ -0,0 +1,177 @@ +@tool +extends Window + +#signal request_completed(response) + +const GdMarkDownReader = preload("res://addons/gdUnit4/src/update/GdMarkDownReader.gd") +const GdUnitUpdateClient = preload("res://addons/gdUnit4/src/update/GdUnitUpdateClient.gd") + +@onready var _md_reader :GdMarkDownReader = GdMarkDownReader.new() +@onready var _update_client :GdUnitUpdateClient = $GdUnitUpdateClient +@onready var _header :Label = $Panel/GridContainer/PanelContainer/header +@onready var _update_button :Button = $Panel/GridContainer/Panel/HBoxContainer/update +@onready var _content :RichTextLabel = $Panel/GridContainer/PanelContainer2/ScrollContainer/MarginContainer/content + +var _debug_mode := false +var _patcher :GdUnitPatcher = GdUnitPatcher.new() +var _current_version := GdUnit4Version.current() +var _download_zip_url :String + + +func _ready() -> void: + _update_button.disabled = true + _md_reader.set_http_client(_update_client) + GdUnitFonts.init_fonts(_content) + await request_releases() + + +func request_releases() -> void: + if _debug_mode: + _header.text = "A new version 'v4.1.0_debug' is available" + await show_update() + return + + # wait 20s to allow the editor to initialize itself + await get_tree().create_timer(20).timeout + var response :GdUnitUpdateClient.HttpResponse = await _update_client.request_latest_version() + if response.code() != 200: + push_warning("Update information cannot be retrieved from GitHub! \n %s" % response.response()) + return + var latest_version := extract_latest_version(response) + # if same version exit here no update need + if latest_version.is_greater(_current_version): + _patcher.scan(_current_version) + _header.text = "A new version '%s' is available" % latest_version + _download_zip_url = extract_zip_url(response) + await show_update() + + +func _colored(message_ :String, color :Color) -> String: + return "[color=#%s]%s[/color]" % [color.to_html(), message_] + + +func message_h4(message_ :String, color :Color, clear := true) -> void: + if clear: + _content.clear() + _content.append_text("[font_size=16]%s[/font_size]" % _colored(message_, color)) + + +func message(message_ :String, color :Color) -> void: + _content.clear() + _content.append_text(_colored(message_, color)) + + +func _process(_delta :float) -> void: + if _content != null and _content.is_visible_in_tree(): + _content.queue_redraw() + + +func show_update() -> void: + message_h4("\n\n\nRequest release infos ... [img=24x24]%s[/img]" % GdUnitUiTools.get_spinner(), Color.SNOW) + popup_centered_ratio(.5) + prints("Scan for GdUnit4 Update ...") + var content :String + if _debug_mode: + var template := FileAccess.open("res://addons/gdUnit4/test/update/resources/markdown.txt", FileAccess.READ).get_as_text() + content = await _md_reader.to_bbcode(template) + else: + var response :GdUnitUpdateClient.HttpResponse = await _update_client.request_releases() + if response.code() == 200: + content = await extract_releases(response, _current_version) + else: + message_h4("\n\n\nError checked request available releases!", Color.RED) + return + + # finally force rescan to import images as textures + if Engine.is_editor_hint(): + await rescan() + message(content, Color.DODGER_BLUE) + _update_button.set_disabled(false) + + +func extract_latest_version(response :GdUnitUpdateClient.HttpResponse) -> GdUnit4Version: + var body :Array = response.response() + return GdUnit4Version.parse(body[0]["name"]) + + +func extract_zip_url(response :GdUnitUpdateClient.HttpResponse) -> String: + var body :Array = response.response() + return body[0]["zipball_url"] + + +func extract_releases(response :GdUnitUpdateClient.HttpResponse, current_version :GdUnit4Version) -> String: + await get_tree().process_frame + var result := "" + for release :Dictionary in response.response(): + if GdUnit4Version.parse(release["tag_name"]).equals(current_version): + break + var release_description :String = release["body"] + result += await _md_reader.to_bbcode(release_description) + return result + + +func rescan() -> void: + if Engine.is_editor_hint(): + if OS.is_stdout_verbose(): + prints(".. reimport release resources") + var fs := EditorInterface.get_resource_filesystem() + fs.scan() + while fs.is_scanning(): + if OS.is_stdout_verbose(): + progressBar(fs.get_scanning_progress() * 100 as int) + await Engine.get_main_loop().process_frame + await Engine.get_main_loop().process_frame + await get_tree().create_timer(1).timeout + + +func progressBar(p_progress :int) -> void: + if p_progress < 0: + p_progress = 0 + if p_progress > 100: + p_progress = 100 + printraw("scan [%-50s] %-3d%%\r" % ["".lpad(int(p_progress/2.0), "#").rpad(50, "-"), p_progress]) + + +func _on_update_pressed() -> void: + _update_button.set_disabled(true) + # close all opend scripts before start the update + if not _debug_mode: + ScriptEditorControls.close_open_editor_scripts() + # copy update source to a temp because the update is deleting the whole gdUnit folder + DirAccess.make_dir_absolute("res://addons/.gdunit_update") + DirAccess.copy_absolute("res://addons/gdUnit4/src/update/GdUnitUpdate.tscn", "res://addons/.gdunit_update/GdUnitUpdate.tscn") + DirAccess.copy_absolute("res://addons/gdUnit4/src/update/GdUnitUpdate.gd", "res://addons/.gdunit_update/GdUnitUpdate.gd") + var source := FileAccess.open("res://addons/gdUnit4/src/update/GdUnitUpdate.tscn", FileAccess.READ) + var content := source.get_as_text().replace("res://addons/gdUnit4/src/update/GdUnitUpdate.gd", "res://addons/.gdunit_update/GdUnitUpdate.gd") + var dest := FileAccess.open("res://addons/.gdunit_update/GdUnitUpdate.tscn", FileAccess.WRITE) + dest.store_string(content) + hide() + var update :Variant = load("res://addons/.gdunit_update/GdUnitUpdate.tscn").instantiate() + update.setup(_update_client, _download_zip_url) + Engine.get_main_loop().root.add_child(update) + update.popup_centered() + + +func _on_show_next_toggled(enabled :bool) -> void: + GdUnitSettings.set_update_notification(enabled) + + +func _on_cancel_pressed() -> void: + hide() + + +func _on_content_meta_clicked(meta :String) -> void: + var properties :Variant = str_to_var(meta) + if properties.has("url"): + OS.shell_open(properties.get("url")) + + +func _on_content_meta_hover_started(meta :String) -> void: + var properties :Variant = str_to_var(meta) + if properties.has("tool_tip"): + _content.set_tooltip_text(properties.get("tool_tip")) + + +@warning_ignore("unused_parameter") +func _on_content_meta_hover_ended(meta :String) -> void: + _content.set_tooltip_text("") diff --git a/addons/gdUnit4/src/update/GdUnitUpdateNotify.tscn b/addons/gdUnit4/src/update/GdUnitUpdateNotify.tscn new file mode 100644 index 0000000..11993eb --- /dev/null +++ b/addons/gdUnit4/src/update/GdUnitUpdateNotify.tscn @@ -0,0 +1,114 @@ +[gd_scene load_steps=3 format=3 uid="uid://0xyeci1tqebj"] + +[ext_resource type="Script" path="res://addons/gdUnit4/src/update/GdUnitUpdateNotify.gd" id="1_112wo"] +[ext_resource type="Script" path="res://addons/gdUnit4/src/update/GdUnitUpdateClient.gd" id="2_18asx"] + +[node name="Control" type="Window"] +disable_3d = true +gui_embed_subwindows = true +initial_position = 1 +title = "GdUnit Update Notification" +size = Vector2i(800, 400) +visible = false +wrap_controls = true +transient = true +exclusive = true +min_size = Vector2i(800, 400) +script = ExtResource("1_112wo") + +[node name="GdUnitUpdateClient" type="Node" parent="."] +script = ExtResource("2_18asx") + +[node name="Panel" type="Panel" parent="."] +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="GridContainer" type="VBoxContainer" parent="Panel"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 +alignment = 1 + +[node name="PanelContainer" type="MarginContainer" parent="Panel/GridContainer"] +layout_mode = 2 +theme_override_constants/margin_left = 4 +theme_override_constants/margin_top = 4 +theme_override_constants/margin_right = 4 +theme_override_constants/margin_bottom = 4 + +[node name="header" type="Label" parent="Panel/GridContainer/PanelContainer"] +layout_mode = 2 +size_flags_horizontal = 9 + +[node name="PanelContainer2" type="PanelContainer" parent="Panel/GridContainer"] +layout_mode = 2 +size_flags_vertical = 3 + +[node name="ScrollContainer" type="ScrollContainer" parent="Panel/GridContainer/PanelContainer2"] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 + +[node name="MarginContainer" type="MarginContainer" parent="Panel/GridContainer/PanelContainer2/ScrollContainer"] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 +theme_override_constants/margin_left = 4 +theme_override_constants/margin_top = 4 +theme_override_constants/margin_right = 4 +theme_override_constants/margin_bottom = 4 + +[node name="content" type="RichTextLabel" parent="Panel/GridContainer/PanelContainer2/ScrollContainer/MarginContainer"] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 +bbcode_enabled = true + +[node name="Panel" type="MarginContainer" parent="Panel/GridContainer"] +layout_mode = 2 +size_flags_vertical = 4 +theme_override_constants/margin_left = 4 +theme_override_constants/margin_top = 4 +theme_override_constants/margin_right = 4 +theme_override_constants/margin_bottom = 4 + +[node name="HBoxContainer" type="HBoxContainer" parent="Panel/GridContainer/Panel"] +use_parent_material = true +layout_mode = 2 +theme_override_constants/separation = 4 + +[node name="show_next" type="CheckBox" parent="Panel/GridContainer/Panel/HBoxContainer"] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 4 +text = "show next time" + +[node name="update" type="Button" parent="Panel/GridContainer/Panel/HBoxContainer"] +custom_minimum_size = Vector2(100, 40) +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 4 +disabled = true +text = "Update" + +[node name="close" type="Button" parent="Panel/GridContainer/Panel/HBoxContainer"] +custom_minimum_size = Vector2(100, 40) +layout_mode = 2 +size_flags_horizontal = 10 +size_flags_vertical = 4 +text = "Close" + +[connection signal="meta_clicked" from="Panel/GridContainer/PanelContainer2/ScrollContainer/MarginContainer/content" to="." method="_on_content_meta_clicked"] +[connection signal="meta_hover_ended" from="Panel/GridContainer/PanelContainer2/ScrollContainer/MarginContainer/content" to="." method="_on_content_meta_hover_ended"] +[connection signal="meta_hover_started" from="Panel/GridContainer/PanelContainer2/ScrollContainer/MarginContainer/content" to="." method="_on_content_meta_hover_started"] +[connection signal="toggled" from="Panel/GridContainer/Panel/HBoxContainer/show_next" to="." method="_on_show_next_toggled"] +[connection signal="pressed" from="Panel/GridContainer/Panel/HBoxContainer/update" to="." method="_on_update_pressed"] +[connection signal="pressed" from="Panel/GridContainer/Panel/HBoxContainer/close" to="." method="_on_cancel_pressed"] diff --git a/addons/gdUnit4/src/update/assets/border_bottom.png b/addons/gdUnit4/src/update/assets/border_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..aa16bb72598cb6f1c703257f4fb38bd64aa5bc8d GIT binary patch literal 1757 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 M07*qoM6N<$g8z+L0RR91 literal 0 HcmV?d00001 diff --git a/addons/gdUnit4/src/update/assets/dot1.png.import b/addons/gdUnit4/src/update/assets/dot1.png.import new file mode 100644 index 0000000..f01f709 --- /dev/null +++ b/addons/gdUnit4/src/update/assets/dot1.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ce2eojg0pwpov" +path="res://.godot/imported/dot1.png-380baf1b5247addda93bce3c799aa4e7.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://addons/gdUnit4/src/update/assets/dot1.png" +dest_files=["res://.godot/imported/dot1.png-380baf1b5247addda93bce3c799aa4e7.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/addons/gdUnit4/src/update/assets/dot2.png b/addons/gdUnit4/src/update/assets/dot2.png new file mode 100644 index 0000000000000000000000000000000000000000..4a744986cde29235547d0252db909b92a7e962f1 GIT binary patch literal 883 zcmV-(1C0EMP)@lpPePF)v>>8_Plb8v5AiZ!A1sQ{7nz6% z^+g|QDI5omL|SiHlTLauHK)l;a?Z(4cK6v!wmKjM{oeLseIM)l)?O0)gJQ7=v$L~s zcz6h7V`EdLQt72^Hd`7Fhfu54j*gFyzoL|WUnmq{Z*LDyPf!0Ms*eP0+XlyRBCD&b z?=LSezco5Kin1(o#+cOW^<*Kuv$OM2r_;IZx~}_(CnXXI==b}OPN$!&R4Vu8=H?Q< z?{^%>Ic1Dpa?S&)s%CXvztLPp1CX?|2;Ah|Wf6z3oCnh%x<5e}2$rNQ-M#fkd03ISDyH5TW2qFqgBoc{$ zu%n7SGsZww)gWU`L&X1NBccodAMV$Z6oW*B2nF~*Gl5xAi!$~dJo z+HSYOb=~`NyO&|a^nbi3UgBHjuHgRl4d{bxrakAnZoxFouw_|8&+|qCfq*A% zY;1rm%g|^vis^LvUb$ROL3CWo=;9rK9MBp_WAjF*KwS`uTeCJ2?S!X znA2{z-!x70PPJNnQP=fxQTIHrP6+uL5v`Gt5r{^k;&K51;7_G{#P;7*2HgMv002ov JPDHLkV1hPknQj08 literal 0 HcmV?d00001 diff --git a/addons/gdUnit4/src/update/assets/dot2.png.import b/addons/gdUnit4/src/update/assets/dot2.png.import new file mode 100644 index 0000000..f1e1017 --- /dev/null +++ b/addons/gdUnit4/src/update/assets/dot2.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cvwa5lg3qj0e2" +path="res://.godot/imported/dot2.png-86a9db80ef4413e353c4339ad8f68a5f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://addons/gdUnit4/src/update/assets/dot2.png" +dest_files=["res://.godot/imported/dot2.png-86a9db80ef4413e353c4339ad8f68a5f.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/addons/gdUnit4/src/update/assets/embedded.png b/addons/gdUnit4/src/update/assets/embedded.png new file mode 100644 index 0000000000000000000000000000000000000000..15cb9ab0b6eca8d6a4394a33bb8fd646a96449e4 GIT binary patch literal 287 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

41`eR`3l$Vv=zMNJq(73Y|ij<8OWC=ZbCZutR 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 MmDnSJgEZ}b0mzqS2><{9 literal 0 HcmV?d00001 diff --git a/addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-Bold.ttf.import b/addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-Bold.ttf.import new file mode 100644 index 0000000..13b5eac --- /dev/null +++ b/addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-Bold.ttf.import @@ -0,0 +1,34 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://dgpj1y3a73vc" +path="res://.godot/imported/RobotoMono-Bold.ttf-ea008af97d359b7630bd271235703cae.fontdata" + +[deps] + +source_file="res://addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-Bold.ttf" +dest_files=["res://.godot/imported/RobotoMono-Bold.ttf-ea008af97d359b7630bd271235703cae.fontdata"] + +[params] + +Rendering=null +antialiasing=1 +generate_mipmaps=false +disable_embedded_bitmaps=true +multichannel_signed_distance_field=false +msdf_pixel_range=8 +msdf_size=48 +allow_system_fallback=true +force_autohinter=false +hinting=1 +subpixel_positioning=1 +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-BoldItalic.ttf b/addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-BoldItalic.ttf new file mode 100644 index 0000000000000000000000000000000000000000..4bfe29ae89075e46bc813f4530cb3d6a9c5a5ae8 GIT binary patch literal 94148 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

8H^QD9=0*hH)U-KYUYGJwz2G~l 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 literal 0 HcmV?d00001 diff --git a/addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-BoldItalic.ttf.import b/addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-BoldItalic.ttf.import new file mode 100644 index 0000000..361617a --- /dev/null +++ b/addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-BoldItalic.ttf.import @@ -0,0 +1,34 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://cnrsmyjdnlikm" +path="res://.godot/imported/RobotoMono-BoldItalic.ttf-6e10905211cda810d470782293480777.fontdata" + +[deps] + +source_file="res://addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-BoldItalic.ttf" +dest_files=["res://.godot/imported/RobotoMono-BoldItalic.ttf-6e10905211cda810d470782293480777.fontdata"] + +[params] + +Rendering=null +antialiasing=1 +generate_mipmaps=false +disable_embedded_bitmaps=true +multichannel_signed_distance_field=false +msdf_pixel_range=8 +msdf_size=48 +allow_system_fallback=true +force_autohinter=false +hinting=1 +subpixel_positioning=1 +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-ExtraLight.ttf b/addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-ExtraLight.ttf new file mode 100644 index 0000000000000000000000000000000000000000..d5358845531f601bdf67156a2271a656bb2fa408 GIT binary patch literal 87788 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�?D37n?91#G?aGd zI)+$v<6t{b7EoxRY(cQ#At5225(|)!P#363AQlKw7A%ku{{XQchaK$;$qrU#_y0cmrM;u6JW6SHQ|;1p=x(Aa5&)V&@; zhwLyE%kI>Bt$OErtIlhOXPRp~+ikVmtwz7q$Pe1_zDLd((A4SU^>)8-qS?I$GH|8c zvr+r#Dpl#io?P6Mi+g20I$qh!?bY`?y?(c|zuUAmWxdYI9v_dg$H$}W@$vAM%lY_Y z5i$YtmX~s*2{twz_IIt3jl*GU<*IgT)wYAMcCnhcj3&);YtK~&@rHHDSFBk`sEhSy z{YG;Kr&PCIE=+-u*w}b6JOnlujsWD=Q|s1KO0FMXw?4XVBhfjxnc8DBwa4b6J#w4L zqPfk{{kBtkY^V0vKD5W&_UO7x$+dZrJst=NptbX2f1L1>6~z?y)1<|~XR7e3~%YNHIkic{%B!wezBmnn?D^i%Z%>VSN}T zTfdlMmNqb-rkC7{9FwzYhN;=aoNP=vIZEEiHEGtV*N>YU9PNL*6pGHS&;brIwMgayzn6Yv;vNHIba{j1g8FUKnAvT9&%+#T1XV z*$t=a5TFfzc^yvg2Qgb-+ZvM zow|5tGbRi+J|FXqfhIOGWeAfskddQ8n7oY61P~_U&8JS+_xJ1LXAj0V4)EoHVN9Ig z?Mz$%H4)5&zuSTa zYX11%!9)YdX`>2JZatf}Tf-9%s%IU4)N(%lI zL^%deCFd#VWrTvhf=In}oTqi3f<{lluBTvEZ!lL@a9GxUWd)TCkVnraK`$awnc=V(QUge{ z$O{=xLK>nM4QQ0YT&Hl>9PDs-O((HsZJH4=G_Y+e1 zHR0EUPnw5$;n##;6FzAl=7nDqeogoTe<%IJb;7R+pZ?~B^fyT1lP01s`+ed2!Y6IS zyzKXd?+f1-zAyWI+3yRV{_KVHXGqyke@0*S)1T27KK&Ve*-yHPzVPYa=nJ2IjlS^d z*XYZB(p)bj&4rZx^mFuOKm8ni*-t-5U-r|_(U<-7bM$3D{TzMSPe1oU`Z=WRr(dHl zdn4gRvX_32d9$}%8hnnd8E(m~ncXEvKZexvLO(>G&x50%l^p#H(r_RRr{sA5AoZM5 z4?ItrU(@w#>eH{VUe7Q6ujE#Rx2k=X?R=r*~dziCPjEs-n&HVN++135~=2!nYBYXcfH<5vT z8F|v%$gRGFjOlxpVSNQz(+`kmeII$#7m;iI7+KRe-}(tMuOA_YdJ`GcPc4V~8ZxMH z2KEc&Vn0VN^)uyC?;x8R=Tg5yHuVkUX73_9`xdgaUn8^nCi1G^AhY@{a;o1Uw|Wbi z)pw9rjkC6IBe(iJva3HJ*Ln{*T;^DRMwa!zYk645|69Ww<2O*(u!z4E+}AVs<4|dH z4!w6#yRwXmhc8jvatC!Q8>nvi5%o7ep<1?KH4<&qNBoWoraw??^Bihz{zOg7U#S1Q zg$mFkncHL2s7ZMp^(c#|&3F*CB_E=$#G%F&)g!26eR%97{!g}3sQkExx{q_HK-n7G zMxDt;RF3|FO#1VgUy)0H0hJi=*VxCP-!c35q0IO*_(CamzE;29Ms*Bo{4qCyfpJvF Ryb2N5OvmdosFK0Ie*@7}kFNj# literal 0 HcmV?d00001 diff --git a/addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-Italic.ttf.import b/addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-Italic.ttf.import new file mode 100644 index 0000000..4da9f15 --- /dev/null +++ b/addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-Italic.ttf.import @@ -0,0 +1,34 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://hp3750m8e3nq" +path="res://.godot/imported/RobotoMono-Italic.ttf-328fe6d9b2ac5d629c43c335b916d307.fontdata" + +[deps] + +source_file="res://addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-Italic.ttf" +dest_files=["res://.godot/imported/RobotoMono-Italic.ttf-328fe6d9b2ac5d629c43c335b916d307.fontdata"] + +[params] + +Rendering=null +antialiasing=1 +generate_mipmaps=false +disable_embedded_bitmaps=true +multichannel_signed_distance_field=false +msdf_pixel_range=8 +msdf_size=48 +allow_system_fallback=true +force_autohinter=false +hinting=1 +subpixel_positioning=1 +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-Light.ttf b/addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-Light.ttf new file mode 100644 index 0000000000000000000000000000000000000000..276af4c55a60d3327513b6bdd08b54400d149d29 GIT binary patch literal 87592 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

eNPK7RZkaz3zjf1&A1zt3 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

09kRVf9S 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

;k(N+E3~9 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 literal 0 HcmV?d00001 diff --git a/addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-SemiBoldItalic.ttf.import b/addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-SemiBoldItalic.ttf.import new file mode 100644 index 0000000..831001f --- /dev/null +++ b/addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-SemiBoldItalic.ttf.import @@ -0,0 +1,34 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://xuc8ovbe0rku" +path="res://.godot/imported/RobotoMono-SemiBoldItalic.ttf-12b525223c8f2dfb78bca4e7ecaf3ca5.fontdata" + +[deps] + +source_file="res://addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-SemiBoldItalic.ttf" +dest_files=["res://.godot/imported/RobotoMono-SemiBoldItalic.ttf-12b525223c8f2dfb78bca4e7ecaf3ca5.fontdata"] + +[params] + +Rendering=null +antialiasing=1 +generate_mipmaps=false +disable_embedded_bitmaps=true +multichannel_signed_distance_field=false +msdf_pixel_range=8 +msdf_size=48 +allow_system_fallback=true +force_autohinter=false +hinting=1 +subpixel_positioning=1 +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-Thin.ttf b/addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-Thin.ttf new file mode 100644 index 0000000000000000000000000000000000000000..ee8a3fd41a9d3daea9cf8358289e4ec10d482c5c GIT binary patch literal 87872 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ⅆ_9 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 literal 0 HcmV?d00001 diff --git a/addons/gdUnit4/src/update/assets/progress-background.png.import b/addons/gdUnit4/src/update/assets/progress-background.png.import new file mode 100644 index 0000000..3f105e8 --- /dev/null +++ b/addons/gdUnit4/src/update/assets/progress-background.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cwxuep3lbnu3p" +path="res://.godot/imported/progress-background.png-20022b3af2be583c006365edbc69d914.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://addons/gdUnit4/src/update/assets/progress-background.png" +dest_files=["res://.godot/imported/progress-background.png-20022b3af2be583c006365edbc69d914.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/addons/gdUnit4/tmp-update/141b5527-168a-4745-91ce-2c8d9112cda1.png b/addons/gdUnit4/tmp-update/141b5527-168a-4745-91ce-2c8d9112cda1.png new file mode 100644 index 0000000000000000000000000000000000000000..fa4ea3aa39a68b331ae2a7669eff8da1c9d90666 GIT binary patch literal 227589 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

y`T3qe)EF3IVg@Etn{eOuRRa@$bDSoPG+=Z3yR9 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 z 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 literal 0 HcmV?d00001 diff --git a/addons/gdUnit4/tmp-update/141b5527-168a-4745-91ce-2c8d9112cda1.png.import b/addons/gdUnit4/tmp-update/141b5527-168a-4745-91ce-2c8d9112cda1.png.import new file mode 100644 index 0000000..ec76c84 --- /dev/null +++ b/addons/gdUnit4/tmp-update/141b5527-168a-4745-91ce-2c8d9112cda1.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bggi0yppobxd0" +path="res://.godot/imported/141b5527-168a-4745-91ce-2c8d9112cda1.png-958ae610a7021f1f337f6621dfee15f2.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://addons/gdUnit4/tmp-update/141b5527-168a-4745-91ce-2c8d9112cda1.png" +dest_files=["res://.godot/imported/141b5527-168a-4745-91ce-2c8d9112cda1.png-958ae610a7021f1f337f6621dfee15f2.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/addons/gdUnit4/tmp-update/fe90f750-e9c6-4ff9-b892-2885f00fd71c.png b/addons/gdUnit4/tmp-update/fe90f750-e9c6-4ff9-b892-2885f00fd71c.png new file mode 100644 index 0000000000000000000000000000000000000000..66e7d76fcab7c0605a72c50d2e0c689f66f21d0b GIT binary patch literal 75380 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 literal 0 HcmV?d00001 diff --git a/addons/gdUnit4/tmp-update/fe90f750-e9c6-4ff9-b892-2885f00fd71c.png.import b/addons/gdUnit4/tmp-update/fe90f750-e9c6-4ff9-b892-2885f00fd71c.png.import new file mode 100644 index 0000000..3649358 --- /dev/null +++ b/addons/gdUnit4/tmp-update/fe90f750-e9c6-4ff9-b892-2885f00fd71c.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dtxivymkccxwr" +path="res://.godot/imported/fe90f750-e9c6-4ff9-b892-2885f00fd71c.png-34d47094b083028668d6aafe5b68cef2.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://addons/gdUnit4/tmp-update/fe90f750-e9c6-4ff9-b892-2885f00fd71c.png" +dest_files=["res://.godot/imported/fe90f750-e9c6-4ff9-b892-2885f00fd71c.png-34d47094b083028668d6aafe5b68cef2.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/project.godot b/project.godot index 603e31b..aa86e7c 100644 --- a/project.godot +++ b/project.godot @@ -8,6 +8,10 @@ config_version=5 +[animation] + +warnings/check_invalid_track_paths=false + [application] config/name="TinyBuildAdventure" @@ -30,7 +34,11 @@ project/assembly_name="UIAndInteractionTests" [editor_plugins] -enabled=PackedStringArray("res://addons/dialogue_manager/plugin.cfg") +enabled=PackedStringArray("res://addons/dialogue_manager/plugin.cfg", "res://addons/gdUnit4/plugin.cfg") + +[gdunit4] + +settings/test/test_lookup_folder="tests" [global_group]

@b*n$NX0V*me^ZSnU&OKIFJBpqo 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 literal 0 HcmV?d00001 diff --git a/addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-LightItalic.ttf.import b/addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-LightItalic.ttf.import new file mode 100644 index 0000000..64afc1e --- /dev/null +++ b/addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-LightItalic.ttf.import @@ -0,0 +1,34 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://crphq80yxhgic" +path="res://.godot/imported/RobotoMono-LightItalic.ttf-473f0d613e289d058b8c392d0c5242bc.fontdata" + +[deps] + +source_file="res://addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-LightItalic.ttf" +dest_files=["res://.godot/imported/RobotoMono-LightItalic.ttf-473f0d613e289d058b8c392d0c5242bc.fontdata"] + +[params] + +Rendering=null +antialiasing=1 +generate_mipmaps=false +disable_embedded_bitmaps=true +multichannel_signed_distance_field=false +msdf_pixel_range=8 +msdf_size=48 +allow_system_fallback=true +force_autohinter=false +hinting=1 +subpixel_positioning=1 +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-Medium.ttf b/addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-Medium.ttf new file mode 100644 index 0000000000000000000000000000000000000000..8461be77a38bdc0e47b678f1623df33379535d8f GIT binary patch literal 86820 zcmc${2Y3@#)-XJGW@Ncrz4u;i$+9F{mWwR87m5Lcv9S#{z1M`ml7uu8SO_U(lRydt zNQLx}N?SjN;(Tg z;QMK4Z&*ICY-r)E-CYE79VQ6s<&`Vetle|$NEU&L*Aj&B*_Eq@RxZriekI($6Wa3$ zk|-qz`cd9dxXvYrm^gsUC?F1t#njBX-!sL3U~E6ktGe$Hn#4TJJNm<9H0gD+HhCOy za|1kgIXtH(Tto#ytTC2`!l978%x1UQ?7O`^AyQQOH-}JMy4m31waC!al z>Z%7}wXOxMuLi7333nRjfN2V;u5E07c;4y-Pqa0!x7*yOky5UoS5>;cZf$&h zY2|F4Ru6c*8^$pe#*qhj3>t;T)Q9>kd60a1WIA;;86$U`M7N&(Ve%Pt7GwSpJTVKN z$QgekAf!?97V`K=#~0+%Gw4ZZOfJQ3dqzK{hj^!nI6(|iMyZkFR*GE@Sd#zKO7W#E zeE|kiD>Xzi`6wF+LIz`#xw6-+aTbZig+;=kMc+|e(`(RKaz4#%sjYcr&GhS|;Td{^ z5h06N-&PUEln`oTmqlHaDzxI6PLPDh~763UjaHur(kw3ytszz;C+l6Gry&$LM3;(c~TE z0L*?{as!_KF=#L5+ILC;yHXCn$B>VCgX(5pLSf#~vlreubA~pvxLpkR3PO7|;8w`( zGLEXvEFw58goRX{S#RhrujRJ)+=tx0$p2gy_SoE{XmmVxH zuS`@|-#?%F5=Mh}`fJd8KJ<P`eUFBJlAXB{!F-E2)!EtEtEJQrZ9Ra^a%6E z_X}Rx{9fUIF@HGAa-Yx1)yVe%Q1US1MKaX)6gXe*+0JjtZ)QS-u`+{U#Uww(t zUtnq~>cbx^7=v}Gk)F(sz=%`a_p*j<#Ar9Zrnevw(oWb{gdK|3Q7 z+1)i`XL)40R)=?eSES)5;lOjFB0rF8m$Q4G;5Tm?+1K3 zhz^X;u|4_=Y?BwZv!a0-XHEYdN-sfjg|@FYdef{~H&j;7QY%#|m1bsT<&E981`|@= z@pVaqLaq5CFR#dFF-!{ur|K*v1$ntSx%nkl{nQX_Wn)P}VLmzZV#l6D=e2%sAmA;z zVp7B2sV}zP7;oNE>@Ca9xv=YxuBFk$ElB=yaer~J*QhmvnCUC`%<;bLpIcnDz@o#b zo>^A93g&wYVD@Iftb{Pbd=bzyJE08Z1}9>d{1uWT#Jm)pYc|{467|ooVoJ~bqk7P6 zvs(<71+`=_`APvfplRGt=Oz#*yaPLsJW99!mamhjG@&c^mPmJB^npP16yUVTG* z)e5((6xmFs-f+!;$!O($J}HrSa`E8fiNxgks;UPU#Fsg2F0{ed0xM%M8s^0p-5srs z2Lk>Z2NvBGDUQiRE{&$Ow4_a~(pnA1+2MKnDT9ZxE?eTT0#8^`UyclN1z`p zQ#n4%{w7y4A2a_(cQ7-M2AM!TQ!rid?L+E%QlBhNnn*|T&*VSIx1a|v^l*q9H|_xj zf{f&1=5^+4bQ*m^q8FL3$nVIfM*5QH$!zK{JTVWRm}M0od+AVFqRK0~s_Ym2ymgBe#?glF6*> zdU48DAi%L!s^cq(G!c#7)3^AZ@<{!ph@t$k?Sv6@6{RWrY zFA)h#RQifrf3vu)Z^>F}TPM0S~bX;8KykABgobs{k|;opoh>B! zYIRDbUOTVVKV7dgzK`P3=%Klro~fy+sjaDgW^?!cnrc9~Rd48gAX@6%QfH3+%I~i- zX|)}m?wdoQXjeRu8Jhxg5!v#TucFT-V5cMskXF0UNc=(TNXHm$dmZzrVaO%9K_zsVkt2W! z_z`oMlN#A|CU4yLZs^j|TW0~|bQI^2pI28^J+^Mqv4)1p?Tw9RXGdr2^d^SND>j+B zB%3-m)z*6)w*E%mg0-g`8zxO^Zhn1>bHxh{jgzT6f&ccF2&(6rO;*g|w!x0PD9b|_ z@czPz^*AcR83u_|iZ|>1=g{@c3awT@5U(9_h;;<`s+_M4a)bdcT0lP0VJOfF@naa@(3LG?kQnV&I&j5UHruuN(F zXj4^r#hruUId+v-YBreX)mod(=D2p1WiT9GUcBt_SZ(89awWwo$K2@9T@@A4b2@{* zKW?j4X}to0ORbJO>-zNu?buq%Wra3bYgNC|WGNB|0_N*|39xLcB9-?pqczJE&LV{} zW0i%4LZ6PYX?;S0h+At!+y*#J0L@`th*e!P_No*FO$G-;*A5R0y()dH3%HL)I~*=8 z-7&ptnO9pz-AVTUKu|?0SCLqv)oHq;$wBhgHTMLArDmf9m^Vqh1@GzL{Smk+XyW6V zJHm!z2s4c_`hE+wGmlc6n3K%+R*N|zb$R%_c*qbCi6wO8Y_jvr8EP$3*ede!^2K>E zk2@?Div0Kue`Q*!1@Hzf;e@$>l+08FCN37d6?iUCGLSLyp%84%$=-aALRnl`D0NEI zVa?(LfPChM<``D}>YCuqBb#cbsgyEAA|7>$&LSzYtgLMB61o*B%3E5>D_YxuLifTf zcL6qkVh{ig{o;bcRB=5cYN@3#S0j?wI@*`%>BxmMR85g0r=TFepulSw z`Is{2=FvhmDC_wJg#h@35>LO_W-&`dg$_BeZn3B(hG&MUEC%BRDqHi@(T+1*zTJG= zu)w9zw|Rn7wOZY9$nU?lvu3qV7nBwKnWELj0;ycCR(Hq2*4e-MuCg+p#V8HxZ-w<= z0erm&-l4>tJ%f9uT>u=dM z=Na_|y}>XTuOBoR^`u?8;l-AgY13L-UfdvE{}Olk(sk0t%l-aH#P7enQQ8cb6%}xa zX>%{rPj|rBv_u%j77%8#j!cFM^G6eyOygv|g#fx3F-u{xCd-mtjbVeO9w zmxN9FWpu~F*~*(QoFQ-bwJ4N|{QOVz1ei*90R=TdZ_UtKCi5_}-mM9iBFpT@#Sb`? z0vVi=LmHS6@I%d!%Qd~##ocC03H6`a>Z-@rEqb83Dqb6j9GKVGtJ288aGMgUoT*VL zhifaN4=f$JCsJ8c9WK9ZPV1mvt3+0nTO?D7Wzzc6_~oU6YM~NUktpr5(W&#$4MAKM`7M+xS8bP012%0UIF5M{&FCgxl6b+k13N%C)KBXbpL zC8f|qCDTeDfgZ3giuIF*!4hE&C_sN|1wc?C^Q84|cZHa=GT$;6yjJE*=>N4uo>C$$ zHwyw1qqc@=4LcouF8UwIg=;sEH(mJVGMPiAa#H9SJ`9iZ9CgE+K#~k0Y%(J7lcBTZ zx{;aW+~jWRtrO(?x137a_MQM&II$B}Dh8fkCHSi=VQiT~Upl@}p^&w#EahNKDf8mY zZGt2cDIKeeRv%fh{76+*ELL50boq)S(W+Ro+F;a73kRlX3}%`%8nxhm=+tP8JoG!# zjb?5CQ%iGeYjew=wljye|EZ~^wY8<`Pw#6Tw$t5Lx~w*X!Lqu8vGiQyvRFY&SX_^K zwILYd2$J^U3T!b;v2CEhU&wvZs1dW*v2~Hfq zz72u;k&=|`bofXLi{FhBwaXlKZ?qzE?~>KWYGV!O3}SfQ#Sm}NX_V$oz+7Yiw&exZzMF!U^EX;s;hfw&ca9QVy!Bzc6Ka0RjpPhz(c-Z z=-%q;hGDZ_*Xa*W2mc#*-TG^(#IrD+?way0tseAB%@p7K-+*3I5f0rkKfJ)}X_P6O zoUU%~{9A)%!DukFy9@jkYOPMKom%GWgyqE2tqyQJ2-a<#Bl@j45~j#2FsFr@EYv~?6ko1U~P2DGgX;1b!9qh$8jPC zR`tRQVy9A3xtzk|aowx4oj@Fs&iTL9S`;LN_ zNiLQI)V+5{A~8l*;&d*nV(GQm|c9*MDxAV4>a2+1##Pml0i zSG{;a0sH@2m}xywX9>|r^ub(zD#=*(^wYVg9G020&Dc%UFTiPQqOxj#|G@r8Wn8BQ zvpm$L*BhH-wMXU;J{YTQDRyexy|!wF-Tga@4z$p4m)>A9>h)dW;7o%a2w1IdD*-ap zXf!HyYl*K-qt?^Dfjt4toXTz<2+egm>g38sPw~>|d{|si0LyM4YTW3vgr(wAt#@_u z{_-yHAL_NbS>@qbM!m_TH_jqw`lo2L;HTD1@t023XuxBvn~dpT!|3<42e9KHK$RUb z!}hg=L!wkzDaAxGs3Od{ZN!;;z?D8j1L7P(YHtHbn8O$qzR)8zQPbQK73|$rYTTH`{=f&kZZx0-?CDAm1Vtx>X{V zocZn&b`(3Q{k*6DpYuvGdxj+qr0E}&LONnCLS{-O7+8O2cYME4* zldBfWD@|dDu)^|bJA(pMPJVu2UV%}hv=`)pWG0b}e3Uu@)Ko?^0hS?-I>AXOm1pdq zUvLuIGbwA#Nk~0VnD4UMm&6)YJDr|GfEFNCNPRj0{Ug!3l;dh-b*J>-s182e4gSh z_{!_MS0ET*za)7l$h`#K z0)m@9#(RpD*|S-$Ke2oC|58m6!&vD77-cq!ADGF^+EL|5UN(J)lY(=3gXz;hIlq!gqwfYJbIk|ZSxTVCD zpPN52n>rdFnFKuF3D~&{q-GJe8U}(!DiAbNMo?%1VxyQ6i|MH@P3^&kNG^K6(;J;*|tA1F%08IBTZO1-`Ff+OcZG zmH`h*yfvkHQY%BVtroE6#df*8+~SVQq#8ay8~wG| z<=WWp=`hG_LV-v~nXLUc2W0khj?3u&-+MG#kJ=6M2;Oxy)Px z_8&k{p}9nzEzT>{lhzA7UY1;3Xp`$O|C9*w^0kGBb0yh1c@klfO(reX%sSV-D^MCn zB4MsZAk^dv1;BdOG-hkPMIupQfiPs*8V{<+t}WTv@|>EVc z7YU2Vc8v|(iEq(VmbfraM_&5klKY~SwK8deK_b!>$Q2-c^um4lB7Sy`Od|B@l@-R4 zm;3fsl-GdsE8i#)Y4c@@STuS+^ZJWb^UNl@&0J)Ys;W#c+Tt3OUo4gxb*4q6Oa-m% z(}ji#g(V;?D1aM43Vr)HO*42C1dT z+kRiWyR+5NZuv*sNT6L7-Z^>s<6sdsC*senYPzB#vBaX(tYGHHhRkNG#boS{uDQ{G zii(8gW_=U={n8~Hf-SNWg;vF{7Vik}>hXmkn)>vr`H$4a+sr1%rpZ-1C&$j9>Jhu& zyHu5?-M=Cl>5?2HI6JIo3mO0-p3M;7KCF2y?@Zu1t@V87rnTyz-pZZAMp~ zJNMnD7wTg1c&zS)P2YXjv=A%NM$^Kk@7RP9cdRmUSAXB#k&3#LPLpYtuVkjlm+Fz_%4;$cX=)6t&|8sFrasJ{xNSQ zB5)23_-cOYajyW!zMpA8cQSuw9$Gd$3=!&Dav6G!xpou!;=&mOQ3*uc1N3r9mV%f9 z9D>{ZfI;}dEEv+-SUMTU>CeP{SX0Rk{F`MRnYxZth;FD0t7~*hS6)7Jrx!_$ZoQ$| zpm#~clCTA$K6<~~cbR2UdsSKR+V;LXDq^Ir7{SMe^*NoMNx{%9*u;E@y+uSZ@!tTCD>e z-B)-$?wV-TV{0y)g|)p0c+V2xJuadgsEEt#k#oi?OFo$LjVT3A77C}G=M=X=f<_iI zWPj_HvfyNGyQbFa=&!6_Y&E&~DCwz;Mjl?b_=&o@*5-KPWN+0htww`B$aU%s)96Vu zk+@i~S7a4UiGbib;+&t$Q~3jKQ2 zOZR8pNQ~oeez^ZRiN~`nZ4Hr%O;tXrCLqG<7rlF^cI78LEVx=(O^99 zZ-2?H36xzoZO(ON!AVAWsaDs3X>r$R9^J&V;f&FriA(djxb*l$QZpGtfZZ&^Buie- zMyFLe?O;pkG`-G*-bX>7@2V*$=iX52FNL2Q=ALZ53PKZb!)o}M2=%0Ef@Ssj@4hdZ z+t~ETT=Tp~8XE^hAOEMIuGD`?0~e`A#A?`e*MYtdk(L;!MVaX|6CL4lU`ukABk|2r zW0;E&2T49EW6tF0RqAG!vqh^lejI`D>-@O~qm}XOz5Dt6oLqylla`=leW8S(mrHgZ z|E6L#nCvp8vZG@5jlr@AEYkk@-yA=#Yt-wDvre57I;6&CJH{iJyY#cbCqZ*gMTxQE z298!UPE`S4DE=P}pGWhUz3}-M?PR`U{$V0b%)88&XczM?n$O&d=A)9`J8vLgOP;K+ zC##cz8+Pu7zJCKA++K)4m%zM(W3m+XO*k!Dq%h&}$Ro&}6q6QGx4)^@YJ00)^=d_F zPwB#gkQ90NutqBmndEcjMV^`7**i=9We}L|3UsJ7S|liZMko&j%5EL(dUT{G+N~CX zrT@HC06vae=1~VmM{zz7&Ku3L;VXg<=`4R@7QiT%0{lu?9qh}6#rZ!k(9bQB-A+ZA zvpiJIJjc_q3)QOCm_CNM&Ykn;-4l)0@ov3?-hYV7SgRr#ACf>R^vCU+wjcbt^*RVQ zqGKy2_A2xVOBwK_&A^2pgB9}g$PRft8#|a2RqY$So?y-li^14c=9(r~=eZ;j2y_-DJF47OVzE#tmPFmup&Jm7 zxiIzGQhykd%K~iBBe@mAn0AX?d<~sjBoanF)$y56N-%9_Ih7(t)L=oiFD^2&;U+xKUcYOpljks?-gOu3Zf-5&On#*GG3u>evxo zvu(Y@ZMQ7nHoyADshu|^|L%9Y*4EXnb-8`Mu`BYgW6kCr7rRS}-5a)F zT(f7|q+Qi3w=XIwD?{%#Zz(Abhl@+LG{coI9QKuLAxQMr=$GU$V4DK#2C~}CVk#pV zPQH=zRj#%r5pQdYCtA>F)Txmw=DLcuwu(pxx4Y!n^15zLU} z<$jf8Xs=7Ov?S`8fW!HS*Ck)rS3rL*}aoo~Qq_g6>2N#B2QrP{2~)|-6gg@rjr zm{EH>p3#H$N~O}Tbe*>(EQmJV6xu@FfjRt3()z-&cRo>oS zUI`N?iC35nw2Q7zjoi!*2ly@gq=Y4B)^RsDbtr9i!SpgmPG0y2BKdrSuDI7?D~^|n9b6MF80?aN<)oJ;87c5t|spzK4POmAP51W@=%Dp z?~@YuRWlapUw(VuzQ)G(cd?i7x1*m@1{B6IuAvO7K);MJ)%VS5Xc(9~ zI*R@a+E&31uo3;>V&N10gqE5F@Rxu>CIj3K5Fa%O{1|?&wU94Ww6#VeZ8#?q?IC&86zUV!Ka#lu z6a2Dhk6x>p8VF3)VrMFZECSfEOGzRn9T5M3dmSZ_;>i$*g2(~*dJ(Z_G){x<57bT6 zgSVV^jx2xfx##emQBqG^$oKIb;HgsDGV(W4fAS>UsUw%uH&Ficof|G3A(x*5e=2)t zcgCIF7mjjw&|jz#au2v-A@dvL2qb8bd!E0Cx8<^{nXLqg%0V+)!`{WXVDBUD_wbW@ z(Y`14@@`zZp1B0=T)LLI7;y0kHA;!ItgH?U`T(#Q;E+I>=#$s|&b7{%LZPDfA2`@^ z6PO!4fwCnSe{WD@*=N!;0fb6^`l@97Y?ru`W%z3<{E`qqgAR~-TGRCFSt4so@cXq$jQQ;-!EQrB$4P- zU8V1dR^Hm(`lrp(OaDH5;6Rl-p}0=fmq;94wB!OFLp6+HFf|5_C*qf58oqLi-s!_`1ahs*hRuWoUUOs5EdC3~#&aYt%4T%BORfzq2-`Xs__>Gx;d#lT5Xs%NAHzbZOS^OOy!)?qnRDIS?tW^N5gWtp~r0OBZ_P*o1 zx1asa^K2F@CHNkpRaL4L=scj_3DNEoC(!*_JD>gjz_a|{Lz_zGChE^wRcu5doU$Nb zI;>TJhaRwVEEIT>Sz3y1ZW+vzdR7x|kV=cts*5jL!xupgk!IcwcWLouS6+FUr=)ln zbJO<9l9II*2RA%k;(Kz#!HTsdC6(8q_Nw^N&V$!&e0bxwgOl!wC#K_3Ho*u!gb{$b zS1;!zP0CdgOpS*#;rN^yky`fjsPGauY3J@L_7=-z`lXXPmh0qFXNh;`0!^$%B+PNT z)s3FgcD2JCmiSl*@cIv;kr^)n*}Cmo6>I?;99h?}>R>H{KarL|;T z9XD(pdjfw z@ZEO@kbyePtYlW9tHi){mJqw?DfAO89|cVclwEKY7=z?n|7I>lm;M`Vq4YR|<9%it zdf-WrW(1PEiS(cH9s4LLL z%++UrCtZ1FWYcLlaEDJd{f@4uFTvyJge?Cs!VYUbI?C3y<{ejRhyw-pP!P|ex*UmS?s z_Tu|zmq!l6+kTA*$Sk6Pqk+YQW88rdCiDr)EZ>wx{od2v9Z2cbjy<`tE9@Hj zJICIHpM0EsTTe8aJU~qwc?fMo9S@<7-#;%Do=6^JW$!a+JvBm^SqaPT0cvFA1#$~o zj~+b4{D5ci(dbs1VD(_49+^S+AuIouJiR%~`~BN+_fxpbK8&_?-1l{I>EnGm=FIIxO94VL17-c&tm49LhKJW zO)NBTqG$~wX;52nON*k7Iak1x7j=%n{9ptT-xm(j~yC!sIeDUE)x6I9cnmeAeTd9 zJDpu~;d|hMb%4DGz<%|^IkX{S3-KGASDTW^c*_7AXN4hmJwfB+vyz&_(Jx~Ur9{9O z&(8uj&*|*{n>%cLu-Rxd^w*f93ZXVXPhF&{u~zpR^Z*2?rCL>_&Mz>C6cwiGK7-N7 zd=K#6C|pBg1AZ=wkMg32vh#9HN~H--X@OO3QY#?4HkUb{lY-{u;41~(2am{Vh+L)H z=9qEY{M_Uc$~JxEugK$Mv0hk^Ei1^AW)~H)_;;4$#S#?eNb?Kjki(0YjcT;RYT_k? z)wD-ot?=di5uH;BE5t5~(wSZ%>NdLy&Wb1$B8guGmm-NwCK35Ze)F@fKO`4+CvPDT zsbH3n&v1JQOA+#!{mc@6{ddn`ZSM=_3-T@Y9_GWKMuedS`r&{VY&Z70qwP#0mP-~$5X2@dghW5a>2Us0u>={lT z(%lfomrJnyLZF^M~-lKvnfz z$WBR4hhsr^_x9cujn>ykqj&Z8-W`o5x~DZYom{cE zp;oD^cXc}&luE5Y1jhv+Q^92N*z8McX4NjX+1*BycG_)o@2|m9wC4V~^B$C z2IK*Xwf)W5(-Q<=PRfxpv$Lu3)QS}+o0>X1@qAXCYHaG9#m=_}W{Kx}cMm&X)V^{3 z>Kp1Bu2}x|@}cHRu|VLKliCfhwYGJ2wY9#s0fye%)zu0^pZfqeu?ObPyT7Kkxw*FH ze%A=n%R9;k`jS_m{$sAN)R3Q-50Ym&bt8N7HXqJ1g60EcNl|!&Py+y@4@6#s)W^%W zUVYg$%QjatJD9aQ*70(f>qrfA8QPNkCt3#-`CMNgQ;%30UqBt9Rs%o7c*3@AO7c&1 zdi)ZO&;mGl+#d?gFsDpiS4B%z-whkH(^#WD~M z&9z$GZpg9;sePD`L?WMBT>|+wID88GV=sDvz6|z9A&dwC_YEVfod?b!E1%Rc=MTR9 z`+Fei^y(^Rm-%Hqvm;7f!5muyj?tYLqeRc?z35?P`kjzFO5)fmy#xADvnNQXfEXg> z?8i)*;jAAZi~Zob2?2_{tL;Er^1aG)zwbEE{?GRP9nA1omCS{Y0II3{AcAgX=A&D0 zN6~!{wSg_j^zUO%-=2aor(s88iaQB%HAJ-F9hpgQVYw086?l&#EFmUhH>KADpNF5! zU|%?lSQzz_jmqa_$;_(q^1BDCR|ND`+GZp@*4q50)yNFb@U(&}q1ffVsCmY9{?edS zA}G-+%R2SoWq#V%s#2+e!dpahKw8mot(70dr-MJU739dca(zkZTkYaX?)Nti>apq$yLX1F$~6(eLQ%A@6Grjx@){&$f~L zEK!;cQ}!&!**N5JZdHE9W(|wSoZS4ZaT3my#5@-5_(_UGG}j@$gO1hKJ%7>GzfPXg zm&L12B;LNk*le-XsSNURouO8@aBm>s2uDWJ>n&4N7H`uRxk@LpicMkyECy=H=y3&Rw5Q zo7S^#{zB$o`}U3!-LvQA^`AUOu9KkGwFr-K{tFiGBYug5=%S}^EL%v9zD=2_0uW5ke8H}Cvw=X8H z0~~YqB&&zm+26k`DOgqjUShyjia^tLeg@)${GYH4F7XmgY|YUtypww&tPFi+ZI!93 z%s$f>m}1a)g%&L+AA|AOpvh=H*BGmNX8me7+uNkm7TM)mzu01nRa@qSD|eKawW)0e zt=hP#A-LG(DjV);Z9P7?>KL?DsstXD$}4ublD{jSWYGG=cB4#OchKj*ZhGB(m((sSvPd06 z(cUZlI-gW#lL#SUE^0Sd%G3s#T0JXHUbNp=>h}9ewsl7bZ18r-sB% zPGdwSROJ-N^5r(Et|4SBmxKYF{PgYi<} z#6yG`T|r+>m0*4tvu7+GM*^HeIw6w>HeY)G(O2K2kVt|$m0uw*QCXX9wyEC4O1sl@ zmqIED>lDQ@Rhin}Y_m=Ru+!loKM|X16-pf_@E#-?tTeULjmTKg!oboCwlS2tJxkT!m();q_^FACZM_Ps5wj@E&O2lZHFf@B#3t zjl)f8c=zZQG<&Rl*4JtH9C&vg7#@5v_gAW+ADmJMqV-uvTV#sq$5pn>D#pL^J zy&WJcT|lUT;{?D2<6Rm@kyqz1NM+)vGn!Q12PeF7As*(mv{-5Du=`t;kOx?_Jxhoj zdVRT4?h=t&wn)#|==j^xqnk?z(A#71?C2PrTr&C%+CK*8_l&_&FR=^t0i4YhW3k(m z!tQ%4cG-G5d*n3a28{jJ_idgxYvwmMuD4ex_{d(v<`ey;r>k&U|2@OT>DLtLE! zH>cqPu<6Fz`_u4#qJYIRHy&*o-aUFLnlaXY*10qs(_}5|-#Z|(i|fQ_F+~aydyota zNX(kC6dMoZ(!ujg2YLQHdQ2uSaw_E^X`wk{?!3I%Qpx&#UZrh9jSrF*@d zrF+NH@p?iMkKEK~nMm~&3ZQyiXz2ex+F)xI@!J9Cz)1n$eS{q0_%#Q|w9UbLh&?QA z_b?h<<0uVZNW9AY7Wf9FLD8?Wv<+9-lEgM0j<@5ALHNK4R?cbjCye})_V!QEN1xm~ zvK4(qKM0i?lK6Ayg)ea#A-dpB=I-a8$DDC1^jOEo)Rx1JtcO_6Qq?hli`hL5#wSb7 zGub`O!7<0=;C-WiWjQ7X#~hP`_YkvK&d9+r$K>DxqimR-crj1p#??#AWqBf0T>_^d=AmG(1O9r@YiKgG zzkxC0dPx8WUm(C25=R-#J?>+<2LgBjhwsrKij2W|50Al#WyJTRzrk?EgLl#x9Qt{T z`9r$>IJ}?On#A5b@csiu9mTz4y5Ym|2aJqx5IuDM>Z_^4$>y)AA+j~O)bY3@`I|H7 z;WT_s8s0gM{rJ{TX3bu-pu6iFoEGakR9)577^%It>ty%QSg@w9y!yV> z+^^>Mr{_42xF%!nxoP+uz+pF7kde{5=}UQ^L5-^lE=Ls9_3(s4&HR)qPT{&HoQu(# zslv+7&(QTUFR5{Clo?>fUZTYbK+wBr#zEHSeM)&zEkJoOhs95M_ zK0oC34Njl+h$)>OwVc8#&@z02pCs$nS-j|1CvT z8_>;ZDp{4rNH0j%wE({bsQhNW7~tS5W2tZvYD>d0RdMja(NEA642Qi3Ri4uDg&^1P z-eYSpvD6Gc6Skl2EH!iRK4{Ou2SGxw#_gFfuGy4=gT6EE+jK9O#<|u##16CycCZgd ziEALi4vK*W1G`tssx#OX^V|QR6Sy4G2OkVm!o$dS_AK+p;Ssoo{@CYO4liX#H8^^K z)dRM|9%$w(;XShSXz}bgIG!~J?;{G)O=);t8ji;`Jq^bkn`=J+I`lYPlZJPXUWKN? zJgx!Gco*+OT;b)XRhlyGJT8}(^=AN2r`vGNCWE0n0_9U6IgI=aN;cITVM{h8W?klV zIiAiF3ak9MdQ<%xyWQ<`JC?;JR&OFNq037A*Y`(eY4s*LHTFHM4#|yu9&yX~*t3Sy zW1j;!sDZI>Wq!?8n8I0F6Dmvvp`a6IirBlAT3oV*O>9+aG1C{UqPcE?%P6K$I_Em8_xfM^sc|p2JUnDD* zl|rE{rADxwFL3B(PO;P`RCR`;duFn7o?Y$B(=(b28px~Z)tixq_Yya=9GuzQz-V||B%4-!S}Zs6d) zG`yb>vl5D}X~la7;2P*B3(a0G1FW&oEGiA{JJ+3t^3%|s6{;~P@84x8 z)IGY8P^Mcynr=Pk90l^~3ea+JWvwa15X9SlN?(~8Gk8BTkFQTmCHudqy49rjixi+A zWty4bVy*FdCsyN9s}v2z;Te$h@zAQrYnoa!t8wKrpZFW)5~)^eT0M!Y#+5JgsZ7n* z2`aj#Os*=H{J2h+sX`)>>Qst4XS37cy{>1xPM6xhT`3ob^^O|3W~@%v81Awf(>R?w z`U7!&8ver=PRS+jg5924Lu{{cE8BaK7NG1|CEh;(3f_E{E^i~`0B37vv2>tI!M72Z z5?FXvHnhj^EHs#_#!#?ip~6-gI=>2AvRqqCA6y?jP|pd|LJT@f;5&ARmPGT8( zC-g-^#?YtqTVNbo*^0D~ZEKc-t}kVU@6Tu_VW^TdA$m8V?h^gh!cU{-7mEf$jo7BjO~U_7$WEE;gYLHo{QKM4oT zNka$EYtm4RTdr--N{m~s-~Xhc1OFL^ev^jwe`86veLn@oyKE7QajuWY(yiy5qk+30 z01Ma!y9~TVKd#a9GiLCFO$K#W4h$DsW!kplK&w)&gu-lYwLB~JhiCs@rOW8gcdrP?9+IU~9z<&HtgQ$PT-Dq@DdUHnvi!?bMVnpZNmvH1e*af&Eq zPN8a63Dh|A+FZ-SbViLcwA5)b&hZy<)y-hF*t%mZS2eK|)AtePsvH#W8V=gC5bqfd zdTs3DJF;yz)7Y|*3{hd&z+l$nii82AsSw>xG zIxbg+b5vXE>RPxmWpJq1+-4i22i60rD_1C7Vzz!+MRRjSMQa<@O;{Y^bx+N@mw1%m z0sJ-Ck6zvf0AI!7l=xuu8-VX+Of=LO169|Ab6Kg+xKqkRB}m<0Vu z77zHV{Upm@(KDl;;r5IdR~t*WUr4;e{1M<=p?y4y!0n&L{q& zi_NIP1y?`|2RqstrWDCzaO(9r$m3#*l|emD>OZ97EEB)}@#~YLXU>qzwmgAndmHo; zV z7uWMexMvp1?kW!2_dVWK92D;=4%%}u-c?)=|4u^(&W}T}u7cZQF1iZxxJY6V#3Jvd z?}AmR#WaN znvk*7eEH)R@|cU6HKl(tS7ftIG?yXrv0};4(9R}TcPU$NO{Y^N+zWO#dFF;PrmG9e zncrKCWDz@MWr++q3MBm8T&TZx^KkR)Hx>!F3T%^hRrzNa-`p({WlT9gKY5$~%DG%2 zHV7onmX;_@Etm$`x$yo5JFA?dlu6>T)z89I#o?nDPHO{QaW%$Rx&kd6Q|vTMS04f$ zg9#6(RsaJ&JL;YV>3J&a5YZTaajA<4vXau(B`Z#{xG2Yb&H2 zR^azbBL;NEP>476=^{~qQ++PqAT`X21ez5J`EaPzza6TNg$n<2%MJ9N^67e+F=uCz zRJw&K?T-tQ?V$?g$5SKS%KIukrg_8_#Q0e6OwVA>54a}sevn1e;lwJ?9-L46Z^roF z7&^2!{~R1AhPvJpYo-;b+(Mn+sMWN2*dRf%&TbToCDpi=nzjV0oBVhR+aX$Ro9vh% zrnEtY(u3EQU9GG@di-*0oP*-E<)A&QFlIO? zURw@2@bNeluPuh+wO!0gLbh%i+jAKUpH1v!^#Tr#`{v+1#4Z-^931zK;aO-P8~4sZ zaqk?o`x-1|uYpl_vwa6sec#UZ&B4Ef)))?!jTZO8L9s00p#7#I$Ohd@KSA~I&H|St zVw4e4Jx7`I2+>adS?k7E7WgB29?Mv)|F}0H7+;?qt^4@)j`S6B7sIE(11!h!>cy>pcn*As|pKc zc9UTS%pjL1rTzilH#|e|yixy1dU(>?Zi73;^iJwA$S+aCoeBAI=JaL*&+%iA3WOp^ zJ_$oq`cbGdv7xnPgWKul-Kz|3L$4mW*L}@8}eD(FXx0`7n734kfzs%OU*{D^wd)zG=jR6vMTHNk-jn=qSP*7-- zN-c2qu&A)WA_06C3h49hMx_dhNGKcKxWb}Nr&2Y$MV)_5?stZ-S2-Q$UN-E&ATx&}r(ef`A$t^9==SilP z(!%?}Z!~1)j-#X;;Bq!2H+5Epy#A=(9ubR#aM-(4%WqxlEcUCUvXGX#mdee|)ytG7 z$Z6fCRcU5~-Bl8a0(dt9{|;3Eb#K5EF#x6;|CdZV@?V?%9a^)MGuCFppDOVJf0N0@ zl@WQw=$Pr5z{d0umCOOX>qomt6Y=$rPQRIsS*^=kTaMN@wOv-zQuiF@cfTbTP+w42 z!kMIvqtVfK0M{Fd1Mn{*9))buTHx8>xnL_Vj0Fa;(_tb9M|Teo+XkzBon|Pa!vFiZ zJgrnaz1-8RQfukR4>oj0tAj!qW(ibh9Qi_S7s!=zgJC7k#`uWXMk}eq@b*ha=V4w% zTtfT~{!P^d=Bhc4S58jX1x{B*20GaSe+L0)$x&;gM;h#=(8z zP{m00zds{)zV}9XMR_CwzsN*Ic|{}wzv#%pk@>AdP=uW=#=M^`#tikl?^sCJ9!!c3 z9;9wW^5W|1;^Nv`Z|Yy5gNI-ODmc3haR89J>2$yFSXP@9Jv0o5B?fBs9*NxEVqf+^ zw5pEoia}K@TNdxBoc!uY^vG(w9$=YK&9ELgR{)|AzdV0rMCB%}Zqit7X_-@|3TYPI zQ&ArMaYbof7DF-Rx{UniQy0ZluK~lwxrysF`G3?6F3&o$bSVBY1LEX&*Ij=)OTpZY=D@xgxtRWNG{#HP zeAIj4YfQ1pO8P_QmaJc~r*3@!z#(AL;c%fOG{Q6sF6uHoa6JLK#|C3{d z%r}sGUO|6Ft%s4MMow;R*>EQ7SIl}ibVX1omwuZzW_=8Ixf4dfRWr^036%OP@2_u2 z-jb-UY;1^DCrEL96?c{OG4luHX6BYQHUxqVO{HZG^}%36` zi3sJVcBq(IQdK>2GmLxy{G{t4yBJqG3$r~-d6`6#`jb!Go=p9{o|H%+- zcs%~w%Qih%*N{LcQCIiEmdkz{OT@oGdb4S9d)q=>ebH=K(AK)dVAqoupEyAt-}-rX z_rm^}J?F1Ee&ulY%%O!dXMK(uPR_iyI@-`!QF~w4$*#k(iiY}d>|Trmtoc0va|B01 z49?X+@)x-Pwf?}A{D<*>PY+zU1J4iUvK87vEFG@+SUzn4E`m~@t<>`)2gt8Ro}l)e zI(3S?>V+4`1#sjHu{lwd@C?Yv0X8E9{*F}T$fWb=ceqpf(+d(jf)xa!*Fr1yG!p!g z8aPyjdp1(l%u4dk5hHqo@zK0whz4>J6H9ayl`&tP*qhtUR8By5MM?UiD=cKP5>8`0{?0|vdO z-Cx|SHd*Qay!c}7w1$S~R;_%xzP>Z(`0KCS814KIR)_Az18^qvwiSRT}O2+DPU8 zp>qRwKuMfcX#)dS($aW z_!8N8LWmPb0wp0NL4teG;skdHL5dY<`6w*~S|}eV!CqyP4<;&W^Et=(S8gn~led^}YnRw#kC8sjK$*dSnP_Cn#CSn2q;$y^I+6cV^)`{DY3tGsh!D9a>rZk=|U+`OT zPGTP7EtAnTxS9>uNzn;^a(=5eEx5C;p>tH1F?(iu7X!tmF%~iQ1dU0B+Xqs*eP!on zv}!Vfb(rVZdOOX=sLX0I4n|^qKn>OEwf+2;8UU>}{QYe5y4+Y+SqU+J>xzN%qo%M} z;#CFK)(szs#nQPe9(UVpa}$YSi^T!hKBJtci%v&35xc?A<%tdAR-nHGGar7r0!}vz z`eGxPDB(T8yep%m%v=8=M@GpDP{01s+si9E{%59!9HybxQbo(bNlz~}Av0uXBGQ0U zfu91!7WA4tErV`d&SYxB=$cR@#}Dp5L+Ua8qOJ z?(^#Rba}&N<@~a8pV81{PcL%#davp~cZBW-O1gYE4vZjfK~aYv}vr0~jB9*M$KQo^HYbHz=zfXD6LF!non z%bAf-x}rH8USB0|KRX;w1N8rFmQ(D;+|Nb*CpgBGs){K#9j7#5#xeMj^29KnY+j&~ zDRoes0hm7zySrLip4~A2q4wsPWYlQ`sAJ1gi`AmmNTVigwdL!t%}JHUBQn4WGAw9K zoB|-S(VlG6p@kcsXvntMESjv_-==f8NTg@0$LsfcT{~x)suX|&LVmQ#nve>me44%o z+1kP~+)@{p%hU>~G;Z$R3NzE=a-ZJo?J=ueBJ{ej%wgxdfH@Q1^+OyA7Wh!U2&9nt zlQ*IBv|T8(FKjut=i|u?gbs|ws7slD%{kBS_qlwY^X5M2h)H0wiEzAkSldkom&fi{ zTKlRW2puZ4#aNLg*Ygh@VZI)^s-t6nYwxyTuuftTD1?bxz%e8gdRaec}?sC|u%g&yCh8qp|Y_2nB zbCmlC#+t!-M+O9I9ZhmOoQwk|B#)4EFyPxc&6>67(gvTtFTl|cYdn3nbg$p%6qJ?d zly^%EB@%JAhWdo15$}n=pdaEG>){`0SQiM@n2-iS|1d^=4~_(dhCyoJ*>gH=geE z0}4}K;|%ZUzVJZZh#knEI+fMw+&Z&n3H|%073xSRw0mai6o(-sRb>5Rpw<#f^&pZD9uD=lUoU$x!3Xi0GGM@oUUm@h3`SjCc=kU(V z-7#y6-C>s7Z!HxHDl5VsY6ueH0POzhIBz-*Ie3Z=GgWy000(ixxz|C z1wICX$@4J$UBEM$!n&yi+n;S{Xv#Ka9^dAjV^V^aEh=?Nxh%2N7I&g~ z$;pOjfsw1?i4<1)6rAE+*hxK`s|)LB@;s)B-5>B6P6NqHBYIcv<;{;b)MvBx4Nq*@ z_-K7yqfw`6bmiVMnoJ|jO)SbJ+bE~8Wf8!Cc$;4sXlr|6UA~piP;2WG%anB+BEBvY zbFHEotT~ws2Ddd&YUD$TR%4VpZj_uK^ryIujMj|}kwt-k@2mk!t-)9e_`i;@rAn^U z5Z?M%UdjD);bW+OeSs5Q0R1Bv={g9!u??-!Ot{7$P>z$O)1Tz>E$P! zAlpW>b#)J}J@>KdbX+PHdsKf3*HZwQp4S{>6(jilFFWJ0>e{M#1AXsq8oaErVQuIP zCbz3?Upn1lv{_H21B`=y1S`nqK>W19gQ>ACCGvI|_06cSRjtt-tx2VCTs(T_{mDc) zYW>pUCn}A0S`9SC-Qv1Pc-JiQHKW@5PFLqF2@@u7N=_T-|HZ0<|2k#s_vbY3h{t<5 z>#`Pl)b)5i^r%7??a7hh)PxAhTSeRwVFVg_mb(4Dr~g-f|2&sNRqH^@2#2e^!FyU=YEx$5Ks}TNkjn1hY_}t;b)$4x z-WWEvc}XktWabpJDF_VwY%;aKYd2wY^sd0XABV<};(7Px@p62MsOLeuTNHBQrU>}M!6X<1f&kD0i+Zn2wgPxCHz>dCm8L@~y&MEmNSgoV+E>{8AXRdRSb=3@qFC`7f{$*haR2>5s^M z&eY)cmSw9G;+a=}vs8MEzRvC#2wG~jD!#5#Y7wHql{iL;t5{qHxNV`1uhL~qk(mx_ z4gDOmsxIhFN)gR_R#;}XnHFI6Wmx@pKy|*N z*%%uu3CGVTw17PO{BhFbO(ii-DsUiM+z~%XjF=M2L+E#oH>@t3`@HnbEq19E2O8tlitdCjQ$UxQRY;gA7eh1uCy(ZfN>MH))u90~5C813k*}>D z-g%Eavg9x4IooZS70yt?<5p$R^H1gVwbq*2JnmWHrk%A_r$rf;KCPD9M0T&8js4|nyOhqL=egq-5Ij}=6Eui&D7t&S{G2jN%!J$Idwk8GwCghvpzJbc0OL8 zOkXp+`c62gc@(*pefDYChi&|qIscGt(h{=p?#M(-vbGavQLADT#Dkrhd=BWX$BJEM z>%xYX6*dqsm16=v%iNmQC046LaICBg$kAIjKHJpP(cawj{I(5`WgC0Q^KHve2+ab6 zE=;``T6r+$3EJ)UQ(M+OSeMDp?Ctx*Zsxb=f7shMqX~_GSdI^W5PdDIpCE_BXqlh_ zmI1LwKReL;PXfzVkiU6(@B^QKjbd^S6CRIOAt;dp`9v(&Cx>m&@T3|6P2YTC=J_Eu z{V#O>%wW)61M~sFP*l5PNag-hY9T_BMuQI?ix(^wZBIC|wJo?LNzFbkZ_U)*xp?87 zb(z)|{0`^5Xne%s3}D==Fz)j)ZZ*r_k)`;@~VMt)hECFc6eVTj3V>M zzG3zIzx;&SqxRR!Po&hjoGc~9#)?Shn9wAOcLPrH7%;XEE)to<1^T&(5DFfT!D^f`KD}ZYqsh6t#7^6hS-M1Vzn)6dyDfz zXKQM2U$W?y>Z*FOHut8}Vx1jL%!30C&q^`ZaCN0}4t-pPk?}bC2E_;f_<(_;r?MpP z>;vV{3r!nyeGW>%FHwlpEx{Vc8`Lu98r6r)e%Sft66C-#*H9k%o7@AL)51MF!u=!K z+I&xgCnre7oz)*uOLNyyf2E$u?V&bvzuBCS`)nz@+Cw<0EJp4R{2c{5KTrLW z6`&t!6IM7YN>!c?^3;|WZ9{WAyPh6FW61WwaM0Kv2>}w{O}d&}k8E1@SWD}`QLo)L zl5SsVvs;x)Nv#{L`<{EwT%-1}4Nl;$Sl8aL!h!DLm#sY*i$~I_O+x|>atE-A zZ0w;Ft4MH2VyvVBs$UqDtZyH~akTP2LgDI%V>WyV-$xD<-GG;D#Pj4<|ByMzz+C~F zb{P4wJf5Ud))cna4W1P+N5tijPdu6|z^!vd;pt95gr`z3q-&kaoBhkG9DQD@7VdZg z$@LZe3Z4T8+~x^Ug}B)d+TtxVo!UC%j9{=)O$h`4{s~@=t4pO{;ASxn^lA z%2WZDYgwAUJJ+)1Q>yRyd+o*q0$ox8o^l>@6a5aJGJdu|zwFsMk2mi_**(XYdhTr9 zMA;A{;LaAZbTI!mT*2ivAdje^aO1KGtsGNtJC-@CD$%3Ss*lxGSKYQeb4Cq2;UOe9 zn@r1k$;(Xjjzj6HxLlfho?X>Nxa;QpIG~-PfGPhU>Hmh7e|_iYceCTjpYP)+y2AIF zo9WN-eYWa}{XW{KPr8P8<@>U=9lIF5A=uH<+F7d8HmyaD7uMm9W% zu4I6Ue{jRvwe@rKdL3F^%&A|?KlJQzA=*_QoIi2{0s>U;*inbsG$Rt7Wwn3}^MG$w zM6blN#HiUSL>i`WB9`8Mz>~qzh-cwt@n}2}j$AmG`o*!_9~wPXz+{$4q}85A-dt+v z`~HUNs+;C7xV|ct8M}pD8tNd>Bc?~9b1XJD<_K36$Cbt7-HWF@RWMZwke?kRhkt_k z@pe%0@B2@3zax`aA9kS$yrOMFs|<-T zz1Y&y)!ou^`1Fl{-e^5a0Re1DHoL-Mcd-bYNPt<@Tr&cmOg`A~IQq{H^>n{~KB+nX zgP!hbeJ#z8Eo)nk{#x-^^s@PNFVrr&G#ZVfnH^izxd;r9 z;$oSYFyx_2-pwXbHC0W&+IIo92m7>g)y`jJn_3$(*(ne%p2`JcIm0n97aIrtMA`WAfZ;s*5~?7INr0u1EY~7*E}bl^QOV z!Kc%QmEs;L7}s}j>3GfExP1FD=l=v;C~FB9ctc*lqpnOY^m#hW!Wy6Nw8kYngOTtN zquw}_T=Q_fB?9WsHZ(l3dD9d14cSa}_0O+qhA#p=|KOi!S!6UD&>eRnFNf%S$~w5o z?THHIe!FwSOlwFiR+g(aE{bkzZ@qPH&*{JDXdmipZGCR7^3+G0vfW1_UhnFRvI#&r zarA%P(xl9+MiV&pbY6}%Mgkx>te5RAFpde4H$5kZdu$e&WpcR3@&g6pax%6A@v|C( z!7z|4v)3vu*7};7pD$xNMoDF~1IGe_up`R+^_AoxO7Y}!&0yN)a&ACJA&V(gNmbeu z=Kes>I)~knyA%alL~WaR?(m87B{ots8~E2JNReWBr$)iNtqJ=37mE7<}ad06+s z2l|+bO$^nr9Ykwt7FcZ#(lFypcfjZOdbai?XIV7xH(2GCp7Sr^-G>u+AlDO5BLi&kTsi-nxwtKOHF|6QJouipaq8rO=qwr0csXw9% z^B-~+d2}d zxHgJwv1`y*CahY)Nn<9#DJ#*jw^&_8SSD{t*<+jiWM^-1d5V;eaoYKI+`p+XHXdtJ%3?D7ZK38r#=P^vqqjWzA+kVRJQ?Q0YMYyK z7v$$Oz6Q`dM! zF`l!JA#tp(P@FKHw2&8Hf_#X0D3yp`HF9hOZD7->MB?g&$2iCB7Ydc4DG+Q@sN~cP zg-X>N3^uD&3gqW6d#J5-fs9#Bu9PllYkPQ^V(BAoZ3|@N8Kz0Tptb$s?TYj=zpqJ_ z8;~{m{mXk4RV)1dCK>f0`xXiXI=|qQ--S71<%ZamDCle#@`CTn4;*EXLVf&Y9ACoQ zHny9$mA&FztO}c##pV%?PwL0?HoD`eI;^pGx$96%tsiZwt9xK|;|@6ba{nqWMNvL1 zw1Fzp$vnE^+Gs2)tYlzlks_E4^ve8rrs!@1U(xhew|;gjJ08|o$lE%$oBjTLj33+k zqqJ5TR%iQG^hqQaKg+DsE0hVHKBZJ5V8$!jgl8?pv;J>% zx4EAa&)j{XP%sz@?VC%za5VQ-HdrGTS5%0_HNh-(KPVenY(RE@bN~)#~mz z^Bd|Za@O&e6QSVFuAZ|)!PxUUg{spTAZz#*lVx#xd?xzPehg3KolDO-(ttnpjYrOzdk4@mKXzKo zGkE)gPUqtEZB;AXo`}_8=nV{C4)th8XXi_6ZEIfc?3`H>i(k->W;$w+Dpk}6edKbC zkj*^c)&kOnvndN|=46o|D4f!9J#&)PNt*xu_oXyErF%}9zb}YCq2T`cvv&uBQT}I@ zVsX;zO-T^B6N^(GUs5coq}G#HurJRpx(m3N1JET__pW}ft#zQiq2a!zXY@9135MA2 zAzK=I8@C48Mj}C+GK$R~;o_}%t^1_L2C0ZsT2R;^fjNbZ&gA~S?B=R;X7wWGUtbW@ zXfCMMsJmiB&%7IIL5z~Fjt4_$b}zl&&2*Ff%m(Ux1ENNH=0%-SnJywHeupZ!TJSJ- zWyWiO#~D~*4P+CWiR{zDlJO?l?x=Fy^!L#xo*0!U%!aHzi6Tb>AxgQ}r&U(VMb?aM z=-facOj6P4{^{u@UK{Ej@4Mr!yY4tX$P*bu2;SVL-z1fC+jOHmV-@%D(y~DBE{74HuoPH#=XuNyVs>V~${+Uk}GuQCV zCd3EFdpI@KWNu%yES{1B5s4Kr9-MMV70EP1H*@^A8^Cr zqel-B&78eq*6$eJJI6aZ>UG4>uouQl%;BZ3BR7ERKVa}V?G@{a9|YeC-qrJVi1khM^mxrzUisO9$TG;e)Nu;Z@%Mr zCr4945jwC>s--pP6txZl7!GIv%(a}>1i6>D`62wk9?ABjWZozl9z}T=EBUS^OIT^c zUNHl7cLl5{EE;e*CUFEL_Wj#iCG_;dPEY1B^c9~H;DMXi4oPz5=R__=e`A@sTq^q$ z3HuSV4fLDQys=y>w$6;TZuEIW@Kf9qZb6n!Wu?3`Nl!a|Poh(fk_Dl>Bf-8K-V+Lj z4LY$)t+1njFB}Z*8D>Y@kI|k73gkvR#R!FhJ$3LWeJ!BNDWg5_kLcHGQK*5;DIuRp zgq2RU!dfA${5a(GZfXtmnq_!rm7Dv6EgL-E07QEz+@?~iq*7H+g8Ef16zc@yqC%nW zh_dhI0d+K@(?coN`NcXN+Ui_1kEKB5+0Y}!n!LXmbbyV3|NDnD_ya#H^#|q;qxauW zK3aZrI#q+9;?2uPM-!bIEWAq7nHZ(xcd(5`?>PQOJQO^;tLsc~XtFc+tQKT%;1p=A z(sX1t9E5*z8um0#`4chyiF2CDhZrU-P%e7ImiTeTJPvaHWU$Z8caO_+9@b^6Al3i< z-`hlDNy_El+S7P?&{HcaDIxE{Vau0Q2tzhoR3eu1`Mhtxg=(*qN<$ZKW30cY1)Zj&V(4D1{*M&&BCM5JhNX%ad(@F*4ohW-TSv>e)2Q6sRV5vkxT zNe7!<#G7})_l)EVrt)9=R{xIq+a*fHMdUsPC}%*l#Q({Cj}wG_m@Ipz0o>_EoS}ca zlZ(4k!>NB`x;|ri{@X{C{Ugv)wCQo?W zOl#rZ&ti=Kn|t5b`7ZO!kvE=w`|Y32dS@_u>!CrBu#-rczu?U7r#669<8}V`5h6^) znPa$j9mahd#_eM5z76Bm9ISXK2m`#zJ2-5t70D?G3c|*0>yIK0A??Z>^}EtCsqAPd z5ZF1LBEjRwNEd&`E?`wqzrUWxJ4CLFH!Bp<+##x8s!%k?nZ@L~kqZL;5RbYcx0o03 z2lg-I^)Xw3CVf7;BZwo=%Q0IIi}AgIYr=%{7h`j*Ap=;Zt6*C*IazviO&OET#Ty(2 zE_BfBrABF!1%Y+ZQMc2%DpN|-V=|&FZdv1Wd#F1vL3-nX&r%&Kg^Uk)>>G<^3ROqy zv(JWi1p`q5As;a|KxhQ^%%y(Ld{$mgpx;w$MhBMx9$;%KM`E(PpKsDi!HzAA3azbK z28Vx}v|eP>lN4GFIQ5PvwR(GbMJfLo%3`sOq%s(dL$EhlfX zWhScJ4b(!pOqRAXQSxTbCXY8n6Y8qmO6m&miKUf#p)#W7d6_2!0@8*tqU?^o8*3M0 zD>Jd1h3B&)OR|T5$|_Eb*OnhIpWW4#*LLws5QLzsqYM- zlcVr;=H}OU)gwG=gxoDMOJrUZ^CeN4;)oLPm|=2ru|kIO81}Ql?QVljKt5-THh#gzqEm{N;IvE)gtAPypxEWPQ9jeE5c8d2+5hh80YTVckW8}Za4X(K z*`D;$3wus?SsfMS!hpfp?N9ce9SB57z~el%zE6=*sZB^XjXP59I}@onMx!|tunecF zk!xkt>x`#VrFV5P|4no)OUwp6e6|UPu0=6k2*~Sw*=jY;s?kMN`k+WEvsf)F+OliW zEmnGEsa_#ZI{?!nlxVf+iWl101Q2d(OrmP?p;dJC5>K#QrBuCSF>2d9ri4oG6_%Cr zuFqE%QbjLAYu6SFiWagu+{8+;hhV}p^Z$CWCf`jqv0mP5t}s`r+%;0Mq_k9&bf{D2 za2L9mhe_DwTAb{YW1)=|LUGy?3CwT~o@tfJEoNPBgmq`y&{KRtU1VJy^950x5=v_r z4Nx>Xky9m)P=!@{gIaw%pD)nLB|eSBBvjkW1Ol_kyr`*urO#I{zbL7|*7eP~;{uXHJSr5TSwM&M`}woGr$w2lOhr%(%8cxvOv5{&drb z9zI)zeqKZMB{Qd8T-7*YRBOgQEUOR(ZN}bctl#903rkB-|648!+f0M8M8DAlWV_b-07x@WnH;mvkNOys&ZRg<*dr=nd^2YQB<`lqQykt4}erg|N0$8~nq; z(mN#arNQd?7UWnMtV?PG3&Q{t;USCjD;6~Yu{I|gw<`Fl@@Hm>LGCEn@0?m7%TFqA z%Fl0ZY9_j?XcPG6u_;6JksF|-dUUiv|eTf^yzy&d5GaKri?qT(tJHBrbh^!5ufABR{PbTuBUf9@ z<2@@9SS+@+Jxt^B<R};9u~8vtyBgqzY6; zUF=4*x}yb=Z2YmUZ0T6UjKG)!^o{N9joByHGqUwhG-lh|vyD$s=jUE%UhVMs{T}D)CMwgq z#_4i9ZLW3STj+|U+jWYQ{)Dk@-b_9`eq@#`V=#F61hY=Cv*sv@oApmq)PL}%{D)a5 zoNm{S88f%LS!wRxF$QVP)LsPomvuX{9jX_s8*yTqLfRR}bj*mXdGoZZnAD z?5yF0aU06R6(GUWU(3_oYp0)ld4Zz$qExb>A(^_USJ8h_l6{%HXzWIQ`S^r~?mtBC znKWTk<_-g&Wo>Z~a~HtdI|LeqD3{?EIdx8UnE#o76zT#CyUKkXCy$lBlUWM&;&X?e zqgKjf#`XQl^ZKUkt7;fA!l+Rrr#8KB+VqR68|TBz_bn-}5c#d9p+suXWbsv$m&sHW zHnpigmYQyMgeuAe^m%M_4dR4GK}v z!Wv8td`{sgKfV9dvk%<=0J9_y%kw11SHNKk;526QqL${xW?=D{EQ^{TUCkz*j@8n~ zdbmFG&;2NG*{f(fClaZyjzrFBo0L|J@z#O^{!&m4dAW;?YB!=6BE%c}lXuOZWZ>A* z2@%RMz(VMj-Kj*L5&a;cEXCcZz)cHUvC}D=xaGJzDwfJ?TjP(8#rP_2`x8JClNa-9 z)gFo5R1PbVD5PSqMsBUF5F^RsOQ>Cv3SIena>@xVet+uS$nzdEWF>3YakjiqQTdVM?^^JD#qG}T( z>C=Sa#=ZnW-4`n>D%=KT+LG&uw8QNHYy_uPWR;QMGH#hwq;?SWdY}!_zcS%jI=ajvnP*|-Ny3`uCNT~{kLVHi49;#X5iFB(?W+IkU2+hJuxxt|8 zOE{!jXN9;DE(TMjRC~0lGN9Ad8kR0_wqdVWZ_9rEM@2J$4gmK{VXu(GH_j6ar{{-h zl;bh>{4Pz&`TLPAa{T*toUFMjY?*Az{&)<2iA+&hS%EI;E@8Qtrg*>MQM9-mHBSn2 zxmYZhivxzvbHb5y)bHDv4fL5&Ay}c8n5Tua8~na#IvhDC_sY)*R86l=Ut={ix~#nc zzt`7kHKw$#E>HC-MxFl6eoa^^Q(a=Cdk@LvnwbsECE->jyg;IIixNG~PMnaMD^=EV zVTDMn?1+*z4Kp+f*`Wx0f+Nhiv(EMV{YE`%7(h)X3*MYNi<~iXDgOC@RBeZIS}m$H zRhEm-l^~h0LV_X*U02s zh1m(t9VRGVbLN?An7iNxYnO`eLB@p(SG%FzOPI=3+gP)oYk4Ww(mYe=47M2^N)^J6MfP7Y5ToJM< zt?2KU_mr{IfI4iIoBBhXr;Pu=nzPPY!|ch0l07P^#O0Ky?W~8)nvlD_3YDt;q`%B) zL_)95Czvea zsA_m%9jgVjHfCz?S;g$5tc_JwSIs2S8CO=N8(ntSx{lKyN2SW#!NHHuWsYuntG|D_ zh`9#()MLzEPMbv4*2EYJW*EoX6qCmQ${5$CCA`ojE%SjYff~el&A}d>&iHXdRn@_H zZQG)mQw&B^j3eQ_l%+NrJ}Wy>!_wy;W*zQkgLP?r-6cJ?#Sgc&FOV=-vA)i=5KEWv z>)-={cZHvFfJ7YvKKC2LdusNZ#N5gJ{iFSdDj_t zlPj3V?>_r(=8C(|yqj518tyt1_hlZSZzVf`1SBXbYO*9;DvLmMGiAJo zo>SxQusb^4?pge6&Xox(&7uleFcmJ~2&D#eI-L|L;FUtC$K=FCe0kA1#k1MWjV4vf zm2$1SrN4$e!T-bSJsWrO*l*m2Z`@q?20E!K1iahG6V-hA>)UucHx`vJw=gdj*Yoek zin$Q8?nB1hX2isA#QGr^2O^rXd*nwxll{nNydU}O$FBXc&wlLMAA1J5c%3(u46H?V zMQ@T^oEzFexNhv4(C5Pd6(R?>!;q= zcxYW9UU*PA(xcNGZ(r}n2kQ(vLvQ{A`me6KT92niqtT<{xP>|5s>`@1-sb)|_3hhJ z-ZD?+uhpu#Yw2TCZuOt9#s0m-EGnjvD@P;iL&*9549M+56s5%mmm+>_JT#0=IPjz3 z6I7g_UnyVZ;H7v184<`*JnEG_tqZojc|QK49wf7whmS8~ZYMpwJ4cA4nK_&r9AVyX zAq^KSe7W&5-a8{NWiPK~ZX`qWA+mtEkKyfYTe#!b>|a#NqF0))9@8y)rR8egtcAqa z!aSL4TEx8DMp_`ne~y!R9z2M=Le3&O6FUkzQeIzXb1%jl<>WOkx{F!8lU$s8>$}xY zG&Oa0HZ?u5n$aBnE;EAcGvu9(WXOG#p&|F_(+xG%w=7w4M@>xwfx~N*WPcT$wfC6p_tb#}aVfuiM%aH38u7Ke@GV`CV0D~iQ;f~(zzwVNZ5vfPKYGT4=( z=N!$|0Lp}NGB_{F7vd}94qUJ! z{7kLXuu16j*s^aQ_}PtejhtU>F`4FN$$8JCsCcNi_oKZJa4GE6_Os9OpWc)~DXsU( zSv}ovZQlQWXJf-Qlpn{|JAu4#?i?Kc|rgX!r@ zE)E5~1MM9zZF-JNMI*1+ZT6KdsAsjtrFUyrHa1>Rv*}@E(02WKBUHv6CpaH(PDGGq>4K?rk#S_!Jz@b%ZZ{XDLw>=N7y z=_UDl@i-uCEIXD8Y7c_$gxn; zUJU&##w5g;Fa#DjhfOEJov15GC1M1(kQDRPU)yr;kjznPRqiq_ef}nD{u{^j6iP1$ zdyeVnFcS6-c<|&qJp3zC%{)dt%)8Ie%l(?v{FU6!%%Q3%!lt$Ua_mxaJFZ7G3w@C% z`mi99hKD0aE+KV){xgaHnY8ELPF#nCYee|bq#*)vF5&_wv*=&D|mqE%RA{EtQ6sruI?~W| zdE<&h=!H&^TiF=Ed|-6$hE~RQqAqG-``&Y;p864A5a1eYoc#h;bkeen{m`;3XwXU} znVdLWuz>{J4d~sj7Wh5I3MJyl{_WlE2m=JvDn-UwDk%+QbpCoN46L#ew)R_;nCl7x zDIdFHJ#%_udrRYnSoR9$w(`m{lU!v(Pgb__TMR@zkx2P`S*c@Mux?)$X`0T0^rV0QWvs)B_vi5%B09bRC+sY6bVfNmhMQgB)Kw ze1%iBPOjRN*ezD=-(4#TMc!GPU%N*FLk^8ctk%e6ij3PaCl;A)an&l2b*YwwP36k+ zhGjN~3z01NK-T)bO}M|!VxF6-xoDvCyz185(Op zMAv0{2QI6xTVi*5j3^DDqPxu18hr>*0Khd&ShO|foq<8SA+FRl*sQ&vbPcL5ev8wN z;3szi3mJT{)f7Zb{q7^l?hK_e`k)o2>M?$b_ufQ%6RL>E}?FH{dMdcn^{(kr}8+x7yJTQq!a#1ma3{Nkx~9eh4tSc=jPs%R&k z+KTb=ijXs~1kd2(_op5!p&q%B3Xdv%3fF)yGskGqk7n!Z9yl$#qvmmHBzNQEY$_tZ zgyt7(beh5Hsi}yNV|dm)%uvH|knu3TVmva&D)bWDt>4vdX-fBM)GFRTd1z>Q*NTqQ ztG=Ud5i0?vys(w2BS*G806aaJn5qHd>31i-r1zq>wTjK}YT_Eas!n>%T=|(4JR6n* zcbeo<6yy(mf{!ZR$yNp!g+f8|jaKub1{9qgIrFqbv9Ky_v2=O{*V}An>QeM}RJKMV z=MH7ogfk;%t%)KM9U7gJHX^JL`i#n$(NU!^SV|Bish++k8p{gjo%7+q;Jl>y)e3c4 zSp{iGB=+~TJwJF&bH^5-y;#kz?cJG621+WdDs7ARlggTf-f*8%l2xvb=*#k6Ba^wiKh&&JDhP9aiAk-_%ICCRV!}$NHks%xsdsgdHk$n$9~tj!R-&0R+M{8#(^Z+b+``TEUDCu3wd#B zNA4iC0Frl;-xt1WX>i!%Z`Wz`PtES_eslBI7dzUArFi;FTb^wktM${vMy-L!!apIn+F)VinT3DI`}eY>LganPbws zHOuPjc2&K)=i7sBkJ3UOb`3 zh9?BVqs$C0#o|$>vThK*N+O`2WqUt{_Rpa=Ga1m_5ajT3$l-WVJ7$r0*5+3$?;YU| z3(AI+c!8goGMUQjq!XG6k8`Q8vN@5DdqGL2(p_5u!CG-dUGH|zO+^MR02LAo$3B4d zH=IddG`)RSRpWB>T+?ao>wByB$HLu4XQBd#=y4(v%2G~a7yl)NP-H571|GLEp+c^m z5f7|L^*ufF>V}@pZo8Yf9iB6Lo35KVHh5XX(9b+3>-WbLa!p^v)MB5LSmsa8Fsj*1 z+g*^DtFcF{=Y{+Tbl6k~(!7~vBQD?xL;2m;v&m_-Ic$J*OP^x4*p30_?*8F5Pqj36 z132i`0g9YU#x~MlGi&d1I4#TDP~K>=apjF`4sU0v9n9%m zhVlRXXtd0YdwVuI?GA_4wzMHVjF8$@d#x`a&s_Hc&|PDoE>telPO=@TA}(s>2_AAVi>WmivB5A_2AL#L^QvP|kF4d=?EcpL1Jq|K=Tk77%^G)0X$&$9Mz( z0IpcJ4G3e0w~^0|{-bR+-gL@Gfhrt-WK>5|mcAu!V+xr(+}$n`^iE@RS*N z3R{b5XQQx%yz>-Ln*o&pI%9tzSMV_QWu8h?Q=d%!K|1DK6pf}S%B%YloxO+z$u@51 zvFO5U6UlTsnYi|{XaIRN?4Ra9v>g~|Tjzf@JbY|+?o-ra{~ROC)U~`2 zfLNBhSmVl_dlE80XrmXm~ zQi-nR1ni|)TwbOUmP<=YD&UGIqh+!RWzrZPwD@a9Wo6`fAZ!c7r9zWjYN}A^iUHKd zFIK{9tU#J&aV6EUCp_%w-fq|G%?9{q;V8D4sH!UOifnjoeR_Q=FxwxT7fha(j1Rkf z%}SY^lmlN`DzZxH_j2Eri3LKj&FnsFAh7g<+<$8Va@1S{Ww2b{7SL21_t;xa!48d7 zQC`Zgz*(t<^uH22&&CZE|Gtnvx{Bk9aGpgK%;u@5emq5nyvK9fog2G)FG?bxx?D&o zulCPEbqQd`3HC->E{&L^`qHv8rAFOXg}yVvSf&c)w7>aHtVe?~dX08Q?UHNl)k=k$ zY+ccDn$7K`T3VcoYC@|r%U)X;TONxniun4hwv5{0CZb9}Y@b@a%;#&6i9PD@Sv^ax zjmMKO!R^)`O-%zn{);w~X%?$x_MG?=eKB}`KjvMS0sN#a^UYghHn>f>{s^rNl zPh0tOfFc==>bNDLK0~p>&CCD0_z$R6P$?x6Re$v*)DcgeTq5N;?d~(C)vWXa*ij@! zenn}Sw(?7uBp{*+t5U8jh5S%!Rm~A=T4AGc>G78k)_PK0C4=DBvKi&6WeQt z4OTN14C>kgzLgnQugf#&?!Bcqv(WDFmX=hw)U^R*pLi-nR)rChBt`c!=h2sAr(1A> z3NtMToY)itG?B77<3F~=7S-fjC7bQ|w>86NBU^f>QSGioQm*_wUn`u4E|@~ z+x5OcYh(85t;`2JVrgA!u>il@x~}ha>J%#)8m2c&8y)s$d8M<k_Y( z3d=`oPYd|7a(UR`-`KkJ1~8B#@cGP4BnI>rs2`;07vS)xV)xiw(f>RbIOyW>Jk}`7 z6(*DH59dRQzmKAal^VxWEII%=Ze}M0SxPc1Bs@Vyu?85*c6M9L9IhSnK9AUv{aUqJ zsnQOlzaZB^!>e%(m7~xhgms_oakUp_6@R@9h%FAKF{V&j%Eb;PAVB+e_U5P1_6j!>93OZ0T&#rR9gHTdjazSNDrAKd{UsHRU-x3$Yil98YFNI1#O=IKv zlJatcxJ(2n1z^>{nHGt zsgdXA`ez5COJnw|!PThH=}B2hnMP7+5M!RRFi%vn7joYVs{4Q3;=J6QB)Jki%dyYC z{q{4eyiDlOTIW?aZx3qSLd*aHpj1=wmBCC1QXwk@uzv&=N+E!?KWBBa@6jWmzBuML^e6Ef@vbp!0Y!UdumRH z_IWY1>)O0M$DZ-YstYI7C%Lr1h!cqNN{q1$ zw0jV=i=y(M;7UJ13GnYK$dwd=`f;0oQ^(+CX#)@hq)-BMe>PYsP@6ze30NnYStx|7 zNjQoGth61_G%qgh&$u zm;zJPA4m^Rqa@yh0TPqZ}+9&=i)^Q+p|yIfw2*}lH(x#wD! znk_&~m?+wkrG7+yz#uL{r1?HY7izIe)U@L2<+{84{uno|oVrfws z!vMv7X&GisUg7F2H?Mde zplVXT&K#9WWQXlm>w=7@9niR9{yk%Vr2GmSJez2h&=qHrLG|xst44uJQ-mJGxTKL)zNY>$bew z(J}x2`|i7MPFu&TTN-y%Ys1S^9h<$L1SQ>b?jBNgY0Mv#311RQTAG`Fzk!F(_}hP% zZEXI-^|X%s(eQD188F{ROd zg01}1^B%~KK|`jBp2P{3^6!Lau%Y1hXWcD%m2vVSK*dtP!)sGuSMw{yn-UDktJA!B z**QABYB37uQvr`>T~lJ%VT3o^5g19vM?%%LHIJ;7$pG0dHI$W=YoPKge(SJW7u7XH zcXf4Mne}#W_j^NHjVx}8o;S#>DlK~y>7`3=uc>XMz93!cezh1aGsF?2KejmJ?Zw`2 z!TH?GKaBXh4d`x-u;e8+8Qg@xKqvnXc2oxLO?~k=!jg|aPKrnwwA(7XvxY66lgn!n zaYFUPavo~LWMa8Mz^4Vp3b9yGEa1PxpzQ(+MF3c-Gsn*1^WK3Pt=1Zlkl=pD-J;bP z3>t0Aw}++H3W>C$ywasUtY+z?vb@sCJTx-G?gfh~c?smAh0Q2hQaC#Z7*0OMY^u^KlSWMg0mn;1FJD@; zl9e*()|Ha*Ck-aQzIivol(pu*lear2C#g+7h(Gl?!I2^likZhB;XTN5{&Z@d)r!oq z3bPdT87i&UVP8^Rz1VK|=rm|7BsG>RRhI%&&#lq>Mddh3LZ24!$rVB=UYivv8@vE; zo7+@uV67ZrcSYNoBI*n3#g*syb7LPzy0jWCe!3#&q*ACV1>&+Q!lJsTn-5G8JM^7$BSR%qM z{@h)(qv*1tdx{RRo}4KrcV0YCDaxO;dXu*vtcx{nrd&<_2X^E09%}+=l@*mDpV1fu z(~I^OA-iEn#j;l=l<$Ju1vCJC4e#^j>&Z<| zLD2qBY;pM93cFe9mRgHF?t9iFl0CgCNH!p)L)nqiCQtN6K%1E4PrQ2{Sr|c$9 zCAXVZ)r%+Xrc%Z2CQc>0o8=;(7Q0yvpltS3D%l`+d0Dv~rxMWWxjXa1uH9UUHgCnH zf~ZsN5sRgEH#SaZ@K~+0!-?qzlUXX*^Ruy`Nn4guR{r#vtx#5-JhKL*@&BKl*%s{B z^T{@AeW&rqTKw_}rMe?NL` zwsH&2pEh?_?(nCR*75&)-bZm3>P-GWpjogUtGpY1vXlTXgPKLbL&d6DI1_o!rgA#- zaAR=)6+`R5&lEk5>Rx-OwzfXoQ2)fHzFq02MLMapy|w*UdpE+}+On~?c}p-@FRZ<~ zx^}k70;+@Up0t7;wr@R-4DT1fM|vrUh!RIW!Ck^X=;dfkG$3)*X*Bhgb=Z3t=} z(dz5c=^GX_G#;^PwY8dIZ@)b}XmADcFk^M=kU0*0_@)yo+5zhjIbkgj!EAtzc8u*f zN^bqK`09Tx;7DN2#9NL-fwEC#fbQwg1TFxpXdm z*%4d^BbmcZgt5`cgE7F>P75f@0p^Cc-g|+3{0?)wiZqhvU(6jrRO2et?(?9Te}lf8 zzl9dJv}hl$%QKO};&Q7f;B1tM2*7wE@Hp2=P2xbTu48PMvxJcbw=D=qp_qFVqLj1WwlL@ga^#7H28K!r8wm<4@M%>Y}S-g zp0?SB&>PC?Ns7zL@22?zwN&I#sk~B+6Y3HhdZ@5#qyddNC<5>%pB{S`!3335Xy4fQ{A9gK9^TUP|!yJ$IlkH$*5vxCpqT@ayE13Ld8cP$Yp>0Jv?Zx zoQHak`rRuT#?N?aGUQ$IUqz?}oLy8#|BNoiUG&gWt3hwA&~66N2WvjEmzSZ&Z%xq# zXgg;EgY|q+;>FN=;7gOUhZx75qZ4T7NNvXH<|H7RO0gV(rANp=2WwDsUygC_35)Px zTiO*Z*8>kMXZ&BvuG{L1h<`8D~brK+l}wW_N1 z#%;?|b%5c~S24#uHk-#|x49`{v^o&3jhVD65ndde%%)LH$Y_1ws8+nUGUTPSl0g6*! zPq~J0(!{r2aKT%9_K+L*?0I|Q6?RyZdzZeyWFfdh2sUwwL&z+p__p!0isPDJb3q<* zVzNq^=eVHZgbd5f!!NZkcP}+W^)TAkO3KS@hB946g~aSod#Klm&tV@)H!QVT9V)3b zpoA;ExcIesH1LiG$0B19-do4RQJKtbhqXb7m437a_yJC6RGVQ#vKj2b0YG^hnIhQg%L zG+NXW3t*#^cx%*X&}4)nCG_X?)5XtWJl2Wvr2a#rN8abmSC24XJ@e3m_bpQe&>a^2 z!Ft1dwi6{_ScF~;{rPv_9Xxnmh9?n=0w!Ohth{n2ywDn%L@5CH276u!JxUiBUy5h4 zQXszu4iuvTN&1gBFn@gO;6bMPs^9*G9{tBZF1+v>wgn_RQX%kj<;D97SF!6Bb2yNO zPKB61ynXQCTg)HG+N-a5kN?qk7hd??efbW$6p7Kl<~>`y9rVIxgSc!ezHQQCPswAT zp4s%!on+^IQW+xMo@%K~a&OS*-O|;$#S4s_rw$)3SNY)W1W<}s6#*uY#R6X&>ofa| zUP=9<*bO@!+<>e0av@Fcvp0#=v@<=E9zAbc`{qQy_da&+$Q7k;r}sm;LUJxqamXR5 z6o>UOW8Sw+_!B1dx4F&Ni6z&e{pJ4S8~*+%xz6ijkjKa?dIZ-F<614SDbmOon+%{d zH4-K(#5(g+W%0u~30TlN9wDEe`bc#mhSG$AxVuTMGjul8-8q+OJ<3G7wQ7w)t?!Tg z?Ok8D!C=)Xb=|>GB(T0OG~H&4R0{oi^FV0UR=2~JTTP(H)VOR(sX|5mM4Ut@kyQI^ zF)><%uu@_EiKD=4yPnNKXq@8{)ymV4*iGiT16IWu$4 z%-k7lZB|n8e0s*@oV2tTtCu{ImNtv5Pnza8d>G7`hO8}?hS*p$JAE;}=q|L)xmj6V zRku`jWo1r}k59N0C9x0EEP^z>*$AUkmS{VeH84`n9m@_sICvkqxAJgK&YaoVIj>jQ zi_SlqT^Sx0Nl0{9M7ibhsTmosR5w+1=46r&H zP7nX7$GeZx>#uaEjoo$R@OBalCC0@xq~DRjHmk)XccyW{ z&Bk~$cC+oOx@}cgX6CdZg9eQQpIeb9Pay@2VZowggIKUDJ%6+p{PYvqrMc1WMSerB z@C7K#*HPemX>Q;Zm=YUK7LWjYGnWpCLX>KD7Kz`lhZ<@Z0R1PovKTh$?!_R3|} z_EbYk^Pw$l2Lb4oo6UUHXmPl(a{ob#H1mmNV(RlX_+BqH!;(7j`Pv%xbdF%xsCyJ^lyThJ#0Ux7rqx^s1a@nNxjF)TcUrx)&&Ph*y zrG8}Ui0^KHEjHWNKj1vU@fyo4*(E{2frJF&IXiP%P;d}ft$@=sb7ofds}(m^yoys8 zJ@kia?hBfeklcRaW^strsJJ!hH>a`lq|9;$#Vsg-*(d?ATe=TQR*Wu-p(|FDnCf}X)xv}h9dQbA%;L+h>w)FgtnCNKe(1TsX zN-#*9F)B6{6L=W9#rnJp_%d=ko102?b0g(Y%MhpEBU>|G(C!12SD#tpoQX#?)kZ=` z1m?vh6oiDvkc%{Q#PDfx<8I1Y^li5KEpm&H2HU4g+$z zOXRlhm%9&;d+fz@GEGDLG{oPA_^`FGFFR|x*sfLN*Nfy?`=9o2Jw5H;VXKoT$nEsc z?u$6-(YxCRu^vFIEW|?FVk3Nr2yHMnj9YT0h0g5Wq3-HZC$%5E^5S~5V3b%i|5o47 zT}I2oRu{NiSmEx&zo7|NnJHJDAg;c#A6tm0L`0;(@FM%;qN3_^Ce=kn#@gG;J%^dG zmNhy$#5PeMnl^MOHoom|2+%%0IKsQ%fd1azk+8@7ag5z?|C!llwO`*p;r<~h1HAiX zW1S=X>p}RAk%CJzY{4$rg1$mi+!f_2F7*jXYS$wKrux4%wH4O&mPb z*B4vbg@vUK9Wo5(DyN2p$H#|<#>XS~ziHalS1`}1<@=yx8&MmXBP?V- zjlM%uBC-~19~%;ZZ(e-7`$Y_i&kJDocR(JQI2?Nk_3bmbBFjI_IH+&m!DT1~hkYA8 zhklop0(x9}?mPf~-QS=-kz9;b#3}DFDcIaT!FP>InAN!Rn1?e23>xjzcjVZhIU8c5 zV&1d=9-TI1&|sbJaBqEL!l+Gi(O*4FHIIBYpI+&*l{CVPwxA1$^AG6 z2?rwGzr-GP{>M?d{%k`f|J+ezYl6XW-TVccK_+m$mlzW?IvQ z@r@qqLoUb}MmAylT|e@U{YQK0@(UMeB^G*Jq_1>0({?NoszlsJFb6tMa}R63Y&}^N zR&KD5y9oe}-F(g=Y`=A;ox*283DUT%_-aeuO=i=$n8>L5>FRGW)!{f5gbomYEo9w1z59I_e5)z+>Mm8}qad%nwAo^p{ z{1N_vSi(NY^Upm42Mrh<5s^A%h;JZPD9AsZ4!K|}792PgC4_#7@G>6GN6yOh6Levi zDaD!tvP4NH<-ltNJX!lY-~oW^$dbOnfG))Rqm5&u1?SlQ9J>i?{mmR3{x8Em2W-bC zNIX?H2s9!Ywz9JOd50ZTZ1$m=X6<3X@i`}`lqhf6Uj=+K;MtmKfX7Mr4h}ciBQ-m; zj{^>E&R~ELGMqxi}7kclb5HhI5LQ=gaL|9Too_uE;*tNu4gg_y(wRKUI4H&|J>p0>?@v z(gpun!gVCSCd>)d4R%2n)<(IYQ7-7BwXsg9_74}-`g0HNTnW{aLSXK6V(WW3vFVDl zm4Fu5$1~3o&>2D^!;wMZYjK|QB+qj>&)f&oGM*V6JTGQEb13IoKo>4%dgnXukv$20bV&==60#zmQNp$;X)BU?&{ysle8gg@F4x;o5IqRIFMCO5ymY|PPn$)g>C(l zVRJi5YX`JYC7xc1(vRrQFG&r^{)CFIN`M+c*zE10+V(rbKY0%1TybP9d+WDm} zz0n>5F4Hm{S^T>XaJla32DqRFzb{8?8*HD&M^1wIx-ghvNh7bFo<}c+&xqu>eF9-- z7d^p8RLGfm0R|tx;UoS1r^cku^^fq54TuOFIM`=w)Tr(OJNoq9$p>4$9T?{uG9}zN z88hU=y>HO4`B9zY%{>V^Qy>ZpzsxAo{AlZMc}#iy7wxJGhm2x!5nhYhhmJtRRoI?@R7uzZM`HdXzKP4u8o_}QDxBz_60|`ZT_KZ>ZL=O&{ z6mqqEl6^6Kfx!zGS1ezG*W%MGUwo8;OJ+9D?ZSE{0|E5~u7DO?TE(FDk!(amLRky@ zl>IHhw?bl`ytd-o7POcP@m;>FX6l9kpVdq~S)|;q1OQ*u*rz2Nn$<_+gz8imw7_ct zq;?ciW1|g_8b4o49xCu(Wac&$LFQoMcj!>8f``b2QibDiO`kE5q*u=%#lV;$BeSoO zS&HwF$N_xx!pRlugJkQnWIza@Y)s=lUhZh2S&m5u)?7H0`|S~IECSf`IlM%vwjTrh z03@_ndm3;AGtoocNlXop5{`U1MMEg7@GrQT)5d0nXbg zUV}wDm9OmJ{5)z8W}^_GBj6>0&nL&$g}JbcA4>r? z_n>(lULt5TvO3J6TvG*fVG~Ply?q?>wn0HamnJh?K;W{PEuh7AhRb_Xo@>!p7yrR> zE!xUt;IfvLY3bbxt1qI(JtpChM*opcsBWYSTF{@Bi=bh1(I|u;@tA~f(}la>Man%G z9fnto-RGHC%+6Z~{ztEP2u4D=-Tz-S9aAYi9&-YG;}PWNjIr293CHeWNqw*0ysgM! ziqF~#eDyP8Q002*Nc-c|Isd#w=13RbX)-0#zW#j&MGtm19r}J~S_g#<@CoV{b7&)L zRk_E^Yj`o2(L$w@*Kpo*aJc9>7A|KJ75xe8rv=pd6@xy2I*`S66gDEO1K5R+)fo=Q z%uN_&a9DX>2`(sWtpv2#gVBfwji+>LVVhA-W3_z(x2stFx?R_z2~%|GjP~m8ChUUb za6AwAjk>jf_rh=tgST@0Cjn2^wF2HdRKPLD1^icFiLT-J{os-_{7#PFjCqkuoW9=- z!r|$h{t?hw$M8vq#7A2QJ`cdo9jDu^3nMr3JT-j!ypwxaoI1um!mQm~$HVZ25WWv# z>_m?DIvy@UxR8f2c8d4y2&eHdJb#2)?tFL{iA#D%co^OY!W;1(=c$5TUsrs5--xg` z59cGdm9Us~@RAt*Uf^T59)$bzumNFaA?uihjQ4DPz+N8q<6*3$XS-hGy)O@Qe)N$j z9q*9j;reFi0ZKsVd1 zn(-X>dI9~L;R-odx#Yb1+;4#L^WAm(0lkgmHoV*g=zef}w`MfBg*}6C1yWxKzd*-U zJtF)Rb_<%w-jfwPj9yZ+n&TUJxDer+csPNFdD`0JuC%ScYn^FpKX#>U{n*Qy7UQ0! z#q#t$<6iLD;KE&f>~BE%+2*=6fZi!^&tCzQ>xMoU6rdYShH#hX0=@%WCF=cv-N@nj z${Lb~7RH8?4d4y&-Duq=)&60@S2%Yx*?)Hz^B-2o^RZHRo$3vdLBRz{saW+pN_&CK z%bE6eDL&@Nn2~5SuAe@>JZ{89-(i6S>$MgoO|S-y4Aq{?&B%CmdGUdajOlTq;f3b0 zw@pr&;fqi7>kX5z+%a$@c6Kh?mpp!ALW1#DYi>J^dG{X@Go;VR!9zxekD4;fZ+K`R zHry`SJ!W)jlF5AAqSWP)F_vNB6Z{7n0({4^(z~`U{5M@(4(&2?oyC|P;z|D<<14Fp znAOQ6`u>nJ>Ja3duauEVz~d*V>L)_Z`#8Kn2_$y_&RZl-@1N^5FCX@vl@IW*t>YcM z{1QMH?I6-CaGWLA0q>vcu6y0Tw(edBI%9Y`tvsD;>oWJqwXZ?j;gN&>wRIcKrsfcj zzmC7Zwr+PoZfU%>`1AK`5T4J&fjo>_sYzgV5`pBQ;RRn$K`PhQF}WibxQGT85#s?^ zd5jwMA7A8Pc*FfXjjN|Y#E=%Pnp}*n1bs&gFPdzeJtAP_mjoYP?=5s5;qzkig549? z5k73-{NbxN6rA=yoZth_$KXry$9Qcw@%$Acf9|!P=U@9B^aS}wey!gPL#&;^8l`<7 zQb3OcXnqZ==bO>eun`Cy8-YOhIIyN^Paqt^!*3xxkH=amXpKZ)qFod@{NBvj95H@vCM7zJm|PH}6e=>y>=gn&8b5!gVGLYj#*#RmZ?FzO_fMqniy}^g0*=DeGRP+yZP~GxWm&7cJZZ zM=P1bs36TmRwHE%S>RYmasU@40KcD?fSxRHlyXmAXd-KunILfQldGmoHwy5tBs^J31w79_h@EW>`29Q| z<&LwCM!*~GBiQMafIkPgj+USA1T-I`N;o$b+@k(5=(&x6wgQ?A&5+|^wERy7y|$k< z+Y8t(J>YZ$=k(gP&I262z}u!hoWlZ?C~KQwHK4y{b@Ex3CMmeU>g2Vt*-U1$| zhz-npfX8b*^T%ZA6B z5A(W-Fmhw{W_43Y2|Xy=t_$f{9e?s3R7i>S*g{Iy?^ut`PcGMEbVigeurH8e!1>vt z+HU~orAw^8ve724qdHcrL@T}+tvK_0gf2b+xM&p@fBlCOTMye-Vp|=b^FBskGfo7y z^)to^Z|U{pAq!`&{~)UX=WQ#OxUea#7n#K6xdzac(_9vE*MEe+@VASi_Y8J$gLi|`3pP-lKcn%Ja0UU?4 z0{)_e|H|R<_Iur0SA4mtd0!Fj>mIlEmBDXPSf3#3=o{ce)X_T4G2UW|8V$>u*HJyG z)4ZTC+Zy;YDjpVvWqMV+QoK0_%xzJ^Sm(tqT_p6vLFWB~pyu+wz6 zxv(d{%XnnG9MD6rB<)F#OJp?QjP?%Qvo7pOXZ~_>?h)(4&T;%q*oc7O{3jQ7&WD#6 zHj|4!M`DL#+-W_2*T_ewm$Aag!U{kB)?G^PxY8D?)ReGk6i?abP?5Sw? zZg*iHbzx8aj@2e!0v_XB*d>ndNSX`#iVM5s7`#-89pu7Z>3El9yRcag$NNvZ@&MCp zk!xpr9Zm{Zd;K4|cDCDLX!RGk<@!GR1Kh`SwzxLUNu@WauCd?4?Kx*}YSVnebx*X= zuYw01(@E&eagxsPQGWBeM-wRFFLK=z_;X$Oi5<7+Yj@FSd;+g;c~^B5=3=zn!#PeS>! zHkr}BSNEI?d(xS|1t*%B9?VDO`J_3Hb1v-px}ROxIVYH&aw+Q5B{tK%4OmXZG|x?% zIu98OnpZiDzZEj&J+PkDPqZ6crh9n(=No^QXE`}NKq!=`x;JI|rVuy5ubukb<{w}&0S0WNx&&p=1?Fm;-@ zF!m>V80Lv{ua)t0h_@FE->&a=;-l1laP>%k@%DoENOa0s)?R!H>`FbWyPP^o?GrK| z@Dt4c=Iw>Rp8O$eFBt8IJ^Hw?C!ybEwUYIAdwF{yuqXY<%7Jt4k>O&CwB$sx+(nc16YAHB- zklDn<3^=p-**ufL4tHTMaI7IqT-X>1=Ge?SEmwS9_^dS&)ax`y2-+AyosWhv>Z}a9 zco_)#Ru}#v<$7+PaBg&LJV0=>Xf3ASlqIO$A8LPaVcRsX^4eW$-wMlemx~*~xu&$+ z??f-jG;T0Y)u!okuu+KJpp(LTID>?*=5*R2n;dJP9W?G& z(AnttNxO^t7e8@2`6vnIU%*q+&eXmMeqbMRS+e#~V6*m7U@vggV+7ra4ViIlAxn)5 zpVcpcU#EGS*Dp?;aU<~|OE+#7y6`a*2R~fWXR~FJn?-9`@469N2=8JRprr29p3U}q zv@uY35-%Ef<^i9Y+)3-1^tQ4!9UCtJA#3 zdjoD4aal4eifO{9oO^-KxEJ_~ln&0lz}LCxFH-JOdVzkK{kY~Nh5^Eq5f}L`XvCAI zqSad(bTi)GYu}-{%u1e(hrl)|r+pMA(=GOGT2F49yddFN(FJ%rMzT+EP3a}zL{?81b?3Zw1TQNS*bNUAboDvs)mODP1OOg4)Dd(Ug@!2=DfbRgEM2?T~ z9G0#li^F#UK8oWr&!52ua<~WN7R2$n*8zE=^gw4A;6ph+^E#NE(dM94{1YA_b_j+1 zdkZ+Ue*^IS?ICO@O~5??hyU2T3D9lm<1%#2vJ3{4vXu{fH$HKeFLq17*DKeaq&gDY z7rCz<8A+e8e{jC7?SDG^TMgbj3Onb^4W)rR-q&sr9YZ$E>Amu0=L$==u1weRwCX=BDdU@O`^ zI%UGU_NuUvLG$Cyi$j7VF=GG!BUR$KfV@Hnls;@Gm#rDbnrY+}OO9`})4f+p9)0v8 z-MNqKIoy5czV0P-Cq}xs)eQZRaZoa@IBmbsomW=9^wN29Y@hv*eZoHbC~^!j&Lfq# zkqXK*mGE`VSk>%yI5!QwYK76Szg~FZ1-Dg3Bz5n$ZF?_oVJnRspMlohFl;~zCqE_$ za{3-}doN&X4-$cc81Kij$$u4{IdkEicgVsF>h#X> zN?4z4yb|L}1$3d~TfDy>?=`M*Kvjh!HV$tDd=STfNzz%t;ZcD1fNKT7TI+kYoj8&7D+k5otd?xTNqXVd4pb^Em4e^Tnj zMl$6X4WndXUx^WYa5(-8y-*MBCYvtVKlC9!_V@oHo9;Yzp6pY%Uio9%G`07YmHTkc z=uXg(W3D~i2xdfSsfX5Mm)CFXXYD`Oza=H@o9(UG&prrg47In>+xO9`?l0+x?wj`E z0MLl;lk|4RRUyh9qn7`L;!Aa8ES8yeI~4n0WX$!q+8-mmutR-c;(@1=`^XFSTS=Kc zbDuqetg){rCt172XJ;_FrQ@?RSiwrmHCuYtRBEycI)tpJ4S{8Eq zQ(a+yoICOn8AeQG5_yumP0rB%)IcZFC3H3YQ4Lh@R6o>YXy$6J!+PDq+?<2jx^3;1qcrNm+ z@jU8z#w*n8R3%z%%5vV59+ zj{963xP0KjK}myd9Q5hnUW2C(UO4#aA>Kn)47qN|gF|&gi-$H0y?N-ip?iluJM_Jw zfBEWseS8CbV|~Z^&hjny-RQf^_fg*$eZTX);Csn$v|p3o&3?Q5&I~gR%N~|Lta@1M zuzQDf4Lj#g{X_lh{BQ8z?ce49h5vbf`|v))hYx=#U{Ao40j~#qF+v%!c|><$NML#3 zmcX}076uIrIuon}4-PI4t_*Gp-WYsq@Xp|egU<(F4$+7Bgp3G@4oM103z-(OAmsLt z`$8TKc_HNWkmDg=g!~ZlM`%Q7N$8%?$3tHVeKYi8Xm?nzut8xX!(ziy!YpAk!fpxM z9`<0^fv{J@j)Z+2b~aoI$EJoj{>KnLHat6gR``k(%n&PDtksf!#C84wv2SsB?BxiRu==+5X{qVI{`8~s%DD=`5vkuj#22{Dsm zX2&dvDT}F(ITV`|n-)7Yc3$jlvAbd)iG42iaP0fBpTwSxONg5gH#u%@Tv1#_Tw~mZ zxczYl;=1DAjr%C>Ox(|Lmqw|hyhl}xY8BqG7U2fTMRo4 z4;r2}ykdCUaKbpy7-)<(wi>TD-eJ7Y_=xd2<6+}b<7dWijlUS}@x9^)#)rfw#AnBM z#&3!LSNy-@FDFGMT2_6$>Pxy4A@5Gf8-%8b{CZ$eKU7va=^<3K0w6$qZ zrkzc*r$?rzrY}yvHT`IYCSz{K6B$2QiYzZ#-nBR~BQtkqK9_kSOP3XtH9Bi*){?AO zvQB2}vqxl)&92IRH2bR@Q_l4{2PX}kw0u(6B>UtslV?qSXbPD!e##3|Bc@KBx@zjZ zQ;$p=Jgsor)43kG+ozA2{`3s}jD#75Gd`a=XXeQ~^DNIudG-&Os1jap-_Nvl~`v%lt2t*$n@wxG7T_LJH(wLjGU zQAg_f)D5i*sWa4#t;?>PRaa2AysoZpUENJ}ch%ir_juilb+6YQtNXm}ySiWN9QD2H z2h|7GN7pCSr`J!bUr@iaepP)_{l@yO^*ieK*FRJLYW=(QAJv~(9lkn#^|;m9tMgVb zUR}DnX7$snUs?V3>JL|cx%%hTe>G?tyc=>G7BnnvsA^c-a9zXg4fi!X+VDcdYYj&m zK5h86;g<&cnqF%Lt{Jf=YK?i##5Gga%w1EsrhLtsHOJR{vF7_Vzcnh2o{fVWgBs%+ zM>l3R&TL%VxV*8pvAMCc@y5p68n-vz-}p%5fyRF|zSel8@x#W?8_zagZ0v6GX!2_^lR~NiD)skjBUwinclLnrKF|0Wo^r*mRnlx zYT4EDNXv6AT`ljneAMz)%ej_6TI{X8TL-m{Y>jL+wN7lE+&Z_lu(iCkp|!JhbL%~= zds`oCeYW*b>wB%Aw4QCf*m|YSqs^ynL|b%QQd?Tvw6^(ewzgGm4Q-umx3q0+LyOCw0E}O(!Ra@!S(~~ueKj)|G52Z`-S!^ z9r_NRj)0D+4s(a4V^+tKjujpC9qk=AcWmp}+wo+_%N=iboai{yajxUckcxvNMyhm3RCG^qG_X@nn{;qgpx&?oSFZ7RN_fJkvc<73@`$Jt8z7JPm z{ZR&mb#jE?;;|McU%3wBfqQZ8cRS{&mIJaM^N{U;@5R^ucPciFA++Nc2RkVi-~4xA z?!HxN#QBh$lqPsW$CXc%?aEu2quhqQ0JbYl#E8|fotO#8!}wSszDD1u+^oEW@3IQ8 zLTL+j@S2Mh>&XTZk83dLgD+3mc`=coJ_-NLIOAeFc(@b%o z@0CZCcZiL=M$VA8l>Ouv%p=~Ru+>j#b$~hNSTDVltj=BU{KAl1;87 z>#<|OcHr*?uX~V_n~?W?%9B_r_@eT?@)HTfnyWNAl>CDC&B*^erJO873?rTl*hBn; z@;P{o|A#9Q5);>Tj`ug!(RK0p`pYY3P0^N_atB_zKeIo}USx68{(GhbQ4sgH)N z@=+@6vdPQ9OUN06m7Vj7L#eSVR$fIYKURYOdBvhk#gz(4ues*hgK!hSsG|#I-E$qs z^AX7BEzG&Sg>;WW3&d3c35u)K^;7}f_y#4uSzevWD(H#x+U$DT4b2f3I%R%sgcfZi z+sSoU$=5-8lQ?`_J%HShCif(70HZQhBu!%$54zWm-CGKoAe6cc9NyYBg z4=S&t78T%2Iu|1`w?3~V=7jWMI!w+Wsl=eyn6~*J8rvtfpgkLu3qXG=YTg_0X`)dV=3{rO z%}N$hpT%2}fBLrz^>8@cnq<%!r@Vlgf4i~(r=X8OtXgFk=)^*P=OK3m^t_25@lXix z6UaA^@ByT`51!0HNMkG3F5iPZ902a4*l%PBB)J}3?1e(M+^+(pD6XSOlU*!5=d~9pvMWu- zVP#SPi8|vv0bbd~_;p@_?*rid0BEsGP}_n$uw00X<)!CB8^rR&uXx7+$McRSu|~4l zaRfA2n|&X2i?!BUT`jc%vP=XdR;huEHUsZ^v?CReLLPLDg(~nHi_{fKZ(m}5S+Q?#VhXluf&Kl_QX0-Tkq0Qd{$TZZkqllLWDjklc zoC=FE6Z$#;GsAh%b|(E;=;-s%>0$T}O#Wl-{e7UAhjP82zhl@Ph|PZaNR??g`=z69 z_#idsZ#Vc{hB}i7jv7(7Vq7#C7hgNxbr1jJGfUU)hZQ78+{57VE&PsiE*K~HVLs)A zdl))c`X9e`)H3$l2q|6ri$xBczcR>v3ox&ToC|qAM7(yC#7-s)UK6(|105gWx_~^L z$5;}R3yZT+=9)>B$zTI?1)jb~VfTluXTPGguh(U{e0^ulB#H)e8^5tH?zMMoF?vfz zh`V}BSt`u}HadjA(-`9Grv&EXF_49`a&xnkiAof`G3>Ral2>T&giCKRK-7VHpEsHxD@Yu0Pt(|n}) zQuDi(U>wRPfCNkk=nS|R@N2+dBc=v=1`Y}g2n-4g3p4~K1da|I8<-JT6W9{CCvb1z z!y~mLeMSx*88k9%WZcNbK{QAggi|Jh1_k*A1q4M0Wd|(@vW33=$000l@5VTcf;tq@@^F*7Ro$&Vp}wHLtsX-jFc+XP z;9RZg7(1@Sn%9k*_cbRqXEc9kskVQB5->iXHDG7JF9E+H4@#g<;E+IkU5-4&2d234 zup4=J=&C&A%RKbIDi6gn5136N3y}*9N;+P}kB!SI_QUKyVI%s5j?vwh&=)H9+wg0# zSKF)XEA1urG~iBgOlEl9|HgAn_nY0X;kg~ZM*J%AD?<$SE5$QLJkN%I{jH*W{W^Y! zzxwPp7#A>%ojml1bx=n`+hZxPUf1`1wt5IRldRRobnq~?{Nw`>?i){(+J_$ z^C#ZX7w8GRIVa#MPtY(tm)Q00Qk!Es)L7R3eWZM#dOFVO{;8{DB^KIwAOq!9jHR7+0g@z#)=EG`f9W44@$|J-}d6e`~o*{#j$BDP{ zH1ScMBSVxYNI&I8;;XzshSGYvT6u~1DK8U$&{>nm9 zObW;nQb?AOMWhI8@EhpA$r}10JwZPrjiiZwK~K@sq?vw6&ycnBEBZBQp=U`e{f4yB zZ?R|cI{H11lIoy8&>!hf^k;gGo~IY+MRF5PJN=E^On)Jp$t`HHwvt=PZP?%7cX9{0 zQ;njR$vyN6*-pEuo#OB&vV+`9cB)j3R#mb~)sXvCt*RrtRXy25?k5kZ9x5Sw(LVQ9 zJykEYkJ?xD#?X2{wZA%mJVl-+2goz34|$e6N1j&)k{8H}Iw1}`5XHTyr;&i3F<3q7r9KXs2`~(aX_(MeN{b( zK1QL0;>Zk~1!7Xo>LK;8nuxQRzf{ktuc@z7E!C-SsBcm|^`O1fW3)H*RNq&Rs>y1K zI+}XntcO$TY1)^1tDmZ$p(lD<{apQm_ERlthMK8nso83dIte4`1Jrlachv%Q3H6}^ zRjXR4ex-g*2dPEsS+!WTDZi7M$}c2W`Hjp_{vvbG+Lo%{P$PVbl}b5{hrLk=zi2b; zN*hg3iqw~BB287ApCgXW$2B*y7Q_d&5QU^+{WWXj#4~|!^0a)Wn7KJApH+Am-^gc; z8;(}-LtPPZvDX>wbn&cLCZU}X&%G2cvPV99Dgy~Sd6K2;g>@Q-<#QipA#w84SD8gK zCA^<9nBFa)`zu~l#)V@t*(4gMOVUV|8;ICW>bD>=LZp45NiW-4MAgMKY&&cyRF zJe8rHuY!*ihdi-s3|i(~Tv>Q>r{m01EOOUFWe%QMPMCjPj{Nk{`QPKZW4Oz#luO16 zYBiv31;;k<%eY(tSOxMQ2=0315qDMS>Ni4u>5wNYziLn{1trF*NS$%dB+0m+f_Fto zs~lmL!$3%XV1T5;f^ z3MDcMCF0HpE9EIzGo6k;a~gVE3oLj+^PlDCUOIEZu~TbvkiJ#Yp2pK+GG%rI#Sedu z<;W{cFdlIGr^13l?Fdmq;WvjvVpUdS^Tr#Q?9vA~DP`<+s4+r5BT?ad=9k#g+W1PY8sW(DbtmyYW zFk(>%d!iTVtrVfPc@&lf>=xKVY{JzW8~OAj{gpRi8w`M5-~%gW5Nw=F7?&JEhQiW# z7Z%15?2Pg^EQMj1_#I9Hm~{gy2UEbX0YXS9Y>TC^AHp&AwM_YdM36|>7Pr8*cno8Z zu^6curF@M(-$0Bc9+pJ{EUFUa1Z*Shj75@Q7p1^L8bijy#`qET#fxMDtc!0*s!|H8 zVgBedD@mqehmuslipqusR!MSTWuOg!-LZ;HAydgT^eDMxI+;OcDm5ez zmSeqAOJ>zPc1P zNQrV57E38v4jXbUY{ynuq%Fd(B9&wnsUp>+hSZWeSTgmn%3!Z3-;y<`FE^t1`52=F zpTbJN2^Qoj*iMbg7qFz7pz{yH^4*Ua=w`xvz*d6&XqnYQI>~yB3va{%i|b$$T~BTx zH%Mg_UG0#EWjvRl|EWG~rA9whs*MZv@55%MVf zv&XTY)00lyL|7(HyM(+a>{9;kgv&E@(uZxd`G?~KVUTaC-O5nN6y1Pyoj-C*e*_+ zh1o02Mq&1eyKTbk5MhHb3xwGn%;uo|m}S8%3Oa}mrbFOs`cgl5&Hi*a4WJ`vARS4A zXfO?-p)`z!(+C<#qi8gZp|LcMj>7!Dk;c;mYNBS?6G=1~$JdXhW9V2qj*h1j=tP=I z(`Y))pca}*vuHNWp_Aa7+ztQZe)tymD9>Z}tSNLVoraC~rqda8Cbo&4MQ77FbS|9- z-+ckirwi#Kx|kMVC4rR|(jr<+ZFDJJMoVZZT~1ffGP)9Lt}19HT}7*CHLYPbKdo0D z#>#^Rx`sB=CfW?Ux`npVHoA_sW9Pt5x}I*J8|fx`9lf63KyRcs(VOXJdJEk`x6)hb zZS;0}2fdTtMenBD=sk2h-9hiAJLxWZAKgv&(EI5FbT8dUAEf)~L-b+#2z``327mDh z`XqgdK1~nMXXvx^Ir=<&!xu3E@h|!^eT8<>SLs1|h#sb|(bq95@g{uwx9L0dU3!GR zN8hJM=`nhoen9^%taJGLAJb3hr}Q(7UT`a&+33tdr)TLm%r>XrUu%`qUzk-+f2V)Y zKj|g<7yX-FrdOOcI7UDy#t$^i@>cb*xUaIdg{`gnr~}nO%%)a{!k+e1hdC{2*w7=@ zAdH@bsG(|@8m>mDk!lp|`54&Nu&9|O%`IhS2{S90Te<2Ob*ws09j{JMC#tDxnwk#V z*3x6$s*}|z>Qr@_nyXG%XQ(sPJav{jTb-lMRp+Vm)dgz4x=>xDE@sv*w|tA3#j7q= zm#HOcsk&TUp_ZvD)pE5$tyEX3Rcf_bqt>c*YQ4HzZBW;!jcSwHtgcmC)K;}kU8lCI z9crh#UfrN>R5xKH=z5H!+=!8so7K(gEf^Krs@|&JrrxgJfi)|4sduZ})O*zJ>JIf@ zbtguQ?!$P?9`%0p0d=psPkm6`uRf$ctUjVXsy>F%q$kuT)u+^_)dT7?>a*%|7+rcn zeNlZ${g?VO^BnUBHzf@2to`T+h3d=KVlaG!*E2Ji})r@;LR zSpKm3zfr$czf-?gfACtdtjcC9FSC{xmlkQOi%ROPnzGU=tFF>kZL6{BR+g66*4T8_ zwxWviVqI!sm95UEPhDv(s;Vg0r&cVhD7UTXomy2|zRX$#M187--#ycdN~?-$S1v8H zt=44}S%HmPRfV-iXW=w-77pxfDXyro78TjbYxEXDRkf5a(^~{(&#WFYURgyID_2?t zvL?IGTIHGD^H!H5Sj&;Dlr9!#&vZgg~0IJ>$joExtxZm%>`z?yEF zct1_NpXT;nm&;Ss=9W}cmG{Xlsf7rtYFCz7Yisnmf(y^w>N0C}i6Ajk-UOwY?v(QQ zE6=jtD7wnn#~iMeN{rUWp-za>}qGTlF-fOnbyq}Wasvf?KQW!)K+Dy zF0IzhT~=kSvw6<%d8wPvLAnJzTJHs}lF?a(Y^^det1NbFPqABVBCR4fa>ass8;`8B z@lbD@i>lrx$f-7zw@sG!vYz-}%iKhyDPiSZ((_hVDtIcDJeA7wE*0gyya&^3g&Q4R z8Rt`1CQ6~q?UkmCm3O&#UoPI4yS>*{h+?SV#ZYloF;oaHJS*JFyGl^15|pakDOC$$ zRrfHdsbS?^!*O-BBB5HIQ0-L-)ynMF%JQz|f~wKS|P0lJt`# z{Uk|0NzzY}^pj=2l4ZV^o<}X>Mn=I2!mUNRP-4sbTMbb@?bW$Xp z6vx}G8;rb%m$H;*&yhf4T4Xz zLC`fDoOA`hW`p3@Y!Grb8-$$AMxJgw)}S)|!=3YoJ175uePCTTPZR*c5PUbgBQ^tm;*;$ATQY^BReYD&CnN?=2Z=W5TTrFG6{uWBS# zE?+Q;nU+kR`OM5rE*#u5e0q8$SC=uM2gW)N){D5Ixq2Hnn5*CE%R5gON`J(48jV%x z2Vl#l##OH@s??>4Te`Sqh?_;+GQ}-R+_J?jN8Bcf+hlQ@B5qT~ZJM~{irWlvn<;L2 z;xJe`g)x($=@5N~2-jk3qF~L)~ z2^{8OsVU(Py_h-7pFC4}(aL8o2>#qJwMS*-OP+K7+&9%}Z}6b-SNNlMkL$w2ebS3; z#gLMfhdeEAi3!Js!~0pTNvyBsssuc9+~Vc9F`091yqv4!P3z&=GuMqqt{aWqYiM}p z_C)HNdo{h;ZZu}Q(U^S=jlQ$5jyJyt*GoEkLLkBcJ=)yhZ&tB4X zlrMVdcu8N9zwpj+naMod&&{*sfd208rJyBzO!3y;!<27(veS#XoB}HRP7%l5>y&SM z;&@44Q@jv9DSsYtl}jpK3m=p}_jmU|<=Y;rp28*N@P2vMXiJ~Gt13yJTQuRZ3Ua~= z<D!2doJi< zx_2t`Cb%c!Wf5)w51{oC&|W#L<6wRZgk8!;K15))8*=Yl<}h%0f97vEIpGj3PeGFg zXGAYk&@4beMG6{5TszrXS!tzHYw5IF3?A?_)R`p}>MXb>G8r|!q!g;yL)u%ua3y%=NsX`pm>oKZPYyMi&HuMo-eMm!-cotD?CMM&8_Q{LA^_mXiq z887*g2YPcqia&CKCSl|lOw!0QN#n{SjVqHhu1wOnGRa=UWRS+6G@?wxcruub(&!Zy z3c}Kel)aA0DB~HW(P)&$u2CAhvIjH8OXDzJ(uLNI==#jYujhP~)cwr73ErJ8w zd5(-0VNT-CQ#58e-6(11nxr{uGE0ulQZh+0oFq9-lAI+;&Qc_2DKh7&(u_`(?nf*x}=vb>7`4_rpxyk^1XDgO&RiihLli-EP)IusSL?ahU6zhrk^4C$&h?xNXcc$ zd}TdBbSyGmi%icV)3eC*EHXWdOiz}VDO1WJ zQ>LFO)6bOYXUg<5WqO%1Jz*&uOqqhdS=J!4)O@qhe4|CUVYrKOx1{oP5a#LN&eOr2 zr-M7sC+<9-xbt*z=jr0k^NBmpC+<9-xN|;m=lR5)=hJ9OCFOg~MgpC;26ZXVvt z^wVVeX)=A`_TjxuKTW2eCewH7yKw)2C(}=p=?i@`T7gS z7kZAc%)iicqebXB?lS*EuMw8{&6Me7%KQpF$9taNc!RSYN#W@lOes9y29wZZ++}?c zdWf*74oS$~E88BEDCy<|xz zk;@l+I`5Ld6fPIQW&C8BpJbUIpPo@T3i9F{~JG zFq*MigYA;y%~x&o##)T=iY6m-$}GhX?p~SVhnb!gieH(vrW`9NG;C1^u-OU^!aO~! zU%(UpY2@8Qq2y)dv;Spwwelb5SO4c3*?*3+4l}Twm?vG2xz!HLnC{{;tQ#J%l;c*D$x*j+xbMm{(=9ws&K0^)1Yxu^z<_ zYcu?@w&Z@SD=}eBELM+Tlv$4)(E>@a;gqifU$|smh zZ^cRs=qt32tvDLU|A#2F9s^2D2}^6NWmp}9Zv>QnTpJbQjc*0`%0g%*c2~e35dRO- Ce6P0v literal 0 HcmV?d00001 diff --git a/addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-Medium.ttf.import b/addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-Medium.ttf.import new file mode 100644 index 0000000..26c6d94 --- /dev/null +++ b/addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-Medium.ttf.import @@ -0,0 +1,34 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://csdprnrpwr3xp" +path="res://.godot/imported/RobotoMono-Medium.ttf-f165ecef77d89557a95acac0927f13c4.fontdata" + +[deps] + +source_file="res://addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-Medium.ttf" +dest_files=["res://.godot/imported/RobotoMono-Medium.ttf-f165ecef77d89557a95acac0927f13c4.fontdata"] + +[params] + +Rendering=null +antialiasing=1 +generate_mipmaps=false +disable_embedded_bitmaps=true +multichannel_signed_distance_field=false +msdf_pixel_range=8 +msdf_size=48 +allow_system_fallback=true +force_autohinter=false +hinting=1 +subpixel_positioning=1 +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-MediumItalic.ttf b/addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-MediumItalic.ttf new file mode 100644 index 0000000000000000000000000000000000000000..a3bfaa115a3f3a30eddad5c6c3aafb9b5ee2624b GIT binary patch literal 93948 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%0D@A?Vb^R#DS|+Cj3`jOj(eO`fft;vZ)JVx z3YS3s0bb9|B6s``MmXy&T0ZS9Jn!ZaABx_5Op%UqA9R;%CmVrx^GLo~65KqJu^Jbj zV$WI0o^$iaX6t#`QSdg_^CFVOaQ-W+#fC%A1YiCHpsCkgq}*V z7>6pL8`2YGY@|F#M&W7Sq7DmWCjpOj!|$gnch_NOn;4DfNi(^e%vA~~rOMgK_{u{0 z3eTGR5v}n#P-BIB1aL7=!Ok+>aSu*Ud1NA1;%=E(>w1ff1Y8_>@~Id?x1$eCP@?BO3*)SsTlpG2$LEAEV+9cKtBEZ&ZxM zeP`Kyi^N3)_8%$xiaZ7Ib8fhSD+WB)sTLoi7A^7sYsXC2d#&NyuGLvDe#Pdp^{l2h$wSu; z;H#MYx}Vjso*TsE*JJ3dV{F_$PisQz6?EL*d^gp?W-H232k0?O`qhxTDITPNiLUP4 zy;tvDOM4pFi<#_|u<6W2wE~JAPi-`A?8ZN_@^HNbYzL(|jWLAlE5O>#X6Z`S5@{Z! zmPlzHtmkTI&85D@!D!Fus`sq}ltnC(Q_BwH9L$<_LhV$yqSXFud<|ix((A!&Y~mX2 zZZu$Qx~YUYmq=7<yoHM=Xi-qjla`5J{Da1kizEaT|6tBGyz_Mvdd%_JiSXA zMQYJvJSzVhP)X8{<6;P1HA%eqAmEbZ9QVWT9&ANu4|XFLMdu+mHm!+--S{1?37ZWR zg`kC})x~5E;7tB9ipNW>By_Fk&LRb_KFw(1&ZmUyGwhmuufXbuevjU6YhJSvCn(>;%lP9BvQ;SmWtLk8^k zo&A`mY{9M&u=!cMNNMZ3iYQ4`r?k)=F$$+GLtUD|Gf&Ami~{fj@QwnHt_&>XAvfMn z41Nsoee`~Ual`Kan!yh{clMI53NlfA6j76@eBIMazEb#fj!IZMMxzywOzsiAP(05h zCLN<1`5M5fJXVl};vF2caf*+F?{w_4G0hL)keHm7@46&wmxFtyG0hJ+LwlK)K1cCc z4|ab}M@l7Z(JbHEgWdmK)RC1vTY)j_F1re4=eo-_%b)APt~&jfyX+}mi9OhroQY6- z0pJ)ByHMOt zdC!eMvIl=G_Yr1b3BQQipxpRlxpmC4i1NXEXFd3g_aK#N`LYiALvDOIKj19YucX?* zq9fIYr@U9_F1?R@TMu^sf79_n%bu}dJ(J=j%euX@V%vi4w8-g9H4 zrI&lKD?bINN_13|xUnVPt6_BRMNb@{mD&s5o1=4oOR37{U^YU1+*IAqMkv(;74jL7 z08|sCBlH~?WF@Da`~W()Al85705F6epO zXy<0ON|sixbfoNb{R+4=$9#d>N^{IY@iZAn@#(6XNenv2(E8j2= zo;gXjokWt zL&C25j`jnqxfj(Sq_QhHJsH?jHkB9>cI7EZ3}|7Xi(;G`oA%m^(1R%*deMhT40;!O z?G{O5NK~pt%_o=xO=R z9kL1;rHE7;^gSElgF%zC;(a~%6UDn2uZ(wYW2;6BwNx=0?Z7@RGKvq`Wl+2UxP-q@JVECKNta^Ogmhyg@?Wg} z5^0U|``Qe`YZo$rQdAQnlG{Grmo8-XqnP zT27#e%p^`m)fn{syG%pbFTr_#);bN~)Rqa$tQ-FXgGYLJg}m&BpJeb|pi-~heSRjl zmccuK{|+nvRSBP3q|u7^flqCd9*t`zJm4t&D)4)2Trra2wzVyNc)1^*_pYF^h_8 z2kNh4`1eb2-c0dbj{*M}!>4Nx;PdD`lwXc@;cgjvpZ5VAtHqh?0WEVz(+I?X!oEeJ z6I%dH!km%8v`dr;Eh`o}YXsu`gwhj;*u}&tC&W$>+>Y>)$t4D1378M2WMxsr@UI%2 zCsh|!D-0_(@!H|{mGm7cm*r(-v{gHQ2(pm`a{)VIkQ8aGwjw{EdGD-Qd%I7P_{7BZ zV@Ixtk4H%H$b|h-O7St`sW%GsBmEp!%d+)w`@3m4gY?U(snU&vlKGn=;gO5XZO>tYe0H4C(fq*~C@DI=t z3HWdd$C_=HxQ~rswq^r-AcG$R{7#0?)@)Mwpt{?JL-%IT(;!M3jRnX0TG(V*Oul#i z6KCb;{EFZ9!zv`&upLfXjI)33{bR!ddes?+{H(9 zJL_VEJ>Pz{-SAe$cNJu>u%+8MvcKTpJ!7x4f$T;p9$POhMXHB@0~iY0`RFU*N&O0B z>pbJU>jmdu-D?aRoYDAV)*(2`UE#Ow<>w;bv)<9Z7pdMYjuZSgly?<94~g5WJXR%I zo?Q?&8fKEk@YQ|$l`EGw88$j+6D28p`-+1c-%Iv8w~}ej^1aSjoU&g}j#D|uc893t zhV2evpM#$%?z!%9DlSO6_FfV{^Yzz34^Ftiy${`@1Kymt>h&Y^Tt{%rxUWevsUqW% zGUgm{@@f1KemuX1-zkI%!-S8-5OJfpOZ-Hv-@V)HE`&saEp+ryo@FkOl+PuEXZqno9>Tla|W1>F(d$GUGKIBd6MMhu7;9nl=o z8F6RCy%DGNI(@3XOn-;|oc<4kufbwSH`Evw8Xh*hYWO;GR^%6|8|)oz-f!TMMoIty`?S ztdClsx4v$D&-#V+y!98WGq!(hP3(l&S+PrF*T-&&-4*+2>{oHtxcPA_<67gk#~qFP zDDJDcOL2e13-N*Rx_E2+toWtz>*Ke??}~pk{`vUV7`^{ zvNhSBT$tQHxh8o+@~q^g$?KE1B=1UoH2L}DL&@(ZA5T7){A2Rflm}CuNqITtSjs0U zXHqVw{E;f82Bxk}?MU5``e5qQsRvSzrhb%qDlH}LskE2Uj--8HQ`@3!Nw#cTscn$0 z);7`hZ`%pmdD|~Gr`^Y{v779b_Tlz=`!xF^`)Yf;{Z9M+_9xS05fiR3{kinl(%(%# zo_;R<$MmZivJ7R0E~7qUTE?P`RT*s=+cWOV_$i}1Q;|6}b3x{9nXQ?3WbVm)B6EM{ zk<1S=zs&qL^Gc>O%Reh3%a%1K>(;C%vW{l`oZTmTWcKvzHQD>Kzt0iyQs(r}8I?0T z=aF3BTzhUq?%v$zbC2Y{mq+qK^Q?Jwc@y#$a!^!Mst-2ce|*#j00_`P~U^@8drtG^sL zY2a-G?;ZHjz@G>C4T>6+IcVpg7Y2Phm>+B!Tt9fv;FCl0hP*nI44pXi=&Ds{ByxQq?>bm`7%Evr2 z_MvfW>wW4w>Mu8BHZ(RYXn4BeP{W7ggT_xD|LBC63AqynP1rQyy$OFd8JqexH8rhn z+S7DpqHW^k=FaA4nm?N4JE>&SoJr2fD<;1(*)hd7rFqJ!sYz3pP2Dtg$JCFfrB6FO zy>a@<8AE2gHq$oqzM0o%4V(4SY~}3Q*$>Q#{Kr?qoboxt=FFe7cdq~3{qy4IJvHBd z{!0svEqr28-J&y#{#dM8oVG-_WZaTfOIF>|e#;L_bCxb#+OhPJrC%+*x=g!l(XtPh z`z*IC@3Z`_<@=Vuzd~4HUXi|H*ox^ZKDjmH)`ctimD-inD<`gOUHRC`H&>pyt@yS@ zx2?VH_-%i!YFIUE)g7xoSoQPjVXNy_Pgp%`^)0K{t?pdCbM?ck_pN?y^}DN&uRgc> zht*ft$kzm|iC7c6#=fR-P1Tx_YZ})~U$bbu+DbYyBhZ_pLv; z{_XXjtv|c|`}KcqkZqW_VfKcl8`f>;+;I1Xhc^6c!>b$K-tgIma~po#aIHn&640V) zF|=4(l3Oxc`m~g{3~U+MGOne$WoFC5mQ^k7EqAuu-|}S3{+2gd-fj7$pJ?6RdZhKk)>EzLTYqT1+9q!cZqv8Lw%ObA+Dh8`x7D(s``&lg`tfKXtmge7m$= z=C0(f+^+Jjp9-f&UUmD> z+qd8TnmH|-TL{~Z?^ut)v?Wcn|fR3w$a;e+qQSxQ`=r)GrGWW z$Lqom)CcDO#`$`&3IFg%C;>ZF!y{D{xczp$uU5R*a= z3t$e;uW4X!D+Qzg`UNM!A?t{d8%h4a zUXnNWJ?dG?`;ytbg%2h1`0f^NH@zl>IP>M;ej^FoOJoi)qrP_|zRzORWF|KSIkmgE zk%&Y$klWAIljYoL)O#G6O8R3zQ-|z6rQG-Ab+kSJbV+x8PJFmioYHmpZ(c8jp}cDW#ZbzUis+d+Fq{-_-vs4 zkKU=}lz3{A`!$;LyauyR)m%0Hzlv9FPwD^Sc7xuY*UX+z%h5mV1*Ke6|J1s?SMaaD&l-UI)t1F*9!aGgZd-M;XaZ-Q5AIV{IB zxi_(ryB%?4snz8^lwroHhaK4C4@ER`Cw95MaQ%t$?#KEy277{kxVE9Cv7F6yH+D}; zu&Wj0I);@_Bwiixh>YU8T-Pu@CWC)tu~+!D>q|UkBHaxJ4I=?F;aT6oNAD5W8PMU1 z>tn2?K6Rad#iEoOf;v46E{(zX9RVH=1cxT${uSI#cy$_G>FAX#WcfY9z)@ahLT2BID!KBseixa}zU3U?Bb z<&PpV`S;+Kg%}s}QOke$aa|xP?g%lFEZ}xx)cN9cz}xuTgp*aH5Mind?MMfWcR&(- z&mpo1e9#VJjK0d-aXzFRHOK|khGT46;8{Hz_3H<#T@l7?DOz0%FV`g)+buX%xtA*; z?~zw=5-)`>B|pFhc^BG|23!u3VFaEziZkKNO)2_g7i7~e-1{v0?pbcDYhUjdo>1a` zHR74{MW5$+Ex{A%Yp-+hW|c)u)30u7Y|tyy=)v05AWF z*hK~&_qo1BDOI2^Ers5((9N5%XaS}E8yH_zt{oT!RSc72OY*)R^t+Y2m3>FCLvc5K zk3fAXhtqcy#)cEmcfYY`-Gve6?RpnW3#`#*T2p7sCrU4<4_p`ElA|MafK z?0EBgJR}%>H$zt3{C)%U^1RiceGI4_2|9PMcA!nPUFZoLqXiv_Nf=w;63l+@z&cgL z=tA$&ae=hel&b9BYV;*m`d;H5pU|1T`!Q#L{QjP`zGrk2P86RZztU(5vb$v1c_)$5 zf8hhJnU}DrRa*LS;a?rzMtV7W$=rD;&)?;cp5Zl~PcU+XN?cCNh0ToOp$1I5fHndt zDcKrAuuYeb>sPpyu$lLPRW1eGRRp>b*$I9H*G zGDRgvjWhA4KvS?uZ3;ITObMn6Q-f(@%v-;|4o7bxcBXpD9sQ+&A zBa4|Ui72dzTfMy=6kj6wZv#+;t|--r4?+N=I`to}ha)W6AH zf9yzM7Z28O$lBNNrgIGEJWT%*>V+}hmFxHuGZE+9iubL~dCs}c8P3VhzQ7&e>QC_; zALDbP<4p%_c8=9}FU5N{-qUdheNVw>SUSJ4etm)CzCMEY;d5V}jiL9_pVMPc7o9FX zd;WC4GY8K+_tmpsK?gl!I}>xp{MFnuey2~LE;yaWai`{=jy)Z7I_y;5Dbp#_mrH#f z5c**!lyVofG}1k}vv_~UVW)zBjE5fzeM>()IFY`u|485Q&*8i-$A2fm1u(l%h4);% zZ^wH#xHz72GTs9z4*e^Rl&}#aXCy4jpv=ub;;8?Cpwxf(A>f#4n5~CG5^hJ-UkS=J&x>z$CF8@WZ8F`G#(^q_Xk3_JOGn1zO6Hl%vsX6`O{ zBz0ldo62qA=W|=gILv4(z?XfYQ%|Eh3u(qUD<#t*Kg%Fv$6=CGG-u5tRNNGsQ#d#mkrR%H zTqW@#AtV4s@L*Up^(2xQxd9}Fq?1%)Be~$Hl_Z-~kWx}k`oS}MAQ{2kM|em(Cp3S7 zdzg4}j}c#f0l$!Y1RCAr#E*M|_;b$@HTM(=> z)&TF3MD7EUj6L8aehK$H(QqfApL|TxxX(!@WPX3{6v>0nQ~~!D$>+|HKCqJ(bLU7A zca{|LEBKY%c~ZiCL;7+*BS_5;q(Ap9DdT=3)zC_-xF5*??g}!-|3QXxe{xqz4cARZ zbJxfyGMhV&edf#1OdcdMZZA=AUy>Z0rfMSfqybjgNn|XUfMeQA_>ajg{3raU{AXk- zS;n8@zv54m<@_1`ELnlLLtm3y`ESTd{ye!239r8;tN4p#HCe-d$6w+v^WXD7@IUfD z@jsJx{tEvq+06e!I!Gs^)E06(*-EzYzmYr0b|Id>hCD;vWGC<7oxBUe`W~{2>=t+- z0lCQT6-2T}kO^{fA3|K*kMs8r3SLOL@(|>)kKil#3I0NW5C}WEQV0@)$-l_6WFL7> zP?6`!3*<#1gzP6TkptvqK}}u}G=i2OyfQfm%W|R+PTm%D(G+SK)Kvgz%B@A^DB`juqdZ!Y9I~`wm#r}cwgZ?;e8<+CdFLdkM|e85>E30e4y}!@FixRw}g|zDPAd* z38g~0&`+okDupUOhz}Ot7Tyu+g$7>5hX{?rc;TGzHLn&X2;T@z!bGe+hjPD=LENuo z2=^Bm2`M{8IFGf+ba)ZZB(bAR^d#-P?xnE~8zzTN#<$!Ykr?$1G7IPbm}qT5dhmf*zq zdOb1D{RFxSL%T>2gO@N`EaB#2Wj+aXnveO`h8Z^vs~00=-(+qg{tpG#c)aK1ZG>!^ z1#OFd8jSm9LAFkW=0@)SmmyEk+p+_im z7G9IkKNF$F(bDJRjuck9=eaW&d=}PI|5Tf5+}(uo7of~al+cLsrr;TNJSmmE@=z1n z)_KtGdY9s9Q4-qr_ht0P?oEN-_{JNaIua$(Crx4XHukDT@3Q{ipF9O+8_`B1S~?g1 zoAA6D_&*o3o)OP%#@~MU@1bk*4OcgQBlSZG`i1hrJd`*ECCx+$QeA0FXphjI8Ng^d z5ufHUS{Xs_ne6FvSzRQKDF&q*L3`=y#(NThcQbWttdA)FQEriVWf5lNMS#WtI zhxZLX*aM_eA{y%l3s%{&;L~`l*%DEYWYmq0C>wYn9pfq!>*{Q1<+;*fab^OZx1|6aU+Q(De(~xA}W8UPs7U%&A=sato2R(=x6B$ammtk$V53AQbSn&qI zu3>*1;V|UhKFt1d%%fDI^ntE34tmrp&}9O+9}!XaCs-$q z(32j*dMOGvo2}gaTrgtO9Dp722(+$mabo)rEFl}AkFADYPfr(`;cK}8Qlk<2gBN!c zGU0LJ4U69dNUbNJp+NtEUgZzHClFzjl#p3(LdOV(exZUkq=v5aClY{YNhmaycc7`f z3#-aiXdF5c0UgOewIpauCSryz5lv#CqclSgv2q`PgFYg$Bn~=CCv=o2Ng_$Y?raLA z_%&!$X~YH%#SYDEGWRKTtPGM#vY=n(K-0=2`OsA^K~H&!6hccmPl~xI&`zd-Bd5YT zR?5vJW!wx>&N;y(v!IPtK$DwIDxs}F9zcJYLk5s)G7vMo^gaQBiXZaJAqnxV@~=DvaE zGX-|kX;|e=$LjAk?p8@ZgGF`@nM>x8`D6iE2#shFv^(fM+y!zA#!DM!vCp{^&_2I} z-g}b!3Od+Q*j!JOWmsKOd)Fh}XRs8}wc|=y09R4%hpdIYcRkraTHpz>muw=fq>Z$b z%~bc{c3szgsP04VBzKV=@C4pLc1l_gR-k(jmx}2* z4%Ksd>o`=Ok#rfV$x!`;>Mp#JYA94Q;nlo`*J7O-#)o6I9l`5)1OI<&yVf8%uIjux zXLeS*Gm=&Ys!|G70b;^4uIZWXnOPo&dGttYt#@Uu*0RJSv}W5oZOzWC=i!wF#xHC` z2mxaQeqmmIfdK>NVP19uMJg{$z*MC|_zMZ7@+YZ~=Z~B|=bP&}-(h^-x z%d{fjjdq267vn0Opf$RZPSRDv`A^fE=*{#NdMo`Ny^R7nhtQ^V3h8RvpbkZJ4V|Sf zZOW;yK5fypG@v1kV(viOQ=g@C^1YGg>Fx9mx0NqI+q`T;D`Vf7XK0^1uVlPY=*X=|TD!eVjf)pQKOGL-a5` zLXXm8^lADGJuY1HbM$$7g1$gsq%YBv^kw>r@XD{zQ}lKE27OcBTzs3Jrf2An=#S|; z^j-Na+3(Sx$lHuRmG=REE?*G-m-KylmVQ8gML(n;(R1`;%kt%2!QaqN=x^z#^43GM z{W#Z;GkyA*eCd+p`1FelvwQldIJ>8RpBg-@+SAV&s%&g4|vEU9`kj) z&FA=fKF@FGckm7TPQH0!IG9b~%E zAjoco!*CR2H>2Ko6lRBEyWd;S*3JyV>%y7ZX3!q=do#8EM!y%HovRI^-bT=thBGx^ zWvu0^T{PDg;o71Z$S#he?s}NJENPiPnzEB!Qg^dU>P>zrrOGUc zYuRPfFPnZjrO&P?;`B5OFv2II|cFdogUm>0Q~VK*3d%*1gBvvfRdX;oFZ z)x^on35hRzLfdB73}{V()^-7{A>1_!cX}3wNx}gl3LI znePzuy^-|KZ={AO(~0N1lW4P%`4qvY2=g7;d|#8a%%4r!$#&JxY}aO?n^I-E@qG78 z-!pwLrO)j7OA(XnWHHQLw=_*f_6W5Z}V=x%j_%o%Aly`eqU z!|o`U3AcukIG8yv3XYYd*ia^tj~JPFwRSGzL8qS`#^#)96+8;YGh^$@TY@0P>HcQ8 z5t!3W2eJrRR_PY3?iO6s7a(hpb;y=U$LzQc+B>l0*f_dQ746WkSh9K%?TTnuM7tvJ zioh#Q`Zdt63F$+^j}rVS!T%C)O7N=$Jj}0K0$vF?CE%2RQvyy2_FdR@Vb6s<7yi4j z=fZy%c3s$YVb_IS7yi4j@4>zY`yT9gu;amwhxX-y#a~9;WyD)X|FQ=?{FGm>jMueW zhM#5FFT;Kr_RH|I3_r{8vkcq{{FGl&QF|5ORe)E4{R-??V7~(U71*!9eg*a`uwO-7 zRm4>VUKMy%;8lTFMSNA@R)JfE-74%Z!0rO@2{q1^87%`x@HU(7uNDHQ?4T zt~KD-fL}-ZI@;HvuTS(CmpX9kz-=JT2KqN(zk&WuNFVW4^;Po(-GQvDFAeuz{*M5-Sm)en*NedFGGI2gA3gK+&!ci**R`IwCpxWO=7kJn_e zP=w8jJKGzMx57cxA7uRTps#BAnpcyKx#BqG*>E_LXYMFmpOw@vj5a!>PJYyp9Ma0e z+||)_lX8A2U_B^eOD(^p!M9p19UPI(=Os_1okzw+$+h_55kEyz&32wPscSpWo&Eao z+-Y)9`c9I@fjkE!m#tkg+-z@U>n0i|nkIY`Efa@L95JzI;xZFQO)QzX+{Chp6%$vO zIBsIq#0e8?CayGb(!^CJPMJ8ZVxPt{83l`OC)mA`QV)lcI?V2*VzcYPFbewTqQKhj zjA^cY{UGXgqxL9j=O^XZZuXc0O&`4^=#CB?4hNe;2F`ScdNrOkSy8rx9V~GNOWY~i zt>YA(Trb$_4@ZOkRwvXxMLf=mj@=$b$8L|JW4DJ>F6Lv~A`>8|T*?_u&})1BQAZ22 zaXPG}TurAIWgQ4D&)1SA1Eof;<^8ouzM)m)D_T5|P#3N5YqZ048KppLIX?wv#73{r z`xk)i_jdv07E}EeQ%){k*l%%nzvaZ|+)B#EO3KE{1vYXkNvHiQyX~!|Y^r)$&EVD5FV_JGX=+308UYtG~J2BHYc>NGB)f?0sb6b$pK^?fD zdmeq%Odd+D%qfr3q8fB9$tk!jTdRo)0`9cs}qjUv3NI&;ou7_$}bKfZqaM3wV|(7u=TF_izV!Soxl5aGR9ul7r$~)cq{b;y{Sc{fiqtqAzpnEs68LrC*MV;| zPxQdA1HTS@qkWcF>k zEp^0iG}rNs=88o8w$7!F_-&m_9r4>bmpbCNbuM+pZ|hv@h~L(^)Dgd}bH}%JE)wzE zx|TZPZ2_-^cx|1FUgIqmCZ8hsTc27h8u?xBJ1hbyjd~orzQ&k&07r zZT>{!J~cn&eu91h?H5qDbtV0A|JwR1xK-d)VW+I)D}GKS{9Dj*k?ZJRMLbo+W9v)& z!F5|tQb#{qpHiR1fzL_1uf%V(GbUZ|?6qRC;COOc!@i|CKD99?XE83F$~0R`C#DVw z-Rn*rlAWHjQ-`|2s3#{WGV!qvIeQ$p-4hdHIlmw!{hNW@E63cPp8Dzkvb(zVYxh_G z=N;K!-{%(DfxS)kNpF|E)pyB`=_hoD^$yuJeMt6MKPCI7H_Kk@qq1un@3%fCJFkz( z9_lT!gZjAcq24JwsPPW$ld>241=&k|0(+@X$!==Am-;Q)O}$(8W}lYb*?VP|_8Hk( zy+`&{zau-V-<3Vp@5$ckt+KOvzwE2VySDeq-s+#p?&@F2UhA{6hiiMR&&e+9|J}Ey*8OPTCxk+Jka-r7R~NzA9&1o|1Db%W}Hq`*Qx~2Xacc zt!E^8<>YC0>h?W*^U;^jC=#Y^3=0(?&Fx8Kv~_hCg)5}%8Av#mYwu>PW?po(r=QJ z7_wev)yat?Ipq`od+`))%L}D=5k{k+E2m@R{}#vzo%q7ko&)lK4B{0kH8~+8|Nb{Y CrTcsU literal 0 HcmV?d00001 diff --git a/addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-MediumItalic.ttf.import b/addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-MediumItalic.ttf.import new file mode 100644 index 0000000..bb7e6b3 --- /dev/null +++ b/addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-MediumItalic.ttf.import @@ -0,0 +1,34 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://cdxcb7jq16o5k" +path="res://.godot/imported/RobotoMono-MediumItalic.ttf-40c40d791914284c8092585e839f0cd1.fontdata" + +[deps] + +source_file="res://addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-MediumItalic.ttf" +dest_files=["res://.godot/imported/RobotoMono-MediumItalic.ttf-40c40d791914284c8092585e839f0cd1.fontdata"] + +[params] + +Rendering=null +antialiasing=1 +generate_mipmaps=false +disable_embedded_bitmaps=true +multichannel_signed_distance_field=false +msdf_pixel_range=8 +msdf_size=48 +allow_system_fallback=true +force_autohinter=false +hinting=1 +subpixel_positioning=1 +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-Regular.ttf b/addons/gdUnit4/src/update/assets/fonts/static/RobotoMono-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..7c4ce36a442d14eeb12444ad707c2afa19422fd8 GIT binary patch literal 86908 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